[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": [ { "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": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "birddogToken", "outputs": [ { "internalType": "contract ERC20", "name": "", "type": "address" } ], "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "holderMint", "outputs": [], "stateMutability": "payable", "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": "maxPerTransaction", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "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": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "placeholder", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reducedPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseExtension", "type": "string" } ], "name": "setBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_birddogToken", "type": "address" } ], "name": "setBirddogTokenContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_paused", "type": "bool" } ], "name": "setPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newplaceholder", "type": "string" } ], "name": "setPlaceholder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newPrice", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newReducedPrice", "type": "uint256" } ], "name": "setReducedPrice", "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": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f80fd5b50336040518060400160405280600881526020017f4269726420446f670000000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f42495244444f474e465400000000000000000000000000000000000000000000815250815f908161008b919061071c565b50806001908161009b919061071c565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010e575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610105919061082a565b60405180910390fd5b61011d8161024860201b60201c565b506101626040518060400160405280600781526020017f697066733a2f2f0000000000000000000000000000000000000000000000000081525061030b60201b60201c565b6101a66040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525061032c60201b60201c565b6101c97370fd93fb088150e203d2243b9bd3190276f80c7061034d60201b60201c565b6101d85f61039e60201b60201c565b6101ff604051806060016040528060358152602001613c4e603591396103c960201b60201c565b6113ec600a819055506014600b819055505f600c8190555061022d662386f26fc100006103ea60201b60201c565b61024366121e6c485ac00061040260201b60201c565b610843565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61031961041a60201b60201c565b8060089081610328919061071c565b5050565b61033a61041a60201b60201c565b8060099081610349919061071c565b5050565b61035b61041a60201b60201c565b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6103ac61041a60201b60201c565b80600660146101000a81548160ff02191690831515021790555050565b6103d761041a60201b60201c565b80600790816103e6919061071c565b5050565b6103f861041a60201b60201c565b80600d8190555050565b61041061041a60201b60201c565b80600e8190555050565b6104286104b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661044c6104ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146104b1576104756104b360201b60201c565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104a8919061082a565b60405180910390fd5b565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061055d57607f821691505b6020821081036105705761056f610519565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610597565b6105dc8683610597565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61062061061b610616846105f4565b6105fd565b6105f4565b9050919050565b5f819050919050565b61063983610606565b61064d61064582610627565b8484546105a3565b825550505050565b5f90565b610661610655565b61066c818484610630565b505050565b5b8181101561068f576106845f82610659565b600181019050610672565b5050565b601f8211156106d4576106a581610576565b6106ae84610588565b810160208510156106bd578190505b6106d16106c985610588565b830182610671565b50505b505050565b5f82821c905092915050565b5f6106f45f19846008026106d9565b1980831691505092915050565b5f61070c83836106e5565b9150826002028217905092915050565b610725826104e2565b67ffffffffffffffff81111561073e5761073d6104ec565b5b6107488254610546565b610753828285610693565b5f60209050601f831160018114610784575f8415610772578287015190505b61077c8582610701565b8655506107e3565b601f19841661079286610576565b5f5b828110156107b957848901518255600182019150602085019450602081019050610794565b868310156107d657848901516107d2601f8916826106e5565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610814826107eb565b9050919050565b6108248161080a565b82525050565b5f60208201905061083d5f83018461081b565b92915050565b6133fe806108505f395ff3fe60806040526004361061020e575f3560e01c806373d5fe6611610117578063c0e748311161009f578063da3ef23f1161006e578063da3ef23f1461072a578063e985e9c514610752578063f2e72e891461078e578063f2fde38b146107b8578063f4e8b450146107e05761020e565b8063c0e7483114610672578063c66828621461069a578063c87b56dd146106c4578063d5abeb01146107005761020e565b806395d89b41116100e657806395d89b41146105a45780639e75143c146105ce578063a035b1fe146105f8578063a22cb46514610622578063b88d4fde1461064a5761020e565b806373d5fe661461050c5780638da5cb5b1461052857806391b7f5ed14610552578063929440bd1461057a5761020e565b806340c10f191161019a5780635c975abb116101695780635c975abb1461042a5780636352211e146104545780636c0360eb1461049057806370a08231146104ba578063715018a6146104f65761020e565b806340c10f191461039457806342842e0e146103b05780634b980d67146103d857806355f804b3146104025761020e565b806316c38b3c116101e157806316c38b3c146102dc57806318160ddd1461030457806323b872dd1461032e5780633ccfd60b146103565780633daa583e1461036c5761020e565b806301ffc9a71461021257806306fdde031461024e578063081812fc14610278578063095ea7b3146102b4575b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190612545565b610808565b604051610245919061258a565b60405180910390f35b348015610259575f80fd5b506102626108e9565b60405161026f9190612613565b60405180910390f35b348015610283575f80fd5b5061029e60048036038101906102999190612666565b610978565b6040516102ab91906126d0565b60405180910390f35b3480156102bf575f80fd5b506102da60048036038101906102d59190612713565b610993565b005b3480156102e7575f80fd5b5061030260048036038101906102fd919061277b565b6109a9565b005b34801561030f575f80fd5b506103186109ce565b60405161032591906127b5565b60405180910390f35b348015610339575f80fd5b50610354600480360381019061034f91906127ce565b6109d4565b005b348015610361575f80fd5b5061036a610ad3565b005b348015610377575f80fd5b50610392600480360381019061038d9190612666565b610b4f565b005b6103ae60048036038101906103a99190612713565b610b61565b005b3480156103bb575f80fd5b506103d660048036038101906103d191906127ce565b610c6c565b005b3480156103e3575f80fd5b506103ec610c8b565b6040516103f991906127b5565b60405180910390f35b34801561040d575f80fd5b506104286004803603810190610423919061294a565b610c91565b005b348015610435575f80fd5b5061043e610cac565b60405161044b919061258a565b60405180910390f35b34801561045f575f80fd5b5061047a60048036038101906104759190612666565b610cbf565b60405161048791906126d0565b60405180910390f35b34801561049b575f80fd5b506104a4610cd0565b6040516104b19190612613565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190612991565b610d5c565b6040516104ed91906127b5565b60405180910390f35b348015610501575f80fd5b5061050a610e12565b005b61052660048036038101906105219190612713565b610e25565b005b348015610533575f80fd5b5061053c61100a565b60405161054991906126d0565b60405180910390f35b34801561055d575f80fd5b5061057860048036038101906105739190612666565b611032565b005b348015610585575f80fd5b5061058e611044565b60405161059b91906127b5565b60405180910390f35b3480156105af575f80fd5b506105b861104a565b6040516105c59190612613565b60405180910390f35b3480156105d9575f80fd5b506105e26110da565b6040516105ef9190612613565b60405180910390f35b348015610603575f80fd5b5061060c611166565b60405161061991906127b5565b60405180910390f35b34801561062d575f80fd5b50610648600480360381019061064391906129bc565b61116c565b005b348015610655575f80fd5b50610670600480360381019061066b9190612a98565b611182565b005b34801561067d575f80fd5b5061069860048036038101906106939190612991565b61119f565b005b3480156106a5575f80fd5b506106ae6111ea565b6040516106bb9190612613565b60405180910390f35b3480156106cf575f80fd5b506106ea60048036038101906106e59190612666565b611276565b6040516106f79190612613565b60405180910390f35b34801561070b575f80fd5b50610714611382565b60405161072191906127b5565b60405180910390f35b348015610735575f80fd5b50610750600480360381019061074b919061294a565b611388565b005b34801561075d575f80fd5b5061077860048036038101906107739190612b18565b6113a3565b604051610785919061258a565b60405180910390f35b348015610799575f80fd5b506107a2611431565b6040516107af9190612bb1565b60405180910390f35b3480156107c3575f80fd5b506107de60048036038101906107d99190612991565b611456565b005b3480156107eb575f80fd5b506108066004803603810190610801919061294a565b6114da565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108d257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108e257506108e1826114f5565b5b9050919050565b60605f80546108f790612bf7565b80601f016020809104026020016040519081016040528092919081815260200182805461092390612bf7565b801561096e5780601f106109455761010080835404028352916020019161096e565b820191905f5260205f20905b81548152906001019060200180831161095157829003601f168201915b5050505050905090565b5f6109828261155e565b5061098c826115e4565b9050919050565b6109a582826109a061161d565b611624565b5050565b6109b1611636565b80600660146101000a81548160ff02191690831515021790555050565b600c5481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a44575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610a3b91906126d0565b60405180910390fd5b5f610a578383610a5261161d565b6116bd565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610acd578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610ac493929190612c27565b60405180910390fd5b50505050565b610adb611636565b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051610b0090612c89565b5f6040518083038185875af1925050503d805f8114610b3a576040519150601f19603f3d011682016040523d82523d5f602084013e610b3f565b606091505b5050905080610b4c575f80fd5b50565b610b57611636565b80600e8190555050565b600660149054906101000a900460ff1615610bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba890612ce7565b60405180910390fd5b600a5481600c54610bc29190612d32565b1115610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa90612daf565b60405180910390fd5b80600d54610c119190612dcd565b341015610c1c575f80fd5b5f600190505b818111610c5357610c408382600c54610c3b9190612d32565b6118c8565b8080610c4b90612e0e565b915050610c22565b5080600c54610c629190612d32565b600c819055505050565b610c8683838360405180602001604052805f815250611182565b505050565b600b5481565b610c99611636565b8060089081610ca89190612fe9565b5050565b600660149054906101000a900460ff1681565b5f610cc98261155e565b9050919050565b60088054610cdd90612bf7565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0990612bf7565b8015610d545780601f10610d2b57610100808354040283529160200191610d54565b820191905f5260205f20905b815481529060010190602001808311610d3757829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcd575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610dc491906126d0565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e1a611636565b610e235f6119bb565b565b600660149054906101000a900460ff1615610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90612ce7565b60405180910390fd5b600a5481600c54610e869190612d32565b1115610ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebe90612daf565b60405180910390fd5b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610f2291906126d0565b602060405180830381865afa158015610f3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6191906130cc565b11610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890613141565b60405180910390fd5b80600e54610faf9190612dcd565b341015610fba575f80fd5b5f600190505b818111610ff157610fde8382600c54610fd99190612d32565b6118c8565b8080610fe990612e0e565b915050610fc0565b5080600c546110009190612d32565b600c819055505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61103a611636565b80600d8190555050565b600e5481565b60606001805461105990612bf7565b80601f016020809104026020016040519081016040528092919081815260200182805461108590612bf7565b80156110d05780601f106110a7576101008083540402835291602001916110d0565b820191905f5260205f20905b8154815290600101906020018083116110b357829003601f168201915b5050505050905090565b600780546110e790612bf7565b80601f016020809104026020016040519081016040528092919081815260200182805461111390612bf7565b801561115e5780601f106111355761010080835404028352916020019161115e565b820191905f5260205f20905b81548152906001019060200180831161114157829003601f168201915b505050505081565b600d5481565b61117e61117761161d565b8383611a7e565b5050565b61118d8484846109d4565b61119984848484611be7565b50505050565b6111a7611636565b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600980546111f790612bf7565b80601f016020809104026020016040519081016040528092919081815260200182805461122390612bf7565b801561126e5780601f106112455761010080835404028352916020019161126e565b820191905f5260205f20905b81548152906001019060200180831161125157829003601f168201915b505050505081565b60605f82116112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b1906131a9565b60405180910390fd5b81600c5410156112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690613211565b60405180910390fd5b5f611308611d99565b90505f611313611e29565b90505f61131e611eb9565b90505f835111611376575f8251116113445760405180602001604052805f815250611371565b8161134e86611f49565b8260405160200161136193929190613269565b6040516020818303038152906040525b611378565b825b9350505050919050565b600a5481565b611390611636565b806009908161139f9190612fe9565b5050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61145e611636565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114ce575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016114c591906126d0565b60405180910390fd5b6114d7816119bb565b50565b6114e2611636565b80600790816114f19190612fe9565b5050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8061156983612013565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115db57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016115d291906127b5565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b611631838383600161204c565b505050565b61163e61161d565b73ffffffffffffffffffffffffffffffffffffffff1661165c61100a565b73ffffffffffffffffffffffffffffffffffffffff16146116bb5761167f61161d565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116b291906126d0565b60405180910390fd5b565b5f806116c884612013565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117095761170881848661220b565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611794576117485f855f8061204c565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461181357600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611938575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161192f91906126d0565b60405180910390fd5b5f61194483835f6116bd565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119b6575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016119ad91906126d0565b60405180910390fd5b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611ae591906126d0565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611bda919061258a565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611d93578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c2a61161d565b8685856040518563ffffffff1660e01b8152600401611c4c94939291906132eb565b6020604051808303815f875af1925050508015611c8757506040513d601f19601f82011682018060405250810190611c849190613349565b60015b611d08573d805f8114611cb5576040519150601f19603f3d011682016040523d82523d5f602084013e611cba565b606091505b505f815103611d0057836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611cf791906126d0565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d9157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d8891906126d0565b60405180910390fd5b505b50505050565b606060078054611da890612bf7565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd490612bf7565b8015611e1f5780601f10611df657610100808354040283529160200191611e1f565b820191905f5260205f20905b815481529060010190602001808311611e0257829003601f168201915b5050505050905090565b606060088054611e3890612bf7565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6490612bf7565b8015611eaf5780601f10611e8657610100808354040283529160200191611eaf565b820191905f5260205f20905b815481529060010190602001808311611e9257829003601f168201915b5050505050905090565b606060098054611ec890612bf7565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef490612bf7565b8015611f3f5780601f10611f1657610100808354040283529160200191611f3f565b820191905f5260205f20905b815481529060010190602001808311611f2257829003601f168201915b5050505050905090565b60605f6001611f57846122ce565b0190505f8167ffffffffffffffff811115611f7557611f74612826565b5b6040519080825280601f01601f191660200182016040528015611fa75781602001600182028036833780820191505090505b5090505f82602001820190505b600115612008578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611ffd57611ffc613374565b5b0494505f8503611fb4575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061208457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121b6575f6120938461155e565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120fd57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612110575061210e81846113a3565b155b1561215257826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161214991906126d0565b60405180910390fd5b81156121b457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61221683838361241f565b6122c9575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361228a57806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161228191906127b5565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016122c09291906133a1565b60405180910390fd5b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061232a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816123205761231f613374565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612367576d04ee2d6d415b85acef8100000000838161235d5761235c613374565b5b0492506020810190505b662386f26fc10000831061239657662386f26fc10000838161238c5761238b613374565b5b0492506010810190505b6305f5e10083106123bf576305f5e10083816123b5576123b4613374565b5b0492506008810190505b61271083106123e45761271083816123da576123d9613374565b5b0492506004810190505b6064831061240757606483816123fd576123fc613374565b5b0492506002810190505b600a8310612416576001810190505b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124d657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612497575061249684846113a3565b5b806124d557508273ffffffffffffffffffffffffffffffffffffffff166124bd836115e4565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612524816124f0565b811461252e575f80fd5b50565b5f8135905061253f8161251b565b92915050565b5f6020828403121561255a576125596124e8565b5b5f61256784828501612531565b91505092915050565b5f8115159050919050565b61258481612570565b82525050565b5f60208201905061259d5f83018461257b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6125e5826125a3565b6125ef81856125ad565b93506125ff8185602086016125bd565b612608816125cb565b840191505092915050565b5f6020820190508181035f83015261262b81846125db565b905092915050565b5f819050919050565b61264581612633565b811461264f575f80fd5b50565b5f813590506126608161263c565b92915050565b5f6020828403121561267b5761267a6124e8565b5b5f61268884828501612652565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ba82612691565b9050919050565b6126ca816126b0565b82525050565b5f6020820190506126e35f8301846126c1565b92915050565b6126f2816126b0565b81146126fc575f80fd5b50565b5f8135905061270d816126e9565b92915050565b5f8060408385031215612729576127286124e8565b5b5f612736858286016126ff565b925050602061274785828601612652565b9150509250929050565b61275a81612570565b8114612764575f80fd5b50565b5f8135905061277581612751565b92915050565b5f602082840312156127905761278f6124e8565b5b5f61279d84828501612767565b91505092915050565b6127af81612633565b82525050565b5f6020820190506127c85f8301846127a6565b92915050565b5f805f606084860312156127e5576127e46124e8565b5b5f6127f2868287016126ff565b9350506020612803868287016126ff565b925050604061281486828701612652565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61285c826125cb565b810181811067ffffffffffffffff8211171561287b5761287a612826565b5b80604052505050565b5f61288d6124df565b90506128998282612853565b919050565b5f67ffffffffffffffff8211156128b8576128b7612826565b5b6128c1826125cb565b9050602081019050919050565b828183375f83830152505050565b5f6128ee6128e98461289e565b612884565b90508281526020810184848401111561290a57612909612822565b5b6129158482856128ce565b509392505050565b5f82601f8301126129315761293061281e565b5b81356129418482602086016128dc565b91505092915050565b5f6020828403121561295f5761295e6124e8565b5b5f82013567ffffffffffffffff81111561297c5761297b6124ec565b5b6129888482850161291d565b91505092915050565b5f602082840312156129a6576129a56124e8565b5b5f6129b3848285016126ff565b91505092915050565b5f80604083850312156129d2576129d16124e8565b5b5f6129df858286016126ff565b92505060206129f085828601612767565b9150509250929050565b5f67ffffffffffffffff821115612a1457612a13612826565b5b612a1d826125cb565b9050602081019050919050565b5f612a3c612a37846129fa565b612884565b905082815260208101848484011115612a5857612a57612822565b5b612a638482856128ce565b509392505050565b5f82601f830112612a7f57612a7e61281e565b5b8135612a8f848260208601612a2a565b91505092915050565b5f805f8060808587031215612ab057612aaf6124e8565b5b5f612abd878288016126ff565b9450506020612ace878288016126ff565b9350506040612adf87828801612652565b925050606085013567ffffffffffffffff811115612b0057612aff6124ec565b5b612b0c87828801612a6b565b91505092959194509250565b5f8060408385031215612b2e57612b2d6124e8565b5b5f612b3b858286016126ff565b9250506020612b4c858286016126ff565b9150509250929050565b5f819050919050565b5f612b79612b74612b6f84612691565b612b56565b612691565b9050919050565b5f612b8a82612b5f565b9050919050565b5f612b9b82612b80565b9050919050565b612bab81612b91565b82525050565b5f602082019050612bc45f830184612ba2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612c0e57607f821691505b602082108103612c2157612c20612bca565b5b50919050565b5f606082019050612c3a5f8301866126c1565b612c4760208301856127a6565b612c5460408301846126c1565b949350505050565b5f81905092915050565b50565b5f612c745f83612c5c565b9150612c7f82612c66565b5f82019050919050565b5f612c9382612c69565b9150819050919050565b7f50617573656400000000000000000000000000000000000000000000000000005f82015250565b5f612cd16006836125ad565b9150612cdc82612c9d565b602082019050919050565b5f6020820190508181035f830152612cfe81612cc5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d3c82612633565b9150612d4783612633565b9250828201905080821115612d5f57612d5e612d05565b5b92915050565b7f45786365656473206d617820737570706c7900000000000000000000000000005f82015250565b5f612d996012836125ad565b9150612da482612d65565b602082019050919050565b5f6020820190508181035f830152612dc681612d8d565b9050919050565b5f612dd782612633565b9150612de283612633565b9250828202612df081612633565b91508282048414831517612e0757612e06612d05565b5b5092915050565b5f612e1882612633565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4a57612e49612d05565b5b600182019050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612eb17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e76565b612ebb8683612e76565b95508019841693508086168417925050509392505050565b5f612eed612ee8612ee384612633565b612b56565b612633565b9050919050565b5f819050919050565b612f0683612ed3565b612f1a612f1282612ef4565b848454612e82565b825550505050565b5f90565b612f2e612f22565b612f39818484612efd565b505050565b5b81811015612f5c57612f515f82612f26565b600181019050612f3f565b5050565b601f821115612fa157612f7281612e55565b612f7b84612e67565b81016020851015612f8a578190505b612f9e612f9685612e67565b830182612f3e565b50505b505050565b5f82821c905092915050565b5f612fc15f1984600802612fa6565b1980831691505092915050565b5f612fd98383612fb2565b9150826002028217905092915050565b612ff2826125a3565b67ffffffffffffffff81111561300b5761300a612826565b5b6130158254612bf7565b613020828285612f60565b5f60209050601f831160018114613051575f841561303f578287015190505b6130498582612fce565b8655506130b0565b601f19841661305f86612e55565b5f5b8281101561308657848901518255600182019150602085019450602081019050613061565b868310156130a3578489015161309f601f891682612fb2565b8355505b6001600288020188555050505b505050505050565b5f815190506130c68161263c565b92915050565b5f602082840312156130e1576130e06124e8565b5b5f6130ee848285016130b8565b91505092915050565b7f42495244444f4720686f6c64657273206f6e6c790000000000000000000000005f82015250565b5f61312b6014836125ad565b9150613136826130f7565b602082019050919050565b5f6020820190508181035f8301526131588161311f565b9050919050565b7f496e76616c6964204944000000000000000000000000000000000000000000005f82015250565b5f613193600a836125ad565b915061319e8261315f565b602082019050919050565b5f6020820190508181035f8301526131c081613187565b9050919050565b7f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e005f82015250565b5f6131fb601f836125ad565b9150613206826131c7565b602082019050919050565b5f6020820190508181035f830152613228816131ef565b9050919050565b5f81905092915050565b5f613243826125a3565b61324d818561322f565b935061325d8185602086016125bd565b80840191505092915050565b5f6132748286613239565b91506132808285613239565b915061328c8284613239565b9150819050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f6132bd82613299565b6132c781856132a3565b93506132d78185602086016125bd565b6132e0816125cb565b840191505092915050565b5f6080820190506132fe5f8301876126c1565b61330b60208301866126c1565b61331860408301856127a6565b818103606083015261332a81846132b3565b905095945050505050565b5f815190506133438161251b565b92915050565b5f6020828403121561335e5761335d6124e8565b5b5f61336b84828501613335565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6040820190506133b45f8301856126c1565b6133c160208301846127a6565b939250505056fea2646970667358221220b95b6697bee7c1e6237f89a37434a3d0c12b2829a099951b3c757a088f35d0fa64736f6c63430008190033697066733a2f2f516d51735077384544487652707a6647706b6772717046765554324365383148586578627831754d4b3677625766