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

601 lines
68 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"
},
{
"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"
}
],
"name": "mintNFT",
"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"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162003a6238038062003a62833981810160405281019062000037919062000381565b818181600090805190602001906200005192919062000253565b5080600190805190602001906200006a92919062000253565b5050506040518060400160405280601d81526020017f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525060099080519060200190620000ba92919062000253565b50620000d06000801b33620000d860201b60201c565b50506200058a565b620000ea8282620000ee60201b60201c565b5050565b620001008282620001e060201b60201c565b620001dc5760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001816200024b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b82805462000261906200049b565b90600052602060002090601f016020900481019282620002855760008555620002d1565b82601f10620002a057805160ff1916838001178555620002d1565b82800160010185558215620002d1579182015b82811115620002d0578251825591602001919060010190620002b3565b5b509050620002e09190620002e4565b5090565b5b80821115620002ff576000816000905550600101620002e5565b5090565b60006200031a62000314846200042f565b62000406565b9050828152602081018484840111156200033957620003386200056a565b5b6200034684828562000465565b509392505050565b600082601f83011262000366576200036562000565565b5b81516200037884826020860162000303565b91505092915050565b600080604083850312156200039b576200039a62000574565b5b600083015167ffffffffffffffff811115620003bc57620003bb6200056f565b5b620003ca858286016200034e565b925050602083015167ffffffffffffffff811115620003ee57620003ed6200056f565b5b620003fc858286016200034e565b9150509250929050565b60006200041262000425565b9050620004208282620004d1565b919050565b6000604051905090565b600067ffffffffffffffff8211156200044d576200044c62000536565b5b620004588262000579565b9050602081019050919050565b60005b838110156200048557808201518184015260208101905062000468565b8381111562000495576000848401525b50505050565b60006002820490506001821680620004b457607f821691505b60208210811415620004cb57620004ca62000507565b5b50919050565b620004dc8262000579565b810181811067ffffffffffffffff82111715620004fe57620004fd62000536565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6134c8806200059a6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636352211e116100c3578063b88d4fde1161007c578063b88d4fde146103ae578063c87b56dd146103ca578063d5391393146103fa578063d547741f14610418578063e985e9c514610434578063fb37e883146104645761014d565b80636352211e146102c657806370a08231146102f657806391d148541461032657806395d89b4114610356578063a217fddf14610374578063a22cb465146103925761014d565b8063248a9ca311610115578063248a9ca3146102085780632f2ff15d1461023857806336568abe1461025457806342842e0e1461027057806355f804b31461028c57806356189236146102a85761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806323b872dd146101ec575b600080fd5b61016c600480360381019061016791906124ac565b610494565b6040516101799190612950565b60405180910390f35b61018a6104a6565b6040516101979190612986565b60405180910390f35b6101ba60048036038101906101b5919061254f565b610538565b6040516101c791906128e9565b60405180910390f35b6101ea60048036038101906101e591906123ff565b61057e565b005b610206600480360381019061020191906122e9565b610696565b005b610222600480360381019061021d919061243f565b6106f6565b60405161022f919061296b565b60405180910390f35b610252600480360381019061024d919061246c565b610716565b005b61026e6004803603810190610269919061246c565b610737565b005b61028a600480360381019061028591906122e9565b6107ba565b005b6102a660048036038101906102a19190612506565b6107da565b005b6102b06107f4565b6040516102bd9190612b68565b60405180910390f35b6102e060048036038101906102db919061254f565b610805565b6040516102ed91906128e9565b60405180910390f35b610310600480360381019061030b919061227c565b6108b7565b60405161031d9190612b68565b60405180910390f35b610340600480360381019061033b919061246c565b61096f565b60405161034d9190612950565b60405180910390f35b61035e6109da565b60405161036b9190612986565b60405180910390f35b61037c610a6c565b604051610389919061296b565b60405180910390f35b6103ac60048036038101906103a791906123bf565b610a73565b005b6103c860048036038101906103c3919061233c565b610a89565b005b6103e460048036038101906103df919061254f565b610aeb565b6040516103f19190612986565b60405180910390f35b610402610bfe565b60405161040f919061296b565b60405180910390f35b610432600480360381019061042d919061246c565b610c22565b005b61044e600480360381019061044991906122a9565b610c43565b60405161045b9190612950565b60405180910390f35b61047e60048036038101906104799190612506565b610cd7565b60405161048b9190612b68565b60405180910390f35b600061049f82610d39565b9050919050565b6060600080546104b590612e4c565b80601f01602080910402602001604051908101604052809291908181526020018280546104e190612e4c565b801561052e5780601f106105035761010080835404028352916020019161052e565b820191906000526020600020905b81548152906001019060200180831161051157829003601f168201915b5050505050905090565b600061054382610db3565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058982610805565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f190612b08565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610619610dfe565b73ffffffffffffffffffffffffffffffffffffffff161480610648575061064781610642610dfe565b610c43565b5b610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90612aa8565b60405180910390fd5b6106918383610e06565b505050565b6106a76106a1610dfe565b82610ebf565b6106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90612b28565b60405180910390fd5b6106f1838383610f54565b505050565b600060076000838152602001908152602001600020600101549050919050565b61071f826106f6565b610728816111bb565b61073283836111cf565b505050565b61073f610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612b48565b60405180910390fd5b6107b682826112b0565b5050565b6107d583838360405180602001604052806000815250610a89565b505050565b80600990805190602001906107f092919061207b565b5050565b60006108006008611392565b905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a590612ae8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091f90612a68565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600180546109e990612e4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1590612e4c565b8015610a625780601f10610a3757610100808354040283529160200191610a62565b820191906000526020600020905b815481529060010190602001808311610a4557829003601f168201915b5050505050905090565b6000801b81565b610a85610a7e610dfe565b83836113a0565b5050565b610a9a610a94610dfe565b83610ebf565b610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090612b28565b60405180910390fd5b610ae58484848461150d565b50505050565b6060610af682610db3565b6000600660008481526020019081526020016000208054610b1690612e4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4290612e4c565b8015610b8f5780601f10610b6457610100808354040283529160200191610b8f565b820191906000526020600020905b815481529060010190602001808311610b7257829003601f168201915b505050505090506000610ba0611569565b9050600081511415610bb6578192505050610bf9565b600082511115610beb578082604051602001610bd392919061288b565b60405160208183030381529060405292505050610bf9565b610bf484611580565b925050505b919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610c2b826106f6565b610c34816111bb565b610c3e83836112b0565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d03816111bb565b6000610d0f6008611392565b9050610d1b33826115e8565b610d258185611606565b610d2f600861167a565b8092505050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610dac5750610dab82611690565b5b9050919050565b610dbc81611772565b610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290612ae8565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610e7983610805565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ecb83610805565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f0d5750610f0c8185610c43565b5b80610f4b57508373ffffffffffffffffffffffffffffffffffffffff16610f3384610538565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610f7482610805565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc1906129e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190612a28565b60405180910390fd5b6110458383836117de565b611050600082610e06565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a09190612d2e565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f79190612c4d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111b68383836117e3565b505050565b6111cc816111c7610dfe565b6117e8565b50565b6111d9828261096f565b6112ac5760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611251610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112ba828261096f565b1561138e5760006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611333610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612a48565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115009190612950565b60405180910390a3505050565b611518848484610f54565b61152484848484611885565b611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906129c8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061158b82610db3565b6000611595611569565b905060008151116115b557604051806020016040528060008152506115e0565b806115bf84611a1c565b6040516020016115d092919061288b565b6040516020818303038152906040525b915050919050565b611602828260405180602001604052806000815250611b7d565b5050565b61160f82611772565b61164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590612a88565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061167592919061207b565b505050565b6001816000016000828254019250508190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061175b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061176b575061176a82611bd8565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6117f2828261096f565b611881576118178173ffffffffffffffffffffffffffffffffffffffff166014611c42565b6118258360001c6020611c42565b6040516020016118369291906128af565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118789190612986565b60405180910390fd5b5050565b60006118a68473ffffffffffffffffffffffffffffffffffffffff16611e7e565b15611a0f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118cf610dfe565b8786866040518563ffffffff1660e01b81526004016118f19493929190612904565b602060405180830381600087803b15801561190b57600080fd5b505af192505050801561193c57506040513d601f19601f8201168201806040525081019061193991906124d9565b60015b6119bf573d806000811461196c576040519150601f19603f3d011682016040523d82523d6000602084013e611971565b606091505b506000815114156119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae906129c8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611a14565b600190505b949350505050565b60606000821415611a64576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611b78565b600082905060005b60008214611a96578080611a7f90612eaf565b915050600a82611a8f9190612ca3565b9150611a6c565b60008167ffffffffffffffff811115611ab257611ab1612fe5565b5b6040519080825280601f01601f191660200182016040528015611ae45781602001600182028036833780820191505090505b5090505b60008514611b7157600182611afd9190612d2e565b9150600a85611b0c9190612ef8565b6030611b189190612c4d565b60f81b818381518110611b2e57611b2d612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b6a9190612ca3565b9450611ae8565b8093505050505b919050565b611b878383611ea1565b611b946000848484611885565b611bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bca906129c8565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611c559190612cd4565b611c5f9190612c4d565b67ffffffffffffffff811115611c7857611c77612fe5565b5b6040519080825280601f01601f191660200182016040528015611caa5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611ce257611ce1612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611d4657611d45612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611d869190612cd4565b611d909190612c4d565b90505b6001811115611e30577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611dd257611dd1612fb6565b5b1a60f81b828281518110611de957611de8612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611e2990612e22565b9050611d93565b5060008414611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b906129a8565b60405180910390fd5b8091505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890612ac8565b60405180910390fd5b611f1a81611772565b15611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5190612a08565b60405180910390fd5b611f66600083836117de565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fb69190612c4d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612077600083836117e3565b5050565b82805461208790612e4c565b90600052602060002090601f0160209004810192826120a957600085556120f0565b82601f106120c257805160ff19168380011785556120f0565b828001600101855582156120f0579182015b828111156120ef5782518255916020019190600101906120d4565b5b5090506120fd9190612101565b5090565b5b8082111561211a576000816000905550600101612102565b5090565b600061213161212c84612ba8565b612b83565b90508281526020810184848401111561214d5761214c613019565b5b612158848285612de0565b509392505050565b600061217361216e84612bd9565b612b83565b90508281526020810184848401111561218f5761218e613019565b5b61219a848285612de0565b509392505050565b6000813590506121b18161341f565b92915050565b6000813590506121c681613436565b92915050565b6000813590506121db8161344d565b92915050565b6000813590506121f081613464565b92915050565b60008151905061220581613464565b92915050565b600082601f8301126122205761221f613014565b5b813561223084826020860161211e565b91505092915050565b600082601f83011261224e5761224d613014565b5b813561225e848260208601612160565b91505092915050565b6000813590506122768161347b565b92915050565b60006020828403121561229257612291613023565b5b60006122a0848285016121a2565b91505092915050565b600080604083850312156122c0576122bf613023565b5b60006122ce858286016121a2565b92505060206122df858286016121a2565b9150509250929050565b60008060006060848603121561230257612301613023565b5b6000612310868287016121a2565b9350506020612321868287016121a2565b925050604061233286828701612267565b9150509250925092565b6000806000806080858703121561235657612355613023565b5b6000612364878288016121a2565b9450506020612375878288016121a2565b935050604061238687828801612267565b925050606085013567ffffffffffffffff8111156123a7576123a661301e565b5b6123b38782880161220b565b91505092959194509250565b600080604083850312156123d6576123d5613023565b5b60006123e4858286016121a2565b92505060206123f5858286016121b7565b9150509250929050565b6000806040838503121561241657612415613023565b5b6000612424858286016121a2565b925050602061243585828601612267565b9150509250929050565b60006020828403121561245557612454613023565b5b6000612463848285016121cc565b91505092915050565b6000806040838503121561248357612482613023565b5b6000612491858286016121cc565b92505060206124a2858286016121a2565b9150509250929050565b6000602082840312156124c2576124c1613023565b5b60006124d0848285016121e1565b91505092915050565b6000602082840312156124ef576124ee613023565b5b60006124fd848285016121f6565b91505092915050565b60006020828403121561251c5761251b613023565b5b600082013567ffffffffffffffff81111561253a5761253961301e565b5b61254684828501612239565b91505092915050565b60006020828403121561256557612564613023565b5b600061257384828501612267565b91505092915050565b61258581612d62565b82525050565b61259481612d74565b82525050565b6125a381612d80565b82525050565b60006125b482612c0a565b6125be8185612c20565b93506125ce818560208601612def565b6125d781613028565b840191505092915050565b60006125ed82612c15565b6125f78185612c31565b9350612607818560208601612def565b61261081613028565b840191505092915050565b600061262682612c15565b6126308185612c42565b9350612640818560208601612def565b80840191505092915050565b6000612659602083612c31565b915061266482613039565b602082019050919050565b600061267c603283612c31565b915061268782613062565b604082019050919050565b600061269f602583612c31565b91506126aa826130b1565b604082019050919050565b60006126c2601c83612c31565b91506126cd82613100565b602082019050919050565b60006126e5602483612c31565b91506126f082613129565b604082019050919050565b6000612708601983612c31565b915061271382613178565b602082019050919050565b600061272b602983612c31565b9150612736826131a1565b604082019050919050565b600061274e602e83612c31565b9150612759826131f0565b604082019050919050565b6000612771603e83612c31565b915061277c8261323f565b604082019050919050565b6000612794602083612c31565b915061279f8261328e565b602082019050919050565b60006127b7601883612c31565b91506127c2826132b7565b602082019050919050565b60006127da602183612c31565b91506127e5826132e0565b604082019050919050565b60006127fd601783612c42565b91506128088261332f565b601782019050919050565b6000612820602e83612c31565b915061282b82613358565b604082019050919050565b6000612843601183612c42565b915061284e826133a7565b601182019050919050565b6000612866602f83612c31565b9150612871826133d0565b604082019050919050565b61288581612dd6565b82525050565b6000612897828561261b565b91506128a3828461261b565b91508190509392505050565b60006128ba826127f0565b91506128c6828561261b565b91506128d182612836565b91506128dd828461261b565b91508190509392505050565b60006020820190506128fe600083018461257c565b92915050565b6000608082019050612919600083018761257c565b612926602083018661257c565b612933604083018561287c565b818103606083015261294581846125a9565b905095945050505050565b6000602082019050612965600083018461258b565b92915050565b6000602082019050612980600083018461259a565b92915050565b600060208201905081810360008301526129a081846125e2565b905092915050565b600060208201905081810360008301526129c18161264c565b9050919050565b600060208201905081810360008301526129e18161266f565b9050919050565b60006020820190508181036000830152612a0181612692565b9050919050565b60006020820190508181036000830152612a21816126b5565b9050919050565b60006020820190508181036000830152612a41816126d8565b9050919050565b60006020820190508181036000830152612a61816126fb565b9050919050565b60006020820190508181036000830152612a818161271e565b9050919050565b60006020820190508181036000830152612aa181612741565b9050919050565b60006020820190508181036000830152612ac181612764565b9050919050565b60006020820190508181036000830152612ae181612787565b9050919050565b60006020820190508181036000830152612b01816127aa565b9050919050565b60006020820190508181036000830152612b21816127cd565b9050919050565b60006020820190508181036000830152612b4181612813565b9050919050565b60006020820190508181036000830152612b6181612859565b9050919050565b6000602082019050612b7d600083018461287c565b92915050565b6000612b8d612b9e565b9050612b998282612e7e565b919050565b6000604051905090565b600067ffffffffffffffff821115612bc357612bc2612fe5565b5b612bcc82613028565b9050602081019050919050565b600067ffffffffffffffff821115612bf457612bf3612fe5565b5b612bfd82613028565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612c5882612dd6565b9150612c6383612dd6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c9857612c97612f29565b5b828201905092915050565b6000612cae82612dd6565b9150612cb983612dd6565b925082612cc957612cc8612f58565b5b828204905092915050565b6000612cdf82612dd6565b9150612cea83612dd6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d2357612d22612f29565b5b828202905092915050565b6000612d3982612dd6565b9150612d4483612dd6565b925082821015612d5757612d56612f29565b5b828203905092915050565b6000612d6d82612db6565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612e0d578082015181840152602081019050612df2565b83811115612e1c576000848401525b50505050565b6000612e2d82612dd6565b91506000821415612e4157612e40612f29565b5b600182039050919050565b60006002820490506001821680612e6457607f821691505b60208210811415612e7857612e77612f87565b5b50919050565b612e8782613028565b810181811067ffffffffffffffff82111715612ea657612ea5612fe5565b5b80604052505050565b6000612eba82612dd6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612eed57612eec612f29565b5b600182019050919050565b6000612f0382612dd6565b9150612f0e83612dd6565b925082612f1e57612f1d612f58565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b61342881612d62565b811461343357600080fd5b50565b61343f81612d74565b811461344a57600080fd5b50565b61345681612d80565b811461346157600080fd5b50565b61346d81612d8a565b811461347857600080fd5b50565b61348481612dd6565b811461348f57600080fd5b5056fea2646970667358221220db1e5d3ac4e0eef4bf10e2a7dd09b6dec255ecdd06591a76d0cd6efaac38b51d64736f6c63430008070033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80636352211e116100c3578063b88d4fde1161007c578063b88d4fde146103ae578063c87b56dd146103ca578063d5391393146103fa578063d547741f14610418578063e985e9c514610434578063fb37e883146104645761014d565b80636352211e146102c657806370a08231146102f657806391d148541461032657806395d89b4114610356578063a217fddf14610374578063a22cb465146103925761014d565b8063248a9ca311610115578063248a9ca3146102085780632f2ff15d1461023857806336568abe1461025457806342842e0e1461027057806355f804b31461028c57806356189236146102a85761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806323b872dd146101ec575b600080fd5b61016c600480360381019061016791906124ac565b610494565b6040516101799190612950565b60405180910390f35b61018a6104a6565b6040516101979190612986565b60405180910390f35b6101ba60048036038101906101b5919061254f565b610538565b6040516101c791906128e9565b60405180910390f35b6101ea60048036038101906101e591906123ff565b61057e565b005b610206600480360381019061020191906122e9565b610696565b005b610222600480360381019061021d919061243f565b6106f6565b60405161022f919061296b565b60405180910390f35b610252600480360381019061024d919061246c565b610716565b005b61026e6004803603810190610269919061246c565b610737565b005b61028a600480360381019061028591906122e9565b6107ba565b005b6102a660048036038101906102a19190612506565b6107da565b005b6102b06107f4565b6040516102bd9190612b68565b60405180910390f35b6102e060048036038101906102db919061254f565b610805565b6040516102ed91906128e9565b60405180910390f35b610310600480360381019061030b919061227c565b6108b7565b60405161031d9190612b68565b60405180910390f35b610340600480360381019061033b919061246c565b61096f565b60405161034d9190612950565b60405180910390f35b61035e6109da565b60405161036b9190612986565b60405180910390f35b61037c610a6c565b604051610389919061296b565b60405180910390f35b6103ac60048036038101906103a791906123bf565b610a73565b005b6103c860048036038101906103c3919061233c565b610a89565b005b6103e460048036038101906103df919061254f565b610aeb565b6040516103f19190612986565b60405180910390f35b610402610bfe565b60405161040f919061296b565b60405180910390f35b610432600480360381019061042d919061246c565b610c22565b005b61044e600480360381019061044991906122a9565b610c43565b60405161045b9190612950565b60405180910390f35b61047e60048036038101906104799190612506565b610cd7565b60405161048b9190612b68565b60405180910390f35b600061049f82610d39565b9050919050565b6060600080546104b590612e4c565b80601f01602080910402602001604051908101604052809291908181526020018280546104e190612e4c565b801561052e5780601f106105035761010080835404028352916020019161052e565b820191906000526020600020905b81548152906001019060200180831161051157829003601f168201915b5050505050905090565b600061054382610db3565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058982610805565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f190612b08565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610619610dfe565b73ffffffffffffffffffffffffffffffffffffffff161480610648575061064781610642610dfe565b610c43565b5b610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90612aa8565b60405180910390fd5b6106918383610e06565b505050565b6106a76106a1610dfe565b82610ebf565b6106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90612b28565b60405180910390fd5b6106f1838383610f54565b505050565b600060076000838152602001908152602001600020600101549050919050565b61071f826106f6565b610728816111bb565b61073283836111cf565b505050565b61073f610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612b48565b60405180910390fd5b6107b682826112b0565b5050565b6107d583838360405180602001604052806000815250610a89565b505050565b80600990805190602001906107f092919061207b565b5050565b60006108006008611392565b905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a590612ae8565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091f90612a68565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600180546109e990612e4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1590612e4c565b8015610a625780601f10610a3757610100808354040283529160200191610a62565b820191906000526020600020905b815481529060010190602001808311610a4557829003601f168201915b5050505050905090565b6000801b81565b610a85610a7e610dfe565b83836113a0565b5050565b610a9a610a94610dfe565b83610ebf565b610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090612b28565b60405180910390fd5b610ae58484848461150d565b50505050565b6060610af682610db3565b6000600660008481526020019081526020016000208054610b1690612e4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4290612e4c565b8015610b8f5780601f10610b6457610100808354040283529160200191610b8f565b820191906000526020600020905b815481529060010190602001808311610b7257829003601f168201915b505050505090506000610ba0611569565b9050600081511415610bb6578192505050610bf9565b600082511115610beb578082604051602001610bd392919061288b565b60405160208183030381529060405292505050610bf9565b610bf484611580565b925050505b919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610c2b826106f6565b610c34816111bb565b610c3e83836112b0565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610d03816111bb565b6000610d0f6008611392565b9050610d1b33826115e8565b610d258185611606565b610d2f600861167a565b8092505050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610dac5750610dab82611690565b5b9050919050565b610dbc81611772565b610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290612ae8565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610e7983610805565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ecb83610805565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f0d5750610f0c8185610c43565b5b80610f4b57508373ffffffffffffffffffffffffffffffffffffffff16610f3384610538565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610f7482610805565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc1906129e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190612a28565b60405180910390fd5b6110458383836117de565b611050600082610e06565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a09190612d2e565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f79190612c4d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111b68383836117e3565b505050565b6111cc816111c7610dfe565b6117e8565b50565b6111d9828261096f565b6112ac5760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611251610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112ba828261096f565b1561138e5760006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611333610dfe565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600081600001549050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612a48565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115009190612950565b60405180910390a3505050565b611518848484610f54565b61152484848484611885565b611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906129c8565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061158b82610db3565b6000611595611569565b905060008151116115b557604051806020016040528060008152506115e0565b806115bf84611a1c565b6040516020016115d092919061288b565b6040516020818303038152906040525b915050919050565b611602828260405180602001604052806000815250611b7d565b5050565b61160f82611772565b61164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590612a88565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061167592919061207b565b505050565b6001816000016000828254019250508190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061175b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061176b575061176a82611bd8565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6117f2828261096f565b611881576118178173ffffffffffffffffffffffffffffffffffffffff166014611c42565b6118258360001c6020611c42565b6040516020016118369291906128af565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118789190612986565b60405180910390fd5b5050565b60006118a68473ffffffffffffffffffffffffffffffffffffffff16611e7e565b15611a0f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118cf610dfe565b8786866040518563ffffffff1660e01b81526004016118f19493929190612904565b602060405180830381600087803b15801561190b57600080fd5b505af192505050801561193c57506040513d601f19601f8201168201806040525081019061193991906124d9565b60015b6119bf573d806000811461196c576040519150601f19603f3d011682016040523d82523d6000602084013e611971565b606091505b506000815114156119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae906129c8565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611a14565b600190505b949350505050565b60606000821415611a64576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611b78565b600082905060005b60008214611a96578080611a7f90612eaf565b915050600a82611a8f9190612ca3565b9150611a6c565b60008167ffffffffffffffff811115611ab257611ab1612fe5565b5b6040519080825280601f01601f191660200182016040528015611ae45781602001600182028036833780820191505090505b5090505b60008514611b7157600182611afd9190612d2e565b9150600a85611b0c9190612ef8565b6030611b189190612c4d565b60f81b818381518110611b2e57611b2d612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b6a9190612ca3565b9450611ae8565b8093505050505b919050565b611b878383611ea1565b611b946000848484611885565b611bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bca906129c8565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611c559190612cd4565b611c5f9190612c4d565b67ffffffffffffffff811115611c7857611c77612fe5565b5b6040519080825280601f01601f191660200182016040528015611caa5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611ce257611ce1612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611d4657611d45612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611d869190612cd4565b611d909190612c4d565b90505b6001811115611e30577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611dd257611dd1612fb6565b5b1a60f81b828281518110611de957611de8612fb6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611e2990612e22565b9050611d93565b5060008414611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b906129a8565b60405180910390fd5b8091505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890612ac8565b60405180910390fd5b611f1a81611772565b15611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5190612a08565b60405180910390fd5b611f66600083836117de565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fb69190612c4d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612077600083836117e3565b5050565b82805461208790612e4c565b90600052602060002090601f0160209004810192826120a957600085556120f0565b82601f106120c257805160ff19168380011785556120f0565b828001600101855582156120f0579182015b828111156120ef5782518255916020019190600101906120d4565b5b5090506120fd9190612101565b5090565b5b8082111561211a576000816000905550600101612102565b5090565b600061213161212c84612ba8565b612b83565b90508281526020810184848401111561214d5761214c613019565b5b612158848285612de0565b509392505050565b600061217361216e84612bd9565b612b83565b90508281526020810184848401111561218f5761218e613019565b5b61219a848285612de0565b509392505050565b6000813590506121b18161341f565b92915050565b6000813590506121c681613436565b92915050565b6000813590506121db8161344d565b92915050565b6000813590506121f081613464565b92915050565b60008151905061220581613464565b92915050565b600082601f8301126122205761221f613014565b5b813561223084826020860161211e565b91505092915050565b600082601f83011261224e5761224d613014565b5b813561225e848260208601612160565b91505092915050565b6000813590506122768161347b565b92915050565b60006020828403121561229257612291613023565b5b60006122a0848285016121a2565b91505092915050565b600080604083850312156122c0576122bf613023565b5b60006122ce858286016121a2565b92505060206122df858286016121a2565b9150509250929050565b60008060006060848603121561230257612301613023565b5b6000612310868287016121a2565b9350506020612321868287016121a2565b925050604061233286828701612267565b9150509250925092565b6000806000806080858703121561235657612355613023565b5b6000612364878288016121a2565b9450506020612375878288016121a2565b935050604061238687828801612267565b925050606085013567ffffffffffffffff8111156123a7576123a661301e565b5b6123b38782880161220b565b91505092959194509250565b600080604083850312156123d6576123d5613023565b5b60006123e4858286016121a2565b92505060206123f5858286016121b7565b9150509250929050565b6000806040838503121561241657612415613023565b5b6000612424858286016121a2565b925050602061243585828601612267565b9150509250929050565b60006020828403121561245557612454613023565b5b6000612463848285016121cc565b91505092915050565b6000806040838503121561248357612482613023565b5b6000612491858286016121cc565b92505060206124a2858286016121a2565b9150509250929050565b6000602082840312156124c2576124c1613023565b5b60006124d0848285016121e1565b91505092915050565b6000602082840312156124ef576124ee613023565b5b60006124fd848285016121f6565b91505092915050565b60006020828403121561251c5761251b613023565b5b600082013567ffffffffffffffff81111561253a5761253961301e565b5b61254684828501612239565b91505092915050565b60006020828403121561256557612564613023565b5b600061257384828501612267565b91505092915050565b61258581612d62565b82525050565b61259481612d74565b82525050565b6125a381612d80565b82525050565b60006125b482612c0a565b6125be8185612c20565b93506125ce818560208601612def565b6125d781613028565b840191505092915050565b60006125ed82612c15565b6125f78185612c31565b9350612607818560208601612def565b61261081613028565b840191505092915050565b600061262682612c15565b6126308185612c42565b9350612640818560208601612def565b80840191505092915050565b6000612659602083612c31565b915061266482613039565b602082019050919050565b600061267c603283612c31565b915061268782613062565b604082019050919050565b600061269f602583612c31565b91506126aa826130b1565b604082019050919050565b60006126c2601c83612c31565b91506126cd82613100565b602082019050919050565b60006126e5602483612c31565b91506126f082613129565b604082019050919050565b6000612708601983612c31565b915061271382613178565b602082019050919050565b600061272b602983612c31565b9150612736826131a1565b604082019050919050565b600061274e602e83612c31565b9150612759826131f0565b604082019050919050565b6000612771603e83612c31565b915061277c8261323f565b604082019050919050565b6000612794602083612c31565b915061279f8261328e565b602082019050919050565b60006127b7601883612c31565b91506127c2826132b7565b602082019050919050565b60006127da602183612c31565b91506127e5826132e0565b604082019050919050565b60006127fd601783612c42565b91506128088261332f565b601782019050919050565b6000612820602e83612c31565b915061282b82613358565b604082019050919050565b6000612843601183612c42565b915061284e826133a7565b601182019050919050565b6000612866602f83612c31565b9150612871826133d0565b604082019050919050565b61288581612dd6565b82525050565b6000612897828561261b565b91506128a3828461261b565b91508190509392505050565b60006128ba826127f0565b91506128c6828561261b565b91506128d182612836565b91506128dd828461261b565b91508190509392505050565b60006020820190506128fe600083018461257c565b92915050565b6000608082019050612919600083018761257c565b612926602083018661257c565b612933604083018561287c565b818103606083015261294581846125a9565b905095945050505050565b6000602082019050612965600083018461258b565b92915050565b6000602082019050612980600083018461259a565b92915050565b600060208201905081810360008301526129a081846125e2565b905092915050565b600060208201905081810360008301526129c18161264c565b9050919050565b600060208201905081810360008301526129e18161266f565b9050919050565b60006020820190508181036000830152612a0181612692565b9050919050565b60006020820190508181036000830152612a21816126b5565b9050919050565b60006020820190508181036000830152612a41816126d8565b9050919050565b60006020820190508181036000830152612a61816126fb565b9050919050565b60006020820190508181036000830152612a818161271e565b9050919050565b60006020820190508181036000830152612aa181612741565b9050919050565b60006020820190508181036000830152612ac181612764565b9050919050565b60006020820190508181036000830152612ae181612787565b9050919050565b60006020820190508181036000830152612b01816127aa565b9050919050565b60006020820190508181036000830152612b21816127cd565b9050919050565b60006020820190508181036000830152612b4181612813565b9050919050565b60006020820190508181036000830152612b6181612859565b9050919050565b6000602082019050612b7d600083018461287c565b92915050565b6000612b8d612b9e565b9050612b998282612e7e565b919050565b6000604051905090565b600067ffffffffffffffff821115612bc357612bc2612fe5565b5b612bcc82613028565b9050602081019050919050565b600067ffffffffffffffff821115612bf457612bf3612fe5565b5b612bfd82613028565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612c5882612dd6565b9150612c6383612dd6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c9857612c97612f29565b5b828201905092915050565b6000612cae82612dd6565b9150612cb983612dd6565b925082612cc957612cc8612f58565b5b828204905092915050565b6000612cdf82612dd6565b9150612cea83612dd6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d2357612d22612f29565b5b828202905092915050565b6000612d3982612dd6565b9150612d4483612dd6565b925082821015612d5757612d56612f29565b5b828203905092915050565b6000612d6d82612db6565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612e0d578082015181840152602081019050612df2565b83811115612e1c576000848401525b50505050565b6000612e2d82612dd6565b91506000821415612e4157612e40612f29565b5b600182039050919050565b60006002820490506001821680612e6457607f821691505b60208210811415612e7857612e77612f87565b5b50919050565b612e8782613028565b810181811067ffffffffffffffff82111715612ea657612ea5612fe5565b5b80604052505050565b6000612eba82612dd6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612eed57612eec612f29565b5b600182019050919050565b6000612f0382612dd6565b9150612f0e83612dd6565b925082612f1e57612f1d612f58565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b61342881612d62565b811461343357600080fd5b50565b61343f81612d74565b811461344a57600080fd5b50565b61345681612d80565b811461346157600080fd5b50565b61346d81612d8a565b811461347857600080fd5b50565b61348481612dd6565b811461348f57600080fd5b5056fea2646970667358221220db1e5d3ac4e0eef4bf10e2a7dd09b6dec255ecdd06591a76d0cd6efaac38b51d64736f6c63430008070033",
"linkReferences": {},
"deployedLinkReferences": {}
}