[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address[]", "name": "_payableAddresses", "type": "address[]" }, { "internalType": "address", "name": "_erc20Payable", "type": "address" }, { "internalType": "uint256[]", "name": "_payableFees", "type": "uint256[]" }, { "internalType": "bool[3]", "name": "mintSettings", "type": "bool[3]" }, { "internalType": "uint256[3]", "name": "mintValues", "type": "uint256[3]" }, { "internalType": "uint256", "name": "initPrice", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AddressNotAllowlisted", "type": "error" }, { "inputs": [], "name": "AllowlistMintClosed", "type": "error" }, { "inputs": [], "name": "CannotBeNullAddress", "type": "error" }, { "inputs": [], "name": "CapExceeded", "type": "error" }, { "inputs": [], "name": "ERC20CappedInvalidValue", "type": "error" }, { "inputs": [], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [], "name": "ERC20TokenNotApproved", "type": "error" }, { "inputs": [], "name": "ERC20TransferFailed", "type": "error" }, { "inputs": [], "name": "ExcessiveOwnedMints", "type": "error" }, { "inputs": [], "name": "InvalidInputValue", "type": "error" }, { "inputs": [], "name": "InvalidPayment", "type": "error" }, { "inputs": [], "name": "InvalidTeamChange", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "NoStateChange", "type": "error" }, { "inputs": [], "name": "NotMaintainer", "type": "error" }, { "inputs": [], "name": "PublicMintingClosed", "type": "error" }, { "inputs": [], "name": "TransactionCapExceeded", "type": "error" }, { "inputs": [], "name": "ValueCannotBeZero", "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": "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": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROVIDER_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_capEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_erc20TokenContract", "type": "address" }, { "internalType": "bool", "name": "_isActive", "type": "bool" }, { "internalType": "uint256", "name": "_chargeAmountInTokens", "type": "uint256" } ], "name": "addOrUpdateERC20ContractAsPayment", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "addToTeam", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_qty", "type": "uint256" } ], "name": "adminMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_tos", "type": "address[]" }, { "internalType": "uint256", "name": "_qty", "type": "uint256" } ], "name": "adminMintBulk", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "canAccountMintAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "canMintAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "canMintBatch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_erc20TokenContract", "type": "address" } ], "name": "chargeAmountForERC20", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "closeMinting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_newPayables", "type": "address[]" }, { "internalType": "uint256[]", "name": "_newFees", "type": "uint256[]" } ], "name": "definePayables", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableAllowlistOnlyMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_erc20TokenContract", "type": "address" } ], "name": "disableERC20ContractAsPayment", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableERC20OnlyMinting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableAllowlistOnlyMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_erc20TokenContract", "type": "address" } ], "name": "enableERC20ContractAsPayment", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableERC20OnlyMinting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "erc20Payable", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_count", "type": "uint256" } ], "name": "getPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inAllowlistMint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inPublicMint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "inTeam", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" } ], "name": "isAllowlisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_erc20TokenContract", "type": "address" } ], "name": "isApprovedForERC20Payments", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintsPerTxn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletMints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "merkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintBatchSizeEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintCapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mintMany", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" } ], "name": "mintManyAL", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_erc20TokenContract", "type": "address" } ], "name": "mintManyERC20", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" }, { "internalType": "address", "name": "_erc20TokenContract", "type": "address" } ], "name": "mintManyERC20AL", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "mintedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyAllowlistMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyERC20MintingMode", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openAllowlistMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "openPublicMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "payableAddressCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "payableAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "payableFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "removeFromTeam", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_capStatus", "type": "bool" } ], "name": "setCapStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newErc20Payable", "type": "address" } ], "name": "setERC20PayableAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxBatchSize", "type": "uint256" } ], "name": "setMaxBatchSize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_newStatus", "type": "bool" } ], "name": "setMaxBatchSizeStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newMintCap", "type": "uint256" } ], "name": "setMintCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_newStatus", "type": "bool" } ], "name": "setMintCapStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_feeInWei", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setProviderFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newCap", "type": "uint256" } ], "name": "setSupplyCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supplyCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_newMerkleRoot", "type": "bytes32" } ], "name": "updateMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenContract", "type": "address" }, { "internalType": "uint256", "name": "_amountToWithdraw", "type": "uint256" } ], "name": "withdrawERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040526000600d556602c2ad68fd9000600e556010805460ff191690556016805462ffff001916905560016080523480156200003c57600080fd5b5060405162003630380380620036308339810160408190526200005f91620005c4565b87518890889062000078906003906020850190620001ae565b5080516200008e906004906020840190620001ae565b505050620000ab620000a56200015860201b60201c565b6200015c565b8551620000c09060129060208901906200023d565b50601380546001600160a01b0319166001600160a01b0387161790558351620000f190601490602087019062000295565b50945160155581516007805460ff19169115159190911790558051600855602080830151600a805492840151600b5560409485015115156101000261ffff1990931691151561ff001916919091179190911790550151600c555050600d5550620007009050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001bc90620006c3565b90600052602060002090601f016020900481019282620001e057600085556200022b565b82601f10620001fb57805160ff19168380011785556200022b565b828001600101855582156200022b579182015b828111156200022b5782518255916020019190600101906200020e565b5062000239929150620002d2565b5090565b8280548282559060005260206000209081019282156200022b579160200282015b828111156200022b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200025e565b8280548282559060005260206000209081019282156200022b57916020028201828111156200022b5782518255916020019190600101906200020e565b5b80821115620002395760008155600101620002d3565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715620003245762000324620002e9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620003555762000355620002e9565b604052919050565b600082601f8301126200036f57600080fd5b81516001600160401b038111156200038b576200038b620002e9565b6020620003a1601f8301601f191682016200032a565b8281528582848701011115620003b657600080fd5b60005b83811015620003d6578581018301518282018401528201620003b9565b83811115620003e85760008385840101525b5095945050505050565b60006001600160401b038211156200040e576200040e620002e9565b5060051b60200190565b80516001600160a01b03811681146200043057600080fd5b919050565b600082601f8301126200044757600080fd5b81516020620004606200045a83620003f2565b6200032a565b82815260059290921b840181019181810190868411156200048057600080fd5b8286015b84811015620004a657620004988162000418565b835291830191830162000484565b509695505050505050565b600082601f830112620004c357600080fd5b81516020620004d66200045a83620003f2565b82815260059290921b84018101918181019086841115620004f657600080fd5b8286015b84811015620004a65780518352918301918301620004fa565b600082601f8301126200052557600080fd5b6200052f620002ff565b8060608401858111156200054257600080fd5b845b818110156200056e57805180151581146200055f5760008081fd5b84526020938401930162000544565b509095945050505050565b600082601f8301126200058b57600080fd5b62000595620002ff565b806060840185811115620005a857600080fd5b845b818110156200056e578051845260209384019301620005aa565b600080600080600080600080610180898b031215620005e257600080fd5b88516001600160401b0380821115620005fa57600080fd5b620006088c838d016200035d565b995060208b01519150808211156200061f57600080fd5b6200062d8c838d016200035d565b985060408b01519150808211156200064457600080fd5b620006528c838d0162000435565b97506200066260608c0162000418565b965060808b01519150808211156200067957600080fd5b50620006888b828c01620004b1565b9450506200069a8a60a08b0162000513565b9250620006ac8a6101008b0162000579565b915061016089015190509295985092959890939650565b600181811c90821680620006d857607f821691505b60208210811415620006fa57634e487b7160e01b600052602260045260246000fd5b50919050565b608051612f176200071960003960005050612f176000f3fe6080604052600436106104265760003560e01c806388993c8111610229578063b0cfbf161161012e578063dd62ed3e116100b6578063f2fde38b1161007a578063f2fde38b14610be9578063f623bb8b14610c09578063f82fa75614610c1f578063f8c0fd2014610c3c578063fbbf8cc314610c5157600080fd5b8063dd62ed3e14610b4f578063dfdedf6914610b6f578063e58306f914610b8f578063e6c6990a14610baf578063e757223014610bc957600080fd5b8063c3cb97c6116100fd578063c3cb97c614610abc578063c6ee6e3514610adc578063cacf084214610aef578063d266f3a914610b0f578063d83ae33214610b2f57600080fd5b8063b0cfbf1614610a47578063b6a3f59a14610a67578063b94b237614610a87578063c326876814610a9c57600080fd5b8063a1af10ca116101b1578063a9059cbb11610180578063a9059cbb146109bf578063a91bd1a9146109df578063ad1203dc146109ff578063af54001e14610a12578063afb16d1814610a2757600080fd5b8063a1af10ca1461093f578063a1db97821461095f578063a457c2d71461097f578063a7593fb71461099f57600080fd5b80638da5cb5b116101f85780638da5cb5b146108b75780638f770ad0146108d557806391b7f5ed146108ea57806395d89b411461090a57806398ad44171461091f57600080fd5b806388993c8114610857578063891bbe731461086c57806389f26d581461088c5780638d859f3e146108a157600080fd5b80634070a0c91161032f578063627255df116102b757806379ab3c891161028657806379ab3c89146107c057806379cc6790146107d55780637fb8c6d3146107f5578063853828b61461082d57806387491c601461084257600080fd5b8063627255df146107405780636d3de8061461076057806370a0823114610775578063715018a6146107ab57600080fd5b8063464c3428116102fe578063464c3428146106be57806346f41ed5146106de5780634783f0ef146106f85780634c23ce91146107185780635e8306561461072d57600080fd5b80634070a0c91461064957806342966c681461066957806343696f181461068957806345f7e06e146106a957600080fd5b806328ff1b51116103b2578063330067861161038157806333006786146105be57806334d00766146105de57806339509351146105f35780633d3f9c57146106135780633e07311c1461063357600080fd5b806328ff1b511461054c5780632b26a6bf1461056c5780632eb4a7ab1461058c578063313ce567146105a257600080fd5b80631963d0cc116103f95780631963d0cc146104c557806320fab142146104dd5780632181384e146104f757806323b872dd1461050c578063286c81371461052c57600080fd5b806306fdde031461042b5780630825850a14610456578063095ea7b31461048657806318160ddd146104a6575b600080fd5b34801561043757600080fd5b50610440610c87565b60405161044d9190612890565b60405180910390f35b34801561046257600080fd5b50610476610471366004612901565b610d19565b604051901515815260200161044d565b34801561049257600080fd5b506104766104a1366004612901565b610d66565b3480156104b257600080fd5b506002545b60405190815260200161044d565b3480156104d157600080fd5b50600a5460ff16610476565b3480156104e957600080fd5b506007546104769060ff1681565b61050a610505366004612977565b610d7e565b005b34801561051857600080fd5b506104766105273660046129e6565b6110d8565b34801561053857600080fd5b506104b7610547366004612a22565b6110fc565b34801561055857600080fd5b5061050a610567366004612b18565b61111d565b34801561057857600080fd5b5061050a610587366004612a22565b61116c565b34801561059857600080fd5b506104b7600f5481565b3480156105ae57600080fd5b506040516012815260200161044d565b3480156105ca57600080fd5b506104766105d9366004612bd3565b611179565b3480156105ea57600080fd5b50600b546104b7565b3480156105ff57600080fd5b5061047661060e366004612901565b611220565b34801561061f57600080fd5b5061047661062e366004612c26565b611242565b34801561063f57600080fd5b506104b760155481565b34801561065557600080fd5b5061050a610664366004612a22565b611265565b34801561067557600080fd5b5061050a610684366004612a22565b611272565b34801561069557600080fd5b5061050a6106a4366004612c26565b61127f565b3480156106b557600080fd5b5061050a6112f9565b3480156106ca57600080fd5b5061050a6106d9366004612c26565b611313565b3480156106ea57600080fd5b506016546104769060ff1681565b34801561070457600080fd5b5061050a610713366004612a22565b61133f565b34801561072457600080fd5b5061047661136f565b61050a61073b366004612901565b611397565b34801561074c57600080fd5b5061047661075b366004612a22565b6114c4565b34801561076c57600080fd5b5061050a6114e7565b34801561078157600080fd5b506104b7610790366004612c26565b6001600160a01b031660009081526020819052604090205490565b3480156107b757600080fd5b5061050a6114fb565b3480156107cc57600080fd5b5061050a61150f565b3480156107e157600080fd5b5061050a6107f0366004612901565b611526565b34801561080157600080fd5b50601354610815906001600160a01b031681565b6040516001600160a01b03909116815260200161044d565b34801561083957600080fd5b5061050a61153b565b34801561084e57600080fd5b5061050a61156a565b34801561086357600080fd5b50610476611580565b34801561087857600080fd5b50610815610887366004612a22565b6115a6565b34801561089857600080fd5b5061050a6115d0565b3480156108ad57600080fd5b506104b7600d5481565b3480156108c357600080fd5b506005546001600160a01b0316610815565b3480156108e157600080fd5b506104b76115e7565b3480156108f657600080fd5b5061050a610905366004612a22565b611602565b34801561091657600080fd5b5061044061160f565b34801561092b57600080fd5b5061050a61093a366004612c4f565b61161e565b34801561094b57600080fd5b5061047661095a366004612c26565b611640565b34801561096b57600080fd5b5061050a61097a366004612901565b61168d565b34801561098b57600080fd5b5061047661099a366004612901565b6117d9565b3480156109ab57600080fd5b5061050a6109ba366004612a22565b611817565b3480156109cb57600080fd5b506104766109da366004612901565b611850565b3480156109eb57600080fd5b5061050a6109fa366004612c26565b61185e565b61050a610a0d366004612c6c565b6118de565b348015610a1e57600080fd5b50600c546104b7565b348015610a3357600080fd5b5061050a610a42366004612cc6565b611a2f565b348015610a5357600080fd5b50610476610a62366004612a22565b611aa6565b348015610a7357600080fd5b5061050a610a82366004612a22565b611adf565b348015610a9357600080fd5b5061050a611b0f565b348015610aa857600080fd5b5061050a610ab7366004612c4f565b611b23565b348015610ac857600080fd5b5061050a610ad7366004612c4f565b611b3e565b61050a610aea366004612d0b565b611b59565b348015610afb57600080fd5b5061050a610b0a366004612c26565b611e89565b348015610b1b57600080fd5b506104b7610b2a366004612c26565b611eb2565b348015610b3b57600080fd5b5061050a610b4a366004612d47565b611ef9565b348015610b5b57600080fd5b506104b7610b6a366004612d86565b611f30565b348015610b7b57600080fd5b5061050a610b8a366004612c26565b611f5b565b348015610b9b57600080fd5b5061050a610baa366004612901565b611fd1565b348015610bbb57600080fd5b506010546104769060ff1681565b348015610bd557600080fd5b506104b7610be4366004612a22565b612028565b348015610bf557600080fd5b5061050a610c04366004612c26565b61208b565b348015610c1557600080fd5b506104b7600e5481565b348015610c2b57600080fd5b50600a54610100900460ff16610476565b348015610c4857600080fd5b5061050a6120c3565b348015610c5d57600080fd5b506104b7610c6c366004612c26565b6001600160a01b031660009081526009602052604090205490565b606060038054610c9690612db9565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc290612db9565b8015610d0f5780601f10610ce457610100808354040283529160200191610d0f565b820191906000526020600020905b815481529060010190602001808311610cf257829003601f168201915b5050505050905090565b600a5460009060ff16610d2e57506001610d60565b600b5482610d51856001600160a01b031660009081526009602052604090205490565b610d5b9190612e0a565b111590505b92915050565b600033610d748185856120de565b5060019392505050565b610d8661136f565b610da3576040516309c7220160e31b815260040160405180910390fd5b670de0b6b3a7640000841015610dcc5760405163b562e8dd60e01b815260040160405180910390fd5b610dd7858484611179565b610df45760405163097b24df60e41b815260040160405180910390fd5b610dfd846114c4565b610e1a576040516393eeb41560e01b815260040160405180910390fd5b610e248585610d19565b610e41576040516366be767160e11b815260040160405180910390fd5b610e4a84611aa6565b610e675760405163a4875a4960e01b815260040160405180910390fd5b600e543414610e895760405163078d696560e31b815260040160405180910390fd5b610e9281611242565b610eaf57604051636c501c9960e11b815260040160405180910390fd5b600084610ebb83611eb2565b610ec59190612e22565b6040516370a0823160e01b81526001600160a01b03888116600483015291925083918391908316906370a082319060240160206040518083038186803b158015610f0e57600080fd5b505afa158015610f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f469190612e41565b1015610f6557604051631642df1760e21b815260040160405180910390fd5b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283919083169063dd62ed3e9060440160206040518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190612e41565b10156110065760405163017e286b60e51b815260040160405180910390fd5b6040516323b872dd60e01b81526001600160a01b03888116600483015230602483015260448201849052600091908316906323b872dd90606401602060405180830381600087803b15801561105a57600080fd5b505af115801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612e5a565b9050806110b257604051633c9fd93960e21b815260040160405180910390fd5b6110ba61218d565b6110c488886121cf565b6110ce88886121f1565b5050505050505050565b6000336110e68582856122a1565b6110f18585856122e6565b506001949350505050565b6014818154811061110c57600080fd5b600091825260209091200154905081565b6111256123fe565b611131601260006127bd565b61113d601460006127bd565b81516111509060129060208501906127db565b508051611164906014906020840190612840565b505051601555565b6111746123fe565b600c55565b600f5460009061119c576040516363868c5560e11b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606086901b16602082015260009060340160405160208183030381529060405280519060200120905061121784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600f549150849050612489565b95945050505050565b600033610d748185856112338383611f30565b61123d9190612e0a565b6120de565b6001600160a01b031660009081526011602052604090205460ff16151560011490565b61126d6123fe565b600b55565b61127c338261249f565b50565b61128761257a565b6001600160a01b0381166112ae576040516322646a9760e21b815260040160405180910390fd5b6112b781611640565b156112d557604051638afaeb9d60e01b815260040160405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6113016123fe565b6016805462ffff001916610100179055565b61131b6123fe565b6001600160a01b03166000908152601160205260409020805460ff19166001179055565b6113476123fe565b600f5481141561136a5760405163a28a88c160e01b815260040160405180910390fd5b600f55565b60165460009062010000900460ff1680156113925750601654610100900460ff16155b905090565b60165460ff16156113bb576040516306717a3b60e51b815260040160405180910390fd5b670de0b6b3a76400008110156113e45760405163b562e8dd60e01b815260040160405180910390fd5b6113ec611580565b611409576040516306717a3b60e51b815260040160405180910390fd5b611412816114c4565b61142f576040516393eeb41560e01b815260040160405180910390fd5b61143881611aa6565b6114555760405163a4875a4960e01b815260040160405180910390fd5b61145f8282610d19565b61147c576040516366be767160e11b815260040160405180910390fd5b61148581612028565b34146114a45760405163078d696560e31b815260040160405180910390fd5b6114ac61218d565b6114b682826121cf565b6114c082826121f1565b5050565b600a54600090610100900460ff166114de57506001919050565b50600c54101590565b6114ef6123fe565b6010805460ff19169055565b61150361257a565b61150d60006125d4565b565b6115176123fe565b6010805460ff19166001179055565b6115318233836122a1565b6114c0828261249f565b6115436123fe565b47611561576040516363868c5560e11b815260040160405180910390fd5b61150d47612626565b6115726123fe565b6016805462ffff0019169055565b601654600090610100900460ff16801561139257505060165462010000900460ff161590565b601281815481106115b657600080fd5b6000918252602090912001546001600160a01b0316905081565b6115d86123fe565b6016805460ff19166001179055565b60075460009060ff166115fb575060025490565b5060085490565b61160a6123fe565b600d55565b606060048054610c9690612db9565b6116266123fe565b600a80549115156101000261ff0019909216919091179055565b60006001600160a01b038216611669576040516322646a9760e21b815260040160405180910390fd5b506001600160a01b031660009081526006602052604090205460ff16151560011490565b6116956123fe565b806116b3576040516363868c5560e11b815260040160405180910390fd5b6040516370a0823160e01b8152306004820152829082906001600160a01b038316906370a082319060240160206040518083038186803b1580156116f657600080fd5b505afa15801561170a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172e9190612e41565b101561174d57604051631642df1760e21b815260040160405180910390fd5b60135460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529082169063a9059cbb90604401602060405180830381600087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190612e5a565b50505050565b600033816117e78286611f30565b90508381101561180a57604051631642df1760e21b815260040160405180910390fd5b6110f182868684036120de565b3373a9dac8f3aedc55d0fe707b86b8a45d246858d2e11461184b57604051639b96b05160e01b815260040160405180910390fd5b600e55565b600033610d748185856122e6565b6118666123fe565b6001600160a01b03811661188d576040516322646a9760e21b815260040160405180910390fd5b6013546001600160a01b03828116911614156118bc5760405163a28a88c160e01b815260040160405180910390fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b60165460ff1615611902576040516309c7220160e31b815260040160405180910390fd5b670de0b6b3a764000083101561192b5760405163b562e8dd60e01b815260040160405180910390fd5b61193361136f565b611950576040516309c7220160e31b815260040160405180910390fd5b61195b848383611179565b6119785760405163097b24df60e41b815260040160405180910390fd5b611981836114c4565b61199e576040516393eeb41560e01b815260040160405180910390fd5b6119a88484610d19565b6119c5576040516366be767160e11b815260040160405180910390fd5b6119ce83611aa6565b6119eb5760405163a4875a4960e01b815260040160405180910390fd5b6119f483612028565b3414611a135760405163078d696560e31b815260040160405180910390fd5b611a1b61218d565b611a2584846121cf565b6117d384846121f1565b611a376123fe565b670de0b6b3a7640000811015611a605760405163b562e8dd60e01b815260040160405180910390fd5b60005b8251811015611aa157611a8f838281518110611a8157611a81612e77565b6020026020010151836121f1565b80611a9981612e8d565b915050611a63565b505050565b60075460009060ff16611abb57506001919050565b611ac36115e7565b82611acd60025490565b611ad79190612e0a565b111592915050565b611ae76123fe565b600254811015611b0a5760405163cc67044560e01b815260040160405180910390fd5b600855565b611b176123fe565b6016805460ff19169055565b611b2b6123fe565b6007805460ff1916911515919091179055565b611b466123fe565b600a805460ff1916911515919091179055565b670de0b6b3a7640000821015611b825760405163b562e8dd60e01b815260040160405180910390fd5b611b8b82611aa6565b611ba85760405163a4875a4960e01b815260040160405180910390fd5b611bb0611580565b611bcd576040516306717a3b60e51b815260040160405180910390fd5b611bd6826114c4565b611bf3576040516393eeb41560e01b815260040160405180910390fd5b611bfd8383610d19565b611c1a576040516366be767160e11b815260040160405180910390fd5b600e543414611c3c5760405163078d696560e31b815260040160405180910390fd5b611c4581611242565b611c6257604051636c501c9960e11b815260040160405180910390fd5b600082611c6e83611eb2565b611c789190612e22565b6040516370a0823160e01b81526001600160a01b03868116600483015291925083918391908316906370a082319060240160206040518083038186803b158015611cc157600080fd5b505afa158015611cd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf99190612e41565b1015611d1857604051631642df1760e21b815260040160405180910390fd5b604051636eb1769f60e11b81526001600160a01b03868116600483015230602483015283919083169063dd62ed3e9060440160206040518083038186803b158015611d6257600080fd5b505afa158015611d76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9a9190612e41565b1015611db95760405163017e286b60e51b815260040160405180910390fd5b6040516323b872dd60e01b81526001600160a01b03868116600483015230602483015260448201849052600091908316906323b872dd90606401602060405180830381600087803b158015611e0d57600080fd5b505af1158015611e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e459190612e5a565b905080611e6557604051633c9fd93960e21b815260040160405180910390fd5b611e6d61218d565b611e7786866121cf565b611e8186866121f1565b505050505050565b611e916123fe565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000611ebd82611242565b611eda57604051636c501c9960e11b815260040160405180910390fd5b506001600160a01b031660009081526011602052604090206001015490565b611f016123fe565b6001600160a01b03929092166000908152601160205260409020805460ff191691151591909117815560010155565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611f6361257a565b6001600160a01b038116611f8a576040516322646a9760e21b815260040160405180910390fd5b611f9381611640565b611fb057604051638afaeb9d60e01b815260040160405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b611fd96123fe565b670de0b6b3a76400008110156120025760405163b562e8dd60e01b815260040160405180910390fd5b61200b81611aa6565b6114b65760405163a4875a4960e01b815260040160405180910390fd5b6000670de0b6b3a764000082101561205357604051631cdaa1ed60e31b815260040160405180910390fd5b6000612067670de0b6b3a764000084612ea8565b9050600e5481600d5461207a9190612e22565b6120849190612e0a565b9392505050565b61209361257a565b6001600160a01b0381166120ba576040516322646a9760e21b815260040160405180910390fd5b61127c816125d4565b6120cb6123fe565b6016805462ffff00191662010000179055565b6001600160a01b038316612105576040516322646a9760e21b815260040160405180910390fd5b6001600160a01b03821661212c576040516322646a9760e21b815260040160405180910390fd5b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e5460405173a9dac8f3aedc55d0fe707b86b8a45d246858d2e19180156108fc02916000818181858888f1935050505015801561127c573d6000803e3d6000fd5b6001600160a01b03909116600090815260096020526040902080549091019055565b6001600160a01b038216612218576040516322646a9760e21b815260040160405180910390fd5b806002600082825461222a9190612e0a565b90915550506001600160a01b03821660009081526020819052604081208054839290612257908490612e0a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006122ad8484611f30565b905060001981146117d357818110156122d957604051631642df1760e21b815260040160405180910390fd5b6117d384848484036120de565b6001600160a01b03831661230d576040516322646a9760e21b815260040160405180910390fd5b6001600160a01b038216612334576040516322646a9760e21b815260040160405180910390fd5b6001600160a01b0383166000908152602081905260409020548181101561236e57604051631642df1760e21b815260040160405180910390fd5b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906123a5908490612e0a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123f191815260200190565b60405180910390a36117d3565b6005546001600160a01b0316339081149060009061241b90611640565b905081806124265750805b6114c05760405162461bcd60e51b815260206004820152602960248201527f5465616d3a2063616c6c6572206973206e6f7420746865206f776e6572206f726044820152681034b7102a32b0b69760b91b60648201526084015b60405180910390fd5b60008261249685846126b3565b14949350505050565b6001600160a01b0382166124c6576040516322646a9760e21b815260040160405180910390fd5b6001600160a01b0382166000908152602081905260409020548181101561250057604051631642df1760e21b815260040160405180910390fd5b6001600160a01b038316600090815260208190526040812083830390556002805484929061252f908490612eca565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6005546001600160a01b0316331461150d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612480565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005b6015548110156114c0576126a16012828154811061264957612649612e77565b9060005260206000200160009054906101000a90046001600160a01b031660646014848154811061267c5761267c612e77565b9060005260206000200154856126929190612e22565b61269c9190612ea8565b612727565b806126ab81612e8d565b915050612629565b600081815b845181101561271f5760008582815181106126d5576126d5612e77565b602002602001015190508083116126fb576000838152602082905260409020925061270c565b600081815260208490526040902092505b508061271781612e8d565b9150506126b8565b509392505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612774576040519150601f19603f3d011682016040523d82523d6000602084013e612779565b606091505b5050905080611aa15760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b6044820152606401612480565b508054600082559060005260206000209081019061127c919061287b565b828054828255906000526020600020908101928215612830579160200282015b8281111561283057825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906127fb565b5061283c92915061287b565b5090565b828054828255906000526020600020908101928215612830579160200282015b82811115612830578251825591602001919060010190612860565b5b8082111561283c576000815560010161287c565b600060208083528351808285015260005b818110156128bd578581018301518582016040015282016128a1565b818111156128cf576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146128fc57600080fd5b919050565b6000806040838503121561291457600080fd5b61291d836128e5565b946020939093013593505050565b60008083601f84011261293d57600080fd5b50813567ffffffffffffffff81111561295557600080fd5b6020830191508360208260051b850101111561297057600080fd5b9250929050565b60008060008060006080868803121561298f57600080fd5b612998866128e5565b945060208601359350604086013567ffffffffffffffff8111156129bb57600080fd5b6129c78882890161292b565b90945092506129da9050606087016128e5565b90509295509295909350565b6000806000606084860312156129fb57600080fd5b612a04846128e5565b9250612a12602085016128e5565b9150604084013590509250925092565b600060208284031215612a3457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a7a57612a7a612a3b565b604052919050565b600067ffffffffffffffff821115612a9c57612a9c612a3b565b5060051b60200190565b600082601f830112612ab757600080fd5b81356020612acc612ac783612a82565b612a51565b82815260059290921b84018101918181019086841115612aeb57600080fd5b8286015b84811015612b0d57612b00816128e5565b8352918301918301612aef565b509695505050505050565b60008060408385031215612b2b57600080fd5b823567ffffffffffffffff80821115612b4357600080fd5b612b4f86838701612aa6565b9350602091508185013581811115612b6657600080fd5b85019050601f81018613612b7957600080fd5b8035612b87612ac782612a82565b81815260059190911b82018301908381019088831115612ba657600080fd5b928401925b82841015612bc457833582529284019290840190612bab565b80955050505050509250929050565b600080600060408486031215612be857600080fd5b612bf1846128e5565b9250602084013567ffffffffffffffff811115612c0d57600080fd5b612c198682870161292b565b9497909650939450505050565b600060208284031215612c3857600080fd5b612084826128e5565b801515811461127c57600080fd5b600060208284031215612c6157600080fd5b813561208481612c41565b60008060008060608587031215612c8257600080fd5b612c8b856128e5565b935060208501359250604085013567ffffffffffffffff811115612cae57600080fd5b612cba8782880161292b565b95989497509550505050565b60008060408385031215612cd957600080fd5b823567ffffffffffffffff811115612cf057600080fd5b612cfc85828601612aa6565b95602094909401359450505050565b600080600060608486031215612d2057600080fd5b612d29846128e5565b925060208401359150612d3e604085016128e5565b90509250925092565b600080600060608486031215612d5c57600080fd5b612d65846128e5565b92506020840135612d7581612c41565b929592945050506040919091013590565b60008060408385031215612d9957600080fd5b612da2836128e5565b9150612db0602084016128e5565b90509250929050565b600181811c90821680612dcd57607f821691505b60208210811415612dee57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612e1d57612e1d612df4565b500190565b6000816000190483118215151615612e3c57612e3c612df4565b500290565b600060208284031215612e5357600080fd5b5051919050565b600060208284031215612e6c57600080fd5b815161208481612c41565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612ea157612ea1612df4565b5060010190565b600082612ec557634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612edc57612edc612df4565b50039056fea26469706673582212209af33394c65b1c033c9856392d32857f08225a976a16f5f311f0a5ea6cb4736864736f6c63430008090033000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000007fcd4fe367614680a2e17796c4340b87ed640db700000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000001b5d15b7f788bf7fcad8c000000000000000000000000000000000000000000000064f964e68233a76f52000000000000000000000000000000000000000000000064f964e68233a76f52000000000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000841525420434f494e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004244152540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000007fcd4fe367614680a2e17796c4340b87ed640db700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000064