0 txs
421 calls
constructor
constructor()
functions
auctionBids
viewfunction auctionBids(address, uint256) view returns (address bidder, uint128 amount, uint8 marketplaceFeeAtTime)
auctionLengthExtension
viewfunction auctionLengthExtension() view returns (uint256)
creatorRootToConfig
viewfunction creatorRootToConfig(address, bytes32) view returns (address currency, uint128 startingAmount, uint64 duration, uint32 nonce)
getAuctionDetails
viewfunction getAuctionDetails(address _originContract, uint256 _tokenId) view returns (address, uint32, uint64, uint64, address, uint128, address[], uint8[])
getCreatorAuctionMerkleRootNonce
viewfunction getCreatorAuctionMerkleRootNonce(address _user, bytes32 _root) view returns (uint32)
getCurrentBid
viewfunction getCurrentBid(address _originContract, uint256 _tokenId) view returns (address bidder, address currencyAddress, uint128 amount, uint8 marketplaceFeeAtTime)
getMerkleAuctionConfig
viewfunction getMerkleAuctionConfig(address _creator, bytes32 _root) view returns (tuple)
getTokenAuctionNonce
viewfunction getTokenAuctionNonce(address _creator, bytes32 _root, address _tokenContract, uint256 _tokenId) view returns (uint32)
getUserAuctionMerkleRoots
viewfunction getUserAuctionMerkleRoots(address _user) view returns (bytes32[])
isTokenInRoot
purefunction isTokenInRoot(bytes32 _root, address _origin, uint256 _tokenId, bytes32[] _proof) pure returns (bool)
maxAuctionLength
viewfunction maxAuctionLength() view returns (uint256)
minimumBidIncreasePercentage
viewfunction minimumBidIncreasePercentage() view returns (uint256)
owner
viewfunction owner() view returns (address)
tokenAuctions
viewfunction tokenAuctions(address, uint256) view returns (address auctionCreator, address currencyAddress, uint32 creationBlock, uint64 startingTime, uint64 lengthOfAuction, uint128 minimumBid)
bid
payablefunction bid(address _originContract, uint256 _tokenId, address _currencyAddress, uint128 _amount) payable
bidWithAuctionMerkleProof
payablefunction bidWithAuctionMerkleProof(address _currencyAddress, address _originContract, uint256 _tokenId, address _creator, bytes32 _merkleRoot, uint128 _bidAmount, bytes32[] _proof) payable
cancelAuctionMerkleRoot
nonpayablefunction cancelAuctionMerkleRoot(bytes32 _root)
initialize
nonpayablefunction initialize(address _marketplaceSettings, address _royaltyEngine, address _spaceOperatorRegistry, address _approvedTokenRegistry, address _payments, address _stakingRegistry, address _stakingSettings, address _networkBeneficiary, address _erc20ApprovalManager, address _erc721ApprovalManager)
registerAuctionMerkleRoot
nonpayablefunction registerAuctionMerkleRoot(bytes32 _merkleRoot, address _currency, uint128 _startingAmount, uint64 _duration, address[] _splitAddresses, uint8[] _splitRatios)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuctionLengthExtension
nonpayablefunction setAuctionLengthExtension(uint256 _auctionLengthExtension)
setMaxAuctionLength
nonpayablefunction setMaxAuctionLength(uint256 _maxAuctionLength)
setMinimumBidIncreasePercentage
nonpayablefunction setMinimumBidIncreasePercentage(uint8 _minimumBidIncreasePercentage)
settleAuction
nonpayablefunction settleAuction(address _originContract, uint256 _tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AuctionBid
event AuctionBid(address indexed contractAddress, address indexed bidder, uint256 indexed tokenId, address currencyAddress, uint128 amount, uint8 marketplaceFee, address previousBidder)
AuctionMerkleBid
event AuctionMerkleBid(address indexed contractAddress, uint256 indexed tokenId, address indexed bidder, address creator, address currencyAddress, bytes32 merkleRoot, uint128 amount, uint32 nonce)
AuctionMerkleRootCancelled
event AuctionMerkleRootCancelled(address indexed creator, bytes32 indexed merkleRoot)
AuctionMerkleRootRegistered
event AuctionMerkleRootRegistered(address indexed creator, bytes32 indexed merkleRoot, address currencyAddress, uint128 startingAmount, uint64 duration, uint32 nonce)
AuctionSettled
event AuctionSettled(address indexed contractAddress, uint256 indexed tokenId, address seller, address bidder, uint128 amount, address currencyAddress, uint8 marketplaceFee)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
TooManyRoyaltyRecipients
error TooManyRoyaltyRecipients()
creation bytecode
0x60808060405234620000c6576000549060ff8260081c1662000074575060ff8082160362000038575b60405161548f9081620000cc8239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a13862000028565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe60806040526004361015610068575b361561001957600080fd5b60405162461bcd60e51b815260206004820152602160248201527f455448207061796d656e74206e6f74206163636570746564206469726563746c6044820152607960f81b6064820152608490fd5b6000803560e01c80630cd87c6814613e655780630e519ef914613e4757806310f7978914613e24578063299a0e1e14613db9578063301aa5141461356357806348626b90146135355780634ebade5f146134875780635138b08c146127da5780635e51b2d4146127835780636699ee4314611f365780636fe9f44c14611f18578063715018a614611eba57806376ffb5a714611cfd5780638da5cb5b14611cd457806395cf6b9014610fb8578063ac964f8e14610eaf578063affdafd814610e8c578063bb120e6614610e11578063c306b378146104d1578063c47c35c11461043c578063d97f7657146103a8578063daa264991461038a578063e29ac89014610340578063e35ed75a1461021a5763f2fde38b14610187575061000e565b34610217576020366003190112610217576101a0613fed565b6101a86140f3565b6001600160a01b038116156101c3576101c09061414b565b80f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b80fd5b503461021757604036600319011261021757608090610237613fed565b906024359060018060a01b038093169182825260ff60209360a28552604084208385528552604084209580604060018151996102728b6141cb565b838154168b52015496888a01966001600160801b0395868a16895287848d019a8e1c168a52825260a18a52828220908252895220976040516102b381614194565b828a5416815260e061031c600460018d01549c8c85019d8e888216905263ffffffff8160a01c16604087015260c01c60608601528860028201546001600160401b038116608088015260401c1660a0860152610311600382016142a9565b60c086015201614303565b91015251169651169251169251169260405194855284015260408301526060820152f35b50346102175760403660031901126102175760209063ffffffff906040906001600160a01b0361036e613fed565b16815260a8845281812060243582528452205416604051908152f35b5034610217578060031936011261021757602060a554604051908152f35b50346102175760803660031901126102175763ffffffff60406020926103cc613fed565b61041a6104286103da614019565b9285519283918983019560643591602435908892606894926001600160601b0319809360601b168552601485015260601b16603483015260488201520190565b03601f198101835282614214565b519020815260a98452205416604051908152f35b50346102175760403660031901126102175760c0906001600160a01b03906001600160801b03906040908361046f613fed565b16815260a160205281812060243582526020522091808354169260026001820154910154916040519485528116602085015263ffffffff8160a01c166040850152841c60608401526001600160401b038116608084015260401c1660a0820152f35b503461021757610140366003190112610217576104ec613fed565b6104f4614003565b6104fc614019565b61050461402f565b60843592906001600160a01b0384168403610e0c5760a435906001600160a01b0382168203610e0c5760c435906001600160a01b0382168203610e0c5760e435956001600160a01b0387168703610e0c5761010435946001600160a01b0386168603610e0c5761012435966001600160a01b0388168803610e0c578a549960ff8b60081c16159a8b809c610dff575b8015610de8575b15610d8c5760ff1981166001178d558b610d7b575b506001600160a01b03811615610d1a576001600160a01b03831615610cbf576001600160a01b03821615610c5c576001600160a01b03851615610bf9576001600160a01b03841615610ba3576001600160a01b03871615610b46576001600160a01b03861615610ae9576001600160a01b038a1615610a89576001600160a01b03881615610a27576001600160a01b038916156109c45760405163ef8c824960e01b81526001600160a01b039a8b166004820152908a16602482015290891660448201529088166064820152908716608482015290861660a482015290851660c482015290841660e48201529083166101048201529116610124820152610140816101448173cedbaf5896a180b5af84194ba9e52f3227520e0c5af49081156109b957839161084e575b5060018060a01b03815116906001600160601b0360a01b9182609754161760975560018060a01b0360208201511682609854161760985560018060a01b0360408201511682609954161760995560018060a01b0360608201511682609a541617609a5560018060a01b0360808201511682609b541617609b5560018060a01b0360a08201511682609c541617609c5560018060a01b0360c08201511682609d541617609d5560018060a01b0360e08201511682609e541617609e5560018060a01b036101008201511682609f541617609f5561012060018060a01b03910151169060a054161760a055600160a35562093a8060a45561038460a5556107ed60ff835460081c166107e881614249565b614249565b6107f63361414b565b81549061080c60ff8360081c166107e881614249565b6001606555610819575080f35b61ff00191681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b9050610140813d610140116109b1575b8161086c6101409383614214565b810103126109ad576040519061014082018281106001600160401b038211176109975760405261089b81614235565b825260208101516001600160a01b038116810361098f57602083015260408101516001600160a01b038116810361098f57604083015260608101516001600160a01b038116810361098f57606083015260808101516001600160a01b038116810361098f57608083015260a08101516001600160a01b038116810361098f5760a083015260c08101516001600160a01b038116810361098f5760c083015260e08101516001600160a01b038116810361098f5760e083015261010081810151906001600160a01b03821682036109935783015261012090810151906001600160a01b038216820361098f57820152386106d9565b8480fd5b8580fd5b634e487b7160e01b600052604160045260246000fd5b8280fd5b3d915061085e565b6040513d85823e3d90fd5b60405162461bcd60e51b815260206004820152603560248201527f696e697469616c697a653a3a657263373231417070726f76616c4d616e616765604482015274722063616e6e6f742062652030206164647265737360581b6064820152608490fd5b60405162461bcd60e51b815260206004820152603460248201527f696e697469616c697a653a3a6572633230417070726f76616c4d616e616765726044820152732063616e6e6f742062652030206164647265737360601b6064820152608490fd5b60405162461bcd60e51b815260206004820152603260248201527f696e697469616c697a653a3a6e6574776f726b42656e65666963696172792063604482015271616e6e6f742062652030206164647265737360701b6064820152608490fd5b60405162461bcd60e51b815260206004820152602f60248201527f696e697469616c697a653a3a7374616b696e6753657474696e67732063616e6e60448201526e6f742062652030206164647265737360881b6064820152608490fd5b60405162461bcd60e51b815260206004820152602f60248201527f696e697469616c697a653a3a7374616b696e6752656769737472792063616e6e60448201526e6f742062652030206164647265737360881b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f696e697469616c697a653a3a7061796d656e74732063616e6e6f742062652030604482015267206164647265737360c01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603560248201527f696e697469616c697a653a3a617070726f766564546f6b656e52656769737472604482015274792063616e6e6f742062652030206164647265737360581b6064820152608490fd5b60405162461bcd60e51b815260206004820152603560248201527f696e697469616c697a653a3a73706163654f70657261746f7252656769737472604482015274792063616e6e6f742062652030206164647265737360581b6064820152608490fd5b60405162461bcd60e51b815260206004820152602d60248201527f696e697469616c697a653a3a726f79616c7479456e67696e652063616e6e6f7460448201526c2062652030206164647265737360981b6064820152608490fd5b60405162461bcd60e51b815260206004820152603360248201527f696e697469616c697a653a3a6d61726b6574706c61636553657474696e67732060448201527263616e6e6f742062652030206164647265737360681b6064820152608490fd5b61ffff1916610101178c55386105af565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561059a5750600160ff82161461059a565b50600160ff821610610593565b600080fd5b5034610217576040366003190112610217576001600160a01b039060019060409083610e3b613fed565b16815260a760205281812060243582526020522091825416910154610e88604051928263ffffffff859460c01c16916001600160801b036001600160401b038360801c16921690856140b2565b0390f35b503461021757602036600319011261021757610ea66140f3565b60043560a45580f35b503461021757602080600319360112610fb4576004359033835260a68152610eea826040852060019160005201602052604060002054151590565b15610f605733835260a68152610f038260408520614b03565b5033835260a78152604083209082845252610f38600360408420848155846001820155610f326002820161496a565b016149c2565b337f6c4be52b9a419eb78a1483e27346ba15e73a3f933dfc4310e9728ddf33c695f88380a380f35b6084906040519062461bcd60e51b82526004820152602760248201527f63616e63656c41756374696f6e4d65726b6c65526f6f743a3a4e6f7420726f6f6044820152663a1037bbb732b960c91b6064820152fd5b5080fd5b5060e036600319011261021757610fcd613fed565b610fd5614003565b610fdd61402f565b9160a435906001600160801b0382168203610e0c5760c4356001600160401b03811161099357611011903690600401614082565b9061101a6148fd565b8115611c7657604051606086901b6001600160601b0319166020820152604435603482015261106d929061106890611055816054810161041a565b6020815191012092608435923691614bdf565b614c2d565b15611c195760018060a01b03609854169160018060a01b038516865260a66020526110ad6084356040882060019160005201602052604060002054151590565b15611bb65760018060a01b038516865260a7602052604086206084358752602052604086209261113e6003604051956110e5876141b0565b80546001600160a01b0316875260018101546001600160801b0381166020890152608081901c6001600160401b0316604089015260c01c63ffffffff166060880152611133600282016142a9565b608088015201614303565b60a085015283516001600160a01b0390811690841603611b5657604051606087811b6001600160601b03199081166020840190815260843560348501529188901b16605483015260443560688301529061119b816088810161041a565b5190209360018060a01b038716885260a860205260408820608435895260205263ffffffff6040892054169480895260a96020528563ffffffff60408b2054161015611ae0576001600160a01b038716895260a160209081526040808b206044358c5290915289206001015460c01c611a81576001600160801b03841615611a2d57604051637cd11f4360e11b8152602081600481875afa908115611817578a916119fb575b506001600160801b03851611611997576001600160801b036020830151166001600160801b0385161061192c576040516331a9108f60e11b815260443560048201526020816024816001600160a01b038c165afa908115611817578a916118ee575b506001600160a01b038981169116036118965760a05460405163e985e9c560e01b81526001600160a01b038a811660048301529091166024820152602081806044810103816001600160a01b038c165afa908115611817578a91611867575b5015611822576040516361fe24a960e11b81526001600160801b0385166004820152602081602481875afa908115611817578a916117e3575b50611352611362916001600160801b0387166148ca565b83516001600160a01b0316614e48565b885260a9602052604088208563ffffffff1982541617905560018060a01b03815116906001600160401b03604082015116906001600160801b0360208201511660a0608083015192015192604051946113ba86614194565b60018060a01b038c168652602086015263ffffffff431660408601526001600160401b0342166060860152608085015260a084015260c083015260e082015260018060a01b038616885260a1602052604088206044358952602052604088209060018060a01b038151166001600160601b0360a01b83541617825560018060a01b0360208201511663ffffffff60a01b604083015160a01b16906001600160401b0360c01b9182606085015160c01b16911717600184015560028301906001600160401b0360808401511682549177ffffffffffffffffffffffffffffffff000000000000000060a086015160401b1692161717905560c08101518051906001600160401b0382116117cf57602060038501916114d7848461498e565b01908b5260208b208b5b8381106117b2575050505060e00151908151906001600160401b03821161179e576004602091019261151383856149ec565b019189526020892090895b8160051c811061175f5750601f198116810361170f575b505050602060049160405192838092638347592160e01b82525afa9081156117045787916116d5575b506040519061156c826141cb565b3382526001600160801b0360016020840193828616855260ff6040820194168452818060a01b0389168b5260a260205260408b206044358c5260205260408b2090828060a01b039051166001600160601b0360a01b8254161781550192511682549160ff60801b905160801b16916001600160881b031916171790558560018060a01b0360a05416803b15610fb457604051630aed65f560e11b81526001600160a01b03878116600483015288166024820152306044808301919091523560648201529082908290608490829084905af180156116ca576116b6575b5050604080516001600160a01b0396871681529286166020840152608435908301526001600160801b03166060820152608081019190915233926044359216907f5355b558f02261d348034db859415d5317f7b01cdddd74bb117cfed50d40d1089060a090a4600160655580f35b6116bf906141e6565b610993578538611648565b6040513d84823e3d90fd5b6116f7915060203d6020116116fd575b6116ef8183614214565b8101906148e4565b3861155e565b503d6116e5565b6040513d89823e3d90fd5b89928a5b601f1983168303811061173157505060051c01556020600438611535565b909360206117566001928460ff895116919060ff809160031b9316831b921b19161790565b95019101611713565b8a8b5b6020811061177757508382015560010161151e565b855190959160019160209160ff60038a901b81811b199092169216901b1792019501611762565b634e487b7160e01b8a52604160045260248afd5b82516001600160a01b0316818301556020909201916001016114e1565b634e487b7160e01b8b52604160045260248bfd5b90506020813d60201161180f575b816117fe60209383614214565b81010312610e0c575161135261133b565b3d91506117f1565b6040513d8c823e3d90fd5b60405162461bcd60e51b815260206004820152601e60248201527f6f776e6572206d757374206861766520617070726f76656420746f6b656e00006044820152606490fd5b611889915060203d60201161188f575b6118818183614214565b810190614d24565b38611302565b503d611877565b60405162461bcd60e51b815260206004820152602a60248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a4e6f74207460448201526937b5b2b71037bbb732b960b11b6064820152608490fd5b90506020813d602011611924575b8161190960209383614214565b810103126119205761191a90614235565b386112a3565b8980fd5b3d91506118fc565b60405162461bcd60e51b815260206004820152603b60248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a43616e6e6f60448201527f74206265206c6f776572207468616e206d696e696d756d2062696400000000006064820152608490fd5b60405162461bcd60e51b815260206004820152603660248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a4d757374206044820152756265206c657373207468616e206d61782076616c756560501b6064820152608490fd5b90506020813d602011611a25575b81611a1660209383614214565b81010312610e0c575138611241565b3d9150611a09565b60405162461bcd60e51b815260206004820152602660248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a43616e6e6f60448201526507420626520360d41b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a41756374696044820152706f6e20616c72656164792065786973747360781b6064820152608490fd5b60405162461bcd60e51b815260206004820152604260248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a546f6b656e60448201527f20616c7265616479207573656420666f722074686973204d65726b6c6520726f6064820152611bdd60f21b608482015260a490fd5b60405162461bcd60e51b815260206004820152603260248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a43757272656044820152710dcc6f240c8decae640dcdee840dac2e8c6d60731b6064820152608490fd5b60405162461bcd60e51b815260206004820152603560248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a4d65726b6c60448201527419481c9bdbdd081b9bdd081c9959da5cdd195c9959605a1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602f60248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a496e76616c60448201526e34b21026b2b935b63290383937b7b360891b6064820152608490fd5b60405162461bcd60e51b815260206004820152603060248201527f6269645769746841756374696f6e4d65726b6c6550726f6f663a3a50726f6f6660448201526f2063616e6e6f7420626520656d70747960801b6064820152608490fd5b50346102175780600319360112610217576033546040516001600160a01b039091168152602090f35b503461021757604036600319011261021757611d17613fed565b606060a0604051611d27816141b0565b8481528460208201528460408201528483820152826080820152015260018060a01b0316815260a76020526040812060243582526020526040812090611dce600360405193611d75856141b0565b80546001600160a01b0316855260018101546001600160801b0381166020870152608081901c6001600160401b0316604087015260c01c63ffffffff166060860152611dc3600282016142a9565b608086015201614303565b60a08301526040519182916020835260e083019160018060a01b0381511660208501526001600160801b0360208201511660408501526001600160401b03604082015116606085015263ffffffff606082015116608085015260808101519260c060a0860152835180915260206101008601940190835b818110611e985750505060a0015191601f198482030160c0850152602080845192838152019301915b818110611e7c575050500390f35b825160ff16845285945060209384019390920191600101611e6e565b82516001600160a01b0316865287965060209586019590920191600101611e45565b5034610217578060031936011261021757611ed36140f3565b603380546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610217578060031936011261021757602060a354604051908152f35b50608036600319011261021757611f4b613fed565b611f53614019565b906064356001600160801b0381168103610e0c57611f6f6148fd565b6098546040516361fe24a960e11b81526001600160801b03831660048201526001600160a01b0390911690602081602481855afa801561239d57869061274a575b6001600160801b039150166001600160801b03831601916001600160801b03831161273657611fe86001600160801b03841686614d3c565b60018060a01b038416865260a1602052604086206024358752602052604086209161208d60046040519461201b86614194565b60018060a01b038154168652600181015460018060a01b038116602088015263ffffffff8160a01c16604088015260c01c60608701526001600160801b0360028201546001600160401b038116608089015260401c1660a0870152612082600382016142a9565b60c087015201614303565b60e08401526001600160401b03606084015116156126f25782516001600160a01b031633146126a1576001600160401b036120d5816060860151168260808701511690614886565b164210156126635760208301516001600160a01b0390811690871603612608576001600160801b0360a0840151166001600160801b038316106125c3576001600160801b0382161561256f57602060049160405192838092637cd11f4360e11b82525afa90811561170457879161253d575b506001600160801b038216116124f85760018060a01b038416865260a26020526040862060243587526020526040862092604051612184816141cb565b6001808060a01b0386541695868352015460ff6001600160801b0382169182602085015260801c16604083015285612463575b506121d96001600160801b036004931660018060a01b03602087015116614e48565b6001600160401b03606085015116806123d2575b50609854604051638347592160e01b81529260209184919082906001600160a01b03165afa9081156123c7576004948787936122da958c916123a8575b506001600160801b0360018d6040805191612244836141cb565b3383526020830196858d16885260ff83850197168752848060a01b0316815260a260205281812060243582526020522090828060a01b039051166001600160601b0360a01b8254161781550192511682549160ff60801b905160801b16916001600160881b03191617179055602060018060a01b03910151169060ff60406001600160801b036020840151169201511691615142565b609854604051638347592160e01b81529260209184919082906001600160a01b03165afa90811561239d5760ff928792612373575b506001600160801b03906040519660018060a01b031687521660208601521660408401526060830152602435917f05d5a145b6996460db14669f3bb9bebeb953e570716e24c3d1af0c8e42d2bab36080339360018060a01b031692a4600160655580f35b6001600160801b039192506123969060203d6020116116fd576116ef8183614214565b919061230f565b6040513d88823e3d90fd5b6123c1915060203d6020116116fd576116ef8183614214565b3861222a565b6040513d8a823e3d90fd5b6123f6906001600160401b036123f042928260808a01511690614886565b166148d7565b60a554808210612407575b506121ed565b6001600160401b0391612423612428928460808a0151166148ca565b6148d7565b1660018060a01b038716895260a1602052604089206024358a52602052600260408a2001906001600160401b03198254161790553880612401565b60646124756124899260a354906148b7565b046001600160801b036020840151166148ca565b6001600160801b0384161061249e57386121b7565b60405162461bcd60e51b815260206004820152602c60248201527f6269643a3a4d75737420696e63726561736520626964206279206d696e696d7560448201526b6d2070657263656e7461676560a01b6064820152608490fd5b60405162461bcd60e51b815260206004820152601a60248201527f6269643a3a4269642065786365656473206d61782076616c75650000000000006044820152606490fd5b90506020813d602011612567575b8161255860209383614214565b81010312610e0c575138612147565b3d915061254b565b60405162461bcd60e51b815260206004820152602660248201527f6269643a3a42696420616d6f756e74206d75737420626520677265617465722060448201526507468616e20360d41b6064820152608490fd5b60405162461bcd60e51b815260206004820152601760248201527f6269643a3a42696420616d6f756e7420746f6f206c6f770000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602d60248201527f6269643a3a43757272656e637920646f6573206e6f74206d617463682061756360448201526c74696f6e2063757272656e637960981b6064820152608490fd5b60405162461bcd60e51b8152602060048201526016602482015275189a590e8e905d58dd1a5bdb881a185cc8195b99195960521b6044820152606490fd5b60405162461bcd60e51b815260206004820152602360248201527f6269643a3a43616e6e6f7420626964206f6e20796f7572206f776e206175637460448201526234b7b760e91b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f6269643a3a4d757374206861766520612063757272656e742061756374696f6e6044820152fd5b634e487b7160e01b86526011600452602486fd5b506020813d60201161277b575b8161276460209383614214565b81010312610e0c576001600160801b039051611fb0565b3d9150612757565b50346102175760803660031901126102175761279d614003565b90606435906001600160401b0382116102175760206127d0846127c33660048701614082565b9160443590600435614cca565b6040519015158152f35b5034610217576040366003190112610217576127f4613fed565b60018060a01b038116825260a16020526040822060243583526020526040822061289860046040519261282684614194565b60018060a01b038154168452600181015460018060a01b038116602086015263ffffffff8160a01c16604086015260c01c60608501526001600160801b0360028201546001600160401b038116608087015260401c1660a085015261288d600382016142a9565b60c085015201614303565b60e082015260018060a01b038216835260a2602052604083206024358452602052604083209160ff6001604051946128cf866141cb565b818060a01b03815416865201546001600160801b038116602086015260801c1660408401526001600160401b0360608301511615613443576001600160401b03612926816060850151168260808601511690614886565b1642106133f25760018060a01b038116845260a160205260408420602435855260205261296d600460408620868155866001820155866002820155610f326003820161496a565b6001600160a01b03818116855260a260209081526040808720602435885290915285208581556001018590558351161561337457825184906001600160a01b039081169083163b15610fb4576040516323b872dd60e01b8152306004820152602480820192909252903560448201528181606481836001600160a01b0388165af180156116ca57613360575b505060018060a01b03602083015116906001600160801b036020850151169360018060a01b0384511660c08501519260e08601519260ff6040820151169785518551036132ff5789936064612a4f839b846148b7565b0460405190612a5d826141cb565b6002825260403660208401376097546001600160a01b031680612a7f84614c99565b52609e5460405163e286ef3360e01b81526004810186905290602090829060249082906001600160a01b03165afa9081156131d35789916132c1575b506001600160a01b0316612ace84614ca6565b526001600160a01b03612ae084614ca6565b51166132a8575b612af083614ca6565b6001600160a01b03909116905260405190612b0a826141cb565b600282526040366020840137609d5460405163470d6ed960e11b8152600481018790526001600160a01b0390911690602081602481855afa908115611817578a91613270575b50612b5b90836148d7565b5060405163470d6ed960e11b815260048101879052602081602481855afa908115611817578a91613238575b50602491612b97602092856148d7565b612ba086614c99565b526040519283809263470d6ed960e11b82528a60048301525afa9081156131d35789916131fd575b5082918491612bd9612be095614ca6565b528c615376565b609854604051631446f21360e21b81526001600160a01b03878116600483015260248035908301529091169190602081604481865afa9081156123c75788916131de575b5015612fac575b5050609a54604051637a99dc0160e11b81526001600160a01b038681166004830152602480359083015260448201949094529b86938d9350606492849291165af19687156109b95783998498612e5e575b5060058a5111612e4c578399849a5b89518c1015612cb857612cac612cb291612ca58e8d614cb6565b51906148ca565b9b614c8a565b9a612c8b565b9a50612ccf8b612cd69496989a939597999b6148d7565b9a8a615376565b845195612ce287614a50565b96612cf06040519889614214565b808852612cff601f1991614a50565b01366020890137845b8651811015612d4457806064612d2e60ff612d26612d3f958c614cb6565b51168d6148b7565b04612d39828b614cb6565b52614c8a565b612d08565b5091959296612d569498919550615376565b60985484906001600160a01b0316803b15610fb457604051635a3c652d60e01b81526001600160a01b03861660048201526024803590820152600160448201529082908290606490829084905af1612e34575b50505b60018060a01b038151169160018060a01b038151169160ff60406001600160801b0360208501511692602060018060a01b0391015116930151169260405194855260208501526040840152606083015260808201527fd6bafd8fc8591640c77fad1fe6a63cf44843ab5139aa025ba7e18c94fd3686c060a060243593600180831b031692a380f35b612e3d906141e6565b612e48578338612da9565b8380fd5b604051633764772560e11b8152600490fd5b995096503d988984823e612e728a82614214565b6040818b81010312612e48578051906001600160401b03821161098f578a8101601f83830101121561098f578181015191612eac83614a50565b92612eba6040519485614214565b80845260208401918d840160208360051b838701010111612f8857602081850101925b60208360051b83870101018410612f8c575050505060208101519a6001600160401b038c1161099357808201601f8d8401011215610993578b82015191612f2383614a50565b9c6040519d612f32908f614214565b8d8481526020019282018460051b8284010160200111612f88579190602083820101925b60208560051b82840101018410612f74575050505050989638612c7c565b602080809486518152019401939250612f56565b8780fd5b83516001600160a01b038116810361192057815260209384019301612edd565b90919a60405192612fbc846141f9565b600184526020368186013760405192612fd4846141f9565b60018452602036818601376001600160a01b0390612ff190614c99565b5116612ffc84614c99565b52609954604051635dc22eff60e01b8152600481018f905290602090829060249082906001600160a01b03165afa9081156131d35789916131b4575b50156131055750609954604051632260494f60e01b8152600481019d909d526020908d9060249082906001600160a01b03165afa9b8c1561170457879c6130cd575b50916130c59160646130aa60ff8f8b98978461309b846130a294168b6148b7565b04906148d7565b9f16866148b7565b046130b483614c99565b526130be82614c99565b518b615376565b903880612c2b565b87949391929c5060203d6020116130fe575b6130e98183614214565b81016130f4916148e4565b9b9190929361307a565b503d6130df565b60405163b28a7bad60e01b81526001600160a01b0388166004820152939c5092939260209150849060249082905afa92831561239d57869360ff918591613195575b50169a6131548c846148b7565b6064900461316290846148d7565b9b61316d90846148b7565b6064900461317a82614c99565b5261318481614c99565b5191613190928b615376565b6130c5565b6131ae915060203d6020116116fd576116ef8183614214565b38613147565b6131cd915060203d60201161188f576118818183614214565b38613038565b6040513d8b823e3d90fd5b6131f7915060203d60201161188f576118818183614214565b38612c24565b985050906020883d602011613230575b8161321a60209383614214565b81010312610e0c5796518d979190612be0612bc8565b3d915061320d565b9950506020893d602011613268575b8161325460209383614214565b81010312610e0c5797518e98906024612b87565b3d9150613247565b9950506020893d6020116132a0575b8161328c60209383614214565b81010312610e0c57612b5b8f995190612b50565b3d915061327f565b506001600160a01b036132ba83614ca6565b5116612ae7565b90506020813d6020116132f7575b816132dc60209383614214565b810103126132f3576132ed90614235565b38612abb565b8880fd5b3d91506132cf565b60405162461bcd60e51b815260206004820152603360248201527f4e756d626572206f662073706c69742061646472657373657320616e642072616044820152723a34b7b99036bab9ba1031329032b8bab0b61760691b6064820152608490fd5b613369906141e6565b612e485783386129f9565b8151909291906001600160a01b039081169084163b1561098f576040516323b872dd60e01b8152306004820152602480820192909252903560448201528481606481836001600160a01b0389165af180156133e7576133d4575b50612dac565b6133e0909491946141e6565b92386133ce565b6040513d87823e3d90fd5b60405162461bcd60e51b8152602060048201526024808201527f736574746c6541756374696f6e3a3a41756374696f6e20686173206e6f7420656044820152631b99195960e21b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f736574746c6541756374696f6e3a3a4e6f2061756374696f6e206578697374736044820152fd5b503461021757602080600319360112610fb4576001600160a01b036134aa613fed565b16825260a681526040822060405192838383549182815201908193835284832090835b81811061352157505050846134e3910385614214565b60405193838594850191818652518092526040850193925b82811061350a57505050500390f35b8351855286955093810193928101926001016134fb565b8254845292860192600192830192016134cd565b50346102175760203660031901126102175760043560ff8116809103610fb45761355d6140f3565b60a35580f35b50346102175760c03660031901126102175761357d614003565b6001600160801b036044351660443503610fb4576001600160401b036064351660643503610fb4576084356001600160401b0381116109ad576135c4903690600401614082565b919060a4356001600160401b03811161098f576135e5903690600401614082565b906001600160a01b038416158015613d57575b15613d1a578415613cc55760058511613c7457818503613c1a5785805b838210613bee576064915003613b99576001600160401b036064351615613b2e5760a4546001600160401b036064351611613ad457609854604051637cd11f4360e11b815290602090829060049082906001600160a01b03165afa908115611704578791613a9e575b506001600160801b036044351611613a345733865260a66020526136a760043560408820614a95565b5033865260a8602052604086206004358752602052600163ffffffff604088205416019463ffffffff8611613a205733875260a8602052604087206004358852602052604087209363ffffffff8716948563ffffffff1982541617905560405194613711866141b0565b6001600160a01b03871686526044356001600160801b031660208701526064356001600160401b03166040870152606086015261374d82614a50565b9161375b6040519384614214565b8083526020830191368260051b8201116119205780925b8260051b820184106139fc5750505050608084015261379082614a50565b9161379e6040519384614214565b8083526020830191368260051b820111612f885780925b8260051b820184106139e2575050505060a082015233845260a76020526040842060043585526020526040842060018060a01b038251166001600160601b0360a01b825416178155600181016001600160801b036020840151168154906001600160401b0360801b604086015160801b169063ffffffff60c01b606087015160c01b169263ffffffff60e01b16171717905560808201518051906001600160401b0382116139ce576020600284019161386e848461498e565b0190875260208720875b8381106139b15750505050600360a091019101518051906001600160401b03821161399d576020906138aa83856149ec565b01918552602085208160051c91865b83811061395e5750601f198116900380613914575b505050507f0ab992cc17951860858a996357021e201f2a5dc931b948bee54c7c5e665f70cb6040518061390e6004359533956064359060443590856140b2565b0390a380f35b928693875b81811061392e575050500155388080806138ce565b90919460206139546001928460ff8a5116919060ff809160031b9316831b921b19161790565b9601929101613919565b87885b602081106139765750838201556001016138b9565b865190969160019160209160ff60038b901b81811b199092169216901b1792019601613961565b634e487b7160e01b86526041600452602486fd5b82516001600160a01b031681830155602090920191600101613878565b634e487b7160e01b87526041600452602487fd5b833560ff81168103611920578152602093840193016137b5565b83356001600160a01b0381168103613a1c57815260209384019301613772565b8b80fd5b634e487b7160e01b87526011600452602487fd5b608460405162461bcd60e51b815260206004820152604060248201527f726567697374657241756374696f6e4d65726b6c65526f6f743a3a537461727460448201527f696e6720616d6f756e742065786365656473206d6178696d756d2076616c75656064820152fd5b90506020813d602011613acc575b81613ab960209383614214565b81010312613ac857513861367e565b8680fd5b3d9150613aac565b60405162461bcd60e51b815260206004820152602c60248201527f726567697374657241756374696f6e4d65726b6c65526f6f743a3a447572617460448201526b696f6e20746f6f206c6f6e6760a01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603a60248201527f726567697374657241756374696f6e4d65726b6c65526f6f743a3a447572617460448201527f696f6e206d7573742062652067726561746572207468616e20300000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602760248201527f636865636b53706c6974733a3a546f74616c206d75737420626520657175616c604482015266020746f203130360cc1b6064820152608490fd5b8160051b8301359060ff82168092036132f357613c1491613c0e916148ca565b91614c8a565b90613615565b60405162461bcd60e51b815260206004820152602c60248201527f636865636b53706c6974733a3a53706c69747320616e6420726174696f73206d60448201526b1d5cdd08189948195c5d585b60a21b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f636865636b53706c6974733a3a53706c6974206578636565646564206d61782060448201526373697a6560e01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602760248201527f636865636b53706c6974733a3a4d7573742068617665206174206c65617374206044820152660c481cdc1b1a5d60ca1b6064820152608490fd5b60405162461bcd60e51b81526020600482015260156024820152744e6f7420617070726f7665642063757272656e637960581b6044820152606490fd5b50609c54604051632d5ad3d560e01b81526001600160a01b038681166004830152909160209183916024918391165afa908115611704578791613d9b575b506135f8565b613db3915060203d811161188f576118818183614214565b38613d95565b5034610217576040366003190112610217576060906001600160a01b039060ff9060019060409084613de9613fed565b16815260a2602052818120602435825260205220928354169201546040519283526001600160801b038116602084015260801c166040820152f35b503461021757602036600319011261021757613e3e6140f3565b60043560a55580f35b5034610217578060031936011261021757602060a454604051908152f35b5034610217576040366003190112610217576001600160a01b03613e87613fed565b16815260a1602052604081206024358252602052613f16600460408320613eae6080614194565b80546001600160a01b03908116608052600182015490811660a090815281901c63ffffffff1660c09081521c60e05260028101546001600160401b0381166101005260401c6001600160801b031661012052613f0c600382016142a9565b6101405201614303565b8060e06080015260018060a01b03608051169063ffffffff6040608001511692613fad6001600160401b03606060800151166001600160401b0360808001511660018060a01b03602060800151166001600160801b0360a060800151169160c06080015193604051998a998a5260208a015260408901526060880152608087015260a08601526101008060c0870152850190614045565b83810360e0850152602080845192838152019301915b818110613fd1575050500390f35b825160ff16845285945060209384019390920191600101613fc3565b600435906001600160a01b0382168203610e0c57565b602435906001600160a01b0382168203610e0c57565b604435906001600160a01b0382168203610e0c57565b606435906001600160a01b0382168203610e0c57565b90815180825260208080930193019160005b828110614065575050505090565b83516001600160a01b031685529381019392810192600101614057565b9181601f84011215610e0c578235916001600160401b038311610e0c576020808501948460051b010111610e0c57565b6001600160a01b0390911681526001600160801b039190911660208201526001600160401b03909116604082015263ffffffff909116606082015260800190565b6033546001600160a01b0316330361410757565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b603380546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b61010081019081106001600160401b0382111761099757604052565b60c081019081106001600160401b0382111761099757604052565b606081019081106001600160401b0382111761099757604052565b6001600160401b03811161099757604052565b604081019081106001600160401b0382111761099757604052565b90601f801991011681019081106001600160401b0382111761099757604052565b51906001600160a01b0382168203610e0c57565b1561425057565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b9060405191828154918282526020928383019160005283600020936000905b8282106142e0575050506142de92500383614214565b565b85546001600160a01b0316845260019586019588955093810193909101906142c8565b90604051918281549182825260209081830190600052816000206000905b85601f8301106146ef57946142de955491848282106146dc575b8282106146c6575b8282106146b0575b82821061469a575b828210614685575b82821061466f575b828210614659575b828210614643575b82821061462d575b828210614617575b828210614601575b8282106145eb575b8282106145d5575b8282106145bf575b8282106145a9575b828210614593575b82821061457d575b828210614567575b828210614551575b82821061453b575b828210614525575b82821061450f575b8282106144f9575b8282106144e3575b8282106144cd575b8282106144b7575b8282106144a1575b82821061448b575b828210614475575b82821061445f575b828210614449575b501061443c575b5090500383614214565b60f81c8152018038614432565b6001919460ff8560f01c1681520193018461442b565b6001919460ff8560e81c16815201930184614423565b6001919460ff8560e01c1681520193018461441b565b6001919460ff8560d81c16815201930184614413565b6001919460ff8560d01c1681520193018461440b565b6001919460ff8560c81c16815201930184614403565b6001919460ff8560c01c168152019301846143fb565b6001919460ff8560b81c168152019301846143f3565b6001919460ff8560b01c168152019301846143eb565b6001919460ff8560a81c168152019301846143e3565b6001919460ff8560a01c168152019301846143db565b6001919460ff8560981c168152019301846143d3565b6001919460ff8560901c168152019301846143cb565b6001919460ff8560881c168152019301846143c3565b6001919460ff8560801c168152019301846143bb565b6001919460ff8560781c168152019301846143b3565b6001919460ff8560701c168152019301846143ab565b6001919460ff8560681c168152019301846143a3565b6001919460ff8560601c1681520193018461439b565b6001919460ff8560581c16815201930184614393565b6001919460ff8560501c1681520193018461438b565b6001919460ff8560481c16815201930184614383565b6001919460ff8560401c1681520193018461437b565b6001919460ff8560381c16815201930184614373565b6001919460ff8560301c1681520193018461436b565b6001919460ff8560281c16815201930184614363565b6001919460ff85831c1681520193018461435b565b6001919460ff8560181c16815201930184614353565b6001919460ff8560101c1681520193018461434b565b6001919460ff8560081c16815201930184614343565b6001919460ff851681520193018461433b565b9350916001610400829693865460ff8116825260ff8160081c168583015260ff8160101c16604083015260ff816060828260181c16818601528282608082828c1c1681890152828260a092828260281c16848c0152828260c0988d8a848460301c169101528d60e0848460381c169101528d610100848460401c169101528d610120848460481c169101528d610140848460501c169101528d610160848460581c169101521c166101808c0152828260681c166101a08c0152828260701c166101c08c0152828260781c166101e08c01521c16610200890152828260881c16610220890152828260901c16610240890152828260981c166102608901521c16610280860152828260a81c166102a0860152828260b01c166102c0860152828260b81c166102e08601521c1661030083015260ff8160c81c1661032083015260ff8160d01c1661034083015260ff8160d81c1661036083015260ff8160e01c1661038083015260ff8160e81c166103a083015260ff8160f01c166103c083015260f81c6103e082015201940192018693919492614321565b9190916001600160401b03808094169116019182116148a157565b634e487b7160e01b600052601160045260246000fd5b818102929181159184041417156148a157565b919082018092116148a157565b919082039182116148a157565b90816020910312610e0c575160ff81168103610e0c5790565b60026065541461490e576002606555565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b81811061495e575050565b60008155600101614953565b80546000825580614979575050565b6142de91600052602060002090810190614953565b90600160401b8111610997578154908083558181106149ac57505050565b6142de9260005260206000209182019101614953565b805460008255806149d1575050565b6142de91600052601f6020600020910160051c810190614953565b90600160401b8111610997578154818355808210614a0957505050565b6142de92600052601f6020600020918180850160051c8401941680614a35575b500160051c0190614953565b600019908186019182549160200360031b1c16905538614a29565b6001600160401b0381116109975760051b60200190565b8054821015614a7f5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b6000828152600182016020526040902054614afc57805490600160401b8210156109975782614ae5614ace846001809601855584614a67565b819391549060031b91821b91600019901b19161790565b905580549260005201602052604060002055600190565b5050600090565b90600182019060009281845282602052604084205490811515600014614bd85760001991808301818111613a2057825490848201918211614bc457808203614b8f575b50505080548015614b7b57820191614b5e8383614a67565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b614baf614b9f614ace9386614a67565b90549060031b1c92839286614a67565b90558652846020526040862055388080614b46565b634e487b7160e01b88526011600452602488fd5b5050505090565b9291614bea82614a50565b91614bf86040519384614214565b829481845260208094019160051b8101928311610e0c57905b828210614c1e5750505050565b81358152908301908301614c11565b929091906000915b8451831015614c8257614c488386614cb6565b5190600082821015614c705750600052602052614c6a60406000205b92614c8a565b91614c35565b604091614c6a93825260205220614c64565b915092501490565b60001981146148a15760010190565b805115614a7f5760200190565b805160011015614a7f5760400190565b8051821015614a7f5760209160051b010190565b919093928315614d1a5760405160609590951b6001600160601b031916602086019081526034860192909252614d17946110689290614d0c816054810161041a565b519020933691614bdf565b90565b5050505050600090565b90816020910312610e0c57518015158103610e0c5790565b6001600160a01b03908116908115614e4357609f54604051636eb1769f60e11b815233600482015291166001600160a01b0316602482015290602090829081806044810103915afa908115614e3757600091614e06575b5010614d9b57565b60405162461bcd60e51b815260206004820152603960248201527f73656e646572206e6565647320746f20617070726f766520455243323041707060448201527f726f76616c4d616e6167657220666f722063757272656e6379000000000000006064820152608490fd5b906020823d8211614e2f575b81614e1f60209383614214565b8101031261021757505138614d93565b3d9150614e12565b6040513d6000823e3d90fd5b505050565b6001600160a01b039160009183811690811561504a5734614ff4576040938451916370a0823160e01b908184523060048501526020978885602481895afa948515614fea578495614fbb575b50609f541690813b15612e48578751630aed65f560e11b81526001600160a01b03919091166004820152336024820152306044820152606481018790529083908290608490829084905af18015614fb15790889291614f9e575b50602487518096819382523060048301525afa908115614f935790614f64575b614f1892506148d7565b03614f21575050565b60649250519062461bcd60e51b82526004820152601c60248201527f6e6f7420656e6f75676820746f6b656e73207472616e736665726564000000006044820152fd5b508482813d8311614f8c575b614f7a8183614214565b81010312610e0c57614f189151614f0e565b503d614f70565b8551903d90823e3d90fd5b614faa909391936141e6565b9138614eee565b87513d85823e3d90fd5b9094508881813d8311614fe3575b614fd38183614214565b81010312612e4857519338614e94565b503d614fc9565b88513d86823e3d90fd5b60405162461bcd60e51b815260206004820152602860248201527f6d73672e76616c75652073686f756c642062652030207768656e206e6f7420756044820152670e6d2dcce40cae8d60c31b6064820152608490fd5b5050915050340361505757565b60405162461bcd60e51b81526020600482015260136024820152721b9bdd08195b9bdd59da08195d1a081cd95b9d606a1b6044820152606490fd5b3d156150cc573d906001600160401b03821161099757604051916150c0601f8201601f191660200184614214565b82523d6000602084013e565b606090565b6020808252825181830181905290939260005b82811061510657505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016150e4565b156151225750565b60405162461bcd60e51b815290819061513e90600483016150d1565b0390fd5b92919080156151da57606461515a61516193836148b7565b04906148ca565b6001600160a01b03929091908316801561517f576142de93506151e0565b50609b5460405163410085df60e01b602082019081526001600160a01b039093166024820152604481018490526142de9460009485949390911692916151c8816064810161041a565b51925af16151d4615092565b9061511a565b50505050565b60405163a9059cbb60e01b60208083019182526001600160a01b03949094166024830152604480830195909552938152919261527992916000908190615227606486614214565b60018060a01b0316926040519461523d866141f9565b8786527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656488870152519082855af1615273615092565b91615301565b8051908282159283156152e9575b505050156152925750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b6152f99350820181019101614d24565b388281615287565b919290156153635750815115615315575090565b3b1561531e5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156151225750805190602001fd5b6001600160a01b03908116949392909185156153d1575060005b81518110156153c957806153bf846153ab6153c49486614cb6565b51166153b78388614cb6565b5190896151e0565b614c8a565b615390565b505050509050565b92945090609b54169160405160206154018183019463c176e63960e01b8652604060248501526064840190614045565b82810360231901604484015287518082529082019782019160005b82811061544557505050509160009391836151c886956142de989903601f198101835282614214565b83518a52988101989281019260010161541c56fea26469706673582212203dca051b00f104a33d7c139e79d04edac21886b7bf0bcb042f71a85ba9f0259464736f6c63430008120033