[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "maxTotalSupplyERC721_", "type": "uint256" }, { "internalType": "address", "name": "initialOwner_", "type": "address" }, { "internalType": "address", "name": "initialMintRecipient_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyExists", "type": "error" }, { "inputs": [], "name": "DecimalsTooLow", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InvalidApproval", "type": "error" }, { "inputs": [], "name": "InvalidExemption", "type": "error" }, { "inputs": [], "name": "InvalidOperator", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSender", "type": "error" }, { "inputs": [], "name": "InvalidSigner", "type": "error" }, { "inputs": [], "name": "InvalidSpender", "type": "error" }, { "inputs": [], "name": "InvalidTokenId", "type": "error" }, { "inputs": [], "name": "MintLimitReached", "type": "error" }, { "inputs": [], "name": "NotFound", "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": "OwnedIndexOverflow", "type": "error" }, { "inputs": [], "name": "PermitDeadlineExpired", "type": "error" }, { "inputs": [], "name": "QueueEmpty", "type": "error" }, { "inputs": [], "name": "QueueFull", "type": "error" }, { "inputs": [], "name": "QueueOutOfBounds", "type": "error" }, { "inputs": [], "name": "RecipientIsERC721TransferExempt", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "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": "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "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": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ID_ENCODING_PREFIX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "valueOrId_", "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": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "erc20Approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "erc20BalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc20TotalSupply", "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": "value_", "type": "uint256" } ], "name": "erc20TransferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "erc721Approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "erc721BalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc721TotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target_", "type": "address" } ], "name": "erc721TransferExempt", "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": "id_", "type": "uint256" } ], "name": "erc721TransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getERC721QueueLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "start_", "type": "uint256" }, { "internalType": "uint256", "name": "count_", "type": "uint256" } ], "name": "getERC721TokensInQueue", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "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": "minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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" } ], "name": "owned", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "erc721Owner", "type": "address" } ], "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "account_", "type": "address" }, { "internalType": "bool", "name": "value_", "type": "bool" } ], "name": "setERC721TransferExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state_", "type": "bool" } ], "name": "setSelfERC721TransferExempt", "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": "id_", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "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": "valueOrId_", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "units", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
6101006040523480156200001257600080fd5b506040516200688b3803806200688b833981810160405281019062000038919062001972565b85858584600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000b15760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a8919062001a5d565b60405180910390fd5b620000c281620001ae60201b60201c565b508260039081620000d4919062001cbb565b508160049081620000e6919062001cbb565b5060128160ff16101562000126576040517f98790fd500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060ff1660808160ff1681525050608051600a62000145919062001f25565b60a081815250504660c08181525050620001646200027260201b60201c565b60e08181525050505050620001818160016200030260201b60201c565b620001a28160a0518562000196919062001f76565b620003f460201b60201c565b505050505050620022b7565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051620002a6919062002070565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620002e7959493929190620020b5565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000369576040517fa41e3d3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801562000387576200038182620004de60201b60201c565b62000399565b62000398826200052160201b60201c565b5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200045b576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f8000000000000000000000000000000000000000000000000000000000000000816005546200048c919062002112565b1115620004c5576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620004d9600083836200059660201b60201c565b505050565b6000620004f1826200091560201b60201c565b905060005b818110156200051c5762000510836200096160201b60201c565b806001019050620004f6565b505050565b600060a051620005378362000aa960201b60201c565b6200054391906200217c565b9050600062000558836200091560201b60201c565b905060005b81836200056b9190620021b4565b8110156200059057620005848462000af260201b60201c565b8060010190506200055d565b50505050565b600080620005aa8562000aa960201b60201c565b90506000620005bf8562000aa960201b60201c565b9050620005d486868662000cc760201b60201c565b6000620005e78762000e2f60201b60201c565b90506000620005fc8762000e2f60201b60201c565b9050818015620006095750805b62000906578115620006b557600060a051846200062791906200217c565b60a051600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200067691906200217c565b620006829190620021b4565b905060005b81811015620006ad57620006a18962000af260201b60201c565b80600101905062000687565b505062000905565b80156200075c57600060a051600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200070d91906200217c565b60a051866200071d91906200217c565b620007299190620021b4565b905060005b818110156200075457620007488a6200096160201b60201c565b8060010190506200072e565b505062000904565b600060a051876200076e91906200217c565b905060005b81811015620008555760006001600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050620007cf9190620021b4565b90506000600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110620008275762000826620021ef565b5b90600052602060002001549050620008478c8c8362000ebc60201b60201c565b826001019250505062000773565b508060a0516200086b8b62000aa960201b60201c565b6200087791906200217c565b60a051876200088791906200217c565b620008939190620021b4565b1115620008ac57620008ab896200096160201b60201c565b5b8060a05185620008bd91906200217c565b60a051620008d18b62000aa960201b60201c565b620008dd91906200217c565b620008e99190620021b4565b11156200090257620009018862000af260201b60201c565b5b505b5b5b60019450505050509392505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620009c8576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905062000a5a9190620021b4565b8154811062000a6e5762000a6d620021ef565b5b9060005260206000200154905062000a8f8260008362000ebc60201b60201c565b62000aa58160016200126560201b90919060201c565b5050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000b59576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600062000b6d60016200138960201b60201c565b62000b8c5762000b846001620013f960201b60201c565b905062000c33565b60066000815462000b9d906200221e565b919050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6006540362000c00576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f800000000000000000000000000000000000000000000000000000000000000062000c30919062002112565b90505b600062000c46826200155e60201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000caf576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000cc281848462000ebc60201b60201c565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000d1d57806005600082825462000d10919062002112565b9250508190555062000d76565b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000d6e9190620021b4565b925050819055505b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000e2291906200226b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148062000eb55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614620010d8576009600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905062000fb99190620021b4565b8154811062000fcd5762000fcc620021ef565b5b906000526020600020015490508181146200106e57600062000ff5836200159660201b60201c565b905081600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106200104c576200104b620021ef565b5b90600052602060002001819055506200106c8282620015bb60201b60201c565b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480620010c057620010bf62002288565b5b60019003818190600052602060002001600090559055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620011ed576200111f81836200168f60201b60201c565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055620011e7816001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050620011db9190620021b4565b620015bb60201b60201c565b62001205565b600b6000828152602001908152602001600020600090555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600060018360000160009054906101000a90046fffffffffffffffffffffffffffffffff160390508260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16036200130b576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81836001016000836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808360000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b60008160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16149050919050565b6000808260000160109054906101000a90046fffffffffffffffffffffffffffffffff1690508260000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16036200149d576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600190039050826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020549150826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060009055808360000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050919050565b600080600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff8116915050919050565b600080600b60008481526020019081526020016000205490508060a01c915050919050565b6000600b600084815260200190815260200160002054905060a07fffffffffffffffffffffffff0000000000000000000000000000000000000000901c82111562001632576040517ffcb3438c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffff00000000000000000000000000000000000000008260a01b1673ffffffffffffffffffffffffffffffffffffffff821601905080600b600085815260200190815260200160002081905550505050565b6000600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff0000000000000000000000000000000000000000821601905080600b600085815260200190815260200160002081905550505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200176a826200171f565b810181811067ffffffffffffffff821117156200178c576200178b62001730565b5b80604052505050565b6000620017a162001701565b9050620017af82826200175f565b919050565b600067ffffffffffffffff821115620017d257620017d162001730565b5b620017dd826200171f565b9050602081019050919050565b60005b838110156200180a578082015181840152602081019050620017ed565b60008484015250505050565b60006200182d6200182784620017b4565b62001795565b9050828152602081018484840111156200184c576200184b6200171a565b5b62001859848285620017ea565b509392505050565b600082601f83011262001879576200187862001715565b5b81516200188b84826020860162001816565b91505092915050565b600060ff82169050919050565b620018ac8162001894565b8114620018b857600080fd5b50565b600081519050620018cc81620018a1565b92915050565b6000819050919050565b620018e781620018d2565b8114620018f357600080fd5b50565b6000815190506200190781620018dc565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200193a826200190d565b9050919050565b6200194c816200192d565b81146200195857600080fd5b50565b6000815190506200196c8162001941565b92915050565b60008060008060008060c087890312156200199257620019916200170b565b5b600087015167ffffffffffffffff811115620019b357620019b262001710565b5b620019c189828a0162001861565b965050602087015167ffffffffffffffff811115620019e557620019e462001710565b5b620019f389828a0162001861565b955050604062001a0689828a01620018bb565b945050606062001a1989828a01620018f6565b935050608062001a2c89828a016200195b565b92505060a062001a3f89828a016200195b565b9150509295509295509295565b62001a57816200192d565b82525050565b600060208201905062001a74600083018462001a4c565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062001acd57607f821691505b60208210810362001ae35762001ae262001a85565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262001b4d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001b0e565b62001b59868362001b0e565b95508019841693508086168417925050509392505050565b6000819050919050565b600062001b9c62001b9662001b9084620018d2565b62001b71565b620018d2565b9050919050565b6000819050919050565b62001bb88362001b7b565b62001bd062001bc78262001ba3565b84845462001b1b565b825550505050565b600090565b62001be762001bd8565b62001bf481848462001bad565b505050565b5b8181101562001c1c5762001c1060008262001bdd565b60018101905062001bfa565b5050565b601f82111562001c6b5762001c358162001ae9565b62001c408462001afe565b8101602085101562001c50578190505b62001c6862001c5f8562001afe565b83018262001bf9565b50505b505050565b600082821c905092915050565b600062001c906000198460080262001c70565b1980831691505092915050565b600062001cab838362001c7d565b9150826002028217905092915050565b62001cc68262001a7a565b67ffffffffffffffff81111562001ce25762001ce162001730565b5b62001cee825462001ab4565b62001cfb82828562001c20565b600060209050601f83116001811462001d33576000841562001d1e578287015190505b62001d2a858262001c9d565b86555062001d9a565b601f19841662001d438662001ae9565b60005b8281101562001d6d5784890151825560018201915060208501945060208101905062001d46565b8683101562001d8d578489015162001d89601f89168262001c7d565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001e305780860481111562001e085762001e0762001da2565b5b600185161562001e185780820291505b808102905062001e288562001dd1565b945062001de8565b94509492505050565b60008262001e4b576001905062001f1e565b8162001e5b576000905062001f1e565b816001811462001e74576002811462001e7f5762001eb5565b600191505062001f1e565b60ff84111562001e945762001e9362001da2565b5b8360020a91508482111562001eae5762001ead62001da2565b5b5062001f1e565b5060208310610133831016604e8410600b841016171562001eef5782820a90508381111562001ee95762001ee862001da2565b5b62001f1e565b62001efe848484600162001dde565b9250905081840481111562001f185762001f1762001da2565b5b81810290505b9392505050565b600062001f3282620018d2565b915062001f3f8362001894565b925062001f6e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001e39565b905092915050565b600062001f8382620018d2565b915062001f9083620018d2565b925082820262001fa081620018d2565b9150828204841483151762001fba5762001fb962001da2565b5b5092915050565b600081905092915050565b60008190508160005260206000209050919050565b6000815462001ff08162001ab4565b62001ffc818662001fc1565b945060018216600081146200201a5760018114620020305762002067565b60ff198316865281151582028601935062002067565b6200203b8562001fcc565b60005b838110156200205f578154818901526001820191506020810190506200203e565b838801955050505b50505092915050565b60006200207e828462001fe1565b915081905092915050565b6000819050919050565b6200209e8162002089565b82525050565b620020af81620018d2565b82525050565b600060a082019050620020cc600083018862002093565b620020db602083018762002093565b620020ea604083018662002093565b620020f96060830185620020a4565b62002108608083018462001a4c565b9695505050505050565b60006200211f82620018d2565b91506200212c83620018d2565b925082820190508082111562002147576200214662001da2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200218982620018d2565b91506200219683620018d2565b925082620021a957620021a86200214d565b5b828204905092915050565b6000620021c182620018d2565b9150620021ce83620018d2565b9250828203905081811115620021e957620021e862001da2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006200222b82620018d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362002260576200225f62001da2565b5b600182019050919050565b6000602082019050620022826000830184620020a4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60805160a05160c05160e05161454d6200233e6000396000610b6f01526000610b3b015260008181610f0001528181611c57015281816123b1015281816123dd01528181612482015281816124ed0152818161254d0152818161265301528181612687015281816126ce015281816126fa0152612de301526000610b15015261454d6000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80638a696e501161013b578063c6e672b9116100b8578063dd6376991161007c578063dd63769914610767578063dfabc03314610783578063e985e9c51461079f578063f2fde38b146107cf578063f780bc1a146107eb57610248565b8063c6e672b91461069f578063c87b56dd146106bb578063d505accf146106eb578063d96ca0b914610707578063dd62ed3e1461073757610248565b8063a9059cbb116100ff578063a9059cbb146105d5578063b1ab931714610605578063b3f9ea3414610635578063b88d4fde14610665578063c5ab3ba61461068157610248565b80638a696e50146105435780638da5cb5b1461055f57806395d89b411461057d578063976a84351461059b578063a22cb465146105b957610248565b80633644e515116101c95780636e8f624b1161018d5780636e8f624b1461049d57806370a08231146104bb578063715018a6146104eb5780637ecebe00146104f557806389fb4c661461052557610248565b80633644e515146103e557806342842e0e146104035780634d9660721461041f5780634f02c4201461044f5780636352211e1461046d57610248565b806309674eb01161021057806309674eb01461032b57806309f0ef651461034957806318160ddd1461037957806323b872dd14610397578063313ce567146103c757610248565b806301ffc9a71461024d57806302519da31461027d57806306fdde03146102ad578063081812fc146102cb578063095ea7b3146102fb575b600080fd5b61026760048036038101906102629190613758565b61081b565b60405161027491906137a0565b60405180910390f35b61029760048036038101906102929190613819565b6108ed565b6040516102a4919061385f565b60405180910390f35b6102b5610936565b6040516102c2919061390a565b60405180910390f35b6102e560048036038101906102e09190613958565b6109c4565b6040516102f29190613994565b60405180910390f35b610315600480360381019061031091906139af565b6109f7565b60405161032291906137a0565b60405180910390f35b610333610a32565b604051610340919061385f565b60405180910390f35b610363600480360381019061035e9190613819565b610a43565b60405161037091906137a0565b60405180910390f35b610381610acf565b60405161038e919061385f565b60405180910390f35b6103b160048036038101906103ac91906139ef565b610ad5565b6040516103be91906137a0565b60405180910390f35b6103cf610b13565b6040516103dc9190613a5e565b60405180910390f35b6103ed610b37565b6040516103fa9190613a92565b60405180910390f35b61041d600480360381019061041891906139ef565b610b94565b005b610439600480360381019061043491906139af565b610bb4565b60405161044691906137a0565b60405180910390f35b610457610d0b565b604051610464919061385f565b60405180910390f35b61048760048036038101906104829190613958565b610d11565b6040516104949190613994565b60405180910390f35b6104a5610dc8565b6040516104b2919061385f565b60405180910390f35b6104d560048036038101906104d09190613819565b610dec565b6040516104e2919061385f565b60405180910390f35b6104f3610e04565b005b61050f600480360381019061050a9190613819565b610e18565b60405161051c919061385f565b60405180910390f35b61052d610e30565b60405161053a919061385f565b60405180910390f35b61055d60048036038101906105589190613ad9565b610e3a565b005b610567610e47565b6040516105749190613994565b60405180910390f35b610585610e70565b604051610592919061390a565b60405180910390f35b6105a3610efe565b6040516105b0919061385f565b60405180910390f35b6105d360048036038101906105ce9190613b06565b610f22565b005b6105ef60048036038101906105ea91906139af565b611085565b6040516105fc91906137a0565b60405180910390f35b61061f600480360381019061061a9190613819565b6110ff565b60405161062c9190613c04565b60405180910390f35b61064f600480360381019061064a9190613819565b611196565b60405161065c919061385f565b60405180910390f35b61067f600480360381019061067a9190613d5b565b6111e2565b005b610689611358565b604051610696919061385f565b60405180910390f35b6106b960048036038101906106b49190613b06565b611362565b005b6106d560048036038101906106d09190613958565b611378565b6040516106e2919061390a565b60405180910390f35b61070560048036038101906107009190613e36565b6113a9565b005b610721600480360381019061071c91906139ef565b611736565b60405161072e91906137a0565b60405180910390f35b610751600480360381019061074c9190613ed8565b61194d565b60405161075e919061385f565b60405180910390f35b610781600480360381019061077c91906139ef565b611972565b005b61079d600480360381019061079891906139af565b611c8b565b005b6107b960048036038101906107b49190613ed8565b611e44565b6040516107c691906137a0565b60405180910390f35b6107e960048036038101906107e49190613819565b611e73565b005b61080560048036038101906108009190613f18565b611ef9565b6040516108129190613c04565b60405180910390f35b60007fcaf91ff5000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108e657507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6003805461094390613f87565b80601f016020809104026020016040519081016040528092919081815260200182805461096f90613f87565b80156109bc5780601f10610991576101008083540402835291602001916109bc565b820191906000526020600020905b81548152906001019060200180831161099f57829003601f168201915b505050505081565b60096020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a0282611fb5565b15610a1657610a118383611c8b565b610a27565b610a208383610bb4565b9050610a2c565b600190505b92915050565b6000610a3e600161200d565b905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610ac85750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b60055481565b6000610ae082611fb5565b15610af557610af0848484611972565b610b07565b610b00848484611736565b9050610b0c565b600190505b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000004614610b6d57610b6861206b565b610b8f565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b610baf838383604051806020016040528060008152506111e2565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1b576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cf9919061385f565b60405180910390a36001905092915050565b60065481565b6000610d1c826120f7565b9050610d2782611fb5565b610d5d576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dc3576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b7f800000000000000000000000000000000000000000000000000000000000000081565b60076020528060005260406000206000915090505481565b610e0c61212f565b610e1660006121b6565b565b600e6020528060005260406000206000915090505481565b6000600554905090565b610e44338261227a565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60048054610e7d90613f87565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea990613f87565b8015610ef65780601f10610ecb57610100808354040283529160200191610ef6565b820191906000526020600020905b815481529060010190602001808311610ed957829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f88576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161107991906137a0565b60405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ec576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f7338484612359565b905092915050565b6060600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561118a57602002820191906000526020600020905b815481526020019060010190808311611176575b50505050509050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6111eb82611fb5565b611221576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122c848484610ad5565b5060008373ffffffffffffffffffffffffffffffffffffffff163b1415801561131b575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b81526004016112b6949392919061400d565b6020604051808303816000875af11580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f9919061406e565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611352576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000600654905090565b61136a61212f565b611374828261227a565b5050565b606061138382612759565b60405160200161139391906140fd565b6040516020818303038152906040529050919050565b428410156113e3576040517f05787bdf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ec85611fb5565b15611423576040517f1f3e0de800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611489576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001611495610b37565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600e60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161151d96959493929190614123565b604051602081830303815290604052805190602001206040516020016115449291906141f1565b604051602081830303815290604052805190602001208585856040516000815260200160405260405161157a9493929190614228565b6020604051602081039080840390855afa15801561159c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061160f57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611646576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611725919061385f565b60405180910390a350505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361179d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611803576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119385782816118b7919061429c565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611943858585612359565b9150509392505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d8576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a47816120f7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611aab576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611b6e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bd957506009600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611c10576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c1982610a43565b15611c50576040517f5ce7539700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c7b83837f0000000000000000000000000000000000000000000000000000000000000000612827565b611c86838383612987565b505050565b6000611c96826120f7565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d5b5750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d92576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826009600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600a6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b611e7b61212f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611eed5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611ee49190613994565b60405180910390fd5b611ef6816121b6565b50565b606060008267ffffffffffffffff811115611f1757611f16613c30565b5b604051908082528060200260200182016040528015611f455781602001602082028036833780820191505090505b50905060008490505b8385611f5a91906142d0565b811015611faa57611f75816001612cff90919063ffffffff16565b828683611f82919061429c565b81518110611f9357611f92614304565b5b602002602001018181525050806001019050611f4e565b508091505092915050565b60007f80000000000000000000000000000000000000000000000000000000000000008211801561200657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214155b9050919050565b60008160000160009054906101000a90046fffffffffffffffffffffffffffffffff168260000160109054906101000a90046fffffffffffffffffffffffffffffffff16036fffffffffffffffffffffffffffffffff169050919050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600360405161209d91906143d6565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016120dc9594939291906143ed565b60405160208183030381529060405280519060200120905090565b600080600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff8116915050919050565b612137612da6565b73ffffffffffffffffffffffffffffffffffffffff16612155610e47565b73ffffffffffffffffffffffffffffffffffffffff16146121b457612178612da6565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016121ab9190613994565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122e0576040517fa41e3d3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156122f4576122ef82612dae565b6122fe565b6122fd82612ddf565b5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080612365856108ed565b90506000612372856108ed565b905061237f868686612827565b600061238a87610a43565b9050600061239787610a43565b90508180156123a35750805b61274a5781156124785760007f0000000000000000000000000000000000000000000000000000000000000000846123db919061446f565b7f0000000000000000000000000000000000000000000000000000000000000000600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612446919061446f565b612450919061429c565b905060005b818110156124715761246689612e54565b806001019050612455565b5050612749565b80156125495760007f0000000000000000000000000000000000000000000000000000000000000000600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124eb919061446f565b7f000000000000000000000000000000000000000000000000000000000000000086612517919061446f565b612521919061429c565b905060005b81811015612542576125378a613000565b806001019050612526565b5050612748565b60007f000000000000000000000000000000000000000000000000000000000000000087612577919061446f565b905060005b8181101561264f5760006001600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506125d5919061429c565b90506000600c60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061262a57612629614304565b5b906000526020600020015490506126428c8c83612987565b826001019250505061257c565b50807f000000000000000000000000000000000000000000000000000000000000000061267b8b6108ed565b612685919061446f565b7f0000000000000000000000000000000000000000000000000000000000000000876126b1919061446f565b6126bb919061429c565b11156126cb576126ca89613000565b5b807f0000000000000000000000000000000000000000000000000000000000000000856126f8919061446f565b7f00000000000000000000000000000000000000000000000000000000000000006127228b6108ed565b61272c919061446f565b612736919061429c565b11156127465761274588612e54565b5b505b5b5b60019450505050509392505050565b60606000600161276884613138565b01905060008167ffffffffffffffff81111561278757612786613c30565b5b6040519080825280601f01601f1916602001820160405280156127b95781602001600182028036833780820191505090505b509050600082602001820190505b60011561281c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816128105761280f614440565b5b049450600085036127c7575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361287957806005600082825461286d91906142d0565b925050819055506128d0565b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128c8919061429c565b925050819055505b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161297a919061385f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b86576009600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612a81919061429c565b81548110612a9257612a91614304565b5b90600052602060002001549050818114612b1f576000612ab18361328b565b905081600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612b0557612b04614304565b5b9060005260206000200181905550612b1d82826132b0565b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480612b6e57612b6d6144a0565b5b60019003818190600052602060002001600090559055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612c8757612bc48183613383565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055612c82816001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612c7d919061429c565b6132b0565b612c9f565b600b6000828152602001908152602001600020600090555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612d0a8361200d565b8210612d42576040517f580821e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001016000838560000160009054906101000a90046fffffffffffffffffffffffffffffffff16016fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6000612db982611196565b905060005b81811015612dda57612dcf83613000565b806001019050612dbe565b505050565b60007f0000000000000000000000000000000000000000000000000000000000000000612e0b836108ed565b612e15919061446f565b90506000612e2283611196565b905060005b8183612e33919061429c565b811015612e4e57612e4384612e54565b806001019050612e27565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612eba576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ec660016133f5565b612edb57612ed46001613465565b9050612f7d565b600660008154612eea906144cf565b919050819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065403612f4c576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006547f8000000000000000000000000000000000000000000000000000000000000000612f7a91906142d0565b90505b6000612f88826120f7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ff0576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612ffb818484612987565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613066576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506130f6919061429c565b8154811061310757613106614304565b5b9060005260206000200154905061312082600083612987565b6131348160016135c990919063ffffffff16565b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613196577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161318c5761318b614440565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106131d3576d04ee2d6d415b85acef810000000083816131c9576131c8614440565b5b0492506020810190505b662386f26fc10000831061320257662386f26fc1000083816131f8576131f7614440565b5b0492506010810190505b6305f5e100831061322b576305f5e100838161322157613220614440565b5b0492506008810190505b612710831061325057612710838161324657613245614440565b5b0492506004810190505b60648310613273576064838161326957613268614440565b5b0492506002810190505b600a8310613282576001810190505b80915050919050565b600080600b60008481526020019081526020016000205490508060a01c915050919050565b6000600b600084815260200190815260200160002054905060a07fffffffffffffffffffffffff0000000000000000000000000000000000000000901c821115613326576040517ffcb3438c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffff00000000000000000000000000000000000000008260a01b1673ffffffffffffffffffffffffffffffffffffffff821601905080600b600085815260200190815260200160002081905550505050565b6000600b600084815260200190815260200160002054905073ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff0000000000000000000000000000000000000000821601905080600b600085815260200190815260200160002081905550505050565b60008160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16149050919050565b6000808260000160109054906101000a90046fffffffffffffffffffffffffffffffff1690508260000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1603613508576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600190039050826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020549150826001016000826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060009055808360000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050919050565b600060018360000160009054906101000a90046fffffffffffffffffffffffffffffffff160390508260000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff160361366e576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81836001016000836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808360000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61373581613700565b811461374057600080fd5b50565b6000813590506137528161372c565b92915050565b60006020828403121561376e5761376d6136f6565b5b600061377c84828501613743565b91505092915050565b60008115159050919050565b61379a81613785565b82525050565b60006020820190506137b56000830184613791565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137e6826137bb565b9050919050565b6137f6816137db565b811461380157600080fd5b50565b600081359050613813816137ed565b92915050565b60006020828403121561382f5761382e6136f6565b5b600061383d84828501613804565b91505092915050565b6000819050919050565b61385981613846565b82525050565b60006020820190506138746000830184613850565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138b4578082015181840152602081019050613899565b60008484015250505050565b6000601f19601f8301169050919050565b60006138dc8261387a565b6138e68185613885565b93506138f6818560208601613896565b6138ff816138c0565b840191505092915050565b6000602082019050818103600083015261392481846138d1565b905092915050565b61393581613846565b811461394057600080fd5b50565b6000813590506139528161392c565b92915050565b60006020828403121561396e5761396d6136f6565b5b600061397c84828501613943565b91505092915050565b61398e816137db565b82525050565b60006020820190506139a96000830184613985565b92915050565b600080604083850312156139c6576139c56136f6565b5b60006139d485828601613804565b92505060206139e585828601613943565b9150509250929050565b600080600060608486031215613a0857613a076136f6565b5b6000613a1686828701613804565b9350506020613a2786828701613804565b9250506040613a3886828701613943565b9150509250925092565b600060ff82169050919050565b613a5881613a42565b82525050565b6000602082019050613a736000830184613a4f565b92915050565b6000819050919050565b613a8c81613a79565b82525050565b6000602082019050613aa76000830184613a83565b92915050565b613ab681613785565b8114613ac157600080fd5b50565b600081359050613ad381613aad565b92915050565b600060208284031215613aef57613aee6136f6565b5b6000613afd84828501613ac4565b91505092915050565b60008060408385031215613b1d57613b1c6136f6565b5b6000613b2b85828601613804565b9250506020613b3c85828601613ac4565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b7b81613846565b82525050565b6000613b8d8383613b72565b60208301905092915050565b6000602082019050919050565b6000613bb182613b46565b613bbb8185613b51565b9350613bc683613b62565b8060005b83811015613bf7578151613bde8882613b81565b9750613be983613b99565b925050600181019050613bca565b5085935050505092915050565b60006020820190508181036000830152613c1e8184613ba6565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c68826138c0565b810181811067ffffffffffffffff82111715613c8757613c86613c30565b5b80604052505050565b6000613c9a6136ec565b9050613ca68282613c5f565b919050565b600067ffffffffffffffff821115613cc657613cc5613c30565b5b613ccf826138c0565b9050602081019050919050565b82818337600083830152505050565b6000613cfe613cf984613cab565b613c90565b905082815260208101848484011115613d1a57613d19613c2b565b5b613d25848285613cdc565b509392505050565b600082601f830112613d4257613d41613c26565b5b8135613d52848260208601613ceb565b91505092915050565b60008060008060808587031215613d7557613d746136f6565b5b6000613d8387828801613804565b9450506020613d9487828801613804565b9350506040613da587828801613943565b925050606085013567ffffffffffffffff811115613dc657613dc56136fb565b5b613dd287828801613d2d565b91505092959194509250565b613de781613a42565b8114613df257600080fd5b50565b600081359050613e0481613dde565b92915050565b613e1381613a79565b8114613e1e57600080fd5b50565b600081359050613e3081613e0a565b92915050565b600080600080600080600060e0888a031215613e5557613e546136f6565b5b6000613e638a828b01613804565b9750506020613e748a828b01613804565b9650506040613e858a828b01613943565b9550506060613e968a828b01613943565b9450506080613ea78a828b01613df5565b93505060a0613eb88a828b01613e21565b92505060c0613ec98a828b01613e21565b91505092959891949750929550565b60008060408385031215613eef57613eee6136f6565b5b6000613efd85828601613804565b9250506020613f0e85828601613804565b9150509250929050565b60008060408385031215613f2f57613f2e6136f6565b5b6000613f3d85828601613943565b9250506020613f4e85828601613943565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f9f57607f821691505b602082108103613fb257613fb1613f58565b5b50919050565b600081519050919050565b600082825260208201905092915050565b6000613fdf82613fb8565b613fe98185613fc3565b9350613ff9818560208601613896565b614002816138c0565b840191505092915050565b60006080820190506140226000830187613985565b61402f6020830186613985565b61403c6040830185613850565b818103606083015261404e8184613fd4565b905095945050505050565b6000815190506140688161372c565b92915050565b600060208284031215614084576140836136f6565b5b600061409284828501614059565b91505092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f000000000000815250565b600081905092915050565b60006140d78261387a565b6140e181856140c1565b93506140f1818560208601613896565b80840191505092915050565b60006141088261409b565b601a8201915061411882846140cc565b915081905092915050565b600060c0820190506141386000830189613a83565b6141456020830188613985565b6141526040830187613985565b61415f6060830186613850565b61416c6080830185613850565b61417960a0830184613850565b979650505050505050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006141ba6002836140c1565b91506141c582614184565b600282019050919050565b6000819050919050565b6141eb6141e682613a79565b6141d0565b82525050565b60006141fc826141ad565b915061420882856141da565b60208201915061421882846141da565b6020820191508190509392505050565b600060808201905061423d6000830187613a83565b61424a6020830186613a4f565b6142576040830185613a83565b6142646060830184613a83565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142a782613846565b91506142b283613846565b92508282039050818111156142ca576142c961426d565b5b92915050565b60006142db82613846565b91506142e683613846565b92508282019050808211156142fe576142fd61426d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b60008190508160005260206000209050919050565b6000815461436081613f87565b61436a8186614333565b94506001821660008114614385576001811461439a576143cd565b60ff19831686528115158202860193506143cd565b6143a38561433e565b60005b838110156143c5578154818901526001820191506020810190506143a6565b838801955050505b50505092915050565b60006143e28284614353565b915081905092915050565b600060a0820190506144026000830188613a83565b61440f6020830187613a83565b61441c6040830186613a83565b6144296060830185613850565b6144366080830184613985565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061447a82613846565b915061448583613846565b92508261449557614494614440565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006144da82613846565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361450c5761450b61426d565b5b60018201905091905056fea2646970667358221220002af36713fde57919a4a1e8205259fbdcda2e47921a448b24ca20dc606666c564736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000860fc09eacd32b3cbe00d56163d540ed65557ccc000000000000000000000000860fc09eacd32b3cbe00d56163d540ed65557ccc000000000000000000000000000000000000000000000000000000000000000d4552433430344578616d706c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064552433430340000000000000000000000000000000000000000000000000000
0x00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000860fc09eacd32b3cbe00d56163d540ed65557ccc000000000000000000000000860fc09eacd32b3cbe00d56163d540ed65557ccc000000000000000000000000000000000000000000000000000000000000000d4552433430344578616d706c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064552433430340000000000000000000000000000000000000000000000000000
----Decoded View------------Arg [0] : name_ (string): ERC404ExampleArg [1] : symbol_ (string): ERC404Arg [2] : decimals_ (uint8): 18Arg [3] : maxTotalSupplyERC721_ (uint256): 500Arg [4] : initialOwner_ (address): 0x860Fc09EACd32b3cBE00d56163D540Ed65557cCCArg [5] : initialMintRecipient_ (address): 0x860Fc09EACd32b3cBE00d56163D540Ed65557cCC
----Encoded View------------Arg [0] : 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d4552433430344578616d706c6500000000000000000000000000000000000000Arg [1] : 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000064552433430340000000000000000000000000000000000000000000000000000Arg [2] : 0x0000000000000000000000000000000000000000000000000000000000000012Arg [3] : 0x00000000000000000000000000000000000000000000000000000000000001f4Arg [4] : 0x000000000000000000000000860fc09eacd32b3cbe00d56163d540ed65557cccArg [5] : 0x000000000000000000000000860fc09eacd32b3cbe00d56163d540ed65557ccc