non-fungible-apps/artifacts/contracts/SitesNFTs.sol/SitesNFTs.json

614 lines
71 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "SitesNFTs",
"sourceName": "contracts/SitesNFTs.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"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"
},
{
"stateMutability": "nonpayable",
"type": "fallback"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MINTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentTokenId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_tokenURI",
"type": "string"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"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": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"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": "_newBbaseURI",
"type": "string"
}
],
"name": "setBaseURI",
"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": [
{
"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"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162003d5c38038062003d5c833981810160405281019062000037919062000381565b818181600090805190602001906200005192919062000253565b5080600190805190602001906200006a92919062000253565b5050506040518060400160405280601d81526020017f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525060099080519060200190620000ba92919062000253565b50620000d06000801b33620000d860201b60201c565b50506200058a565b620000ea8282620000ee60201b60201c565b5050565b620001008282620001e060201b60201c565b620001dc5760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001816200024b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b82805462000261906200049b565b90600052602060002090601f016020900481019282620002855760008555620002d1565b82601f10620002a057805160ff1916838001178555620002d1565b82800160010185558215620002d1579182015b82811115620002d0578251825591602001919060010190620002b3565b5b509050620002e09190620002e4565b5090565b5b80821115620002ff576000816000905550600101620002e5565b5090565b60006200031a62000314846200042f565b62000406565b9050828152602081018484840111156200033957620003386200056a565b5b6200034684828562000465565b509392505050565b600082601f83011262000366576200036562000565565b5b81516200037884826020860162000303565b91505092915050565b600080604083850312156200039b576200039a62000574565b5b600083015167ffffffffffffffff811115620003bc57620003bb6200056f565b5b620003ca858286016200034e565b925050602083015167ffffffffffffffff811115620003ee57620003ed6200056f565b5b620003fc858286016200034e565b9150509250929050565b60006200041262000425565b9050620004208282620004d1565b919050565b6000604051905090565b600067ffffffffffffffff8211156200044d576200044c62000536565b5b620004588262000579565b9050602081019050919050565b60005b838110156200048557808201518184015260208101905062000468565b8381111562000495576000848401525b50505050565b60006002820490506001821680620004b457607f821691505b60208210811415620004cb57620004ca62000507565b5b50919050565b620004dc8262000579565b810181811067ffffffffffffffff82111715620004fe57620004fd62000536565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6137c2806200059a6000396000f3fe6080604052600436106101445760003560e01c806356189236116100b6578063a22cb4651161006f578063a22cb465146104a7578063b88d4fde146104d0578063c87b56dd146104f9578063d539139314610536578063d547741f14610561578063e985e9c51461058a5761014b565b8063561892361461036f5780636352211e1461039a57806370a08231146103d757806391d148541461041457806395d89b4114610451578063a217fddf1461047c5761014b565b806323b872dd1161010857806323b872dd14610265578063248a9ca31461028e5780632f2ff15d146102cb57806336568abe146102f457806342842e0e1461031d57806355f804b3146103465761014b565b806301ffc9a71461015a57806306fdde0314610197578063081812fc146101c2578063095ea7b3146101ff5780631c351a9d146102285761014b565b3661014b57005b34801561015757600080fd5b50005b34801561016657600080fd5b50610181600480360381019061017c91906126b8565b6105c7565b60405161018e9190612bdb565b60405180910390f35b3480156101a357600080fd5b506101ac6105d9565b6040516101b99190612c11565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e491906127b7565b61066b565b6040516101f69190612b74565b60405180910390f35b34801561020b57600080fd5b506102266004803603810190610221919061260b565b6106b1565b005b34801561023457600080fd5b5061024f600480360381019061024a919061275b565b6107c9565b60405161025c9190612e13565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906124f5565b610886565b005b34801561029a57600080fd5b506102b560048036038101906102b0919061264b565b6108e6565b6040516102c29190612bf6565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190612678565b610906565b005b34801561030057600080fd5b5061031b60048036038101906103169190612678565b610927565b005b34801561032957600080fd5b50610344600480360381019061033f91906124f5565b6109aa565b005b34801561035257600080fd5b5061036d60048036038101906103689190612712565b6109ca565b005b34801561037b57600080fd5b506103846109e4565b6040516103919190612e13565b60405180910390f35b3480156103a657600080fd5b506103c160048036038101906103bc91906127b7565b6109f5565b6040516103ce9190612b74565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612488565b610aa7565b60405161040b9190612e13565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190612678565b610b5f565b6040516104489190612bdb565b60405180910390f35b34801561045d57600080fd5b50610466610bca565b6040516104739190612c11565b60405180910390f35b34801561048857600080fd5b50610491610c5c565b60405161049e9190612bf6565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c991906125cb565b610c63565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190612548565b610c79565b005b34801561050557600080fd5b50610520600480360381019061051b91906127b7565b610cdb565b60405161052d9190612c11565b60405180910390f35b34801561054257600080fd5b5061054b610dee565b6040516105589190612bf6565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190612678565b610e15565b005b34801561059657600080fd5b506105b160048036038101906105ac91906124b5565b610e36565b6040516105be9190612bdb565b60405180910390f35b60006105d282610eca565b9050919050565b6060600080546105e8906130f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610614906130f7565b80156106615780601f1061063657610100808354040283529160200191610661565b820191906000526020600020905b81548152906001019060200180831161064457829003601f168201915b5050505050905090565b600061067682610f44565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106bc826109f5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490612db3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661074c610f8f565b73ffffffffffffffffffffffffffffffffffffffff16148061077b575061077a81610775610f8f565b610e36565b5b6107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190612d53565b60405180910390fd5b6107c48383610f97565b505050565b6000806107f97f4d494e5445525f524f4c4500000000000000000000000000000000000000000060001b33610b5f565b8061080d575061080c6000801b33610b5f565b5b90508061084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084690612d33565b60405180910390fd5b600061085b6008611050565b9050610867848261105e565b610871818661107c565b61087b60086110f0565b809250505092915050565b610897610891610f8f565b82611106565b6108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90612dd3565b60405180910390fd5b6108e183838361119b565b505050565b600060076000838152602001908152602001600020600101549050919050565b61090f826108e6565b61091881611402565b6109228383611416565b505050565b61092f610f8f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099390612df3565b60405180910390fd5b6109a682826114f7565b5050565b6109c583838360405180602001604052806000815250610c79565b505050565b80600990805190602001906109e0929190612287565b5050565b60006109f06008611050565b905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9590612d93565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90612cf3565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060018054610bd9906130f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c05906130f7565b8015610c525780601f10610c2757610100808354040283529160200191610c52565b820191906000526020600020905b815481529060010190602001808311610c3557829003601f168201915b5050505050905090565b6000801b81565b610c75610c6e610f8f565b83836115d9565b5050565b610c8a610c84610f8f565b83611106565b610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090612dd3565b60405180910390fd5b610cd584848484611746565b50505050565b6060610ce682610f44565b6000600660008481526020019081526020016000208054610d06906130f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610d32906130f7565b8015610d7f5780601f10610d5457610100808354040283529160200191610d7f565b820191906000526020600020905b815481529060010190602001808311610d6257829003601f168201915b505050505090506000610d906117a2565b9050600081511415610da6578192505050610de9565b600082511115610ddb578082604051602001610dc3929190612b16565b60405160208183030381529060405292505050610de9565b610de484611834565b925050505b919050565b7f4d494e5445525f524f4c4500000000000000000000000000000000000000000060001b81565b610e1e826108e6565b610e2781611402565b610e3183836114f7565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f3d5750610f3c8261189c565b5b9050919050565b610f4d8161197e565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390612d93565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661100a836109f5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6110788282604051806020016040528060008152506119ea565b5050565b6110858261197e565b6110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bb90612d13565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906110eb929190612287565b505050565b6001816000016000828254019250508190555050565b600080611112836109f5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061115457506111538185610e36565b5b8061119257508373ffffffffffffffffffffffffffffffffffffffff1661117a8461066b565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111bb826109f5565b73ffffffffffffffffffffffffffffffffffffffff1614611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612c73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890612cb3565b60405180910390fd5b61128c838383611a45565b611297600082610f97565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112e79190612fd9565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461133e9190612ef8565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113fd838383611a4a565b505050565b6114138161140e610f8f565b611a4f565b50565b6114208282610b5f565b6114f35760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611498610f8f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6115018282610b5f565b156115d55760006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061157a610f8f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90612cd3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117399190612bdb565b60405180910390a3505050565b61175184848461119b565b61175d84848484611aec565b61179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390612c53565b60405180910390fd5b50505050565b6060600980546117b1906130f7565b80601f01602080910402602001604051908101604052809291908181526020018280546117dd906130f7565b801561182a5780601f106117ff5761010080835404028352916020019161182a565b820191906000526020600020905b81548152906001019060200180831161180d57829003601f168201915b5050505050905090565b606061183f82610f44565b60006118496117a2565b905060008151116118695760405180602001604052806000815250611894565b8061187384611c83565b604051602001611884929190612b16565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061196757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611977575061197682611de4565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6119f48383611e4e565b611a016000848484611aec565b611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790612c53565b60405180910390fd5b505050565b505050565b505050565b611a598282610b5f565b611ae857611a7e8173ffffffffffffffffffffffffffffffffffffffff166014612028565b611a8c8360001c6020612028565b604051602001611a9d929190612b3a565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf9190612c11565b60405180910390fd5b5050565b6000611b0d8473ffffffffffffffffffffffffffffffffffffffff16612264565b15611c76578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611b36610f8f565b8786866040518563ffffffff1660e01b8152600401611b589493929190612b8f565b602060405180830381600087803b158015611b7257600080fd5b505af1925050508015611ba357506040513d601f19601f82011682018060405250810190611ba091906126e5565b60015b611c26573d8060008114611bd3576040519150601f19603f3d011682016040523d82523d6000602084013e611bd8565b606091505b50600081511415611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590612c53565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611c7b565b600190505b949350505050565b60606000821415611ccb576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ddf565b600082905060005b60008214611cfd578080611ce69061315a565b915050600a82611cf69190612f4e565b9150611cd3565b60008167ffffffffffffffff811115611d1957611d18613290565b5b6040519080825280601f01601f191660200182016040528015611d4b5781602001600182028036833780820191505090505b5090505b60008514611dd857600182611d649190612fd9565b9150600a85611d7391906131a3565b6030611d7f9190612ef8565b60f81b818381518110611d9557611d94613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611dd19190612f4e565b9450611d4f565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb590612d73565b60405180910390fd5b611ec78161197e565b15611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90612c93565b60405180910390fd5b611f1360008383611a45565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f639190612ef8565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461202460008383611a4a565b5050565b60606000600283600261203b9190612f7f565b6120459190612ef8565b67ffffffffffffffff81111561205e5761205d613290565b5b6040519080825280601f01601f1916602001820160405280156120905781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106120c8576120c7613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061212c5761212b613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261216c9190612f7f565b6121769190612ef8565b90505b6001811115612216577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106121b8576121b7613261565b5b1a60f81b8282815181106121cf576121ce613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061220f906130cd565b9050612179565b506000841461225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225190612c33565b60405180910390fd5b8091505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612293906130f7565b90600052602060002090601f0160209004810192826122b557600085556122fc565b82601f106122ce57805160ff19168380011785556122fc565b828001600101855582156122fc579182015b828111156122fb5782518255916020019190600101906122e0565b5b509050612309919061230d565b5090565b5b8082111561232657600081600090555060010161230e565b5090565b600061233d61233884612e53565b612e2e565b905082815260208101848484011115612359576123586132c4565b5b61236484828561308b565b509392505050565b600061237f61237a84612e84565b612e2e565b90508281526020810184848401111561239b5761239a6132c4565b5b6123a684828561308b565b509392505050565b6000813590506123bd81613719565b92915050565b6000813590506123d281613730565b92915050565b6000813590506123e781613747565b92915050565b6000813590506123fc8161375e565b92915050565b6000815190506124118161375e565b92915050565b600082601f83011261242c5761242b6132bf565b5b813561243c84826020860161232a565b91505092915050565b600082601f83011261245a576124596132bf565b5b813561246a84826020860161236c565b91505092915050565b60008135905061248281613775565b92915050565b60006020828403121561249e5761249d6132ce565b5b60006124ac848285016123ae565b91505092915050565b600080604083850312156124cc576124cb6132ce565b5b60006124da858286016123ae565b92505060206124eb858286016123ae565b9150509250929050565b60008060006060848603121561250e5761250d6132ce565b5b600061251c868287016123ae565b935050602061252d868287016123ae565b925050604061253e86828701612473565b9150509250925092565b60008060008060808587031215612562576125616132ce565b5b6000612570878288016123ae565b9450506020612581878288016123ae565b935050604061259287828801612473565b925050606085013567ffffffffffffffff8111156125b3576125b26132c9565b5b6125bf87828801612417565b91505092959194509250565b600080604083850312156125e2576125e16132ce565b5b60006125f0858286016123ae565b9250506020612601858286016123c3565b9150509250929050565b60008060408385031215612622576126216132ce565b5b6000612630858286016123ae565b925050602061264185828601612473565b9150509250929050565b600060208284031215612661576126606132ce565b5b600061266f848285016123d8565b91505092915050565b6000806040838503121561268f5761268e6132ce565b5b600061269d858286016123d8565b92505060206126ae858286016123ae565b9150509250929050565b6000602082840312156126ce576126cd6132ce565b5b60006126dc848285016123ed565b91505092915050565b6000602082840312156126fb576126fa6132ce565b5b600061270984828501612402565b91505092915050565b600060208284031215612728576127276132ce565b5b600082013567ffffffffffffffff811115612746576127456132c9565b5b61275284828501612445565b91505092915050565b60008060408385031215612772576127716132ce565b5b600083013567ffffffffffffffff8111156127905761278f6132c9565b5b61279c85828601612445565b92505060206127ad858286016123ae565b9150509250929050565b6000602082840312156127cd576127cc6132ce565b5b60006127db84828501612473565b91505092915050565b6127ed8161300d565b82525050565b6127fc8161301f565b82525050565b61280b8161302b565b82525050565b600061281c82612eb5565b6128268185612ecb565b935061283681856020860161309a565b61283f816132d3565b840191505092915050565b600061285582612ec0565b61285f8185612edc565b935061286f81856020860161309a565b612878816132d3565b840191505092915050565b600061288e82612ec0565b6128988185612eed565b93506128a881856020860161309a565b80840191505092915050565b60006128c1602083612edc565b91506128cc826132e4565b602082019050919050565b60006128e4603283612edc565b91506128ef8261330d565b604082019050919050565b6000612907602583612edc565b91506129128261335c565b604082019050919050565b600061292a601c83612edc565b9150612935826133ab565b602082019050919050565b600061294d602483612edc565b9150612958826133d4565b604082019050919050565b6000612970601983612edc565b915061297b82613423565b602082019050919050565b6000612993602983612edc565b915061299e8261344c565b604082019050919050565b60006129b6602e83612edc565b91506129c18261349b565b604082019050919050565b60006129d9602183612edc565b91506129e4826134ea565b604082019050919050565b60006129fc603e83612edc565b9150612a0782613539565b604082019050919050565b6000612a1f602083612edc565b9150612a2a82613588565b602082019050919050565b6000612a42601883612edc565b9150612a4d826135b1565b602082019050919050565b6000612a65602183612edc565b9150612a70826135da565b604082019050919050565b6000612a88601783612eed565b9150612a9382613629565b601782019050919050565b6000612aab602e83612edc565b9150612ab682613652565b604082019050919050565b6000612ace601183612eed565b9150612ad9826136a1565b601182019050919050565b6000612af1602f83612edc565b9150612afc826136ca565b604082019050919050565b612b1081613081565b82525050565b6000612b228285612883565b9150612b2e8284612883565b91508190509392505050565b6000612b4582612a7b565b9150612b518285612883565b9150612b5c82612ac1565b9150612b688284612883565b91508190509392505050565b6000602082019050612b8960008301846127e4565b92915050565b6000608082019050612ba460008301876127e4565b612bb160208301866127e4565b612bbe6040830185612b07565b8181036060830152612bd08184612811565b905095945050505050565b6000602082019050612bf060008301846127f3565b92915050565b6000602082019050612c0b6000830184612802565b92915050565b60006020820190508181036000830152612c2b818461284a565b905092915050565b60006020820190508181036000830152612c4c816128b4565b9050919050565b60006020820190508181036000830152612c6c816128d7565b9050919050565b60006020820190508181036000830152612c8c816128fa565b9050919050565b60006020820190508181036000830152612cac8161291d565b9050919050565b60006020820190508181036000830152612ccc81612940565b9050919050565b60006020820190508181036000830152612cec81612963565b9050919050565b60006020820190508181036000830152612d0c81612986565b9050919050565b60006020820190508181036000830152612d2c816129a9565b9050919050565b60006020820190508181036000830152612d4c816129cc565b9050919050565b60006020820190508181036000830152612d6c816129ef565b9050919050565b60006020820190508181036000830152612d8c81612a12565b9050919050565b60006020820190508181036000830152612dac81612a35565b9050919050565b60006020820190508181036000830152612dcc81612a58565b9050919050565b60006020820190508181036000830152612dec81612a9e565b9050919050565b60006020820190508181036000830152612e0c81612ae4565b9050919050565b6000602082019050612e286000830184612b07565b92915050565b6000612e38612e49565b9050612e448282613129565b919050565b6000604051905090565b600067ffffffffffffffff821115612e6e57612e6d613290565b5b612e77826132d3565b9050602081019050919050565b600067ffffffffffffffff821115612e9f57612e9e613290565b5b612ea8826132d3565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612f0382613081565b9150612f0e83613081565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f4357612f426131d4565b5b828201905092915050565b6000612f5982613081565b9150612f6483613081565b925082612f7457612f73613203565b5b828204905092915050565b6000612f8a82613081565b9150612f9583613081565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fce57612fcd6131d4565b5b828202905092915050565b6000612fe482613081565b9150612fef83613081565b925082821015613002576130016131d4565b5b828203905092915050565b600061301882613061565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156130b857808201518184015260208101905061309d565b838111156130c7576000848401525b50505050565b60006130d882613081565b915060008214156130ec576130eb6131d4565b5b600182039050919050565b6000600282049050600182168061310f57607f821691505b6020821081141561312357613122613232565b5b50919050565b613132826132d3565b810181811067ffffffffffffffff8211171561315157613150613290565b5b80604052505050565b600061316582613081565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613198576131976131d4565b5b600182019050919050565b60006131ae82613081565b91506131b983613081565b9250826131c9576131c8613203565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f43616c6c657220686173206e6f207065726d697373696f6e20746f206d696e7460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6137228161300d565b811461372d57600080fd5b50565b6137398161301f565b811461374457600080fd5b50565b6137508161302b565b811461375b57600080fd5b50565b61376781613035565b811461377257600080fd5b50565b61377e81613081565b811461378957600080fd5b5056fea264697066735822122017982baaff5cc94827a48a093a6507a722d7ca8958db72f9fa5f7421f9ffb09a64736f6c63430008070033",
"deployedBytecode": "0x6080604052600436106101445760003560e01c806356189236116100b6578063a22cb4651161006f578063a22cb465146104a7578063b88d4fde146104d0578063c87b56dd146104f9578063d539139314610536578063d547741f14610561578063e985e9c51461058a5761014b565b8063561892361461036f5780636352211e1461039a57806370a08231146103d757806391d148541461041457806395d89b4114610451578063a217fddf1461047c5761014b565b806323b872dd1161010857806323b872dd14610265578063248a9ca31461028e5780632f2ff15d146102cb57806336568abe146102f457806342842e0e1461031d57806355f804b3146103465761014b565b806301ffc9a71461015a57806306fdde0314610197578063081812fc146101c2578063095ea7b3146101ff5780631c351a9d146102285761014b565b3661014b57005b34801561015757600080fd5b50005b34801561016657600080fd5b50610181600480360381019061017c91906126b8565b6105c7565b60405161018e9190612bdb565b60405180910390f35b3480156101a357600080fd5b506101ac6105d9565b6040516101b99190612c11565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e491906127b7565b61066b565b6040516101f69190612b74565b60405180910390f35b34801561020b57600080fd5b506102266004803603810190610221919061260b565b6106b1565b005b34801561023457600080fd5b5061024f600480360381019061024a919061275b565b6107c9565b60405161025c9190612e13565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906124f5565b610886565b005b34801561029a57600080fd5b506102b560048036038101906102b0919061264b565b6108e6565b6040516102c29190612bf6565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed9190612678565b610906565b005b34801561030057600080fd5b5061031b60048036038101906103169190612678565b610927565b005b34801561032957600080fd5b50610344600480360381019061033f91906124f5565b6109aa565b005b34801561035257600080fd5b5061036d60048036038101906103689190612712565b6109ca565b005b34801561037b57600080fd5b506103846109e4565b6040516103919190612e13565b60405180910390f35b3480156103a657600080fd5b506103c160048036038101906103bc91906127b7565b6109f5565b6040516103ce9190612b74565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612488565b610aa7565b60405161040b9190612e13565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190612678565b610b5f565b6040516104489190612bdb565b60405180910390f35b34801561045d57600080fd5b50610466610bca565b6040516104739190612c11565b60405180910390f35b34801561048857600080fd5b50610491610c5c565b60405161049e9190612bf6565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c991906125cb565b610c63565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190612548565b610c79565b005b34801561050557600080fd5b50610520600480360381019061051b91906127b7565b610cdb565b60405161052d9190612c11565b60405180910390f35b34801561054257600080fd5b5061054b610dee565b6040516105589190612bf6565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190612678565b610e15565b005b34801561059657600080fd5b506105b160048036038101906105ac91906124b5565b610e36565b6040516105be9190612bdb565b60405180910390f35b60006105d282610eca565b9050919050565b6060600080546105e8906130f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610614906130f7565b80156106615780601f1061063657610100808354040283529160200191610661565b820191906000526020600020905b81548152906001019060200180831161064457829003601f168201915b5050505050905090565b600061067682610f44565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106bc826109f5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490612db3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661074c610f8f565b73ffffffffffffffffffffffffffffffffffffffff16148061077b575061077a81610775610f8f565b610e36565b5b6107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190612d53565b60405180910390fd5b6107c48383610f97565b505050565b6000806107f97f4d494e5445525f524f4c4500000000000000000000000000000000000000000060001b33610b5f565b8061080d575061080c6000801b33610b5f565b5b90508061084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084690612d33565b60405180910390fd5b600061085b6008611050565b9050610867848261105e565b610871818661107c565b61087b60086110f0565b809250505092915050565b610897610891610f8f565b82611106565b6108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90612dd3565b60405180910390fd5b6108e183838361119b565b505050565b600060076000838152602001908152602001600020600101549050919050565b61090f826108e6565b61091881611402565b6109228383611416565b505050565b61092f610f8f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099390612df3565b60405180910390fd5b6109a682826114f7565b5050565b6109c583838360405180602001604052806000815250610c79565b505050565b80600990805190602001906109e0929190612287565b5050565b60006109f06008611050565b905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9590612d93565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90612cf3565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060018054610bd9906130f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c05906130f7565b8015610c525780601f10610c2757610100808354040283529160200191610c52565b820191906000526020600020905b815481529060010190602001808311610c3557829003601f168201915b5050505050905090565b6000801b81565b610c75610c6e610f8f565b83836115d9565b5050565b610c8a610c84610f8f565b83611106565b610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090612dd3565b60405180910390fd5b610cd584848484611746565b50505050565b6060610ce682610f44565b6000600660008481526020019081526020016000208054610d06906130f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610d32906130f7565b8015610d7f5780601f10610d5457610100808354040283529160200191610d7f565b820191906000526020600020905b815481529060010190602001808311610d6257829003601f168201915b505050505090506000610d906117a2565b9050600081511415610da6578192505050610de9565b600082511115610ddb578082604051602001610dc3929190612b16565b60405160208183030381529060405292505050610de9565b610de484611834565b925050505b919050565b7f4d494e5445525f524f4c4500000000000000000000000000000000000000000060001b81565b610e1e826108e6565b610e2781611402565b610e3183836114f7565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f3d5750610f3c8261189c565b5b9050919050565b610f4d8161197e565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390612d93565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661100a836109f5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6110788282604051806020016040528060008152506119ea565b5050565b6110858261197e565b6110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bb90612d13565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906110eb929190612287565b505050565b6001816000016000828254019250508190555050565b600080611112836109f5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061115457506111538185610e36565b5b8061119257508373ffffffffffffffffffffffffffffffffffffffff1661117a8461066b565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111bb826109f5565b73ffffffffffffffffffffffffffffffffffffffff1614611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612c73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890612cb3565b60405180910390fd5b61128c838383611a45565b611297600082610f97565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112e79190612fd9565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461133e9190612ef8565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113fd838383611a4a565b505050565b6114138161140e610f8f565b611a4f565b50565b6114208282610b5f565b6114f35760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611498610f8f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6115018282610b5f565b156115d55760006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061157a610f8f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90612cd3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117399190612bdb565b60405180910390a3505050565b61175184848461119b565b61175d84848484611aec565b61179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179390612c53565b60405180910390fd5b50505050565b6060600980546117b1906130f7565b80601f01602080910402602001604051908101604052809291908181526020018280546117dd906130f7565b801561182a5780601f106117ff5761010080835404028352916020019161182a565b820191906000526020600020905b81548152906001019060200180831161180d57829003601f168201915b5050505050905090565b606061183f82610f44565b60006118496117a2565b905060008151116118695760405180602001604052806000815250611894565b8061187384611c83565b604051602001611884929190612b16565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061196757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611977575061197682611de4565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6119f48383611e4e565b611a016000848484611aec565b611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790612c53565b60405180910390fd5b505050565b505050565b505050565b611a598282610b5f565b611ae857611a7e8173ffffffffffffffffffffffffffffffffffffffff166014612028565b611a8c8360001c6020612028565b604051602001611a9d929190612b3a565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf9190612c11565b60405180910390fd5b5050565b6000611b0d8473ffffffffffffffffffffffffffffffffffffffff16612264565b15611c76578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611b36610f8f565b8786866040518563ffffffff1660e01b8152600401611b589493929190612b8f565b602060405180830381600087803b158015611b7257600080fd5b505af1925050508015611ba357506040513d601f19601f82011682018060405250810190611ba091906126e5565b60015b611c26573d8060008114611bd3576040519150601f19603f3d011682016040523d82523d6000602084013e611bd8565b606091505b50600081511415611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590612c53565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611c7b565b600190505b949350505050565b60606000821415611ccb576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ddf565b600082905060005b60008214611cfd578080611ce69061315a565b915050600a82611cf69190612f4e565b9150611cd3565b60008167ffffffffffffffff811115611d1957611d18613290565b5b6040519080825280601f01601f191660200182016040528015611d4b5781602001600182028036833780820191505090505b5090505b60008514611dd857600182611d649190612fd9565b9150600a85611d7391906131a3565b6030611d7f9190612ef8565b60f81b818381518110611d9557611d94613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611dd19190612f4e565b9450611d4f565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb590612d73565b60405180910390fd5b611ec78161197e565b15611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90612c93565b60405180910390fd5b611f1360008383611a45565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f639190612ef8565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461202460008383611a4a565b5050565b60606000600283600261203b9190612f7f565b6120459190612ef8565b67ffffffffffffffff81111561205e5761205d613290565b5b6040519080825280601f01601f1916602001820160405280156120905781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106120c8576120c7613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061212c5761212b613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261216c9190612f7f565b6121769190612ef8565b90505b6001811115612216577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106121b8576121b7613261565b5b1a60f81b8282815181106121cf576121ce613261565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061220f906130cd565b9050612179565b506000841461225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225190612c33565b60405180910390fd5b8091505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612293906130f7565b90600052602060002090601f0160209004810192826122b557600085556122fc565b82601f106122ce57805160ff19168380011785556122fc565b828001600101855582156122fc579182015b828111156122fb5782518255916020019190600101906122e0565b5b509050612309919061230d565b5090565b5b8082111561232657600081600090555060010161230e565b5090565b600061233d61233884612e53565b612e2e565b905082815260208101848484011115612359576123586132c4565b5b61236484828561308b565b509392505050565b600061237f61237a84612e84565b612e2e565b90508281526020810184848401111561239b5761239a6132c4565b5b6123a684828561308b565b509392505050565b6000813590506123bd81613719565b92915050565b6000813590506123d281613730565b92915050565b6000813590506123e781613747565b92915050565b6000813590506123fc8161375e565b92915050565b6000815190506124118161375e565b92915050565b600082601f83011261242c5761242b6132bf565b5b813561243c84826020860161232a565b91505092915050565b600082601f83011261245a576124596132bf565b5b813561246a84826020860161236c565b91505092915050565b60008135905061248281613775565b92915050565b60006020828403121561249e5761249d6132ce565b5b60006124ac848285016123ae565b91505092915050565b600080604083850312156124cc576124cb6132ce565b5b60006124da858286016123ae565b92505060206124eb858286016123ae565b9150509250929050565b60008060006060848603121561250e5761250d6132ce565b5b600061251c868287016123ae565b935050602061252d868287016123ae565b925050604061253e86828701612473565b9150509250925092565b60008060008060808587031215612562576125616132ce565b5b6000612570878288016123ae565b9450506020612581878288016123ae565b935050604061259287828801612473565b925050606085013567ffffffffffffffff8111156125b3576125b26132c9565b5b6125bf87828801612417565b91505092959194509250565b600080604083850312156125e2576125e16132ce565b5b60006125f0858286016123ae565b9250506020612601858286016123c3565b9150509250929050565b60008060408385031215612622576126216132ce565b5b6000612630858286016123ae565b925050602061264185828601612473565b9150509250929050565b600060208284031215612661576126606132ce565b5b600061266f848285016123d8565b91505092915050565b6000806040838503121561268f5761268e6132ce565b5b600061269d858286016123d8565b92505060206126ae858286016123ae565b9150509250929050565b6000602082840312156126ce576126cd6132ce565b5b60006126dc848285016123ed565b91505092915050565b6000602082840312156126fb576126fa6132ce565b5b600061270984828501612402565b91505092915050565b600060208284031215612728576127276132ce565b5b600082013567ffffffffffffffff811115612746576127456132c9565b5b61275284828501612445565b91505092915050565b60008060408385031215612772576127716132ce565b5b600083013567ffffffffffffffff8111156127905761278f6132c9565b5b61279c85828601612445565b92505060206127ad858286016123ae565b9150509250929050565b6000602082840312156127cd576127cc6132ce565b5b60006127db84828501612473565b91505092915050565b6127ed8161300d565b82525050565b6127fc8161301f565b82525050565b61280b8161302b565b82525050565b600061281c82612eb5565b6128268185612ecb565b935061283681856020860161309a565b61283f816132d3565b840191505092915050565b600061285582612ec0565b61285f8185612edc565b935061286f81856020860161309a565b612878816132d3565b840191505092915050565b600061288e82612ec0565b6128988185612eed565b93506128a881856020860161309a565b80840191505092915050565b60006128c1602083612edc565b91506128cc826132e4565b602082019050919050565b60006128e4603283612edc565b91506128ef8261330d565b604082019050919050565b6000612907602583612edc565b91506129128261335c565b604082019050919050565b600061292a601c83612edc565b9150612935826133ab565b602082019050919050565b600061294d602483612edc565b9150612958826133d4565b604082019050919050565b6000612970601983612edc565b915061297b82613423565b602082019050919050565b6000612993602983612edc565b915061299e8261344c565b604082019050919050565b60006129b6602e83612edc565b91506129c18261349b565b604082019050919050565b60006129d9602183612edc565b91506129e4826134ea565b604082019050919050565b60006129fc603e83612edc565b9150612a0782613539565b604082019050919050565b6000612a1f602083612edc565b9150612a2a82613588565b602082019050919050565b6000612a42601883612edc565b9150612a4d826135b1565b602082019050919050565b6000612a65602183612edc565b9150612a70826135da565b604082019050919050565b6000612a88601783612eed565b9150612a9382613629565b601782019050919050565b6000612aab602e83612edc565b9150612ab682613652565b604082019050919050565b6000612ace601183612eed565b9150612ad9826136a1565b601182019050919050565b6000612af1602f83612edc565b9150612afc826136ca565b604082019050919050565b612b1081613081565b82525050565b6000612b228285612883565b9150612b2e8284612883565b91508190509392505050565b6000612b4582612a7b565b9150612b518285612883565b9150612b5c82612ac1565b9150612b688284612883565b91508190509392505050565b6000602082019050612b8960008301846127e4565b92915050565b6000608082019050612ba460008301876127e4565b612bb160208301866127e4565b612bbe6040830185612b07565b8181036060830152612bd08184612811565b905095945050505050565b6000602082019050612bf060008301846127f3565b92915050565b6000602082019050612c0b6000830184612802565b92915050565b60006020820190508181036000830152612c2b818461284a565b905092915050565b60006020820190508181036000830152612c4c816128b4565b9050919050565b60006020820190508181036000830152612c6c816128d7565b9050919050565b60006020820190508181036000830152612c8c816128fa565b9050919050565b60006020820190508181036000830152612cac8161291d565b9050919050565b60006020820190508181036000830152612ccc81612940565b9050919050565b60006020820190508181036000830152612cec81612963565b9050919050565b60006020820190508181036000830152612d0c81612986565b9050919050565b60006020820190508181036000830152612d2c816129a9565b9050919050565b60006020820190508181036000830152612d4c816129cc565b9050919050565b60006020820190508181036000830152612d6c816129ef565b9050919050565b60006020820190508181036000830152612d8c81612a12565b9050919050565b60006020820190508181036000830152612dac81612a35565b9050919050565b60006020820190508181036000830152612dcc81612a58565b9050919050565b60006020820190508181036000830152612dec81612a9e565b9050919050565b60006020820190508181036000830152612e0c81612ae4565b9050919050565b6000602082019050612e286000830184612b07565b92915050565b6000612e38612e49565b9050612e448282613129565b919050565b6000604051905090565b600067ffffffffffffffff821115612e6e57612e6d613290565b5b612e77826132d3565b9050602081019050919050565b600067ffffffffffffffff821115612e9f57612e9e613290565b5b612ea8826132d3565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612f0382613081565b9150612f0e83613081565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f4357612f426131d4565b5b828201905092915050565b6000612f5982613081565b9150612f6483613081565b925082612f7457612f73613203565b5b828204905092915050565b6000612f8a82613081565b9150612f9583613081565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fce57612fcd6131d4565b5b828202905092915050565b6000612fe482613081565b9150612fef83613081565b925082821015613002576130016131d4565b5b828203905092915050565b600061301882613061565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156130b857808201518184015260208101905061309d565b838111156130c7576000848401525b50505050565b60006130d882613081565b915060008214156130ec576130eb6131d4565b5b600182039050919050565b6000600282049050600182168061310f57607f821691505b6020821081141561312357613122613232565b5b50919050565b613132826132d3565b810181811067ffffffffffffffff8211171561315157613150613290565b5b80604052505050565b600061316582613081565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613198576131976131d4565b5b600182019050919050565b60006131ae82613081565b91506131b983613081565b9250826131c9576131c8613203565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f43616c6c657220686173206e6f207065726d697373696f6e20746f206d696e7460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6137228161300d565b811461372d57600080fd5b50565b6137398161301f565b811461374457600080fd5b50565b6137508161302b565b811461375b57600080fd5b50565b61376781613035565b811461377257600080fd5b50565b61377e81613081565b811461378957600080fd5b5056fea264697066735822122017982baaff5cc94827a48a093a6507a722d7ca8958db72f9fa5f7421f9ffb09a64736f6c63430008070033",
"linkReferences": {},
"deployedLinkReferences": {}
}