[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InsufficientFunds", "type": "error" }, { "inputs": [], "name": "MintLimit", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "SoldOut", "type": "error" }, { "inputs": [], "name": "WhitelistActive", "type": "error" }, { "inputs": [], "name": "WhitelistDisabled", "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": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DevMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "MINT_NFT_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "NFT_MINTED_PER_USER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_artist", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_royaltyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "address", "name": "_user", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerPerson", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "remainingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": "adArtist", "type": "address" } ], "name": "setAdArtist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxBuy", "type": "uint256" } ], "name": "setMaxPerPerson", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxPerTx", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setOnlyWhitelisted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newPrice", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_whitelistCost", "type": "uint256" } ], "name": "setWLCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_WLMaxMints", "type": "uint256" } ], "name": "setWLMaxMints", "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": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "whitelistCost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "whitelistUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "whitelistedAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawEth", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "wlMaxMints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040526611688627664000600855610dac6009556064600a55600a600b556000600c60006101000a81548160ff0219169083151502179055506064600d55660e35fa931a0000600e553480156200005757600080fd5b506040518060400160405280600781526020017f56696b696e6773000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f56696b696e6773000000000000000000000000000000000000000000000000008152508160009080519060200190620000dc92919062000242565b508060019080519060200190620000f592919062000242565b505050620001186200010c6200017460201b60201c565b6200017c60201b60201c565b6040518060800160405280604381526020016200439160439139601090805190602001906200014992919062000242565b5061022b6011819055506001601260006101000a81548160ff02191690831515021790555062000357565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200025090620002f2565b90600052602060002090601f016020900481019282620002745760008555620002c0565b82601f106200028f57805160ff1916838001178555620002c0565b82800160010185558215620002c0579182015b82811115620002bf578251825591602001919060010190620002a2565b5b509050620002cf9190620002d3565b5090565b5b80821115620002ee576000816000905550600101620002d4565b5090565b600060028204905060018216806200030b57607f821691505b6020821081141562000322576200032162000328565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61402a80620003676000396000f3fe6080604052600436106102725760003560e01c80637989a2cf1161014f578063c6f6f216116100c1578063e7b99ec71161007a578063e7b99ec714610956578063e985e9c514610981578063edec5f27146109be578063ee1cc944146109e7578063f2fde38b14610a10578063f968adbe14610a3957610272565b8063c6f6f2161461085a578063c87b56dd14610883578063d1d19213146108c0578063da0239a6146108e9578063da41f33814610914578063dc88a26a1461093f57610272565b80639c70b512116101135780639c70b51214610759578063a0712d6814610784578063a0ef91df146107b4578063a22cb465146107cb578063b88d4fde146107f4578063ba4e5c491461081d57610272565b80637989a2cf146106745780638da5cb5b146106b157806391b7f5ed146106dc57806394f0ac141461070557806395d89b411461072e57610272565b80633c952764116101e85780636352211e116101ac5780636352211e1461056257806369b538241461059f5780636c0360eb146105ca57806370a08231146105f5578063715018a614610632578063768d71381461064957610272565b80633c952764146104935780634046f91a146104bc57806342842e0e146104e7578063483efda21461051057806355f804b31461053957610272565b806318160ddd1161023a57806318160ddd1461037057806319ccaf051461039b57806323b872dd146103c45780632a55205a146103ed5780632fe8a9931461042b5780633af32abf1461045657610272565b806301ffc9a71461027757806306fdde03146102b4578063081812fc146102df578063095ea7b31461031c5780630af2c6ca14610345575b600080fd5b34801561028357600080fd5b5061029e60048036038101906102999190612d36565b610a64565b6040516102ab91906132cc565b60405180910390f35b3480156102c057600080fd5b506102c9610acd565b6040516102d691906132e7565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190612dd9565b610b5f565b604051610313919061323c565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612c7c565b610ba5565b005b34801561035157600080fd5b5061035a610cbd565b60405161036791906135c9565b60405180910390f35b34801561037c57600080fd5b50610385610cce565b60405161039291906135c9565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612dd9565b610cd8565b005b3480156103d057600080fd5b506103eb60048036038101906103e69190612b66565b610cea565b005b3480156103f957600080fd5b50610414600480360381019061040f9190612e06565b610d4a565b6040516104229291906132a3565b60405180910390f35b34801561043757600080fd5b50610440610d96565b60405161044d91906135c9565b60405180910390f35b34801561046257600080fd5b5061047d60048036038101906104789190612af9565b610d9c565b60405161048a91906132cc565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612d09565b610e4b565b005b3480156104c857600080fd5b506104d1610e70565b6040516104de919061323c565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612b66565b610e96565b005b34801561051c57600080fd5b5061053760048036038101906105329190612dd9565b610eb6565b005b34801561054557600080fd5b50610560600480360381019061055b9190612d90565b610ec8565b005b34801561056e57600080fd5b5061058960048036038101906105849190612dd9565b610eea565b604051610596919061323c565b60405180910390f35b3480156105ab57600080fd5b506105b4610f9c565b6040516105c191906135c9565b60405180910390f35b3480156105d657600080fd5b506105df610fa2565b6040516105ec91906132e7565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612af9565b611034565b60405161062991906135c9565b60405180910390f35b34801561063e57600080fd5b506106476110ec565b005b34801561065557600080fd5b5061065e611100565b60405161066b91906135c9565b60405180910390f35b34801561068057600080fd5b5061069b60048036038101906106969190612af9565b611106565b6040516106a891906135c9565b60405180910390f35b3480156106bd57600080fd5b506106c661111e565b6040516106d3919061323c565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe9190612dd9565b611148565b005b34801561071157600080fd5b5061072c60048036038101906107279190612af9565b61115a565b005b34801561073a57600080fd5b506107436111a6565b60405161075091906132e7565b60405180910390f35b34801561076557600080fd5b5061076e611238565b60405161077b91906132cc565b60405180910390f35b61079e60048036038101906107999190612dd9565b61124b565b6040516107ab91906132cc565b60405180910390f35b3480156107c057600080fd5b506107c96115f7565b005b3480156107d757600080fd5b506107f260048036038101906107ed9190612c3c565b61164f565b005b34801561080057600080fd5b5061081b60048036038101906108169190612bb9565b611665565b005b34801561082957600080fd5b50610844600480360381019061083f9190612dd9565b6116c7565b604051610851919061323c565b60405180910390f35b34801561086657600080fd5b50610881600480360381019061087c9190612dd9565b611706565b005b34801561088f57600080fd5b506108aa60048036038101906108a59190612dd9565b611718565b6040516108b791906132e7565b60405180910390f35b3480156108cc57600080fd5b506108e760048036038101906108e29190612dd9565b61179a565b005b3480156108f557600080fd5b506108fe6117ac565b60405161090b91906135c9565b60405180910390f35b34801561092057600080fd5b506109296117d1565b60405161093691906135c9565b60405180910390f35b34801561094b57600080fd5b506109546117d7565b005b34801561096257600080fd5b5061096b611865565b60405161097891906135c9565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a39190612b26565b61186b565b6040516109b591906132cc565b60405180910390f35b3480156109ca57600080fd5b506109e560048036038101906109e09190612cbc565b6118ff565b005b3480156109f357600080fd5b50610a0e6004803603810190610a099190612d09565b61192b565b005b348015610a1c57600080fd5b50610a376004803603810190610a329190612af9565b611950565b005b348015610a4557600080fd5b50610a4e6119d4565b604051610a5b91906135c9565b60405180910390f35b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610abc5760019050610ac8565b610ac5826119da565b90505b919050565b606060008054610adc90613879565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0890613879565b8015610b555780601f10610b2a57610100808354040283529160200191610b55565b820191906000526020600020905b815481529060010190602001808311610b3857829003601f168201915b5050505050905090565b6000610b6a82611abc565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610bb082610eea565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613529565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c40611b07565b73ffffffffffffffffffffffffffffffffffffffff161480610c6f5750610c6e81610c69611b07565b61186b565b5b610cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca590613449565b60405180910390fd5b610cb88383611b0f565b505050565b6000610cc96007611bc8565b905090565b6000601154905090565b610ce0611bd6565b80600d8190555050565b610cfb610cf5611b07565b82611c54565b610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d31906135a9565b60405180910390fd5b610d45838383611ce9565b505050565b600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661271060095485610d819190613735565b610d8b9190613704565b915091509250929050565b600d5481565b600080600090505b600f80549050811015610e40578273ffffffffffffffffffffffffffffffffffffffff16600f8281548110610ddc57610ddb6139e3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e2d576001915050610e46565b8080610e38906138dc565b915050610da4565b50600090505b919050565b610e53611bd6565b80600c60006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610eb183838360405180602001604052806000815250611665565b505050565b610ebe611bd6565b80600a8190555050565b610ed0611bd6565b8060109080519060200190610ee69291906127f6565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90613509565b60405180910390fd5b80915050919050565b60095481565b606060108054610fb190613879565b80601f0160208091040260200160405190810160405280929190818152602001828054610fdd90613879565b801561102a5780601f10610fff5761010080835404028352916020019161102a565b820191906000526020600020905b81548152906001019060200180831161100d57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90613409565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110f4611bd6565b6110fe6000611f50565b565b600a5481565b60136020528060005260406000206000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611150611bd6565b8060088190555050565b611162611bd6565b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600180546111b590613879565b80601f01602080910402602001604051908101604052809291908181526020018280546111e190613879565b801561122e5780601f106112035761010080835404028352916020019161122e565b820191906000526020600020905b81548152906001019060200180831161121157829003601f168201915b5050505050905090565b600c60009054906101000a900460ff1681565b6000808211801561125e5750600b548211155b61129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490613569565b60405180910390fd5b601154826112ab6007611bc8565b6112b591906136ae565b11156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90613389565b60405180910390fd5b600a54600161130433611034565b61130e91906136ae565b111561134f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611346906134a9565b60405180910390fd5b60011515600c60009054906101000a900460ff16151514156114505761137433610d9c565b6113b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113aa90613589565b60405180910390fd5b6000821180156113c55750600d548211155b611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90613309565b60405180910390fd5b81600e546114129190613735565b34101561144b576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114f0565b601260009054906101000a900460ff1661149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690613549565b60405180910390fd5b816008546114ad9190613735565b3410156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690613429565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611558573d6000803e3d6000fd5b5060005b8281101561159a5760006115706007611bc8565b905061157c3382612016565b61158660076121f0565b508080611592906138dc565b91505061155c565b506115ed82601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220690919063ffffffff16565b5060019050919050565b6115ff611bd6565b61160761111e565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561164c573d6000803e3d6000fd5b50565b61166161165a611b07565b838361221c565b5050565b611676611670611b07565b83611c54565b6116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac906135a9565b60405180910390fd5b6116c184848484612389565b50505050565b600f81815481106116d757600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61170e611bd6565b80600b8190555050565b6060611723826123e5565b611762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611759906134e9565b60405180910390fd5b61176a610fa2565b61177383612451565b604051602001611784929190613218565b6040516020818303038152906040529050919050565b6117a2611bd6565b80600e8190555050565b60006117cc6117bb6007611bc8565b6011546125b290919063ffffffff16565b905090565b60085481565b6117df611bd6565b60016011546117ee919061378f565b6117f86007611bc8565b1115611839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183090613489565b60405180910390fd5b60006118456007611bc8565b9050611858611852611b07565b82612016565b61186260076121f0565b50565b600e5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611907611bd6565b600f6000611915919061287c565b8181600f919061192692919061289d565b505050565b611933611bd6565b80601260006101000a81548160ff02191690831515021790555050565b611958611bd6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90613349565b60405180910390fd5b6119d181611f50565b50565b600b5481565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611aa557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611ab55750611ab4826125c8565b5b9050919050565b611ac5816123e5565b611b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afb90613509565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611b8283610eea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b611bde611b07565b73ffffffffffffffffffffffffffffffffffffffff16611bfc61111e565b73ffffffffffffffffffffffffffffffffffffffff1614611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c49906134c9565b60405180910390fd5b565b600080611c6083610eea565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ca25750611ca1818561186b565b5b80611ce057508373ffffffffffffffffffffffffffffffffffffffff16611cc884610b5f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611d0982610eea565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5690613369565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc6906133c9565b60405180910390fd5b611dda838383612632565b611de5600082611b0f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e35919061378f565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e8c91906136ae565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f4b838383612637565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90613469565b60405180910390fd5b61208f816123e5565b156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c6906133a9565b60405180910390fd5b6120db60008383612632565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461212b91906136ae565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46121ec60008383612637565b5050565b6001816000016000828254019250508190555050565b6000818361221491906136ae565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561228b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612282906133e9565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161237c91906132cc565b60405180910390a3505050565b612394848484611ce9565b6123a08484848461263c565b6123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d690613329565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60606000821415612499576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506125ad565b600082905060005b600082146124cb5780806124b4906138dc565b915050600a826124c49190613704565b91506124a1565b60008167ffffffffffffffff8111156124e7576124e6613a12565b5b6040519080825280601f01601f1916602001820160405280156125195781602001600182028036833780820191505090505b5090505b600085146125a657600182612532919061378f565b9150600a856125419190613925565b603061254d91906136ae565b60f81b818381518110612563576125626139e3565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561259f9190613704565b945061251d565b8093505050505b919050565b600081836125c0919061378f565b905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b505050565b600061265d8473ffffffffffffffffffffffffffffffffffffffff166127d3565b156127c6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612686611b07565b8786866040518563ffffffff1660e01b81526004016126a89493929190613257565b602060405180830381600087803b1580156126c257600080fd5b505af19250505080156126f357506040513d601f19601f820116820180604052508101906126f09190612d63565b60015b612776573d8060008114612723576040519150601f19603f3d011682016040523d82523d6000602084013e612728565b606091505b5060008151141561276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613329565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506127cb565b600190505b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b82805461280290613879565b90600052602060002090601f016020900481019282612824576000855561286b565b82601f1061283d57805160ff191683800117855561286b565b8280016001018555821561286b579182015b8281111561286a57825182559160200191906001019061284f565b5b509050612878919061293d565b5090565b508054600082559060005260206000209081019061289a919061293d565b50565b82805482825590600052602060002090810192821561292c579160200282015b8281111561292b57823573ffffffffffffffffffffffffffffffffffffffff168260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906128bd565b5b509050612939919061293d565b5090565b5b8082111561295657600081600090555060010161293e565b5090565b600061296d61296884613609565b6135e4565b90508281526020810184848401111561298957612988613a50565b5b612994848285613837565b509392505050565b60006129af6129aa8461363a565b6135e4565b9050828152602081018484840111156129cb576129ca613a50565b5b6129d6848285613837565b509392505050565b6000813590506129ed81613f98565b92915050565b60008083601f840112612a0957612a08613a46565b5b8235905067ffffffffffffffff811115612a2657612a25613a41565b5b602083019150836020820283011115612a4257612a41613a4b565b5b9250929050565b600081359050612a5881613faf565b92915050565b600081359050612a6d81613fc6565b92915050565b600081519050612a8281613fc6565b92915050565b600082601f830112612a9d57612a9c613a46565b5b8135612aad84826020860161295a565b91505092915050565b600082601f830112612acb57612aca613a46565b5b8135612adb84826020860161299c565b91505092915050565b600081359050612af381613fdd565b92915050565b600060208284031215612b0f57612b0e613a5a565b5b6000612b1d848285016129de565b91505092915050565b60008060408385031215612b3d57612b3c613a5a565b5b6000612b4b858286016129de565b9250506020612b5c858286016129de565b9150509250929050565b600080600060608486031215612b7f57612b7e613a5a565b5b6000612b8d868287016129de565b9350506020612b9e868287016129de565b9250506040612baf86828701612ae4565b9150509250925092565b60008060008060808587031215612bd357612bd2613a5a565b5b6000612be1878288016129de565b9450506020612bf2878288016129de565b9350506040612c0387828801612ae4565b925050606085013567ffffffffffffffff811115612c2457612c23613a55565b5b612c3087828801612a88565b91505092959194509250565b60008060408385031215612c5357612c52613a5a565b5b6000612c61858286016129de565b9250506020612c7285828601612a49565b9150509250929050565b60008060408385031215612c9357612c92613a5a565b5b6000612ca1858286016129de565b9250506020612cb285828601612ae4565b9150509250929050565b60008060208385031215612cd357612cd2613a5a565b5b600083013567ffffffffffffffff811115612cf157612cf0613a55565b5b612cfd858286016129f3565b92509250509250929050565b600060208284031215612d1f57612d1e613a5a565b5b6000612d2d84828501612a49565b91505092915050565b600060208284031215612d4c57612d4b613a5a565b5b6000612d5a84828501612a5e565b91505092915050565b600060208284031215612d7957612d78613a5a565b5b6000612d8784828501612a73565b91505092915050565b600060208284031215612da657612da5613a5a565b5b600082013567ffffffffffffffff811115612dc457612dc3613a55565b5b612dd084828501612ab6565b91505092915050565b600060208284031215612def57612dee613a5a565b5b6000612dfd84828501612ae4565b91505092915050565b60008060408385031215612e1d57612e1c613a5a565b5b6000612e2b85828601612ae4565b9250506020612e3c85828601612ae4565b9150509250929050565b612e4f816137c3565b82525050565b612e5e816137d5565b82525050565b6000612e6f8261366b565b612e798185613681565b9350612e89818560208601613846565b612e9281613a5f565b840191505092915050565b6000612ea882613676565b612eb28185613692565b9350612ec2818560208601613846565b612ecb81613a5f565b840191505092915050565b6000612ee182613676565b612eeb81856136a3565b9350612efb818560208601613846565b80840191505092915050565b6000612f14602183613692565b9150612f1f82613a70565b604082019050919050565b6000612f37603283613692565b9150612f4282613abf565b604082019050919050565b6000612f5a602683613692565b9150612f6582613b0e565b604082019050919050565b6000612f7d602583613692565b9150612f8882613b5d565b604082019050919050565b6000612fa0601583613692565b9150612fab82613bac565b602082019050919050565b6000612fc3601c83613692565b9150612fce82613bd5565b602082019050919050565b6000612fe6602483613692565b9150612ff182613bfe565b604082019050919050565b6000613009601983613692565b915061301482613c4d565b602082019050919050565b600061302c602983613692565b915061303782613c76565b604082019050919050565b600061304f601583613692565b915061305a82613cc5565b602082019050919050565b6000613072603e83613692565b915061307d82613cee565b604082019050919050565b6000613095602083613692565b91506130a082613d3d565b602082019050919050565b60006130b8601c83613692565b91506130c382613d66565b602082019050919050565b60006130db602283613692565b91506130e682613d8f565b604082019050919050565b60006130fe602083613692565b915061310982613dde565b602082019050919050565b6000613121602f83613692565b915061312c82613e07565b604082019050919050565b6000613144601883613692565b915061314f82613e56565b602082019050919050565b6000613167602183613692565b915061317282613e7f565b604082019050919050565b600061318a601683613692565b915061319582613ece565b602082019050919050565b60006131ad601783613692565b91506131b882613ef7565b602082019050919050565b60006131d0601783613692565b91506131db82613f20565b602082019050919050565b60006131f3602e83613692565b91506131fe82613f49565b604082019050919050565b6132128161382d565b82525050565b60006132248285612ed6565b91506132308284612ed6565b91508190509392505050565b60006020820190506132516000830184612e46565b92915050565b600060808201905061326c6000830187612e46565b6132796020830186612e46565b6132866040830185613209565b81810360608301526132988184612e64565b905095945050505050565b60006040820190506132b86000830185612e46565b6132c56020830184613209565b9392505050565b60006020820190506132e16000830184612e55565b92915050565b600060208201905081810360008301526133018184612e9d565b905092915050565b6000602082019050818103600083015261332281612f07565b9050919050565b6000602082019050818103600083015261334281612f2a565b9050919050565b6000602082019050818103600083015261336281612f4d565b9050919050565b6000602082019050818103600083015261338281612f70565b9050919050565b600060208201905081810360008301526133a281612f93565b9050919050565b600060208201905081810360008301526133c281612fb6565b9050919050565b600060208201905081810360008301526133e281612fd9565b9050919050565b6000602082019050818103600083015261340281612ffc565b9050919050565b600060208201905081810360008301526134228161301f565b9050919050565b6000602082019050818103600083015261344281613042565b9050919050565b6000602082019050818103600083015261346281613065565b9050919050565b6000602082019050818103600083015261348281613088565b9050919050565b600060208201905081810360008301526134a2816130ab565b9050919050565b600060208201905081810360008301526134c2816130ce565b9050919050565b600060208201905081810360008301526134e2816130f1565b9050919050565b6000602082019050818103600083015261350281613114565b9050919050565b6000602082019050818103600083015261352281613137565b9050919050565b600060208201905081810360008301526135428161315a565b9050919050565b600060208201905081810360008301526135628161317d565b9050919050565b60006020820190508181036000830152613582816131a0565b9050919050565b600060208201905081810360008301526135a2816131c3565b9050919050565b600060208201905081810360008301526135c2816131e6565b9050919050565b60006020820190506135de6000830184613209565b92915050565b60006135ee6135ff565b90506135fa82826138ab565b919050565b6000604051905090565b600067ffffffffffffffff82111561362457613623613a12565b5b61362d82613a5f565b9050602081019050919050565b600067ffffffffffffffff82111561365557613654613a12565b5b61365e82613a5f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006136b98261382d565b91506136c48361382d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136f9576136f8613956565b5b828201905092915050565b600061370f8261382d565b915061371a8361382d565b92508261372a57613729613985565b5b828204905092915050565b60006137408261382d565b915061374b8361382d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561378457613783613956565b5b828202905092915050565b600061379a8261382d565b91506137a58361382d565b9250828210156137b8576137b7613956565b5b828203905092915050565b60006137ce8261380d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613864578082015181840152602081019050613849565b83811115613873576000848401525b50505050565b6000600282049050600182168061389157607f821691505b602082108114156138a5576138a46139b4565b5b50919050565b6138b482613a5f565b810181811067ffffffffffffffff821117156138d3576138d2613a12565b5b80604052505050565b60006138e78261382d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561391a57613919613956565b5b600182019050919050565b60006139308261382d565b915061393b8361382d565b92508261394b5761394a613985565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4572726f723a2057686974656c697374206d617820706172207478206c696d6960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4d6178696d756d20537570706c79204d696e7465640000000000000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820415641582073656e742e0000000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b7f4572726f723a6d6178204e46542070657220616464726573732065786365656460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4572726f723a206d617820706172207478206c696d6974000000000000000000600082015250565b7f75736572206973206e6f742077686974656c6973746564000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b613fa1816137c3565b8114613fac57600080fd5b50565b613fb8816137d5565b8114613fc357600080fd5b50565b613fcf816137e1565b8114613fda57600080fd5b50565b613fe68161382d565b8114613ff157600080fd5b5056fea264697066735822122017706f2b78e996c87b72b6684708fd6fa59abce3c401e8ff0460a8bd47472b4564736f6c63430008070033697066733a2f2f6261667962656965776178726b7363726e6663326a32786835687862796768653569366a62746e64376875706e776961716f6661696e6f666c66652f