25 txs
52 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
exists
viewfunction exists(uint256 id) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
isOperatorFilterRegistryRevoked
viewfunction isOperatorFilterRegistryRevoked() view returns (bool)
name
viewfunction name() view returns (string)
operatorFilterRegistry
viewfunction operatorFilterRegistry() view returns (address)
owner
viewfunction owner() view returns (address)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address, uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenData
viewfunction tokenData(uint256) view returns (uint64 maxSupply, uint16 price, uint32 startDate, uint32 endDate, uint16 maxPerWallet, uint16 balanceRequired, bool requiresOtherTokenBalance, address otherToken, bool burnable, string uri)
tokenURI
viewfunction tokenURI(uint256 id) view returns (string)
totalSupply
viewfunction totalSupply(uint256 id) view returns (uint256)
uri
viewfunction uri(uint256 id) view returns (string)
burn
nonpayablefunction burn(address account, uint256 id, uint256 value)
burnBatch
nonpayablefunction burnBatch(address account, uint256[] ids, uint256[] values)
createToken
nonpayablefunction createToken(uint64 _maxSupply, uint16 _price, uint32 _startDate, uint32 _endDate, uint16 _maxPerWallet, bool _requiresOtherTokenBalance, uint16 _balanceRequired, address _otherToken, bool _burnable, string _uri)
deleteDefaultRoyalty
nonpayablefunction deleteDefaultRoyalty()
mint
payablefunction mint(uint256 id) payable
ownerMintBatch
nonpayablefunction ownerMintBatch(address[] to, uint256[] ids, uint256[] amount)
renounceOwnership
nonpayablefunction renounceOwnership()
resetTokenRoyalty
nonpayablefunction resetTokenRoyalty(uint256 tokenId)
revokeOperatorFilterRegistry
nonpayablefunction revokeOperatorFilterRegistry()
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, uint256 amount, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint96 feeNumerator)
setTokenRoyalty
nonpayablefunction setTokenRoyalty(uint256 tokenId, address receiver, uint96 feeNumerator)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateOperatorFilterRegistryAddress
nonpayablefunction updateOperatorFilterRegistryAddress(address newRegistry)
updateToken
nonpayablefunction updateToken(uint256 id, uint64 _maxSupply, uint16 _price, uint32 _startDate, uint32 _endDate, uint16 _maxPerWallet, bool _requiresOtherTokenBalance, uint16 _balanceRequired, address _otherToken, bool _burnable, string _uri)
updateTokenUri
nonpayablefunction updateTokenUri(uint256 id, string _uri)
withdraw
nonpayablefunction withdraw()
withdrawERC20
nonpayablefunction withdrawERC20(address token)
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
OperatorFilterRegistryAddressUpdated
event OperatorFilterRegistryAddressUpdated(address newRegistry)
OperatorFilterRegistryRevoked
event OperatorFilterRegistryRevoked()
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
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)
URI
event URI(string value, uint256 indexed id)
errors
BurnDisabled
error BurnDisabled()
ExceedsMaximum
error ExceedsMaximum()
ExceedsMaxPerWallet
error ExceedsMaxPerWallet()
InitialRegistryAddressCannotBeZeroAddress
error InitialRegistryAddressCannotBeZeroAddress()
MintEnded
error MintEnded()
MintNotStarted
error MintNotStarted()
OnlyOwner
error OnlyOwner()
OperatorNotAllowed
error OperatorNotAllowed(address operator)
PaymentRequired
error PaymentRequired()
RegistryHasBeenRevoked
error RegistryHasBeenRevoked()
TokenBalanceRequired
error TokenBalanceRequired()
TokenNotFound
error TokenNotFound()
creation bytecode
0x60806040523480156200001157600080fd5b506daaeb6d7670e522a718067333cd4e733cc6cdda760b79bafa08df41ecfa224f810dceb66001828282604051806020016040528060008152506200005c81620001eb60201b60201c565b506200006833620001fd565b600780546001600160a01b0319166001600160a01b03851690811790915583903b15620001a15781156200010057604051633e9f1edf60e11b81523060048201526001600160a01b038481166024830152821690637d3e3dbe906044015b600060405180830381600087803b158015620000e157600080fd5b505af1158015620000f6573d6000803e3d6000fd5b50505050620001a1565b6001600160a01b03831615620001455760405163a0af290360e01b81523060048201526001600160a01b03848116602483015282169063a0af290390604401620000c6565b604051632210724360e11b81523060048201526001600160a01b03821690634420e48690602401600060405180830381600087803b1580156200018757600080fd5b505af11580156200019c573d6000803e3d6000fd5b505050505b5050506001600160a01b0384169050620001ce5760405163c49d17ad60e01b815260040160405180910390fd5b505050620001e5306101f46200024f60201b60201c565b620004c5565b6002620001f98282620003f9565b5050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b0382161115620002c35760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b0382166200031b5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620002ba565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600555565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200037f57607f821691505b602082108103620003a057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003f457600081815260208120601f850160051c81016020861015620003cf5750805b601f850160051c820191505b81811015620003f057828155600101620003db565b5050505b505050565b81516001600160401b0381111562000415576200041562000354565b6200042d816200042684546200036a565b84620003a6565b602080601f8311600181146200046557600084156200044c5750858301515b600019600386901b1c1916600185901b178555620003f0565b600085815260208120601f198616915b82811015620004965788860151825594840194600190910190840162000475565b5085821015620004b55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61421580620004d56000396000f3fe6080604052600436106102335760003560e01c806395d89b4111610138578063bd85b039116100b0578063ecba222a1161007f578063f2fde38b11610064578063f2fde38b14610718578063f4f3b20014610738578063f5298aca1461075857600080fd5b8063ecba222a146106d7578063f242432a146106f857600080fd5b8063bd85b03914610621578063c87b56dd1461064e578063d31af4841461066e578063e985e9c51461068e57600080fd5b8063a539a5d111610107578063b0ccc31e116100ec578063b0ccc31e146105ab578063b4b5b48f146105cb578063b8d1e5321461060157600080fd5b8063a539a5d114610576578063aa1b103f1461059657600080fd5b806395d89b41146104da5780639739304314610523578063a0712d6814610543578063a22cb4651461055657600080fd5b80634d006c94116101cb5780635ef9432a1161019a578063715018a61161017f578063715018a6146104785780638a616bc01461048d5780638da5cb5b146104ad57600080fd5b80635ef9432a146104435780636b20c4541461045857600080fd5b80634d006c94146103a75780634e1273f4146103c75780634f558e79146103f45780635944c7531461042357600080fd5b80630e89341c116102075780630e89341c146103135780632a55205a146103335780632eb2c2d6146103725780633ccfd60b1461039257600080fd5b8062fdd58e1461023857806301ffc9a71461026b57806304634d8d1461029b57806306fdde03146102bd575b600080fd5b34801561024457600080fd5b506102586102533660046134d0565b610778565b6040519081526020015b60405180910390f35b34801561027757600080fd5b5061028b610286366004613512565b610824565b6040519015158152602001610262565b3480156102a757600080fd5b506102bb6102b6366004613557565b61083e565b005b3480156102c957600080fd5b506103066040518060400160405280601381526020017f42616e6469742053746f6c656e20476f6f64730000000000000000000000000081525081565b60405161026291906135d2565b34801561031f57600080fd5b5061030661032e3660046135e5565b610854565b34801561033f57600080fd5b5061035361034e3660046135fe565b610945565b604080516001600160a01b039093168352602083019190915201610262565b34801561037e57600080fd5b506102bb61038d36600461376c565b610a00565b34801561039e57600080fd5b506102bb610a2f565b3480156103b357600080fd5b506102bb6103c2366004613871565b610a66565b3480156103d357600080fd5b506103e76103e23660046139bb565b610c87565b6040516102629190613a5a565b34801561040057600080fd5b5061028b61040f3660046135e5565b600090815260036020526040902054151590565b34801561042f57600080fd5b506102bb61043e366004613a6d565b610dc5565b34801561044f57600080fd5b506102bb610ddd565b34801561046457600080fd5b506102bb610473366004613aab565b610e90565b34801561048457600080fd5b506102bb6110ef565b34801561049957600080fd5b506102bb6104a83660046135e5565b611103565b3480156104b957600080fd5b506104c261111c565b6040516001600160a01b039091168152602001610262565b3480156104e657600080fd5b506103066040518060400160405280600381526020017f425347000000000000000000000000000000000000000000000000000000000081525081565b34801561052f57600080fd5b506102bb61053e366004613b21565b611135565b6102bb6105513660046135e5565b611390565b34801561056257600080fd5b506102bb610571366004613c05565b6117ff565b34801561058257600080fd5b506102bb610591366004613c3e565b611813565b3480156105a257600080fd5b506102bb611873565b3480156105b757600080fd5b506007546104c2906001600160a01b031681565b3480156105d757600080fd5b506105eb6105e63660046135e5565b611885565b6040516102629a99989796959493929190613c8d565b34801561060d57600080fd5b506102bb61061c366004613d13565b6119ab565b34801561062d57600080fd5b5061025861063c3660046135e5565b60009081526003602052604090205490565b34801561065a57600080fd5b506103066106693660046135e5565b611a70565b34801561067a57600080fd5b506102bb610689366004613d30565b611a7b565b34801561069a57600080fd5b5061028b6106a9366004613d6d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b3480156106e357600080fd5b5060075461028b90600160a01b900460ff1681565b34801561070457600080fd5b506102bb610713366004613d9b565b611abe565b34801561072457600080fd5b506102bb610733366004613d13565b611ae5565b34801561074457600080fd5b506102bb610753366004613d13565b611b72565b34801561076457600080fd5b506102bb610773366004613e04565b611c5b565b60006001600160a01b0383166107fb5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b600061082f82611e7f565b8061081e575061081e82611f1a565b610846611f58565b6108508282611fb7565b5050565b6060816001811080610867575060085481115b1561088557604051630cbdb7b360e41b815260040160405180910390fd5b6008610892600185613e4f565b815481106108a2576108a2613e62565b906000526020600020906003020160020180546108be90613e78565b80601f01602080910402602001604051908101604052809291908181526020018280546108ea90613e78565b80156109375780601f1061090c57610100808354040283529160200191610937565b820191906000526020600020905b81548152906001019060200180831161091a57829003601f168201915b505050505091505b50919050565b60008281526006602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046bffffffffffffffffffffffff169282019290925282916109c45750604080518082019091526005546001600160a01b0381168252600160a01b90046bffffffffffffffffffffffff1660208201525b6020810151600090612710906109e8906bffffffffffffffffffffffff1687613eac565b6109f29190613ec3565b915196919550909350505050565b846001600160a01b0381163314610a1a57610a1a336120be565b610a2786868686866121b2565b505050505050565b610a37611f58565b60405133904780156108fc02916000818181858888f19350505050158015610a63573d6000803e3d6000fd5b50565b610a6e611f58565b60086040518061014001604052808c67ffffffffffffffff1681526020018b61ffff1681526020018a63ffffffff1681526020018963ffffffff1681526020018861ffff1681526020018661ffff1681526020018715158152602001856001600160a01b03168152602001841515815260200183815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548161ffff021916908361ffff160217905550604082015181600001600a6101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001600e6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160126101000a81548161ffff021916908361ffff16021790555060a08201518160000160146101000a81548161ffff021916908361ffff16021790555060c08201518160000160166101000a81548160ff02191690831515021790555060e08201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160010160146101000a81548160ff021916908315150217905550610120820151816002019081610c789190613f2b565b50505050505050505050505050565b60608151835114610d005760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d61746368000000000000000000000000000000000000000000000060648201526084016107f2565b6000835167ffffffffffffffff811115610d1c57610d1c613620565b604051908082528060200260200182016040528015610d45578160200160208202803683370190505b50905060005b8451811015610dbd57610d90858281518110610d6957610d69613e62565b6020026020010151858381518110610d8357610d83613e62565b6020026020010151610778565b828281518110610da257610da2613e62565b6020908102919091010152610db681613feb565b9050610d4b565b509392505050565b610dcd611f58565b610dd8838383612245565b505050565b610de561111c565b6001600160a01b0316336001600160a01b031614610e1657604051635fc483c560e01b815260040160405180910390fd5b600754600160a01b900460ff1615610e4157604051631551a48f60e11b815260040160405180910390fd5b6007805474ffffffffffffffffffffffffffffffffffffffffff1916600160a01b1790556040517f51e2d870cc2e10853e38dc06fcdae46ad3c3f588f326608803dac6204541ad1690600090a1565b6001600160a01b038316331480610eac5750610eac83336106a9565b610f0f5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b60648201526084016107f2565b60005b82518110156110e357600060086001858481518110610f3357610f33613e62565b6020026020010151610f459190613e4f565b81548110610f5557610f55613e62565b600091825260209182902060408051610140810182526003909302909101805467ffffffffffffffff8116845261ffff68010000000000000000820481169585019590955263ffffffff600160501b8204811693850193909352600160701b81049092166060840152600160901b820484166080840152600160a01b80830490941660a084015260ff600160b01b9092048216151560c084015260018101546001600160a01b03811660e0850152939093041615156101008201526002820180549192916101208401919061102990613e78565b80601f016020809104026020016040519081016040528092919081815260200182805461105590613e78565b80156110a25780601f10611077576101008083540402835291602001916110a2565b820191906000526020600020905b81548152906001019060200180831161108557829003601f168201915b50505050508152505090508061010001516110d05760405163be20705f60e01b815260040160405180910390fd5b50806110db81613feb565b915050610f12565b50610dd883838361235d565b6110f7611f58565b61110160006125b2565b565b61110b611f58565b600090815260066020526040812055565b60006111306004546001600160a01b031690565b905090565b61113d611f58565b6040518061014001604052808b67ffffffffffffffff1681526020018a61ffff1681526020018963ffffffff1681526020018863ffffffff1681526020018761ffff1681526020018561ffff1681526020018615158152602001846001600160a01b03168152602001831515815260200182815250600860018d6111c19190613e4f565b815481106111d1576111d1613e62565b600091825260209182902083516003929092020180549284015160408501516060860151608087015160a088015160c089015167ffffffffffffffff90971669ffffffffffffffffffff19909816979097176801000000000000000061ffff95861602177fffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffff16600160501b63ffffffff948516027fffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff1617600160701b9390921692909202177fffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffff16600160901b918316919091027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff1617600160a01b919094168102939093177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff16600160b01b9215159290920291909117815560e08301516001820180546101008601516001600160a01b0390931674ffffffffffffffffffffffffffffffffffffffffff19909116179115159093021790915561012082015160028201906113809082613f2b565b5050505050505050505050505050565b8060018110806113a1575060085481115b156113bf57604051630cbdb7b360e41b815260040160405180910390fd5b600060086113ce600185613e4f565b815481106113de576113de613e62565b600091825260209182902060408051610140810182526003909302909101805467ffffffffffffffff8116845261ffff68010000000000000000820481169585019590955263ffffffff600160501b8204811693850193909352600160701b81049092166060840152600160901b820484166080840152600160a01b80830490941660a084015260ff600160b01b9092048216151560c084015260018101546001600160a01b03811660e085015293909304161515610100820152600282018054919291610120840191906114b290613e78565b80601f01602080910402602001604051908101604052809291908181526020018280546114de90613e78565b801561152b5780601f106115005761010080835404028352916020019161152b565b820191906000526020600020905b81548152906001019060200180831161150e57829003601f168201915b50505050508152505090506000816000015167ffffffffffffffff1611801561157f5750805167ffffffffffffffff166115718460009081526003602052604090205490565b61157c906001614004565b10155b156115b6576040517f2926404200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040015163ffffffff161180156115d95750806040015163ffffffff1642105b15611610576040517f06290e4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816060015163ffffffff161180156116335750806060015163ffffffff1642115b1561166a576040517f49084b9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816080015161ffff1611801561169d5750806080015161ffff166116903385610778565b61169b906001614004565b115b156116d4576040517fc0e54d7300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c00151156117905760a081015160e08201516040516370a0823160e01b815233600482015261ffff909216916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117589190614017565b1015611790576040517fb5c4d29200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208101516117aa9061ffff1666038d7ea4c68000613eac565b3410156117e3576040517f8b87dfbb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dd83384600160405180602001604052806000815250612611565b81611809816120be565b610dd88383612734565b61181b611f58565b60005b835181101561186d5761185b84828151811061183c5761183c613e62565b602002602001015184846040518060200160405280600081525061273f565b8061186581613feb565b91505061181e565b50505050565b61187b611f58565b6111016000600555565b6008818154811061189557600080fd5b600091825260209091206003909102018054600182015460028301805467ffffffffffffffff8416955061ffff68010000000000000000850481169563ffffffff600160501b8704811696600160701b810490911695600160901b8204841695600160a01b8084049095169560ff600160b01b9094048416956001600160a01b0384169593049093169261192890613e78565b80601f016020809104026020016040519081016040528092919081815260200182805461195490613e78565b80156119a15780601f10611976576101008083540402835291602001916119a1565b820191906000526020600020905b81548152906001019060200180831161198457829003601f168201915b505050505090508a565b6119b361111c565b6001600160a01b0316336001600160a01b0316146119e457604051635fc483c560e01b815260040160405180910390fd5b600754600160a01b900460ff1615611a0f57604051631551a48f60e11b815260040160405180910390fd5b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f9f513fe86dc42fdbac355fa4d9b1d5be7b5e6cd2df67e30db8003766568de4769060200160405180910390a150565b606061081e82610854565b611a83611f58565b806008611a91600185613e4f565b81548110611aa157611aa1613e62565b90600052602060002090600302016002019081610dd89190613f2b565b846001600160a01b0381163314611ad857611ad8336120be565b610a278686868686612914565b611aed611f58565b6001600160a01b038116611b695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107f2565b610a63816125b2565b611b7a611f58565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015611bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bec9190614017565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190614030565b6001600160a01b038316331480611c775750611c7783336106a9565b611cda5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b60648201526084016107f2565b60006008611ce9600185613e4f565b81548110611cf957611cf9613e62565b600091825260209182902060408051610140810182526003909302909101805467ffffffffffffffff8116845261ffff68010000000000000000820481169585019590955263ffffffff600160501b8204811693850193909352600160701b81049092166060840152600160901b820484166080840152600160a01b80830490941660a084015260ff600160b01b9092048216151560c084015260018101546001600160a01b03811660e08501529390930416151561010082015260028201805491929161012084019190611dcd90613e78565b80601f0160208091040260200160405190810160405280929190818152602001828054611df990613e78565b8015611e465780601f10611e1b57610100808354040283529160200191611e46565b820191906000526020600020905b815481529060010190602001808311611e2957829003601f168201915b5050505050815250509050806101000151611e745760405163be20705f60e01b815260040160405180910390fd5b61186d8484846129a0565b60006001600160e01b031982167fd9b67a26000000000000000000000000000000000000000000000000000000001480611ee257506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061081e57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161461081e565b60006001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000148061081e575061081e82611e7f565b33611f6161111c565b6001600160a01b0316146111015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f2565b6127106bffffffffffffffffffffffff8216111561202a5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016107f2565b6001600160a01b0382166120805760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c69642072656365697665720000000000000060448201526064016107f2565b604080518082019091526001600160a01b039092168083526bffffffffffffffffffffffff9091166020909201829052600160a01b90910217600555565b6007546001600160a01b031680158015906120e357506000816001600160a01b03163b115b15610850576040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015282169063c617113490604401602060405180830381865afa15801561214d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121719190614030565b610850576040517fede71dcc0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016107f2565b6001600160a01b0385163314806121ce57506121ce85336106a9565b6122315760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b60648201526084016107f2565b61223e8585858585612b30565b5050505050565b6127106bffffffffffffffffffffffff821611156122b85760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084016107f2565b6001600160a01b03821661230e5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d6574657273000000000060448201526064016107f2565b6040805180820182526001600160a01b0393841681526bffffffffffffffffffffffff92831660208083019182526000968752600690529190942093519051909116600160a01b029116179055565b6001600160a01b0383166123bf5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016107f2565b80518251146124215760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107f2565b600033905061244481856000868660405180602001604052806000815250612d94565b60005b835181101561254557600084828151811061246457612464613e62565b60200260200101519050600084838151811061248257612482613e62565b602090810291909101810151600084815280835260408082206001600160a01b038c16835290935291909120549091508181101561250e5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016107f2565b6000928352602083815260408085206001600160a01b038b168652909152909220910390558061253d81613feb565b915050612447565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161259692919061404d565b60405180910390a460408051602081019091526000905261186d565b600480546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0384166126715760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107f2565b33600061267d85612f22565b9050600061268a85612f22565b905061269b83600089858589612d94565b6000868152602081815260408083206001600160a01b038b168452909152812080548792906126cb908490614004565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461272b83600089898989612f6d565b50505050505050565b610850338383613112565b6001600160a01b03841661279f5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016107f2565b81518351146128015760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107f2565b3361281181600087878787612d94565b60005b84518110156128ac5783818151811061282f5761282f613e62565b602002602001015160008087848151811061284c5761284c613e62565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546128949190614004565b909155508190506128a481613feb565b915050612814565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516128fd92919061404d565b60405180910390a461223e81600087878787613206565b6001600160a01b038516331480612930575061293085336106a9565b6129935760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b60648201526084016107f2565b61223e8585858585613302565b6001600160a01b038316612a025760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016107f2565b336000612a0e84612f22565b90506000612a1b84612f22565b9050612a3b83876000858560405180602001604052806000815250612d94565b6000858152602081815260408083206001600160a01b038a16845290915290205484811015612ab85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016107f2565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261272b565b8151835114612b925760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016107f2565b6001600160a01b038416612bf65760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016107f2565b33612c05818787878787612d94565b60005b8451811015612d2e576000858281518110612c2557612c25613e62565b602002602001015190506000858381518110612c4357612c43613e62565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015612cd65760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016107f2565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612d13908490614004565b9250508190555050505080612d2790613feb565b9050612c08565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612d7e92919061404d565b60405180910390a4610a27818787878787613206565b6001600160a01b038516612e1b5760005b8351811015612e1957828181518110612dc057612dc0613e62565b602002602001015160036000868481518110612dde57612dde613e62565b602002602001015181526020019081526020016000206000828254612e039190614004565b90915550612e12905081613feb565b9050612da5565b505b6001600160a01b038416610a275760005b835181101561272b576000848281518110612e4957612e49613e62565b602002602001015190506000848381518110612e6757612e67613e62565b6020026020010151905060006003600084815260200190815260200160002054905081811015612eff5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f7460448201527f616c537570706c7900000000000000000000000000000000000000000000000060648201526084016107f2565b60009283526003602052604090922091039055612f1b81613feb565b9050612e2c565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612f5c57612f5c613e62565b602090810291909101015292915050565b6001600160a01b0384163b15610a275760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612fb1908990899088908890889060040161407b565b6020604051808303816000875af1925050508015612fec575060408051601f3d908101601f19168201909252612fe9918101906140be565b60015b6130a157612ff86140db565b806308c379a003613031575061300c6140f7565b806130175750613033565b8060405162461bcd60e51b81526004016107f291906135d2565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e74657200000000000000000000000060648201526084016107f2565b6001600160e01b0319811663f23a6e6160e01b1461272b5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016107f2565b816001600160a01b0316836001600160a01b0316036131995760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c66000000000000000000000000000000000000000000000060648201526084016107f2565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384163b15610a275760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061324a9089908990889088908890600401614181565b6020604051808303816000875af1925050508015613285575060408051601f3d908101601f19168201909252613282918101906140be565b60015b61329157612ff86140db565b6001600160e01b0319811663bc197c8160e01b1461272b5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b60648201526084016107f2565b6001600160a01b0384166133665760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016107f2565b33600061337285612f22565b9050600061337f85612f22565b905061338f838989858589612d94565b6000868152602081815260408083206001600160a01b038c168452909152902054858110156134135760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016107f2565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290613450908490614004565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46134b0848a8a8a8a8a612f6d565b505050505050505050565b6001600160a01b0381168114610a6357600080fd5b600080604083850312156134e357600080fd5b82356134ee816134bb565b946020939093013593505050565b6001600160e01b031981168114610a6357600080fd5b60006020828403121561352457600080fd5b813561352f816134fc565b9392505050565b80356bffffffffffffffffffffffff8116811461355257600080fd5b919050565b6000806040838503121561356a57600080fd5b8235613575816134bb565b915061358360208401613536565b90509250929050565b6000815180845260005b818110156135b257602081850181015186830182015201613596565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061352f602083018461358c565b6000602082840312156135f757600080fd5b5035919050565b6000806040838503121561361157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561365c5761365c613620565b6040525050565b600067ffffffffffffffff82111561367d5761367d613620565b5060051b60200190565b600082601f83011261369857600080fd5b813560206136a582613663565b6040516136b28282613636565b83815260059390931b85018201928281019150868411156136d257600080fd5b8286015b848110156136ed57803583529183019183016136d6565b509695505050505050565b600082601f83011261370957600080fd5b813567ffffffffffffffff81111561372357613723613620565b60405161373a601f8301601f191660200182613636565b81815284602083860101111561374f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561378457600080fd5b853561378f816134bb565b9450602086013561379f816134bb565b9350604086013567ffffffffffffffff808211156137bc57600080fd5b6137c889838a01613687565b945060608801359150808211156137de57600080fd5b6137ea89838a01613687565b9350608088013591508082111561380057600080fd5b5061380d888289016136f8565b9150509295509295909350565b803567ffffffffffffffff8116811461355257600080fd5b803561ffff8116811461355257600080fd5b803563ffffffff8116811461355257600080fd5b8015158114610a6357600080fd5b803561355281613858565b6000806000806000806000806000806101408b8d03121561389157600080fd5b61389a8b61381a565b99506138a860208c01613832565b98506138b660408c01613844565b97506138c460608c01613844565b96506138d260808c01613832565b955060a08b01356138e281613858565b94506138f060c08c01613832565b935060e08b0135613900816134bb565b92506101008b013561391181613858565b91506101208b013567ffffffffffffffff81111561392e57600080fd5b61393a8d828e016136f8565b9150509295989b9194979a5092959850565b600082601f83011261395d57600080fd5b8135602061396a82613663565b6040516139778282613636565b83815260059390931b850182019282810191508684111561399757600080fd5b8286015b848110156136ed5780356139ae816134bb565b835291830191830161399b565b600080604083850312156139ce57600080fd5b823567ffffffffffffffff808211156139e657600080fd5b6139f28683870161394c565b93506020850135915080821115613a0857600080fd5b50613a1585828601613687565b9150509250929050565b600081518084526020808501945080840160005b83811015613a4f57815187529582019590820190600101613a33565b509495945050505050565b60208152600061352f6020830184613a1f565b600080600060608486031215613a8257600080fd5b833592506020840135613a94816134bb565b9150613aa260408501613536565b90509250925092565b600080600060608486031215613ac057600080fd5b8335613acb816134bb565b9250602084013567ffffffffffffffff80821115613ae857600080fd5b613af487838801613687565b93506040860135915080821115613b0a57600080fd5b50613b1786828701613687565b9150509250925092565b60008060008060008060008060008060006101608c8e031215613b4357600080fd5b8b359a50613b5360208d0161381a565b9950613b6160408d01613832565b9850613b6f60608d01613844565b9750613b7d60808d01613844565b9650613b8b60a08d01613832565b955060c08c0135613b9b81613858565b9450613ba960e08d01613832565b93506101008c0135613bba816134bb565b9250613bc96101208d01613866565b91506101408c013567ffffffffffffffff811115613be657600080fd5b613bf28e828f016136f8565b9150509295989b509295989b9093969950565b60008060408385031215613c1857600080fd5b8235613c23816134bb565b91506020830135613c3381613858565b809150509250929050565b600080600060608486031215613c5357600080fd5b833567ffffffffffffffff80821115613c6b57600080fd5b613c778783880161394c565b94506020860135915080821115613ae857600080fd5b67ffffffffffffffff8b16815261ffff8a8116602083015263ffffffff8a81166040840152891660608301528781166080830152861660a082015284151560c08201526001600160a01b03841660e08201528215156101008201526101406101208201819052600090613d028382018561358c565b9d9c50505050505050505050505050565b600060208284031215613d2557600080fd5b813561352f816134bb565b60008060408385031215613d4357600080fd5b82359150602083013567ffffffffffffffff811115613d6157600080fd5b613a15858286016136f8565b60008060408385031215613d8057600080fd5b8235613d8b816134bb565b91506020830135613c33816134bb565b600080600080600060a08688031215613db357600080fd5b8535613dbe816134bb565b94506020860135613dce816134bb565b93506040860135925060608601359150608086013567ffffffffffffffff811115613df857600080fd5b61380d888289016136f8565b600080600060608486031215613e1957600080fd5b8335613e24816134bb565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561081e5761081e613e39565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680613e8c57607f821691505b60208210810361093f57634e487b7160e01b600052602260045260246000fd5b808202811582820484141761081e5761081e613e39565b600082613ee057634e487b7160e01b600052601260045260246000fd5b500490565b601f821115610dd857600081815260208120601f850160051c81016020861015613f0c5750805b601f850160051c820191505b81811015610a2757828155600101613f18565b815167ffffffffffffffff811115613f4557613f45613620565b613f5981613f538454613e78565b84613ee5565b602080601f831160018114613f8e5760008415613f765750858301515b600019600386901b1c1916600185901b178555610a27565b600085815260208120601f198616915b82811015613fbd57888601518255948401946001909101908401613f9e565b5085821015613fdb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060018201613ffd57613ffd613e39565b5060010190565b8082018082111561081e5761081e613e39565b60006020828403121561402957600080fd5b5051919050565b60006020828403121561404257600080fd5b815161352f81613858565b6040815260006140606040830185613a1f565b82810360208401526140728185613a1f565b95945050505050565b60006001600160a01b03808816835280871660208401525084604083015283606083015260a060808301526140b360a083018461358c565b979650505050505050565b6000602082840312156140d057600080fd5b815161352f816134fc565b600060033d11156140f45760046000803e5060005160e01c5b90565b600060443d10156141055790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561413557505050505090565b828501915081518181111561414d5750505050505090565b843d87010160208285010111156141675750505050505090565b61417660208286010187613636565b509095945050505050565b60006001600160a01b03808816835280871660208401525060a060408301526141ad60a0830186613a1f565b82810360608401526141bf8186613a1f565b905082810360808401526141d3818561358c565b9897505050505050505056fea2646970667358221220553751a583f59b73fccba7c5af0add0f80a58ca9d562e4bcbdee7eacdc463a6e64736f6c63430008130033