[ { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "CannotExceedMaxSupplyOfUint64", "type": "error" }, { "inputs": [], "name": "InvalidQueryRange", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "basisPoints", "type": "uint256" } ], "name": "InvalidRoyaltyBasisPoints", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "total", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" } ], "name": "MintQuantityExceedsMaxSupply", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OnlyAdmin", "type": "error" }, { "inputs": [], "name": "OnlyVaultNiftyDrop", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "OperatorNotAllowed", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "ProvenanceHashCannotBeSetAfterMintStarted", "type": "error" }, { "inputs": [], "name": "RegistryInvalid", "type": "error" }, { "inputs": [], "name": "RoyaltyAddressCannotBeZeroAddress", "type": "error" }, { "inputs": [], "name": "TokenIsSoulBound", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newContractURI", "type": "string" } ], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "MaxSupplyUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "disabled", "type": "bool" } ], "name": "OperatorFilterEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "previousHash", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32", "name": "newHash", "type": "bytes32" } ], "name": "ProvenanceHashUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "bps", "type": "uint256" } ], "name": "RoyaltyInfoUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "drop", "type": "address" } ], "name": "SetDropAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "drop", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "internalType": "uint256", "name": "toTokenId", "type": "uint256" } ], "name": "emitBatchMetadataUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721AUpgradeable.TokenOwnership", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721AUpgradeable.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOffsetToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "string", "name": "tokenBaseURI", "type": "string" }, { "internalType": "address", "name": "royaltyAddress", "type": "address" }, { "internalType": "uint96", "name": "royaltyPercentage", "type": "uint96" }, { "internalType": "bool", "name": "isOffsetTokenURI", "type": "bool" }, { "internalType": "bool", "name": "isSoulBound", "type": "bool" } ], "internalType": "struct InitERC721Params", "name": "initParams", "type": "tuple" }, { "internalType": "address", "name": "_drop", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isOperatorFilter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isSoulBound", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mintVaultNiftyDrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "numberMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operatorFilterRegistry", "outputs": [ { "internalType": "contract IOperatorFilterRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "provenanceHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltyAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royaltyBasisPoints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newContractURI", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "newProvenanceHash", "type": "bytes32" } ], "name": "setProvenanceHash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "royaltyAddress", "type": "address" }, { "internalType": "uint96", "name": "royaltyBps", "type": "uint96" } ], "internalType": "struct RoyaltyInfo", "name": "newInfo", "type": "tuple" } ], "name": "setRoyaltyInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toggleOperatorFilterEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBurned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRegistry", "type": "address" }, { "internalType": "address", "name": "subscriptionOrRegistrantToCopy", "type": "address" }, { "internalType": "bool", "name": "subscribe", "type": "bool" } ], "name": "updateOperatorFilterRegistry", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "subscriptionOrRegistrantToCopy", "type": "address" }, { "internalType": "bool", "name": "subscribe", "type": "bool" }, { "internalType": "bool", "name": "copyEntries", "type": "bool" } ], "name": "updateRegistrySubscription", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b506139d6806100206000396000f3fe6080604052600436106102885760003560e01c80637b070bbf1161015a578063b0fde7fb116100c1578063d89135cd1161007a578063d89135cd146107f4578063dc33e68114610809578063e8a3d48514610829578063e985e9c51461083e578063f2fde38b1461085e578063f751cd8f1461087e57600080fd5b8063b0fde7fb14610731578063b88d4fde1461074b578063c23dc68f1461075e578063c6ab67a31461078b578063c87b56dd146107bf578063d5abeb01146107df57600080fd5b806399a2557a1161011357806399a2557a1461066b578063a22cb4651461068b578063a2309ff8146106ab578063a4830114146106c0578063ad2f852a146106e0578063b0ccc31e1461070b57600080fd5b80637b070bbf146105ab5780638462151c146105cb5780638da5cb5b146105f8578063938e3d7b1461061657806394b08a4b1461063657806395d89b411461065657600080fd5b806342260b5d116101fe5780635bbb2177116101b75780635bbb2177146104f45780636352211e146105215780636c0360eb146105415780636f8b44b01461055657806370a0823114610576578063715018a61461059657600080fd5b806342260b5d1461042f57806342842e0e1461046157806344dae42c146104745780634d8b9fc01461049457806355f804b3146104b4578063577199fd146104d457600080fd5b806312ff44ce1161025057806312ff44ce1461035157806318160ddd1461036657806323b872dd146103895780632a55205a1461039c5780632c2172e8146103db5780632f33e780146103fa57600080fd5b806301ffc9a71461028d57806306fdde03146102c2578063081812fc146102e4578063095ea7b31461031c578063099b6bfa14610331575b600080fd5b34801561029957600080fd5b506102ad6102a8366004612ec0565b6108a3565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102d76108ce565b6040516102b99190612f2d565b3480156102f057600080fd5b506103046102ff366004612f40565b610969565b6040516001600160a01b0390911681526020016102b9565b61032f61032a366004612f70565b6109b6565b005b34801561033d57600080fd5b5061032f61034c366004612f40565b610a99565b34801561035d57600080fd5b506102ad610b2f565b34801561037257600080fd5b5061037b610bab565b6040519081526020016102b9565b61032f610397366004612f9a565b610bcb565b3480156103a857600080fd5b506103bc6103b7366004612fd6565b610cc2565b604080516001600160a01b0390931683526020830191909152016102b9565b3480156103e757600080fd5b506097546102ad90610100900460ff1681565b34801561040657600080fd5b5061041860ca5460cb5460ff90911691565b6040805192151583526020830191909152016102b9565b34801561043b57600080fd5b5060008051602061396183398151915254600160a01b90046001600160601b031661037b565b61032f61046f366004612f9a565b610d15565b34801561048057600080fd5b5061032f61048f366004612ff8565b610e01565b3480156104a057600080fd5b5061032f6104af366004612f70565b610e23565b3480156104c057600080fd5b5061032f6104cf36600461300a565b610ebf565b3480156104e057600080fd5b5061032f6104ef366004613089565b610f4c565b34801561050057600080fd5b5061051461050f3660046130d0565b611044565b6040516102b9919061316e565b34801561052d57600080fd5b5061030461053c366004612f40565b61110f565b34801561054d57600080fd5b506102d761111a565b34801561056257600080fd5b5061032f610571366004612f40565b611129565b34801561058257600080fd5b5061037b6105913660046131b0565b61113a565b3480156105a257600080fd5b5061032f6111a2565b3480156105b757600080fd5b5061032f6105c63660046131cb565b6111b6565b3480156105d757600080fd5b506105eb6105e63660046131b0565b611576565b6040516102b9919061321e565b34801561060457600080fd5b506033546001600160a01b0316610304565b34801561062257600080fd5b5061032f61063136600461300a565b61167e565b34801561064257600080fd5b5061032f610651366004613256565b6116e4565b34801561066257600080fd5b506102d76117bd565b34801561067757600080fd5b506105eb610686366004613284565b6117d5565b34801561069757600080fd5b5061032f6106a63660046132b7565b61195b565b3480156106b757600080fd5b5061037b611a34565b3480156106cc57600080fd5b5061032f6106db366004612fd6565b611a3e565b3480156106ec57600080fd5b50600080516020613961833981519152546001600160a01b0316610304565b34801561071757600080fd5b50609754610304906201000090046001600160a01b031681565b34801561073d57600080fd5b506097546102ad9060ff1681565b61032f610759366004613334565b611a7c565b34801561076a57600080fd5b5061077e610779366004612f40565b611b76565b6040516102b991906133f3565b34801561079757600080fd5b507fb847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a4031c5461037b565b3480156107cb57600080fd5b506102d76107da366004612f40565b611c03565b3480156107eb57600080fd5b5061037b611d42565b34801561080057600080fd5b5061037b611d5a565b34801561081557600080fd5b5061037b6108243660046131b0565b611d64565b34801561083557600080fd5b506102d7611d6f565b34801561084a57600080fd5b506102ad610859366004613401565b611d85565b34801561086a57600080fd5b5061032f6108793660046131b0565b611dc2565b34801561088a57600080fd5b5060ca546103049061010090046001600160a01b031681565b60006001600160e01b03198216639c15441560e01b14806108c857506108c882611e38565b92915050565b60606108d8611e78565b60020180546108e69061341d565b80601f01602080910402602001604051908101604052809291908181526020018280546109129061341d565b801561095f5780601f106109345761010080835404028352916020019161095f565b820191906000526020600020905b81548152906001019060200180831161094257829003601f168201915b5050505050905090565b600061097482611e9c565b610991576040516333d1c03960e21b815260040160405180910390fd5b610999611e78565b60009283526006016020525060409020546001600160a01b031690565b6097548290610100900460ff1680156109e057506097546201000090046001600160a01b03163b15155b15610a8a57609754604051633185c44d60e21b8152620100009091046001600160a01b03169063c617113490610a1c9030908590600401613451565b602060405180830381865afa158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d919061346b565b610a8a57604051633b79c77360e21b81526001600160a01b03821660048201526024015b60405180910390fd5b610a948383611ee5565b505050565b610aa1611ef1565b6000610aab611f4b565b1115610aca5760405163e03264af60e01b815260040160405180910390fd5b7fb847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a4031c80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b6000610b3a33611f5e565b610b5757604051634755657960e01b815260040160405180910390fd5b6097805461ff001981166101009182900460ff1615918202179091556040518181527f344ab2b3afadf9b35b6866617403743c9abd5b1699ca427b48e2a43b8495c8b89060200160405180910390a1905090565b60006001610bb7611e78565b60010154610bc3611e78565b540303919050565b6097548390610100900460ff168015610bf557506097546201000090046001600160a01b03163b15155b15610cb157336001600160a01b03821603610c1a57610c15848484611f8d565b610cbc565b609754604051633185c44d60e21b8152620100009091046001600160a01b03169063c617113490610c519030903390600401613451565b602060405180830381865afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c92919061346b565b610cb157604051633b79c77360e21b8152336004820152602401610a81565b610cbc848484611f8d565b50505050565b6000805160206139618339815191528054600091829161271090610cf690600160a01b90046001600160601b03168661349e565b610d0091906134cb565b90546001600160a01b03169590945092505050565b6097548390610100900460ff168015610d3f57506097546201000090046001600160a01b03163b15155b15610df657336001600160a01b03821603610d5f57610c15848484612191565b609754604051633185c44d60e21b8152620100009091046001600160a01b03169063c617113490610d969030903390600401613451565b602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd7919061346b565b610df657604051633b79c77360e21b8152336004820152602401610a81565b610cbc848484612191565b610e09611ef1565b610e20610e1b368390038301836134f6565b6121ac565b50565b60ca5461010090046001600160a01b03163314610e5357604051633c4af45960e11b815260040160405180910390fd5b610e5b611d42565b81610e64611f4b565b610e6e9190613550565b1115610eb15780610e7d611f4b565b610e879190613550565b610e8f611d42565b60405163384b48c560e21b815260048101929092526024820152604401610a81565b610ebb8282612285565b5050565b610ec7611ef1565b7fb847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a4031a610ef38284836135a9565b50610efc610bab565b15610ebb577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180610f2d61229f565b610f379190613668565b60408051928352602083019190915201610b23565b610f5533611f5e565b610f7257604051634755657960e01b815260040160405180910390fd5b826001600160a01b0381163b600003610f9e57604051630458607f60e41b815260040160405180910390fd5b60405163c3c5a54760e01b81523060048201526001600160a01b0382169063c3c5a547906024016020604051808303816000875af1158015610fe4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611008919061346b565b611017576110178184846122a9565b609780546001600160a01b03909216620100000262010000600160b01b0319909216919091179055505050565b6060816000816001600160401b03811115611061576110616132ee565b6040519080825280602002602001820160405280156110b357816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018161107f5790505b50905060005b828114611106576110e18686838181106110d5576110d561367b565b90506020020135611b76565b8282815181106110f3576110f361367b565b60209081029190910101526001016110b9565b50949350505050565b60006108c88261244e565b60606111246124fb565b905090565b611131611ef1565b610e208161251a565b60006001600160a01b038216611163576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03611173611e78565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b6111aa611ef1565b6111b46000612586565b565b600054610100900460ff16158080156111d65750600054600160ff909116105b806111f05750303b1580156111f0575060005460ff166001145b6112535760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a81565b6000805460ff191660011790558015611276576000805461ff0019166101001790555b60008051602061398183398151915254610100900460ff166112ab576000805160206139818339815191525460ff16156112af565b303b155b6113215760405162461bcd60e51b815260206004820152603760248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f20697320616c726561647920696e697469616c697a65640000000000000000006064820152608401610a81565b60008051602061398183398151915254610100900460ff1615801561135d57600080516020613981833981519152805461ffff19166101011790555b6001600160a01b0383166113845760405163d92e233d60e01b815260040160405180910390fd5b61138c6125d8565b6114576113998580613691565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113db925050506020870187613691565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061141d925050506060880188613691565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061260792505050565b611464846040013561251a565b61147c61147760e0860160c087016136de565b61264b565b611495611490610100860160e087016136de565b612692565b6114e460405180604001604052808660800160208101906114b691906131b0565b6001600160a01b031681526020016114d460c0880160a089016136fb565b6001600160601b031690526121ac565b6114ec6126cc565b60ca8054610100600160a81b0319166101006001600160a01b03861602179055801561152b57600080516020613981833981519152805461ff00191690555b508015610a94576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b606060008060006115868561113a565b90506000816001600160401b038111156115a2576115a26132ee565b6040519080825280602002602001820160405280156115cb578160200160208202803683370190505b5090506115f860408051608081018252600080825260208201819052918101829052606081019190915290565b60015b8386146116725761160b816126fb565b9150816040015161166a5781516001600160a01b03161561162b57815194505b876001600160a01b0316856001600160a01b03160361166a578083878060010198508151811061165d5761165d61367b565b6020026020010181815250505b6001016115fb565b50909695505050505050565b611686611ef1565b7fb847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a4031b6116b28284836135a9565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610b23929190613716565b6116ed33611f5e565b61170a57604051634755657960e01b815260040160405180910390fd5b6097546201000090046001600160a01b0316803b60000361173e57604051630458607f60e41b815260040160405180910390fd5b6001600160a01b0384166117b25760405163034a0dc160e41b815230600482015282151560248201526001600160a01b038216906334a0dc1090604401600060405180830381600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b50505050610cbc565b610cbc8185856122a9565b60606117c7611e78565b60030180546108e69061341d565b60608183106117f757604051631960ccad60e11b815260040160405180910390fd5b60008061180261229f565b9050600185101561181257600194505b8084111561181e578093505b60006118298761113a565b9050848610156118485785850381811015611842578091505b5061184c565b5060005b6000816001600160401b03811115611866576118666132ee565b60405190808252806020026020018201604052801561188f578160200160208202803683370190505b509050816000036118a557935061195492505050565b60006118b088611b76565b9050600081604001516118c1575080515b885b8881141580156118d35750848714155b15611948576118e1816126fb565b925082604001516119405782516001600160a01b03161561190157825191505b8a6001600160a01b0316826001600160a01b03160361194057808488806001019950815181106119335761193361367b565b6020026020010181815250505b6001016118c3565b50505092835250909150505b9392505050565b6097548290610100900460ff16801561198557506097546201000090046001600160a01b03163b15155b15611a2a57609754604051633185c44d60e21b8152620100009091046001600160a01b03169063c6171134906119c19030908590600401613451565b602060405180830381865afa1580156119de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a02919061346b565b611a2a57604051633b79c77360e21b81526001600160a01b0382166004820152602401610a81565b610a948383612742565b6000611124611f4b565b611a46611ef1565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9101610b23565b6097548490610100900460ff168015611aa657506097546201000090046001600160a01b03163b15155b15611b6357336001600160a01b03821603611acc57611ac7858585856127bf565b611b6f565b609754604051633185c44d60e21b8152620100009091046001600160a01b03169063c617113490611b039030903390600401613451565b602060405180830381865afa158015611b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b44919061346b565b611b6357604051633b79c77360e21b8152336004820152602401610a81565b611b6f858585856127bf565b5050505050565b6040805160808101825260008082526020820181905291810182905260608101919091526040805160808101825260008082526020820181905291810182905260608101919091526001831080611bd45750611bd061229f565b8310155b15611bdf5792915050565b611be8836126fb565b9050806040015115611bfa5792915050565b61195483612803565b6060611c0e82611e9c565b611c2b57604051630a14c4b560e41b815260040160405180910390fd5b6000611c356124fb565b90508051600003611c56575050604080516020810190915260008152919050565b604080518082019091526001808252602f60f81b602090920182905282518391611c7f91613668565b81518110611c8f57611c8f61367b565b01602001516001600160f81b03191614611ca95792915050565b60ca5460ff1615611d0a576000611cbe611d42565b60cb54611ccb9086613550565b611cd59190613745565b905081611ce182612838565b604051602001611cf2929190613759565b60405160208183030381529060405292505050919050565b80611d1484612838565b604051602001611d25929190613759565b604051602081830303815290604052915050919050565b50919050565b60006000805160206139418339815191525b54919050565b600061112461287c565b60006108c88261288f565b60606000805160206139418339815191526108d8565b6000611d8f611e78565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b611dca611ef1565b6001600160a01b038116611e2f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a81565b610e2081612586565b60006001600160e01b0319821663152a902d60e11b1480611e695750632483248360e11b6001600160e01b03198316145b806108c857506108c8826128d4565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4090565b600081600111158015611eb65750611eb2611e78565b5482105b80156108c85750600160e01b611eca611e78565b60008481526004919091016020526040902054161592915050565b610ebb82826001612922565b6033546001600160a01b031633146111b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a81565b60006001611f57611e78565b5403919050565b6000611f726033546001600160a01b031690565b6001600160a01b0316826001600160a01b0316149050919050565b6000611f988261244e565b9050836001600160a01b0316816001600160a01b031614611fcb5760405162a1148160e81b815260040160405180910390fd5b600080611fd7846129d7565b91509150611ffc8187611fe73390565b6001600160a01b039081169116811491141790565b6120275761200a8633611d85565b61202757604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661204e57604051633a954ecd60e21b815260040160405180910390fd5b61205b86868660016129ff565b801561206657600082555b61206e611e78565b6001600160a01b038716600090815260059190910160205260409020805460001901905561209a611e78565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b176120d1611e78565b60008681526004919091016020526040812091909155600160e11b841690036121475760018401612100611e78565b60008281526004919091016020526040812054900361214557612121611e78565b5481146121455783612131611e78565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b610a9483838360405180602001604052806000815250611a7c565b80516001600160a01b03166121d457604051631cc0baef60e01b815260040160405180910390fd5b61271081602001516001600160601b03161115612215576020810151604051633cadbafb60e01b81526001600160601b039091166004820152602401610a81565b80516020808301516001600160601b0316600160a01b81026001600160a01b039093169283176000805160206139618339815191525560408051938452918301527ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d91015b60405180910390a150565b610ebb828260405180602001604052806000815250612a09565b6000611d54611e78565b60405163c3c5a54760e01b81523060048201526001600160a01b0384169063c3c5a547906024016020604051808303816000875af11580156122ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612313919061346b565b156123b157801561238357604051632cc5350560e21b81526001600160a01b0384169063b314d4149061234c9030908690600401613451565b600060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b50505050505050565b604051630781ad2d60e21b81526001600160a01b03841690631e06b4b49061234c9030908690600401613451565b80156123e557604051633e9f1edf60e11b81526001600160a01b03841690637d3e3dbe9061234c9030908690600401613451565b6001600160a01b038216156124225760405163a0af290360e01b81526001600160a01b0384169063a0af29039061234c9030908690600401613451565b604051632210724360e11b81523060048201526001600160a01b03841690634420e4869060240161234c565b6000816001116124e257612460611e78565b600083815260049190910160205260408120549150600160e01b821690036124e257806000036124dd57612492611e78565b5482106124b257604051636f96cda160e11b815260040160405180910390fd5b6124ba611e78565b6000199092016000818152600493909301602052604090922054905080156124b2575b919050565b604051636f96cda160e11b815260040160405180910390fd5b606060008051602061394183398151915260010180546108e69061341d565b6001600160401b038111156125455760405163b43e913760e01b815260048101829052602401610a81565b80600080516020613941833981519152556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200161227a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166125ff5760405162461bcd60e51b8152600401610a8190613788565b6111b4612a7f565b600054610100900460ff1661262e5760405162461bcd60e51b8152600401610a8190613788565b6126366126cc565b6126408383612aad565b610a94838383612aeb565b801561268057612659611d42565b6126634442613550565b61266d9190613745565b60cb5560ca805460ff1916600117905550565b600060cb5560ca805460ff1916905550565b600054610100900460ff166126b95760405162461bcd60e51b8152600401610a8190613788565b6097805460ff1916911515919091179055565b600054610100900460ff166126f35760405162461bcd60e51b8152600401610a8190613788565b6111b4612b44565b6040805160808101825260008082526020820181905291810182905260608101919091526108c861272a611e78565b60008481526004919091016020526040902054612b74565b8061274b611e78565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6127ca848484610bcb565b6001600160a01b0383163b15610cbc576127e684848484612bbb565b610cbc576040516368d2bf6b60e11b815260040160405180910390fd5b6040805160808101825260008082526020820181905291810182905260608101919091526108c86128338361244e565b612b74565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806128525750819003601f19909101908152919050565b6000612886611e78565b60010154905090565b60006001600160401b0360406128a3611e78565b6005016000856001600160a01b03166001600160a01b0316815260200190815260200160002054901c169050919050565b60006301ffc9a760e01b6001600160e01b03198316148061290557506380ac58cd60e01b6001600160e01b03198316145b806108c85750506001600160e01b031916635b5e139f60e01b1490565b600061292d8361110f565b9050811561296c57336001600160a01b0382161461296c5761294f8133611d85565b61296c576040516367d9dca160e11b815260040160405180910390fd5b83612975611e78565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b60008060006129e4611e78565b60009485526006016020525050604090912080549092909150565b610cbc8484612ca6565b612a138383612cef565b6001600160a01b0383163b15610a94576000612a2d611e78565b5490508281035b612a476000868380600101945086612bbb565b612a64576040516368d2bf6b60e11b815260040160405180910390fd5b818110612a345781612a74611e78565b5414611b6f57600080fd5b600054610100900460ff16612aa65760405162461bcd60e51b8152600401610a8190613788565b6001606555565b60008051602061398183398151915254610100900460ff16612ae15760405162461bcd60e51b8152600401610a81906137d3565b610ebb8282612e37565b600054610100900460ff16612b125760405162461bcd60e51b8152600401610a8190613788565b805115610a94577fb847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a4031a610cbc8282613827565b600054610100900460ff16612b6b5760405162461bcd60e51b8152600401610a8190613788565b6111b433612586565b604080516080810182526001600160a01b038316815260a083901c6001600160401b03166020820152600160e01b831615159181019190915260e89190911c606082015290565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290612bf09033908990889088906004016138e6565b6020604051808303816000875af1925050508015612c2b575060408051601f3d908101601f19168201909252612c2891810190613923565b60015b612c89573d808015612c59576040519150601f19603f3d011682016040523d82523d6000602084013e612c5e565b606091505b508051600003612c81576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b6001600160a01b03821615801590612cc657506001600160a01b03811615155b15610ebb5760975460ff1615610ebb576040516328f11eb160e21b815260040160405180910390fd5b6000612cf9611e78565b5490506000829003612d1e5760405163b562e8dd60e01b815260040160405180910390fd5b612d2b60008483856129ff565b680100000000000000018202612d3f611e78565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717612d7a611e78565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114612e0457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612dcc565b5081600003612e2557604051622e076360e81b815260040160405180910390fd5b80612e2e611e78565b5550610a949050565b60008051602061398183398151915254610100900460ff16612e6b5760405162461bcd60e51b8152600401610a81906137d3565b81612e74611e78565b60020190612e829082613827565b5080612e8c611e78565b60030190612e9a9082613827565b506001612ea5611e78565b555050565b6001600160e01b031981168114610e2057600080fd5b600060208284031215612ed257600080fd5b813561195481612eaa565b60005b83811015612ef8578181015183820152602001612ee0565b50506000910152565b60008151808452612f19816020860160208601612edd565b601f01601f19169290920160200192915050565b6020815260006119546020830184612f01565b600060208284031215612f5257600080fd5b5035919050565b80356001600160a01b03811681146124dd57600080fd5b60008060408385031215612f8357600080fd5b612f8c83612f59565b946020939093013593505050565b600080600060608486031215612faf57600080fd5b612fb884612f59565b9250612fc660208501612f59565b9150604084013590509250925092565b60008060408385031215612fe957600080fd5b50508035926020909101359150565b600060408284031215611d3c57600080fd5b6000806020838503121561301d57600080fd5b82356001600160401b038082111561303457600080fd5b818501915085601f83011261304857600080fd5b81358181111561305757600080fd5b86602082850101111561306957600080fd5b60209290920196919550909350505050565b8015158114610e2057600080fd5b60008060006060848603121561309e57600080fd5b6130a784612f59565b92506130b560208501612f59565b915060408401356130c58161307b565b809150509250925092565b600080602083850312156130e357600080fd5b82356001600160401b03808211156130fa57600080fd5b818501915085601f83011261310e57600080fd5b81358181111561311d57600080fd5b8660208260051b850101111561306957600080fd5b80516001600160a01b031682526020808201516001600160401b03169083015260408082015115159083015260609081015162ffffff16910152565b6020808252825182820181905260009190848201906040850190845b818110156116725761319d838551613132565b928401926080929092019160010161318a565b6000602082840312156131c257600080fd5b61195482612f59565b600080604083850312156131de57600080fd5b82356001600160401b038111156131f457600080fd5b8301610100818603121561320757600080fd5b915061321560208401612f59565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156116725783518352928401929184019160010161323a565b60008060006060848603121561326b57600080fd5b61327484612f59565b925060208401356130b58161307b565b60008060006060848603121561329957600080fd5b6132a284612f59565b95602085013595506040909401359392505050565b600080604083850312156132ca57600080fd5b6132d383612f59565b915060208301356132e38161307b565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561332c5761332c6132ee565b604052919050565b6000806000806080858703121561334a57600080fd5b61335385612f59565b93506020613362818701612f59565b93506040860135925060608601356001600160401b038082111561338557600080fd5b818801915088601f83011261339957600080fd5b8135818111156133ab576133ab6132ee565b6133bd601f8201601f19168501613304565b915080825289848285010111156133d357600080fd5b808484018584013760008482840101525080935050505092959194509250565b608081016108c88284613132565b6000806040838503121561341457600080fd5b61320783612f59565b600181811c9082168061343157607f821691505b602082108103611d3c57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b60006020828403121561347d57600080fd5b81516119548161307b565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176108c8576108c8613488565b634e487b7160e01b600052601260045260246000fd5b6000826134da576134da6134b5565b500490565b80356001600160601b03811681146124dd57600080fd5b60006040828403121561350857600080fd5b604051604081018181106001600160401b038211171561352a5761352a6132ee565b60405261353683612f59565b8152613544602084016134df565b60208201529392505050565b808201808211156108c8576108c8613488565b601f821115610a9457600081815260208120601f850160051c8101602086101561358a5750805b601f850160051c820191505b8181101561218957828155600101613596565b6001600160401b038311156135c0576135c06132ee565b6135d4836135ce835461341d565b83613563565b6000601f84116001811461360857600085156135f05750838201355b600019600387901b1c1916600186901b178355611b6f565b600083815260209020601f19861690835b828110156136395786850135825560209485019460019092019101613619565b50868210156136565760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818103818111156108c8576108c8613488565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126136a857600080fd5b8301803591506001600160401b038211156136c257600080fd5b6020019150368190038213156136d757600080fd5b9250929050565b6000602082840312156136f057600080fd5b81356119548161307b565b60006020828403121561370d57600080fd5b611954826134df565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600082613754576137546134b5565b500690565b6000835161376b818460208801612edd565b83519083019061377f818360208801612edd565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526034908201527f455243373231415f5f496e697469616c697a61626c653a20636f6e7472616374604082015273206973206e6f7420696e697469616c697a696e6760601b606082015260800190565b81516001600160401b03811115613840576138406132ee565b6138548161384e845461341d565b84613563565b602080601f83116001811461388957600084156138715750858301515b600019600386901b1c1916600185901b178555612189565b600085815260208120601f198616915b828110156138b857888601518255948401946001909101908401613899565b50858210156138d65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061391990830184612f01565b9695505050505050565b60006020828403121561393557600080fd5b815161195481612eaa56feb847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a40319b847c145db4703dd7415562b7f4e3aaa5b8cbca80b6c5135ed89cd14e7a4031dee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85fa2646970667358221220f93da689910ef4de041e5435371417e92c69f2809b5b9dbcd1250aa33b37e78764736f6c63430008130033