[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "baseTokenURI", "type": "string" }, { "internalType": "uint256", "name": "mintPrice", "type": "uint256" }, { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "address", "name": "admin2", "type": "address" } ], "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": "_tokenIdTracker", "outputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "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": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currentRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getReflectionBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReflectionBalances", "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": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "", "type": "uint256" } ], "name": "lastDividendAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "minter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reflectToOwners", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "reflectionBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintPrice", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "setTokenURI", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenMinter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDividend", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200315a3803806200315a8339810160408190526200003491620003ab565b8651879087906200004d90600290602085019062000235565b5080516200006390600390602084019062000235565b505085516200007b9150600e90602088019062000235565b50600f8490556010839055601180546001600160a01b038085166001600160a01b0319928316179092556012805492841692909116919091179055620000c3600083620000d0565b50505050505050620004c4565b620000e782826200011360201b6200136f1760201c565b60008281526001602090815260409091206200010e9183906200137962000123821b17901c565b505050565b6200011f828262000143565b5050565b60006200013a836001600160a01b038416620001e3565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200011f576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200019f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546200022c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200013d565b5060006200013d565b828054620002439062000471565b90600052602060002090601f016020900481019282620002675760008555620002b2565b82601f106200028257805160ff1916838001178555620002b2565b82800160010185558215620002b2579182015b82811115620002b257825182559160200191906001019062000295565b50620002c0929150620002c4565b5090565b5b80821115620002c05760008155600101620002c5565b80516001600160a01b0381168114620002f357600080fd5b919050565b600082601f83011262000309578081fd5b81516001600160401b0380821115620003265762000326620004ae565b604051601f8301601f19908116603f01168101908282118183101715620003515762000351620004ae565b816040528381526020925086838588010111156200036d578485fd5b8491505b8382101562000390578582018301518183018401529082019062000371565b83821115620003a157848385830101525b9695505050505050565b600080600080600080600060e0888a031215620003c6578283fd5b87516001600160401b0380821115620003dd578485fd5b620003eb8b838c01620002f8565b985060208a015191508082111562000401578485fd5b6200040f8b838c01620002f8565b975060408a015191508082111562000425578485fd5b50620004348a828b01620002f8565b95505060608801519350608088015192506200045360a08901620002db565b91506200046360c08901620002db565b905092959891949750929550565b600181811c908216806200048657607f821691505b60208210811415620004a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612c8680620004d46000396000f3fe6080604052600436106102455760003560e01c80636352211e11610139578063a217fddf116100b6578063c87b56dd1161007a578063c87b56dd146106a1578063ca15c873146106c1578063d2068857146106e1578063d547741f1461070e578063e985e9c51461072e578063f9f8bdb71461077757610245565b8063a217fddf146105f6578063a22cb4651461060b578063ac8d856c1461062b578063ae169a5014610661578063b88d4fde1461068157610245565b806391d14854116100fd57806391d148541461058257806395d89b41146105a257806398bcede9146105b7578063a035b1fe146105ce578063a0712d68146105e357610245565b80636352211e146104cc57806370a08231146104ec5780637c57d9471461050c5780639010d07c1461054257806391b7f5ed1461056257610245565b8063248a9ca3116101c75780634131ff991161018b5780634131ff991461044057806342842e0e146104565780634b6acafb146104765780634f6ccce71461048c57806355f804b3146104ac57610245565b8063248a9ca31461039b5780632f2ff15d146103cb5780632f745c59146103eb57806336568abe1461040b578063372500ab1461042b57610245565b8063081812fc1161020e578063081812fc146102ee578063095ea7b314610326578063162094c41461034657806318160ddd1461036657806323b872dd1461037b57610245565b8062fe50c61461024a57806301eb99ec1461027d57806301ffc9a714610292578063047d5e80146102c257806306fdde03146102cc575b600080fd5b34801561025657600080fd5b5061026a6102653660046128a4565b61078c565b6040519081526020015b60405180910390f35b34801561028957600080fd5b5061026a6107b0565b34801561029e57600080fd5b506102b26102ad3660046128ff565b610809565b6040519015158152602001610274565b6102ca610814565b005b3480156102d857600080fd5b506102e161081f565b6040516102749190612a47565b3480156102fa57600080fd5b5061030e6103093660046128a4565b6108b1565b6040516001600160a01b039091168152602001610274565b34801561033257600080fd5b506102ca61034136600461287b565b61093e565b34801561035257600080fd5b506102ca61036136600461296a565b610a54565b34801561037257600080fd5b50600a5461026a565b34801561038757600080fd5b506102ca61039636600461278d565b610ad4565b3480156103a757600080fd5b5061026a6103b63660046128a4565b60009081526020819052604090206001015490565b3480156103d757600080fd5b506102ca6103e63660046128bc565b610b05565b3480156103f757600080fd5b5061026a61040636600461287b565b610b27565b34801561041757600080fd5b506102ca6104263660046128bc565b610bc0565b34801561043757600080fd5b506102ca610be2565b34801561044c57600080fd5b5061026a60135481565b34801561046257600080fd5b506102ca61047136600461278d565b610c74565b34801561048257600080fd5b5061026a60145481565b34801561049857600080fd5b5061026a6104a73660046128a4565b610c8f565b3480156104b857600080fd5b506102ca6104c7366004612937565b610d30565b3480156104d857600080fd5b5061030e6104e73660046128a4565b610db4565b3480156104f857600080fd5b5061026a610507366004612741565b610e2b565b34801561051857600080fd5b5061030e6105273660046128a4565b6000908152601660205260409020546001600160a01b031690565b34801561054e57600080fd5b5061030e61055d3660046128de565b610eb2565b34801561056e57600080fd5b506102ca61057d3660046128a4565b610ed1565b34801561058e57600080fd5b506102b261059d3660046128bc565b610f44565b3480156105ae57600080fd5b506102e1610f6d565b3480156105c357600080fd5b50600d5461026a9081565b3480156105da57600080fd5b50600f5461026a565b6102ca6105f13660046128a4565b610f7c565b34801561060257600080fd5b5061026a600081565b34801561061757600080fd5b506102ca610626366004612841565b611112565b34801561063757600080fd5b5061030e6106463660046128a4565b6016602052600090815260409020546001600160a01b031681565b34801561066d57600080fd5b506102ca61067c3660046128a4565b6111e4565b34801561068d57600080fd5b506102ca61069c3660046127c8565b6112df565b3480156106ad57600080fd5b506102e16106bc3660046128a4565b611317565b3480156106cd57600080fd5b5061026a6106dc3660046128a4565b611322565b3480156106ed57600080fd5b5061026a6106fc3660046128a4565b60156020526000908152604090205481565b34801561071a57600080fd5b506102ca6107293660046128bc565b611339565b34801561073a57600080fd5b506102b261074936600461275b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561078357600080fd5b5061026a611343565b6000818152601560205260408120546014546107a89190612b48565b90505b919050565b6000806107bc33610e2b565b90506000805b828110156108015760006107d63383610b27565b90506107e18161078c565b6107eb9084612afd565b92505080806107f990612bc6565b9150506107c2565b509150505b90565b60006107a88261138e565b61081d346113b3565b565b60606002805461082e90612b8b565b80601f016020809104026020016040519081016040528092919081815260200182805461085a90612b8b565b80156108a75780601f1061087c576101008083540402835291602001916108a7565b820191906000526020600020905b81548152906001019060200180831161088a57829003601f168201915b5050505050905090565b60006108bc826113e4565b6109225760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061094982610db4565b9050806001600160a01b0316836001600160a01b031614156109b75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610919565b336001600160a01b03821614806109d357506109d38133610749565b610a455760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610919565b610a4f8383611401565b505050565b610a5f60003361059d565b610ac65760405162461bcd60e51b815260206004820152603260248201527f41766178417065733a206d75737420686176652061646d696e20726f6c6520746044820152716f206368616e676520746f6b656e2055524960701b6064820152608401610919565b610ad0828261146f565b5050565b610ade33826114fa565b610afa5760405162461bcd60e51b815260040161091990612aac565b610a4f8383836115e4565b610b0f828261178f565b6000828152600160205260409020610a4f9082611379565b6000610b3283610e2b565b8210610b945760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610919565b506001600160a01b03821660009081526008602090815260408083208484529091529020545b92915050565b610bca8282611810565b6000828152600160205260409020610a4f908261188a565b6000610bed33610e2b565b90506000805b82811015610c46576000610c073383610b27565b9050610c128161078c565b610c1c9084612afd565b60145460009283526015602052604090922091909155915080610c3e81612bc6565b915050610bf3565b50604051339082156108fc029083906000818181858888f19350505050158015610a4f573d6000803e3d6000fd5b610a4f838383604051806020016040528060008152506112df565b6000610c9a600a5490565b8210610cfd5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610919565b600a8281548110610d1e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610d3b60003361059d565b610da15760405162461bcd60e51b815260206004820152603160248201527f41766178417065733a206d75737420686176652061646d696e20726f6c6520746044820152706f206368616e676520626173652055524960781b6064820152608401610919565b8051610ad090600e9060208401906125fc565b6000818152600460205260408120546001600160a01b0316806107a85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610919565b60006001600160a01b038216610e965760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610919565b506001600160a01b031660009081526005602052604090205490565b6000828152600160205260408120610eca908361189f565b9392505050565b610edc60003361059d565b610f3f5760405162461bcd60e51b815260206004820152602e60248201527f41766178417065733a206d75737420686176652061646d696e20726f6c65207460448201526d6f206368616e676520707269636560901b6064820152608401610919565b600f55565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606003805461082e90612b8b565b80600f54610f8a9190612b29565b3414610fe25760405162461bcd60e51b815260206004820152602160248201527f41766178417065733a206d7573742073656e6420636f727265637420707269636044820152606560f81b6064820152608401610919565b60105481610fef600d5490565b610ff99190612afd565b11156110625760405162461bcd60e51b815260206004820152603260248201527f41766178417065733a206e6f7420656e6f75676820617661782061706573206c60448201527119599d081d1bc81b5a5b9d08185b5bdd5b9d60721b6064820152608401610919565b60005b81811015610ad05761107f3361107a600d5490565b6118ab565b336016600061108d600d5490565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550601454601560006110cf600d5490565b81526020810191909152604001600020556110ee600d80546001019055565b6111006110fb8334612b15565b6119ea565b8061110a81612bc6565b915050611065565b6001600160a01b03821633141561116b5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610919565b3360008181526007602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111d8911515815260200190565b60405180910390a35050565b336111ee82610db4565b6001600160a01b03161480611213575033611208826108b1565b6001600160a01b0316145b61127a5760405162461bcd60e51b815260206004820152603260248201527f41766178417065733a204f6e6c79206f776e6572206f7220617070726f7665646044820152712063616e20636c61696d207265776172647360701b6064820152608401610919565b60006112858261078c565b905061129082610db4565b6001600160a01b03166108fc829081150290604051600060405180830381858888f193505050501580156112c8573d6000803e3d6000fd5b505060145460009182526015602052604090912055565b6112e933836114fa565b6113055760405162461bcd60e51b815260040161091990612aac565b61131184848484611abd565b50505050565b60606107a882611af0565b60008181526001602052604081206107a890611c53565b610bca8282611c5d565b600061134e600a5490565b61135a57506000610806565b600a5460135461136a9190612b15565b905090565b610ad08282611cdd565b6000610eca836001600160a01b038416611d61565b60006001600160e01b0319821663780e9d6360e01b14806107a857506107a882611db0565b806013546113c19190612afd565b601355600a546113d19082612b15565b6014546113de9190612afd565b60145550565b6000908152600460205260409020546001600160a01b0316151590565b600081815260066020526040902080546001600160a01b0319166001600160a01b038416908117909155819061143682610db4565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611478826113e4565b6114db5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610919565b6000828152600c602090815260409091208251610a4f928401906125fc565b6000611505826113e4565b6115665760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610919565b600061157183610db4565b9050806001600160a01b0316846001600160a01b031614806115ac5750836001600160a01b03166115a1846108b1565b6001600160a01b0316145b806115dc57506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166115f782610db4565b6001600160a01b03161461165f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610919565b6001600160a01b0382166116c15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610919565b6116cc838383611df0565b6116d7600082611401565b6001600160a01b0383166000908152600560205260408120805460019290611700908490612b48565b90915550506001600160a01b038216600090815260056020526040812080546001929061172e908490612afd565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152602081905260409020600101546117ac905b3361059d565b61136f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610919565b6001600160a01b03811633146118805760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610919565b610ad08282611e14565b6000610eca836001600160a01b038416611e79565b6000610eca8383611f96565b6001600160a01b0382166119015760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610919565b61190a816113e4565b156119575760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610919565b61196360008383611df0565b6001600160a01b038216600090815260056020526040812080546001929061198c908490612afd565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006119f7600a83612b15565b905060006004611a078385612b48565b611a12906003612b29565b611a1c9190612b15565b905060006004611a2c8486612b48565b611a369190612b15565b9050611a41836113b3565b6011546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611a7b573d6000803e3d6000fd5b506012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ab6573d6000803e3d6000fd5b5050505050565b611ac88484846115e4565b611ad48484848461202a565b6113115760405162461bcd60e51b815260040161091990612a5a565b6060611afb826113e4565b611b615760405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b6064820152608401610919565b6000828152600c602052604081208054611b7a90612b8b565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba690612b8b565b8015611bf35780601f10611bc857610100808354040283529160200191611bf3565b820191906000526020600020905b815481529060010190602001808311611bd657829003601f168201915b505050505090506000611c04612137565b9050805160001415611c18575090506107ab565b815115611c4a578082604051602001611c329291906129db565b604051602081830303815290604052925050506107ab565b6115dc84612146565b60006107a8825490565b600082815260208190526040902060010154611c78906117a6565b6118805760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610919565b611ce78282610f44565b610ad0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611d1d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000818152600183016020526040812054611da857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610bba565b506000610bba565b60006001600160e01b031982166380ac58cd60e01b1480611de157506001600160e01b03198216635b5e139f60e01b145b806107a857506107a882612210565b80611dfa600a5490565b1115611e0957611e09816111e4565b610a4f838383612235565b611e1e8282610f44565b15610ad0576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611f8c576000611e9d600183612b48565b8554909150600090611eb190600190612b48565b90506000866000018281548110611ed857634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080876000018481548110611f0957634e487b7160e01b600052603260045260246000fd5b600091825260209091200155611f20836001612afd565b60008281526001890160205260409020558654879080611f5057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610bba565b6000915050610bba565b81546000908210611ff45760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610919565b82600001828154811061201757634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006001600160a01b0384163b1561212c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061206e903390899088908890600401612a0a565b602060405180830381600087803b15801561208857600080fd5b505af19250505080156120b8575060408051601f3d908101601f191682019092526120b59181019061291b565b60015b612112573d8080156120e6576040519150601f19603f3d011682016040523d82523d6000602084013e6120eb565b606091505b50805161210a5760405162461bcd60e51b815260040161091990612a5a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506115dc565b506001949350505050565b6060600e805461082e90612b8b565b6060612151826113e4565b6121b55760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610919565b60006121bf612137565b905060008151116121df5760405180602001604052806000815250610eca565b806121e9846122f2565b6040516020016121fa9291906129db565b6040516020818303038152906040529392505050565b60006001600160e01b03198216635a05180f60e01b14806107a857506107a88261240d565b6001600160a01b0383166122905761228b81600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b6122b3565b816001600160a01b0316836001600160a01b0316146122b3576122b38382612442565b6001600160a01b0382166122cf576122ca816124df565b610a4f565b826001600160a01b0316826001600160a01b031614610a4f57610a4f82826125b8565b60608161231757506040805180820190915260018152600360fc1b60208201526107ab565b8160005b8115612341578061232b81612bc6565b915061233a9050600a83612b15565b915061231b565b60008167ffffffffffffffff81111561236a57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612394576020820181803683370190505b5090505b84156115dc576123a9600183612b48565b91506123b6600a86612be1565b6123c1906030612afd565b60f81b8183815181106123e457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350612406600a86612b15565b9450612398565b60006001600160e01b03198216637965db0b60e01b14806107a857506301ffc9a760e01b6001600160e01b03198316146107a8565b6000600161244f84610e2b565b6124599190612b48565b6000838152600960205260409020549091508082146124ac576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a546000906124f190600190612b48565b6000838152600b6020526040812054600a805493945090928490811061252757634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080600a838154811061255657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a80548061259c57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b60006125c383610e2b565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b82805461260890612b8b565b90600052602060002090601f01602090048101928261262a5760008555612670565b82601f1061264357805160ff1916838001178555612670565b82800160010185558215612670579182015b82811115612670578251825591602001919060010190612655565b5061267c929150612680565b5090565b5b8082111561267c5760008155600101612681565b600067ffffffffffffffff808411156126b0576126b0612c21565b604051601f8501601f19908116603f011681019082821181831017156126d8576126d8612c21565b816040528093508581528686860111156126f157600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b03811681146107ab57600080fd5b600082601f830112612732578081fd5b610eca83833560208501612695565b600060208284031215612752578081fd5b610eca8261270b565b6000806040838503121561276d578081fd5b6127768361270b565b91506127846020840161270b565b90509250929050565b6000806000606084860312156127a1578081fd5b6127aa8461270b565b92506127b86020850161270b565b9150604084013590509250925092565b600080600080608085870312156127dd578081fd5b6127e68561270b565b93506127f46020860161270b565b925060408501359150606085013567ffffffffffffffff811115612816578182fd5b8501601f81018713612826578182fd5b61283587823560208401612695565b91505092959194509250565b60008060408385031215612853578182fd5b61285c8361270b565b915060208301358015158114612870578182fd5b809150509250929050565b6000806040838503121561288d578182fd5b6128968361270b565b946020939093013593505050565b6000602082840312156128b5578081fd5b5035919050565b600080604083850312156128ce578182fd5b823591506127846020840161270b565b600080604083850312156128f0578182fd5b50508035926020909101359150565b600060208284031215612910578081fd5b8135610eca81612c37565b60006020828403121561292c578081fd5b8151610eca81612c37565b600060208284031215612948578081fd5b813567ffffffffffffffff81111561295e578182fd5b6115dc84828501612722565b6000806040838503121561297c578182fd5b82359150602083013567ffffffffffffffff811115612999578182fd5b6129a585828601612722565b9150509250929050565b600081518084526129c7816020860160208601612b5f565b601f01601f19169290920160200192915050565b600083516129ed818460208801612b5f565b835190830190612a01818360208801612b5f565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612a3d908301846129af565b9695505050505050565b600060208252610eca60208301846129af565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60008219821115612b1057612b10612bf5565b500190565b600082612b2457612b24612c0b565b500490565b6000816000190483118215151615612b4357612b43612bf5565b500290565b600082821015612b5a57612b5a612bf5565b500390565b60005b83811015612b7a578181015183820152602001612b62565b838111156113115750506000910152565b600181811c90821680612b9f57607f821691505b60208210811415612bc057634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612bda57612bda612bf5565b5060010190565b600082612bf057612bf0612c0b565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114612c4d57600080fd5b5056fea2646970667358221220ab82a1bf8468f0235364579a8df09d837b23b331b9c4aacf57c84634a8038f4964736f6c6343000803003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000022b1c8c1227a000000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000250efb286bd76ae9b93c960f771e0a6616313e4000000000000000000000000ea16e86622d105eb1c4219029ddf115c6c1ab29a0000000000000000000000000000000000000000000000000000000000000008417661784170657300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074156415841504500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004668747470733a2f2f716a67773079327430392e657865637574652d6170692e75732d656173742d312e616d617a6f6e6177732e636f6d2f6d657461646174613f696e6465783d0000000000000000000000000000000000000000000000000000