[ { "inputs": [ { "internalType": "address", "name": "_vault", "type": "address" }, { "internalType": "address", "name": "_verification", "type": "address" }, { "internalType": "address", "name": "_metadata", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "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": false, "internalType": "address", "name": "_minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_firstId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_count", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "_isDragon", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_expiry", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_paymentToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_paymentValue", "type": "uint256" } ], "name": "Mint", "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": "_approved", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deployBlock", "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": [], "name": "getChainId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_count", "type": "uint256" }, { "internalType": "bool", "name": "_isDragon", "type": "bool" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "uint256", "name": "_expiry", "type": "uint256" }, { "internalType": "address", "name": "_paymentToken", "type": "address" }, { "internalType": "uint256", "name": "_paymentValue", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "getSigner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_count", "type": "uint256" }, { "internalType": "bool", "name": "_isDragon", "type": "bool" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "uint256", "name": "_expiry", "type": "uint256" }, { "internalType": "address", "name": "_paymentToken", "type": "address" }, { "internalType": "uint256", "name": "_paymentValue", "type": "uint256" }, { "internalType": "uint256", "name": "_chainId", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonce", "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": [ { "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": "_metadata", "type": "address" } ], "name": "setMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_vault", "type": "address" } ], "name": "setVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "", "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": [], "name": "vault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "verification", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200338438038062003384833981810160405281019062000037919062000269565b6001600b60006380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555043600281905550505050620002c5565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002318262000204565b9050919050565b620002438162000224565b81146200024f57600080fd5b50565b600081519050620002638162000238565b92915050565b600080600060608486031215620002855762000284620001ff565b5b6000620002958682870162000252565b9350506020620002a88682870162000252565b9250506040620002bb8682870162000252565b9150509250925092565b6130af80620002d56000396000f3fe6080604052600436106101665760003560e01c80636817031b116100d1578063a22cb4651161008a578063c87b56dd11610064578063c87b56dd14610541578063e985e9c51461057e578063f3cb8385146105bb578063fbfa77cf146105e457610166565b8063a22cb465146104c4578063a3ec191a146104ed578063b88d4fde1461051857610166565b80636817031b1461038e57806370a08231146103b757806370ae92d2146103f4578063835ee1c6146104315780638da5cb5b1461046e57806395d89b411461049957610166565b80631bdf5392116101235780631bdf53921461028d57806323b872dd146102a95780633408e470146102d257806342842e0e146102fd5780634ffe2a8b146103265780636352211e1461035157610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b31461021057806313af40351461023957806318160ddd14610262575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190611f32565b61060f565b60405161019f9190611f7a565b60405180910390f35b3480156101b457600080fd5b506101bd61062f565b6040516101ca9190612025565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f5919061207d565b610668565b60405161020791906120eb565b60405180910390f35b34801561021c57600080fd5b5061023760048036038101906102329190612132565b6106ed565b005b34801561024557600080fd5b50610260600480360381019061025b9190612172565b6108ab565b005b34801561026e57600080fd5b5061027761097f565b60405161028491906121ae565b60405180910390f35b6102a760048036038101906102a2919061232a565b61098c565b005b3480156102b557600080fd5b506102d060048036038101906102cb91906123fc565b610e0f565b005b3480156102de57600080fd5b506102e7611273565b6040516102f491906121ae565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f91906123fc565b61127b565b005b34801561033257600080fd5b5061033b61129b565b60405161034891906120eb565b60405180910390f35b34801561035d57600080fd5b506103786004803603810190610373919061207d565b6112c1565b60405161038591906120eb565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b09190612172565b61135d565b005b3480156103c357600080fd5b506103de60048036038101906103d99190612172565b61142e565b6040516103eb91906121ae565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612172565b611446565b60405161042891906121ae565b60405180910390f35b34801561043d57600080fd5b506104586004803603810190610453919061244f565b61145e565b60405161046591906120eb565b60405180910390f35b34801561047a57600080fd5b50610483611518565b60405161049091906120eb565b60405180910390f35b3480156104a557600080fd5b506104ae61153e565b6040516104bb9190612025565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612521565b611577565b005b3480156104f957600080fd5b50610502611674565b60405161050f91906121ae565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a9190612561565b61167a565b005b34801561054d57600080fd5b506105686004803603810190610563919061207d565b6117c9565b6040516105759190612025565b60405180910390f35b34801561058a57600080fd5b506105a560048036038101906105a091906125e4565b6118dd565b6040516105b29190611f7a565b60405180910390f35b3480156105c757600080fd5b506105e260048036038101906105dd9190612172565b61190c565b005b3480156105f057600080fd5b506105f96119e0565b60405161060691906120eb565b60405180910390f35b600b6020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280601381526020017f447261676f6e2041636164656d7920456767730000000000000000000000000081525081565b600061067382611a04565b6106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990612670565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f8826112c1565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107ba5750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f0906126dc565b60405180910390fd5b818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093290612748565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600880549050905090565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a04906127b4565b60405180910390fd5b468214610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690612820565b60405180910390fd5b844210610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a889061288c565b60405180910390fd5b85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c1e57823414610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b42906128f8565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051610b9290612949565b60006040518083038185875af1925050503d8060008114610bcf576040519150601f19603f3d011682016040523d82523d6000602084013e610bd4565b606091505b5050905080610c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0f906129aa565b60405180910390fd5b50610caf565b60003414610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c58906128f8565b60405180910390fd5b610cae3360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16858773ffffffffffffffffffffffffffffffffffffffff16611aa9909392919063ffffffff16565b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bd8c4ef338a8a8a8a8a8a896040518963ffffffff1660e01b8152600401610d18989796959493929190612a1f565b602060405180830381865afa158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d599190612ab9565b610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612b32565b60405180910390fd5b7fc0ec34ddc41191c9b2bcd663dea8c6e911c5e4a3c967c7ab33c3be0765917bb9336008805490508a8a8a8a8a8a604051610dda989796959493929190612b52565b60405180910390a160005b88811015610e0457610df73389611b2b565b8080600101915050610de5565b505050505050505050565b6000610e1a826112c1565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610eb457503373ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610f455750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906126dc565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990612c1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105890612c88565b60405180910390fd5b818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48260086001846110cc9190612cd7565b815481106110dd576110dc612d0b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061117590612d3a565b9190505550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906111ca90612d63565b9190505550600073ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126d576006600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50505050565b600046905090565b6112968383836040518060200160405280600081525061167a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112cc82611a04565b61130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612670565b60405180910390fd5b600860018361131a9190612cd7565b8154811061132b5761132a612d0b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612748565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60056020528060005260406000206000915090505481565b60036020528060005260406000206000915090505481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663835ee1c6338a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004016114c9989796959493929190612a1f565b602060405180830381865afa1580156114e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150a9190612dc0565b905098975050505050505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f454747000000000000000000000000000000000000000000000000000000000081525081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115d49190611f7a565b60405180910390a380600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60025481565b611685848484610e0f565b6000833b905060008163ffffffff1611156117c25760008490507f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168173ffffffffffffffffffffffffffffffffffffffff1663150b7a02338988886040518563ffffffff1660e01b815260040161171e9493929190612ded565b6020604051808303816000875af115801561173d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117619190612e4e565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612ec7565b60405180910390fd5b505b5050505050565b60606117d482611a04565b611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180a90612670565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663301a3260836004600086815260200190815260200160002060009054906101000a900460ff166040518363ffffffff1660e01b8152600401611890929190612ee7565b600060405180830381865afa1580156118ad573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118d69190612fb1565b9050919050565b60076020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390612c1c565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821480611a18575060088054905082115b15611a265760009050611aa4565b600073ffffffffffffffffffffffffffffffffffffffff166008600184611a4d9190612cd7565b81548110611a5e57611a5d612d0b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141590505b919050565b611b25848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401611ade93929190612ffa565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c78565b50505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b7b90612d63565b91905055506008829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060046000600880549050815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805490508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000611ca3828473ffffffffffffffffffffffffffffffffffffffff16611d0f90919063ffffffff16565b90506000815114158015611cc8575080806020019051810190611cc69190612ab9565b155b15611d0a57826040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401611d0191906120eb565b60405180910390fd5b505050565b6060611d1d83836000611d25565b905092915050565b606081471015611d6c57306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401611d6391906120eb565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051611d959190613062565b60006040518083038185875af1925050503d8060008114611dd2576040519150601f19603f3d011682016040523d82523d6000602084013e611dd7565b606091505b5091509150611de7868383611df2565b925050509392505050565b606082611e0757611e0282611e81565b611e79565b60008251148015611e2f575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15611e7157836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401611e6891906120eb565b60405180910390fd5b819050611e7a565b5b9392505050565b600081511115611e945780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f0f81611eda565b8114611f1a57600080fd5b50565b600081359050611f2c81611f06565b92915050565b600060208284031215611f4857611f47611ed0565b5b6000611f5684828501611f1d565b91505092915050565b60008115159050919050565b611f7481611f5f565b82525050565b6000602082019050611f8f6000830184611f6b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fcf578082015181840152602081019050611fb4565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ff782611f95565b6120018185611fa0565b9350612011818560208601611fb1565b61201a81611fdb565b840191505092915050565b6000602082019050818103600083015261203f8184611fec565b905092915050565b6000819050919050565b61205a81612047565b811461206557600080fd5b50565b60008135905061207781612051565b92915050565b60006020828403121561209357612092611ed0565b5b60006120a184828501612068565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120d5826120aa565b9050919050565b6120e5816120ca565b82525050565b600060208201905061210060008301846120dc565b92915050565b61210f816120ca565b811461211a57600080fd5b50565b60008135905061212c81612106565b92915050565b6000806040838503121561214957612148611ed0565b5b60006121578582860161211d565b925050602061216885828601612068565b9150509250929050565b60006020828403121561218857612187611ed0565b5b60006121968482850161211d565b91505092915050565b6121a881612047565b82525050565b60006020820190506121c3600083018461219f565b92915050565b6121d281611f5f565b81146121dd57600080fd5b50565b6000813590506121ef816121c9565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61223782611fdb565b810181811067ffffffffffffffff82111715612256576122556121ff565b5b80604052505050565b6000612269611ec6565b9050612275828261222e565b919050565b600067ffffffffffffffff821115612295576122946121ff565b5b61229e82611fdb565b9050602081019050919050565b82818337600083830152505050565b60006122cd6122c88461227a565b61225f565b9050828152602081018484840111156122e9576122e86121fa565b5b6122f48482856122ab565b509392505050565b600082601f830112612311576123106121f5565b5b81356123218482602086016122ba565b91505092915050565b600080600080600080600080610100898b03121561234b5761234a611ed0565b5b60006123598b828c01612068565b985050602061236a8b828c016121e0565b975050604061237b8b828c01612068565b965050606061238c8b828c01612068565b955050608061239d8b828c0161211d565b94505060a06123ae8b828c01612068565b93505060c06123bf8b828c01612068565b92505060e089013567ffffffffffffffff8111156123e0576123df611ed5565b5b6123ec8b828c016122fc565b9150509295985092959890939650565b60008060006060848603121561241557612414611ed0565b5b60006124238682870161211d565b93505060206124348682870161211d565b925050604061244586828701612068565b9150509250925092565b600080600080600080600080610100898b0312156124705761246f611ed0565b5b600061247e8b828c0161211d565b985050602061248f8b828c01612068565b97505060406124a08b828c016121e0565b96505060606124b18b828c01612068565b95505060806124c28b828c01612068565b94505060a06124d38b828c0161211d565b93505060c06124e48b828c01612068565b92505060e089013567ffffffffffffffff81111561250557612504611ed5565b5b6125118b828c016122fc565b9150509295985092959890939650565b6000806040838503121561253857612537611ed0565b5b60006125468582860161211d565b9250506020612557858286016121e0565b9150509250929050565b6000806000806080858703121561257b5761257a611ed0565b5b60006125898782880161211d565b945050602061259a8782880161211d565b93505060406125ab87828801612068565b925050606085013567ffffffffffffffff8111156125cc576125cb611ed5565b5b6125d8878288016122fc565b91505092959194509250565b600080604083850312156125fb576125fa611ed0565b5b60006126098582860161211d565b925050602061261a8582860161211d565b9150509250929050565b7f696e76616c696400000000000000000000000000000000000000000000000000600082015250565b600061265a600783611fa0565b915061266582612624565b602082019050919050565b600060208201905081810360008301526126898161264d565b9050919050565b7f7065726d697373696f6e00000000000000000000000000000000000000000000600082015250565b60006126c6600a83611fa0565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f73656e6465720000000000000000000000000000000000000000000000000000600082015250565b6000612732600683611fa0565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f6567673a6e6f6e63650000000000000000000000000000000000000000000000600082015250565b600061279e600983611fa0565b91506127a982612768565b602082019050919050565b600060208201905081810360008301526127cd81612791565b9050919050565b7f6567673a636861696e4964000000000000000000000000000000000000000000600082015250565b600061280a600b83611fa0565b9150612815826127d4565b602082019050919050565b60006020820190508181036000830152612839816127fd565b9050919050565b7f6567673a65787069727900000000000000000000000000000000000000000000600082015250565b6000612876600a83611fa0565b915061288182612840565b602082019050919050565b600060208201905081810360008301526128a581612869565b9050919050565b7f6567673a6d73672e76616c756500000000000000000000000000000000000000600082015250565b60006128e2600d83611fa0565b91506128ed826128ac565b602082019050919050565b60006020820190508181036000830152612911816128d5565b9050919050565b600081905092915050565b50565b6000612933600083612918565b915061293e82612923565b600082019050919050565b600061295482612926565b9150819050919050565b7f6567673a74784554480000000000000000000000000000000000000000000000600082015250565b6000612994600983611fa0565b915061299f8261295e565b602082019050919050565b600060208201905081810360008301526129c381612987565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006129f1826129ca565b6129fb81856129d5565b9350612a0b818560208601611fb1565b612a1481611fdb565b840191505092915050565b600061010082019050612a35600083018b6120dc565b612a42602083018a61219f565b612a4f6040830189611f6b565b612a5c606083018861219f565b612a69608083018761219f565b612a7660a08301866120dc565b612a8360c083018561219f565b81810360e0830152612a9581846129e6565b90509998505050505050505050565b600081519050612ab3816121c9565b92915050565b600060208284031215612acf57612ace611ed0565b5b6000612add84828501612aa4565b91505092915050565b7f6567673a7369676e617475726500000000000000000000000000000000000000600082015250565b6000612b1c600d83611fa0565b9150612b2782612ae6565b602082019050919050565b60006020820190508181036000830152612b4b81612b0f565b9050919050565b600061010082019050612b68600083018b6120dc565b612b75602083018a61219f565b612b82604083018961219f565b612b8f6060830188611f6b565b612b9c608083018761219f565b612ba960a083018661219f565b612bb660c08301856120dc565b612bc360e083018461219f565b9998505050505050505050565b7f6f776e6572000000000000000000000000000000000000000000000000000000600082015250565b6000612c06600583611fa0565b9150612c1182612bd0565b602082019050919050565b60006020820190508181036000830152612c3581612bf9565b9050919050565b7f7a65726f00000000000000000000000000000000000000000000000000000000600082015250565b6000612c72600483611fa0565b9150612c7d82612c3c565b602082019050919050565b60006020820190508181036000830152612ca181612c65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ce282612047565b9150612ced83612047565b9250828203905081811115612d0557612d04612ca8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d4582612047565b915060008203612d5857612d57612ca8565b5b600182039050919050565b6000612d6e82612047565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612da057612d9f612ca8565b5b600182019050919050565b600081519050612dba81612106565b92915050565b600060208284031215612dd657612dd5611ed0565b5b6000612de484828501612dab565b91505092915050565b6000608082019050612e0260008301876120dc565b612e0f60208301866120dc565b612e1c604083018561219f565b8181036060830152612e2e81846129e6565b905095945050505050565b600081519050612e4881611f06565b92915050565b600060208284031215612e6457612e63611ed0565b5b6000612e7284828501612e39565b91505092915050565b7f7265636569766572000000000000000000000000000000000000000000000000600082015250565b6000612eb1600883611fa0565b9150612ebc82612e7b565b602082019050919050565b60006020820190508181036000830152612ee081612ea4565b9050919050565b6000604082019050612efc600083018561219f565b612f096020830184611f6b565b9392505050565b600067ffffffffffffffff821115612f2b57612f2a6121ff565b5b612f3482611fdb565b9050602081019050919050565b6000612f54612f4f84612f10565b61225f565b905082815260208101848484011115612f7057612f6f6121fa565b5b612f7b848285611fb1565b509392505050565b600082601f830112612f9857612f976121f5565b5b8151612fa8848260208601612f41565b91505092915050565b600060208284031215612fc757612fc6611ed0565b5b600082015167ffffffffffffffff811115612fe557612fe4611ed5565b5b612ff184828501612f83565b91505092915050565b600060608201905061300f60008301866120dc565b61301c60208301856120dc565b613029604083018461219f565b949350505050565b600061303c826129ca565b6130468185612918565b9350613056818560208601611fb1565b80840191505092915050565b600061306e8284613031565b91508190509291505056fea264697066735822122010bda46a6b5674726f343e5d2e96b9788107e072aab17804c98c96fc7cd67adc64736f6c63430008180033000000000000000000000000ec2d4d8880f767a61cbd9acf13f58f2318558a4400000000000000000000000019be652b334dfc540d7d18111dcf514fcae8642a0000000000000000000000006cda5cac18f38f487c6bdf23c70c27a8c82ff299