[ { "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": [], "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": "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": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "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": [ { "indexed": false, "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "BaseURISet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "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": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "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": "address", "name": "account", "type": "address" } ], "name": "Paused", "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": "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": 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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "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": "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": "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": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "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": "address", "name": "to", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "safeMint", "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": "string", "name": "_baseTokenURI", "type": "string" } ], "name": "setBaseURI", "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" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040523480156200001157600080fd5b50604051620043ef380380620043ef83398101604081905262000034916200039c565b838383838383838381818181806001600160a01b0381166200007057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007b81620001b4565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000f257600080fd5b505af115801562000107573d6000803e3d6000fd5b505050505050505050508160059081620001229190620004bc565b506006620001318282620004bc565b5050600c805460ff19169055506200014b60003362000204565b50620001787f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000204565b50620001a57f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000204565b50505050505050505062000588565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152600d602090815260408083206001600160a01b038516845290915281205460ff16620002ad576000838152600d602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620002643390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002b1565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002df57600080fd5b81516001600160401b0380821115620002fc57620002fc620002b7565b604051601f8301601f19908116603f01168101908282118183101715620003275762000327620002b7565b81604052838152602092508660208588010111156200034557600080fd5b600091505b838210156200036957858201830151818301840152908201906200034a565b6000602085830101528094505050505092915050565b80516001600160a01b03811681146200039757600080fd5b919050565b60008060008060808587031215620003b357600080fd5b84516001600160401b0380821115620003cb57600080fd5b620003d988838901620002cd565b95506020870151915080821115620003f057600080fd5b50620003ff87828801620002cd565b93505062000410604086016200037f565b915062000420606086016200037f565b905092959194509250565b600181811c908216806200044057607f821691505b6020821081036200046157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004b7576000816000526020600020601f850160051c81016020861015620004925750805b601f850160051c820191505b81811015620004b3578281556001016200049e565b5050505b505050565b81516001600160401b03811115620004d857620004d8620002b7565b620004f081620004e984546200042b565b8462000467565b602080601f8311600181146200052857600084156200050f5750858301515b600019600386901b1c1916600185901b178555620004b3565b600085815260208120601f198616915b82811015620005595788860151825594840194600190910190840162000538565b5085821015620005785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613e1a620005d56000396000818161069001528181610bb5015281816114a5015281816117d601528181611a7a015281816120d6015281816125a1015261265a0152613e1a6000f3fe6080604052600436106103765760003560e01c806382413eac116101d1578063bc70b35411610102578063d4243885116100a0578063e985e9c51161006f578063e985e9c514610a78578063f2fde38b14610a98578063fc0c546a146105dc578063ff7bd03d14610ab857600080fd5b8063d4243885146109d0578063d5391393146109f0578063d547741f14610a24578063e63ab1e914610a4457600080fd5b8063c87b56dd116100dc578063c87b56dd1461095d578063ca5eb5e11461097d578063d045a0dc1461099d578063d204c45e146109b057600080fd5b8063bc70b354146108fd578063bd815db01461091d578063c6414e7b1461093057600080fd5b8063a22cb4651161016f578063b731ea0a11610149578063b731ea0a14610870578063b88d4fde14610890578063b98bd070146108b0578063bb0b6a53146108d057600080fd5b8063a22cb46514610813578063a72f5dd814610833578063b21a33e41461085b57600080fd5b806391d14854116101ab57806391d14854146107b557806395d89b41146107d55780639f68b964146107ea578063a217fddf146107fe57600080fd5b806382413eac146107625780638456cb59146107825780638da5cb5b1461079757600080fd5b80633f4ba83a116102ab5780635c975abb116102495780636fc1b31e116102235780636fc1b31e146106d257806370a08231146106f2578063715018a6146107125780637d25a05e1461072757600080fd5b80635c975abb146106665780635e280f111461067e5780636352211e146106b257600080fd5b806352ae28791161028557806352ae2879146105dc5780635535d461146105ef57806355f804b31461060f5780635a0dfe4d1461062f57600080fd5b80633f4ba83a1461058757806342842e0e1461059c57806342966c68146105bc57600080fd5b80631f5e133411610318578063248a9ca3116102f2578063248a9ca3146104e95780632f2ff15d146105275780633400288b1461054757806336568abe1461056757600080fd5b80631f5e13341461048157806321eb730b146104a957806323b872dd146104c957600080fd5b8063095ea7b311610354578063095ea7b31461040a578063111ecdad1461042c57806313137d651461044c57806317442b701461045f57600080fd5b806301ffc9a71461037b57806306fdde03146103b0578063081812fc146103d2575b600080fd5b34801561038757600080fd5b5061039b610396366004612ca9565b610ad8565b60405190151581526020015b60405180910390f35b3480156103bc57600080fd5b506103c5610ae9565b6040516103a79190612d16565b3480156103de57600080fd5b506103f26103ed366004612d29565b610b7b565b6040516001600160a01b0390911681526020016103a7565b34801561041657600080fd5b5061042a610425366004612d57565b610ba4565b005b34801561043857600080fd5b506004546103f2906001600160a01b031681565b61042a61045a366004612de3565b610bb3565b34801561046b57600080fd5b50604080516001815260026020820152016103a7565b34801561048d57600080fd5b50610496600181565b60405161ffff90911681526020016103a7565b6104bc6104b7366004612e94565b610c73565b6040516103a79190612f01565b3480156104d557600080fd5b5061042a6104e4366004612f43565b610d2c565b3480156104f557600080fd5b50610519610504366004612d29565b6000908152600d602052604090206001015490565b6040519081526020016103a7565b34801561053357600080fd5b5061042a610542366004612f84565b610db7565b34801561055357600080fd5b5061042a610562366004612fcd565b610ddc565b34801561057357600080fd5b5061042a610582366004612f84565b610dee565b34801561059357600080fd5b5061042a610e26565b3480156105a857600080fd5b5061042a6105b7366004612f43565b610e5b565b3480156105c857600080fd5b5061042a6105d7366004612d29565b610e76565b3480156105e857600080fd5b50306103f2565b3480156105fb57600080fd5b506103c561060a366004612ffb565b610e82565b34801561061b57600080fd5b5061042a61062a36600461302e565b610f27565b34801561063b57600080fd5b5061039b61064a366004612fcd565b63ffffffff919091166000908152600160205260409020541490565b34801561067257600080fd5b50600c5460ff1661039b565b34801561068a57600080fd5b506103f27f000000000000000000000000000000000000000000000000000000000000000081565b3480156106be57600080fd5b506103f26106cd366004612d29565b610f79565b3480156106de57600080fd5b5061042a6106ed36600461306f565b610f84565b3480156106fe57600080fd5b5061051961070d36600461306f565b610fe1565b34801561071e57600080fd5b5061042a611029565b34801561073357600080fd5b5061074a610742366004612fcd565b600092915050565b6040516001600160401b0390911681526020016103a7565b34801561076e57600080fd5b5061039b61077d36600461308c565b61103d565b34801561078e57600080fd5b5061042a611052565b3480156107a357600080fd5b506000546001600160a01b03166103f2565b3480156107c157600080fd5b5061039b6107d0366004612f84565b611084565b3480156107e157600080fd5b506103c56110af565b3480156107f657600080fd5b50600061039b565b34801561080a57600080fd5b50610519600081565b34801561081f57600080fd5b5061042a61082e366004613100565b6110be565b34801561083f57600080fd5b50604080516311f0c6d360e11b815260016020820152016103a7565b34801561086757600080fd5b50610496600281565b34801561087c57600080fd5b506002546103f2906001600160a01b031681565b34801561089c57600080fd5b5061042a6108ab366004613243565b6110c9565b3480156108bc57600080fd5b5061042a6108cb3660046132f2565b6110e1565b3480156108dc57600080fd5b506105196108eb366004613327565b60016020526000908152604090205481565b34801561090957600080fd5b506103c5610918366004613342565b6110fb565b61042a61092b3660046132f2565b6112a3565b34801561093c57600080fd5b5061095061094b3660046133a2565b61142d565b6040516103a791906133e8565b34801561096957600080fd5b506103c5610978366004612d29565b611473565b34801561098957600080fd5b5061042a61099836600461306f565b61147e565b61042a6109ab366004612de3565b611504565b3480156109bc57600080fd5b5061042a6109cb3660046133ff565b611533565b3480156109dc57600080fd5b5061042a6109eb36600461306f565b611588565b3480156109fc57600080fd5b506105197f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610a3057600080fd5b5061042a610a3f366004612f84565b6115de565b348015610a5057600080fd5b506105197f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b348015610a8457600080fd5b5061039b610a93366004613462565b611603565b348015610aa457600080fd5b5061042a610ab336600461306f565b611631565b348015610ac457600080fd5b5061039b610ad3366004613490565b61166c565b6000610ae3826116a2565b92915050565b606060058054610af8906134ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610b24906134ac565b8015610b715780601f10610b4657610100808354040283529160200191610b71565b820191906000526020600020905b815481529060010190602001808311610b5457829003601f168201915b5050505050905090565b6000610b86826116c7565b506000828152600960205260409020546001600160a01b0316610ae3565b610baf828233611700565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610c03576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610c1d90610c18908a613327565b61170d565b14610c5b57610c2f6020880188613327565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610bfa565b610c6a87878787878787611749565b50505050505050565b610c7b612c4c565b610c96336040860135610c916020880188613327565b6118a8565b600080610ca286611908565b9092509050610cce610cb76020880188613327565b8383610cc8368a90038a018a6134e0565b88611a47565b805190935033907f986156872b2ee0022b9585231dbbfde457f87f8a16b6c45e1a81c54c4ad8351f610d0360208a018a613327565b6040805163ffffffff9092168252808b013560208301520160405180910390a350509392505050565b6001600160a01b038216610d5657604051633250574960e11b815260006004820152602401610bfa565b6000610d63838333611b52565b9050836001600160a01b0316816001600160a01b031614610db1576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610bfa565b50505050565b6000828152600d6020526040902060010154610dd281611b5f565b610db18383611b69565b610de4611bfd565b610baf8282611c2a565b6001600160a01b0381163314610e175760405163334bd91960e11b815260040160405180910390fd5b610e218282611c78565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e5081611b5f565b610e58611ce5565b50565b610e21838383604051806020016040528060008152506110c9565b610baf60008233611b52565b600360209081526000928352604080842090915290825290208054610ea6906134ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed2906134ac565b8015610f1f5780601f10610ef457610100808354040283529160200191610f1f565b820191906000526020600020905b815481529060010190602001808311610f0257829003601f168201915b505050505081565b610f2f611bfd565b600e610f3c82848361355a565b507ff9c7803e94e0d3c02900d8a90893a6d5e90dd04d32a4cfe825520f82bf9f32f6600e604051610f6d9190613619565b60405180910390a15050565b6000610ae3826116c7565b610f8c611bfd565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b60006001600160a01b03821661100d576040516322718ad960e21b815260006004820152602401610bfa565b506001600160a01b031660009081526008602052604090205490565b611031611bfd565b61103b6000611d37565b565b6001600160a01b03811630145b949350505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61107c81611b5f565b610e58611d87565b6000918252600d602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060068054610af8906134ac565b610baf338383611dc4565b6110d4848484610d2c565b610db13385858585611e63565b6110e9611bfd565b610baf6110f682846136a9565b611f8d565b63ffffffff8416600090815260036020908152604080832061ffff8716845290915281208054606092919061112f906134ac565b80601f016020809104026020016040519081016040528092919081815260200182805461115b906134ac565b80156111a85780601f1061117d576101008083540402835291602001916111a8565b820191906000526020600020905b81548152906001019060200180831161118b57829003601f168201915b5050505050905080516000036111f85783838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092945061104a9350505050565b600083900361120857905061104a565b600283106112865761124f84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061209492505050565b8061125d846002818861377e565b60405160200161126f939291906137a8565b60405160208183030381529060405291505061104a565b8383604051639a6d49cd60e01b8152600401610bfa9291906137f9565b60005b818110156113ac57368383838181106112c1576112c161380d565b90506020028101906112d39190613823565b90506113066112e56020830183613327565b602083013563ffffffff919091166000908152600160205260409020541490565b61131057506113a4565b3063d045a0dc60c08301358360a081013561132f610100830183613844565b611340610100890160e08a0161306f565b61134e6101208a018a613844565b6040518963ffffffff1660e01b8152600401611370979695949392919061389f565b6000604051808303818588803b15801561138957600080fd5b505af115801561139d573d6000803e3d6000fd5b5050505050505b6001016112a6565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156113eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114139190810190613925565b604051638351eea760e01b8152600401610bfa9190612d16565b604080518082019091526000808252602082015260008061144d85611908565b909250905061146a6114626020870187613327565b8383876120c0565b95945050505050565b6060610ae382612198565b611486611bfd565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156114e957600080fd5b505af11580156114fd573d6000803e3d6000fd5b5050505050565b3330146115245760405163029a949d60e31b815260040160405180910390fd5b610c6a87878787878787610c5b565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661155d81611b5f565b600f80546000918261156e83613992565b91905055905061157e8482612294565b610db181846122ae565b611590611bfd565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610fd6565b6000828152600d60205260409020600101546115f981611b5f565b610db18383611c78565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b611639611bfd565b6001600160a01b03811661166357604051631e4fbdf760e01b815260006004820152602401610bfa565b610e5881611d37565b60006020820180359060019083906116849086613327565b63ffffffff1681526020810191909152604001600020541492915050565b60006001600160e01b03198216637965db0b60e01b1480610ae35750610ae3826122f7565b6000818152600760205260408120546001600160a01b031680610ae357604051637e27328960e01b815260048101849052602401610bfa565b610e21838383600161231c565b63ffffffff811660009081526001602052604081205480610ae35760405163f6ff4fb760e01b815263ffffffff84166004820152602401610bfa565b600061175b6117588787612422565b90565b905060006117698787612441565b9050611782828261177d60208d018d613327565b612451565b60408611156118465760006117bc6117a060608c0160408d016139b9565b6117ad60208d018d613327565b6117b78b8b61245b565b6124a6565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906118129086908d9060009087906004016139d6565b600060405180830381600087803b15801561182c57600080fd5b505af1158015611840573d6000803e3d6000fd5b50505050505b6001600160a01b038216887f7883fa30ea56937810e36990b0bbb8d629d0cf59f68baf8431ff657cebe7eef561187f60208d018d613327565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b6118b182610f79565b6001600160a01b0316836001600160a01b0316146118ff57826118d383610f79565b604051634342715b60e11b81526001600160a01b03928316600482015291166024820152604401610bfa565b610e21826124d5565b606080602083013561192d57604051631e4ec46b60e01b815260040160405180910390fd5b6000611983602085013560408601356119496080880188613844565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061251092505050565b9093509050600081611996576001611999565b60025b90506119b96119ab6020870187613327565b826109186060890189613844565b6004549093506001600160a01b03168015611a3f5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb906119fc9088908890600401613a11565b602060405180830381865afa158015611a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3d9190613a36565b505b505050915091565b611a4f612c4c565b6000611a5e8460000151612575565b602085015190915015611a7857611a78846020015161259d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611ac88c61170d565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611b04929190613a53565b60806040518083038185885af1158015611b22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b479190613afc565b979650505050505050565b600061104a84848461267f565b610e588133612694565b6000611b758383611084565b611bf5576000838152600d602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611bad3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610ae3565b506000610ae3565b6000546001600160a01b0316331461103b5760405163118cdaa760e01b8152336004820152602401610bfa565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610f6d565b6000611c848383611084565b15611bf5576000838152600d602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610ae3565b611ced6126cd565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611d8f6126f0565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d1a3390565b6001600160a01b038216611df657604051630b61174360e31b81526001600160a01b0383166004820152602401610bfa565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156114fd57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611ea5908890889087908790600401613b46565b6020604051808303816000875af1925050508015611ee0575060408051601f3d908101601f19168201909252611edd91810190613b79565b60015b611f49573d808015611f0e576040519150601f19603f3d011682016040523d82523d6000602084013e611f13565b606091505b508051600003611f4157604051633250574960e11b81526001600160a01b0385166004820152602401610bfa565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611f8557604051633250574960e11b81526001600160a01b0385166004820152602401610bfa565b505050505050565b60005b815181101561206457611fbf828281518110611fae57611fae61380d565b602002602001015160400151612094565b818181518110611fd157611fd161380d565b60200260200101516040015160036000848481518110611ff357611ff361380d565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061202d5761202d61380d565b60200260200101516020015161ffff1661ffff168152602001908152602001600020908161205b9190613b96565b50600101611f90565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610fd69190613c55565b600281015161ffff8116600314610baf5781604051639a6d49cd60e01b8152600401610bfa9190612d16565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016121238961170d565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612158929190613a53565b6040805180830381865afa158015612174573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146a9190613ce0565b60606121a3826116c7565b506000828152600b6020526040812080546121bd906134ac565b80601f01602080910402602001604051908101604052809291908181526020018280546121e9906134ac565b80156122365780601f1061220b57610100808354040283529160200191612236565b820191906000526020600020905b81548152906001019060200180831161221957829003601f168201915b505050505090506000612247612714565b90508051600003612259575092915050565b81511561228b578082604051602001612273929190613cfc565b60405160208183030381529060405292505050919050565b61104a84612723565b610baf82826040518060200160405280600081525061278a565b6000828152600b602052604090206122c68282613b96565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790602001610f6d565b60006001600160e01b03198216632483248360e11b1480610ae35750610ae3826127a2565b808061233057506001600160a01b03821615155b156123f2576000612340846116c7565b90506001600160a01b0383161580159061236c5750826001600160a01b0316816001600160a01b031614155b801561237f575061237d8184611603565b155b156123a85760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610bfa565b81156123f05783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000612431602082848661377e565b61243a91613d2b565b9392505050565b600061243160406020848661377e565b610e2183836127f2565b606061246a826040818661377e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608383836040516020016124bd93929190613d49565b60405160208183030381529060405290509392505050565b60006124e46000836000611b52565b90506001600160a01b038116610baf57604051637e27328960e01b815260048101839052602401610bfa565b805160609015158061254457604080516020810187905290810185905260600160405160208183030381529060405261256b565b8484338560405160200161255b9493929190613d93565b6040516020818303038152906040525b9150935093915050565b6000813414612599576040516304fb820960e51b8152346004820152602401610bfa565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126219190613dc7565b90506001600160a01b03811661264a576040516329b99a9560e11b815260040160405180910390fd5b610baf6001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085612857565b60006126896126f0565b61104a8484846128b1565b61269e8282611084565b610baf5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610bfa565b600c5460ff1661103b57604051638dfc202b60e01b815260040160405180910390fd5b600c5460ff161561103b5760405163d93c066560e01b815260040160405180910390fd5b6060600e8054610af8906134ac565b606061272e826116c7565b506000612739612714565b90506000815111612759576040518060200160405280600081525061243a565b80612763846129aa565b604051602001612774929190613cfc565b6040516020818303038152906040529392505050565b61279483836127f2565b610e21336000858585611e63565b60006001600160e01b031982166380ac58cd60e01b14806127d357506001600160e01b03198216635b5e139f60e01b145b80610ae357506301ffc9a760e01b6001600160e01b0319831614610ae3565b6001600160a01b03821661281c57604051633250574960e11b815260006004820152602401610bfa565b600061282a83836000611b52565b90506001600160a01b03811615610e21576040516339e3563760e11b815260006004820152602401610bfa565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610db1908590612a3c565b6000828152600760205260408120546001600160a01b03908116908316156128de576128de818486612aad565b6001600160a01b0381161561291c576128fb60008560008061231c565b6001600160a01b038116600090815260086020526040902080546000190190555b6001600160a01b0385161561294b576001600160a01b0385166000908152600860205260409020805460010190555b60008481526007602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b606060006129b783612b11565b60010190506000816001600160401b038111156129d6576129d661312e565b6040519080825280601f01601f191660200182016040528015612a00576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612a0a57509392505050565b600080602060008451602086016000885af180612a5f576040513d6000823e3d81fd5b50506000513d91508115612a77578060011415612a84565b6001600160a01b0384163b155b15610db157604051635274afe760e01b81526001600160a01b0385166004820152602401610bfa565b612ab8838383612be9565b610e21576001600160a01b038316612ae657604051637e27328960e01b815260048101829052602401610bfa565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610bfa565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612b505772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612b7c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612b9a57662386f26fc10000830492506010015b6305f5e1008310612bb2576305f5e100830492506008015b6127108310612bc657612710830492506004015b60648310612bd8576064830492506002015b600a8310610ae35760010192915050565b60006001600160a01b0383161580159061104a5750826001600160a01b0316846001600160a01b03161480612c235750612c238484611603565b8061104a5750506000908152600960205260409020546001600160a01b03908116911614919050565b60405180606001604052806000801916815260200160006001600160401b03168152602001612c8e604051806040016040528060008152602001600081525090565b905290565b6001600160e01b031981168114610e5857600080fd5b600060208284031215612cbb57600080fd5b813561243a81612c93565b60005b83811015612ce1578181015183820152602001612cc9565b50506000910152565b60008151808452612d02816020860160208601612cc6565b601f01601f19169290920160200192915050565b60208152600061243a6020830184612cea565b600060208284031215612d3b57600080fd5b5035919050565b6001600160a01b0381168114610e5857600080fd5b60008060408385031215612d6a57600080fd5b8235612d7581612d42565b946020939093013593505050565b600060608284031215612d9557600080fd5b50919050565b60008083601f840112612dad57600080fd5b5081356001600160401b03811115612dc457600080fd5b602083019150836020828501011115612ddc57600080fd5b9250929050565b600080600080600080600060e0888a031215612dfe57600080fd5b612e088989612d83565b96506060880135955060808801356001600160401b0380821115612e2b57600080fd5b612e378b838c01612d9b565b909750955060a08a01359150612e4c82612d42565b90935060c08901359080821115612e6257600080fd5b50612e6f8a828b01612d9b565b989b979a50959850939692959293505050565b600060c08284031215612d9557600080fd5b60008060008385036080811215612eaa57600080fd5b84356001600160401b03811115612ec057600080fd5b612ecc87828801612e82565b9450506040601f1982011215612ee157600080fd5b506020840191506060840135612ef681612d42565b809150509250925092565b6000608082019050825182526001600160401b0360208401511660208301526040830151612f3c604084018280518252602090810151910152565b5092915050565b600080600060608486031215612f5857600080fd5b8335612f6381612d42565b92506020840135612f7381612d42565b929592945050506040919091013590565b60008060408385031215612f9757600080fd5b823591506020830135612fa981612d42565b809150509250929050565b803563ffffffff81168114612fc857600080fd5b919050565b60008060408385031215612fe057600080fd5b612d7583612fb4565b803561ffff81168114612fc857600080fd5b6000806040838503121561300e57600080fd5b61301783612fb4565b915061302560208401612fe9565b90509250929050565b6000806020838503121561304157600080fd5b82356001600160401b0381111561305757600080fd5b61306385828601612d9b565b90969095509350505050565b60006020828403121561308157600080fd5b813561243a81612d42565b60008060008060a085870312156130a257600080fd5b6130ac8686612d83565b935060608501356001600160401b038111156130c757600080fd5b6130d387828801612d9b565b90945092505060808501356130e781612d42565b939692955090935050565b8015158114610e5857600080fd5b6000806040838503121561311357600080fd5b823561311e81612d42565b91506020830135612fa9816130f2565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156131665761316661312e565b60405290565b604051606081016001600160401b03811182821017156131665761316661312e565b604051601f8201601f191681016001600160401b03811182821017156131b6576131b661312e565b604052919050565b60006001600160401b038211156131d7576131d761312e565b50601f01601f191660200190565b60006131f86131f3846131be565b61318e565b905082815283838301111561320c57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261323457600080fd5b61243a838335602085016131e5565b6000806000806080858703121561325957600080fd5b843561326481612d42565b9350602085013561327481612d42565b92506040850135915060608501356001600160401b0381111561329657600080fd5b6132a287828801613223565b91505092959194509250565b60008083601f8401126132c057600080fd5b5081356001600160401b038111156132d757600080fd5b6020830191508360208260051b8501011115612ddc57600080fd5b6000806020838503121561330557600080fd5b82356001600160401b0381111561331b57600080fd5b613063858286016132ae565b60006020828403121561333957600080fd5b61243a82612fb4565b6000806000806060858703121561335857600080fd5b61336185612fb4565b935061336f60208601612fe9565b925060408501356001600160401b0381111561338a57600080fd5b61339687828801612d9b565b95989497509550505050565b600080604083850312156133b557600080fd5b82356001600160401b038111156133cb57600080fd5b6133d785828601612e82565b9250506020830135612fa9816130f2565b815181526020808301519082015260408101610ae3565b6000806040838503121561341257600080fd5b823561341d81612d42565b915060208301356001600160401b0381111561343857600080fd5b8301601f8101851361344957600080fd5b613458858235602084016131e5565b9150509250929050565b6000806040838503121561347557600080fd5b823561348081612d42565b91506020830135612fa981612d42565b6000606082840312156134a257600080fd5b61243a8383612d83565b600181811c908216806134c057607f821691505b602082108103612d9557634e487b7160e01b600052602260045260246000fd5b6000604082840312156134f257600080fd5b6134fa613144565b82358152602083013560208201528091505092915050565b601f821115610e21576000816000526020600020601f850160051c8101602086101561353b5750805b601f850160051c820191505b81811015611f8557828155600101613547565b6001600160401b038311156135715761357161312e565b6135858361357f83546134ac565b83613512565b6000601f8411600181146135b957600085156135a15750838201355b600019600387901b1c1916600186901b1783556114fd565b600083815260209020601f19861690835b828110156135ea57868501358255602094850194600190920191016135ca565b50868210156136075760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600060208083526000845461362d816134ac565b806020870152604060018084166000811461364f576001811461366b5761369b565b60ff19851660408a0152604084151560051b8a0101955061369b565b89600052602060002060005b858110156136925781548b8201860152908301908801613677565b8a016040019650505b509398975050505050505050565b60006001600160401b03808411156136c3576136c361312e565b8360051b60206136d481830161318e565b8681529185019181810190368411156136ec57600080fd5b865b84811015613772578035868111156137065760008081fd5b8801606036829003121561371a5760008081fd5b61372261316c565b61372b82612fb4565b8152613738868301612fe9565b86820152604080830135898111156137505760008081fd5b61375c36828601613223565b91830191909152508452509183019183016136ee565b50979650505050505050565b6000808585111561378e57600080fd5b8386111561379b57600080fd5b5050820193919092039150565b600084516137ba818460208901612cc6565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061104a6020830184866137d0565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261383a57600080fd5b9190910192915050565b6000808335601e1984360301811261385b57600080fd5b8301803591506001600160401b0382111561387557600080fd5b602001915036819003821315612ddc57600080fd5b6001600160401b0381168114610e5857600080fd5b63ffffffff6138ad89612fb4565b16815260208801356020820152600060408901356138ca8161388a565b6001600160401b03811660408401525087606083015260e060808301526138f560e0830187896137d0565b6001600160a01b03861660a084015282810360c08401526139178185876137d0565b9a9950505050505050505050565b60006020828403121561393757600080fd5b81516001600160401b0381111561394d57600080fd5b8201601f8101841361395e57600080fd5b805161396c6131f3826131be565b81815285602083850101111561398157600080fd5b61146a826020830160208601612cc6565b6000600182016139b257634e487b7160e01b600052601160045260246000fd5b5060010190565b6000602082840312156139cb57600080fd5b813561243a8161388a565b60018060a01b038516815283602082015261ffff83166040820152608060608201526000613a076080830184612cea565b9695505050505050565b604081526000613a246040830185612cea565b828103602084015261146a8185612cea565b600060208284031215613a4857600080fd5b815161243a816130f2565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152613a8960e0840182612cea565b90506060850151603f198483030160a0850152613aa68282612cea565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215613ade57600080fd5b613ae6613144565b9050815181526020820151602082015292915050565b600060808284031215613b0e57600080fd5b613b1661316c565b825181526020830151613b288161388a565b6020820152613b3a8460408501613acc565b60408201529392505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a0790830184612cea565b600060208284031215613b8b57600080fd5b815161243a81612c93565b81516001600160401b03811115613baf57613baf61312e565b613bc381613bbd84546134ac565b84613512565b602080601f831160018114613bf85760008415613be05750858301515b600019600386901b1c1916600185901b178555611f85565b600085815260208120601f198616915b82811015613c2757888601518255948401946001909101908401613c08565b5085821015613c455787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613cd257888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052613cbe81860183612cea565b968901969450505090860190600101613c7e565b509098975050505050505050565b600060408284031215613cf257600080fd5b61243a8383613acc565b60008351613d0e818460208801612cc6565b835190830190613d22818360208801612cc6565b01949350505050565b80356020831015610ae357600019602084900360031b1b1692915050565b60c084901b6001600160c01b031916815260e083901b6001600160e01b03191660088201528151600090613d8481600c850160208701612cc6565b91909101600c01949350505050565b84815283602082015282604082015260008251613db7816060850160208701612cc6565b9190910160600195945050505050565b600060208284031215613dd957600080fd5b815161243a81612d4256fea2646970667358221220904e55415c5d39cb70137917c300aae1ccb1a473ae17a5486a61c67777f2b37d64736f6c63430008160033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001a44076050125825900e736c501f859c50fe728c00000000000000000000000082b169cb374149d990578a413f4a73dc24a39bc8000000000000000000000000000000000000000000000000000000000000000d434f4d5020536561736f6e2031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006434f4d5053310000000000000000000000000000000000000000000000000000