59 txs
0 calls
constructor
constructor(string _name, string _symbol, string _baseUri, uint256 _supply, address _signer, address _owner, address _royaltyReceiver, uint96 _royaltyFeeNumerator)
functions
approvedContract
viewfunction approvedContract(address) view returns (bool)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
burnEnabled
viewfunction burnEnabled() view returns (bool)
DEFAULT_OPERATOR_WHITELIST_ID
viewfunction DEFAULT_OPERATOR_WHITELIST_ID() view returns (uint120)
DEFAULT_TRANSFER_SECURITY_LEVEL
viewfunction DEFAULT_TRANSFER_SECURITY_LEVEL() view returns (uint8)
DEFAULT_TRANSFER_VALIDATOR
viewfunction DEFAULT_TRANSFER_VALIDATOR() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getMessageHash
purefunction getMessageHash(address _to, uint256 _amount, bytes32 _phaseID, uint256 _price, uint256 _maxPerTx, uint256 _maxPerUser, uint256 _maxPerPhase, bytes32 _nonce) pure returns (bytes32)
getMessageHashWithToken
purefunction getMessageHashWithToken(address paymentToken, address _to, uint256 _amount, bytes32 _phaseID, uint256 _price, uint256 _maxPerTx, uint256 _maxPerUser, uint256 _maxPerPhase, bytes32 _nonce) pure returns (bytes32)
getPermittedContractReceivers
viewfunction getPermittedContractReceivers() view returns (address[])
getSecurityPolicy
viewfunction getSecurityPolicy() view returns (tuple)
getTransferValidator
viewfunction getTransferValidator() view returns (address)
getWhitelistedOperators
viewfunction getWhitelistedOperators() view returns (address[])
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isContractReceiverPermitted
viewfunction isContractReceiverPermitted(address receiver) view returns (bool)
isOperatorWhitelisted
viewfunction isOperatorWhitelisted(address operator) view returns (bool)
isTransferAllowed
viewfunction isTransferAllowed(address caller, address from, address to) view returns (bool)
isUnlocked
viewfunction isUnlocked(uint256 _id) view returns (bool)
isValidNonce
viewfunction isValidNonce(bytes32 _nonce) view returns (bool)
lockCount
viewfunction lockCount(uint256) view returns (uint256)
lockMap
viewfunction lockMap(uint256, uint256) view returns (address)
lockMapIndex
viewfunction lockMapIndex(uint256, address) view returns (uint256)
mintedByUser
viewfunction mintedByUser(address _user, bytes32 _phaseID) view returns (uint256)
mintedTotal
viewfunction mintedTotal(bytes32 _phaseID) view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(bytes32) view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
phasesStats
viewfunction phasesStats(bytes32) view returns (uint256 mintedTotal)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address, uint256)
supply
viewfunction supply() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenOwnerUnlockDisabled
viewfunction tokenOwnerUnlockDisabled() view returns (bool)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256 result)
approve
payablefunction approve(address to, uint256 tokenId) payable
burn
nonpayablefunction burn(uint256 tokenId)
freeToken
nonpayablefunction freeToken(uint256 tokenId, address lockerAddress)
lockToken
nonpayablefunction lockToken(uint256[] tokenIds)
mint
payablefunction mint(address _to, uint256 _amount, bytes32 _phaseID, uint256 _price, uint256 _maxPerTx, uint256 _maxPerUser, uint256 _maxPerPhase, bytes32 _nonce, bytes _signature) payable
mintWithToken
nonpayablefunction mintWithToken(address paymentToken, address _to, uint256 _amount, bytes32 _phaseID, uint256 _price, uint256 _maxPerTx, uint256 _maxPerUser, uint256 _maxPerPhase, bytes32 _nonce, bytes _signature)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data) payable
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId) payable
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string _baseUri)
setBurnEnabled
nonpayablefunction setBurnEnabled(bool _enabled)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint96 feeNumerator)
setSigner
nonpayablefunction setSigner(address _signer)
setSupply
nonpayablefunction setSupply(uint256 _newSupply)
setToCustomSecurityPolicy
nonpayablefunction setToCustomSecurityPolicy(uint8 level, uint120 operatorWhitelistId, uint120 permittedContractReceiversAllowlistId)
setToCustomValidatorAndSecurityPolicy
nonpayablefunction setToCustomValidatorAndSecurityPolicy(address validator, uint8 level, uint120 operatorWhitelistId, uint120 permittedContractReceiversAllowlistId)
setToDefaultSecurityPolicy
nonpayablefunction setToDefaultSecurityPolicy()
setTokenOwnerUnlockDisabled
nonpayablefunction setTokenOwnerUnlockDisabled(bool disabled)
setTokenRoyalty
nonpayablefunction setTokenRoyalty(uint256 tokenId, address receiver, uint96 feeNumerator)
setTransferValidator
nonpayablefunction setTransferValidator(address transferValidator_)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlockToken
nonpayablefunction unlockToken(uint256[] tokenIds)
updateApprovedContracts
nonpayablefunction updateApprovedContracts(address[] _contracts, bool[] _values)
withdrawETH
nonpayablefunction withdrawETH(address to) returns (uint256 amount)
withdrawToken
nonpayablefunction withdrawToken(address token, address to) returns (uint256 amount)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 fromTokenId, uint256 toTokenId)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
DefaultRoyaltySet
event DefaultRoyaltySet(address indexed receiver, uint96 feeNumerator)
EthWithdrawn
event EthWithdrawn(address indexed to, uint256 amount)
MetadataUpdate
event MetadataUpdate(uint256 tokenId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TokenLocked
event TokenLocked(uint256 indexed tokenId, address indexed approvedContract)
TokenRoyaltySet
event TokenRoyaltySet(uint256 indexed tokenId, address indexed receiver, uint96 feeNumerator)
TokenUnlocked
event TokenUnlocked(uint256 indexed tokenId, address indexed approvedContract)
TokenWithdrawn
event TokenWithdrawn(address indexed token, address indexed to, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
TransferValidatorUpdated
event TransferValidatorUpdated(address oldValidator, address newValidator)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
CreatorTokenBase__InvalidTransferValidatorContract
error CreatorTokenBase__InvalidTransferValidatorContract()
CreatorTokenBase__SetTransferValidatorFirst
error CreatorTokenBase__SetTransferValidatorFirst()
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
ShouldNotMintToBurnAddress
error ShouldNotMintToBurnAddress()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x6080604052346100d657614fe78038038061001981610115565b928339810190610100818303126100d65780516001600160401b0381116100d6578261004691830161013a565b60208201519091906001600160401b0381116100d6578361006891830161013a565b60408201516001600160401b0381116100d6576100c79461008a91840161013a565b606083015161009b608085016101a5565b916100a860a086016101a5565b936100c160e06100ba60c089016101a5565b97016101b9565b96610578565b6040516146b590816109328239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b0381118382101761011057604052565b6100db565b6040519190601f01601f191682016001600160401b0381118382101761011057604052565b81601f820112156100d6578051906001600160401b03821161011057610169601f8301601f1916602001610115565b92828452602083830101116100d65760005b82811061019057505060206000918301015290565b8060208092840101518282870101520161017b565b51906001600160a01b03821682036100d657565b51906001600160601b03821682036100d657565b156101d457565b60405162461bcd60e51b815260206004820152601d60248201527f537570706c79206d7573742062652067726561746572207468616e20300000006044820152606490fd5b1561022057565b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b4b3b732b960911b6044820152606490fd5b1561025d57565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606490fd5b1561029957565b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420626173652055524960801b6044820152606490fd5b90600182811c92168015610301575b60208310146102eb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916102e0565b601f8111610317575050565b60026000526020600020906020601f840160051c83019310610354575b601f0160051c01905b818110610348575050565b6000815560010161033d565b9091508190610334565b601f821161036b57505050565b6000526020600020906020601f840160051c830193106103a6575b601f0160051c01905b81811061039a575050565b6000815560010161038f565b9091508190610386565b80519091906001600160401b038111610110576103d9816103d26003546102d1565b600361035e565b602092601f821160011461041b5761040b92938291600092610410575b50508160011b916000199060031b1c19161790565b600355565b0151905038806103f6565b6003600052601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9160005b8681106104825750836001959610610469575b505050811b01600355565b015160001960f88460031b161c1916905538808061045e565b9192602060018192868501518155019401920161044b565b80519091906001600160401b038111610110576104c3816104bc6016546102d1565b601661035e565b602092601f82116001146104f9576104f4929382916000926104105750508160011b916000199060031b1c19161790565b601655565b6016600052601f198216937fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899160005b8681106105605750836001959610610547575b505050811b01601655565b015160001960f88460031b161c1916905538808061053c565b91926020600181928685015181550194019201610529565b805191989794969394929391906001600160401b038211610110576105a7826105a26002546102d1565b61030b565b602090601f831160011461068e579361066e936105f961067d9b9c6105f1866106739a97610608976106789e9d9b6000926104105750508160011b916000199060031b1c19161790565b6002556103b0565b6106036001600055565b6107e0565b6106113361072d565b61061b6001600d55565b61062a60ff1960155416601555565b6106358315156101cd565b6106496001600160a01b0388161515610219565b61065d6001600160a01b0386161515610256565b61066981511515610292565b61049a565b601755565b61072d565b610776565b61068c60ff1960185416601855565b565b6002600052601f19831691907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9260005b818110610715575061067d9b9c600186610608966106789d9c9a9661066e9a966106739d9a6105f997106106fc575b505050811b016002556103b0565b015160001960f88460031b161c191690553880806106ee565b929360206001819287860151815501950193016106bf565b600c80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6001600160a01b0316801561079b57600f80546001600160a01b031916919091179055565b60405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207369676e65722061646472657373000000000000000000006044820152606490fd5b906127106001600160601b038216116108d9576001600160a01b038216918215610894577f8a8bae378cb731c5c40b632330c6836c2f916f48edb967699c86736f9a6a76ef9161087561088f926108476108386100f1565b6001600160a01b039092168252565b6001600160601b0383166020820152516001600160a01b03166001600160a01b031960a084901b1617600a55565b6040516001600160601b0390911681529081906020820190565b0390a2565b60405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608490fdfe6080604052600436101561001257600080fd5b60003560e01c8063014635461461040d57806301c5866d1461040857806301ffc9a71461040357806304634d8d146103fe578063047fc9aa146103f957806306fdde03146103f4578063081812fc146103ef57806309308e5d146103ea578063095ea7b3146103e5578063098144d4146103e05780630acb7924146103db57806318160ddd146103d65780631b25b077146103d15780631c33b3281461039057806323b872dd146103cc5780632a55205a146103c75780632cba8123146103c25780632e8da829146103bd57806334608983146103b85780633aeac4e1146103b35780633b4c4b25146103ae57806342842e0e146103a957806342966c68146103a4578063495c8bf91461039f57806355f804b31461039a5780635944c753146103955780635d4c1d46146103905780635dc96d161461038b57806361347162146103865780636352211e14610381578063650b00f61461037c578063665adcfd14610377578063690d8320146103725780636c0360eb1461036d5780636c19e783146103685780636c3b86991461036357806370a082311461035e578063715018a61461035957806372abc8b71461035457806379d6dfe41461034f5780637b2c835f1461034a57806380c92d571461034557806383f1480e146103405780638da5cb5b1461033b57806395d89b41146103365780639d645a44146103315780639e317f121461032c578063a1ccfca8146102ff578063a22cb46514610327578063a9fc664e14610322578063ac52e6441461031d578063ac548a0c14610318578063b1a6505f14610313578063b88d4fde1461030e578063ba0f263714610309578063be537f4314610304578063c6089b51146102ff578063c87b56dd146102fa578063cb6b4334146102f5578063d007af5c146102f0578063da993c1c146102eb578063e985e9c5146102e6578063f2fde38b146102e15763fd762d92146102dc57600080fd5b612669565b612598565b61254e565b6123e2565b6123c6565b6123a3565b6122c9565b611f6c565b612280565b612250565b6121ff565b6121bd565b61217c565b61208f565b61203a565b611f96565b611f3b565b611f14565b611e6c565b611e43565b611dec565b611d80565b611d2b565b611ce0565b611cb5565b611c58565b611bfa565b611b0e565b611a84565b611a54565b611894565b6116dc565b6116b0565b611681565b61150e565b6114d0565b610d6f565b6113af565b611284565b61120a565b6110f0565b6110ad565b611040565b610f46565b610ee7565b610eb6565b610e72565b610dc9565b610db7565b610d07565b610cdf565b610ba6565b610a56565b6109b0565b61095f565b61092f565b610852565b6107d8565b6106ae565b610651565b610460565b610422565b600091031261041d57565b600080fd5b3461041d57600036600319011261041d57602060405171721c310194ccfc01e523fc93c9cccfa2a0ac8152f35b6001600160a01b0381160361041d57565b3461041d57604036600319011261041d576004356024356104808161044f565b3360009081526011602052604090206104a49061049f905b5460ff1690565b613795565b6104d3816104bc846000526014602052604060002090565b9060018060a01b0316600052602052604060002090565b546104df8115156137d5565b6104f3836000526012602052604060002090565b5481811461061e578061059c61058c61053c61052f6105b0956105208a6000526013602052604060002090565b90600052602052604060002090565b546001600160a01b031690565b9261057884610559886105208c6000526013602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b610520886000526013602052604060002090565b80546001600160a01b0319169055565b6104bc856000526014602052604060002090565b555b60006105cc826104bc856000526014602052604060002090565b556105e1826000526012602052604060002090565b6105eb8154613811565b90556001600160a01b0316907f0fe7d9801197f79ef3b1595d19379eb58f0fff5f98b0f6d6f34c03cae5306c37600080a3005b5061058c61063a91610520856000526013602052604060002090565b6105b2565b6001600160e01b031981160361041d57565b3461041d57602036600319011261041d5760206106786004356106738161063f565b6126ee565b6040519015158152f35b602435906001600160601b038216820361041d57565b604435906001600160601b038216820361041d57565b3461041d57604036600319011261041d576004356106cb8161044f565b6106d3610682565b6106db61393d565b6106f26127106001600160601b0383161115613e4c565b6001600160a01b038216918215610793577f8a8bae378cb731c5c40b632330c6836c2f916f48edb967699c86736f9a6a76ef9161077461078e92610746610737610af1565b6001600160a01b039092168252565b6001600160601b0383166020820152516001600160a01b03166001600160a01b031960a084901b1617600a55565b6040516001600160601b0390911681529081906020820190565b0390a2005b60405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606490fd5b3461041d57600036600319011261041d576020601754604051908152f35b60005b8381106108095750506000910152565b81810151838201526020016107f9565b90602091610832815180928185528580860191016107f6565b601f01601f1916010190565b90602061084f928181520190610819565b90565b3461041d57600036600319011261041d57604051600060025461087481611963565b808452906001811690811561090b57506001146108ac575b6108a88361089c81850382610ad0565b6040519182918261083e565b0390f35b600260009081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106108f15750909150810160200161089c61088c565b9192600181602092548385880101520191019092916108d9565b60ff191660208086019190915291151560051b8401909101915061089c905061088c565b3461041d57602036600319011261041d57602061094d60043561278c565b6040516001600160a01b039091168152f35b3461041d57604036600319011261041d5760206109a76024356004356109848261044f565b6000526014835260406000209060018060a01b0316600052602052604060002090565b54604051908152f35b604036600319011261041d576004356109c88161044f565b602435906001600160a01b036109dd83613a2c565b1690813303610a30575b6109ff81610559856000526006602052604060002090565b6001600160a01b0316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b600082815260076020908152604080832033845290915290205460ff166109e75761386d565b3461041d57600036600319011261041d576009546040516001600160a01b039091168152602090f35b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ab057604052565b610a7f565b606081019081106001600160401b03821117610ab057604052565b90601f801991011681019081106001600160401b03821117610ab057604052565b60405190610b00604083610ad0565b565b60405190610b00606083610ad0565b6001600160401b038111610ab05760051b60200190565b602060031982011261041d57600435906001600160401b03821161041d578060238301121561041d578160040135610b5f81610b11565b92610b6d6040519485610ad0565b8184526024602085019260051b82010192831161041d57602401905b828210610b965750505090565b8135815260209182019101610b89565b3461041d57610bb436610b28565b60005b8151811015610cdd5780610bcd600192846127dc565b51336000526011602052610be7604060002060ff90541690565b8015610cb8575b610bf790613795565b610c19610c12336104bc846000526014602052604060002090565b54156138e2565b610c36610c30826000526012602052604060002090565b546130e9565b610c523361055983610520866000526013602052604060002090565b610c6a336104bc846000526014602052604060002090565b55610c7f816000526012602052604060002090565b610c89815461392e565b905533907f9ecfd70e9ff36df72989324a49559383d39f9290d700b10cf5ac10dcb68d2643600080a301610bb7565b50610bf7610cd4610cc883612f05565b6001600160a01b031690565b33149050610bee565b005b3461041d57600036600319011261041d5760005460015460209103600019015b604051908152f35b3461041d57606036600319011261041d576020610678600435610d298161044f565b602435610d358161044f565b60443591610d428361044f565b612801565b634e487b7160e01b600052602160045260246000fd5b906007821015610d6a5752565b610d47565b3461041d57600036600319011261041d57602060405160018152f35b606090600319011261041d57600435610da38161044f565b90602435610db08161044f565b9060443590565b610cdd610dc336610d8b565b916128cc565b3461041d57604036600319011261041d5760043560243590600052600b602052610df66040600020612aaf565b80519091906001600160a01b031615610e55575b612710610e28610e39926001600160601b0360208601511690612aea565b92519204916001600160a01b031690565b604080516001600160a01b039290921682526020820192909252f35b9050610e39612710610e28610e68612a89565b9392505050610e0a565b3461041d57604036600319011261041d57600435602435906000526013602052604060002090600052602052602060018060a01b0360406000205416604051908152f35b3461041d57602036600319011261041d576020610678600435610ed88161044f565b612b63565b8015150361041d57565b3461041d57602036600319011261041d57600435610f0481610edd565b610f0c61393d565b60ff8019601554169115151617601555600080f35b604090600319011261041d57600435610f398161044f565b9060243561084f8161044f565b3461041d57610f5436610f21565b610f5c613995565b610f6461393d565b6001600160a01b03811691610f7a831515612c7f565b6040516370a0823160e01b815230600482015292906001600160a01b0316602084602481845afa92831561103b576108a894600094611006575b5083610fc091836139eb565b6040518381527f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e562090602090a3610ff66001600d55565b6040519081529081906020820190565b610fc091945061102d9060203d602011611034575b6110258183610ad0565b810190612cb1565b9390610fb4565b503d61101b565b6127f5565b3461041d57602036600319011261041d5760043561105c61393d565b600054600154900360001901811061107357601755005b60405162461bcd60e51b815260206004820152601260248201527113995dc81cdd5c1c1b1e480f081d1bdd185b60721b6044820152606490fd5b610cdd6110b936610d8b565b906110d86110d38360005260126020526040600020541590565b61288e565b604051926110e7602085610ad0565b6000845261358b565b3461041d57602036600319011261041d5760043560ff60185416156111925780611122610cc8610cc8610cdd94613a2c565b336001600160a01b03821614908115611165575b50801561114c575b61114790612cc0565b614182565b506111473361115d610cc88461278c565b14905061113e565b6001600160a01b0316600090815260076020526040902061118c91506104989033906104bc565b38611136565b60405162461bcd60e51b815260206004820152600d60248201526c109d5c9b88191a5cd8589b1959609a1b6044820152606490fd5b602060408183019282815284518094520192019060005b8181106111eb5750505090565b82516001600160a01b03168452602093840193909201916001016111de565b3461041d57600036600319011261041d576108a8611226612d9f565b604051918291826111c7565b6001600160401b038111610ab057601f01601f191660200190565b92919261125982611232565b916112676040519384610ad0565b82948184528183011161041d578281602093846000960137010152565b3461041d57602036600319011261041d576004356001600160401b03811161041d573660238201121561041d576112c590369060248160040135910161124d565b6112cd61393d565b80516001600160401b038111610ab0576112f1816112ec601654611963565b612e92565b602091601f8211600114611331576113219260009183611326575b50508160011b916000199060031b1c19161790565b601655005b01519050388061130c565b6016600052601f198216927fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242899160005b8581106113975750836001951061137e575b505050811b01601655005b015160001960f88460031b161c19169055388080611373565b91926020600181928685015181550194019201611361565b3461041d57606036600319011261041d576024356004356113cf8261044f565b6113d7610698565b6113df61393d565b6113f66127106001600160601b0383161115613e4c565b6001600160a01b03831692831561148b577f7f5b076c952c0ec86e5425963c1326dd0f03a3595c19f81d765e8ff559a6e33c916107746114869261143b610737610af1565b6001600160601b038316602082015261145e86600052600b602052604060002090565b815160209092015160a01b6001600160a01b0319166001600160a01b03909216919091179055565b0390a3005b60405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606490fd5b3461041d57600036600319011261041d57602060ff601854166040519015158152f35b6007111561041d57565b6001600160781b0381160361041d57565b3461041d57606036600319011261041d5760043561152b816114f3565b60243590611538826114fd565b60443591611545836114fd565b61154d61393d565b600954611562906001600160a01b0316610cc8565b916001600160a01b0383161561167057823b1561041d57600061159a9160405180938192630368065360e61b83523060048401612ee5565b038183875af1801561103b5761165b575b50813b1561041d57604051631182550160e11b81523060048201526001600160781b0391909116602482015260008160448183865af1801561103b57611646575b50803b1561041d5760405163235d10c560e21b81523060048201526001600160781b0383166024820152906000908290604490829084905af1801561103b5761163157005b806116406000610cdd93610ad0565b80610412565b80611640600061165593610ad0565b386115ec565b80611640600061166a93610ad0565b386115ab565b631cffe3dd60e11b60005260046000fd5b3461041d57602036600319011261041d5760206001600160a01b036116a7600435613a2c565b16604051908152f35b3461041d57602036600319011261041d5760043560005260126020526020604060002054604051908152f35b3461041d576116ea36610b28565b60005b8151811015610cdd5780611703600192846127dc565b5133600090815260116020526040902061171c90610498565b8015611861575b61172c90613795565b611744336104bc836000526014602052604060002090565b54611750811515613a9c565b611764826000526012602052604060002090565b5481811461184057806117c261058c61179161052f6117d695610520896000526013602052604060002090565b926117ae84610559886105208b6000526013602052604060002090565b610520876000526013602052604060002090565b6104bc846000526014602052604060002090565b555b60006117f2336104bc846000526014602052604060002090565b55611807816000526012602052604060002090565b6118118154613811565b905533907f0fe7d9801197f79ef3b1595d19379eb58f0fff5f98b0f6d6f34c03cae5306c37600080a3016116ed565b5061058c61185c91610520846000526013602052604060002090565b6117d8565b5061187561187160155460ff1690565b1590565b8015611723575061172c61188b610cc883612f05565b33149050611723565b3461041d57602036600319011261041d576004356118b18161044f565b6118b9613995565b6118c161393d565b6001600160a01b03166118d5811515612c7f565b47600080808084865af16118e7612f1b565b5015611928576040518181526108a892907f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b90602090a2610ff66001600d55565b60405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b90600182811c92168015611993575b602083101461197d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611972565b60405190600082601654916119b183611963565b8083529260018116908115611a3557506001146119d5575b610b0092500383610ad0565b506016600090815290917fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242895b818310611a19575050906020610b00928201016119c9565b6020919350806001915483858901015201910190918492611a01565b60209250610b0094915060ff191682840152151560051b8201016119c9565b3461041d57600036600319011261041d576108a8611a7061199d565b604051918291602083526020830190610819565b3461041d57602036600319011261041d57600435611aa18161044f565b611aa961393d565b6001600160a01b03168015611ad0576001600160601b0360a01b600f541617600f55600080f35b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207369676e6572206164647265737360501b6044820152606490fd5b3461041d57600036600319011261041d57611b2761393d565b611b2f6132df565b71721c310194ccfc01e523fc93c9cccfa2a0ac3b1561041d57604051630368065360e61b8152306004820152600160248201526000816044818371721c310194ccfc01e523fc93c9cccfa2a0ac5af1801561103b57611be5575b5071721c310194ccfc01e523fc93c9cccfa2a0ac3b1561041d57604051631182550160e11b8152306004820152600160248201526000816044818371721c310194ccfc01e523fc93c9cccfa2a0ac5af1801561103b5761163157005b806116406000611bf493610ad0565b38611b89565b3461041d57602036600319011261041d57600435611c178161044f565b6001600160a01b03168015611c4757600052600560205260206001600160401b0360406000205416604051908152f35b6323d3ad8160e21b60005260046000fd5b3461041d57600036600319011261041d57611c7161393d565b600c80546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461041d57602036600319011261041d57602061067860043560005260126020526040600020541590565b3461041d57604036600319011261041d5760206109a7600435611d028161044f565b602435600052600e835260016040600020019060018060a01b0316600052602052604060002090565b3461041d57602036600319011261041d57600435611d4881610edd565b611d5061393d565b60ff8019601854169115151617601855600080f35b9080601f8301121561041d5781602061084f9335910161124d565b3461041d5761014036600319011261041d57600435611d9e8161044f565b60243590611dab8261044f565b60443560e43560c43560a435608435606435610104359561012435986001600160401b038a1161041d57611de6610cdd9a3690600401611d65565b98612f4b565b3461041d5761012036600319011261041d57611e38600435611e0d8161044f565b602435611e198161044f565b60443560643560843560a4359160c4359360e4359561010435976131c1565b604051908152602090f35b3461041d57600036600319011261041d57600c546040516001600160a01b039091168152602090f35b3461041d57600036600319011261041d576040516000600354611e8e81611963565b808452906001811690811561090b5750600114611eb5576108a88361089c81850382610ad0565b600360009081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210611efa5750909150810160200161089c61088c565b919260018160209254838588010152019101909291611ee2565b3461041d57602036600319011261041d576020610678600435611f368161044f565b613231565b3461041d57602036600319011261041d576004356000526010602052602060ff604060002054166040519015158152f35b3461041d57602036600319011261041d576020610cff600435600052600e60205260406000205490565b3461041d57604036600319011261041d57600435611fb38161044f565b60243590611fc082610edd565b336000526007602052611ffe82611fed8360406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b60405191151582526001600160a01b03169033907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b3461041d57602036600319011261041d57610cdd60043561205a8161044f565b613412565b9181601f8401121561041d578235916001600160401b03831161041d576020808501948460051b01011161041d57565b3461041d57604036600319011261041d576004356001600160401b03811161041d576120bf90369060040161205f565b906024356001600160401b03811161041d576120df90369060040161205f565b90916120e961393d565b81840361214d5760005b8481106120fc57005b8061214761210d600193868861351e565b3561211781610edd565b611fed61212d612128858b8961351e565b61352e565b6001600160a01b0316600090815260116020526040902090565b016120f3565b60405162461bcd60e51b8152602060048201526007602482015266042d8cadccee8d60cb1b6044820152606490fd5b3461041d5761010036600319011261041d576020610cff60043561219f8161044f565b6024356044356064356084359060a4359260c4359460e43596613538565b3461041d57602036600319011261041d576004356121da8161044f565b60018060a01b03166000526011602052602060ff604060002054166040519015158152f35b608036600319011261041d576004356122178161044f565b602435906122248261044f565b604435606435926001600160401b03841161041d5761224a610cdd943690600401611d65565b9261358b565b3461041d57602036600319011261041d576004356000526010602052602060ff6040600020541615604051908152f35b3461041d57600036600319011261041d57606061229b613606565b6001600160781b0360408051926122b3848251610d5d565b8260208201511660208501520151166040820152f35b3461041d57602036600319011261041d576004356122e68161381e565b15612392576122f361199d565b805190919060009015612376575060405160a08101604052600a608082019260008452925b600019019260308282060184530491821561233557600a90612318565b61236292509261236861089c9260806108a896601f1981019203018152604051948593602085019061369b565b9061369b565b03601f198101835282610ad0565b6040516108a89350915061238b602083610ad0565b815261089c565b630a14c4b560e41b60005260046000fd5b3461041d57600036600319011261041d57602060ff601554166040519015158152f35b3461041d57600036600319011261041d576108a86112266136b2565b61012036600319011261041d576004356123fb8161044f565b60e435906024359060643560c43560a435608435604435610104356001600160401b03811161041d57612432903690600401611d65565b9461243b613995565b61244632331461305c565b8715612509576124ee6124fa966124e96124ff9b8888886124f3978f8f908b9161248f612485836124806000546000199060015490030190565b6130f7565b6017541015613104565b6124a461249c8386612aea565b341015613754565b6124c66124c16118716104988b6000526010602052604060002090565b613145565b6124e48860005260106020526040600020600160ff19825416179055565b613538565b613ae8565b613181565b8686613bc4565b613d0e565b610cdd6001600d55565b60405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b3461041d57602060ff61258c61256336610f21565b6001600160a01b0391821660009081526007865260408082209290931681526020919091522090565b54166040519015158152f35b3461041d57602036600319011261041d576004356125b58161044f565b6125bd61393d565b6001600160a01b0381161561261557600c80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b3461041d57608036600319011261041d576004356126868161044f565b602435612692816114f3565b60443561269e816114fd565b606435926126ab846114fd565b6126b361393d565b6126bc81613412565b6001600160a01b031691823b1561041d57600061159a9160405180938192630368065360e61b83523060048401612ee5565b6001600160e01b031916632483248360e11b8114612786576310c8aba560e31b8114908115612746575b8115612722575090565b63152a902d60e11b811491508115612738575090565b6301ffc9a760e01b14905090565b90506301ffc9a760e01b81148015612776575b8015612766575b90612718565b50635b5e139f60e01b8114612760565b506380ac58cd60e01b8114612759565b50600190565b6127958161381e565b156127b5576000908152600660205260409020546001600160a01b031690565b6333d1c03960e21b60005260046000fd5b634e487b7160e01b600052603260045260246000fd5b80518210156127f05760209160051b010190565b6127c6565b6040513d6000823e3d90fd5b600954919290916001600160a01b03168061281f5750505050600190565b803b1561041d5760405163050bf71960e31b81526001600160a01b039384166004820152938316602485015291166044830152600090829060649082905afa9081612874575b5061286f57600090565b600190565b8061288160008093610ad0565b80031261041d5738612865565b1561289557565b60405162461bcd60e51b815260206004820152600f60248201526e151bdad95b881a5cc81b1bd8dad959608a1b6044820152606490fd5b91906128e76110d38360005260126020526040600020541590565b6128f082613a2c565b6001600160a01b03938416938116849003612a84576000838152600660205260409020805461292e6001600160a01b03871633908114908314171590565b612a54575b61293e858588613eab565b612a4a575b506001600160a01b038416600090815260056020526040902080546000190190556001600160a01b0382166000908152600560205260409020805460010190556001600160a01b0382164260a01b17600160e11b176129ac846000526004602052604060002090565b55600160e11b811615612a00575b506001600160a01b0381168281857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4156129fb57610b0092613fec565b61389f565b60018301612a18816000526004602052604060002090565b5415612a25575b506129ba565b6000548114612a1f57612a42906000526004602052604060002090565b553880612a1f565b6000905538612943565b612a7a611871610498336104bc8a60018060a01b03166000526007602052604060002090565b156129335761388e565b61387e565b60405190612a9682610a95565b600a546001600160a01b038116835260a01c6020830152565b90604051612abc81610a95565b91546001600160a01b038116835260a01c6020830152565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715612afd57565b612ad4565b9081606091031261041d576040805191612b1b83610ab5565b8051612b26816114f3565b83526020810151612b36816114fd565b60208401520151612b46816114fd565b604082015290565b9081602091031261041d575161084f81610edd565b600954612b78906001600160a01b0316610cc8565b906001600160a01b038216612b8e575050600090565b604051635caaa2a960e11b815230600482015290606082602481865afa92831561103b57612bd46020612c11958195600091612c50575b5001516001600160781b031690565b604051636b96ef2f60e11b81526001600160781b0390911660048201526001600160a01b0390921660248301529092839190829081906044820190565b03915afa90811561103b57600091612c27575090565b61084f915060203d602011612c49575b612c418183610ad0565b810190612b4e565b503d612c37565b612c72915060603d606011612c78575b612c6a8183610ad0565b810190612b02565b38612bc5565b503d612c60565b15612c8657565b606460405162461bcd60e51b81526020600482015260046024820152630746f3d360e41b6044820152fd5b9081602091031261041d575190565b15612cc757565b60405162461bcd60e51b8152602060048201526011602482015270109d5c9b881b9bdd08185c1c1c9bdd9959607a1b6044820152606490fd5b60208183031261041d578051906001600160401b03821161041d57019080601f8301121561041d578151612d3381610b11565b92612d416040519485610ad0565b81845260208085019260051b82010192831161041d57602001905b828210612d695750505090565b602080918351612d788161044f565b815201910190612d5c565b60405190612d92602083610ad0565b6000808352366020840137565b600954606090612db7906001600160a01b0316610cc8565b6001600160a01b038116612dcf57505061084f612d83565b604051635caaa2a960e11b8152306004820152908282602481845afa91821561103b576020600093612e1692612e42968692612e75575b505001516001600160781b031690565b604051633fe5df9960e01b81526001600160781b03909116600482015292839190829081906024820190565b03915afa90811561103b57600091612e58575090565b61084f91503d806000833e612e6d8183610ad0565b810190612d00565b612e8b9250803d10612c7857612c6a8183610ad0565b3880612e06565b601f8111612e9e575050565b60166000526020600020906020601f840160051c83019310612edb575b601f0160051c01905b818110612ecf575050565b60008155600101612ec4565b9091508190612ebb565b6001600160a01b039091168152604081019291610b009160200190610d5d565b6001600160a01b0390612f1790613a2c565b1690565b3d15612f46573d90612f2c82611232565b91612f3a6040519384610ad0565b82523d6000602084013e565b606090565b939197929594989096612f5c613995565b612f6732331461305c565b6001600160a01b038516958615613026578a8861300687612fec61301c9f8f9a988f6124fa9f9a8a6130129f8f958f61300d9f888f94976124e998612fb06124ee9c15156130a8565b600054600154612fca9161248591869103600019016130f7565b612fe76124c16118716104988c6000526010602052604060002090565b6131c1565b60005260106020526040600020600160ff19825416179055565b868b613bc4565b612aea565b9030903390613cca565b610b006001600d55565b60405162461bcd60e51b815260206004820152600e60248201526d07061796d656e74546f6b656e3d360941b6044820152606490fd5b1561306357565b60405162461bcd60e51b815260206004820152601760248201527f4e6f20636f6e747261637420696e746572616374696f6e0000000000000000006044820152606490fd5b156130af57565b60405162461bcd60e51b81526020600482015260126024820152710416d6f756e74206d757374206265203e20360741b6044820152606490fd5b9060018201809211612afd57565b91908201809211612afd57565b1561310b57565b60405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b6044820152606490fd5b1561314c57565b60405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964206e6f6e636560981b6044820152606490fd5b1561318857565b60405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606490fd5b9795939196949290966040519760208901996001600160601b03199060601b168a526001600160601b03199060601b16603489015260488801526068870152608886015260a885015260c884015260e8830152610108820152610108815261322b61012882610ad0565b51902090565b600954613246906001600160a01b0316610cc8565b906001600160a01b03821661325c575050600090565b604051635caaa2a960e11b815230600482015290606082602481865afa92831561103b576132a26040612c1195602095600091612c50575001516001600160781b031690565b6040516309445f5360e41b81526001600160781b0390911660048201526001600160a01b0390921660248301529092839190829081906044820190565b6132e761393d565b600071721c310194ccfc01e523fc93c9cccfa2a0ac3b6133a5575b15613394576009547fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac9071721c310194ccfc01e523fc93c9cccfa2a0ac90613352906001600160a01b0316610cc8565b604080516001600160a01b03928316815292909116602083015290a1600980546001600160a01b03191671721c310194ccfc01e523fc93c9cccfa2a0ac179055565b6332483afb60e01b60005260046000fd5b6040516301ffc9a760e01b81526000600482015260208160248171721c310194ccfc01e523fc93c9cccfa2a0ac5afa600091816133f1575b506133e9575b50613302565b9050386133e3565b61340b91925060203d602011612c4957612c418183610ad0565b90386133dd565b61341a61393d565b6000813b6134ba575b6001600160a01b0382169081151590816134b1575b5061339457600954610b00927fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac91613478906001600160a01b0316610cc8565b604080516001600160a01b03928316815292909116602083015290a160018060a01b03166001600160601b0360a01b6009541617600955565b90501538613438565b6040516301ffc9a760e01b8152600060048201526020816024816001600160a01b0387165afa600091816134fd575b506134f5575b50613423565b9050386134ef565b61351791925060203d602011612c4957612c418183610ad0565b90386134e9565b91908110156127f05760051b0190565b3561084f8161044f565b969492909593916040519660208801986001600160601b03199060601b168952603488015260548701526074860152609485015260b484015260d483015260f482015260f4815261322b61011482610ad0565b9291906135a76110d38360005260126020526040600020541590565b6135b28282866128cc565b803b6135bf575b50505050565b6135c8936143de565b156135d657388080806135b9565b6368d2bf6b60e11b60005260046000fd5b604051906135f482610ab5565b60006040838281528260208201520152565b61360e6135e7565b50600954613624906001600160a01b0316610cc8565b6001600160a01b038116613650575061363b610b02565b60008152600060208201526000604082015290565b604051635caaa2a960e11b815230600482015290606090829060249082905afa90811561103b57600091613682575090565b61084f915060603d606011612c7857612c6a8183610ad0565b906136ae602092828151948592016107f6565b0190565b6009546060906136ca906001600160a01b0316610cc8565b6001600160a01b0381166136e257505061084f612d83565b604051635caaa2a960e11b8152306004820152908282602481845afa91821561103b57604060009361372892612e42968692612e7557505001516001600160781b031690565b6040516305fa529b60e21b81526001600160781b03909116600482015292839190829081906024820190565b1561375b57565b60405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606490fd5b1561379c57565b60405162461bcd60e51b8152602060048201526011602482015270043616e6e6f7420757064617465206d617607c1b6044820152606490fd5b156137dc57565b60405162461bcd60e51b815260206004820152600d60248201526c1251081b9bdd081b1bd8dad959609a1b6044820152606490fd5b8015612afd576000190190565b90600091806001111561382e5750565b600054811061383a5750565b9091505b80600052600460205260406000205490816138625761385d9150613811565b61383e565b50600160e01b161590565b6367d9dca160e11b60005260046000fd5b62a1148160e81b60005260046000fd5b632ce44b5f60e11b60005260046000fd5b633a954ecd60e21b60005260046000fd5b636f96cda160e11b60005260046000fd5b63b562e8dd60e01b60005260046000fd5b622e076360e81b60005260046000fd5b156138e957565b60405162461bcd60e51b815260206004820152601b60248201527f494420616c7265616479206c6f636b65642062792063616c6c657200000000006044820152606490fd5b6000198114612afd5760010190565b600c546001600160a01b0316330361395157565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6002600d54146139a6576002600d55565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610b0091613a27606483610ad0565b614096565b806001116138b057613a48816000526004602052604060002090565b54908115613a5f5750600160e01b81166138b05790565b90506000548110156138b0575b60001901600081815260046020526040902054908115613a955750600160e01b81166138b05790565b9050613a6c565b15613aa357565b60405162461bcd60e51b815260206004820152601760248201527f4944206e6f74206c6f636b65642062792063616c6c65720000000000000000006044820152606490fd5b613b2991613b21917f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c600020614407565b919091614449565b600f546001600160a01b0391821691161490565b15613b4457565b60405162461bcd60e51b815260206004820152601460248201527322bc31b2b2b2399036b0bc103832b9103ab9b2b960611b6044820152606490fd5b15613b8757565b60405162461bcd60e51b815260206004820152601560248201527445786365656473206d61782070657220706861736560581b6044820152606490fd5b9293909491600052600e6020528460406000209480613c7e575b5050613c2793613c1f939282600193613c47575b5080613c2b575b50613c058682546130f7565b8155019060018060a01b0316600052602052604060002090565b9182546130f7565b9055565b613c4190613c3a8884546130f7565b1115613b80565b38613bf9565b6001600160a01b038516600090815283850160205260409020613c789190613c71908a90546130f7565b1115613b3d565b38613bf2565b93929310613c90578438939293613bde565b60405162461bcd60e51b815260206004820152601260248201527108af0c6cacac8e640dac2f040e0cae440e8f60731b6044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152610b0091613a27608483610ad0565b60405192613d1d602085610ad0565b60008452600054938315613e4757613d36848685613fab565b6001600160a01b0383164260a01b6001861460e11b1717613d61866000526004602052604060002090565b556001600160a01b03831660008181526005602052604090208054680100000000000000018702019055938415613e4257808601938660015b15613dce575b60008888827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4613d9a565b9660010196858803613da05790939650613def929550819460005583613fab565b803b613dfa57505050565b9091926000549283039260015b15613e2c575b6000613e216118718760018801978761433d565b15613e07575b6135d6565b808410613e0d5792509250506000540361041d57565b6138d2565b6138c1565b15613e5357565b60405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608490fd5b91909160005b60018110613ebf5750505050565b8083018311612afd576001600160a01b0384811615908316158080613fa4575b15613ef557635cbd944160e01b60005260046000fd5b15613f04575b50600101613eb1565b15613f10575b38613efb565b6009546001600160a01b038116613f28575b50613f0a565b613f3a906001600160a01b0316610cc8565b90813b1561041d5760405163050bf71960e31b81523360048201526001600160a01b0384811660248301528616604482015291600090839060649082905afa91821561103b57600192613f8f575b5090613f22565b806116406000613f9e93610ad0565b38613f88565b5081613edf565b9060005b838110613fbc5750505050565b8082018211612afd576001600160a01b038316613fe457635cbd944160e01b60005260046000fd5b600101613faf565b60005b60018110613ffd5750505050565b8084018411612afd576001600160a01b0382161580614035575b1561402d57635cbd944160e01b60005260046000fd5b600101613fef565b506001600160a01b03831615614017565b60005b6001811061405657505050565b8083018311612afd576001600160a01b038216158061408e575b1561408657635cbd944160e01b60005260046000fd5b600101614049565b506001614070565b6040805190926140fb926001600160a01b03169060009081906140b98786610ad0565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af16140f5612f1b565b916145ee565b8051908115918215614168575b5050156141125750565b5162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b61417b9250602080918301019101612b4e565b3880614108565b9061418c82613a2c565b600083815260066020526040812080546001600160a01b038416801596949093909291905b600181106142c157506142599596506142b7575b506001600160a01b038216600090815260056020526040902080546fffffffffffffffffffffffffffffffff0190556001600160a01b0382164260a01b17600360e01b1761421d846000526004602052604060002090565b55600160e11b81161561426d575b50816000827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4614046565b610b0061426860015460010190565b600155565b60018301614285816000526004602052604060002090565b5415614292575b5061422b565b600054811461428c576142af906000526004602052604060002090565b55388061428c565b60009055386141c5565b8086018611612afd5787806142ef575b156142e757635cbd944160e01b60005260046000fd5b6001016141b1565b5060016142d1565b9081602091031261041d575161084f8161063f565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261084f92910190610819565b91614365926020926000604051809681958294630a85bd0160e11b845284336004860161430c565b03926001600160a01b03165af1600091816143ad575b5061439757614388612f1b565b805115613e2757805190602001fd5b6001600160e01b031916630a85bd0160e11b1490565b6143d091925060203d6020116143d7575b6143c88183610ad0565b8101906142f7565b903861437b565b503d6143be565b906020926000614365959360405196879586948593630a85bd0160e11b8552336004860161430c565b90604181511460001461443557614431916020820151906060604084015193015160001a9061456e565b9091565b5050600090600290565b60051115610d6a57565b6144528161443f565b8061445a5750565b6144638161443f565b600181036144b55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015280606481015b0390fd5b6144be8161443f565b6002810361450b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b8061451760039261443f565b1461451e57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116145e25760209360009360ff60809460405194855216868401526040830152606082015282805260015afa1561103b576000516001600160a01b038116156145d95790600090565b50600090600190565b50505050600090600390565b919290156146505750815115614602575090565b3b1561460b5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156146635750805190602001fd5b60405162461bcd60e51b81529081906144b1906004830161083e56fea264697066735822122059639f89a5268584c7d116809097991a6cd6cd89ce91a301f526ac6a3d74cdaa64736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000001e61000000000000000000000000a6192be4278a5a40cc50133ec363090cde3b5df100000000000000000000000092bb4d4850196e79b823ec29e9ba7ce0428391de00000000000000000000000092bb4d4850196e79b823ec29e9ba7ce0428391de00000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000013546865204465636b2062792047616d626c6f720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035444470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6e66742e67616d626c6f722e696f2f6170692f6d657461646174612f00000000000000000000000000000000000000000000000000000000