0 txs
0 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
checkLimit
viewfunction checkLimit(uint256 tokenId, uint256 amount) view returns (bool)
CLIENTSTATUSCHANGE_ROLE
viewfunction CLIENTSTATUSCHANGE_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DEFAULT_MERCHANT_RATE
viewfunction DEFAULT_MERCHANT_RATE() view returns (uint256)
exists
viewfunction exists(uint256 tokenId) view returns (bool)
F24SalesAddress
viewfunction F24SalesAddress() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
historicOwnership
viewfunction historicOwnership(address) view returns (uint256)
INTERNALDIGIT
viewfunction INTERNALDIGIT() view returns (uint8)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isMerchant
viewfunction isMerchant(uint256) view returns (bool)
limit
viewfunction limit(uint256) view returns (uint256 usedLimit, uint256 clientLimit, uint256 startLimitDate)
LIMITLIVEDEFAULT
viewfunction LIMITLIVEDEFAULT() view returns (uint256)
limitTourist
viewfunction limitTourist() view returns (uint256)
LIMITUPDATER_ROLE
viewfunction LIMITUPDATER_ROLE() view returns (bytes32)
maxDigitForSale
viewfunction maxDigitForSale() view returns (uint8)
MERCHANTDIGIT
viewfunction MERCHANTDIGIT() view returns (uint8)
merchantRate
viewfunction merchantRate(uint256) view returns (uint256)
minDigitForSale
viewfunction minDigitForSale() view returns (uint8)
MINTER_ROLE
viewfunction MINTER_ROLE() view returns (bytes32)
name
viewfunction name() view returns (string)
nftAvatar
viewfunction nftAvatar(uint256) view returns (string)
nickNames
viewfunction nickNames(uint256) view returns (string)
oldTokenId
viewfunction oldTokenId(uint256) view returns (uint256)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
status
viewfunction status(uint256) view returns (uint8)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
THIRTYDAYS
viewfunction THIRTYDAYS() view returns (uint256)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
walletProvider
viewfunction walletProvider(uint256) view returns (uint256)
walletProviderMap
viewfunction walletProviderMap(uint256) view returns (string walletProvider, bool isAvailable)
activateF24
nonpayablefunction activateF24(address f24Address, address fiat24PriceListAddress)
activateWithReferral
nonpayablefunction activateWithReferral(uint256 tokenId, uint256 referrer)
addWalletProvider
nonpayablefunction addWalletProvider(uint256 number, string name)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burn
nonpayablefunction burn(uint256 tokenId)
changeClientStatus
nonpayablefunction changeClientStatus(uint256 tokenId, uint8 _status)
close
nonpayablefunction close(uint256 tokenId)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
mint
nonpayablefunction mint(address _to, uint256 _tokenId)
mintByClient
nonpayablefunction mintByClient(uint256 _tokenId)
mintByClientWithETH
payablefunction mintByClientWithETH(uint256 _tokenId) payable
mintByWallet
nonpayablefunction mintByWallet(address to, uint256 _tokenId)
pause
nonpayablefunction pause()
removeHistoricOwnership
nonpayablefunction removeHistoricOwnership(address owner)
removeWalletProvider
nonpayablefunction removeWalletProvider(uint256 number)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resetUsedLimit
nonpayablefunction resetUsedLimit(uint256 tokenId)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
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)
setClientLimit
nonpayablefunction setClientLimit(uint256 tokenId, uint256 clientLimit)
setF24SalesAddress
nonpayablefunction setF24SalesAddress(address _f24SalesAddress)
setMaxDigitForSale
nonpayablefunction setMaxDigitForSale(uint8 maxDigit)
setMerchantRate
nonpayablefunction setMerchantRate(uint256 tokenId, uint256 _merchantRate)
setMinDigitForSale
nonpayablefunction setMinDigitForSale(uint8 minDigit)
setNftAvatar
nonpayablefunction setNftAvatar(string url)
setNickname
nonpayablefunction setNickname(uint256 tokenId, string nickname)
setTouristLimit
nonpayablefunction setTouristLimit(uint256 newLimitTourist)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
unpause
nonpayablefunction unpause()
updateLimit
nonpayablefunction updateLimit(uint256 tokenId, uint256 amount)
upgradeWithF24
nonpayablefunction upgradeWithF24(uint256 _tokenId)
events
activatedWithReferral
event activatedWithReferral(uint256 indexed tokenId, uint256 indexed referrer)
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615d3380620000216000396000f3fe6080604052600436106103415760003560e01c8063013e53d11461034657806301ffc9a71461037b578063023b62a2146103ab5780630264e7e9146103cd57806306fdde03146103fb578063081812fc1461041d578063095ea7b31461044a578063099d2ec81461046a5780630aebeb4e146104815780630e8477f8146104a157806310480e13146104c15780631278e2d2146104e157806318160ddd1461050857806321d39e5a1461051d57806323b872dd1461053d578063243bcfcb1461055d578063248a9ca3146105b557806324a933eb146105d55780632856784b146105ea5780632ac354851461060a5780632af047901461062a5780632f2ff15d146106585780632f745c591461067857806336568abe146106985780633ea3ab8e146106b85780633f4ba83a146106d857806340c10f19146106ed57806342842e0e1461070d57806342966c681461072d57806342d21ef71461074d5780634bedccf41461078b5780634f558e79146107ab5780634f6ccce7146107cb57806356ecb92b146107eb578063592b2051146108025780635c975abb146108225780636352211e1461083a57806368800cd31461085a5780636917574a146108885780636a183f451461089f5780636a46a1b7146108bf5780636abd75c3146108df578063701eec93146108f257806370a082311461092357806370def791146109435780637115fb42146109635780637220b199146109835780637d9b67ee1461099e57806380f669df146109be5780638129fc1c146109de57806383561e84146109f35780638456cb5914610a1357806391d1485414610a285780639397031114610a4857806395d89b4114610a695780639630571914610a7e5780639ffa6e9714610aac578063a217fddf14610ada578063a22cb46514610aef578063b51243ec14610b0f578063b88d4fde14610b2f578063b9464c9314610b4f578063c1cccc7014610b64578063c36eeea814610b84578063c7b4b68914610ba4578063c81472b414610bc4578063c87b56dd14610be4578063d539139314610c04578063d547741f14610c26578063d92af1b714610c46578063df9e739a14610c66578063e985e9c514610c86578063e9d2b1b314610ca6578063f5b541a614610cc8575b600080fd5b34801561035257600080fd5b50610368600080516020615c4c83398151915281565b6040519081526020015b60405180910390f35b34801561038757600080fd5b5061039b610396366004615072565b610cea565b6040519015158152602001610372565b3480156103b757600080fd5b506103cb6103c636600461513a565b610d30565b005b3480156103d957600080fd5b506103ed6103e836600461516e565b610e6c565b6040516103729291906151d7565b34801561040757600080fd5b50610410610f14565b60405161037291906151fb565b34801561042957600080fd5b5061043d61043836600461516e565b610fa6565b604051610372919061520e565b34801561045657600080fd5b506103cb610465366004615237565b61102e565b34801561047657600080fd5b50610368620186a081565b34801561048d57600080fd5b506103cb61049c36600461516e565b611139565b3480156104ad57600080fd5b506103cb6104bc366004615263565b61124a565b3480156104cd57600080fd5b506103cb6104dc366004615237565b611299565b3480156104ed57600080fd5b506104f6600981565b60405160ff9091168152602001610372565b34801561051457600080fd5b50609954610368565b34801561052957600080fd5b506103cb610538366004615280565b61167f565b34801561054957600080fd5b506103cb6105583660046152c6565b6116ef565b34801561056957600080fd5b5061059a61057836600461516e565b6101656020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610372565b3480156105c157600080fd5b506103686105d036600461516e565b611744565b3480156105e157600080fd5b50610368603781565b3480156105f657600080fd5b506103cb610605366004615307565b61175a565b34801561061657600080fd5b506103cb610625366004615307565b6117a5565b34801561063657600080fd5b50610368610645366004615263565b6101606020526000908152604090205481565b34801561066457600080fd5b506103cb61067336600461532a565b6117f6565b34801561068457600080fd5b50610368610693366004615237565b611813565b3480156106a457600080fd5b506103cb6106b336600461532a565b6118a9565b3480156106c457600080fd5b50610166546104f690610100900460ff1681565b3480156106e457600080fd5b506103cb611927565b3480156106f957600080fd5b506103cb610708366004615237565b611958565b34801561071957600080fd5b506103cb6107283660046152c6565b611a89565b34801561073957600080fd5b506103cb61074836600461516e565b611a94565b34801561075957600080fd5b5061077e61076836600461516e565b6101646020526000908152604090205460ff1681565b6040516103729190615370565b34801561079757600080fd5b506103cb6107a6366004615398565b611af1565b3480156107b757600080fd5b5061039b6107c636600461516e565b611c1f565b3480156107d757600080fd5b506103686107e636600461516e565b611c2a565b3480156107f757600080fd5b5061036862278d0081565b34801561080e57600080fd5b506103cb61081d36600461516e565b611cbd565b34801561082e57600080fd5b5060c95460ff1661039b565b34801561084657600080fd5b5061043d61085536600461516e565b611da5565b34801561086657600080fd5b5061036861087536600461516e565b6101686020526000908152604090205481565b34801561089457600080fd5b5061036861015f5481565b3480156108ab57600080fd5b506103cb6108ba36600461516e565b611e1c565b3480156108cb57600080fd5b506103cb6108da36600461516e565b6122b9565b6103cb6108ed36600461516e565b612316565b3480156108fe57600080fd5b5061039b61090d36600461516e565b6101626020526000908152604090205460ff1681565b34801561092f57600080fd5b5061036861093e366004615263565b61262c565b34801561094f57600080fd5b506103cb61095e3660046153c7565b6126b3565b34801561096f57600080fd5b506103cb61097e366004615398565b61280f565b34801561098f57600080fd5b50610166546104f69060ff1681565b3480156109aa57600080fd5b506103cb6109b93660046153ec565b612856565b3480156109ca57600080fd5b506104106109d936600461516e565b6128ce565b3480156109ea57600080fd5b506103cb612969565b3480156109ff57600080fd5b506103cb610a0e36600461516e565b612ac8565b348015610a1f57600080fd5b506103cb612b33565b348015610a3457600080fd5b5061039b610a4336600461532a565b612b62565b348015610a5457600080fd5b5061016c5461043d906001600160a01b031681565b348015610a7557600080fd5b50610410612b8e565b348015610a8a57600080fd5b50610368610a9936600461516e565b61016b6020526000908152604090205481565b348015610ab857600080fd5b50610368610ac736600461516e565b6101636020526000908152604090205481565b348015610ae657600080fd5b50610368600081565b348015610afb57600080fd5b506103cb610b0a366004615428565b612b9d565b348015610b1b57600080fd5b506103cb610b2a366004615263565b612ba8565b348015610b3b57600080fd5b506103cb610b4a366004615456565b612bff565b348015610b5b57600080fd5b506104f6600881565b348015610b7057600080fd5b50610410610b7f36600461516e565b612c31565b348015610b9057600080fd5b5061039b610b9f366004615398565b612c4b565b348015610bb057600080fd5b506103cb610bbf36600461516e565b612d4c565b348015610bd057600080fd5b506103cb610bdf366004615398565b612d86565b348015610bf057600080fd5b50610410610bff36600461516e565b612ec5565b348015610c1057600080fd5b50610368600080516020615cbe83398151915281565b348015610c3257600080fd5b506103cb610c4136600461532a565b613032565b348015610c5257600080fd5b506103cb610c61366004615280565b61304f565b348015610c7257600080fd5b506103cb610c81366004615398565b6130f8565b348015610c9257600080fd5b5061039b610ca13660046153ec565b6134f4565b348015610cb257600080fd5b50610368600080516020615c2c83398151915281565b348015610cd457600080fd5b50610368600080516020615c9e83398151915281565b60006001600160e01b031982166380ac58cd60e01b1480610d1b57506001600160e01b03198216635b5e139f60e01b145b80610d2a5750610d2a82613522565b92915050565b6040516370a0823160e01b815260009030906370a0823190610d5690339060040161520e565b602060405180830381865afa158015610d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9791906154d5565b11610de25760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a185cc81b9bc81858d8dbdd5b9d60521b60448201526064015b60405180910390fd5b604051632f745c5960e01b81526000903090632f745c5990610e0a90339085906004016154ee565b602060405180830381865afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b91906154d5565b600081815261016a60205260409020909150610e678382615587565b505050565b61016960205260009081526040902080548190610e8890615507565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490615507565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050506001909301549192505060ff1682565b606060658054610f2390615507565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4f90615507565b8015610f9c5780601f10610f7157610100808354040283529160200191610f9c565b820191906000526020600020905b815481529060010190602001808311610f7f57829003601f168201915b5050505050905090565b6000610fb182613547565b6110125760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610dd9565b506000908152606960205260409020546001600160a01b031690565b600061103982611da5565b9050806001600160a01b0316836001600160a01b0316036110a65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610dd9565b336001600160a01b03821614806110c257506110c281336134f4565b61112f5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b6064820152608401610dd9565b610e678383613564565b6040516331a9108f60e11b8152600481018290523090636352211e90602401602060405180830381865afa158015611175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111999190615646565b6001600160a01b0316336001600160a01b0316146111c95760405162461bcd60e51b8152600401610dd990615663565b60056000828152610164602052604090205460ff1660058111156111ef576111ef61535a565b1461122e5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081b1a5d994818db1a595b9d608a1b6044820152606401610dd9565b600090815261016460205260409020805460ff19166004179055565b611262600080516020615c9e83398151915233612b62565b61127e5760405162461bcd60e51b8152600401610dd99061568e565b6001600160a01b031660009081526101606020526040812055565b6040516370a0823160e01b815260009030906370a08231906112bf90339060040161520e565b602060405180830381865afa1580156112dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130091906154d5565b1161134d5760405162461bcd60e51b815260206004820152601e60248201527f4d696e74696e67206164647265737320686173206e6f206163636f756e7400006044820152606401610dd9565b604051632f745c5960e01b81526000903090632f745c599061137590339085906004016154ee565b602060405180830381865afa158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b691906154d5565b90506113c38260096135d2565b156113e05760405162461bcd60e51b8152600401610dd9906156b7565b6113eb8160086135d2565b801561140557506008811015801561140557506123278111155b6114515760405162461bcd60e51b815260206004820152601f60248201527f496e636f7272656374206163636f756e7420696420666f722077616c6c6574006044820152606401610dd9565b6000818152610169602052604090206001015460ff166114b15760405162461bcd60e51b815260206004820152601b60248201527a20b1b1b7bab73a103737ba103bb0b63632ba10383937bb34b232b960291b6044820152606401610dd9565b60056114bc836135f9565b10156115195760405162461bcd60e51b815260206004820152602660248201527f6d696e74427957616c6c6574206f6e6c7920666f7220352b2064696769747320604482015265746f6b656e7360d01b6064820152608401610dd9565b61016654610100900460ff1661152e836135f9565b111561154c5760405162461bcd60e51b8152600401610dd9906156ed565b6115578260086135d2565b156115b85760405162461bcd60e51b815260206004820152602b60248201527f4d65726368616e74206163636f756e742063616e6e6f74206265206d696e746560448201526a1908189e481dd85b1b195d60aa1b6064820152608401610dd9565b6115c2838361362a565b6115de5760405162461bcd60e51b8152600401610dd990615738565b6000828152610168602090815260408083208490556101649091529020805460ff1916600217905561161083836136de565b610166546201000090046001600160a01b03166379cc67903360646040518363ffffffff1660e01b81526004016116489291906154ee565b600060405180830381600087803b15801561166257600080fd5b505af1158015611676573d6000803e3d6000fd5b50505050505050565b611697600080516020615c9e83398151915233612b62565b6116b35760405162461bcd60e51b8152600401610dd99061568e565b6000828152610169602052604090206116cc8282615587565b50506000908152610169602052604090206001908101805460ff19169091179055565b6116fa83838361380a565b60026000828152610164602052604090205460ff1660058111156117205761172061535a565b14610e67576001600160a01b03919091166000908152610160602052604090205550565b600090815261012d602052604090206001015490565b611772600080516020615c9e83398151915233612b62565b61178e5760405162461bcd60e51b8152600401610dd99061568e565b610166805460ff191660ff92909216919091179055565b6117bd600080516020615c9e83398151915233612b62565b6117d95760405162461bcd60e51b8152600401610dd99061568e565b610166805460ff9092166101000261ff0019909216919091179055565b6117ff82611744565b611809813361383b565b610e67838361389f565b600061181e8361262c565b82106118805760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610dd9565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b6001600160a01b03811633146119195760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dd9565b6119238282613926565b5050565b611932600033612b62565b61194e5760405162461bcd60e51b8152600401610dd9906157a9565b61195661398e565b565b611970600080516020615c9e83398151915233612b62565b8061198e575061198e600080516020615cbe83398151915233612b62565b6119d35760405162461bcd60e51b81526020600482015260166024820152752737ba1030b71037b832b930ba37b917b6b4b73a32b960511b6044820152606401610dd9565b6119dd828261362a565b611a1c5760405162461bcd60e51b815260206004820152601060248201526f1b5a5b9d081b9bdd08185b1b1bddd95960821b6044820152606401610dd9565b611a2682826136de565b600081815261016460205260409020805460ff19166002179055611a4981613a1b565b611a5281613a36565b604051602001611a6291906157cf565b60408051601f1981840301815291815260008381526101616020522090610e679082615587565b6116fa838383613b3e565b611aac600080516020615c9e83398151915233612b62565b611ac85760405162461bcd60e51b8152600401610dd99061568e565b6000818152610165602052604081208181556001810182905560020155611aee81613b59565b50565b611b09600080516020615c4c83398151915233612b62565b611b4b5760405162461bcd60e51b81526020600482015260136024820152722737ba1030903634b6b4ba16bab83230ba32b960691b6044820152606401610dd9565b61238c8210158015611b5f57506124538211155b15611b68575050565b60056000838152610164602052604090205460ff166005811115611b8e57611b8e61535a565b1480611bbd575060026000838152610164602052604090205460ff166005811115611bbb57611bbb61535a565b145b15611923576000828152610165602052604081206002810154909190611be79062278d0090615815565b905042811015611bff57426002830155828255611c19565b82826000016000828254611c139190615815565b90915550505b50505050565b6000610d2a82613547565b6000611c3560995490565b8210611c985760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610dd9565b60998281548110611cab57611cab615828565b90600052602060002001549050919050565b611cc681613bee565b61016754604051630e75722360e41b8152600481018390526000916001600160a01b03169063e757223090602401602060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3591906154d5565b6101665460405163079cc67960e41b81529192506201000090046001600160a01b0316906379cc679090611d6f90339085906004016154ee565b600060405180830381600087803b158015611d8957600080fd5b505af1158015611d9d573d6000803e3d6000fd5b505050505050565b6000818152606760205260408120546001600160a01b031680610d2a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610dd9565b604051632f745c5960e01b81526000903090632f745c5990611e4490339085906004016154ee565b602060405180830381865afa158015611e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8591906154d5565b905060056000828152610164602052604090205460ff166005811115611ead57611ead61535a565b14611eec5760405162461bcd60e51b815260206004820152600f60248201526e139bdd08131a5d994818db1a595b9d608a1b6044820152606401610dd9565b61016754600160a01b900460ff16611f425760405162461bcd60e51b8152602060048201526019602482015278546869732066756e6374696f6e20697320696e61637469766560381b6044820152606401610dd9565b6005611f4d836135f9565b10611f9a5760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c79207072656d69756d206e756d62657220666f722075706772616465006044820152606401610dd9565b611fa58260096135d2565b156120065760405162461bcd60e51b815260206004820152602b60248201527f496e7465726e616c206163636f756e7449642063616e6e6f74206265206d696e60448201526a1d08189e4818db1a595b9d60aa1b6064820152608401610dd9565b6120118260086135d2565b1561206c576120218160086135d2565b61206c5760405162461bcd60e51b815260206004820152601c60248201527b13db19081d1bdad95b881b5d5cdd0818994818481b595c98da185b9d60221b6044820152606401610dd9565b6120778160086135d2565b156120d2576120878260086135d2565b6120d25760405162461bcd60e51b815260206004820152601c60248201527b13995dc81d1bdad95b881b5d5cdd0818994818481b595c98da185b9d60221b6044820152606401610dd9565b61016754604051630e75722360e41b8152600481018490526000916001600160a01b03169063e757223090602401602060405180830381865afa15801561211d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214191906154d5565b9050806000036121935760405162461bcd60e51b815260206004820181905260248201527f4163636f756e744964206e6f7420617661696c61626c6520666f722073616c656044820152606401610dd9565b600082815261016460205260409020805460ff191660041790556121ca6121b983611da5565b6121c4612392611da5565b84613d6e565b6121d433846136de565b6000838152610164602090815260408083208054600560ff1990911617905533808452610160835281842087905585845261016883528184205487855282852055858452610165835281842087855282852060018281015490820155815481556002808301549082015561016b9094529382902086905561016654915163079cc67960e41b8152620100009092046001600160a01b0316916379cc6790916122809187906004016154ee565b600060405180830381600087803b15801561229a57600080fd5b505af11580156122ae573d6000803e3d6000fd5b505050505050505050565b6122d1600080516020615c9e83398151915233612b62565b6122ed5760405162461bcd60e51b8152600401610dd99061568e565b60008181526101696020526040812090612307828261500e565b50600101805460ff1916905550565b61231f81613bee565b61016754604051630e75722360e41b8152600481018390526000916001600160a01b03169063e757223090602401602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e91906154d5565b905060008061016c60009054906101000a90046001600160a01b03166001600160a01b031663bead08d66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b91906154d5565b9050828110156124385761241f8184615854565b61243190670de0b6b3a7640000615868565b9150612457565b6124428382615854565b61245490670de0b6b3a7640000615854565b91505b813410156124b95760405162461bcd60e51b815260206004820152602960248201527f4e6f742073756666696369656e74206d73672e76616c756520666f722046323460448201526820707572636861736560b81b6064820152608401610dd9565b600061016c60009054906101000a90046001600160a01b03166001600160a01b031663a6f2ae3a346040518263ffffffff1660e01b815260040160206040518083038185885af1158015612511573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061253691906154d5565b61016654604051630852cd8d60e31b8152600481018790529192506201000090046001600160a01b0316906342966c6890602401600060405180830381600087803b15801561258457600080fd5b505af1158015612598573d6000803e3d6000fd5b50505050600084826125aa919061587f565b90508015611d9d57610166546201000090046001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016125e99291906154ee565b6020604051808303816000875af1158015612608573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190615892565b60006001600160a01b0382166126975760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610dd9565b506001600160a01b031660009081526068602052604090205490565b6126cb600080516020615c9e83398151915233612b62565b806126e957506126e9600080516020615c2c83398151915233612b62565b6127055760405162461bcd60e51b8152600401610dd9906158af565b60058160058111156127195761271961535a565b148015612749575060026000838152610164602052604090205460ff1660058111156127475761274761535a565b145b156127da576040516331a9108f60e11b8152600481018390528290610160906000903090636352211e90602401602060405180830381865afa158015612793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b79190615646565b6001600160a01b031681526020810191909152604001600020556127da82613f07565b600082815261016460205260409020805482919060ff191660018360058111156128065761280661535a565b02179055505050565b612827600080516020615c9e83398151915233612b62565b6128435760405162461bcd60e51b8152600401610dd99061568e565b6000918252610163602052604090912055565b61286e600080516020615c9e83398151915233612b62565b61288a5760405162461bcd60e51b8152600401610dd99061568e565b61016680546001600160a01b03938416620100000262010000600160b01b031990911617905561016780546001600160a81b0319169190921617600160a01b179055565b61016a60205260009081526040902080546128e890615507565b80601f016020809104026020016040519081016040528092919081815260200182805461291490615507565b80156129615780601f1061293657610100808354040283529160200191612961565b820191906000526020600020905b81548152906001019060200180831161294457829003601f168201915b505050505081565b600054610100900460ff166129845760005460ff1615612988565b303b155b6129eb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dd9565b600054610100900460ff16158015612a0d576000805461ffff19166101011790555b612a15613f2b565b612a636040518060400160405280600e81526020016d119a585d0c8d081058d8dbdd5b9d60921b81525060405180604001604052806006815260200165119a585d0c8d60d21b815250613f52565b612a6b613f2b565b610166805461ffff1916610505179055610167805460ff60a01b19169055620186a061015f55612a9c600033613f92565b612ab4600080516020615c9e83398151915233613f92565b8015611aee576000805461ff001916905550565b612ae0600080516020615c9e83398151915233612b62565b612afc5760405162461bcd60e51b8152600401610dd99061568e565b612b0581613547565b612b215760405162461bcd60e51b8152600401610dd9906158f1565b60009081526101656020526040812055565b612b3e600033612b62565b612b5a5760405162461bcd60e51b8152600401610dd9906157a9565b611956613f9c565b600091825261012d602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060668054610f2390615507565b611923338383614017565b612bc0600080516020615c9e83398151915233612b62565b612bdc5760405162461bcd60e51b8152600401610dd99061568e565b61016c80546001600160a01b0319166001600160a01b0392909216919091179055565b612c0933836140e1565b612c255760405162461bcd60e51b8152600401610dd99061591f565b611c19848484846141a3565b61016160205260009081526040902080546128e890615507565b6000612c5683613547565b15612d445761238c8310158015612c6f57506124538311155b15612c7c57506001610d2a565b6000838152610165602052604081206002810154909190612ca19062278d0090615815565b905060026000868152610164602052604090205460ff166005811115612cc957612cc961535a565b03612d0e574281108015612ce0575061015f548411155b80612d055750428110158015612d05575061015f548254612d02908690615815565b11155b92505050610d2a565b4281108015612d21575081600101548411155b80612d055750428110158015612d05575060018201548254612d02908690615815565b506000610d2a565b612d64600080516020615c9e83398151915233612b62565b612d805760405162461bcd60e51b8152600401610dd99061568e565b61015f55565b612d9e600080516020615c2c83398151915233612b62565b80612dbc5750612dbc600080516020615c9e83398151915233612b62565b612dd85760405162461bcd60e51b8152600401610dd99061568e565b612de182613547565b612dfd5760405162461bcd60e51b8152600401610dd9906158f1565b60026000838152610164602052604090205460ff166005811115612e2357612e2361535a565b14158015612e5357506000828152610164602052604081205460ff166005811115612e5057612e5061535a565b14155b612eaf5760405162461bcd60e51b815260206004820152602760248201527f4e6f7420696e20636f72726563742073746174757320666f72206c696d69742060448201526618dbdb9d1c9bdb60ca1b6064820152608401610dd9565b6000918252610165602052604090912060010155565b6060612ed082613547565b612f345760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610dd9565b6000612f3e6141d6565b90506000612f67604080518082019091526008815267267374617475733d60c01b602082015290565b90506000612f906040805180820190915260088152672677616c6c65743d60c01b602082015290565b90506000835111612fb05760405180602001604052806000815250613029565b82612fba86613a36565b600087815261016460205260409020548490612fe99060ff166005811115612fe457612fe461535a565b613a36565b60008981526101686020526040902054859061300490613a36565b60405160200161301996959493929190615970565b6040516020818303038152906040525b95945050505050565b61303b82611744565b613045813361383b565b610e678383613926565b6040516331a9108f60e11b8152600481018390523090636352211e90602401602060405180830381865afa15801561308b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130af9190615646565b6001600160a01b0316336001600160a01b0316146130df5760405162461bcd60e51b8152600401610dd990615663565b600082815261016160205260409020610e678282615587565b613110600080516020615c9e83398151915233612b62565b8061312e575061312e600080516020615c2c83398151915233612b62565b61314a5760405162461bcd60e51b8152600401610dd9906158af565b60026000838152610164602052604090205460ff1660058111156131705761317061535a565b146131ab5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08151bdd5c9a5cdd60aa1b6044820152606401610dd9565b6040516331a9108f60e11b8152600481018390528290610160906000903090636352211e90602401602060405180830381865afa1580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190615646565b6001600160a01b0316815260208101919091526040016000205561323782613f07565b60008281526101646020526040808220805460ff19166005179055516331a9108f60e11b815261238c60048201523090636352211e90602401602060405180830381865afa15801561328d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b19190615646565b905073912ce59144191c1204e64559fe8253a0e49e6548670de0b6b3a76400006132dc816014615868565b6040516370a0823160e01b81526001600160a01b038416906370a082319061330890879060040161520e565b602060405180830381865afa158015613325573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334991906154d5565b101580156133c7575060056040516342d21ef760e01b81526004810186905230906342d21ef790602401602060405180830381865afa158015613390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b491906159ef565b60058111156133c5576133c561535a565b145b156134c0576040516331a9108f60e11b81526004810185905261344f9084903090636352211e90602401602060405180830381865afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134329190615646565b61343d84600f615868565b6001600160a01b0386169291906141f6565b6040516331a9108f60e11b8152600481018690526134c09084903090636352211e90602401602060405180830381865afa158015613491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b59190615646565b61343d846005615868565b604051849086907fb23db0b1d644ad12d20d90a80bb43bf5ac1f29e365c6fc96137fbf19ce08b91490600090a35050505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216637965db0b60e01b1480610d2a5750610d2a82614250565b6000908152606760205260409020546001600160a01b0316151590565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061359982611da5565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000825b600a81106135f0576135e981600a614275565b90506135d6565b90911492915050565b600081815b81156136235761360f82600a614275565b915061361c816001614281565b90506135fe565b9392505050565b6040516370a0823160e01b815260009060019030906370a082319061365390879060040161520e565b602060405180830381865afa158015613670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369491906154d5565b10801561362357506001600160a01b0383166000908152610160602052604090205415806136235750506001600160a01b0391909116600090815261016060205260409020541490565b6001600160a01b0382166137345760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610dd9565b61373d81613547565b156137895760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610dd9565b6137956000838361428d565b6001600160a01b03821660009081526068602052604081208054600192906137be908490615815565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839290600080516020615cde833981519152908290a45050565b61381433826140e1565b6138305760405162461bcd60e51b8152600401610dd99061591f565b610e67838383613d6e565b6138458282612b62565b6119235761385d816001600160a01b03166014614826565b613868836020614826565b604051602001613879929190615a0c565b60408051601f198184030181529082905262461bcd60e51b8252610dd9916004016151fb565b6138a98282612b62565b61192357600082815261012d602090815260408083206001600160a01b03851684529091529020805460ff191660011790556138e23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6139308282612b62565b1561192357600082815261012d602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60c95460ff166139d75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610dd9565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051613a11919061520e565b60405180910390a1565b60009081526101656020526040812090815542600290910155565b606081600003613a5d5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613a875780613a7181615a7b565b9150613a809050600a83615854565b9150613a61565b6000816001600160401b03811115613aa157613aa161508f565b6040519080825280601f01601f191660200182016040528015613acb576020820181803683370190505b5090505b8415613b3657613ae060018361587f565b9150613aed600a86615a94565b613af8906030615815565b60f81b818381518110613b0d57613b0d615828565b60200101906001600160f81b031916908160001a905350613b2f600a86615854565b9450613acf565b949350505050565b610e6783838360405180602001604052806000815250612bff565b6000613b6482611da5565b9050613b728160008461428d565b613b7d600083613564565b6001600160a01b0381166000908152606860205260408120805460019290613ba690849061587f565b909155505060008281526067602052604080822080546001600160a01b0319169055518391906001600160a01b03841690600080516020615cde833981519152908390a45050565b61016754600160a01b900460ff16613c3a5760405162461bcd60e51b815260206004820152600f60248201526e46323420697320696e61637469766560881b6044820152606401610dd9565b613c458160096135d2565b15613c625760405162461bcd60e51b8152600401610dd9906156b7565b61016654610100900460ff16613c77826135f9565b1115613c955760405162461bcd60e51b8152600401610dd9906156ed565b613c9f338261362a565b613d015760405162461bcd60e51b815260206004820152602d60248201527f4e6f7420616c6c6f7765642e205468652061646472657373206861732f68616460448201526c1030b737ba3432b91027232a1760991b6064820152608401610dd9565b613d0b33826136de565b600081815261016460205260409020805460ff19166002179055613d2e81613a1b565b613d3781613a36565b604051602001613d4791906157cf565b60408051601f19818403018152918152600083815261016160205220906119239082615587565b826001600160a01b0316613d8182611da5565b6001600160a01b031614613de95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610dd9565b6001600160a01b038216613e4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610dd9565b613e5683838361428d565b613e61600082613564565b6001600160a01b0383166000908152606860205260408120805460019290613e8a90849061587f565b90915550506001600160a01b0382166000908152606860205260408120805460019290613eb8908490615815565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b038681169182179092559151849391871691600080516020615cde83398151915291a4505050565b600090815261016560205260408120908155620186a0600182015542600290910155565b600054610100900460ff166119565760405162461bcd60e51b8152600401610dd990615aa8565b600054610100900460ff16613f795760405162461bcd60e51b8152600401610dd990615aa8565b6065613f858382615587565b506066610e678282615587565b611923828261389f565b60c95460ff1615613fe25760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610dd9565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613a043390565b816001600160a01b0316836001600160a01b0316036140745760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610dd9565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60006140ec82613547565b61414d5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610dd9565b600061415883611da5565b9050806001600160a01b0316846001600160a01b031614806141935750836001600160a01b031661418884610fa6565b6001600160a01b0316145b80613b365750613b3681856134f4565b6141ae848484613d6e565b6141ba848484846149c1565b611c195760405162461bcd60e51b8152600401610dd990615af3565b6060604051806060016040528060328152602001615c6c60329139905090565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611c19908590614ac2565b60006001600160e01b0319821663780e9d6360e01b1480610d2a5750610d2a82614b94565b60006136238284615854565b60006136238284615815565b60c95460ff16156142de5760405162461bcd60e51b815260206004820152601b60248201527a1058d8dbdd5b9d081d1c985b9cd9995c9cc81cdd5cdc195b991959602a1b6044820152606401610dd9565b813b151580156142f657506001600160a01b03831615155b156143c05760026040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa158015614339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061435d91906159ef565b600581111561436e5761436e61535a565b146143bb5760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f207472616e73666572206163636f756e74006044820152606401610dd9565b61481b565b6001600160a01b038316158015906143e057506001600160a01b03821615155b1561481b576143f0612392613547565b156146a35760016144008361262c565b10801561444657506001600160a01b03821660009081526101606020526040902054158061444657506001600160a01b0382166000908152610160602052604090205481145b806144d75750614457826000611813565b6123921480156144d7575060046040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa1580156144a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144c491906159ef565b60058111156144d5576144d561535a565b145b6144f35760405162461bcd60e51b8152600401610dd990615738565b60056040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa158015614531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455591906159ef565b60058111156145665761456661535a565b14806145e2575060026040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf91906159ef565b60058111156145e0576145e061535a565b145b80614687575060006145f38361262c565b11801561460b5750614606826000611813565b612392145b8015614687575060046040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa158015614650573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061467491906159ef565b60058111156146855761468561535a565b145b6143bb5760405162461bcd60e51b8152600401610dd990615b45565b60016146ae8361262c565b1080156146f457506001600160a01b0382166000908152610160602052604090205415806146f457506001600160a01b0382166000908152610160602052604090205481145b6147105760405162461bcd60e51b8152600401610dd990615738565b60056040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa15801561474e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061477291906159ef565b60058111156147835761478361535a565b14806147ff575060026040516342d21ef760e01b81526004810183905230906342d21ef790602401602060405180830381865afa1580156147c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147ec91906159ef565b60058111156147fd576147fd61535a565b145b61481b5760405162461bcd60e51b8152600401610dd990615b45565b610e67838383614be4565b60606000614835836002615868565b614840906002615815565b6001600160401b038111156148575761485761508f565b6040519080825280601f01601f191660200182016040528015614881576020820181803683370190505b509050600360fc1b8160008151811061489c5761489c615828565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106148cb576148cb615828565b60200101906001600160f81b031916908160001a90535060006148ef846002615868565b6148fa906001615815565b90505b6001811115614972576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061492e5761492e615828565b1a60f81b82828151811061494457614944615828565b60200101906001600160f81b031916908160001a90535060049490941c9361496b81615b88565b90506148fd565b5083156136235760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dd9565b60006001600160a01b0384163b15614ab757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614a05903390899088908890600401615b9f565b6020604051808303816000875af1925050508015614a40575060408051601f3d908101601f19168201909252614a3d91810190615bdc565b60015b614a9d573d808015614a6e576040519150601f19603f3d011682016040523d82523d6000602084013e614a73565b606091505b508051600003614a955760405162461bcd60e51b8152600401610dd990615af3565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050613b36565b506001949350505050565b6000614b17826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614c569092919063ffffffff16565b805190915015610e675780806020019051810190614b359190615892565b610e675760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610dd9565b60006001600160e01b031982166380ac58cd60e01b1480614bc557506001600160e01b03198216635b5e139f60e01b145b80610d2a57506301ffc9a760e01b6001600160e01b0319831614610d2a565b614bef838383614c65565b60c95460ff1615610e675760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b6064820152608401610dd9565b6060613b368484600085614d1d565b6001600160a01b038316614cc057614cbb81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b614ce3565b816001600160a01b0316836001600160a01b031614614ce357614ce38382614e45565b6001600160a01b038216614cfa57610e6781614ee2565b826001600160a01b0316826001600160a01b031614610e6757610e678282614f91565b606082471015614d7e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610dd9565b843b614dcc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dd9565b600080866001600160a01b03168587604051614de89190615bf9565b60006040518083038185875af1925050503d8060008114614e25576040519150601f19603f3d011682016040523d82523d6000602084013e614e2a565b606091505b5091509150614e3a828286614fd5565b979650505050505050565b60006001614e528461262c565b614e5c919061587f565b600083815260986020526040902054909150808214614eaf576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b609954600090614ef49060019061587f565b6000838152609a602052604081205460998054939450909284908110614f1c57614f1c615828565b906000526020600020015490508060998381548110614f3d57614f3d615828565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480614f7557614f75615c15565b6001900381819060005260206000200160009055905550505050565b6000614f9c8361262c565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b60608315614fe4575081613623565b825115614ff45782518084602001fd5b8160405162461bcd60e51b8152600401610dd991906151fb565b50805461501a90615507565b6000825580601f1061502a575050565b601f016020900490600052602060002090810190611aee91905b808211156150585760008155600101615044565b5090565b6001600160e01b031981168114611aee57600080fd5b60006020828403121561508457600080fd5b81356136238161505c565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b03808411156150bf576150bf61508f565b604051601f8501601f19908116603f011681019082821181831017156150e7576150e761508f565b8160405280935085815286868601111561510057600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261512b57600080fd5b613623838335602085016150a5565b60006020828403121561514c57600080fd5b81356001600160401b0381111561516257600080fd5b613b368482850161511a565b60006020828403121561518057600080fd5b5035919050565b60005b838110156151a257818101518382015260200161518a565b50506000910152565b600081518084526151c3816020860160208601615187565b601f01601f19169290920160200192915050565b6040815260006151ea60408301856151ab565b905082151560208301529392505050565b60208152600061362360208301846151ab565b6001600160a01b0391909116815260200190565b6001600160a01b0381168114611aee57600080fd5b6000806040838503121561524a57600080fd5b823561525581615222565b946020939093013593505050565b60006020828403121561527557600080fd5b813561362381615222565b6000806040838503121561529357600080fd5b8235915060208301356001600160401b038111156152b057600080fd5b6152bc8582860161511a565b9150509250929050565b6000806000606084860312156152db57600080fd5b83356152e681615222565b925060208401356152f681615222565b929592945050506040919091013590565b60006020828403121561531957600080fd5b813560ff8116811461362357600080fd5b6000806040838503121561533d57600080fd5b82359150602083013561534f81615222565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016006831061539257634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156153ab57600080fd5b50508035926020909101359150565b60068110611aee57600080fd5b600080604083850312156153da57600080fd5b82359150602083013561534f816153ba565b600080604083850312156153ff57600080fd5b823561540a81615222565b9150602083013561534f81615222565b8015158114611aee57600080fd5b6000806040838503121561543b57600080fd5b823561544681615222565b9150602083013561534f8161541a565b6000806000806080858703121561546c57600080fd5b843561547781615222565b9350602085013561548781615222565b92506040850135915060608501356001600160401b038111156154a957600080fd5b8501601f810187136154ba57600080fd5b6154c9878235602084016150a5565b91505092959194509250565b6000602082840312156154e757600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600181811c9082168061551b57607f821691505b60208210810361553b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610e6757600081815260208120601f850160051c810160208610156155685750805b601f850160051c820191505b81811015611d9d57828155600101615574565b81516001600160401b038111156155a0576155a061508f565b6155b4816155ae8454615507565b84615541565b602080601f8311600181146155e957600084156155d15750858301515b600019600386901b1c1916600185901b178555611d9d565b600085815260208120601f198616915b82811015615618578886015182559484019460019091019084016155f9565b50858210156156365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561565857600080fd5b815161362381615222565b6020808252601190820152702737ba1030b1b1b7bab73a1037bbb732b960791b604082015260600190565b6020808252600f908201526e2737ba1030b71037b832b930ba37b960891b604082015260600190565b6020808252601c908201527b0e5e1e0818d85b9b9bdd081899481b5a5b9d08189e4818db1a595b9d60221b604082015260600190565b6020808252602b908201527f4e756d626572206f6620646967697473206f66206163636f756e744964203e2060408201526a6d61782e2064696769747360a81b606082015260800190565b6020808252604b908201527f4e6f7420616c6c6f7765642e205468652074617267657420616464726573732060408201527f68617320616e206163636f756e74206f72206f6e63652068616420616e6f746860608201526a32b91030b1b1b7bab73a1760a91b608082015260a00190565b6020808252600c908201526b2737ba1030b71030b236b4b760a11b604082015260600190565b67020b1b1b7bab73a160c51b8152600082516157f2816008850160208701615187565b9190910160080192915050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d2a57610d2a6157ff565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826158635761586361583e565b500490565b8082028115828204841417610d2a57610d2a6157ff565b81810381811115610d2a57610d2a6157ff565b6000602082840312156158a457600080fd5b81516136238161541a565b60208082526022908201527f4e6f7420616e206f70657261746f722f636c69656e747374617475736368616e604082015261676560f01b606082015260800190565b602080825260149082015273151bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000875160206159838285838d01615187565b8851918401916159968184848d01615187565b88519201916159a88184848c01615187565b87519201916159ba8184848b01615187565b86519201916159cc8184848a01615187565b85519201916159de8184848901615187565b919091019998505050505050505050565b600060208284031215615a0157600080fd5b8151613623816153ba565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615a3e816017850160208801615187565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615a6f816028840160208801615187565b01602801949350505050565b600060018201615a8d57615a8d6157ff565b5060010190565b600082615aa357615aa361583e565b500690565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526023908201527f5472616e73666572206e6f7420616c6c6f77656420696e20746869732073746160408201526274757360e81b606082015260800190565b600081615b9757615b976157ff565b506000190190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615bd2908301846151ab565b9695505050505050565b600060208284031215615bee57600080fd5b81516136238161505c565b60008251615c0b818460208701615187565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfef2a163c55699a912c8908f55eafbd268811e90fb1b12c3601e6cc1cabd48a525ebb9a89f0ec4a68c7ff3381441395232db5fb2a2ec04968228ce2332afd4a5d968747470733a2f2f6170692e646566692e736170686972737465696e2e636f6d2f6d657461646174613f746f6b656e69643d97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122096508d1266df881c2cd2e4429212ee096e73708cebc0ea0b5c66f7fa340cbbf964736f6c63430008120033