[ { "inputs": [], "name": "OutOfBounds", "type": "error" }, { "inputs": [], "name": "Unauthorized", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint16", "name": "_amt", "type": "uint16" }, { "internalType": "uint8", "name": "_type", "type": "uint8" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_val", "type": "bool" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_type", "type": "uint8" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setType", "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": "", "type": "uint256" } ], "name": "tokenIdToType", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "uint8", "name": "", "type": "uint8" } ], "name": "typeToURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
608060405260006009553480156200001657600080fd5b506040518060400160405280601681526020017f446f67676572696e6f73204163636573736f72696573000000000000000000008152506040518060400160405280600681526020017f444f474143430000000000000000000000000000000000000000000000000000815250816000908162000094919062000417565b508060019081620000a6919062000417565b505050620000c9620000bd620000cf60201b60201c565b620000d760201b60201c565b620004fe565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200021f57607f821691505b602082108103620002355762000234620001d7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200029f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000260565b620002ab868362000260565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002f8620002f2620002ec84620002c3565b620002cd565b620002c3565b9050919050565b6000819050919050565b6200031483620002d7565b6200032c6200032382620002ff565b8484546200026d565b825550505050565b600090565b6200034362000334565b6200035081848462000309565b505050565b5b8181101562000378576200036c60008262000339565b60018101905062000356565b5050565b601f821115620003c75762000391816200023b565b6200039c8462000250565b81016020851015620003ac578190505b620003c4620003bb8562000250565b83018262000355565b50505b505050565b600082821c905092915050565b6000620003ec60001984600802620003cc565b1980831691505092915050565b6000620004078383620003d9565b9150826002028217905092915050565b62000422826200019d565b67ffffffffffffffff8111156200043e576200043d620001a8565b5b6200044a825462000206565b620004578282856200037c565b600060209050601f8311600181146200048f57600084156200047a578287015190505b620004868582620003f9565b865550620004f6565b601f1984166200049f866200023b565b60005b82811015620004c957848901518255600182019150602085019450602081019050620004a2565b86831015620004e95784890151620004e5601f891682620003d9565b8355505b6001600288020188555050505b505050505050565b6134ce806200050e6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c87b56dd1161007c578063c87b56dd146103d8578063cf456ae714610408578063e985e9c514610424578063f11c801c14610454578063f2fde38b14610470578063fe8778eb1461048c57610158565b80638da5cb5b146103185780638f2fc60b1461033657806395d89b4114610352578063a22cb46514610370578063b88d4fde1461038c578063c71bc893146103a857610158565b8063356ee33511610115578063356ee3351461024457806342842e0e146102745780636352211e1461029057806370a08231146102c0578063715018a6146102f057806375794a3c146102fa57610158565b806301ffc9a71461015d57806306fdde031461018d578063081812fc146101ab578063095ea7b3146101db57806323b872dd146101f75780632a55205a14610213575b600080fd5b61017760048036038101906101729190612011565b6104a8565b6040516101849190612059565b60405180910390f35b6101956104ca565b6040516101a29190612104565b60405180910390f35b6101c560048036038101906101c0919061215c565b61055c565b6040516101d291906121ca565b60405180910390f35b6101f560048036038101906101f09190612211565b6105a2565b005b610211600480360381019061020c9190612251565b6106b9565b005b61022d600480360381019061022891906122a4565b610719565b60405161023b9291906122f3565b60405180910390f35b61025e6004803603810190610259919061215c565b610903565b60405161026b9190612338565b60405180910390f35b61028e60048036038101906102899190612251565b610923565b005b6102aa60048036038101906102a5919061215c565b610943565b6040516102b791906121ca565b60405180910390f35b6102da60048036038101906102d59190612353565b6109c9565b6040516102e79190612380565b60405180910390f35b6102f8610a80565b005b610302610a94565b60405161030f9190612380565b60405180910390f35b610320610a9a565b60405161032d91906121ca565b60405180910390f35b610350600480360381019061034b91906123df565b610ac4565b005b61035a610ada565b6040516103679190612104565b60405180910390f35b61038a6004803603810190610385919061244b565b610b6c565b005b6103a660048036038101906103a191906125c0565b610b82565b005b6103c260048036038101906103bd919061266f565b610be4565b6040516103cf9190612104565b60405180910390f35b6103f260048036038101906103ed919061215c565b610c84565b6040516103ff9190612104565b60405180910390f35b610422600480360381019061041d919061244b565b610d8a565b005b61043e6004803603810190610439919061269c565b610ded565b60405161044b9190612059565b60405180910390f35b61046e60048036038101906104699190612716565b610e81565b005b61048a60048036038101906104859190612353565b610f14565b005b6104a660048036038101906104a191906127c9565b610f97565b005b60006104b382610fcd565b806104c357506104c2826110af565b5b9050919050565b6060600080546104d990612858565b80601f016020809104026020016040519081016040528092919081815260200182805461050590612858565b80156105525780601f1061052757610100808354040283529160200191610552565b820191906000526020600020905b81548152906001019060200180831161053557829003601f168201915b5050505050905090565b600061056782611129565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105ad82610943565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361061d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610614906128fb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063c611174565b73ffffffffffffffffffffffffffffffffffffffff16148061066b575061066a81610665611174565b610ded565b5b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a19061298d565b60405180910390fd5b6106b4838361117c565b505050565b6106ca6106c4611174565b82611235565b610709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070090612a1f565b60405180910390fd5b6107148383836112ca565b505050565b6000806000600860008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036108ae5760076040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006108b86115c3565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866108e49190612a6e565b6108ee9190612adf565b90508160000151819350935050509250929050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61093e83838360405180602001604052806000815250610b82565b505050565b60008061094f836115cd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790612b5c565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090612bee565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a8861160a565b610a926000611688565b565b60095481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610acc61160a565b610ad6828261174e565b5050565b606060018054610ae990612858565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1590612858565b8015610b625780601f10610b3757610100808354040283529160200191610b62565b820191906000526020600020905b815481529060010190602001808311610b4557829003601f168201915b5050505050905090565b610b7e610b77611174565b83836118e3565b5050565b610b93610b8d611174565b83611235565b610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990612a1f565b60405180910390fd5b610bde84848484611a4f565b50505050565b600a6020528060005260406000206000915090508054610c0390612858565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2f90612858565b8015610c7c5780601f10610c5157610100808354040283529160200191610c7c565b820191906000526020600020905b815481529060010190602001808311610c5f57829003601f168201915b505050505081565b60606009548210610cc1576040517fb4120f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a6000600b600085815260200190815260200160002060009054906101000a900460ff1660ff1660ff1681526020019081526020016000208054610d0590612858565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3190612858565b8015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b50505050509050919050565b610d9261160a565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f04576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f0f838383611aab565b505050565b610f1c61160a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290612c80565b60405180910390fd5b610f9481611688565b50565b610f9f61160a565b8181600a60008660ff1660ff1681526020019081526020016000209182610fc7929190612e57565b50505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061109857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806110a857506110a782611b27565b5b9050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611122575061112182610fcd565b5b9050919050565b61113281611b91565b611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890612b5c565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111ef83610943565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061124183610943565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061128357506112828185610ded565b5b806112c157508373ffffffffffffffffffffffffffffffffffffffff166112a98461055c565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166112ea82610943565b73ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133790612f99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a69061302b565b60405180910390fd5b6113bc8383836001611bd2565b8273ffffffffffffffffffffffffffffffffffffffff166113dc82610943565b73ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990612f99565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46115be8383836001611bd8565b505050565b6000612710905090565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611612611174565b73ffffffffffffffffffffffffffffffffffffffff16611630610a9a565b73ffffffffffffffffffffffffffffffffffffffff1614611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613097565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6117566115c3565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90613129565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613195565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600760008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890613201565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a429190612059565b60405180910390a3505050565b611a5a8484846112ca565b611a6684848484611bde565b611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90613293565b60405180910390fd5b50505050565b60005b8261ffff168161ffff161015611b215760006009549050611acf8582611d65565b82600b600083815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600960008154809291906001019190505550508080611b19906132b3565b915050611aae565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611bb3836115cd565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b6000611bff8473ffffffffffffffffffffffffffffffffffffffff16611f82565b15611d58578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c28611174565b8786866040518563ffffffff1660e01b8152600401611c4a9493929190613332565b6020604051808303816000875af1925050508015611c8657506040513d601f19601f82011682018060405250810190611c839190613393565b60015b611d08573d8060008114611cb6576040519150601f19603f3d011682016040523d82523d6000602084013e611cbb565b606091505b506000815103611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613293565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d5d565b600190505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb9061340c565b60405180910390fd5b611ddd81611b91565b15611e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1490613478565b60405180910390fd5b611e2b600083836001611bd2565b611e3481611b91565b15611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b90613478565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f7e600083836001611bd8565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fee81611fb9565b8114611ff957600080fd5b50565b60008135905061200b81611fe5565b92915050565b60006020828403121561202757612026611faf565b5b600061203584828501611ffc565b91505092915050565b60008115159050919050565b6120538161203e565b82525050565b600060208201905061206e600083018461204a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120ae578082015181840152602081019050612093565b60008484015250505050565b6000601f19601f8301169050919050565b60006120d682612074565b6120e0818561207f565b93506120f0818560208601612090565b6120f9816120ba565b840191505092915050565b6000602082019050818103600083015261211e81846120cb565b905092915050565b6000819050919050565b61213981612126565b811461214457600080fd5b50565b60008135905061215681612130565b92915050565b60006020828403121561217257612171611faf565b5b600061218084828501612147565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121b482612189565b9050919050565b6121c4816121a9565b82525050565b60006020820190506121df60008301846121bb565b92915050565b6121ee816121a9565b81146121f957600080fd5b50565b60008135905061220b816121e5565b92915050565b6000806040838503121561222857612227611faf565b5b6000612236858286016121fc565b925050602061224785828601612147565b9150509250929050565b60008060006060848603121561226a57612269611faf565b5b6000612278868287016121fc565b9350506020612289868287016121fc565b925050604061229a86828701612147565b9150509250925092565b600080604083850312156122bb576122ba611faf565b5b60006122c985828601612147565b92505060206122da85828601612147565b9150509250929050565b6122ed81612126565b82525050565b600060408201905061230860008301856121bb565b61231560208301846122e4565b9392505050565b600060ff82169050919050565b6123328161231c565b82525050565b600060208201905061234d6000830184612329565b92915050565b60006020828403121561236957612368611faf565b5b6000612377848285016121fc565b91505092915050565b600060208201905061239560008301846122e4565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6123bc8161239b565b81146123c757600080fd5b50565b6000813590506123d9816123b3565b92915050565b600080604083850312156123f6576123f5611faf565b5b6000612404858286016121fc565b9250506020612415858286016123ca565b9150509250929050565b6124288161203e565b811461243357600080fd5b50565b6000813590506124458161241f565b92915050565b6000806040838503121561246257612461611faf565b5b6000612470858286016121fc565b925050602061248185828601612436565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124cd826120ba565b810181811067ffffffffffffffff821117156124ec576124eb612495565b5b80604052505050565b60006124ff611fa5565b905061250b82826124c4565b919050565b600067ffffffffffffffff82111561252b5761252a612495565b5b612534826120ba565b9050602081019050919050565b82818337600083830152505050565b600061256361255e84612510565b6124f5565b90508281526020810184848401111561257f5761257e612490565b5b61258a848285612541565b509392505050565b600082601f8301126125a7576125a661248b565b5b81356125b7848260208601612550565b91505092915050565b600080600080608085870312156125da576125d9611faf565b5b60006125e8878288016121fc565b94505060206125f9878288016121fc565b935050604061260a87828801612147565b925050606085013567ffffffffffffffff81111561262b5761262a611fb4565b5b61263787828801612592565b91505092959194509250565b61264c8161231c565b811461265757600080fd5b50565b60008135905061266981612643565b92915050565b60006020828403121561268557612684611faf565b5b60006126938482850161265a565b91505092915050565b600080604083850312156126b3576126b2611faf565b5b60006126c1858286016121fc565b92505060206126d2858286016121fc565b9150509250929050565b600061ffff82169050919050565b6126f3816126dc565b81146126fe57600080fd5b50565b600081359050612710816126ea565b92915050565b60008060006060848603121561272f5761272e611faf565b5b600061273d868287016121fc565b935050602061274e86828701612701565b925050604061275f8682870161265a565b9150509250925092565b600080fd5b600080fd5b60008083601f8401126127895761278861248b565b5b8235905067ffffffffffffffff8111156127a6576127a5612769565b5b6020830191508360018202830111156127c2576127c161276e565b5b9250929050565b6000806000604084860312156127e2576127e1611faf565b5b60006127f08682870161265a565b935050602084013567ffffffffffffffff81111561281157612810611fb4565b5b61281d86828701612773565b92509250509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061287057607f821691505b60208210810361288357612882612829565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006128e560218361207f565b91506128f082612889565b604082019050919050565b60006020820190508181036000830152612914816128d8565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612977603d8361207f565b91506129828261291b565b604082019050919050565b600060208201905081810360008301526129a68161296a565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612a09602d8361207f565b9150612a14826129ad565b604082019050919050565b60006020820190508181036000830152612a38816129fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7982612126565b9150612a8483612126565b9250828202612a9281612126565b91508282048414831517612aa957612aa8612a3f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612aea82612126565b9150612af583612126565b925082612b0557612b04612ab0565b5b828204905092915050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612b4660188361207f565b9150612b5182612b10565b602082019050919050565b60006020820190508181036000830152612b7581612b39565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612bd860298361207f565b9150612be382612b7c565b604082019050919050565b60006020820190508181036000830152612c0781612bcb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c6a60268361207f565b9150612c7582612c0e565b604082019050919050565b60006020820190508181036000830152612c9981612c5d565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612d0d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612cd0565b612d178683612cd0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612d54612d4f612d4a84612126565b612d2f565b612126565b9050919050565b6000819050919050565b612d6e83612d39565b612d82612d7a82612d5b565b848454612cdd565b825550505050565b600090565b612d97612d8a565b612da2818484612d65565b505050565b5b81811015612dc657612dbb600082612d8f565b600181019050612da8565b5050565b601f821115612e0b57612ddc81612cab565b612de584612cc0565b81016020851015612df4578190505b612e08612e0085612cc0565b830182612da7565b50505b505050565b600082821c905092915050565b6000612e2e60001984600802612e10565b1980831691505092915050565b6000612e478383612e1d565b9150826002028217905092915050565b612e618383612ca0565b67ffffffffffffffff811115612e7a57612e79612495565b5b612e848254612858565b612e8f828285612dca565b6000601f831160018114612ebe5760008415612eac578287013590505b612eb68582612e3b565b865550612f1e565b601f198416612ecc86612cab565b60005b82811015612ef457848901358255600182019150602085019450602081019050612ecf565b86831015612f115784890135612f0d601f891682612e1d565b8355505b6001600288020188555050505b50505050505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612f8360258361207f565b9150612f8e82612f27565b604082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061301560248361207f565b915061302082612fb9565b604082019050919050565b6000602082019050818103600083015261304481613008565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061308160208361207f565b915061308c8261304b565b602082019050919050565b600060208201905081810360008301526130b081613074565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000613113602a8361207f565b915061311e826130b7565b604082019050919050565b6000602082019050818103600083015261314281613106565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600061317f60198361207f565b915061318a82613149565b602082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006131eb60198361207f565b91506131f6826131b5565b602082019050919050565b6000602082019050818103600083015261321a816131de565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061327d60328361207f565b915061328882613221565b604082019050919050565b600060208201905081810360008301526132ac81613270565b9050919050565b60006132be826126dc565b915061ffff82036132d2576132d1612a3f565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000613304826132dd565b61330e81856132e8565b935061331e818560208601612090565b613327816120ba565b840191505092915050565b600060808201905061334760008301876121bb565b61335460208301866121bb565b61336160408301856122e4565b818103606083015261337381846132f9565b905095945050505050565b60008151905061338d81611fe5565b92915050565b6000602082840312156133a9576133a8611faf565b5b60006133b78482850161337e565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006133f660208361207f565b9150613401826133c0565b602082019050919050565b60006020820190508181036000830152613425816133e9565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613462601c8361207f565b915061346d8261342c565b602082019050919050565b6000602082019050818103600083015261349181613455565b905091905056fea2646970667358221220b84d9de6639ce3c2c4ddbb10d242f30000af8408379bf71f18b01e4e75eb994064736f6c63430008110033