0 txs
94.9k calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
banAdminAddress
viewfunction banAdminAddress() view returns (address)
baseUrl
viewfunction baseUrl() view returns (string)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getBanEndTime
viewfunction getBanEndTime(uint256 tokenId) view returns (uint64)
getWhitelistTransferTime
viewfunction getWhitelistTransferTime() view returns (uint256 startTime, uint256 endTime)
inRecipientWhitelist
viewfunction inRecipientWhitelist(address addr) view returns (bool)
inSenderWhitelist
viewfunction inSenderWhitelist(address addr) view returns (bool)
inTransferWhitelist
viewfunction inTransferWhitelist(address addr) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isBanned
viewfunction isBanned(uint256 tokenId) view returns (bool)
minterAdminAddress
viewfunction minterAdminAddress() view returns (address)
name
viewfunction name() view returns (string)
nextTokenId
viewfunction nextTokenId() view returns (uint256)
nftTransferable
viewfunction nftTransferable() view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenIdsOfOwnerByAmount
viewfunction tokenIdsOfOwnerByAmount(address user, uint256 amount) view returns (uint256[] tokenIds)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
userExpires
viewfunction userExpires(uint256 tokenId) view returns (uint256)
userOf
viewfunction userOf(uint256 tokenId) view returns (address)
whitelistAdminAddress
viewfunction whitelistAdminAddress() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
approve
nonpayablefunction approve(address to, uint256 tokenId)
ban
nonpayablefunction ban(uint256 tokenId, uint64 endTime)
batchSetUser
nonpayablefunction batchSetUser(uint256[] tokenIds, address[] users, uint64 expires)
batchTransfer
nonpayablefunction batchTransfer(address[] toArray, uint256[] tokenIdArray)
initialize
nonpayablefunction initialize()
mint
nonpayablefunction mint(address to, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseUrl
nonpayablefunction setBaseUrl(string url_)
setUser
nonpayablefunction setUser(uint256 tokenId, address user, uint64 expires)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unBan
nonpayablefunction unBan(uint256 tokenId)
updateBanAdmin
nonpayablefunction updateBanAdmin(address banAdmin)
updateMinterAdmin
nonpayablefunction updateMinterAdmin(address minter)
updateNftTransferable
nonpayablefunction updateNftTransferable(bool transferable)
updateRecipientWhitelist
nonpayablefunction updateRecipientWhitelist(address[] addressList, bool inWhitelist)
updateSenderWhitelist
nonpayablefunction updateSenderWhitelist(address[] addressList, bool inWhitelist)
updateTransferWhiteList
nonpayablefunction updateTransferWhiteList(address[] addressList, bool inWhitelist)
updateWhitelistAdmin
nonpayablefunction updateWhitelistAdmin(address whitelistAdmin)
updateWhitelistTransferTime
nonpayablefunction updateWhitelistTransferTime(uint256 startTime, uint256 endTime)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
EventBanAdminUpdated
event EventBanAdminUpdated(address newBanAdmin)
EventBanUpdated
event EventBanUpdated(address tokenOwner, uint256 tokenId, uint64 banEndTime)
EventMinterAdminUpdated
event EventMinterAdminUpdated(address newMinterAdmin)
EventNftTransferableUpdated
event EventNftTransferableUpdated(bool transferable)
EventRecipientWhitelistUpdated
event EventRecipientWhitelistUpdated(address recipient, bool isWhitelisted)
EventSenderWhitelistUpdated
event EventSenderWhitelistUpdated(address sender, bool isWhitelisted)
EventWhiteListAdminUpdated
event EventWhiteListAdminUpdated(address newWhiteListAdmin)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
UpdateUser
event UpdateUser(uint256 indexed tokenId, address indexed user, uint64 expires)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c6200002c565b620000266200002c565b620000ed565b600054610100900460ff1615620000995760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000eb576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61337980620000fd6000396000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c80638129fc1c1161019d578063c87b56dd116100e9578063e985e9c5116100a2578063f238d1b31161007c578063f238d1b314610740578063f2fde38b1461076d578063f7a969be14610780578063fb8dd967146107a057600080fd5b8063e985e9c5146106dc578063ef24f8ff14610718578063f17d67971461072c57600080fd5b8063c87b56dd14610671578063d83e9dac14610684578063db853f6814610692578063e030565e146106a5578063e30c3978146106b8578063e71a9db9146106c957600080fd5b806395d89b4111610156578063b88d4fde11610130578063b88d4fde1461060a578063c2f1f14a1461061d578063c57a9c5614610630578063c7c3268b1461065e57600080fd5b806395d89b41146105ad578063a22cb465146105b5578063a5d923af146105c857600080fd5b80638129fc1c1461052a57806388d695b21461053257806388e13e1914610545578063890d3741146105585780638da5cb5b1461056b5780638fc88c481461057c57600080fd5b8063439531fd1161025c5780636ccab67a11610215578063715018a6116101ef578063715018a6146104fd57806375794a3c1461050557806379ba50971461050f5780637da99e661461051757600080fd5b80636ccab67a146104aa5780636f5de3fa146104bd57806370a08231146104ea57600080fd5b8063439531fd146104385780634bc2e86e1461044b5780634f6ccce7146104685780635bcabf041461047b57806362380ddd146104835780636352211e1461049757600080fd5b806323b872dd116102c95780632f745c59116102a35780632f745c59146103ec5780633b569c50146103ff57806340c10f191461041257806342842e0e1461042557600080fd5b806323b872dd146103b357806325c22e5c146103c65780632964bf8f146103d957600080fd5b806301ffc9a71461031157806306fdde0314610339578063081812fc1461034e578063095ea7b3146103795780630c2849ca1461038e57806318160ddd146103a1575b600080fd5b61032461031f3660046129a3565b6107b3565b60405190151581526020015b60405180910390f35b6103416107de565b6040516103309190612a10565b61036161035c366004612a23565b610870565b6040516001600160a01b039091168152602001610330565b61038c610387366004612a53565b610897565b005b61032461039c366004612a7d565b6109b1565b60fd545b604051908152602001610330565b61038c6103c1366004612a98565b6109d3565b61038c6103d4366004612b2f565b610a04565b61038c6103e7366004612b2f565b610a9c565b6103a56103fa366004612a53565b610b39565b61038c61040d366004612a7d565b610bcf565b61038c610420366004612a53565b610c2d565b61038c610433366004612a98565b610cc3565b61038c610446366004612a7d565b610cde565b610130546101315460408051928352602083019190915201610330565b6103a5610476366004612a23565b610d35565b610341610dc8565b61013654610361906001600160a01b031681565b6103616104a5366004612a23565b610e57565b61038c6104b8366004612b99565b610eb7565b6103246104cb366004612a7d565b6001600160a01b03166000908152610138602052604090205460ff1690565b6103a56104f8366004612a7d565b610f74565b61038c610ffa565b6103a56101375481565b61038c61100e565b61038c610525366004612b2f565b611088565b61038c61118f565b61038c610540366004612c19565b61132e565b61038c610553366004612a23565b6113ea565b61038c610566366004612c84565b6114a4565b6033546001600160a01b0316610361565b6103a561058a366004612a23565b600090815261012d6020526040902054600160a01b90046001600160401b031690565b61034161161a565b61038c6105c3366004612cb0565b611629565b6105f26105d6366004612a23565b600090815261012e60205260409020546001600160401b031690565b6040516001600160401b039091168152602001610330565b61038c610618366004612cf0565b611638565b61036161062b366004612a23565b61166a565b61032461063e366004612a23565b600090815261012e6020526040902054426001600160401b039091161190565b61038c61066c366004612dcb565b6116bb565b61034161067f366004612a23565b6116d1565b610132546103249060ff1681565b61038c6106a0366004612a7d565b611738565b61038c6106b3366004612e3c565b61178f565b6065546001600160a01b0316610361565b61038c6106d7366004612e6f565b61185e565b6103246106ea366004612e91565b6001600160a01b03918216600090815260ce6020908152604080832093909416825291909152205460ff1690565b61013554610361906001600160a01b031681565b61013454610361906001600160a01b031681565b61032461074e366004612a7d565b6001600160a01b0316600090815261012f602052604090205460ff1690565b61038c61077b366004612a7d565b611896565b61079361078e366004612a53565b611907565b6040516103309190612ebb565b61038c6107ae366004612eff565b611a2c565b60006001600160e01b03198216632b424ad760e21b14806107d857506107d882611a76565b92915050565b606060c980546107ed90612f1a565b80601f016020809104026020016040519081016040528092919081815260200182805461081990612f1a565b80156108665780601f1061083b57610100808354040283529160200191610866565b820191906000526020600020905b81548152906001019060200180831161084957829003601f168201915b5050505050905090565b600061087b82611a9b565b50600090815260cd60205260409020546001600160a01b031690565b60006108a282610e57565b9050806001600160a01b0316836001600160a01b0316036109145760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610930575061093081336106ea565b6109a25760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161090b565b6109ac8383611afa565b505050565b6001600160a01b038116600090815261012f602052604081205460ff166107d8565b6109dd3382611b68565b6109f95760405162461bcd60e51b815260040161090b90612f54565b6109ac838383611be7565b610a0f838383610a9c565b60005b82811015610a96577f16c29e9724d3d45dc3ee3375b90e9bd7dd6feb778eb2eef920e61ac933d9b870848483818110610a4d57610a4d612fa1565b9050602002016020810190610a629190612a7d565b604080516001600160a01b03909216825284151560208301520160405180910390a180610a8e81612fcd565b915050610a12565b50505050565b610136546001600160a01b03163314610ac75760405162461bcd60e51b815260040161090b90612fe6565b60005b82811015610a96578161012f6000868685818110610aea57610aea612fa1565b9050602002016020810190610aff9190612a7d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b3181612fcd565b915050610aca565b6000610b4483610f74565b8210610ba65760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161090b565b506001600160a01b0391909116600090815260fb60209081526040808320938352929052205490565b610bd7611d58565b61013580546001600160a01b0319166001600160a01b0383169081179091556040519081527f374a82144f5ee2389289f2b9201f2124ed2f16b28841728fa8728e085f90a7ec906020015b60405180910390a150565b610134546001600160a01b0316331480610c5157506033546001600160a01b031633145b610c9d5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206d696e7465720000000000000000604482015260640161090b565b60005b818110156109ac57610cb183611db2565b80610cbb81612fcd565b915050610ca0565b6109ac83838360405180602001604052806000815250611638565b610ce6611d58565b61013480546001600160a01b0319166001600160a01b0383169081179091556040519081527f42cb744805b899bbb1d2af67fd0b034898bfce4b7bf8c1572cff806a8dd3cb0890602001610c22565b6000610d4060fd5490565b8210610da35760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161090b565b60fd8281548110610db657610db6612fa1565b90600052602060002001549050919050565b6101338054610dd690612f1a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0290612f1a565b8015610e4f5780601f10610e2457610100808354040283529160200191610e4f565b820191906000526020600020905b815481529060010190602001808311610e3257829003601f168201915b505050505081565b600081815260cb60205260408120546001600160a01b0316806107d85760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161090b565b838214610f065760405162461bcd60e51b815260206004820152601b60248201527f6172726179206c656e6774682073686f756c642062652073616d650000000000604482015260640161090b565b60005b84811015610f6c57610f5a868683818110610f2657610f26612fa1565b90506020020135858584818110610f3f57610f3f612fa1565b9050602002016020810190610f549190612a7d565b8461178f565b80610f6481612fcd565b915050610f09565b505050505050565b60006001600160a01b038216610fde5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161090b565b506001600160a01b0316600090815260cc602052604090205490565b611002611d58565b61100c6000611dd8565b565b60655433906001600160a01b0316811461107c5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161090b565b61108581611dd8565b50565b610136546001600160a01b031633146110b35760405162461bcd60e51b815260040161090b90612fe6565b60005b82811015610a96578161013860008686858181106110d6576110d6612fa1565b90506020020160208101906110eb9190612a7d565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557fd942c9b783c35ef803b960b62e80738ab5de13107f3f4155963269d953bb954d84848381811061114657611146612fa1565b905060200201602081019061115b9190612a7d565b604080516001600160a01b03909216825284151560208301520160405180910390a18061118781612fcd565b9150506110b6565b600054610100900460ff16158080156111af5750600054600160ff909116105b806111c95750303b1580156111c9575060005460ff166001145b61122c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161090b565b6000805460ff19166001179055801561124f576000805461ff0019166101001790555b6112a46040518060400160405280601681526020017541657468697220436865636b6572204c6963656e736560501b8152506040518060400160405280600581526020016410551210d360da1b815250611df1565b6112ac611e22565b6101348054336001600160a01b03199182168117909255610135805482168317905561013680549091169091179055610132805460ff191690556001610137558015611085576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610c22565b82811461137d5760405162461bcd60e51b815260206004820152601b60248201527f6172726179206c656e6774682073686f756c642062652073616d650000000000604482015260640161090b565b60005b838110156113e3576113d13386868481811061139e5761139e612fa1565b90506020020160208101906113b39190612a7d565b8585858181106113c5576113c5612fa1565b905060200201356109d3565b806113db81612fcd565b915050611380565b5050505050565b610135546001600160a01b031633146114365760405162461bcd60e51b815260206004820152600e60248201526d37b7363c903130b71030b236b4b760911b604482015260640161090b565b600081815261012e60205260409020805467ffffffffffffffff191690557faa4c365b59848ff3fa44acd423e8f38ae99da70a57dc09a50f1f71236b5fc00561147e82610e57565b604080516001600160a01b03909216825260208201849052600090820152606001610c22565b610135546001600160a01b031633146114f05760405162461bcd60e51b815260206004820152600e60248201526d37b7363c903130b71030b236b4b760911b604482015260640161090b565b42816001600160401b03161161153b5760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420656e642074696d6560801b604482015260640161090b565b600082815260cb60205260409020546001600160a01b03166115925760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a59081d1bdad95b881a5960821b604482015260640161090b565b600082815261012e60205260409020805467ffffffffffffffff19166001600160401b0383161790557faa4c365b59848ff3fa44acd423e8f38ae99da70a57dc09a50f1f71236b5fc0056115e583610e57565b604080516001600160a01b039092168252602082018590526001600160401b0384169082015260600160405180910390a15050565b606060ca80546107ed90612f1a565b611634338383611e51565b5050565b6116423383611b68565b61165e5760405162461bcd60e51b815260040161090b90612f54565b610a9684848484611f1f565b600081815261012d602052604081205442600160a01b9091046001600160401b0316106116ae5750600090815261012d60205260409020546001600160a01b031690565b506000919050565b919050565b6116c3611d58565b6101336109ac82848361305a565b60606116dc82611a9b565b60006116e6611f52565b905060008151116117065760405180602001604052806000815250611731565b8061171084611f62565b604051602001611721929190613119565b6040516020818303038152906040525b9392505050565b611740611d58565b61013680546001600160a01b0319166001600160a01b0383169081179091556040519081527facb06213fcf4f307fd4b85da28676fc9dba917ecf2db9c3b68e92159577209f390602001610c22565b6117993384611b68565b6117f75760405162461bcd60e51b815260206004820152602960248201527f455243343930373a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161090b565b600083815261012e6020526040902054426001600160401b0390911611156118535760405162461bcd60e51b815260206004820152600f60248201526e1d1bdad95b881a5cc818985b9b9959608a1b604482015260640161090b565b6109ac838383611ff4565b610136546001600160a01b031633146118895760405162461bcd60e51b815260040161090b90612fe6565b6101309190915561013155565b61189e611d58565b606580546001600160a01b0383166001600160a01b031990911681179091556118cf6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6060600061191484610f74565b9050600083116119565760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a590818dbdd5b9d609a1b604482015260640161090b565b808311156119965760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a590818dbdd5b9d609a1b604482015260640161090b565b826001600160401b038111156119ae576119ae612cda565b6040519080825280602002602001820160405280156119d7578160200160208202803683370190505b50915060005b83811015611a245760006119f18683610b39565b905080848381518110611a0657611a06612fa1565b60209081029190910101525080611a1c81612fcd565b9150506119dd565b505092915050565b611a34611d58565b610132805460ff19168215159081179091556040519081527fbb63059bdc53c55f55c3853fa3261d62beb112269c5d1aa448ca27dca56a090590602001610c22565b60006001600160e01b0319821663780e9d6360e01b14806107d857506107d882612075565b600081815260cb60205260409020546001600160a01b03166110855760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161090b565b600081815260cd6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611b2f82610e57565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611b7483610e57565b9050806001600160a01b0316846001600160a01b03161480611bbb57506001600160a01b03808216600090815260ce602090815260408083209388168352929052205460ff165b80611bdf5750836001600160a01b0316611bd484610870565b6001600160a01b0316145b949350505050565b826001600160a01b0316611bfa82610e57565b6001600160a01b031614611c205760405162461bcd60e51b815260040161090b90613148565b6001600160a01b038216611c825760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161090b565b611c8f83838360016120c5565b826001600160a01b0316611ca282610e57565b6001600160a01b031614611cc85760405162461bcd60e51b815260040161090b90613148565b600081815260cd6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260cc855283862080546000190190559087168086528386208054600101905586865260cb90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6033546001600160a01b0316331461100c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161090b565b611dbf816101375461217d565b6101378054906000611dd083612fcd565b919050555050565b606580546001600160a01b031916905561108581612316565b600054610100900460ff16611e185760405162461bcd60e51b815260040161090b9061318d565b6116348282612368565b600054610100900460ff16611e495760405162461bcd60e51b815260040161090b9061318d565b61100c6123a8565b816001600160a01b0316836001600160a01b031603611eb25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161090b565b6001600160a01b03838116600081815260ce6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611f2a848484611be7565b611f36848484846123d8565b610a965760405162461bcd60e51b815260040161090b906131d8565b606061013380546107ed90612f1a565b60606000611f6f836124d9565b60010190506000816001600160401b03811115611f8e57611f8e612cda565b6040519080825280601f01601f191660200182016040528015611fb8576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611fc257509392505050565b600083815261012d602090815260409182902080546001600160a01b0386166001600160e01b03199091168117600160a01b6001600160401b03871690810291909117835593519384529092909186917f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe910160405180910390a350505050565b60006001600160e01b031982166380ac58cd60e01b14806120a657506001600160e01b03198216635b5e139f60e01b145b806107d857506301ffc9a760e01b6001600160e01b03198316146107d8565b6120d1848484846125b1565b600082815261012e6020526040902054426001600160401b03909116111561212d5760405162461bcd60e51b815260206004820152600f60248201526e1d1bdad95b881a5cc818985b9b9959608a1b604482015260640161090b565b6001600160a01b0384161580159061214957506101325460ff16155b156121585761215884846126de565b826001600160a01b0316846001600160a01b031614610a9657610a9682600080611ff4565b6001600160a01b0382166121d35760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161090b565b600081815260cb60205260409020546001600160a01b0316156122385760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161090b565b6122466000838360016120c5565b600081815260cb60205260409020546001600160a01b0316156122ab5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161090b565b6001600160a01b038216600081815260cc602090815260408083208054600101905584835260cb90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661238f5760405162461bcd60e51b815260040161090b9061318d565b60c961239b838261322a565b5060ca6109ac828261322a565b600054610100900460ff166123cf5760405162461bcd60e51b815260040161090b9061318d565b61100c33611dd8565b60006001600160a01b0384163b156124ce57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061241c9033908990889088906004016132e9565b6020604051808303816000875af1925050508015612457575060408051601f3d908101601f1916820190925261245491810190613326565b60015b6124b4573d808015612485576040519150601f19603f3d011682016040523d82523d6000602084013e61248a565b606091505b5080516000036124ac5760405162461bcd60e51b815260040161090b906131d8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611bdf565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125185772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612544576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061256257662386f26fc10000830492506010015b6305f5e100831061257a576305f5e100830492506008015b612710831061258e57612710830492506004015b606483106125a0576064830492506002015b600a83106107d85760010192915050565b60018111156126205760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161090b565b816001600160a01b03851661267c576126778160fd8054600083815260fe60205260408120829055600182018355919091527f9346ac6dd7de6b96975fec380d4d994c4c12e6a8897544f22915316cc6cca2800155565b61269f565b836001600160a01b0316856001600160a01b03161461269f5761269f85826127fd565b6001600160a01b0384166126bb576126b68161289a565b6113e3565b846001600160a01b0316846001600160a01b0316146113e3576113e38482612949565b336001600160a01b03831614801561270f57506001600160a01b038216600090815261012f602052604090205460ff165b8061273357506001600160a01b0381166000908152610138602052604090205460ff165b61277f5760405162461bcd60e51b815260206004820152601960248201527f6e6f7420696e207472616e736665722077686974656c69737400000000000000604482015260640161090b565b60008061279161013054610131549091565b915091504282111580156127a55750804211155b610a965760405162461bcd60e51b8152602060048201526024808201527f6e6f7420696e2077686974656c697374207472616e736665722074696d652072604482015263616e676560e01b606482015260840161090b565b6000600161280a84610f74565b6128149190613343565b600083815260fc6020526040902054909150808214612867576001600160a01b038416600090815260fb60209081526040808320858452825280832054848452818420819055835260fc90915290208190555b50600091825260fc602090815260408084208490556001600160a01b03909416835260fb81528383209183525290812055565b60fd546000906128ac90600190613343565b600083815260fe602052604081205460fd80549394509092849081106128d4576128d4612fa1565b906000526020600020015490508060fd83815481106128f5576128f5612fa1565b600091825260208083209091019290925582815260fe909152604080822084905585825281205560fd80548061292d5761292d613356565b6001900381819060005260206000200160009055905550505050565b600061295483610f74565b6001600160a01b03909316600090815260fb60209081526040808320868452825280832085905593825260fc9052919091209190915550565b6001600160e01b03198116811461108557600080fd5b6000602082840312156129b557600080fd5b81356117318161298d565b60005b838110156129db5781810151838201526020016129c3565b50506000910152565b600081518084526129fc8160208601602086016129c0565b601f01601f19169290920160200192915050565b60208152600061173160208301846129e4565b600060208284031215612a3557600080fd5b5035919050565b80356001600160a01b03811681146116b657600080fd5b60008060408385031215612a6657600080fd5b612a6f83612a3c565b946020939093013593505050565b600060208284031215612a8f57600080fd5b61173182612a3c565b600080600060608486031215612aad57600080fd5b612ab684612a3c565b9250612ac460208501612a3c565b9150604084013590509250925092565b60008083601f840112612ae657600080fd5b5081356001600160401b03811115612afd57600080fd5b6020830191508360208260051b8501011115612b1857600080fd5b9250929050565b803580151581146116b657600080fd5b600080600060408486031215612b4457600080fd5b83356001600160401b03811115612b5a57600080fd5b612b6686828701612ad4565b9094509250612b79905060208501612b1f565b90509250925092565b80356001600160401b03811681146116b657600080fd5b600080600080600060608688031215612bb157600080fd5b85356001600160401b0380821115612bc857600080fd5b612bd489838a01612ad4565b90975095506020880135915080821115612bed57600080fd5b50612bfa88828901612ad4565b9094509250612c0d905060408701612b82565b90509295509295909350565b60008060008060408587031215612c2f57600080fd5b84356001600160401b0380821115612c4657600080fd5b612c5288838901612ad4565b90965094506020870135915080821115612c6b57600080fd5b50612c7887828801612ad4565b95989497509550505050565b60008060408385031215612c9757600080fd5b82359150612ca760208401612b82565b90509250929050565b60008060408385031215612cc357600080fd5b612ccc83612a3c565b9150612ca760208401612b1f565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215612d0657600080fd5b612d0f85612a3c565b9350612d1d60208601612a3c565b92506040850135915060608501356001600160401b0380821115612d4057600080fd5b818701915087601f830112612d5457600080fd5b813581811115612d6657612d66612cda565b604051601f8201601f19908116603f01168101908382118183101715612d8e57612d8e612cda565b816040528281528a6020848701011115612da757600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060208385031215612dde57600080fd5b82356001600160401b0380821115612df557600080fd5b818501915085601f830112612e0957600080fd5b813581811115612e1857600080fd5b866020828501011115612e2a57600080fd5b60209290920196919550909350505050565b600080600060608486031215612e5157600080fd5b83359250612e6160208501612a3c565b9150612b7960408501612b82565b60008060408385031215612e8257600080fd5b50508035926020909101359150565b60008060408385031215612ea457600080fd5b612ead83612a3c565b9150612ca760208401612a3c565b6020808252825182820181905260009190848201906040850190845b81811015612ef357835183529284019291840191600101612ed7565b50909695505050505050565b600060208284031215612f1157600080fd5b61173182612b1f565b600181811c90821680612f2e57607f821691505b602082108103612f4e57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612fdf57612fdf612fb7565b5060010190565b60208082526014908201527337b7363c903bb434ba32b634b9ba1030b236b4b760611b604082015260600190565b601f8211156109ac57600081815260208120601f850160051c8101602086101561303b5750805b601f850160051c820191505b81811015610f6c57828155600101613047565b6001600160401b0383111561307157613071612cda565b6130858361307f8354612f1a565b83613014565b6000601f8411600181146130b957600085156130a15750838201355b600019600387901b1c1916600186901b1783556113e3565b600083815260209020601f19861690835b828110156130ea57868501358255602094850194600190920191016130ca565b50868210156131075760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000835161312b8184602088016129c0565b83519083019061313f8183602088016129c0565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b81516001600160401b0381111561324357613243612cda565b613257816132518454612f1a565b84613014565b602080601f83116001811461328c57600084156132745750858301515b600019600386901b1c1916600185901b178555610f6c565b600085815260208120601f198616915b828110156132bb5788860151825594840194600190910190840161329c565b50858210156132d95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061331c908301846129e4565b9695505050505050565b60006020828403121561333857600080fd5b81516117318161298d565b818103818111156107d8576107d8612fb7565b634e487b7160e01b600052603160045260246000fdfea164736f6c6343000812000a