[ { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "BatchMintInvalidBatchId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "BatchMintInvalidTokenId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "batchId", "type": "uint256" } ], "name": "BatchMintMetadataFrozen", "type": "error" }, { "inputs": [], "name": "ContractMetadataUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "CurrencyTransferLibFailedNativeTransfer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimExceedLimit", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimExceedMaxSupply", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "expectedCurrency", "type": "address" }, { "internalType": "uint256", "name": "expectedPricePerToken", "type": "uint256" }, { "internalType": "address", "name": "actualCurrency", "type": "address" }, { "internalType": "uint256", "name": "actualExpectedPricePerToken", "type": "uint256" } ], "name": "DropClaimInvalidTokenPrice", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimNotStarted", "type": "error" }, { "inputs": [], "name": "DropExceedMaxSupply", "type": "error" }, { "inputs": [], "name": "DropNoActiveCondition", "type": "error" }, { "inputs": [], "name": "DropUnauthorized", "type": "error" }, { "inputs": [], "name": "LazyMintInvalidAmount", "type": "error" }, { "inputs": [], "name": "LazyMintUnauthorized", "type": "error" }, { "inputs": [], "name": "OwnableUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "PermissionsAlreadyGranted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "expected", "type": "address" }, { "internalType": "address", "name": "actual", "type": "address" } ], "name": "PermissionsInvalidPermission", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "PermissionsUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "PlatformFeeExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PlatformFeeInvalidRecipient", "type": "error" }, { "inputs": [], "name": "PlatformFeeUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PrimarySaleInvalidRecipient", "type": "error" }, { "inputs": [], "name": "PrimarySaleUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "RoyaltyExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "RoyaltyInvalidRecipient", "type": "error" }, { "inputs": [], "name": "RoyaltyUnauthorized", "type": "error" }, { "inputs": [], "name": "SignatureDropDelayRevealUnsupported", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "SignatureDropExceedMaxSupply", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "SignatureDropInvalidMsgValue", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "SignatureDropNotApprovedOrOwner", "type": "error" }, { "inputs": [], "name": "SignatureDropPerTokenRoyaltyUnsupported", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "SignatureDropTransferRestricted", "type": "error" }, { "inputs": [], "name": "SignatureMintInvalidQuantity", "type": "error" }, { "inputs": [], "name": "SignatureMintInvalidRecipient", "type": "error" }, { "inputs": [], "name": "SignatureMintInvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "uint256", "name": "actualTime", "type": "uint256" } ], "name": "SignatureMintInvalidTime", "type": "error" }, { "inputs": [], "name": "SignatureMintUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateAlreadyMigrated", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateInvalidProof", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateInvalidTokenId", "type": "error" }, { "inputs": [], "name": "TokenMigrateUnauthorized", "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": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "indexed": false, "internalType": "struct IClaimCondition.ClaimCondition", "name": "condition", "type": "tuple" }, { "indexed": false, "internalType": "bool", "name": "resetEligibility", "type": "bool" } ], "name": "ClaimConditionUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "prevURI", "type": "string" }, { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" } ], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newRoyaltyRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newRoyaltyBps", "type": "uint256" } ], "name": "DefaultRoyalty", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MetadataFrozen", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "prevOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "platformFeeRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "platformFeeBps", "type": "uint256" } ], "name": "PlatformFeeInfoUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PrimarySaleRecipientUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "startTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "quantityClaimed", "type": "uint256" } ], "name": "TokensClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "startTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "endTokenId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "baseURI", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "encryptedBaseURI", "type": "bytes" } ], "name": "TokensLazyMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "signer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "mintedTo", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenIdMinted", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "royaltyBps", "type": "uint256" }, { "internalType": "address", "name": "primarySaleRecipient", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint128", "name": "validityStartTimestamp", "type": "uint128" }, { "internalType": "uint128", "name": "validityEndTimestamp", "type": "uint128" }, { "internalType": "bytes32", "name": "uid", "type": "bytes32" } ], "indexed": false, "internalType": "struct ISignatureMintERC721.MintRequest", "name": "mintRequest", "type": "tuple" } ], "name": "TokensMintedWithSignature", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "batchFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" }, { "internalType": "address", "name": "_currency", "type": "address" }, { "internalType": "uint256", "name": "_pricePerToken", "type": "uint256" }, { "components": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" } ], "internalType": "struct IDropSinglePhase.AllowlistProof", "name": "_allowlistProof", "type": "tuple" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "claimCondition", "outputs": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractType", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractVersion", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBaseURICount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getBatchIdAtIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDefaultRoyaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPlatformFeeInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "member", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_claimer", "type": "address" } ], "name": "getSupplyClaimedByWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRoleWithSwitch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_defaultAdmin", "type": "address" }, { "internalType": "address", "name": "__originalContract", "type": "address" }, { "internalType": "bytes32", "name": "_ownershipMerkleRoot", "type": "bytes32" }, { "internalType": "string", "name": "_contractURI", "type": "string" } ], "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": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "string", "name": "_baseURIForTokens", "type": "string" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "lazyMint", "outputs": [ { "internalType": "uint256", "name": "batchId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenOwner", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_proof", "type": "bytes32[]" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "royaltyBps", "type": "uint256" }, { "internalType": "address", "name": "primarySaleRecipient", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint128", "name": "validityStartTimestamp", "type": "uint128" }, { "internalType": "uint128", "name": "validityEndTimestamp", "type": "uint128" }, { "internalType": "bytes32", "name": "uid", "type": "bytes32" } ], "internalType": "struct ISignatureMintERC721.MintRequest", "name": "_req", "type": "tuple" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "mintWithSignature", "outputs": [ { "internalType": "address", "name": "signer", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenIdToClaim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenIdToMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "primarySaleRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct IClaimCondition.ClaimCondition", "name": "_condition", "type": "tuple" }, { "internalType": "bool", "name": "_resetClaimEligibility", "type": "bool" } ], "name": "setClaimConditions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "_royaltyBps", "type": "uint256" } ], "name": "setDefaultRoyaltyInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_platformFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_platformFeeBps", "type": "uint256" } ], "name": "setPlatformFeeInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_saleRecipient", "type": "address" } ], "name": "setPrimarySaleRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "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": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "royaltyBps", "type": "uint256" }, { "internalType": "address", "name": "primarySaleRecipient", "type": "address" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint128", "name": "validityStartTimestamp", "type": "uint128" }, { "internalType": "uint128", "name": "validityEndTimestamp", "type": "uint128" }, { "internalType": "bytes32", "name": "uid", "type": "bytes32" } ], "internalType": "struct ISignatureMintERC721.MintRequest", "name": "_req", "type": "tuple" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "verify", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "address", "name": "signer", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_claimer", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" }, { "internalType": "address", "name": "_currency", "type": "address" }, { "internalType": "uint256", "name": "_pricePerToken", "type": "uint256" }, { "components": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" } ], "internalType": "struct IDropSinglePhase.AllowlistProof", "name": "_allowlistProof", "type": "tuple" } ], "name": "verifyClaim", "outputs": [ { "internalType": "bool", "name": "isOverride", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b50615a0f80620000216000396000f3fe6080604052600436106102a15760003560e01c80638304053211610161578063830405321461069b57806384b0196e146106cb57806384bb1e42146106f35780638da5cb5b146107065780639010d07c1461072457806391d148541461074457806392928e0414610764578063938e3d7b1461078457806395d89b41146107a4578063a0a8e460146107b9578063a217fddf146107d5578063a22cb465146107ea578063a2309ff81461080a578063a32fa5b314610820578063ac9650d814610840578063acd083f81461086d578063b24f2d3914610884578063b88d4fde146108cd578063c87b56dd146108ed578063ca15c8731461090d578063cb2ef6f71461092d578063d1959f4814610951578063d37c353b14610971578063d45573f614610991578063d547741f146109a6578063d637ed59146109c6578063e8a3d485146109ef578063e985e9c514610a04578063eec8897c14610a2457600080fd5b806301ffc9a7146102a657806306fdde03146102db578063079fe40e146102fd578063081812fc1461031f578063095ea7b31461033f57806313af40351461036157806318160ddd146103815780631e7ac488146103a057806323b872dd146103c05780632419f51b146103e0578063248a9ca314610400578063252e82e81461042d5780632a55205a1461046c5780632f2ff15d1461049a5780632f745c59146104ba57806335b65e1f146104da57806336568abe1461051e5780633b1475a71461053e578063426cfaf31461055357806342842e0e1461057357806342966c6814610593578063439c7be5146105b35780634f6ccce7146105c6578063600dd5ea146105e65780636352211e1461060657806363b45e2d146106265780636f4f28371461063b57806370a082311461065b5780637cb647591461067b575b600080fd5b3480156102b257600080fd5b506102c66102c1366004614849565b610a44565b60405190151581526020015b60405180910390f35b3480156102e757600080fd5b506102f0610a70565b6040516102d291906148b6565b34801561030957600080fd5b50610312610b02565b6040516102d291906148d6565b34801561032b57600080fd5b5061031261033a3660046148ea565b610b11565b34801561034b57600080fd5b5061035f61035a366004614928565b610b38565b005b34801561036d57600080fd5b5061035f61037c366004614954565b610c52565b34801561038d57600080fd5b5060e4545b6040519081526020016102d2565b3480156103ac57600080fd5b5061035f6103bb366004614928565b610c83565b3480156103cc57600080fd5b5061035f6103db366004614971565b610cb6565b3480156103ec57600080fd5b506103926103fb3660046148ea565b610ce7565b34801561040c57600080fd5b5061039261041b3660046148ea565b6000908152600b602052604090205490565b34801561043957600080fd5b5061044d6104483660046149f3565b610d39565b6040805192151583526001600160a01b039091166020830152016102d2565b34801561047857600080fd5b5061048c610487366004614a64565b610d7d565b6040516102d2929190614a86565b3480156104a657600080fd5b5061035f6104b5366004614a9f565b610dba565b3480156104c657600080fd5b506103926104d5366004614928565b610e25565b3480156104e657600080fd5b506103926104f5366004614954565b60155460009081526016602090815260408083206001600160a01b039094168352929052205490565b34801561052a57600080fd5b5061035f610539366004614a9f565b610ebb565b34801561054a57600080fd5b50600954610392565b34801561055f57600080fd5b5061035f61056e366004614add565b610ef2565b34801561057f57600080fd5b5061035f61058e366004614971565b6110db565b34801561059f57600080fd5b5061035f6105ae3660046148ea565b6110f6565b6103126105c13660046149f3565b611129565b3480156105d257600080fd5b506103926105e13660046148ea565b6112b0565b3480156105f257600080fd5b5061035f610601366004614928565b611331565b34801561061257600080fd5b506103126106213660046148ea565b611360565b34801561063257600080fd5b50600654610392565b34801561064757600080fd5b5061035f610656366004614954565b611394565b34801561066757600080fd5b50610392610676366004614954565b6113c2565b34801561068757600080fd5b5061035f6106963660046148ea565b611448565b3480156106a757600080fd5b506102c66106b63660046148ea565b60086020526000908152604090205460ff1681565b3480156106d757600080fd5b506106e0611477565b6040516102d29796959493929190614b29565b61035f610701366004614c97565b611515565b34801561071257600080fd5b506005546001600160a01b0316610312565b34801561073057600080fd5b5061031261073f366004614a64565b6115f0565b34801561075057600080fd5b506102c661075f366004614a9f565b6116de565b34801561077057600080fd5b5061035f61077f366004614d31565b611709565b34801561079057600080fd5b5061035f61079f366004614d9c565b611c09565b3480156107b057600080fd5b506102f0611c37565b3480156107c557600080fd5b50604051600581526020016102d2565b3480156107e157600080fd5b50610392600081565b3480156107f657600080fd5b5061035f610805366004614dd0565b611c46565b34801561081657600080fd5b5061011854610392565b34801561082c57600080fd5b506102c661083b366004614a9f565b611c51565b34801561084c57600080fd5b5061086061085b366004614e32565b611ca7565b6040516102d29190614e73565b34801561087957600080fd5b506103926101185481565b34801561089057600080fd5b506003546001600160a01b03811690600160a01b900461ffff165b604080516001600160a01b03909316835261ffff9091166020830152016102d2565b3480156108d957600080fd5b5061035f6108e8366004614d31565b611d90565b3480156108f957600080fd5b506102f06109083660046148ea565b611dc8565b34801561091957600080fd5b506103926109283660046148ea565b611e86565b34801561093957600080fd5b506d5369676e617475726544726f704d60901b610392565b34801561095d57600080fd5b5061035f61096c366004614ed7565b611f0f565b34801561097d57600080fd5b5061039261098c366004614f32565b61208a565b34801561099d57600080fd5b506108ab6120c2565b3480156109b257600080fd5b5061035f6109c1366004614a9f565b6120df565b3480156109d257600080fd5b506109db6120f8565b6040516102d2989796959493929190614fab565b3480156109fb57600080fd5b506102f06121b7565b348015610a1057600080fd5b506102c6610a1f366004615000565b612245565b348015610a3057600080fd5b506102c6610a3f36600461502e565b612273565b6000610a4f826125ac565b80610a6a575063152a902d60e11b6001600160e01b03198316145b92915050565b606060b08054610a7f906150a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610aab906150a3565b8015610af85780601f10610acd57610100808354040283529160200191610af8565b820191906000526020600020905b815481529060010190602001808311610adb57829003601f168201915b5050505050905090565b6004546001600160a01b031690565b6000610b1c826125d1565b50600090815260b460205260409020546001600160a01b031690565b6000610b4382611360565b9050806001600160a01b0316836001600160a01b031603610bb55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610bd15750610bd18133612245565b610c435760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610bac565b610c4d83836125f6565b505050565b610c5a612664565b610c77576040516316ccb9cb60e11b815260040160405180910390fd5b610c8081612675565b50565b610c8b612664565b610ca8576040516387d20a6d60e01b815260040160405180910390fd5b610cb282826126c7565b5050565b610cc03382612785565b610cdc5760405162461bcd60e51b8152600401610bac906150d7565b610c4d8383836127e4565b6000610cf260065490565b8210610d1457604051630793127760e11b815260048101839052602401610bac565b60068281548110610d2757610d27615124565b90600052602060002001549050919050565b600080610d47858585612943565b6101408601356000908152604b602052604090205490915060ff16158015610d735750610d73816129a9565b9150935093915050565b6003546001600160a01b0381169060009061271090610da790600160a01b900461ffff1685615150565b610db19190615167565b90509250929050565b6000828152600b6020526040902054610dd390336129c3565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1615610e1b578082604051636a4e0b3560e11b8152600401610bac929190614a86565b610cb28282612a0a565b6000610e30836113c2565b8210610e925760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610bac565b506001600160a01b0391909116600090815260e260209081526040808320938352929052205490565b336001600160a01b03821614610ee85733816040516320b4e31160e11b8152600401610bac929190615189565b610cb28282612a1e565b610efa612664565b610f17576040516356c4ef5160e01b815260040160405180910390fd5b601554600f548215610f61575060003360405160609190911b6001600160601b03191660208201524360348201526054016040516020818303038152906040528051906020012091505b8360200135811115610f865760405163032b539f60e11b815260040160405180910390fd5b604051806101000160405280856000013581526020018560200135815260200182815260200185606001358152602001856080013581526020018560a0013581526020018560c0016020810190610fdd9190614954565b6001600160a01b03168152602001610ff860e08701876151a3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152508051600d9081556020820151600e556040820151600f556060820151601055608082015160115560a082015160125560c0820151601380546001600160a01b0319166001600160a01b0390921691909117905560e08201516014906110939082615231565b50505060158290556040517f6dab9d7d05d468100139089b2516cb8ff286c3972ff070d3b509e371f0d0d4b8906110cd908690869061535e565b60405180910390a150505050565b610c4d83838360405180602001604052806000815250611d90565b6111003382612785565b6111205733816040516245fc1d60e01b8152600401610bac929190614a86565b610c8081612a75565b610118546009546000919061114260a0870135836153f7565b11156111745760095461115960a0870135836153f7565b604051638a52c9cf60e01b8152600401610bac92919061540a565b61117f858585612b06565b915060006111906020870187614954565b90506111c56111a56080880160608901614954565b60a08801356111bb6101008a0160e08b01614954565b8960c00135612c55565b60006111d76040880160208901614954565b6001600160a01b0316141580156111f15750604086013515155b1561120f576040516329875d1d60e21b815260040160405180910390fd5b60005b8660a00135811015611247576112288284612d82565b6112336001846153f7565b92506112406001826153f7565b9050611212565b5061011882905561125c60a087013583615418565b816001600160a01b0316846001600160a01b03167fee0cf9c3e87795b1932d13f80f892f620f567b4465e768ced5d64aa44ca1d64c8960405161129f9190615442565b60405180910390a450509392505050565b60006112bb60e45490565b821061131e5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610bac565b60e48281548110610d2757610d27615124565b611339612664565b61135657604051636fae358160e11b815260040160405180910390fd5b610cb28282612e8b565b60008061136c83612f0f565b90506001600160a01b038116610a6a5760405162461bcd60e51b8152600401610bac90615550565b61139c612664565b6113b957604051631c98210f60e21b815260040160405180910390fd5b610c8081612f2a565b60006001600160a01b03821661142c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610bac565b506001600160a01b0316600090815260b3602052604090205490565b611450612f74565b61146d576040516327e8d25560e01b815260040160405180910390fd5b610c808161011455565b6000606080600080600060606017546000801b1480156114975750601854155b6114db5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610bac565b6114e3612f8e565b6114eb612f9d565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b611523868686868686612fac565b6015546115333387878787612273565b5085600d600201600082825461154991906153f7565b90915550506000818152601660209081526040808320338452909152812080548892906115779084906153f7565b9091555061158a90506000878787612c55565b60006115968888612fe5565b9050806001600160a01b038916336001600160a01b03167fff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de68a6040516115de91815260200190565b60405180910390a45050505050505050565b6000828152600c602052604081205481805b828110156116d5576000868152600c602090815260408083208484526001019091529020546001600160a01b03161561167e5784820361166c576000868152600c602090815260408083209383526001909301905220546001600160a01b03169250610a6a915050565b6116776001836153f7565b91506116c3565b6116898660006116de565b80156116b057506000868152600c6020908152604080832083805260020190915290205481145b156116c3576116c06001836153f7565b91505b6116ce6001826153f7565b9050611602565b50505092915050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff16158080156117295750600054600160ff909116105b8061174a57506117383061302a565b15801561174a575060005460ff166001145b6117ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610bac565b6000805460ff1916600117905580156117d0576000805461ff0019166101001790555b6118a4846001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015611811573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118399190810190615582565b856001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261189f9190810190615582565b613039565b6118ac61306a565b61011580546001600160a01b0319166001600160a01b0386161790556118d28361011455565b6000846001600160a01b031663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611912573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193691906155f8565b9050846001600160a01b0316633b1475a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199a91906155f8565b60098190555080610118819055508061011781905550600080866001600160a01b031663b24f2d396040518163ffffffff1660e01b81526004016040805180830381865afa1580156119f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a149190615611565b91509150600080886001600160a01b031663d45573f66040518163ffffffff1660e01b81526004016040805180830381865afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c9190615611565b61ffff16915091506000896001600160a01b031663079fe40e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae89190615647565b90506001600160a01b03831615611b0357611b0383836126c7565b6001600160a01b03851615611b2057611b20858561ffff16612e8b565b6001600160a01b03811615611b3857611b3881612f2a565b505050505050611b47826130e1565b611b5085612675565b611b5b600086612a0a565b611b7360008051602061599a83398151915286612a0a565b611b8c6000805160206159338339815191526000612a0a565b611ba460008051602061595383398151915286612a0a565b611bbc600080516020615953833981519152806131bd565b8015611c02576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b611c11612664565b611c2e57604051639f7f092560e01b815260040160405180910390fd5b610c80816130e1565b606060b18054610a7f906150a3565b610cb2338383613205565b6000828152600a6020908152604080832083805290915281205460ff16611c9e57506000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610a6a565b50600192915050565b6060816001600160401b03811115611cc157611cc1614bd4565b604051908082528060200260200182016040528015611cf457816020015b6060815260200190600190039081611cdf5790505b50905060005b82811015611d8957611d6430858584818110611d1857611d18615124565b9050602002810190611d2a91906151a3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132cf92505050565b828281518110611d7657611d76615124565b6020908102919091010152600101611cfa565b5092915050565b611d9a3383612785565b611db65760405162461bcd60e51b8152600401610bac906150d7565b611dc2848484846132f4565b50505050565b606061011754821015611e47576101155460405163c87b56dd60e01b8152600481018490526001600160a01b039091169063c87b56dd90602401600060405180830381865afa158015611e1f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a6a9190810190615582565b6000611e5283613327565b905080611e5e846134a5565b604051602001611e6f929190615664565b604051602081830303815290604052915050919050565b6000818152600c6020526040812054815b81811015611eea576000848152600c602090815260408083208484526001019091529020546001600160a01b031615611ed857611ed56001846153f7565b92505b611ee36001826153f7565b9050611e97565b50611ef68360006116de565b15611f0957611f066001836153f7565b91505b50919050565b6000838152610116602052604090205460ff1615611f4357604051639eee288160e01b815260048101849052602401610bac565b61011560009054906101000a90046001600160a01b03166001600160a01b0316633b1475a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbb91906155f8565b8310611fdd57604051634e369fbd60e11b815260048101849052602401610bac565b611fe5613537565b1561206657600061203f8383611ffb6101145490565b878960405160200161202492919091825260601b6001600160601b031916602082015260340190565b60405160208183030381529060405280519060200120613557565b50905080612064578484604051630b860e6360e11b8152600401610bac929190614a86565b505b600083815261011660205260409020805460ff19166001179055611dc284846135e5565b600081156120ab5760405163dd05e8b360e01b815260040160405180910390fd5b6120b886868686866135ef565b9695505050505050565b6002546001600160a01b03811691600160a01b90910461ffff1690565b6000828152600b6020526040902054610ee890336129c3565b600d8054600e54600f54601054601154601254601354601480549798969795969495939492936001600160a01b039092169291612134906150a3565b80601f0160208091040260200160405190810160405280929190818152602001828054612160906150a3565b80156121ad5780601f10612182576101008083540402835291602001916121ad565b820191906000526020600020905b81548152906001019060200180831161219057829003601f168201915b5050505050905088565b600180546121c4906150a3565b80601f01602080910402602001604051908101604052809291908181526020018280546121f0906150a3565b801561223d5780601f106122125761010080835404028352916020019161223d565b820191906000526020600020905b81548152906001019060200180831161222057829003601f168201915b505050505081565b6001600160a01b03918216600090815260b56020908152604080832093909416825291909152205460ff1690565b6040805161010081018252600d80548252600e546020830152600f54928201929092526010546060820152601154608082015260125460a08201526013546001600160a01b031660c082015260148054600093849392909160e0840191906122da906150a3565b80601f0160208091040260200160405190810160405280929190818152602001828054612306906150a3565b80156123535780601f1061232857610100808354040283529160200191612353565b820191906000526020600020905b81548152906001019060200180831161233657829003601f168201915b50505091909252505050606081015160a082015160c083015160808401519394509192909190156123eb576123e761238b8780615693565b86608001518d8a602001358b604001358c60600160208101906123ae9190614954565b6040516001600160601b0319606095861b811660208301526034820194909452605481019290925290921b166074820152608801612024565b5094505b84156124725785602001356000036124035782612409565b85602001355b925060001986604001350361241e5781612424565b85604001355b9150600019866040013514158015612455575060006124496080880160608901614954565b6001600160a01b031614155b61245f578061246f565b61246f6080870160608801614954565b90505b60155460009081526016602090815260408083206001600160a01b03808f168552925290912054908981169083161415806124ad5750828814155b156124ec5760405163f13474e960e01b81526001600160a01b03808b166004830152602482018a90528316604482015260648101849052608401610bac565b8915806125015750836124ff828c6153f7565b115b1561252c5783612511828c6153f7565b604051639e7762db60e01b8152600401610bac92919061540a565b84602001518a866040015161254191906153f7565b11156125775784602001518a866040015161255c91906153f7565b60405163fe381cc960e01b8152600401610bac92919061540a565b845142101561259e5784516040516322b1048f60e11b8152610bac9190429060040161540a565b505050505095945050505050565b60006001600160e01b0319821663780e9d6360e01b1480610a6a5750610a6a826136e6565b6125da81613736565b610c805760405162461bcd60e51b8152600401610bac90615550565b600081815260b46020526040902080546001600160a01b0319166001600160a01b038416908117909155819061262b82611360565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061267081336116de565b905090565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b6127108111156126f05761271081604051631c1a1fe960e11b8152600401610bac92919061540a565b6001600160a01b03821661271957816040516334c5763b60e21b8152600401610bac91906148d6565b600280546001600160b01b031916600160a01b61ffff8416026001600160a01b031916176001600160a01b0384169081179091556040518281527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f18304906020015b60405180910390a25050565b60008061279183611360565b9050806001600160a01b0316846001600160a01b031614806127b857506127b88185612245565b806127dc5750836001600160a01b03166127d184610b11565b6001600160a01b0316145b949350505050565b826001600160a01b03166127f782611360565b6001600160a01b03161461281d5760405162461bcd60e51b8152600401610bac906156dc565b6001600160a01b03821661287f5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610bac565b61288c8383836001613753565b826001600160a01b031661289f82611360565b6001600160a01b0316146128c55760405162461bcd60e51b8152600401610bac906156dc565b600081815260b46020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260b3855283862080546000190190559087168086528386208054600101905586865260b290945282852080549092168417909155905184936000805160206159ba83398151915291a4505050565b600061299f83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612999925061298d9150889050613802565b80519060200120613949565b90613976565b90505b9392505050565b6000610a6a60008051602061599a833981519152836116de565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610cb257808260405163043c588360e11b8152600401610bac929190614a86565b612a14828261399a565b610cb282826139f5565b612a288282613a62565b6000828152600c602090815260408083206001600160a01b03851680855260028201808552838620805487526001909301855292852080546001600160a01b031916905584529152555050565b6000612a8082611360565b9050612a90816000846001613753565b612a9982611360565b600083815260b46020908152604080832080546001600160a01b03199081169091556001600160a01b03851680855260b38452828520805460001901905587855260b2909352818420805490911690555192935084926000805160206159ba833981519152908390a45050565b600080612b14858585610d39565b9250905080612b36576040516313caa65360e01b815260040160405180910390fd5b42612b4961012087016101008801615721565b6001600160801b03161180612b775750612b6b61014086016101208701615721565b6001600160801b031642115b15612bd257612b8e61012086016101008701615721565b612ba061014087016101208801615721565b604051634da1c72f60e11b81526001600160801b03928316600482015291166024820152426044820152606401610bac565b6000612be16020870187614954565b6001600160a01b031603612c08576040516347587b6b60e11b815260040160405180910390fd5b8460a00135600003612c2d57604051630f66273360e21b815260040160405180910390fd5b50610140909301356000908152604b60205260409020805460ff191660011790555090919050565b80600003612c86573415612c815760003460405163d5e8cf3d60e01b8152600401610bac92919061540a565b611dc2565b600080612c916120c2565b909250905060006001600160a01b03871615612cad5786612cb5565b612cb5610b02565b90506000612cc38588615150565b90506000612710612cd861ffff861684615150565b612ce29190615167565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03881601612d3257813414612d2d57813460405163d5e8cf3d60e01b8152600401610bac92919061540a565b612d56565b3415612d565760003460405163d5e8cf3d60e01b8152600401610bac92919061540a565b612d6287338784613ac4565b612d77873385612d728587615418565b613ac4565b505050505050505050565b6001600160a01b038216612dd85760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610bac565b612de181613736565b15612dfe5760405162461bcd60e51b8152600401610bac9061573c565b612e0c600083836001613753565b612e1581613736565b15612e325760405162461bcd60e51b8152600401610bac9061573c565b6001600160a01b038216600081815260b3602090815260408083208054600101905584835260b290915280822080546001600160a01b0319168417905551839291906000805160206159ba833981519152908290a45050565b612710811115612eb45761271081604051630a4930ad60e31b8152600401610bac92919061540a565b600380546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb90602001612779565b600090815260b260205260409020546001600160a01b031690565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b6000612670600080516020615953833981519152336116de565b606060198054610a7f906150a3565b6060601a8054610a7f906150a3565b6009548561011854612fbe91906153f7565b1115612fdd5760405163032b539f60e11b815260040160405180910390fd5b505050505050565b6101185460005b8281101561301d57612ffe8483613b05565b6130096001836153f7565b91506130166001826153f7565b9050612fec565b5061011881905592915050565b6001600160a01b03163b151590565b600054610100900460ff166130605760405162461bcd60e51b8152600401610bac90615772565b610cb28282613b1f565b600054610100900460ff166130915760405162461bcd60e51b8152600401610bac90615772565b6130df604051806040016040528060138152602001725369676e61747572654d696e7445524337323160681b815250604051806040016040528060018152602001603160f81b815250613b5f565b565b6000600180546130f0906150a3565b80601f016020809104026020016040519081016040528092919081815260200182805461311c906150a3565b80156131695780601f1061313e57610100808354040283529160200191613169565b820191906000526020600020905b81548152906001019060200180831161314c57829003601f168201915b50505050509050816001908161317f9190615231565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a1681836040516131b19291906157bd565b60405180910390a15050565b6000828152600b6020526040808220805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b816001600160a01b0316836001600160a01b0316036132625760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610bac565b6001600160a01b03838116600081815260b56020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606129a2838360405180606001604052806027815260200161597360279139613b90565b6132ff8484846127e4565b61330b84848484613bfe565b611dc25760405162461bcd60e51b8152600401610bac906157e2565b6060600061333460065490565b90506000600680548060200260200160405190810160405280929190818152602001828054801561338457602002820191906000526020600020905b815481526020019060010190808311613370575b5050505050905060005b82811015613488578181815181106133a8576133a8615124565b602002602001015185101561347657600760008383815181106133cd576133cd615124565b6020026020010151815260200190815260200160002080546133ee906150a3565b80601f016020809104026020016040519081016040528092919081815260200182805461341a906150a3565b80156134675780601f1061343c57610100808354040283529160200191613467565b820191906000526020600020905b81548152906001019060200180831161344a57829003601f168201915b50505050509350505050919050565b6134816001826153f7565b905061338e565b506040516309797f6960e21b815260048101859052602401610bac565b606060006134b283613d06565b60010190506000816001600160401b038111156134d1576134d1614bd4565b6040519080825280601f01601f1916602001820160405280156134fb576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461350557509392505050565b6000613551600080516020615953833981519152336116de565b15905090565b6000808281805b878110156135d357613571600283615150565b9150600089898381811061358757613587615124565b9050602002013590508084116135ac57600084815260208290526040902093506135ca565b600081815260208590526040902093506135c76001846153f7565b92505b5060010161355e565b50908514925090505b94509492505050565b610cb28282613b05565b60006135f9613ddc565b6136165760405163f409ec7360e01b815260040160405180910390fd5b8560000361363757604051638fd36a9b60e01b815260040160405180910390fd5b6000600954905061367f818888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613df692505050565b6009919091559150807f2a0365091ef1a40953c670dce28177e37520648a6fdc91506bffac0ab045570d60016136b58a846153f7565b6136bf9190615418565b888888886040516136d4959493929190615834565b60405180910390a25095945050505050565b60006001600160e01b031982166380ac58cd60e01b148061371757506001600160e01b03198216635b5e139f60e01b145b80610a6a57506301ffc9a760e01b6001600160e01b0319831614610a6a565b60008061374283612f0f565b6001600160a01b0316141592915050565b61375f84848484613e5a565b61377860008051602061593383398151915260006116de565b15801561378d57506001600160a01b03841615155b80156137a157506001600160a01b03831615155b15611dc2576137be600080516020615933833981519152856116de565b1580156137e057506137de600080516020615933833981519152846116de565b155b15611dc257838360405163863ac50b60e01b8152600401610bac929190615189565b60607fef2a0374db4a48b74209fd1a525c32d62e54c4185cbabd807193b07a40081d446138326020840184614954565b6138426040850160208601614954565b60408501356138576080870160608801614954565b61386460808801886151a3565b60405161387292919061586d565b60405190819003902060a088013560c08901356138966101008b0160e08c01614954565b6138a86101208c016101008d01615721565b6138ba6101408d016101208e01615721565b60408051602081019c909c526001600160a01b039a8b16908c015297891660608b015260808a019690965293871660a089015260c088019290925260e08701526101008601529092166101208401526001600160801b039182166101408085019190915291166101608301528301356101808201526101a0016040516020818303038152906040529050919050565b6000610a6a613956613f87565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006139858585613f91565b9150915061399281613fd6565b509392505050565b6000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000828152600c6020526040812080549160019190613a1483856153f7565b90915550506000928352600c6020908152604080852083865260018101835281862080546001600160a01b039096166001600160a01b03199096168617905593855260029093019052912055565b613a6c82826129c3565b6000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8015611dc25773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601613af957612c81828261411b565b611dc284848484614193565b610cb28282604051806020016040528060008152506141e6565b600054610100900460ff16613b465760405162461bcd60e51b8152600401610bac90615772565b60b0613b528382615231565b5060b1610c4d8282615231565b600054610100900460ff16613b865760405162461bcd60e51b8152600401610bac90615772565b610cb28282614219565b6060600080856001600160a01b031685604051613bad919061587d565b600060405180830381855af49150503d8060008114613be8576040519150601f19603f3d011682016040523d82523d6000602084013e613bed565b606091505b50915091506120b886838387614268565b6000613c12846001600160a01b031661302a565b15613cfb57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613c49903390899088908890600401615899565b6020604051808303816000875af1925050508015613c84575060408051601f3d908101601f19168201909252613c81918101906158cc565b60015b613ce1573d808015613cb2576040519150601f19603f3d011682016040523d82523d6000602084013e613cb7565b606091505b508051600003613cd95760405162461bcd60e51b8152600401610bac906157e2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506127dc565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310613d455772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613d6f576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310613d8d57662386f26fc10000830492506010015b6305f5e1008310613da5576305f5e100830492506008015b6127108310613db957612710830492506004015b60648310613dcb576064830492506002015b600a8310610a6a5760010192915050565b600061267060008051602061599a833981519152336116de565b600080613e0384866153f7565b60068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018190556000818152600760205260409020909250829150613e518482615231565b50935093915050565b6001811115613ec95760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610bac565b816001600160a01b038516613f2557613f208160e48054600083815260e560205260408120829055600182018355919091527f04e4a0bb093261ee16386dadcef9e2a83913f4e1899464891421d20c1bbff74d0155565b613f48565b836001600160a01b0316856001600160a01b031614613f4857613f4885826142df565b6001600160a01b038416613f6457613f5f8161437c565b611c02565b846001600160a01b0316846001600160a01b031614611c0257611c02848261442b565b600061267061446f565b6000808251604103613fc75760208301516040840151606085015160001a613fbb878285856144e3565b94509450505050613fcf565b506000905060025b9250929050565b6000816004811115613fea57613fea6158e9565b03613ff25750565b6001816004811115614006576140066158e9565b0361404e5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610bac565b6002816004811115614062576140626158e9565b036140af5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610bac565b60038160048111156140c3576140c36158e9565b03610c805760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610bac565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614168576040519150601f19603f3d011682016040523d82523d6000602084013e61416d565b606091505b5050905080610c4d578282604051635fdc4ec160e11b8152600401610bac929190614a86565b816001600160a01b0316836001600160a01b03160315611dc257306001600160a01b038416036141d157612c816001600160a01b038516838361459a565b611dc26001600160a01b0385168484846145f0565b6141f08383612d82565b6141fd6000848484613bfe565b610c4d5760405162461bcd60e51b8152600401610bac906157e2565b600054610100900460ff166142405760405162461bcd60e51b8152600401610bac90615772565b601961424c8382615231565b50601a6142598282615231565b50506000601781905560185550565b606083156142d55782516000036142ce576142828561302a565b6142ce5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bac565b50816127dc565b6127dc8383614628565b600060016142ec846113c2565b6142f69190615418565b600083815260e36020526040902054909150808214614349576001600160a01b038416600090815260e260209081526040808320858452825280832054848452818420819055835260e390915290208190555b50600091825260e3602090815260408084208490556001600160a01b03909416835260e281528383209183525290812055565b60e45460009061438e90600190615418565b600083815260e5602052604081205460e480549394509092849081106143b6576143b6615124565b906000526020600020015490508060e483815481106143d7576143d7615124565b600091825260208083209091019290925582815260e5909152604080822084905585825281205560e480548061440f5761440f6158ff565b6001900381819060005260206000200160009055905550505050565b6000614436836113c2565b6001600160a01b03909316600090815260e260209081526040808320868452825280832085905593825260e39052919091209190915550565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61449a614652565b6144a26146ab565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561451057506000905060036135dc565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614564573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661458d576000600192509250506135dc565b9660009650945050505050565b610c4d8363a9059cbb60e01b84846040516024016145b9929190614a86565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526146dc565b6040516001600160a01b0380851660248301528316604482015260648101829052611dc29085906323b872dd60e01b906084016145b9565b8151156146385781518083602001fd5b8060405162461bcd60e51b8152600401610bac91906148b6565b60008061465d612f8e565b805190915015614674578051602090910120919050565b60175480156146835792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806146b6612f9d565b8051909150156146cd578051602090910120919050565b60185480156146835792915050565b6000614731826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166147ae9092919063ffffffff16565b805190915015610c4d578080602001905181019061474f9190615915565b610c4d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bac565b606061299f848460008585600080866001600160a01b031685876040516147d5919061587d565b60006040518083038185875af1925050503d8060008114614812576040519150601f19603f3d011682016040523d82523d6000602084013e614817565b606091505b509150915061482887838387614268565b979650505050505050565b6001600160e01b031981168114610c8057600080fd5b60006020828403121561485b57600080fd5b81356129a281614833565b60005b83811015614881578181015183820152602001614869565b50506000910152565b600081518084526148a2816020860160208601614866565b601f01601f19169290920160200192915050565b6020815260006129a2602083018461488a565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000602082840312156148fc57600080fd5b5035919050565b6001600160a01b0381168114610c8057600080fd5b803561492381614903565b919050565b6000806040838503121561493b57600080fd5b823561494681614903565b946020939093013593505050565b60006020828403121561496657600080fd5b81356129a281614903565b60008060006060848603121561498657600080fd5b833561499181614903565b925060208401356149a181614903565b929592945050506040919091013590565b60008083601f8401126149c457600080fd5b5081356001600160401b038111156149db57600080fd5b602083019150836020828501011115613fcf57600080fd5b600080600060408486031215614a0857600080fd5b83356001600160401b0380821115614a1f57600080fd5b908501906101608288031215614a3457600080fd5b90935060208501359080821115614a4a57600080fd5b50614a57868287016149b2565b9497909650939450505050565b60008060408385031215614a7757600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b60008060408385031215614ab257600080fd5b823591506020830135614ac481614903565b809150509250929050565b8015158114610c8057600080fd5b60008060408385031215614af057600080fd5b82356001600160401b03811115614b0657600080fd5b83016101008186031215614b1957600080fd5b91506020830135614ac481614acf565b60ff60f81b881681526000602060e06020840152614b4a60e084018a61488a565b8381036040850152614b5c818a61488a565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b81811015614bb057835183529284019291840191600101614b94565b50909c9b505050505050505050505050565b600060808284031215611f0957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c1257614c12614bd4565b604052919050565b60006001600160401b03821115614c3357614c33614bd4565b50601f01601f191660200190565b600082601f830112614c5257600080fd5b8135614c65614c6082614c1a565b614bea565b818152846020838601011115614c7a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215614cb057600080fd5b8635614cbb81614903565b9550602087013594506040870135614cd281614903565b93506060870135925060808701356001600160401b0380821115614cf557600080fd5b614d018a838b01614bc2565b935060a0890135915080821115614d1757600080fd5b50614d2489828a01614c41565b9150509295509295509295565b60008060008060808587031215614d4757600080fd5b8435614d5281614903565b93506020850135614d6281614903565b92506040850135915060608501356001600160401b03811115614d8457600080fd5b614d9087828801614c41565b91505092959194509250565b600060208284031215614dae57600080fd5b81356001600160401b03811115614dc457600080fd5b6127dc84828501614c41565b60008060408385031215614de357600080fd5b8235614b1981614903565b60008083601f840112614e0057600080fd5b5081356001600160401b03811115614e1757600080fd5b6020830191508360208260051b8501011115613fcf57600080fd5b60008060208385031215614e4557600080fd5b82356001600160401b03811115614e5b57600080fd5b614e6785828601614dee565b90969095509350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614eca57603f19888603018452614eb885835161488a565b94509285019290850190600101614e9c565b5092979650505050505050565b60008060008060608587031215614eed57600080fd5b8435614ef881614903565b93506020850135925060408501356001600160401b03811115614f1a57600080fd5b614f2687828801614dee565b95989497509550505050565b600080600080600060608688031215614f4a57600080fd5b8535945060208601356001600160401b0380821115614f6857600080fd5b614f7489838a016149b2565b90965094506040880135915080821115614f8d57600080fd5b50614f9a888289016149b2565b969995985093965092949392505050565b60006101008a83528960208401528860408401528760608401528660808401528560a084015260018060a01b03851660c08401528060e0840152614ff18184018561488a565b9b9a5050505050505050505050565b6000806040838503121561501357600080fd5b823561501e81614903565b91506020830135614ac481614903565b600080600080600060a0868803121561504657600080fd5b853561505181614903565b945060208601359350604086013561506881614903565b92506060860135915060808601356001600160401b0381111561508a57600080fd5b61509688828901614bc2565b9150509295509295909350565b600181811c908216806150b757607f821691505b602082108103611f0957634e487b7160e01b600052602260045260246000fd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a6a57610a6a61513a565b60008261518457634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0392831681529116602082015260400190565b6000808335601e198436030181126151ba57600080fd5b8301803591506001600160401b038211156151d457600080fd5b602001915036819003821315613fcf57600080fd5b601f821115610c4d576000816000526020600020601f850160051c810160208610156152125750805b601f850160051c820191505b81811015612fdd5782815560010161521e565b81516001600160401b0381111561524a5761524a614bd4565b61525e8161525884546150a3565b846151e9565b602080601f831160018114615293576000841561527b5750858301515b600019600386901b1c1916600185901b178555612fdd565b600085815260208120601f198616915b828110156152c2578886015182559484019460019091019084016152a3565b50858210156152e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808335601e1984360301811261530757600080fd5b83016020810192503590506001600160401b0381111561532657600080fd5b803603821315613fcf57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152823560408201526020830135606082015260408301356080820152606083013560a0820152608083013560c082015260a083013560e0820152600060c08401356153ab81614903565b6001600160a01b038116610100848101919091526153cc60e08701876152f0565b9250816101208601526153e461014086018483615335565b93505050506129a2602083018415159052565b80820180821115610a6a57610a6a61513a565b918252602082015260400190565b81810381811115610a6a57610a6a61513a565b80356001600160801b038116811461492357600080fd5b6020815261545b6020820161545684614918565b6148c9565b600061546960208401614918565b61547660408401826148c9565b506040830135606083015261548d60608401614918565b61549a60808401826148c9565b506154a860808401846152f0565b6101608060a08601526154c061018086018385615335565b925060a086013560c086015260c086013560e08601526154e260e08701614918565b91506101006154f3818701846148c9565b6154fe81880161542b565b925050610120615518818701846001600160801b03169052565b61552381880161542b565b92505061014061553d818701846001600160801b03169052565b9590950135939094019290925250919050565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b60006020828403121561559457600080fd5b81516001600160401b038111156155aa57600080fd5b8201601f810184136155bb57600080fd5b80516155c9614c6082614c1a565b8181528560208385010111156155de57600080fd5b6155ef826020830160208601614866565b95945050505050565b60006020828403121561560a57600080fd5b5051919050565b6000806040838503121561562457600080fd5b825161562f81614903565b602084015190925061ffff81168114614ac457600080fd5b60006020828403121561565957600080fd5b81516129a281614903565b60008351615676818460208801614866565b83519083019061568a818360208801614866565b01949350505050565b6000808335601e198436030181126156aa57600080fd5b8301803591506001600160401b038211156156c457600080fd5b6020019150600581901b3603821315613fcf57600080fd5b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60006020828403121561573357600080fd5b6129a28261542b565b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6040815260006157d0604083018561488a565b82810360208401526155ef818561488a565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b85815260606020820152600061584e606083018688615335565b8281036040840152615861818587615335565b98975050505050505050565b8183823760009101908152919050565b6000825161588f818460208701614866565b9190910192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906120b89083018461488a565b6000602082840312156158de57600080fd5b81516129a281614833565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006020828403121561592757600080fd5b81516129a281614acf56fe8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c9d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122002e08dd05a8533bb4316b3c0effe1ee63e46a84b4c27670b46925533dc5cfc7c64736f6c63430008170033