0 txs
2.8k calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
exists
viewfunction exists(uint256 id) view returns (bool)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalSupply
viewfunction totalSupply(uint256 id) view returns (uint256)
UPGRADER_ROLE
viewfunction UPGRADER_ROLE() view returns (bytes32)
uri
viewfunction uri(uint256) view returns (string)
WHITELIST_ROLE
viewfunction WHITELIST_ROLE() view returns (bytes32)
whitelistAddress
viewfunction whitelistAddress(address) view returns (bool)
whitelistEnabled
viewfunction whitelistEnabled() view returns (bool)
addWhitelist
nonpayablefunction addWhitelist(address _address)
burn
nonpayablefunction burn(address from, uint256 id, uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
mint
nonpayablefunction mint(address to, uint256 id, uint256 amount, bytes data)
pause
nonpayablefunction pause()
removeWhitelist
nonpayablefunction removeWhitelist(address _address)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setURI
nonpayablefunction setURI(string newuri)
setWhitelistEnabled
nonpayablefunction setWhitelistEnabled(bool enabled)
unpause
nonpayablefunction unpause()
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
URI
event URI(string value, uint256 indexed id)
Whitelist
event Whitelist(bool enabled)
WhitelistAdded
event WhitelistAdded(address _address)
WhitelistRemoved
event WhitelistRemoved(address _address)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613cac6200012060003960008181610afd01528181610b9301528181610e0a01528181610ea00152610f970152613cac6000f3fe6080604052600436106102335760003560e01c80635c975abb11610138578063bd85b039116100b0578063ec87621c1161007f578063f5298aca11610064578063f5298aca146106ee578063f72c0d8b1461070e578063f80f5dd51461074257600080fd5b8063ec87621c1461069a578063f242432a146106ce57600080fd5b8063bd85b039146105d0578063d547741f146105fd578063e63ab1e91461061d578063e985e9c51461065157600080fd5b80638129fc1c1161010757806391d14854116100ec57806391d1485414610555578063a217fddf1461059b578063a22cb465146105b057600080fd5b80638129fc1c1461052b5780638456cb591461054057600080fd5b80635c975abb1461049f578063731133e9146104b757806378c8cda7146104d75780637a997ab7146104f757600080fd5b806336568abe116101cb5780634e1273f41161019a5780634f558e791161017f5780634f558e791461044057806351fb012d1461046f57806352d1902d1461048a57600080fd5b80634e1273f4146104005780634f1ef2861461042d57600080fd5b806336568abe1461037a5780633659cfe61461039a5780633f4ba83a146103ba57806341566585146103cf57600080fd5b80630e89341c116102075780630e89341c146102dd578063248a9ca31461030a5780632eb2c2d61461033a5780632f2ff15d1461035a57600080fd5b8062fdd58e1461023857806301ffc9a71461026b57806302fe53051461029b578063052d9e7e146102bd575b600080fd5b34801561024457600080fd5b506102586102533660046130db565b610762565b6040519081526020015b60405180910390f35b34801561027757600080fd5b5061028b610286366004613133565b610810565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004613150565b61082a565b005b3480156102c957600080fd5b506102bb6102d83660046131d2565b610898565b3480156102e957600080fd5b506102fd6102f83660046131ed565b61090c565b6040516102629190613256565b34801561031657600080fd5b506102586103253660046131ed565b600090815260c9602052604090206001015490565b34801561034657600080fd5b506102bb6103553660046133ce565b6109a0565b34801561036657600080fd5b506102bb610375366004613478565b610a42565b34801561038657600080fd5b506102bb610395366004613478565b610a67565b3480156103a657600080fd5b506102bb6103b53660046134a4565b610af3565b3480156103c657600080fd5b506102bb610c90565b3480156103db57600080fd5b5061028b6103ea3660046134a4565b6101926020526000908152604090205460ff1681565b34801561040c57600080fd5b5061042061041b3660046134bf565b610cc2565b60405161026291906135c5565b6102bb61043b3660046135d8565b610e00565b34801561044c57600080fd5b5061028b61045b3660046131ed565b600090815260fb6020526040902054151590565b34801561047b57600080fd5b506101915461028b9060ff1681565b34801561049657600080fd5b50610258610f8a565b3480156104ab57600080fd5b5060975460ff1661028b565b3480156104c357600080fd5b506102bb6104d236600461361c565b611050565b3480156104e357600080fd5b506102bb6104f23660046134a4565b611086565b34801561050357600080fd5b506102587fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be676081565b34801561053757600080fd5b506102bb611102565b34801561054c57600080fd5b506102bb61133e565b34801561056157600080fd5b5061028b610570366004613478565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156105a757600080fd5b50610258600081565b3480156105bc57600080fd5b506102bb6105cb36600461367d565b611370565b3480156105dc57600080fd5b506102586105eb3660046131ed565b600090815260fb602052604090205490565b34801561060957600080fd5b506102bb610618366004613478565b61137b565b34801561062957600080fd5b506102587f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801561065d57600080fd5b5061028b61066c3660046136a7565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b3480156106a657600080fd5b506102587f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b3480156106da57600080fd5b506102bb6106e93660046136d1565b6113a0565b3480156106fa57600080fd5b506102bb610709366004613736565b61143b565b34801561071a57600080fd5b506102587f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b34801561074e57600080fd5b506102bb61075d3660046134a4565b611476565b60006001600160a01b0383166107e55760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061081b826114f5565b8061080a575061080a826115d8565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086108548161162e565b61089383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061163892505050565b505050565b7fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67606108c28161162e565b610191805460ff19168315159081179091556040519081527fb129566a7007764ad2d20cd94d30a9e576d12e604df8470368c973f8759e9b31906020015b60405180910390a15050565b60606067805461091b90613769565b80601f016020809104026020016040519081016040528092919081815260200182805461094790613769565b80156109945780601f1061096957610100808354040283529160200191610994565b820191906000526020600020905b81548152906001019060200180831161097757829003601f168201915b50505050509050919050565b6001600160a01b0385163314806109bc57506109bc853361066c565b610a2e5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f76656400000000000000000000000000000000000060648201526084016107dc565b610a3b8585858585611644565b5050505050565b600082815260c96020526040902060010154610a5d8161162e565b61089383836118f3565b6001600160a01b0381163314610ae55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016107dc565b610aef8282611995565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b915760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016107dc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bec7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610c685760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016107dc565b610c7181611a18565b60408051600080825260208201909252610c8d91839190611a42565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610cba8161162e565b610c8d611be2565b60608151835114610d3b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016107dc565b6000835167ffffffffffffffff811115610d5757610d57613269565b604051908082528060200260200182016040528015610d80578160200160208202803683370190505b50905060005b8451811015610df857610dcb858281518110610da457610da46137bc565b6020026020010151858381518110610dbe57610dbe6137bc565b6020026020010151610762565b828281518110610ddd57610ddd6137bc565b6020908102919091010152610df18161381a565b9050610d86565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e9e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016107dc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ef97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610f755760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016107dc565b610f7e82611a18565b610aef82826001611a42565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461102a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107dc565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b90565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0861107a8161162e565b610a3b85858585611c34565b7fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67606110b08161162e565b6001600160a01b03821660008181526101926020908152604091829020805460ff1916905590519182527fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9101610900565b600054610100900460ff16158080156111225750600054600160ff909116105b8061113c5750303b15801561113c575060005460ff166001145b6111ae5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107dc565b6000805460ff1916600117905580156111ee57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61120660405180602001604052806000815250611d75565b61120e611dfb565b611216611e82565b61121e611e82565b611226611e82565b6112316000336118f3565b61125b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336118f3565b6112857f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08336118f3565b6112af7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336118f3565b6112d97fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be6760336118f3565b8015610c8d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6113688161162e565b610c8d611eff565b610aef338383611f3c565b600082815260c960205260409020600101546113968161162e565b6108938383611995565b6001600160a01b0385163314806113bc57506113bc853361066c565b61142e5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f76656400000000000000000000000000000000000060648201526084016107dc565b610a3b8585858585612030565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086114658161162e565b611470848484612218565b50505050565b7fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67606114a08161162e565b6001600160a01b03821660008181526101926020908152604091829020805460ff1916600117905590519182527f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69101610900565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061158857507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061080a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461080a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061080a575061080a826114f5565b610c8d81336123df565b6067610aef8282613898565b81518351146116bb5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d6174636800000000000000000000000000000000000000000000000060648201526084016107dc565b6001600160a01b0384166117375760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016107dc565b33611746818787878787612454565b60005b8451811015611885576000858281518110611766576117666137bc565b602002602001015190506000858381518110611784576117846137bc565b60209081029190910181015160008481526065835260408082206001600160a01b038e16835290935291909120549091508181101561182b5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e736665720000000000000000000000000000000000000000000060648201526084016107dc565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061186a908490613994565b925050819055505050508061187e9061381a565b9050611749565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516118d59291906139a7565b60405180910390a46118eb818787878787612527565b505050505050565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff16610aef57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556119513390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1615610aef57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610aef8161162e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a75576108938361272b565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611acf575060408051601f3d908101601f19168201909252611acc918101906139cc565b60015b611b415760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016107dc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611bd65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016107dc565b50610893838383612801565b611bea612826565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038416611cb05760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016107dc565b336000611cbc85612878565b90506000611cc985612878565b9050611cda83600089858589612454565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290611d0c908490613994565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611d6c836000898989896128c3565b50505050505050565b600054610100900460ff16611df25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107dc565b610c8d81612a1e565b600054610100900460ff16611e785760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107dc565b611e80612aa4565b565b600054610100900460ff16611e805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107dc565b611f07612b2d565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c173390565b816001600160a01b0316836001600160a01b031603611fc35760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016107dc565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166120ac5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016107dc565b3360006120b885612878565b905060006120c585612878565b90506120d5838989858589612454565b60008681526065602090815260408083206001600160a01b038c1684529091529020548581101561216e5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e736665720000000000000000000000000000000000000000000060648201526084016107dc565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906121ad908490613994565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461220d848a8a8a8a8a6128c3565b505050505050505050565b6001600160a01b0383166122945760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016107dc565b3360006122a084612878565b905060006122ad84612878565b90506122cd83876000858560405180602001604052806000815250612454565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156123655760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e63650000000000000000000000000000000000000000000000000000000060648201526084016107dc565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052611d6c565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff16610aef5761241281612b80565b61241d836020612b92565b60405160200161242e9291906139e5565b60408051601f198184030181529082905262461bcd60e51b82526107dc91600401613256565b61245c612b2d565b6101915460ff1615612519576001600160a01b0386166000908152610192602052604090205460ff1680156124cd57506001600160a01b0385166000908152610192602052604090205460ff16806124cd57506001600160a01b0384166000908152610192602052604090205460ff165b6125195760405162461bcd60e51b815260206004820152601460248201527f5472616e73666572204e6f7420416c6c6f77656400000000000000000000000060448201526064016107dc565b6118eb868686868686612dc2565b6001600160a01b0384163b156118eb576040517fbc197c810000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063bc197c81906125849089908990889088908890600401613a66565b6020604051808303816000875af19250505080156125bf575060408051601f3d908101601f191682019092526125bc91810190613ac4565b60015b612674576125cb613ae1565b806308c379a00361260457506125df613afc565b806125ea5750612606565b8060405162461bcd60e51b81526004016107dc9190613256565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016107dc565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611d6c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e7300000000000000000000000000000000000000000000000060648201526084016107dc565b6001600160a01b0381163b6127a85760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016107dc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61280a83612f50565b6000825111806128175750805b15610893576114708383612f90565b60975460ff16611e805760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016107dc565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106128b2576128b26137bc565b602090810291909101015292915050565b6001600160a01b0384163b156118eb576040517ff23a6e610000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063f23a6e61906129209089908990889088908890600401613ba4565b6020604051808303816000875af192505050801561295b575060408051601f3d908101601f1916820190925261295891810190613ac4565b60015b612967576125cb613ae1565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611d6c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e7300000000000000000000000000000000000000000000000060648201526084016107dc565b600054610100900460ff16612a9b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107dc565b610c8d81611638565b600054610100900460ff16612b215760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107dc565b6097805460ff19169055565b60975460ff1615611e805760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016107dc565b606061080a6001600160a01b03831660145b60606000612ba1836002613be7565b612bac906002613994565b67ffffffffffffffff811115612bc457612bc4613269565b6040519080825280601f01601f191660200182016040528015612bee576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612c2557612c256137bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612c8857612c886137bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612cc4846002613be7565b612ccf906001613994565b90505b6001811115612d6c577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612d1057612d106137bc565b1a60f81b828281518110612d2657612d266137bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612d6581613bfe565b9050612cd2565b508315612dbb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107dc565b9392505050565b6001600160a01b038516612e495760005b8351811015612e4757828181518110612dee57612dee6137bc565b602002602001015160fb6000868481518110612e0c57612e0c6137bc565b602002602001015181526020019081526020016000206000828254612e319190613994565b90915550612e4090508161381a565b9050612dd3565b505b6001600160a01b0384166118eb5760005b8351811015611d6c576000848281518110612e7757612e776137bc565b602002602001015190506000848381518110612e9557612e956137bc565b60200260200101519050600060fb600084815260200190815260200160002054905081811015612f2d5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f7460448201527f616c537570706c7900000000000000000000000000000000000000000000000060648201526084016107dc565b600092835260fb602052604090922091039055612f498161381a565b9050612e5a565b612f598161272b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61300f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016107dc565b600080846001600160a01b03168460405161302a9190613c33565b600060405180830381855af49150503d8060008114613065576040519150601f19603f3d011682016040523d82523d6000602084013e61306a565b606091505b50915091506130928282604051806060016040528060278152602001613c506027913961309b565b95945050505050565b606083156130aa575081612dbb565b612dbb83838151156125ea5781518083602001fd5b80356001600160a01b03811681146130d657600080fd5b919050565b600080604083850312156130ee57600080fd5b6130f7836130bf565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610c8d57600080fd5b60006020828403121561314557600080fd5b8135612dbb81613105565b6000806020838503121561316357600080fd5b823567ffffffffffffffff8082111561317b57600080fd5b818501915085601f83011261318f57600080fd5b81358181111561319e57600080fd5b8660208285010111156131b057600080fd5b60209290920196919550909350505050565b803580151581146130d657600080fd5b6000602082840312156131e457600080fd5b612dbb826131c2565b6000602082840312156131ff57600080fd5b5035919050565b60005b83811015613221578181015183820152602001613209565b50506000910152565b60008151808452613242816020860160208601613206565b601f01601f19169290920160200192915050565b602081526000612dbb602083018461322a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156132be576132be613269565b6040525050565b600067ffffffffffffffff8211156132df576132df613269565b5060051b60200190565b600082601f8301126132fa57600080fd5b81356020613307826132c5565b6040516133148282613298565b83815260059390931b850182019282810191508684111561333457600080fd5b8286015b8481101561334f5780358352918301918301613338565b509695505050505050565b600082601f83011261336b57600080fd5b813567ffffffffffffffff81111561338557613385613269565b60405161339c6020601f19601f8501160182613298565b8181528460208386010111156133b157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156133e657600080fd5b6133ef866130bf565b94506133fd602087016130bf565b9350604086013567ffffffffffffffff8082111561341a57600080fd5b61342689838a016132e9565b9450606088013591508082111561343c57600080fd5b61344889838a016132e9565b9350608088013591508082111561345e57600080fd5b5061346b8882890161335a565b9150509295509295909350565b6000806040838503121561348b57600080fd5b8235915061349b602084016130bf565b90509250929050565b6000602082840312156134b657600080fd5b612dbb826130bf565b600080604083850312156134d257600080fd5b823567ffffffffffffffff808211156134ea57600080fd5b818501915085601f8301126134fe57600080fd5b8135602061350b826132c5565b6040516135188282613298565b83815260059390931b850182019282810191508984111561353857600080fd5b948201945b8386101561355d5761354e866130bf565b8252948201949082019061353d565b9650508601359250508082111561357357600080fd5b50613580858286016132e9565b9150509250929050565b600081518084526020808501945080840160005b838110156135ba5781518752958201959082019060010161359e565b509495945050505050565b602081526000612dbb602083018461358a565b600080604083850312156135eb57600080fd5b6135f4836130bf565b9150602083013567ffffffffffffffff81111561361057600080fd5b6135808582860161335a565b6000806000806080858703121561363257600080fd5b61363b856130bf565b93506020850135925060408501359150606085013567ffffffffffffffff81111561366557600080fd5b6136718782880161335a565b91505092959194509250565b6000806040838503121561369057600080fd5b613699836130bf565b915061349b602084016131c2565b600080604083850312156136ba57600080fd5b6136c3836130bf565b915061349b602084016130bf565b600080600080600060a086880312156136e957600080fd5b6136f2866130bf565b9450613700602087016130bf565b93506040860135925060608601359150608086013567ffffffffffffffff81111561372a57600080fd5b61346b8882890161335a565b60008060006060848603121561374b57600080fd5b613754846130bf565b95602085013595506040909401359392505050565b600181811c9082168061377d57607f821691505b6020821081036137b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361384b5761384b6137eb565b5060010190565b601f82111561089357600081815260208120601f850160051c810160208610156138795750805b601f850160051c820191505b818110156118eb57828155600101613885565b815167ffffffffffffffff8111156138b2576138b2613269565b6138c6816138c08454613769565b84613852565b602080601f83116001811461391957600084156138e35750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556118eb565b600085815260208120601f198616915b8281101561394857888601518255948401946001909101908401613929565b508582101561398457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111561080a5761080a6137eb565b6040815260006139ba604083018561358a565b8281036020840152613092818561358a565b6000602082840312156139de57600080fd5b5051919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613a1d816017850160208801613206565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613a5a816028840160208801613206565b01602801949350505050565b60006001600160a01b03808816835280871660208401525060a06040830152613a9260a083018661358a565b8281036060840152613aa4818661358a565b90508281036080840152613ab8818561322a565b98975050505050505050565b600060208284031215613ad657600080fd5b8151612dbb81613105565b600060033d111561104d5760046000803e5060005160e01c90565b600060443d1015613b0a5790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff8160248401118184111715613b5857505050505090565b8285019150815181811115613b705750505050505090565b843d8701016020828501011115613b8a5750505050505090565b613b9960208286010187613298565b509095945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152613bdc60a083018461322a565b979650505050505050565b808202811582820484141761080a5761080a6137eb565b600081613c0d57613c0d6137eb565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008251613c45818460208701613206565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c61f97dce78ec11f1aeef501fb57e27f91b5c948c6cc0d56e82de570d239da3f64736f6c63430008130033