[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [ { "internalType": "address[]", "name": "_addressToWhitelist", "type": "address[]" } ], "name": "addUser", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "hasMinted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mintByOwner", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address[]", "name": "_addressToRemove", "type": "address[]" } ], "name": "removeUser", "outputs": [], "stateMutability": "nonpayable", "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 payable", "name": "_address1", "type": "address" }, { "internalType": "address", "name": "royalty", "type": "address" } ], "name": "setAddresses", "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": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "setMaxMintable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" } ], "name": "setMaxPerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "priceInMilli", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setPrivateSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "royalty", "type": "uint256" } ], "name": "setRoyalty", "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": [ { "internalType": "address", "name": "_whitelistedAddress", "type": "address" } ], "name": "verifyUser", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040518060400160405280600981526020017f57696c644675636b7300000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f574c4446434b0000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620002da565b508060019080519060200190620000af929190620002da565b505050620000d2620000c66200020c60201b60201c565b6200021460201b60201c565b604051806080016040528060438152602001620040b660439139600c908051906020019062000103929190620002da565b506000600a8190555061015e600b819055506103e8600d819055506001600e819055506000601060016101000a81548160ff0219169083151502179055506000601060006101000a81548160ff021916908315150217905550736720cbe3724ece86b111ddeb7911aacddc1a251b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736720cbe3724ece86b111ddeb7911aacddc1a251b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003ef565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002e8906200038a565b90600052602060002090601f0160209004810192826200030c576000855562000358565b82601f106200032757805160ff191683800117855562000358565b8280016001018555821562000358579182015b82811115620003575782518255916020019190600101906200033a565b5b5090506200036791906200036b565b5090565b5b80821115620003865760008160009055506001016200036c565b5090565b60006002820490506001821680620003a357607f821691505b60208210811415620003ba57620003b9620003c0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613cb780620003ff6000396000f3fe6080604052600436106101ee5760003560e01c8063715018a61161010d578063a22cb465116100a0578063cdfca7f21161006f578063cdfca7f2146106f9578063e268e4d314610722578063e985e9c51461074b578063ee1cc94414610788578063f2fde38b146107b1576101ee565b8063a22cb46514610641578063b88d4fde1461066a578063c6f6f21614610693578063c87b56dd146106bc576101ee565b806391b7f5ed116100dc57806391b7f5ed146105a857806395d89b41146105d1578063993847d1146105fc578063a0712d6814610625576101ee565b8063715018a614610514578063769315a41461052b5780638da5cb5b1461055457806390107afe1461057f576101ee565b80633542aee2116101855780634d813120116101545780634d8131201461043457806355f804b3146104715780636352211e1461049a57806370a08231146104d7576101ee565b80633542aee21461037c57806338e21cce146103a55780634209a2e1146103e257806342842e0e1461040b576101ee565b806318160ddd116101c157806318160ddd146102c157806323b872dd146102ec57806325d387b5146103155780632a55205a1461033e576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a60048036038101906102159190612b03565b6107da565b6040516102279190613030565b60405180910390f35b34801561023c57600080fd5b50610245610843565b604051610252919061304b565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612ba6565b6108d5565b60405161028f9190612fa0565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190612a4d565b61091b565b005b3480156102cd57600080fd5b506102d6610a33565b6040516102e391906132cd565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e9190612937565b610a44565b005b34801561032157600080fd5b5061033c60048036038101906103379190612ba6565b610aa4565b005b34801561034a57600080fd5b5061036560048036038101906103609190612bd3565b610ab6565b604051610373929190613007565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e9190612a4d565b610b02565b005b3480156103b157600080fd5b506103cc60048036038101906103c7919061288a565b610b36565b6040516103d99190613030565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190612ba6565b610b8c565b005b34801561041757600080fd5b50610432600480360381019061042d9190612937565b610b9e565b005b34801561044057600080fd5b5061045b6004803603810190610456919061288a565b610bbe565b6040516104689190613030565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612b5d565b610c14565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612ba6565b610c36565b6040516104ce9190612fa0565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f9919061288a565b610ce8565b60405161050b91906132cd565b60405180910390f35b34801561052057600080fd5b50610529610da0565b005b34801561053757600080fd5b50610552600480360381019061054d9190612a8d565b610db4565b005b34801561056057600080fd5b50610569610e51565b6040516105769190612fa0565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a191906128b7565b610e7b565b005b3480156105b457600080fd5b506105cf60048036038101906105ca9190612ba6565b610f09565b005b3480156105dd57600080fd5b506105e6610f2d565b6040516105f3919061304b565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e9190612ad6565b610fbf565b005b61063f600480360381019061063a9190612ba6565b610fe4565b005b34801561064d57600080fd5b5061066860048036038101906106639190612a0d565b611304565b005b34801561067657600080fd5b50610691600480360381019061068c919061298a565b61131a565b005b34801561069f57600080fd5b506106ba60048036038101906106b59190612ba6565b61137c565b005b3480156106c857600080fd5b506106e360048036038101906106de9190612ba6565b61138e565b6040516106f0919061304b565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190612a8d565b6114a1565b005b34801561072e57600080fd5b5061074960048036038101906107449190612ba6565b61153e565b005b34801561075757600080fd5b50610772600480360381019061076d91906128f7565b611550565b60405161077f9190613030565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa9190612ad6565b6115e4565b005b3480156107bd57600080fd5b506107d860048036038101906107d3919061288a565b611609565b005b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610832576001905061083e565b61083b8261168d565b90505b919050565b606060008054610852906135bb565b80601f016020809104026020016040519081016040528092919081815260200182805461087e906135bb565b80156108cb5780601f106108a0576101008083540402835291602001916108cb565b820191906000526020600020905b8154815290600101906020018083116108ae57829003601f168201915b5050505050905090565b60006108e08261176f565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092682610c36565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061324d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109b66117ba565b73ffffffffffffffffffffffffffffffffffffffff1614806109e557506109e4816109df6117ba565b611550565b5b610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b9061318d565b60405180910390fd5b610a2e83836117c2565b505050565b6000610a3f600861187b565b905090565b610a55610a4f6117ba565b82611889565b610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b906132ad565b60405180910390fd5b610a9f83838361191e565b505050565b610aac611b85565b80600b8190555050565b600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600d5485610aed9190613465565b610af79190613434565b915091509250929050565b610b0a611b85565b60005b81811015610b3157610b1e83611c03565b8080610b299061361e565b915050610b0d565b505050565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b94611b85565b80600d8190555050565b610bb98383836040518060200160405280600081525061131a565b505050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c1c611b85565b80600c9080519060200190610c329291906125eb565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd69061322d565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d509061312d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610da8611b85565b610db26000611c77565b565b610dbc611b85565b60005b8151811015610e4d57600060136000848481518110610de157610de0613725565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e459061361e565b915050610dbf565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e83611b85565b81601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610f11611b85565b66038d7ea4c6800081610f249190613465565b600a8190555050565b606060018054610f3c906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054610f68906135bb565b8015610fb55780601f10610f8a57610100808354040283529160200191610fb5565b820191906000526020600020905b815481529060010190602001808311610f9857829003601f168201915b5050505050905090565b610fc7611b85565b80601060006101000a81548160ff02191690831515021790555050565b60011515601060009054906101000a900460ff1615151415611054576001151561100d33610bbe565b15151461104f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110469061320d565b60405180910390fd5b6110c1565b60001515601060009054906101000a900460ff16151514156110c0576000151561107d33610b36565b1515146110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b69061328d565b60405180910390fd5b5b5b601060019054906101000a900460ff16611110576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111079061326d565b60405180910390fd5b600e54811115611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061316d565b60405180910390fd5b80600a546111639190613465565b3410156111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c9061314d565b60405180910390fd5b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561120d573d6000803e3d6000fd5b5060005b818110156112355761122233611c03565b808061122d9061361e565b915050611211565b50601060009054906101000a900460ff16156112a8576000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611301565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b61131661130f6117ba565b8383611d3d565b5050565b61132b6113256117ba565b83611889565b61136a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611361906132ad565b60405180910390fd5b61137684848484611eaa565b50505050565b611384611b85565b80600e8190555050565b60606113998261176f565b60006006600084815260200190815260200160002080546113b9906135bb565b80601f01602080910402602001604051908101604052809291908181526020018280546113e5906135bb565b80156114325780601f1061140757610100808354040283529160200191611432565b820191906000526020600020905b81548152906001019060200180831161141557829003601f168201915b505050505090506000611443611f06565b905060008151141561145957819250505061149c565b60008251111561148e578082604051602001611476929190612f7c565b6040516020818303038152906040529250505061149c565b61149784611f98565b925050505b919050565b6114a9611b85565b60005b815181101561153a576001601360008484815181106114ce576114cd613725565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115329061361e565b9150506114ac565b5050565b611546611b85565b80600f8190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6115ec611b85565b80601060016101000a81548160ff02191690831515021790555050565b611611611b85565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116789061308d565b60405180910390fd5b61168a81611c77565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061175857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611768575061176782612000565b5b9050919050565b6117788161206a565b6117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae9061322d565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661183583610c36565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b60008061189583610c36565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118d757506118d68185611550565b5b8061191557508373ffffffffffffffffffffffffffffffffffffffff166118fd846108d5565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661193e82610c36565b73ffffffffffffffffffffffffffffffffffffffff1614611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b906130ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb906130ed565b60405180910390fd5b611a0f8383836120d6565b611a1a6000826117c2565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a6a91906134bf565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ac191906133de565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b808383836120db565b505050565b611b8d6117ba565b73ffffffffffffffffffffffffffffffffffffffff16611bab610e51565b73ffffffffffffffffffffffffffffffffffffffff1614611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf8906131ed565b60405180910390fd5b565b611c0d60086120e0565b600b54611c1a600861187b565b1115611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906131cd565b60405180910390fd5b6000611c67600861187b565b9050611c7382826120f6565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da39061310d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e9d9190613030565b60405180910390a3505050565b611eb584848461191e565b611ec1848484846122d0565b611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef79061306d565b60405180910390fd5b50505050565b6060600c8054611f15906135bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611f41906135bb565b8015611f8e5780601f10611f6357610100808354040283529160200191611f8e565b820191906000526020600020905b815481529060010190602001808311611f7157829003601f168201915b5050505050905090565b6060611fa38261176f565b6000611fad611f06565b90506000815111611fcd5760405180602001604052806000815250611ff8565b80611fd784612467565b604051602001611fe8929190612f7c565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d906131ad565b60405180910390fd5b61216f8161206a565b156121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a6906130cd565b60405180910390fd5b6121bb600083836120d6565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220b91906133de565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122cc600083836120db565b5050565b60006122f18473ffffffffffffffffffffffffffffffffffffffff166125c8565b1561245a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261231a6117ba565b8786866040518563ffffffff1660e01b815260040161233c9493929190612fbb565b602060405180830381600087803b15801561235657600080fd5b505af192505050801561238757506040513d601f19601f820116820180604052508101906123849190612b30565b60015b61240a573d80600081146123b7576040519150601f19603f3d011682016040523d82523d6000602084013e6123bc565b606091505b50600081511415612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f99061306d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061245f565b600190505b949350505050565b606060008214156124af576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506125c3565b600082905060005b600082146124e15780806124ca9061361e565b915050600a826124da9190613434565b91506124b7565b60008167ffffffffffffffff8111156124fd576124fc613754565b5b6040519080825280601f01601f19166020018201604052801561252f5781602001600182028036833780820191505090505b5090505b600085146125bc5760018261254891906134bf565b9150600a856125579190613667565b603061256391906133de565b60f81b81838151811061257957612578613725565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856125b59190613434565b9450612533565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546125f7906135bb565b90600052602060002090601f0160209004810192826126195760008555612660565b82601f1061263257805160ff1916838001178555612660565b82800160010185558215612660579182015b8281111561265f578251825591602001919060010190612644565b5b50905061266d9190612671565b5090565b5b8082111561268a576000816000905550600101612672565b5090565b60006126a161269c8461330d565b6132e8565b905080838252602082019050828560208602820111156126c4576126c3613788565b5b60005b858110156126f457816126da8882612782565b8452602084019350602083019250506001810190506126c7565b5050509392505050565b600061271161270c84613339565b6132e8565b90508281526020810184848401111561272d5761272c61378d565b5b612738848285613579565b509392505050565b600061275361274e8461336a565b6132e8565b90508281526020810184848401111561276f5761276e61378d565b5b61277a848285613579565b509392505050565b60008135905061279181613c0e565b92915050565b6000813590506127a681613c25565b92915050565b600082601f8301126127c1576127c0613783565b5b81356127d184826020860161268e565b91505092915050565b6000813590506127e981613c3c565b92915050565b6000813590506127fe81613c53565b92915050565b60008151905061281381613c53565b92915050565b600082601f83011261282e5761282d613783565b5b813561283e8482602086016126fe565b91505092915050565b600082601f83011261285c5761285b613783565b5b813561286c848260208601612740565b91505092915050565b60008135905061288481613c6a565b92915050565b6000602082840312156128a05761289f613797565b5b60006128ae84828501612782565b91505092915050565b600080604083850312156128ce576128cd613797565b5b60006128dc85828601612797565b92505060206128ed85828601612782565b9150509250929050565b6000806040838503121561290e5761290d613797565b5b600061291c85828601612782565b925050602061292d85828601612782565b9150509250929050565b6000806000606084860312156129505761294f613797565b5b600061295e86828701612782565b935050602061296f86828701612782565b925050604061298086828701612875565b9150509250925092565b600080600080608085870312156129a4576129a3613797565b5b60006129b287828801612782565b94505060206129c387828801612782565b93505060406129d487828801612875565b925050606085013567ffffffffffffffff8111156129f5576129f4613792565b5b612a0187828801612819565b91505092959194509250565b60008060408385031215612a2457612a23613797565b5b6000612a3285828601612782565b9250506020612a43858286016127da565b9150509250929050565b60008060408385031215612a6457612a63613797565b5b6000612a7285828601612782565b9250506020612a8385828601612875565b9150509250929050565b600060208284031215612aa357612aa2613797565b5b600082013567ffffffffffffffff811115612ac157612ac0613792565b5b612acd848285016127ac565b91505092915050565b600060208284031215612aec57612aeb613797565b5b6000612afa848285016127da565b91505092915050565b600060208284031215612b1957612b18613797565b5b6000612b27848285016127ef565b91505092915050565b600060208284031215612b4657612b45613797565b5b6000612b5484828501612804565b91505092915050565b600060208284031215612b7357612b72613797565b5b600082013567ffffffffffffffff811115612b9157612b90613792565b5b612b9d84828501612847565b91505092915050565b600060208284031215612bbc57612bbb613797565b5b6000612bca84828501612875565b91505092915050565b60008060408385031215612bea57612be9613797565b5b6000612bf885828601612875565b9250506020612c0985828601612875565b9150509250929050565b612c1c816134f3565b82525050565b612c2b81613517565b82525050565b6000612c3c8261339b565b612c4681856133b1565b9350612c56818560208601613588565b612c5f8161379c565b840191505092915050565b6000612c75826133a6565b612c7f81856133c2565b9350612c8f818560208601613588565b612c988161379c565b840191505092915050565b6000612cae826133a6565b612cb881856133d3565b9350612cc8818560208601613588565b80840191505092915050565b6000612ce16032836133c2565b9150612cec826137ad565b604082019050919050565b6000612d046026836133c2565b9150612d0f826137fc565b604082019050919050565b6000612d276025836133c2565b9150612d328261384b565b604082019050919050565b6000612d4a601c836133c2565b9150612d558261389a565b602082019050919050565b6000612d6d6024836133c2565b9150612d78826138c3565b604082019050919050565b6000612d906019836133c2565b9150612d9b82613912565b602082019050919050565b6000612db36029836133c2565b9150612dbe8261393b565b604082019050919050565b6000612dd66015836133c2565b9150612de18261398a565b602082019050919050565b6000612df9601e836133c2565b9150612e04826139b3565b602082019050919050565b6000612e1c603e836133c2565b9150612e27826139dc565b604082019050919050565b6000612e3f6020836133c2565b9150612e4a82613a2b565b602082019050919050565b6000612e62601c836133c2565b9150612e6d82613a54565b602082019050919050565b6000612e856020836133c2565b9150612e9082613a7d565b602082019050919050565b6000612ea86027836133c2565b9150612eb382613aa6565b604082019050919050565b6000612ecb6018836133c2565b9150612ed682613af5565b602082019050919050565b6000612eee6021836133c2565b9150612ef982613b1e565b604082019050919050565b6000612f116016836133c2565b9150612f1c82613b6d565b602082019050919050565b6000612f346017836133c2565b9150612f3f82613b96565b602082019050919050565b6000612f57602e836133c2565b9150612f6282613bbf565b604082019050919050565b612f768161356f565b82525050565b6000612f888285612ca3565b9150612f948284612ca3565b91508190509392505050565b6000602082019050612fb56000830184612c13565b92915050565b6000608082019050612fd06000830187612c13565b612fdd6020830186612c13565b612fea6040830185612f6d565b8181036060830152612ffc8184612c31565b905095945050505050565b600060408201905061301c6000830185612c13565b6130296020830184612f6d565b9392505050565b60006020820190506130456000830184612c22565b92915050565b600060208201905081810360008301526130658184612c6a565b905092915050565b6000602082019050818103600083015261308681612cd4565b9050919050565b600060208201905081810360008301526130a681612cf7565b9050919050565b600060208201905081810360008301526130c681612d1a565b9050919050565b600060208201905081810360008301526130e681612d3d565b9050919050565b6000602082019050818103600083015261310681612d60565b9050919050565b6000602082019050818103600083015261312681612d83565b9050919050565b6000602082019050818103600083015261314681612da6565b9050919050565b6000602082019050818103600083015261316681612dc9565b9050919050565b6000602082019050818103600083015261318681612dec565b9050919050565b600060208201905081810360008301526131a681612e0f565b9050919050565b600060208201905081810360008301526131c681612e32565b9050919050565b600060208201905081810360008301526131e681612e55565b9050919050565b6000602082019050818103600083015261320681612e78565b9050919050565b6000602082019050818103600083015261322681612e9b565b9050919050565b6000602082019050818103600083015261324681612ebe565b9050919050565b6000602082019050818103600083015261326681612ee1565b9050919050565b6000602082019050818103600083015261328681612f04565b9050919050565b600060208201905081810360008301526132a681612f27565b9050919050565b600060208201905081810360008301526132c681612f4a565b9050919050565b60006020820190506132e26000830184612f6d565b92915050565b60006132f2613303565b90506132fe82826135ed565b919050565b6000604051905090565b600067ffffffffffffffff82111561332857613327613754565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561335457613353613754565b5b61335d8261379c565b9050602081019050919050565b600067ffffffffffffffff82111561338557613384613754565b5b61338e8261379c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006133e98261356f565b91506133f48361356f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561342957613428613698565b5b828201905092915050565b600061343f8261356f565b915061344a8361356f565b92508261345a576134596136c7565b5b828204905092915050565b60006134708261356f565b915061347b8361356f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134b4576134b3613698565b5b828202905092915050565b60006134ca8261356f565b91506134d58361356f565b9250828210156134e8576134e7613698565b5b828203905092915050565b60006134fe8261354f565b9050919050565b60006135108261354f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156135a657808201518184015260208101905061358b565b838111156135b5576000848401525b50505050565b600060028204905060018216806135d357607f821691505b602082108114156135e7576135e66136f6565b5b50919050565b6135f68261379c565b810181811067ffffffffffffffff8211171561361557613614613754565b5b80604052505050565b60006136298261356f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365c5761365b613698565b5b600182019050919050565b60006136728261356f565b915061367d8361356f565b92508261368d5761368c6136c7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820415641582073656e742e0000000000000000000000600082015250565b7f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f6e6f742077686974656c69737465642c207761697420756e74696c207075626c60008201527f69632073616c6500000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f757365722068617320616c7265616479206d696e746564000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b613c17816134f3565b8114613c2257600080fd5b50565b613c2e81613505565b8114613c3957600080fd5b50565b613c4581613517565b8114613c5057600080fd5b50565b613c5c81613523565b8114613c6757600080fd5b50565b613c738161356f565b8114613c7e57600080fd5b5056fea2646970667358221220fec409624170c576e01fb88e21af63400ffbccca8e23f2786fc92bb678e6bf4364736f6c63430008070033697066733a2f2f6261667962656966796d6a6e726d77327861746166336d786962637a71646e6362356d71647863356d6b75766d347234696f63786f796d6d3633712f