2 txs
2 calls
constructor
constructor()
functions
_baseTokenExtension
viewfunction _baseTokenExtension() view returns (string)
_baseTokenURI
viewfunction _baseTokenURI() view returns (string)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseTokenURI
viewfunction baseTokenURI() view returns (string)
calcAvailableBalance
viewfunction calcAvailableBalance() view returns (uint256)
canMintAmount
viewfunction canMintAmount(address _address, uint256 _amount) view returns (bool)
chargeAmountForERC20
viewfunction chargeAmountForERC20(address _erc20TokenContract) view returns (uint256)
collectionSize
viewfunction collectionSize() view returns (uint256)
CONTRACT_VERSION
viewfunction CONTRACT_VERSION() view returns (uint8)
currentTokenId
viewfunction currentTokenId() view returns (uint256)
EARLY_MINT_PRICE
viewfunction EARLY_MINT_PRICE() view returns (uint256)
earlyMintOwnershipCap
viewfunction earlyMintOwnershipCap() view returns (uint256)
erc20Payable
viewfunction erc20Payable() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getNextTokenId
viewfunction getNextTokenId() view returns (uint256)
getOwnershipData
viewfunction getOwnershipData(uint256 tokenId) view returns (tuple)
getPrice
viewfunction getPrice(uint256 _count, address _to) view returns (uint256)
inTeam
viewfunction inTeam(address _address) view returns (bool)
isAllowlisted
viewfunction isAllowlisted(address _to, bytes32[] _merkleProof) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isApprovedForERC20Payments
viewfunction isApprovedForERC20Payments(address _erc20TokenContract) view returns (bool)
MAX_WALLET_MINTS
viewfunction MAX_WALLET_MINTS() view returns (uint256)
maxBatchSize
viewfunction maxBatchSize() view returns (uint256)
merkleRoot
viewfunction merkleRoot() view returns (bytes32)
mintingOpen
viewfunction mintingOpen() view returns (bool)
name
viewfunction name() view returns (string)
nextOwnerToExplicitlySet
viewfunction nextOwnerToExplicitlySet() view returns (uint256)
onlyAllowlistMode
viewfunction onlyAllowlistMode() view returns (bool)
onlyERC20MintingMode
viewfunction onlyERC20MintingMode() view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
payableAddressCount
viewfunction payableAddressCount() view returns (uint256)
payableAddresses
viewfunction payableAddresses(uint256) view returns (address)
payableFees
viewfunction payableFees(uint256) view returns (uint256)
PRICE
viewfunction PRICE() view returns (uint256)
redemptionAddress
viewfunction redemptionAddress() view returns (address)
redemptionContracts
viewfunction redemptionContracts(address) view returns (bool)
redemptionModeEnabled
viewfunction redemptionModeEnabled() view returns (bool)
redemptionSurcharge
viewfunction redemptionSurcharge() view returns (uint256)
restrictedApprovalAddresses
viewfunction restrictedApprovalAddresses(address) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenRedemptions
viewfunction tokenRedemptions(address, uint256) view returns (bool)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
usingEarlyMintIncentive
viewfunction usingEarlyMintIncentive() view returns (bool)
verifiedClaimModeEnabled
viewfunction verifiedClaimModeEnabled() view returns (bool)
addOrUpdateERC20ContractAsPayment
nonpayablefunction addOrUpdateERC20ContractAsPayment(address _erc20TokenContract, bool _isActive, uint256 _chargeAmountInTokens)
addToTeam
nonpayablefunction addToTeam(address _address)
approve
nonpayablefunction approve(address to, uint256 tokenId)
closeAllowlistMint
nonpayablefunction closeAllowlistMint()
disableAllowlistOnlyMode
nonpayablefunction disableAllowlistOnlyMode()
disableEarlyMintIncentive
nonpayablefunction disableEarlyMintIncentive()
disableERC20ContractAsPayment
nonpayablefunction disableERC20ContractAsPayment(address _erc20TokenContract)
disableERC20OnlyMinting
nonpayablefunction disableERC20OnlyMinting()
enableAllowlistOnlyMode
nonpayablefunction enableAllowlistOnlyMode()
enableEarlyMintIncentive
nonpayablefunction enableEarlyMintIncentive()
enableERC20ContractAsPayment
nonpayablefunction enableERC20ContractAsPayment(address _erc20TokenContract)
enableERC20OnlyMinting
nonpayablefunction enableERC20OnlyMinting()
mintToAdminV2
nonpayablefunction mintToAdminV2(address _to, uint256 _qty)
mintToMultiple
payablefunction mintToMultiple(address _to, uint256 _amount) payable
mintToMultipleAL
payablefunction mintToMultipleAL(address _to, uint256 _amount, bytes32[] _merkleProof) payable
mintToMultipleERC20
payablefunction mintToMultipleERC20(address _to, uint256 _amount, address _erc20TokenContract) payable
mintToMultipleERC20AL
payablefunction mintToMultipleERC20AL(address _to, uint256 _amount, bytes32[] _merkleProof, address _erc20TokenContract) payable
openAllowlistMint
nonpayablefunction openAllowlistMint()
openMinting
nonpayablefunction openMinting()
redeem
payablefunction redeem(address redemptionContract, uint256 tokenId) payable
removeFromTeam
nonpayablefunction removeFromTeam(address _address)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setApprovalRestriction
nonpayablefunction setApprovalRestriction(address _address, bool _isRestricted)
setBaseTokenExtension
nonpayablefunction setBaseTokenExtension(string baseExtension)
setBaseURI
nonpayablefunction setBaseURI(string baseURI)
setEarlyIncentivePrice
nonpayablefunction setEarlyIncentivePrice(uint256 _feeInWei)
setEarlyMintOwnershipCap
nonpayablefunction setEarlyMintOwnershipCap(uint256 _newCap)
setERC20PayableAddress
nonpayablefunction setERC20PayableAddress(address _newErc20Payable)
setMaxMint
nonpayablefunction setMaxMint(uint256 _newMaxMint)
setPrice
nonpayablefunction setPrice(uint256 _feeInWei)
setRedeemableContract
nonpayablefunction setRedeemableContract(address _contractAddress, bool _status)
setRedemptionAddress
nonpayablefunction setRedemptionAddress(address _newRedemptionAddress)
setRedemptionMode
nonpayablefunction setRedemptionMode(bool _newStatus)
setRedemptionSurcharge
nonpayablefunction setRedemptionSurcharge(uint256 _newSurchargeInWei)
setVerifiedClaimMode
nonpayablefunction setVerifiedClaimMode(bool _newStatus)
setWalletMax
nonpayablefunction setWalletMax(uint256 _newWalletMax)
stopMinting
nonpayablefunction stopMinting()
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateMerkleRoot
nonpayablefunction updateMerkleRoot(bytes32 _newMerkleRoot)
verifedClaim
payablefunction verifedClaim(address redemptionContract, uint256 tokenId) payable
withdrawAll
nonpayablefunction withdrawAll()
withdrawERC20
nonpayablefunction withdrawERC20(address _tokenContract, uint256 _amountToWithdraw)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Redeemed
event Redeemed(address indexed from, uint256 indexed tokenId, address indexed contractAddress)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
VerifiedClaim
event VerifiedClaim(address indexed from, uint256 indexed tokenId, address indexed contractAddress)
errors
OperatorNotAllowed
error OperatorNotAllowed(address operator)
creation bytecode
0x6000600b819055600c55600d805462010000600160b01b03191663dead000017905560c060405273410832aa86be79a33fd61262884ccd64c036eb0260a090815262000050906011906001620004ac565b50601280546001600160a01b03191673410832aa86be79a33fd61262884ccd64c036eb021790556040805160208101909152606481526200009690601390600162000516565b50600160148190556015805460ff19908116909155660bb9551fc2400060175560006018556019829055601a80549091169091179055601c805461ffff191661020017905560408051808201909152601b8082527f68747470733a2f2f6170692e736b79736b61746572732e78797a2f000000000060209092019182526200012191601d9162000559565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200015091601e9162000559565b50601f805460ff1916905560146020553480156200016d57600080fd5b506040518060400160405280601981526020017f536b7920536b61746572732054686520626567696e6e696e670000000000000081525060405180604001604052806003815260200162534b5960e81b815250818160146115b3733cc6cdda760b79bafa08df41ecfa224f810dceb66001620001f8620001f26200045860201b60201c565b6200045c565b6daaeb6d7670e522a718067333cd4e3b156200033d5780156200028b57604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200026c57600080fd5b505af115801562000281573d6000803e3d6000fd5b505050506200033d565b6001600160a01b03821615620002dc5760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af29039060440162000251565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b1580156200032357600080fd5b505af115801562000338573d6000803e3d6000fd5b505050505b505060008111620003ac5760405162461bcd60e51b815260206004820152602e60248201527f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060448201526d6e6f6e7a65726f20737570706c7960901b60648201526084015b60405180910390fd5b600082116200040e5760405162461bcd60e51b815260206004820152602760248201527f455243373231413a206d61782062617463682073697a65206d757374206265206044820152666e6f6e7a65726f60c81b6064820152608401620003a3565b83516200042390600490602087019062000559565b5082516200043990600590602086019062000559565b50600391909155608052505060016002819055601655506200062a9050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000504579160200282015b828111156200050457825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620004cd565b5062000512929150620005d6565b5090565b82805482825590600052602060002090810192821562000504579160200282015b8281111562000504578251829060ff1690559160200191906001019062000537565b8280546200056790620005ed565b90600052602060002090601f0160209004810192826200058b576000855562000504565b82601f10620005a657805160ff191683800117855562000504565b8280016001018555821562000504579182015b8281111562000504578251825591602001919060010190620005b9565b5b80821115620005125760008155600101620005d7565b600181811c908216806200060257607f821691505b602082108114156200062457634e487b7160e01b600052602260045260246000fd5b50919050565b60805161566f62000677600039600081816108a8015281816111890152818161164b015281816118d8015281816122c4015281816123d90152818161274f0152612c1b015261566f6000f3fe6080604052600436106105175760003560e01c8063791f24db116102a2578063aff3e10b11610165578063d547cfb7116100cc578063ec34082611610085578063ec34082614610f97578063f2fde38b14610fac578063f4637a1514610fcc578063f8c0fd2014610fe6578063fd19eaf014610ffb578063ff3327451461101b57600080fd5b8063d547cfb714610ec9578063d7224ba014610ede578063d83ae33214610ef4578063dfdedf6914610f14578063e6c6990a14610f34578063e985e9c514610f4e57600080fd5b8063caa0f92a1161011e578063caa0f92a14610e29578063cacf084214610e3e578063cc7e1b9a14610e5e578063cfc86f7b14610e7e578063d266f3a914610e93578063d2e0297f14610eb357600080fd5b8063aff3e10b14610d7f578063b4835e0714610d9f578063b88d4fde14610dbf578063b94b237614610ddf578063c54826ab14610df4578063c87b56dd14610e0957600080fd5b80638ff4013f11610209578063a030fd8f116101c2578063a030fd8f14610cd4578063a1af10ca14610cea578063a1db978214610d0a578063a22cb46514610d2a578063a91bd1a914610d4a578063afe5608b14610d6a57600080fd5b80638ff4013f14610bd757806391b7f5ed14610bf75780639231ab2a14610c1757806395d89b4114610c6457806399e48d9714610c795780639b9f6e5614610cb457600080fd5b8063891bbe731161025b578063891bbe7314610b4157806389f26d5814610b615780638b86b64614610b765780638d859f3e14610b895780638da5cb5b14610b9f5780638f4bb49714610bbd57600080fd5b8063791f24db14610aa257806379ab3c8914610ac25780637fb8c6d314610ad7578063817c0d9c14610af757806383c81c4114610b0c578063853828b614610b2c57600080fd5b80633e07311c116103ea5780634ab8b5dd116103515780636352211e1161030a5780636352211e14610a0d57806367dec67814610a2d5780636ba9fd3814610a435780636d3de80614610a5857806370a0823114610a6d578063715018a614610a8d57600080fd5b80634ab8b5dd1461095e5780634dde3fe1146109745780634f6ccce71461099a578063547520fe146109ba57806355f804b3146109da57806360986a71146109fa57600080fd5b806345c0f533116103a357806345c0f5331461089657806345db6f7a146108ca578063464c3428146108ea57806346f41ed51461090a5780634783f0ef1461092457806348b54eb31461094457600080fd5b80633e07311c146107f85780633e3e0b121461080e57806340ccc0821461082357806342842e0e1461084357806343696f1814610863578063447abc7a1461088357600080fd5b806323b872dd1161048e5780633300678611610447578063330067861461073557806337912c1b1461075557806338b903331461077557806338f74162146107a65780633c003254146107c55780633d3f9c57146107d857600080fd5b806323b872dd14610689578063286c8137146106a95780632913daa0146106c95780632b57cfbb146106df5780632eb4a7ab146106ff5780632f745c591461071557600080fd5b8063081812fc116104e0578063081812fc146105db578063095ea7b31461061357806310f05cb01461063357806316b88a1d1461066357806318160ddd1461051c5780631e9a69501461067657600080fd5b80629a9b7b1461051c57806301ffc9a714610544578063043a2a40146105745780630644cefa146105a457806306fdde03146105b9575b600080fd5b34801561052857600080fd5b5061053161103b565b6040519081526020015b60405180910390f35b34801561055057600080fd5b5061056461055f36600461492d565b61104f565b604051901515815260200161053b565b34801561058057600080fd5b5061056461058f366004614966565b600a6020526000908152604090205460ff1681565b6105b76105b2366004614983565b6110bc565b005b3480156105c557600080fd5b506105ce611211565b60405161053b9190614a07565b3480156105e757600080fd5b506105fb6105f6366004614a1a565b6112a3565b6040516001600160a01b03909116815260200161053b565b34801561061f57600080fd5b506105b761062e366004614983565b61132c565b34801561063f57600080fd5b5061056461064e366004614966565b600e6020526000908152604090205460ff1681565b6105b7610671366004614a7e565b61151f565b6105b7610684366004614983565b6118d6565b34801561069557600080fd5b506105b76106a4366004614af1565b611d78565b3480156106b557600080fd5b506105316106c4366004614a1a565b611dc9565b3480156106d557600080fd5b5061053160035481565b3480156106eb57600080fd5b506105316106fa366004614b32565b611dea565b34801561070b57600080fd5b50610531601b5481565b34801561072157600080fd5b50610531610730366004614983565b611f0d565b34801561074157600080fd5b50610564610750366004614b62565b612084565b34801561076157600080fd5b506105b7610770366004614bc4565b61215a565b34801561078157600080fd5b50601c5461079490610100900460ff1681565b60405160ff909116815260200161053b565b3480156107b257600080fd5b50600d5461056490610100900460ff1681565b6105b76107d3366004614be1565b612175565b3480156107e457600080fd5b506105646107f3366004614966565b612348565b34801561080457600080fd5b5061053160145481565b34801561081a57600080fd5b506105b761236b565b34801561082f57600080fd5b506105b761083e366004614983565b61237f565b34801561084f57600080fd5b506105b761085e366004614af1565b612435565b34801561086f57600080fd5b506105b761087e366004614966565b61249b565b34801561088f57600080fd5b5047610531565b3480156108a257600080fd5b506105317f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d657600080fd5b506105b76108e5366004614a1a565b612598565b3480156108f657600080fd5b506105b7610905366004614966565b6125a5565b34801561091657600080fd5b506015546105649060ff1681565b34801561093057600080fd5b506105b761093f366004614a1a565b6125d1565b34801561095057600080fd5b50600d546105649060ff1681565b34801561096a57600080fd5b5061053160205481565b34801561098057600080fd5b50600d546105fb906201000090046001600160a01b031681565b3480156109a657600080fd5b506105316109b5366004614a1a565b612630565b3480156109c657600080fd5b506105b76109d5366004614a1a565b612698565b3480156109e657600080fd5b506105b76109f5366004614c3c565b6126f6565b6105b7610a08366004614cad565b61270a565b348015610a1957600080fd5b506105fb610a28366004614a1a565b612a34565b348015610a3957600080fd5b5061053160185481565b348015610a4f57600080fd5b506105b7612a46565b348015610a6457600080fd5b506105b7612a5d565b348015610a7957600080fd5b50610531610a88366004614966565b612a71565b348015610a9957600080fd5b506105b7612b02565b348015610aae57600080fd5b506105b7610abd366004614bc4565b612b38565b348015610ace57600080fd5b506105b7612b5a565b348015610ae357600080fd5b506012546105fb906001600160a01b031681565b348015610b0357600080fd5b506105b7612b71565b348015610b1857600080fd5b506105b7610b27366004614cef565b612b88565b348015610b3857600080fd5b506105b7612bbb565b348015610b4d57600080fd5b506105fb610b5c366004614a1a565b612bd8565b348015610b6d57600080fd5b506105b7612c02565b6105b7610b84366004614983565b612c19565b348015610b9557600080fd5b5061053160175481565b348015610bab57600080fd5b506000546001600160a01b03166105fb565b348015610bc957600080fd5b50601f546105649060ff1681565b348015610be357600080fd5b506105b7610bf2366004614a1a565b612e14565b348015610c0357600080fd5b506105b7610c12366004614a1a565b612e82565b348015610c2357600080fd5b50610c37610c32366004614a1a565b612e8f565b6040805182516001600160a01b031681526020928301516001600160401b0316928101929092520161053b565b348015610c7057600080fd5b506105ce612eac565b348015610c8557600080fd5b50610564610c94366004614983565b600f60209081526000928352604080842090915290825290205460ff1681565b348015610cc057600080fd5b506105b7610ccf366004614cef565b612ebb565b348015610ce057600080fd5b5061053160195481565b348015610cf657600080fd5b50610564610d05366004614966565b612eee565b348015610d1657600080fd5b506105b7610d25366004614983565b612f6b565b348015610d3657600080fd5b506105b7610d45366004614cef565b6130e7565b348015610d5657600080fd5b506105b7610d65366004614966565b613287565b348015610d7657600080fd5b506105b76133b1565b348015610d8b57600080fd5b506105b7610d9a366004614c3c565b6133c1565b348015610dab57600080fd5b506105b7610dba366004614a1a565b6133d5565b348015610dcb57600080fd5b506105b7610dda366004614d33565b6133e2565b348015610deb57600080fd5b506105b7613484565b348015610e0057600080fd5b506105b7613498565b348015610e1557600080fd5b506105ce610e24366004614a1a565b6134ac565b348015610e3557600080fd5b50610531613519565b348015610e4a57600080fd5b506105b7610e59366004614966565b613533565b348015610e6a57600080fd5b506105b7610e79366004614966565b61355c565b348015610e8a57600080fd5b506105ce6135fb565b348015610e9f57600080fd5b50610531610eae366004614966565b613689565b348015610ebf57600080fd5b50610531600c5481565b348015610ed557600080fd5b506105ce613735565b348015610eea57600080fd5b50610531600b5481565b348015610f0057600080fd5b506105b7610f0f366004614e12565b613744565b348015610f2057600080fd5b506105b7610f2f366004614966565b61377b565b348015610f4057600080fd5b50601c546105649060ff1681565b348015610f5a57600080fd5b50610564610f69366004614e42565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b348015610fa357600080fd5b506105ce613877565b348015610fb857600080fd5b506105b7610fc7366004614966565b613884565b348015610fd857600080fd5b50601a546105649060ff1681565b348015610ff257600080fd5b506105b761391f565b34801561100757600080fd5b50610564611016366004614983565b61392f565b34801561102757600080fd5b506105b7611036366004614a1a565b6139b4565b600061104a6002546000190190565b905090565b60006001600160e01b031982166380ac58cd60e01b148061108057506001600160e01b03198216635b5e139f60e01b145b8061109b57506001600160e01b0319821663780e9d6360e01b145b806110b657506301ffc9a760e01b6001600160e01b03198316145b92915050565b60155460ff16156110e85760405162461bcd60e51b81526004016110df90614e70565b60405180910390fd5b60018110156111095760405162461bcd60e51b81526004016110df90614ebb565b60035481111561112b5760405162461bcd60e51b81526004016110df90614ef2565b601f5460ff16151560011480156111455750601c5460ff16155b6111615760405162461bcd60e51b81526004016110df90614f40565b61116b828261392f565b6111875760405162461bcd60e51b81526004016110df90614f85565b7f0000000000000000000000000000000000000000000000000000000000000000816111b161103b565b6111bb9190614feb565b11156111d95760405162461bcd60e51b81526004016110df90615003565b6111e38183611dea565b34146112015760405162461bcd60e51b81526004016110df90615046565b61120d82826000613a12565b5050565b6060600480546112209061508e565b80601f016020809104026020016040519081016040528092919081815260200182805461124c9061508e565b80156112995780601f1061126e57610100808354040283529160200191611299565b820191906000526020600020905b81548152906001019060200180831161127c57829003601f168201915b5050505050905090565b60006112ae82613a2d565b6113105760405162461bcd60e51b815260206004820152602d60248201527f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560448201526c3c34b9ba32b73a103a37b5b2b760991b60648201526084016110df565b506000908152600860205260409020546001600160a01b031690565b600061133782612a34565b9050806001600160a01b0316836001600160a01b031614156113a65760405162461bcd60e51b815260206004820152602260248201527f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60448201526132b960f11b60648201526084016110df565b6001600160a01b0383166000908152600a602052604090205460ff16156114815760405162461bcd60e51b815260206004820152607f60248201527f45524337323152657374726963746564417070726f76616c3a2041646472657360448201527f7320746f20617070726f766520686173206265656e207265737472696374656460648201527f20627920636f6e7472616374206f776e657220616e64206973206e6f7420616c60848201527f6c6f77656420746f206265206d61726b656420666f7220617070726f76616c0060a482015260c4016110df565b336001600160a01b038216148061149d575061149d8133610f69565b61150f5760405162461bcd60e51b815260206004820152603960248201527f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656420666f7220616c6c0000000000000060648201526084016110df565b61151a838383613a43565b505050565b601c5460ff161515600114801561153d5750601f5460ff1615156001145b6115895760405162461bcd60e51b815260206004820152601b60248201527f416c6c6f776c697374206d696e74696e6720697320636c6f736564000000000060448201526064016110df565b611594858484612084565b6115e05760405162461bcd60e51b815260206004820152601c60248201527f41646472657373206973206e6f7420696e20416c6c6f776c697374210000000060448201526064016110df565b60018410156116015760405162461bcd60e51b81526004016110df90614ebb565b6003548411156116235760405162461bcd60e51b81526004016110df90614ef2565b61162d858561392f565b6116495760405162461bcd60e51b81526004016110df90614f85565b7f00000000000000000000000000000000000000000000000000000000000000008461167361103b565b61167d9190614feb565b111561169b5760405162461bcd60e51b81526004016110df90615003565b6116a481612348565b6116c05760405162461bcd60e51b81526004016110df906150c9565b6000846116cc83613689565b6116d69190615112565b6040516370a0823160e01b81526001600160a01b03888116600483015291925083918391908316906370a082319060240160206040518083038186803b15801561171f57600080fd5b505afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117579190615131565b10156117755760405162461bcd60e51b81526004016110df9061514a565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283919083169063dd62ed3e9060440160206040518083038186803b1580156117bf57600080fd5b505afa1580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f79190615131565b10156118155760405162461bcd60e51b81526004016110df906151a7565b6040516323b872dd60e01b81526001600160a01b03888116600483015230602483015260448201849052600091908316906323b872dd90606401602060405180830381600087803b15801561186957600080fd5b505af115801561187d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a1919061520e565b9050806118c05760405162461bcd60e51b81526004016110df9061522b565b6118cc88886000613a12565b5050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006118ff613519565b111561191d5760405162461bcd60e51b81526004016110df90615274565b600d5460ff166119955760405162461bcd60e51b815260206004820152603b60248201527f4552433732312052656465656d61626c653a20526564656d7074696f6e206d6f60448201527f6465206973206e6f7420656e61626c65642063757272656e746c79000000000060648201526084016110df565b6001600160a01b0382166119bb5760405162461bcd60e51b81526004016110df906152b7565b6001600160a01b0382166000908152600e602052604090205460ff166119f35760405162461bcd60e51b81526004016110df9061530d565b600c543414611a145760405162461bcd60e51b81526004016110df90615378565b6001600160a01b0382166000908152600f6020908152604080832084845290915290205460ff1615611a585760405162461bcd60e51b81526004016110df906153d5565b81336040516331a9108f60e11b8152600481018490526001600160a01b0391821691831690636352211e9060240160206040518083038186803b158015611a9e57600080fd5b505afa158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190615428565b6001600160a01b031614611b605760405162461bcd60e51b815260206004820152604560248201527f4552433732312052656465656d61626c653a2052656465656d6572206e6f742060448201527f6f776e6572206f6620746f6b656e20746f20626520636c61696d65642061676160648201526434b739ba1760d91b608482015260a4016110df565b60405163020604bf60e21b81526004810183905230906001600160a01b0383169063081812fc9060240160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190615428565b6001600160a01b031614611c7c5760405162461bcd60e51b815260206004820152605c60248201527f4552433732312052656465656d61626c653a205468697320636f6e747261637460448201527f206973206e6f7420617070726f76656420666f7220737065636966696320746f60648201527f6b656e206f6e20726564656d706574696f6e20636f6e74726163742e00000000608482015260a4016110df565b6001600160a01b0381166342842e0e33600d5460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015262010000909104909116602482015260448101859052606401600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b5050506001600160a01b0384166000818152600f602090815260408083208784529091529020805460ff19166001179055905082611d353390565b6001600160a01b03167f753fa485a7db01b79a5bf240795c914378b8fb5fcb2a848f2acd51aa6804adbf60405160405180910390a461151a335b60016000613a12565b826daaeb6d7670e522a718067333cd4e3b15611db8576001600160a01b038116331415611daf57611daa848484613a9f565b611dc3565b611db881613e1f565b611dc3848484613a9f565b50505050565b60138181548110611dd957600080fd5b600091825260209091200154905081565b6000808311611e455760405162461bcd60e51b815260206004820152602160248201527f4d757374206265206d696e74696e67206174206c65617374203120746f6b656e6044820152601760f91b60648201526084016110df565b601a5460ff161580611e605750601954611e5e83613f52565b115b15611e7a5782601754611e739190615112565b90506110b6565b600083611e8684613f52565b611e909190614feb565b90506019548111611eb15783601854611ea99190615112565b9150506110b6565b6000611ebc84613f52565b601954611ec99190615445565b9050600060195483611edb9190615445565b905080601754611eeb9190615112565b82601854611ef99190615112565b611f039190614feb565b9695505050505050565b6000611f1883612a71565b8210611f715760405162461bcd60e51b815260206004820152602260248201527f455243373231413a206f776e657220696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016110df565b6000611f7b61103b565b905060008060005b83811015612024576000818152600660209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b03169183019190915215611fd557805192505b876001600160a01b0316836001600160a01b031614156120115786841415612003575093506110b692505050565b8361200d8161545c565b9450505b508061201c8161545c565b915050611f83565b5060405162461bcd60e51b815260206004820152602e60248201527f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060448201526d0deeedccae440c4f240d2dcc8caf60931b60648201526084016110df565b601b546000906120d65760405162461bcd60e51b815260206004820152601760248201527f4d65726b6c6520726f6f74206973206e6f74207365742100000000000000000060448201526064016110df565b6040516bffffffffffffffffffffffff19606086901b16602082015260009060340160405160208183030381529060405280519060200120905061215184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601b549150849050613ff0565b95945050505050565b612162614006565b600d805460ff1916911515919091179055565b60155460ff16156121985760405162461bcd60e51b81526004016110df90614e70565b601c5460ff16151560011480156121b65750601f5460ff1615156001145b6122025760405162461bcd60e51b815260206004820152601b60248201527f416c6c6f776c697374206d696e74696e6720697320636c6f736564000000000060448201526064016110df565b61220d848383612084565b6122595760405162461bcd60e51b815260206004820152601c60248201527f41646472657373206973206e6f7420696e20416c6c6f776c697374210000000060448201526064016110df565b600183101561227a5760405162461bcd60e51b81526004016110df90614ebb565b60035483111561229c5760405162461bcd60e51b81526004016110df90614ef2565b6122a6848461392f565b6122c25760405162461bcd60e51b81526004016110df90614f85565b7f0000000000000000000000000000000000000000000000000000000000000000836122ec61103b565b6122f69190614feb565b11156123145760405162461bcd60e51b81526004016110df90615003565b61231e8385611dea565b341461233c5760405162461bcd60e51b81526004016110df90615046565b611dc384846000613a12565b6001600160a01b031660009081526010602052604090205460ff16151560011490565b612373614006565b601f805460ff19169055565b612387614006565b600081116123d75760405162461bcd60e51b815260206004820152601b60248201527f4d757374206d696e74206174206c65617374203120746f6b656e2e000000000060448201526064016110df565b7f00000000000000000000000000000000000000000000000000000000000000008161240161103b565b61240b9190614feb565b11156124295760405162461bcd60e51b81526004016110df90615003565b61120d82826001613a12565b826daaeb6d7670e522a718067333cd4e3b15612480576001600160a01b03811633141561247757611daa848484604051806020016040528060008152506133e2565b61248081613e1f565b611dc3848484604051806020016040528060008152506133e2565b6000546001600160a01b031633146124c55760405162461bcd60e51b81526004016110df90615477565b6001600160a01b03811661250d5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016110df565b61251681612eee565b156125715760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c726561647920696e20796f7572206044820152643a32b0b69760d91b60648201526084016110df565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6125a0614006565b600c55565b6125ad614006565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6125d9614006565b601b5481141561262b5760405162461bcd60e51b815260206004820152601e60248201527f4d65726b6c6520726f6f742077696c6c20626520756e6368616e67656421000060448201526064016110df565b601b55565b600061263a61103b565b82106126945760405162461bcd60e51b815260206004820152602360248201527f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f756044820152626e647360e81b60648201526084016110df565b5090565b6126a0614006565b60018110156126f15760405162461bcd60e51b815260206004820152601b60248201527f4d6178206d696e74206d757374206265206174206c656173742031000000000060448201526064016110df565b600355565b6126fe614006565b61151a601d8383614887565b600182101561272b5760405162461bcd60e51b81526004016110df90614ebb565b60035482111561274d5760405162461bcd60e51b81526004016110df90614ef2565b7f00000000000000000000000000000000000000000000000000000000000000008261277761103b565b6127819190614feb565b111561279f5760405162461bcd60e51b81526004016110df90615003565b601f5460ff16151560011480156127b95750601c5460ff16155b6127d55760405162461bcd60e51b81526004016110df90614f40565b6127df838361392f565b6127fb5760405162461bcd60e51b81526004016110df90614f85565b61280481612348565b6128205760405162461bcd60e51b81526004016110df906150c9565b60008261282c83613689565b6128369190615112565b6040516370a0823160e01b81526001600160a01b03868116600483015291925083918391908316906370a082319060240160206040518083038186803b15801561287f57600080fd5b505afa158015612893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b79190615131565b10156128d55760405162461bcd60e51b81526004016110df9061514a565b604051636eb1769f60e11b81526001600160a01b03868116600483015230602483015283919083169063dd62ed3e9060440160206040518083038186803b15801561291f57600080fd5b505afa158015612933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129579190615131565b10156129755760405162461bcd60e51b81526004016110df906151a7565b6040516323b872dd60e01b81526001600160a01b03868116600483015230602483015260448201849052600091908316906323b872dd90606401602060405180830381600087803b1580156129c957600080fd5b505af11580156129dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a01919061520e565b905080612a205760405162461bcd60e51b81526004016110df9061522b565b612a2c86866000613a12565b505050505050565b6000612a3f8261408b565b5192915050565b612a4e614006565b601f805460ff19166001179055565b612a65614006565b601c805460ff19169055565b60006001600160a01b038216612add5760405162461bcd60e51b815260206004820152602b60248201527f455243373231413a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084016110df565b506001600160a01b03166000908152600760205260409020546001600160801b031690565b6000546001600160a01b03163314612b2c5760405162461bcd60e51b81526004016110df90615477565b612b3660006141b9565b565b612b40614006565b600d80549115156101000261ff0019909216919091179055565b612b62614006565b601c805460ff19166001179055565b612b79614006565b601a805460ff19166001179055565b612b90614006565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b612bc3614006565b60004711612bd057600080fd5b612b36614209565b60118181548110612be857600080fd5b6000918252602090912001546001600160a01b0316905081565b612c0a614006565b6015805460ff19166001179055565b7f0000000000000000000000000000000000000000000000000000000000000000612c42613519565b1115612c605760405162461bcd60e51b81526004016110df90615274565b600d54610100900460ff16612cdd5760405162461bcd60e51b815260206004820152603f60248201527f4552433732312052656465656d61626c653a20566572696669656420636c616960448201527f6d206d6f6465206973206e6f7420656e61626c65642063757272656e746c790060648201526084016110df565b6001600160a01b038216612d035760405162461bcd60e51b81526004016110df906152b7565b6001600160a01b0382166000908152600e602052604090205460ff16612d3b5760405162461bcd60e51b81526004016110df9061530d565b600c543414612d5c5760405162461bcd60e51b81526004016110df90615378565b6001600160a01b0382166000908152600f6020908152604080832084845290915290205460ff1615612da05760405162461bcd60e51b81526004016110df906153d5565b6001600160a01b0382166000818152600f602090815260408083208584529091529020805460ff1916600117905581612dd63390565b6001600160a01b03167fd51e3cd8003fe993628324a704bb284a9c42ae506e77f4f1ad1e80bca066dda560405160405180910390a461120d33611d6f565b612e1c614006565b6001811015612e7d5760405162461bcd60e51b815260206004820152602760248201527f4d6178206d696e7473207065722077616c6c6574206d757374206265206174206044820152666c65617374203160c81b60648201526084016110df565b602055565b612e8a614006565b601755565b60408051808201909152600080825260208201526110b68261408b565b6060600580546112209061508e565b612ec3614006565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b60006001600160a01b038216612f465760405162461bcd60e51b815260206004820152601960248201527f496e76616c6964206164647265737320746f20636865636b2e0000000000000060448201526064016110df565b506001600160a01b031660009081526001602081905260409091205460ff1615151490565b612f73614006565b60008111612f8057600080fd5b6040516370a0823160e01b8152306004820152829082906001600160a01b038316906370a082319060240160206040518083038186803b158015612fc357600080fd5b505afa158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb9190615131565b10156130615760405162461bcd60e51b815260206004820152602f60248201527f576974686472617756323a20436f6e747261637420646f6573206e6f74206f7760448201526e6e20656e6f75676820746f6b656e7360881b60648201526084016110df565b60125460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529082169063a9059cbb90604401602060405180830381600087803b1580156130af57600080fd5b505af11580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc3919061520e565b6001600160a01b0382163314156131405760405162461bcd60e51b815260206004820152601a60248201527f455243373231413a20617070726f766520746f2063616c6c657200000000000060448201526064016110df565b6001600160a01b0382166000908152600a602052604090205460ff161561321b5760405162461bcd60e51b815260206004820152607d60248201527f45524337323152657374726963746564417070726f76616c3a204f706572617460448201527f6f72206164647265737320686173206265656e2072657374726963746564206260648201527f7920636f6e7472616374206f776e657220616e64206973206e6f7420616c6c6f60848201527f77656420746f206265206d61726b656420666f7220617070726f76616c00000060a482015260c4016110df565b3360008181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61328f614006565b6001600160a01b03811661330b5760405162461bcd60e51b815260206004820152603c60248201527f576974686472617761626c6556323a206e6577204552432d3230207061796f7560448201527f742063616e6e6f7420626520746865207a65726f20616464726573730000000060648201526084016110df565b6012546001600160a01b038281169116141561338f5760405162461bcd60e51b815260206004820152603b60248201527f576974686472617761626c6556323a206e6577204552432d3230207061796f7560448201527f742069732073616d652061732063757272656e74207061796f7574000000000060648201526084016110df565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6133b9614006565b612373612a5d565b6133c9614006565b61151a601e8383614887565b6133dd614006565b601855565b836daaeb6d7670e522a718067333cd4e3b1561344a576001600160a01b03811633141561344157613414858585613a9f565b61342085858585614297565b61343c5760405162461bcd60e51b81526004016110df906154ac565b61347d565b61344a81613e1f565b613455858585613a9f565b61346185858585614297565b61347d5760405162461bcd60e51b81526004016110df906154ac565b5050505050565b61348c614006565b6015805460ff19169055565b6134a0614006565b601a805460ff19169055565b606060006134b8613735565b905060006134c46143a4565b905060008251116134e45760405180602001604052806000815250613511565b816134ee856143b3565b82604051602001613501939291906154ff565b6040516020818303038152906040525b949350505050565b60006135286002546000190190565b61104a906001614feb565b61353b614006565b6001600160a01b03166000908152601060205260409020805460ff19169055565b613564614006565b6001600160a01b0381166135d15760405162461bcd60e51b815260206004820152602e60248201527f4e657720726564656d7074696f6e20616464726573732063616e6e6f7420626560448201526d10373ab6361030b2323932b9b99760911b60648201526084016110df565b600d80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b601d80546136089061508e565b80601f01602080910402602001604051908101604052809291908181526020018280546136349061508e565b80156136815780601f1061365657610100808354040283529160200191613681565b820191906000526020600020905b81548152906001019060200180831161366457829003601f168201915b505050505081565b600061369482612348565b6137165760405162461bcd60e51b815260206004820152604760248201527f54686973204552432d323020636f6e7472616374206973206e6f74206170707260448201527f6f76656420746f206d616b65207061796d656e7473206f6e207468697320636f6064820152666e74726163742160c81b608482015260a4016110df565b506001600160a01b031660009081526010602052604090206001015490565b6060601d80546112209061508e565b61374c614006565b6001600160a01b03929092166000908152601060205260409020805460ff191691151591909117815560010155565b6000546001600160a01b031633146137a55760405162461bcd60e51b81526004016110df90615477565b6001600160a01b0381166137ed5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016110df565b6137f681612eee565b6138565760405162461bcd60e51b815260206004820152602b60248201527f546869732061646472657373206973206e6f7420696e20796f7572207465616d60448201526a1031bab93932b73a363c9760a91b60648201526084016110df565b6001600160a01b03166000908152600160205260409020805460ff19169055565b601e80546136089061508e565b6000546001600160a01b031633146138ae5760405162461bcd60e51b81526004016110df90615477565b6001600160a01b0381166139135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016110df565b61391c816141b9565b50565b613927614006565b612a4e612b5a565b600060018210156139945760405162461bcd60e51b815260206004820152602960248201527f416d6f756e74206d7573742062652067726561746572207468616e206f7220656044820152687175616c20746f203160b81b60648201526084016110df565b602054826139a185613f52565b6139ab9190614feb565b11159392505050565b6139bc614006565b6001811015613a0d5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207365742063617020746f206c657373207468616e203100000060448201526064016110df565b601955565b61151a838383604051806020016040528060008152506144b0565b6000816001111580156110b65750506002541190565b60008281526008602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000613aaa8261408b565b80519091506000906001600160a01b0316336001600160a01b03161480613ae1575033613ad6846112a3565b6001600160a01b0316145b80613af357508151613af39033610f69565b905080613b5d5760405162461bcd60e51b815260206004820152603260248201527f455243373231413a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b60648201526084016110df565b846001600160a01b031682600001516001600160a01b031614613bd15760405162461bcd60e51b815260206004820152602660248201527f455243373231413a207472616e736665722066726f6d20696e636f72726563746044820152651037bbb732b960d11b60648201526084016110df565b6001600160a01b038416613c355760405162461bcd60e51b815260206004820152602560248201527f455243373231413a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016110df565b613c456000848460000151613a43565b6001600160a01b0385166000908152600760205260408120805460019290613c779084906001600160801b0316615542565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03861660009081526007602052604081208054600194509092613cc39185911661556a565b82546001600160801b039182166101009390930a9283029190920219909116179055506040805180820182526001600160a01b0380871682526001600160401b03428116602080850191825260008981526006909152948520935184549151909216600160a01b026001600160e01b03199091169190921617179055613d4a846001614feb565b6000818152600660205260409020549091506001600160a01b0316613dd957613d7281613a2d565b15613dd95760408051808201825284516001600160a01b0390811682526020808701516001600160401b039081168285019081526000878152600690935294909120925183549451909116600160a01b026001600160e01b03199094169116179190911790555b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a2c565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b158015613e6957600080fd5b505afa158015613e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ea1919061520e565b8015613f335750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b158015613efb57600080fd5b505afa158015613f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f33919061520e565b61391c57604051633b79c77360e21b81523360048201526024016110df565b60006001600160a01b038216613fc45760405162461bcd60e51b815260206004820152603160248201527f455243373231413a206e756d626572206d696e74656420717565727920666f7260448201527020746865207a65726f206164647265737360781b60648201526084016110df565b506001600160a01b0316600090815260076020526040902054600160801b90046001600160801b031690565b600082613ffd858461477d565b14949350505050565b600080546001600160a01b031633908114919061402290612eee565b9050818061402d5750805b61120d5760405162461bcd60e51b815260206004820152602960248201527f5465616d3a2063616c6c6572206973206e6f7420746865206f776e6572206f726044820152681034b7102a32b0b69760b91b60648201526084016110df565b604080518082019091526000808252602082015281806001111580156140b2575060025481105b15614159576000818152600660209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b03169183019190915215614103579392505050565b50600019016000818152600660209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160401b03169183019190915215614154579392505050565b614103565b60405162461bcd60e51b815260206004820152602f60248201527f455243373231413a20756e61626c6520746f2064657465726d696e652074686560448201526e1037bbb732b91037b3103a37b5b2b760891b60648201526084016110df565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b4760005b60145481101561120d576142856011828154811061422d5761422d615595565b9060005260206000200160009054906101000a90046001600160a01b031660646013848154811061426057614260615595565b9060005260206000200154856142769190615112565b61428091906155c1565b6147f1565b8061428f8161545c565b91505061420d565b60006001600160a01b0384163b1561439957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906142db9033908990889088906004016155d5565b602060405180830381600087803b1580156142f557600080fd5b505af1925050508015614325575060408051601f3d908101601f1916820190925261432291810190615608565b60015b61437f573d808015614353576040519150601f19603f3d011682016040523d82523d6000602084013e614358565b606091505b5080516143775760405162461bcd60e51b81526004016110df906154ac565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050613511565b506001949350505050565b6060601e80546112209061508e565b6060816143d75750506040805180820190915260018152600360fc1b602082015290565b8160005b811561440157806143eb8161545c565b91506143fa9050600a836155c1565b91506143db565b6000816001600160401b0381111561441b5761441b614d1d565b6040519080825280601f01601f191660200182016040528015614445576020820181803683370190505b5090505b84156135115761445a600183615445565b9150614467600a86615625565b614472906030614feb565b60f81b81838151811061448757614487615595565b60200101906001600160f81b031916908160001a9053506144a9600a866155c1565b9450614449565b6002546001600160a01b0385166145135760405162461bcd60e51b815260206004820152602160248201527f455243373231413a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016110df565b61451c81613a2d565b156145695760405162461bcd60e51b815260206004820152601d60248201527f455243373231413a20746f6b656e20616c7265616479206d696e74656400000060448201526064016110df565b826145cb576003548411156145cb5760405162461bcd60e51b815260206004820152602260248201527f455243373231413a207175616e7469747920746f206d696e7420746f6f2068696044820152610ced60f31b60648201526084016110df565b6001600160a01b0385166000908152600760209081526040918290208251808401845290546001600160801b038082168352600160801b909104169181019190915281518083019092528051909190819061462790889061556a565b6001600160801b03168152602001856146405786614643565b60005b8360200151614652919061556a565b6001600160801b039081169091526001600160a01b0380891660008181526007602090815260408083208751978301518716600160801b029790961696909617909455845180860186529182526001600160401b034281168386019081528883526006909552948120915182549451909516600160a01b026001600160e01b031990941694909216939093179190911790915582905b868110156147715760405182906001600160a01b038a16906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46147356000898488614297565b6147515760405162461bcd60e51b81526004016110df906154ac565b8161475b8161545c565b92505080806147699061545c565b9150506146e8565b50600255505050505050565b600081815b84518110156147e957600085828151811061479f5761479f615595565b602002602001015190508083116147c557600083815260208290526040902092506147d6565b600081815260208490526040902092505b50806147e18161545c565b915050614782565b509392505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461483e576040519150601f19603f3d011682016040523d82523d6000602084013e614843565b606091505b505090508061151a5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016110df565b8280546148939061508e565b90600052602060002090601f0160209004810192826148b557600085556148fb565b82601f106148ce5782800160ff198235161785556148fb565b828001600101855582156148fb579182015b828111156148fb5782358255916020019190600101906148e0565b506126949291505b808211156126945760008155600101614903565b6001600160e01b03198116811461391c57600080fd5b60006020828403121561493f57600080fd5b813561494a81614917565b9392505050565b6001600160a01b038116811461391c57600080fd5b60006020828403121561497857600080fd5b813561494a81614951565b6000806040838503121561499657600080fd5b82356149a181614951565b946020939093013593505050565b60005b838110156149ca5781810151838201526020016149b2565b83811115611dc35750506000910152565b600081518084526149f38160208601602086016149af565b601f01601f19169290920160200192915050565b60208152600061494a60208301846149db565b600060208284031215614a2c57600080fd5b5035919050565b60008083601f840112614a4557600080fd5b5081356001600160401b03811115614a5c57600080fd5b6020830191508360208260051b8501011115614a7757600080fd5b9250929050565b600080600080600060808688031215614a9657600080fd5b8535614aa181614951565b94506020860135935060408601356001600160401b03811115614ac357600080fd5b614acf88828901614a33565b9094509250506060860135614ae381614951565b809150509295509295909350565b600080600060608486031215614b0657600080fd5b8335614b1181614951565b92506020840135614b2181614951565b929592945050506040919091013590565b60008060408385031215614b4557600080fd5b823591506020830135614b5781614951565b809150509250929050565b600080600060408486031215614b7757600080fd5b8335614b8281614951565b925060208401356001600160401b03811115614b9d57600080fd5b614ba986828701614a33565b9497909650939450505050565b801515811461391c57600080fd5b600060208284031215614bd657600080fd5b813561494a81614bb6565b60008060008060608587031215614bf757600080fd5b8435614c0281614951565b93506020850135925060408501356001600160401b03811115614c2457600080fd5b614c3087828801614a33565b95989497509550505050565b60008060208385031215614c4f57600080fd5b82356001600160401b0380821115614c6657600080fd5b818501915085601f830112614c7a57600080fd5b813581811115614c8957600080fd5b866020828501011115614c9b57600080fd5b60209290920196919550909350505050565b600080600060608486031215614cc257600080fd5b8335614ccd81614951565b9250602084013591506040840135614ce481614951565b809150509250925092565b60008060408385031215614d0257600080fd5b8235614d0d81614951565b91506020830135614b5781614bb6565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215614d4957600080fd5b8435614d5481614951565b93506020850135614d6481614951565b92506040850135915060608501356001600160401b0380821115614d8757600080fd5b818701915087601f830112614d9b57600080fd5b813581811115614dad57614dad614d1d565b604051601f8201601f19908116603f01168101908382118183101715614dd557614dd5614d1d565b816040528281528a6020848701011115614dee57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080600060608486031215614e2757600080fd5b8335614e3281614951565b92506020840135614b2181614bb6565b60008060408385031215614e5557600080fd5b8235614e6081614951565b91506020830135614b5781614951565b6020808252602b908201527f4f6e6c79206d696e74696e672077697468204552432d323020746f6b656e732060408201526a34b99032b730b13632b21760a91b606082015260800190565b6020808252601a908201527f4d757374206d696e74206174206c65617374203120746f6b656e000000000000604082015260600190565b6020808252602e908201527f43616e6e6f74206d696e74206d6f7265207468616e206d6178206d696e74207060408201526d32b9103a3930b739b0b1ba34b7b760911b606082015260800190565b60208082526025908201527f5075626c6963206d696e74696e67206973206e6f74206f70656e207269676874604082015264206e6f772160d81b606082015260800190565b60208082526030908201527f57616c6c65742061646472657373206973206f76657220746865206d6178696d60408201526f756d20616c6c6f776564206d696e747360801b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008219821115614ffe57614ffe614fd5565b500190565b60208082526023908201527f43616e6e6f74206d696e74206f76657220737570706c7920636170206f66203560408201526235353560e81b606082015260800190565b60208082526028908201527f56616c75652062656c6f77207265717569726564206d696e742066656520666f6040820152671c88185b5bdd5b9d60c21b606082015260800190565b600181811c908216806150a257607f821691505b602082108114156150c357634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526029908201527f4552432d323020546f6b656e206973206e6f7420617070726f76656420666f72604082015268206d696e74696e672160b81b606082015260800190565b600081600019048311821515161561512c5761512c614fd5565b500290565b60006020828403121561514357600080fd5b5051919050565b60208082526037908201527f427579657220646f6573206e6f74206f776e20656e6f756768206f6620746f6b60408201527f656e20746f20636f6d706c657465207075726368617365000000000000000000606082015260800190565b60208082526041908201527f427579657220646964206e6f7420617070726f766520656e6f756768206f662060408201527f4552432d323020746f6b656e20746f20636f6d706c65746520707572636861736060820152606560f81b608082015260a00190565b60006020828403121561522057600080fd5b815161494a81614bb6565b60208082526029908201527f4552432d323020746f6b656e2077617320756e61626c6520746f206265207472604082015268185b9cd9995c9c995960ba1b606082015260800190565b60208082526023908201527f43616e6e6f74206d696e74206f76657220737570706c7920636170206f66203560408201526203030360ec1b606082015260800190565b60208082526036908201527f4552433732312052656465656d61626c653a20526564656d7074696f6e20636f604082015275373a3930b1ba1031b0b73737ba10313290373ab6361760511b606082015260800190565b60208082526045908201527f4552433732312052656465656d61626c653a20526564656d7074696f6e20636f60408201527f6e7472616374206973206e6f7420656c696761626c6520666f7220726564656560608201526436b4b7339760d91b608082015260a00190565b60208082526037908201527f4552433732312052656465656d61626c653a20526564656d7074696f6e20666560408201527f65206e6f742073656e742062792072656465656d65722e000000000000000000606082015260800190565b60208082526033908201527f4552433732312052656465656d61626c653a20546f6b656e2068617320616c7260408201527232b0b23c903132b2b7103932b232b2b6b2b21760691b606082015260800190565b60006020828403121561543a57600080fd5b815161494a81614951565b60008282101561545757615457614fd5565b500390565b600060001982141561547057615470614fd5565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526033908201527f455243373231413a207472616e7366657220746f206e6f6e204552433732315260408201527232b1b2b4bb32b91034b6b83632b6b2b73a32b960691b606082015260800190565b600084516155118184602089016149af565b8451908301906155258183602089016149af565b84519101906155388183602088016149af565b0195945050505050565b60006001600160801b038381169083168181101561556257615562614fd5565b039392505050565b60006001600160801b0380831681851680830382111561558c5761558c614fd5565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826155d0576155d06155ab565b500490565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611f03908301846149db565b60006020828403121561561a57600080fd5b815161494a81614917565b600082615634576156346155ab565b50069056fea2646970667358221220ec8406af62777248bced813fdc66925b888384cdd9d947faaba361615469c80764736f6c63430008090033