[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": 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": [ { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" } ], "name": "Claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "MAX_FREE_PER_WALLET", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_MINTS_PER_TX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NUM_FREE_MINTS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PUBLIC_SALE_PRICE", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "calculateMintingPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "freeNFTAlreadyMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPublicSaleActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "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": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setFreeLimitPerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isPublicSaleActive", "type": "bool" } ], "name": "setIsPublicSaleActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setMaxLimitPerTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_numfreemints", "type": "uint256" } ], "name": "setNumFreeMints", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setSalePrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" } ], "name": "setmaxSupply", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "treasuryMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "payable", "type": "function" } ]
60806040526040518060400160405280600881526020017f697066733a2f2f2f000000000000000000000000000000000000000000000000815250600990816200004a9190620004b5565b50614e20600a55611388600b55660d6b2957511000600c556000600d556000600e556000600f556001601060006101000a81548160ff0219169083151502179055503480156200009957600080fd5b506040518060400160405280600a81526020017f4561726c792042617365000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f4561726c794261736564000000000000000000000000000000000000000000008152508160029081620001179190620004b5565b508060039081620001299190620004b5565b506200013a6200016860201b60201c565b600081905550505062000162620001566200016d60201b60201c565b6200017560201b60201c565b6200059c565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002bd57607f821691505b602082108103620002d357620002d262000275565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200033d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002fe565b620003498683620002fe565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000396620003906200038a8462000361565b6200036b565b62000361565b9050919050565b6000819050919050565b620003b28362000375565b620003ca620003c1826200039d565b8484546200030b565b825550505050565b600090565b620003e1620003d2565b620003ee818484620003a7565b505050565b5b8181101562000416576200040a600082620003d7565b600181019050620003f4565b5050565b601f82111562000465576200042f81620002d9565b6200043a84620002ee565b810160208510156200044a578190505b620004626200045985620002ee565b830182620003f3565b50505b505050565b600082821c905092915050565b60006200048a600019846008026200046a565b1980831691505092915050565b6000620004a5838362000477565b9150826002028217905092915050565b620004c0826200023b565b67ffffffffffffffff811115620004dc57620004db62000246565b5b620004e88254620002a4565b620004f58282856200041a565b600060209050601f8311600181146200052d576000841562000518578287015190505b62000524858262000497565b86555062000594565b601f1984166200053d86620002d9565b60005b82811015620005675784890151825560018201915060208501945060208101905062000540565b8683101562000587578489015162000583601f89168262000477565b8355505b6001600288020188555050505b505050505050565b6134aa80620005ac6000396000f3fe60806040526004361061020f5760003560e01c8063715018a611610118578063b88d4fde116100a0578063d5abeb011161006f578063d5abeb0114610713578063e985e9c51461073e578063efdc77881461077b578063f2fde38b146107a4578063f6511f93146107cd5761020f565b8063b88d4fde14610664578063c6a91b4214610680578063c87b56dd146106ab578063d547cfb7146106e85761020f565b806395d89b41116100e757806395d89b4114610591578063982d669e146105bc57806398710d1e146105e75780639e9fcffc14610612578063a22cb4651461063b5761020f565b8063715018a6146105295780637bb2b3c114610540578063853828b61461055c5780638da5cb5b146105665761020f565b80631e84c4131161019b57806328cad13d1161016a57806328cad13d1461044157806342842e0e1461046a57806355f804b3146104865780636352211e146104af57806370a08231146104ec5761020f565b80631e84c413146103a8578063202f298a146103d3578063228025e8146103fc57806323b872dd146104255761020f565b8063095ea7b3116101e2578063095ea7b3146102e45780630a00ae831461030057806318160ddd146103295780631919fed714610354578063193ad7b41461037d5761020f565b806301ffc9a71461021457806306fdde031461025157806307e89ec01461027c578063081812fc146102a7575b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612557565b61080a565b604051610248919061259f565b60405180910390f35b34801561025d57600080fd5b5061026661089c565b604051610273919061264a565b60405180910390f35b34801561028857600080fd5b5061029161092e565b60405161029e9190612685565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c991906126cc565b610934565b6040516102db919061273a565b60405180910390f35b6102fe60048036038101906102f99190612781565b6109b3565b005b34801561030c57600080fd5b50610327600480360381019061032291906126cc565b610af7565b005b34801561033557600080fd5b5061033e610b7d565b60405161034b9190612685565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906126cc565b610b94565b005b34801561038957600080fd5b50610392610c1a565b60405161039f9190612685565b60405180910390f35b3480156103b457600080fd5b506103bd610c20565b6040516103ca919061259f565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906126cc565b610c33565b005b34801561040857600080fd5b50610423600480360381019061041e91906126cc565b610cb9565b005b61043f600480360381019061043a91906127c1565b610d3f565b005b34801561044d57600080fd5b5061046860048036038101906104639190612840565b611061565b005b610484600480360381019061047f91906127c1565b6110fa565b005b34801561049257600080fd5b506104ad60048036038101906104a891906129a2565b61111a565b005b3480156104bb57600080fd5b506104d660048036038101906104d191906126cc565b6111a9565b6040516104e3919061273a565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e91906129eb565b6111bb565b6040516105209190612685565b60405180910390f35b34801561053557600080fd5b5061053e611273565b005b61055a600480360381019061055591906126cc565b6112fb565b005b61056461158a565b005b34801561057257600080fd5b5061057b611795565b604051610588919061273a565b60405180910390f35b34801561059d57600080fd5b506105a66117bf565b6040516105b3919061264a565b60405180910390f35b3480156105c857600080fd5b506105d1611851565b6040516105de9190612685565b60405180910390f35b3480156105f357600080fd5b506105fc611857565b6040516106099190612685565b60405180910390f35b34801561061e57600080fd5b50610639600480360381019061063491906126cc565b61185d565b005b34801561064757600080fd5b50610662600480360381019061065d9190612a18565b6118e3565b005b61067e60048036038101906106799190612af9565b6119ee565b005b34801561068c57600080fd5b50610695611a61565b6040516106a29190612685565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd91906126cc565b611a67565b6040516106df919061264a565b60405180910390f35b3480156106f457600080fd5b506106fd611a6e565b60405161070a919061264a565b60405180910390f35b34801561071f57600080fd5b50610728611afc565b6040516107359190612685565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190612b7c565b611b02565b604051610772919061259f565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d91906126cc565b611b96565b005b3480156107b057600080fd5b506107cb60048036038101906107c691906129eb565b611cb9565b005b3480156107d957600080fd5b506107f460048036038101906107ef91906126cc565b611db0565b6040516108019190612685565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061086557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108955750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600280546108ab90612beb565b80601f01602080910402602001604051908101604052809291908181526020018280546108d790612beb565b80156109245780601f106108f957610100808354040283529160200191610924565b820191906000526020600020905b81548152906001019060200180831161090757829003601f168201915b5050505050905090565b600c5481565b600061093f82611e3c565b610975576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109be826111a9565b90508073ffffffffffffffffffffffffffffffffffffffff166109df611e9b565b73ffffffffffffffffffffffffffffffffffffffff1614610a4257610a0b81610a06611e9b565b611b02565b610a41576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610aff611ea3565b73ffffffffffffffffffffffffffffffffffffffff16610b1d611795565b73ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a90612c68565b60405180910390fd5b80600d8190555050565b6000610b87611eab565b6001546000540303905090565b610b9c611ea3565b73ffffffffffffffffffffffffffffffffffffffff16610bba611795565b73ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612c68565b60405180910390fd5b80600c8190555050565b600f5481565b601060009054906101000a900460ff1681565b610c3b611ea3565b73ffffffffffffffffffffffffffffffffffffffff16610c59611795565b73ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612c68565b60405180910390fd5b80600e8190555050565b610cc1611ea3565b73ffffffffffffffffffffffffffffffffffffffff16610cdf611795565b73ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c90612c68565b60405180910390fd5b80600a8190555050565b6000610d4a82611eb0565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610db1576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610dbd84611f7c565b91509150610dd38187610dce611e9b565b611fa3565b610e1f57610de886610de3611e9b565b611b02565b610e1e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e85576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e928686866001611fe7565b8015610e9d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610f6b85610f47888887611fed565b7c020000000000000000000000000000000000000000000000000000000017612015565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610ff15760006001850190506000600460008381526020019081526020016000205403610fef576000548114610fee578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110598686866001612040565b505050505050565b611069611ea3565b73ffffffffffffffffffffffffffffffffffffffff16611087611795565b73ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490612c68565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b611115838383604051806020016040528060008152506119ee565b505050565b611122611ea3565b73ffffffffffffffffffffffffffffffffffffffff16611140611795565b73ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612c68565b60405180910390fd5b80600990816111a59190612e34565b5050565b60006111b482611eb0565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611222576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61127b611ea3565b73ffffffffffffffffffffffffffffffffffffffff16611299611795565b73ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612c68565b60405180910390fd5b6112f96000612046565b565b6001600a5461130a9190612f35565b81611313610b7d565b61131d9190612f35565b111561135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590612fb5565b60405180910390fd5b600061136982611db0565b9050600073be992398706ab42e7c139908d666b00567200f2d9050600d5483600f546113959190612f35565b111561142a57348211156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590613021565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611424573d6000803e3d6000fd5b5061157b565b600e5483611437336111bb565b6114419190612f35565b111561151b573482111561148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190613021565b60405180910390fd5b600b548311156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c6906130b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611515573d6000803e3d6000fd5b5061157a565b600e54831115611560576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611557906130b3565b60405180910390fd5b82600f60008282546115729190612f35565b925050819055505b5b611585338461210c565b505050565b611592611ea3565b73ffffffffffffffffffffffffffffffffffffffff166115b0611795565b73ffffffffffffffffffffffffffffffffffffffff1614611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90612c68565b60405180910390fd5b600047905060006064605a8361161c91906130d3565b6116269190613144565b905060006064600a8461163991906130d3565b6116439190613144565b90506000734f12cf87364d51aeb04d6fc30999b6142567822973ffffffffffffffffffffffffffffffffffffffff168360405161167f906131a6565b60006040518083038185875af1925050503d80600081146116bc576040519150601f19603f3d011682016040523d82523d6000602084013e6116c1565b606091505b505090506000734f12cf87364d51aeb04d6fc30999b6142567822973ffffffffffffffffffffffffffffffffffffffff16836040516116ff906131a6565b60006040518083038185875af1925050503d806000811461173c576040519150601f19603f3d011682016040523d82523d6000602084013e611741565b606091505b5050905081801561174f5750805b61178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613207565b60405180910390fd5b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546117ce90612beb565b80601f01602080910402602001604051908101604052809291908181526020018280546117fa90612beb565b80156118475780601f1061181c57610100808354040283529160200191611847565b820191906000526020600020905b81548152906001019060200180831161182a57829003601f168201915b5050505050905090565b600d5481565b600e5481565b611865611ea3565b73ffffffffffffffffffffffffffffffffffffffff16611883611795565b73ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090612c68565b60405180910390fd5b80600b8190555050565b80600760006118f0611e9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661199d611e9b565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119e2919061259f565b60405180910390a35050565b6119f9848484610d3f565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611a5b57611a248484848461212a565b611a5a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600b5481565b6060919050565b60098054611a7b90612beb565b80601f0160208091040260200160405190810160405280929190818152602001828054611aa790612beb565b8015611af45780601f10611ac957610100808354040283529160200191611af4565b820191906000526020600020905b815481529060010190602001808311611ad757829003601f168201915b505050505081565b600a5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b9e611ea3565b73ffffffffffffffffffffffffffffffffffffffff16611bbc611795565b73ffffffffffffffffffffffffffffffffffffffff1614611c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0990612c68565b60405180910390fd5b60008111611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c90613273565b60405180910390fd5b600a5481611c61610b7d565b611c6b9190612f35565b1115611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906132df565b60405180910390fd5b611cb6338261210c565b50565b611cc1611ea3565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611795565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90612c68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b90613371565b60405180910390fd5b611dad81612046565b50565b600060098203611dc75764e8d40c79809050611e37565b605a8203611ddf5767011c37aac67ee8009050611e37565b60468203611df75767011c37aac67ee8009050611e37565b60328203611e0f5767011c37aac67ee8009050611e37565b60648203611e2657661c6c0c6eaae8009050611e37565b81600c54611e3491906130d3565b90505b919050565b600081611e47611eab565b11158015611e56575060005482105b8015611e94575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b600090565b60008082905080611ebf611eab565b11611f4557600054811015611f445760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611f42575b60008103611f38576004600083600190039350838152602001908152602001600020549050611f0e565b8092505050611f77565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e861200486868461227a565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612126828260405180602001604052806000815250612283565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612150611e9b565b8786866040518563ffffffff1660e01b815260040161217294939291906133e6565b6020604051808303816000875af19250505080156121ae57506040513d601f19601f820116820180604052508101906121ab9190613447565b60015b612227573d80600081146121de576040519150601f19603f3d011682016040523d82523d6000602084013e6121e3565b606091505b50600081510361221f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60009392505050565b61228d8383612320565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461231b57600080549050600083820390505b6122cd600086838060010194508661212a565b612303576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106122ba57816000541461231857600080fd5b50505b505050565b60008054905060008203612360576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61236d6000848385611fe7565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123e4836123d56000866000611fed565b6123de856124db565b17612015565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461248557808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905061244a565b50600082036124c0576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506124d66000848385612040565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612534816124ff565b811461253f57600080fd5b50565b6000813590506125518161252b565b92915050565b60006020828403121561256d5761256c6124f5565b5b600061257b84828501612542565b91505092915050565b60008115159050919050565b61259981612584565b82525050565b60006020820190506125b46000830184612590565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125f45780820151818401526020810190506125d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061261c826125ba565b61262681856125c5565b93506126368185602086016125d6565b61263f81612600565b840191505092915050565b600060208201905081810360008301526126648184612611565b905092915050565b6000819050919050565b61267f8161266c565b82525050565b600060208201905061269a6000830184612676565b92915050565b6126a98161266c565b81146126b457600080fd5b50565b6000813590506126c6816126a0565b92915050565b6000602082840312156126e2576126e16124f5565b5b60006126f0848285016126b7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612724826126f9565b9050919050565b61273481612719565b82525050565b600060208201905061274f600083018461272b565b92915050565b61275e81612719565b811461276957600080fd5b50565b60008135905061277b81612755565b92915050565b60008060408385031215612798576127976124f5565b5b60006127a68582860161276c565b92505060206127b7858286016126b7565b9150509250929050565b6000806000606084860312156127da576127d96124f5565b5b60006127e88682870161276c565b93505060206127f98682870161276c565b925050604061280a868287016126b7565b9150509250925092565b61281d81612584565b811461282857600080fd5b50565b60008135905061283a81612814565b92915050565b600060208284031215612856576128556124f5565b5b60006128648482850161282b565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128af82612600565b810181811067ffffffffffffffff821117156128ce576128cd612877565b5b80604052505050565b60006128e16124eb565b90506128ed82826128a6565b919050565b600067ffffffffffffffff82111561290d5761290c612877565b5b61291682612600565b9050602081019050919050565b82818337600083830152505050565b6000612945612940846128f2565b6128d7565b90508281526020810184848401111561296157612960612872565b5b61296c848285612923565b509392505050565b600082601f8301126129895761298861286d565b5b8135612999848260208601612932565b91505092915050565b6000602082840312156129b8576129b76124f5565b5b600082013567ffffffffffffffff8111156129d6576129d56124fa565b5b6129e284828501612974565b91505092915050565b600060208284031215612a0157612a006124f5565b5b6000612a0f8482850161276c565b91505092915050565b60008060408385031215612a2f57612a2e6124f5565b5b6000612a3d8582860161276c565b9250506020612a4e8582860161282b565b9150509250929050565b600067ffffffffffffffff821115612a7357612a72612877565b5b612a7c82612600565b9050602081019050919050565b6000612a9c612a9784612a58565b6128d7565b905082815260208101848484011115612ab857612ab7612872565b5b612ac3848285612923565b509392505050565b600082601f830112612ae057612adf61286d565b5b8135612af0848260208601612a89565b91505092915050565b60008060008060808587031215612b1357612b126124f5565b5b6000612b218782880161276c565b9450506020612b328782880161276c565b9350506040612b43878288016126b7565b925050606085013567ffffffffffffffff811115612b6457612b636124fa565b5b612b7087828801612acb565b91505092959194509250565b60008060408385031215612b9357612b926124f5565b5b6000612ba18582860161276c565b9250506020612bb28582860161276c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c0357607f821691505b602082108103612c1657612c15612bbc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c526020836125c5565b9150612c5d82612c1c565b602082019050919050565b60006020820190508181036000830152612c8181612c45565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612cea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612cad565b612cf48683612cad565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612d31612d2c612d278461266c565b612d0c565b61266c565b9050919050565b6000819050919050565b612d4b83612d16565b612d5f612d5782612d38565b848454612cba565b825550505050565b600090565b612d74612d67565b612d7f818484612d42565b505050565b5b81811015612da357612d98600082612d6c565b600181019050612d85565b5050565b601f821115612de857612db981612c88565b612dc284612c9d565b81016020851015612dd1578190505b612de5612ddd85612c9d565b830182612d84565b50505b505050565b600082821c905092915050565b6000612e0b60001984600802612ded565b1980831691505092915050565b6000612e248383612dfa565b9150826002028217905092915050565b612e3d826125ba565b67ffffffffffffffff811115612e5657612e55612877565b5b612e608254612beb565b612e6b828285612da7565b600060209050601f831160018114612e9e5760008415612e8c578287015190505b612e968582612e18565b865550612efe565b601f198416612eac86612c88565b60005b82811015612ed457848901518255600182019150602085019450602081019050612eaf565b86831015612ef15784890151612eed601f891682612dfa565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f408261266c565b9150612f4b8361266c565b9250828201905080821115612f6357612f62612f06565b5b92915050565b7f4e6f206d6f726500000000000000000000000000000000000000000000000000600082015250565b6000612f9f6007836125c5565b9150612faa82612f69565b602082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b7f496e636f7272656374204554482076616c75652073656e740000000000000000600082015250565b600061300b6018836125c5565b915061301682612fd5565b602082019050919050565b6000602082019050818103600083015261303a81612ffe565b9050919050565b7f4d6178206d696e747320706572207472616e73616374696f6e2065786365656460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600061309d6022836125c5565b91506130a882613041565b604082019050919050565b600060208201905081810360008301526130cc81613090565b9050919050565b60006130de8261266c565b91506130e98361266c565b92508282026130f78161266c565b9150828204841483151761310e5761310d612f06565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061314f8261266c565b915061315a8361266c565b92508261316a57613169613115565b5b828204905092915050565b600081905092915050565b50565b6000613190600083613175565b915061319b82613180565b600082019050919050565b60006131b182613183565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b60006131f16010836125c5565b91506131fc826131bb565b602082019050919050565b60006020820190508181036000830152613220816131e4565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7400000000000000000000000000600082015250565b600061325d6013836125c5565b915061326882613227565b602082019050919050565b6000602082019050818103600083015261328c81613250565b9050919050565b7f4d6178696d756d20737570706c79206578636565646564000000000000000000600082015250565b60006132c96017836125c5565b91506132d482613293565b602082019050919050565b600060208201905081810360008301526132f8816132bc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061335b6026836125c5565b9150613366826132ff565b604082019050919050565b6000602082019050818103600083015261338a8161334e565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006133b882613391565b6133c2818561339c565b93506133d28185602086016125d6565b6133db81612600565b840191505092915050565b60006080820190506133fb600083018761272b565b613408602083018661272b565b6134156040830185612676565b818103606083015261342781846133ad565b905095945050505050565b6000815190506134418161252b565b92915050565b60006020828403121561345d5761345c6124f5565b5b600061346b84828501613432565b9150509291505056fea264697066735822122081122d0dd09eeb44c7693d4cb8c218cd22a3cb1eb1dc62725e620c538d52e62e64736f6c63430008110033