[ { "inputs": [], "stateMutability": "payable", "type": "constructor" }, { "inputs": [], "name": "AccountBalanceOverflow", "type": "error" }, { "inputs": [], "name": "AllocationOutOfBounds", "type": "error" }, { "inputs": [], "name": "AllocationOverflow", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "Blacklisted", "type": "error" }, { "inputs": [], "name": "CannotIncreaseMaxSupplyAfterMint", "type": "error" }, { "inputs": [], "name": "ClaimSupply", "type": "error" }, { "inputs": [], "name": "DisabledRoyalties", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [], "name": "FrozenRoyalties", "type": "error" }, { "inputs": [], "name": "InsufficientPayment", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "ListClaimSupply", "type": "error" }, { "inputs": [], "name": "ListDeleted", "type": "error" }, { "inputs": [], "name": "ListMaxSupply", "type": "error" }, { "inputs": [], "name": "ListPaused", "type": "error" }, { "inputs": [], "name": "ListTimeOutOfBounds", "type": "error" }, { "inputs": [], "name": "ListTimestampEnd", "type": "error" }, { "inputs": [], "name": "ListUnknown", "type": "error" }, { "inputs": [], "name": "MaxReferral", "type": "error" }, { "inputs": [], "name": "MaxSupply", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "NotAligned", "type": "error" }, { "inputs": [], "name": "NotEligible", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "NotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "NotZero", "type": "error" }, { "inputs": [], "name": "Reentrancy", "type": "error" }, { "inputs": [], "name": "ReservedMaxSupply", "type": "error" }, { "inputs": [], "name": "ReservedSupply", "type": "error" }, { "inputs": [], "name": "RoyaltyOverflow", "type": "error" }, { "inputs": [], "name": "RoyaltyReceiverIsZeroAddress", "type": "error" }, { "inputs": [], "name": "SelfReferral", "type": "error" }, { "inputs": [], "name": "SupplyUnderflow", "type": "error" }, { "inputs": [], "name": "TimeOutOfBounds", "type": "error" }, { "inputs": [], "name": "TimestampEnd", "type": "error" }, { "inputs": [], "name": "TokenAlreadyExists", "type": "error" }, { "inputs": [], "name": "TokenDoesNotExist", "type": "error" }, { "inputs": [], "name": "TransferFailed", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIPermanent", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnderSupply", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "min_", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "max_", "type": "uint16" } ], "name": "AlignmentUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "baseURI_", "type": "string" }, { "indexed": false, "internalType": "string", "name": "fileExtension_", "type": "string" } ], "name": "BaseURIUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId_", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "toTokenId_", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId_", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "toTokenId_", "type": "uint256" } ], "name": "BatchPermanentURI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "blacklistedAssets", "type": "address[]" }, { "indexed": true, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "BlacklistUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "name_", "type": "string" }, { "indexed": false, "internalType": "string", "name": "symbol_", "type": "string" } ], "name": "ContractCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "uri_", "type": "string" } ], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter_", "type": "address" }, { "indexed": true, "internalType": "uint8", "name": "listId_", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "ListMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "MintListDeleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint8", "name": "listId_", "type": "uint8" }, { "indexed": false, "internalType": "bool", "name": "paused_", "type": "bool" } ], "name": "MintListStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint8", "name": "listId_", "type": "uint8" }, { "components": [ { "internalType": "bytes32", "name": "root", "type": "bytes32" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint32", "name": "unit", "type": "uint32" }, { "internalType": "uint32", "name": "userSupply", "type": "uint32" }, { "internalType": "uint32", "name": "maxSupply", "type": "uint32" }, { "internalType": "uint32", "name": "start", "type": "uint32" }, { "internalType": "uint32", "name": "end", "type": "uint32" }, { "internalType": "bool", "name": "reserved", "type": "bool" }, { "internalType": "bool", "name": "paused", "type": "bool" } ], "indexed": false, "internalType": "struct MintList", "name": "list_", "type": "tuple" } ], "name": "MintListUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "start_", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "end_", "type": "uint256" } ], "name": "MintPeriodUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "minter_", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "uri_", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "PermanentURI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "price_", "type": "uint256" } ], "name": "PriceUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "referral_", "type": "address" }, { "indexed": true, "internalType": "address", "name": "referred_", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "Referral", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "referralFee_", "type": "uint16" } ], "name": "ReferralFeeUpdate", "type": "event" }, { "anonymous": false, "inputs": [], "name": "RoyaltiesDisabled", "type": "event" }, { "anonymous": false, "inputs": [], "name": "RoyaltiesFrozen", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver_", "type": "address" }, { "indexed": false, "internalType": "uint96", "name": "bps_", "type": "uint96" } ], "name": "RoyaltiesUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "supply_", "type": "uint256" } ], "name": "SupplyUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "unit_", "type": "uint256" } ], "name": "UnitUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "claimable_", "type": "uint256" } ], "name": "UserClaimableUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to_", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "VAULT_FACTORY", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "alignmentVault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet_", "type": "address" } ], "name": "claimedOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "contractURI_", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "defaultRoyalty", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "deleteList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "end", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "freezeRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "freezeTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "freezeURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBlacklist", "outputs": [ { "internalType": "address[]", "name": "blacklist_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "getList", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "root", "type": "bytes32" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint32", "name": "unit", "type": "uint32" }, { "internalType": "uint32", "name": "userSupply", "type": "uint32" }, { "internalType": "uint32", "name": "maxSupply", "type": "uint32" }, { "internalType": "uint32", "name": "start", "type": "uint32" }, { "internalType": "uint32", "name": "end", "type": "uint32" }, { "internalType": "bool", "name": "reserved", "type": "bool" }, { "internalType": "bool", "name": "paused", "type": "bool" } ], "internalType": "struct MintList", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint32", "name": "maxSupply_", "type": "uint32" }, { "internalType": "uint16", "name": "royalty_", "type": "uint16" }, { "internalType": "uint16", "name": "allocation_", "type": "uint16" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "alignedNft_", "type": "address" }, { "internalType": "uint256", "name": "price_", "type": "uint256" }, { "internalType": "uint96", "name": "vaultId_", "type": "uint96" }, { "internalType": "bytes32", "name": "salt_", "type": "bytes32" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint32", "name": "maxSupply_", "type": "uint32" }, { "internalType": "uint16", "name": "royalty_", "type": "uint16" }, { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "uint256", "name": "price_", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "result", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" }, { "internalType": "address", "name": "wallet_", "type": "address" } ], "name": "listClaimedOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "listIndex", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "listSupply", "outputs": [ { "internalType": "uint32", "name": "supply", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "lists", "outputs": [ { "internalType": "bytes32", "name": "root", "type": "bytes32" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint32", "name": "unit", "type": "uint32" }, { "internalType": "uint32", "name": "userSupply", "type": "uint32" }, { "internalType": "uint32", "name": "maxSupply", "type": "uint32" }, { "internalType": "uint32", "name": "start", "type": "uint32" }, { "internalType": "uint32", "name": "end", "type": "uint32" }, { "internalType": "bool", "name": "reserved", "type": "bool" }, { "internalType": "bool", "name": "paused", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxAllocation", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minAllocation", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "address", "name": "referral_", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "address", "name": "referral_", "type": "address" }, { "internalType": "uint16", "name": "allocation_", "type": "uint16" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" }, { "internalType": "uint16", "name": "allocation_", "type": "uint16" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32[]", "name": "proof_", "type": "bytes32[]" }, { "internalType": "uint8", "name": "listId_", "type": "uint8" }, { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint32", "name": "amount_", "type": "uint32" }, { "internalType": "address", "name": "referral_", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "name_", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "magicBytes", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "pauseList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "permanentURI", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referralFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token_", "type": "address" }, { "internalType": "address", "name": "recipient_", "type": "address" } ], "name": "rescueERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token_", "type": "address" }, { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "rescueERC721", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royaltiesFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "id", "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": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "min_", "type": "uint16" }, { "internalType": "uint16", "name": "max_", "type": "uint16" } ], "name": "setAllocation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "isApproved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI_", "type": "string" }, { "internalType": "string", "name": "fileExtension_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "assets_", "type": "address[]" }, { "internalType": "bool", "name": "status_", "type": "bool" } ], "name": "setBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "claimable_", "type": "uint32" } ], "name": "setClaimableUserSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "contractURI_", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price_", "type": "uint256" }, { "internalType": "uint8", "name": "listId_", "type": "uint8" }, { "internalType": "bytes32", "name": "root_", "type": "bytes32" }, { "internalType": "uint32", "name": "userSupply_", "type": "uint32" }, { "internalType": "uint32", "name": "maxSupply_", "type": "uint32" }, { "internalType": "uint32", "name": "start_", "type": "uint32" }, { "internalType": "uint32", "name": "end_", "type": "uint32" }, { "internalType": "uint32", "name": "unit_", "type": "uint32" }, { "internalType": "bool", "name": "reserved_", "type": "bool" }, { "internalType": "bool", "name": "paused_", "type": "bool" } ], "name": "setList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "start_", "type": "uint32" }, { "internalType": "uint32", "name": "end_", "type": "uint32" } ], "name": "setMintPeriod", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price_", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "bps_", "type": "uint16" } ], "name": "setReferralFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint96", "name": "bps_", "type": "uint96" } ], "name": "setRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "maxSupply_", "type": "uint32" } ], "name": "setSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "address", "name": "recipient_", "type": "address" }, { "internalType": "uint96", "name": "bps_", "type": "uint96" } ], "name": "setTokenRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" }, { "internalType": "string", "name": "tokenURI_", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint24", "name": "unit_", "type": "uint24" } ], "name": "setUnit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "start", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId_", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "supported_", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId_", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "tokenURI_", "type": "string" } ], "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": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "unit", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "listId_", "type": "uint8" } ], "name": "unpauseList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "userSupply", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526000805460ff191690556200001862000028565b6200002262000028565b6200008c565b63409feecd1980546001811615620000485763f92ee8a96000526004601cfd5b8160c01c808260011c1462000087578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b615811806200009c6000396000f3fe60806040526004361061048d5760003560e01c80637df325e111610255578063b015074411610144578063d29568b9116100c1578063ee79581c11610085578063ee79581c14610ffa578063efbe1c1c1461100d578063f04e283e14611031578063f2fde38b14611044578063f3fef3a314611057578063fee81cf4146110775761049c565b8063d29568b914610f6c578063d5abeb0114610f7f578063e8a3d48514610f9c578063e985e9c514610fb1578063ebae6d8114610fe75761049c565b8063c21b471b11610108578063c21b471b14610ed7578063c42fe71814610ef7578063c793803c14610f17578063c87b56dd14610f2c578063d03fb8f414610f4c5761049c565b8063b015074414610d6f578063b88d4fde14610e44578063baa3f7ee14610e57578063be9a655514610e93578063c1b5023114610eb75761049c565b806395d89b41116101d2578063a0712d6811610196578063a0712d6814610cda578063a2076b6f14610ced578063a22cb46514610d0f578063a78a04a414610d2f578063a9cbba9914610d4f5761049c565b806395d89b4114610c3a5780639b3ba79f14610c4f5780639c73815814610c715780639e36d59814610ca4578063a035b1fe14610cc45761049c565b80638c4e90c0116102195780638c4e90c014610b8a5780638da5cb5b14610baa578063907af6c014610bc357806391b7f5ed14610bfa578063938e3d7b14610c1a5761049c565b80637df325e114610ae65780638419a6d414610b065780638456cb5914610b2757806384ae2bc614610b3c5780638530f8e814610b6a5761049c565b8063325a370f1161037c5780635d799f87116102f95780636fc7d46d116102bd5780636fc7d46d146109f457806370a0823114610a14578063715018a614610a345780637180177614610a3c5780637885fdc714610a605780637b68575414610a9e5761049c565b80635d799f871461095f5780636352211e1461097f5780636790a9de1461099f5780636c0360eb146109bf5780636f4f9697146109d45761049c565b806340c10f191161034057806340c10f191461090457806342842e0e146109175780634a355d7f1461092a57806354d1f13d1461093f5780635c975abb146109475761049c565b8063325a370f14610878578063338d6c30146108985780633769b95a146108ba578063385c0eb0146108cf5780633f4ba83a146108ef5761049c565b8063150b7a021161040a5780632a55205a116103ce5780632a55205a146107b15780632f6196b7146107f05780633167611f1461080357806331b5438b1461081657806331b54a151461085e5761049c565b8063150b7a0214610711578063162094c41461074a57806318160ddd1461076a57806323b872dd1461079657806325692962146107a95761049c565b80630d4d1513116104515780630d4d15131461068e5780630e85d1e3146106a1578063103f2907146106c15780631249c58b146106e9578063149b5d89146106f15761049c565b8063012cf1e8146104d457806301ffc9a7146105f157806306fdde0314610621578063081812fc14610643578063095ea7b31461067b5761049c565b3661049c5761049a6110aa565b005b6104a46111ce565b60125436806000803760008082600034865af1915050806104c9573d6000803e3d6000fd5b503d6000803e3d6000f35b3480156104e057600080fd5b506105db6104ef3660046148ee565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091525060ff9081166000908152600e6020908152604091829020825161012081018452815481526001820154928101929092526002015463ffffffff80821693830193909352600160201b810483166060830152600160401b810483166080830152600160601b8104831660a0830152600160801b810490921660c0820152600160a01b82048316151560e0820152600160a81b909104909116151561010082015290565b6040516105e89190614909565b60405180910390f35b3480156105fd57600080fd5b5061061161060c3660046149b3565b6111eb565b60405190151581526020016105e8565b34801561062d57600080fd5b5061063661120b565b6040516105e89190614a2d565b34801561064f57600080fd5b5061066361065e366004614a40565b61129d565b6040516001600160a01b0390911681526020016105e8565b61049a610689366004614a79565b6112dc565b61049a61069c366004614aa5565b6112e7565b3480156106ad57600080fd5b5061049a6106bc366004614b43565b6112f7565b3480156106cd57600080fd5b50610663737c1a6b4b373e70730c52dfcb2e0a67e7591d4aaa81565b61049a61130a565b3480156106fd57600080fd5b5061049a61070c366004614bab565b611317565b34801561071d57600080fd5b5061073161072c366004614c57565b611350565b6040516001600160e01b031990911681526020016105e8565b34801561075657600080fd5b5061049a610765366004614d99565b611425565b34801561077657600080fd5b50600254600160201b900463ffffffff165b6040519081526020016105e8565b61049a6107a4366004614de0565b61149e565b61049a61159e565b3480156107bd57600080fd5b506107d16107cc366004614e21565b6115ee565b604080516001600160a01b0390931683526020830191909152016105e8565b61049a6107fe366004614e55565b611643565b61049a610811366004614ea6565b6116ae565b34801561082257600080fd5b506108496108313660046148ee565b600f6020526000908152604090205463ffffffff1681565b60405163ffffffff90911681526020016105e8565b34801561086a57600080fd5b50600a546106119060ff1681565b34801561088457600080fd5b5061049a6108933660046148ee565b611714565b3480156108a457600080fd5b506108ad611725565b6040516105e89190614edb565b3480156108c657600080fd5b5061049a611736565b3480156108db57600080fd5b5061049a6108ea366004614a40565b611746565b3480156108fb57600080fd5b5061049a611757565b61049a610912366004614a79565b611767565b61049a610925366004614de0565b611773565b34801561093657600080fd5b5061049a6117a0565b61049a6117b0565b34801561095357600080fd5b5060005460ff16610611565b34801561096b57600080fd5b5061049a61097a366004614f28565b6117ec565b34801561098b57600080fd5b5061066361099a366004614a40565b6118ae565b3480156109ab57600080fd5b5061049a6109ba366004614f61565b6118ec565b3480156109cb57600080fd5b50610636611939565b3480156109e057600080fd5b5061049a6109ef366004614fbb565b611948565b348015610a0057600080fd5b5061049a610a0f366004614fee565b61195a565b348015610a2057600080fd5b50610788610a2f366004615018565b611a68565b61049a611aa3565b348015610a4857600080fd5b5060025461084990600160401b900463ffffffff1681565b348015610a6c57600080fd5b50601154610a86906201000090046001600160601b031681565b6040516001600160601b0390911681526020016105e8565b348015610aaa57600080fd5b50610788610ab9366004615035565b60ff821660009081526010602090815260408083206001600160a01b038516845290915290205492915050565b348015610af257600080fd5b5061049a610b01366004614de0565b611ab5565b348015610b1257600080fd5b5060115461061190600160701b900460ff1681565b348015610b3357600080fd5b5061049a611b66565b348015610b4857600080fd5b50601154610b579061ffff1681565b60405161ffff90911681526020016105e8565b348015610b7657600080fd5b5061049a610b85366004615068565b611b76565b348015610b9657600080fd5b5061049a610ba53660046148ee565b611b99565b348015610bb657600080fd5b50638b78c6d81954610663565b348015610bcf57600080fd5b50600254610be690600160601b900462ffffff1681565b60405162ffffff90911681526020016105e8565b348015610c0657600080fd5b5061049a610c15366004614a40565b611bac565b348015610c2657600080fd5b5061049a610c3536600461509d565b611bf0565b348015610c4657600080fd5b50610636611c01565b348015610c5b57600080fd5b50601154610b5790600160881b900461ffff1681565b348015610c7d57600080fd5b50600d54610c9290600160201b900460ff1681565b60405160ff90911681526020016105e8565b348015610cb057600080fd5b5061049a610cbf3660046150d2565b611c10565b348015610cd057600080fd5b5061078860015481565b61049a610ce8366004614a40565b611c96565b348015610cf957600080fd5b50601154610b5790600160781b900461ffff1681565b348015610d1b57600080fd5b5061049a610d2a3660046150ed565b611ca2565b348015610d3b57600080fd5b50601254610663906001600160a01b031681565b348015610d5b57600080fd5b5061049a610d6a3660046150d2565b611cf8565b348015610d7b57600080fd5b50610def610d8a3660046148ee565b600e6020526000908152604090208054600182015460029092015490919063ffffffff80821691600160201b8104821691600160401b8204811691600160601b8104821691600160801b8204169060ff600160a01b8204811691600160a81b90041689565b60408051998a5260208a019890985263ffffffff9687169789019790975293851660608801529184166080870152831660a086015290911660c0840152151560e08301521515610100820152610120016105e8565b61049a610e52366004614c57565b611d55565b348015610e6357600080fd5b50610788610e72366004615018565b6001600160a01b031660009081526003602052604090205463ffffffff1690565b348015610e9f57600080fd5b5060025461084990600160781b900463ffffffff1681565b348015610ec357600080fd5b5061049a610ed2366004615119565b611da9565b348015610ee357600080fd5b5061049a610ef236600461513e565b611e28565b348015610f0357600080fd5b5061049a610f1236600461516a565b611e4a565b348015610f2357600080fd5b5061049a611e9d565b348015610f3857600080fd5b50610636610f47366004614a40565b611ead565b348015610f5857600080fd5b5061049a610f673660046148ee565b611efe565b61049a610f7a366004615185565b611f11565b348015610f8b57600080fd5b506002546108499063ffffffff1681565b348015610fa857600080fd5b50610636612209565b348015610fbd57600080fd5b50610611610fcc366004614f28565b601c52670a5a2e7a000000006008526000526030600c205490565b61049a610ff5366004615262565b612218565b61049a611008366004615304565b61229c565b34801561101957600080fd5b5060025461084990600160981b900463ffffffff1681565b61049a61103f366004615018565b6122b2565b61049a611052366004615018565b6122ef565b34801561106357600080fd5b5061049a611072366004614a79565b612316565b34801561108357600080fd5b50610788611092366004615018565b63389a75e1600c908152600091909152602090205490565b600254600d5460009163ffffffff808216926110d29290821691600160201b909104166153a5565b63ffffffff161490508015611195573480158015906110fb57506012546001600160a01b031615155b1561119157600061110f638b78c6d8195490565b6001600160a01b03161461113b5760115461113890600160881b900461ffff16826127106123a0565b90505b6012546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611188576040519150601f19603f3d011682016040523d82523d6000602084013e61118d565b606091505b5050505b5050565b60005460ff16156111b95760405163d93c066560e01b815260040160405180910390fd5b6111cb336001543461091291906153c9565b50565b638b78c6d8195433146111e9576382b429006000526004601cfd5b565b60006111f6826123d5565b806112055750611205826123f3565b92915050565b60606004805461121a906153eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611246906153eb565b80156112935780601f1061126857610100808354040283529160200191611293565b820191906000526020600020905b81548152906001019060200180831161127657829003601f168201915b5050505050905090565b600081600052673ec412a9852d173d60c11b601c52602060002082018201805460601b6112d25763ceea21b66000526004601cfd5b6001015492915050565b611191338383612450565b6112f28383836124f1565b505050565b6112ff6111ce565b6112f2838383612513565b6111e933600160006124f1565b61131f6111ce565b61134489898c8a8a8a8a8a8a8a600260009054906101000a900463ffffffff166125da565b50505050505050505050565b600080601260009054906101000a90046001600160a01b03166001600160a01b031663b13eb2cf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ca9190615425565b90506001600160a01b03811633036113f9576012546113f49082906001600160a01b031687612829565b611412565b604051638fcc34bd60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b61142d6111ce565b6114378282612852565b817f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b826040516114679190614a2d565b60405180910390a260405182907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790600090a25050565b6000818152673ec412a9852d173d60c11b3317601c52602090208101810180546001600160a01b0394851694938416938116919082861483026114f05767ceea21b6a1148100831560021b526004601cfd5b85600052816001015492508233148633141761151e576030600c205461151e57634b6e7f186000526004601cfd5b821561152c57600082600101555b85851818905550601c600c8181208054600019019055600084905220805460010163ffffffff8116840261156f5767ea553b3401336cea841560021b526004601cfd5b90558082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b600082815268aa4ec00224afccfdb76020526040812054606081901c91906127109083611622576020515490508060601c93505b606084901b1884600019829004811182023d3d3e9396930204935090915050565b60115461ffff600160781b90910481169082161080611672575060115461ffff600160881b9091048116908216115b156116905760405163f3b9a23560e01b815260040160405180910390fd5b61169d8161ffff166128a7565b6116a884848461292b565b50505050565b60115461ffff600160781b909104811690821610806116dd575060115461ffff600160881b9091048116908216115b156116fb5760405163f3b9a23560e01b815260040160405180910390fd5b6117088161ffff166128a7565b6112f28383600061292b565b61171c6111ce565b6111cb816129e8565b6060611731600c612abd565b905090565b61173e6111ce565b6111e9612b92565b61174e6111ce565b6111cb81612be0565b61175f6111ce565b6111e9612c7e565b611191828260006124f1565b61177e83838361149e565b813b156112f2576112f283838360405180602001604052806000815250612cd0565b6117a86111ce565b6111e9612d54565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b6117f46111ce565b601260009054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186b9190615425565b6001600160a01b0316826001600160a01b03160361189157506012546001600160a01b03165b61119182826118a96001600160a01b03831630612dcd565b612e03565b6000818152673ec412a9852d173d60c11b601c526020902081018101546001600160a01b0316806118e75763ceea21b66000526004601cfd5b919050565b6118f46111ce565b6118fe8282612e17565b60025460405163ffffffff909116906000907f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c908290a35050565b60606006805461121a906153eb565b6119506111ce565b6111918282612e86565b6119626111ce565b63ffffffff81161580159061198257508063ffffffff168263ffffffff16115b156119a057604051636fcae6fb60e11b815260040160405180910390fd5b600254600160781b900463ffffffff161580156119cf575060025463ffffffff838116600160781b9092041614155b80156119dd575060005460ff165b156119ea576119ea612c7e565b6002805467ffffffffffffffff60781b1916600160781b63ffffffff85811691820263ffffffff60981b191692909217600160981b928516928302179092556040805192835260208301919091527f60cc761f5c763ae5863f87b5c0cda371ffe55fb8830c9800662b5fc6af1d506291015b60405180910390a15050565b600081611a7d57638f4eb6046000526004601cfd5b673ec412a9852d173d60c11b601c528160005263ffffffff601c600c2054169050919050565b611aab6111ce565b6111e96000612f7a565b611abd6111ce565b601260009054906101000a90046001600160a01b03166001600160a01b031663b13eb2cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b349190615425565b6001600160a01b0316836001600160a01b031603611b5b576012546001600160a01b031691505b6112f2838383612829565b611b6e6111ce565b6111e9612fb8565b611b7e6111ce565b611b86612ff5565b611b8e613020565b6112f2838383613057565b611ba16111ce565b6111cb8160016130fd565b611bb46111ce565b60018190556040518181527fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a906020015b60405180910390a150565b611bf86111ce565b6111cb8161319a565b60606005805461121a906153eb565b611c186111ce565b8063ffffffff16600003611c3e576040516252b55360e31b815260040160405180910390fd5b600280546bffffffff00000000000000001916600160401b63ffffffff8416908102919091179091556040519081527e3f75ba46b436f533c68d0ff19d45100dc235071f7ad41419fa3ff1349fa4a190602001611be5565b6111cb338260006124f1565b801515905081601c52670a5a2e7a0000000060085233600052806030600c2055806000528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206000a35050565b611d006111ce565b600d54600254611d209163ffffffff90811691600160201b9004166153a5565b63ffffffff168163ffffffff161015611d4c576040516334b2b7a360e11b815260040160405180910390fd5b6111cb816131d6565b611d6085858561149e565b833b1561118d5761118d85858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612cd092505050565b611db16111ce565b8062ffffff16600003611dd6576040516252b55360e31b815260040160405180910390fd5b6002805462ffffff60601b1916600160601b62ffffff8416908102919091179091556040519081527f826b69f82e019051d294560c4a22f59db6f3e9cb416c30e7cfc8ad187c639cad90602001611be5565b611e306111ce565b611e38612ff5565b611e40613020565b6111918282613265565b611e526111ce565b601154611e6c90600160881b900461ffff16612710615442565b61ffff168161ffff161115611e94576040516307a9fdf960e01b815260040160405180910390fd5b6111cb816132ed565b611ea56111ce565b6111e9613358565b6060611ed7826000818152673ec412a9852d173d60c11b601c52602090208101015460601b151590565b15611ee5576112058261339e565b60405163677510db60e11b815260040160405180910390fd5b611f066111ce565b6111cb8160006130fd565b63409feecd198054600382558015611f485760018160011c14303b10611f3f5763f92ee8a96000526004601cfd5b818160ff1b1b91505b50611f578b8b8b8b8a8961352f565b61271061ffff88161115611f7e5760405163f3b9a23560e01b815260040160405180910390fd5b6011805463ffffffff60781b1916600160781b61ffff8a1690810261ffff60881b191691909117600160881b919091021790556000826120545760405163676f051760e11b81526001600160a01b038089166004830152871660248201526001600160601b0385166044820152737c1a6b4b373e70730c52dfcb2e0a67e7591d4aaa9063cede0a2e906064016020604051808303816000875af1158015612029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204d9190615425565b90506120f3565b60405163332948eb60e01b81526001600160a01b038089166004830152871660248201526001600160601b038516604482015260648101849052737c1a6b4b373e70730c52dfcb2e0a67e7591d4aaa9063332948eb906084016020604051808303816000875af11580156120cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f09190615425565b90505b601280546001600160a01b0319166001600160a01b038316179055341561218a576000816001600160a01b03163460405160006040518083038185875af1925050503d8060008114612161576040519150601f19603f3d011682016040523d82523d6000602084013e612166565b606091505b5050905080612188576040516312171d8360e31b815260040160405180910390fd5b505b6040805161ffff8a1680825260208201527f651dcfc39d95235af566f8d017566d15d6d368b7df40b5b9f99c0300a5084a81910160405180910390a15080156121fc576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b5050505050505050505050565b60606009805461121a906153eb565b63409feecd19805460038255801561224f5760018160011c14303b106122465763f92ee8a96000526004601cfd5b818160ff1b1b91505b5061225e87878787878761352f565b8015612293576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050505050565b6122aa86868686868661369a565b505050505050565b6122ba6111ce565b63389a75e1600c52806000526020600c2080544211156122e257636f5e88186000526004601cfd5b600090556111cb81612f7a565b6122f76111ce565b8060601b61230d57637448fbae6000526004601cfd5b6111cb81612f7a565b3068929eee149b4bd2126854036123355763ab143c066000526004601cfd5b3068929eee149b4bd21268556123906000612353638b78c6d8195490565b6001600160a01b031614801561237357506012546001600160a01b031615155b61237d578261238a565b6012546001600160a01b03165b826136bf565b3868929eee149b4bd21268555050565b60006123ad848484613808565b905081838509156123ce57600101806123ce5763ae47f7026000526004601cfd5b9392505050565b6000632a55205a60e083901c9081146301ffc9a79190911417611205565b6000635b5e139f60e01b6001600160e01b0319831614806124245750632483248360e11b6001600160e01b03198316145b806112055750611205826301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b60001960601c828116925083811693508160005283673ec412a9852d173d60c11b17601c52602060002082018201805482169150816124975763ceea21b66000526004601cfd5b8185148515176124bd57816000526030600c20546124bd57634b6e7f186000526004601cfd5b6001018390558183827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a450505050565b60115461250890600160781b900461ffff166128a7565b6112f283838361292b565b60005b8281101561259857811561255c576125568484838181106125395761253961545d565b905060200201602081019061254e9190615018565b600c9061389a565b50612590565b61258e8484838181106125715761257161545d565b90506020020160208101906125869190615018565b600c906139ea565b505b600101612516565b508015157fee9d89892c5dcf46d5666e29b34f4c774422b5f43f738b564b85938b6ede416484846040516125cd929190615473565b60405180910390a2505050565b6125e88b8989878a8a613b34565b600060ff8c16156125f9578b61262b565b600d805460049061261390600160201b900460ff166154c1565b91906101000a81548160ff021916908360ff16021790555b60ff8082166000908152600e602052604090209192508d161580159061266057506002810154600160201b900463ffffffff16155b1561267e576040516306661b8760e51b815260040160405180910390fd5b8963ffffffff166000036126a4576040516252b55360e31b815260040160405180910390fd5b600281015460ff8381166000908152600f60205260409020546126e692600160a01b810490921691889163ffffffff90811691600160401b9004168d88613c23565b8b8160000181905550898160020160046101000a81548163ffffffff021916908363ffffffff160217905550888160020160086101000a81548163ffffffff021916908363ffffffff160217905550858160020160006101000a81548163ffffffff021916908363ffffffff1602179055508781600201600c6101000a81548163ffffffff021916908363ffffffff160217905550868160020160106101000a81548163ffffffff021916908363ffffffff1602179055508a8160010181905550848160020160146101000a81548160ff021916908315150217905550838160020160156101000a81548160ff0219169083151502179055508160ff167f1bcac6ae8e7d846f60d0b21c37fa4069e2eb2c1b503726263e7e8fb665c0032f8260405161281291906154e0565b60405180910390a250505050505050505050505050565b6040805160208101909152600081526112f2906001600160a01b03851690309085908590613d23565b600a5460ff168061287157506000828152600b602052604090205460ff165b1561288f57604051639d4fb00360e01b815260040160405180910390fd5b60008281526007602052604090206112f282826155d5565b348015611191576012546000906001600160a01b0316158015906128cb5750600083115b156112f2576128dd83836127106123a0565b6012546040519192506001600160a01b0316908290600081818185875af1925050503d80600081146122aa576040519150601f19603f3d011682016040523d82523d6000602084013e6122aa565b3068929eee149b4bd21268540361294a5763ab143c066000526004601cfd5b3068929eee149b4bd2126855600061296183613d70565b905061296d8285613d9e565b33600081815260036020908152604091829020805463ffffffff19811663ffffffff9182168701821617909155915191841682527f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe910160405180910390a26129d68482613ee5565b503868929eee149b4bd2126855505050565b6129f181613f90565b60ff81166000908152600e6020526040812060028101549091600160201b90910463ffffffff169003612a37576040516306661b8760e51b815260040160405180910390fd5b600281015460ff8381166000908152600f6020526040812054612a7893600160a01b81049093169263ffffffff91821691600160401b909104168280613c23565b60028101805467ffffffff000000001916905560405160ff8316907f9721a05f3d313e08a70184d79d2544045eaeb13e5c0d384a63529406b15b729790600090a25050565b63978aab926004526000818152602481206060915068fbb67fda52d4bfb8bf81548060a01b60a01c6040519450846020018260601c9250838314158302815281612b4c578215612b4757600191508185015460601c92508215612b47578284141590920260208301525060028381015460601c918215612b47576003915083831415830260408201525b612b7c565b600191821c915b82811015612b7a578581015460601c858114158102600583901b8401529350600101612b53565b505b8186528160051b81016040525050505050919050565b612b9a613020565b612ba2612ff5565b6011805460ff60701b1916600160701b1790556040517f0e8cb6b5333e3dfc6cc3e4818dcfc3a58d8396eacf37cd8089cd59fcb8a6c9e690600090a1565b600a5460ff1615612c0457604051639d4fb00360e01b815260040160405180910390fd5b6000818152600b60205260408120805460ff19166001179055612c268261339e565b6000838152600760205260409020909150612c4182826155d5565b50817fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b5565720782604051612c729190614a2d565b60405180910390a25050565b612c86613fcd565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015612d17578060c08401826020870160045afa505b60208360a48301601c860160008a5af1612d3a573d15612d3a573d6000843e3d83fd5b508060e01b8251146122aa5763d1a57ed66000526004601cfd5b612d5c613020565b612d6e600068aa4ec00224afccfdb755565b600080805268aa4ec00224afccfdb76020527f913817da311d664dd3395c9b93b1f96a4af2b60ec505387b3ac50cc4468f3488556040517fadc793193bdb754feda6f23da65c56c9068c168dc139151287691fb9d34aeb0290600090a1565b60006370a0823160e01b600052816004526020600060246000865afa3d6020141680612df857600080fd5b505060005192915050565b6112f26001600160a01b0384168383613ff0565b600a5460ff1615612e3b57604051639d4fb00360e01b815260040160405180910390fd5b6006612e4783826155d5565b506008612e5482826155d5565b507f3316401ffd47efccb0aefc7f765fd68f5d5db424637c171a26e69242f26d15968282604051611a5c929190615695565b8161ffff168161ffff161080612ec5575060115461ffff600160781b9091048116908316108015612ec55750600254600160201b900463ffffffff1615155b80612ee6575060115461271090612ee09061ffff16836156c3565b61ffff16115b15612f045760405163f3b9a23560e01b815260040160405180910390fd5b6011805461ffff838116600160881b810261ffff60881b19878416600160781b9081029190911663ffffffff60781b199095169490941717938490556040805193909404909116825260208201527f651dcfc39d95235af566f8d017566d15d6d368b7df40b5b9f99c0300a5084a819101611a5c565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b612fc0614030565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612cb33390565b601154600160701b900460ff16156111e9576040516308f6281560e41b815260040160405180910390fd5b600061302d6000806115ee565b5090506001600160a01b0381166111cb576040516302a9bde760e51b815260040160405180910390fd5b82600003613077576040516252b55360e31b815260040160405180910390fd5b806001600160601b03166000036130a457600083815268aa4ec00224afccfdb760205260408120556130af565b6130af838383614054565b6040516001600160601b03821681526001600160a01b0383169084907ffdf8f1db17a2bc2b4c773f9f43c6cc82be22922d0ccc195781c1a7b02e7eefb29060200160405180910390a3505050565b61310682613f90565b60ff82166000908152600e6020526040812060028101549091600160201b90910463ffffffff16900361314c576040516306661b8760e51b815260040160405180910390fd5b60028101805460ff60a81b1916600160a81b8415150217905560405160ff8416907f1bcac6ae8e7d846f60d0b21c37fa4069e2eb2c1b503726263e7e8fb665c0032f906125cd9084906154e0565b60096131a682826155d5565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac3737881604051611be59190614a2d565b60025463ffffffff9081169082161180156131ff5750600254600160201b900463ffffffff1615155b1561321d57604051632cdb04a160e21b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f72b676240fb8e6cb66b796a6127727940d42a46c91641339ce280f7517b6568c90602001611be5565b61327160008383614054565b61327b82826140ae565b601180546dffffffffffffffffffffffff00001916620100006001600160601b038416908102919091179091556040519081526001600160a01b038316906000907ffdf8f1db17a2bc2b4c773f9f43c6cc82be22922d0ccc195781c1a7b02e7eefb29060200160405180910390a35050565b61271061ffff82161115613314576040516307a9fdf960e01b815260040160405180910390fd5b6011805461ffff191661ffff83169081179091556040519081527f86d4ccf683b2dc5a92d3b3a8e1c54b8452b39a7aee12580a63a24689d5783d9390602001611be5565b600a805460ff1916600117905560025460405163ffffffff909116906000907f3a63124eb820231a2cc41b08577f1202c627891f19cfc3b388bd63cc83734320908290a3565b6000818152600760205260408120805460609291906133bc906153eb565b80601f01602080910402602001604051908101604052809291908181526020018280546133e8906153eb565b80156134355780601f1061340a57610100808354040283529160200191613435565b820191906000526020600020905b81548152906001019060200180831161341857829003601f168201915b5050505050905060008151111561344c5792915050565b60006006805461345b906153eb565b80601f0160208091040260200160405190810160405280929190818152602001828054613487906153eb565b80156134d45780601f106134a9576101008083540402835291602001916134d4565b820191906000526020600020905b8154815290600101906020018083116134b757829003601f168201915b5050505050905060008151116134f95760405180602001604052806000815250613527565b80613503856140f9565b6008604051602001613517939291906156de565b6040516020818303038152906040525b949350505050565b61353761413d565b61353f612fb8565b6000805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff805463ffffffff1916905561357d8261415a565b61358b828461ffff16613265565b600461359787826155d5565b5060056135a486826155d5565b506001819055600280546affffffffffffffffffffff60601b19600160401b63ffffffff88169081026bffffffff00000000ffffffff19909316179190911716600160601b1790556040517f11ede5062d284bb7f6e5f5c9179f4ee2c3175d7480c253d54e909fc54cb23a7a9061361e9088908890615695565b60405180910390a160405163ffffffff851681527f72b676240fb8e6cb66b796a6127727940d42a46c91641339ce280f7517b6568c9060200160405180910390a16040518181527fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a9060200160405180910390a1505050505050565b6011546136b190600160781b900461ffff166128a7565b6122aa868686868686614196565b6001600160a01b0382166136e5576040516252b55360e31b815260040160405180910390fd5b60006136f4638b78c6d8195490565b90506001600160a01b0381161580158161371757506001600160a01b0382163314155b15613734576040516282b42960e81b815260040160405180910390fd5b47808411806137405750815b15613749578093505b6000856001600160a01b03168560405160006040518083038185875af1925050503d8060008114613796576040519150601f19603f3d011682016040523d82523d6000602084013e61379b565b606091505b50509050806137bd576040516312171d8360e31b815260040160405180910390fd5b856001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364866040516137f891815260200190565b60405180910390a2505050505050565b828202818385830414851517026138935760001983850981811082019003828486098360000384168285116138455763ae47f7026000526004601cfd5b938490049383821190920360008390038390046001010292030417600260038302811880840282030280840282030280840282030280840282030280840282030280840290910302026123ce565b0492915050565b63978aab926004526000828152602481206001600160a01b03929092169168fbb67fda52d4bfb8be1983016138d75763f5a267f16000526004601cfd5b826138e95768fbb67fda52d4bfb8bf92505b80546001600160601b03811682602052806139ac578160601c80613917578560601b845560019450506139e1565b85810361392457506139e1565b600184015460601c80613945578660601b60018601556001955050506139e1565b8681036139535750506139e1565b600285015460601c80613975578760601b6002870155600196505050506139e1565b878103613984575050506139e1565b6000928352604080842060019055918352818320600290558252902060039055506007908117905b84600052604060002080546139df578160011c91508560601b8285015581600101815582600201845560019450506139e1565b505b50505092915050565b63978aab926004526000828152602481206001600160a01b03929092169168fbb67fda52d4bfb8be198301613a275763f5a267f16000526004601cfd5b82613a395768fbb67fda52d4bfb8bf92505b80546001600160601b03811680613ab75760019350848260601c03613a72576001830180548455600284018054909155600090556139e1565b84600184015460601c03613a94576002830180546001850155600090556139e1565b84600284015460601c03613aae57600060028401556139e1565b600093506139e1565b82602052846000526040600020805480613ad25750506139e1565b60018360011c039250826001820314613b0a578285015460601c8060601b600183038701556000848701558060005250806040600020555b5083546bffffffffffffffffffffffff1916600192831b1782179093556000909255509392505050565b600d5460ff600160201b90910481169087161115613b6557604051636469c71560e01b815260040160405180910390fd5b63ffffffff84161580613b7c575063ffffffff8516155b80613b8b575063ffffffff8316155b15613ba8576040516252b55360e31b815260040160405180910390fd5b60ff86166000908152600f602052604090205463ffffffff9081169085161015613be55760405163123e2ca160e21b815260040160405180910390fd5b63ffffffff811615801590613c0557508063ffffffff168263ffffffff16115b156122aa57604051636b664f9360e11b815260040160405180910390fd5b85158015613c2f575084155b6122aa57858015613c3d5750845b15613cd3578263ffffffff168263ffffffff1603156122aa578263ffffffff168263ffffffff161115613cb057600d805463ffffffff19811685850363ffffffff92831601821690811790925582161015613cab5760405163de1552ff60e01b815260040160405180910390fd5b6122aa565b600d805463ffffffff19811684860363ffffffff928316039091161790556122aa565b8415613cfb57600d805463ffffffff808216878603011663ffffffff199091161790556122aa565b600d805485850363ffffffff808316919091031663ffffffff19909116179055505050505050565b6040518151808015613d3457600080fd5b632142170760e11b60005286600452856024528460445260008060646000808c5af1613d5f57600080fd5b505060405250506000606052505050565b6000613d7b826142cd565b6002549091506118e79063ffffffff80841691600160201b81048216911661442c565b600034118015613db3575060115461ffff1615155b8015613dc757506001600160a01b03821615155b15611191576001600160a01b038216331480613df45750806001600160a01b0316826001600160a01b0316145b15613e1257604051632af47b8760e11b815260040160405180910390fd5b601154600090613e299061ffff163461271061446f565b90506000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114613e78576040519150601f19603f3d011682016040523d82523d6000602084013e613e7d565b606091505b5050905080613e9f576040516312171d8360e31b815260040160405180910390fd5b60405182815233906001600160a01b038616907faeecfcda1271d292db728294b8ae465871ec039d51404caf49a7eb0ade51770a9060200160405180910390a350505050565b6001600160a01b0382161580613eff575063ffffffff8116155b15613f1c576040516252b55360e31b815260040160405180910390fd5b613f258261449d565b600254600160201b900463ffffffff1660005b8263ffffffff16811015613f5e57613f568483600101935083614532565b600101613f38565b50506002805463ffffffff600160201b80830482169094011690920267ffffffff000000001990921691909117905550565b60ff81161580613faf5750600d5460ff600160201b9091048116908216115b156111cb57604051636469c71560e01b815260040160405180910390fd5b60005460ff166111e957604051638dfc202b60e01b815260040160405180910390fd5b63a9059cbb60e01b6000528160045280602452602060006044600080875af160005160203d14163d1517168061402557600080fd5b506000602452505050565b60005460ff16156111e95760405163d93c066560e01b815260040160405180910390fd5b6001600160601b0316612710808211156140765763350a88b36000526004601cfd5b8260601b8061408d5763b4457eaa6000526004601cfd5b8460005268aa4ec00224afccfdb76020528281176040600020555050505050565b6001600160601b0316612710808211156140d05763350a88b36000526004601cfd5b8260601b806140e75763b4457eaa6000526004601cfd5b90911768aa4ec00224afccfdb7555050565b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a900480614114575050819003601f19909101908152919050565b63409feecd1980546001166111cb5763d7e6bcf86000526004601cfd5b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b3068929eee149b4bd2126854036141b55763ab143c066000526004601cfd5b3068929eee149b4bd21268556141cb8184613d9e565b60008060006141dc898989886145d3565b925092509250823410156142035760405163cd1c886760e01b815260040160405180910390fd5b60025463ffffffff80821691614222918591600160201b9004166153a5565b63ffffffff16111561424757604051632cdb04a160e21b815260040160405180910390fd5b8061426c5760025461426c9063ffffffff80851691600160201b81048216911661442c565b60405163ffffffff8316815260ff88169033907f70517e492ee7345b5126062d575418d36ff38ca3ba226c05f26259bbd6d5d65e9060200160405180910390a36142b68683613ee5565b5050503868929eee149b4bd2126855505050505050565b60006142d7614030565b816001546142e59190615781565b3410156143055760405163cd1c886760e01b815260040160405180910390fd5b60025460009061432190600160601b900462ffffff1684615781565b60025490915063ffffffff80821691614343918491600160201b900416615798565b111561436257604051632cdb04a160e21b815260040160405180910390fd5b6002543360009081526003602052604090205463ffffffff600160401b90920482169161439191849116615798565b11156143b05760405163e67c535b60e01b815260040160405180910390fd5b600254600160781b900463ffffffff16158015906143dc5750600254600160781b900463ffffffff1642105b8061440e5750600254600160981b900463ffffffff161580159061440e5750600254600160981b900463ffffffff1642115b156112055760405163a7c9c67f60e01b815260040160405180910390fd5b600d5463ffffffff1661443f83836157ab565b61444991906157ab565b63ffffffff168311156112f25760405163072f6e4f60e11b815260040160405180910390fd5b8282028315848204841417820261448e5763ad251c276000526004601cfd5b81810615159190040192915050565b60006144a9600c612abd565b90506000805b82518110156116a8576144ed338483815181106144ce576144ce61545d565b60200260200101516001600160a01b0316612dcd90919063ffffffff16565b82019150614507848483815181106144ce576144ce61545d565b90910190811561452a576040516309550c7760e01b815260040160405180910390fd5b6001016144af565b8160601b60601c915080600052673ec412a9852d173d60c11b601c5260206000208101810180548060601b156145705763c991cbb16000526004601cfd5b831790556000829052601c600c20805460010163ffffffff811684026145a55767ea553b3401336cea841560021b526004601cfd5b9055808260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8138a45050565b60ff8083166000908152600e60209081526040808320815161012081018352815481526001820154938101939093526002015463ffffffff80821692840192909252600160201b810482166060840152600160401b810482166080840152600160601b8104821660a0840152600160801b810490911660c0830152600160a01b81048416151560e0830152600160a81b90049092161580156101008401529091829182919061469557604051637dd7e7fb60e01b815260040160405180910390fd5b604080513360208201526000910160408051601f19818403018152908290526146c0916020016157c8565b60408051808303601f190181528282528051602091820120818401528151808403820181529282019091528151910120825190915015801590614710575061470e89898460000151846148a3565b155b1561472e57604051637c75aa6f60e11b815260040160405180910390fd5b604082015161473d90876157e4565b60ff881660009081526010602090815260408083203384529091529020805463ffffffff8381169091019182905560608501519296509190911610156147965760405163cc18ae7760e01b815260040160405180910390fd5b60ff87166000908152600f60205260409020805463ffffffff19811663ffffffff9182168701821690811790925560808401511610156147e95760405163050d863360e11b815260040160405180910390fd5b8160e001511561481057600d805463ffffffff8082168790031663ffffffff199091161790555b60a082015163ffffffff161580159061483257508160a0015163ffffffff1642105b8061485a575060c082015163ffffffff161580159061485a57508160c0015163ffffffff1642115b156148785760405163265fec6360e01b815260040160405180910390fd5b8563ffffffff16826020015161488e9190615781565b94508160e00151925050509450945094915050565b600083156148d5578360051b8501855b803580851160051b948552602094851852604060002093018181106148b35750505b501492915050565b803560ff811681146118e757600080fd5b60006020828403121561490057600080fd5b6123ce826148dd565b6000610120820190508251825260208301516020830152604083015163ffffffff808216604085015280606086015116606085015250506080830151614957608084018263ffffffff169052565b5060a083015161496f60a084018263ffffffff169052565b5060c083015161498760c084018263ffffffff169052565b5060e083015161499b60e084018215159052565b5061010083810151801515848301525b505092915050565b6000602082840312156149c557600080fd5b81356001600160e01b0319811681146123ce57600080fd5b60005b838110156149f85781810151838201526020016149e0565b50506000910152565b60008151808452614a198160208601602086016149dd565b601f01601f19169290920160200192915050565b6020815260006123ce6020830184614a01565b600060208284031215614a5257600080fd5b5035919050565b6001600160a01b03811681146111cb57600080fd5b80356118e781614a59565b60008060408385031215614a8c57600080fd5b8235614a9781614a59565b946020939093013593505050565b600080600060608486031215614aba57600080fd5b8335614ac581614a59565b9250602084013591506040840135614adc81614a59565b809150509250925092565b60008083601f840112614af957600080fd5b50813567ffffffffffffffff811115614b1157600080fd5b6020830191508360208260051b8501011115614b2c57600080fd5b9250929050565b803580151581146118e757600080fd5b600080600060408486031215614b5857600080fd5b833567ffffffffffffffff811115614b6f57600080fd5b614b7b86828701614ae7565b9094509250614b8e905060208501614b33565b90509250925092565b803563ffffffff811681146118e757600080fd5b6000806000806000806000806000806101408b8d031215614bcb57600080fd5b8a359950614bdb60208c016148dd565b985060408b01359750614bf060608c01614b97565b9650614bfe60808c01614b97565b9550614c0c60a08c01614b97565b9450614c1a60c08c01614b97565b9350614c2860e08c01614b97565b9250614c376101008c01614b33565b9150614c466101208c01614b33565b90509295989b9194979a5092959850565b600080600080600060808688031215614c6f57600080fd5b8535614c7a81614a59565b94506020860135614c8a81614a59565b935060408601359250606086013567ffffffffffffffff80821115614cae57600080fd5b818801915088601f830112614cc257600080fd5b813581811115614cd157600080fd5b896020828501011115614ce357600080fd5b9699959850939650602001949392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112614d1d57600080fd5b813567ffffffffffffffff80821115614d3857614d38614cf6565b604051601f8301601f19908116603f01168101908282118183101715614d6057614d60614cf6565b81604052838152866020858801011115614d7957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215614dac57600080fd5b82359150602083013567ffffffffffffffff811115614dca57600080fd5b614dd685828601614d0c565b9150509250929050565b600080600060608486031215614df557600080fd5b8335614e0081614a59565b92506020840135614e1081614a59565b929592945050506040919091013590565b60008060408385031215614e3457600080fd5b50508035926020909101359150565b803561ffff811681146118e757600080fd5b60008060008060808587031215614e6b57600080fd5b8435614e7681614a59565b9350602085013592506040850135614e8d81614a59565b9150614e9b60608601614e43565b905092959194509250565b600080600060608486031215614ebb57600080fd5b8335614ec681614a59565b925060208401359150614b8e60408501614e43565b6020808252825182820181905260009190848201906040850190845b81811015614f1c5783516001600160a01b031683529284019291840191600101614ef7565b50909695505050505050565b60008060408385031215614f3b57600080fd5b8235614f4681614a59565b91506020830135614f5681614a59565b809150509250929050565b60008060408385031215614f7457600080fd5b823567ffffffffffffffff80821115614f8c57600080fd5b614f9886838701614d0c565b93506020850135915080821115614fae57600080fd5b50614dd685828601614d0c565b60008060408385031215614fce57600080fd5b614fd783614e43565b9150614fe560208401614e43565b90509250929050565b6000806040838503121561500157600080fd5b61500a83614b97565b9150614fe560208401614b97565b60006020828403121561502a57600080fd5b81356123ce81614a59565b6000806040838503121561504857600080fd5b614f46836148dd565b80356001600160601b03811681146118e757600080fd5b60008060006060848603121561507d57600080fd5b83359250602084013561508f81614a59565b9150614b8e60408501615051565b6000602082840312156150af57600080fd5b813567ffffffffffffffff8111156150c657600080fd5b61352784828501614d0c565b6000602082840312156150e457600080fd5b6123ce82614b97565b6000806040838503121561510057600080fd5b823561510b81614a59565b9150614fe560208401614b33565b60006020828403121561512b57600080fd5b813562ffffff811681146123ce57600080fd5b6000806040838503121561515157600080fd5b823561515c81614a59565b9150614fe560208401615051565b60006020828403121561517c57600080fd5b6123ce82614e43565b6000806000806000806000806000806101408b8d0312156151a557600080fd5b8a3567ffffffffffffffff808211156151bd57600080fd5b6151c98e838f01614d0c565b9b5060208d01359150808211156151df57600080fd5b506151ec8d828e01614d0c565b9950506151fb60408c01614b97565b975061520960608c01614e43565b965061521760808c01614e43565b955061522560a08c01614a6e565b945061523360c08c01614a6e565b935060e08b013592506152496101008c01615051565b91506101208b013590509295989b9194979a5092959850565b60008060008060008060c0878903121561527b57600080fd5b863567ffffffffffffffff8082111561529357600080fd5b61529f8a838b01614d0c565b975060208901359150808211156152b557600080fd5b506152c289828a01614d0c565b9550506152d160408801614b97565b93506152df60608801614e43565b925060808701356152ef81614a59565b8092505060a087013590509295509295509295565b60008060008060008060a0878903121561531d57600080fd5b863567ffffffffffffffff81111561533457600080fd5b61534089828a01614ae7565b90975095506153539050602088016148dd565b9350604087013561536381614a59565b925061537160608801614b97565b9150608087013561538181614a59565b809150509295509295509295565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8181168382160190808211156153c2576153c261538f565b5092915050565b6000826153e657634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806153ff57607f821691505b60208210810361541f57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561543757600080fd5b81516123ce81614a59565b61ffff8281168282160390808211156153c2576153c261538f565b634e487b7160e01b600052603260045260246000fd5b60208082528181018390526000908460408401835b868110156154b657823561549b81614a59565b6001600160a01b031682529183019190830190600101615488565b509695505050505050565b600060ff821660ff81036154d7576154d761538f565b60010192915050565b8154815260018201546020820152600282015463ffffffff80821660408401526101208301919061551e60608501828460201c1663ffffffff169052565b61553560808501828460401c1663ffffffff169052565b61554c60a08501828460601c1663ffffffff169052565b61556360c08501828460801c1663ffffffff169052565b5061557860e0840160ff8360a01c1615159052565b6153c2610100840160ff8360a81c1615159052565b601f8211156112f2576000816000526020600020601f850160051c810160208610156155b65750805b601f850160051c820191505b818110156122aa578281556001016155c2565b815167ffffffffffffffff8111156155ef576155ef614cf6565b615603816155fd84546153eb565b8461558d565b602080601f83116001811461563857600084156156205750858301515b600019600386901b1c1916600185901b1785556122aa565b600085815260208120601f198616915b8281101561566757888601518255948401946001909101908401615648565b50858210156156855787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006156a86040830185614a01565b82810360208401526156ba8185614a01565b95945050505050565b61ffff8181168382160190808211156153c2576153c261538f565b6000845160206156f2828560208a016149dd565b855191840191615706818460208a016149dd565b8554920191600090615717816153eb565b6001828116801561572f576001811461574457615771565b60ff1984168752821515830287019450615771565b89600052602060002060005b8481101561576957815489820152908301908701615750565b505082870194505b50929a9950505050505050505050565b80820281158282048414176112055761120561538f565b808201808211156112055761120561538f565b63ffffffff8281168282160390808211156153c2576153c261538f565b600082516157da8184602087016149dd565b9190910192915050565b63ffffffff8181168382160280821691908281146149ab576149ab61538f56fea164736f6c6343000817000a