0 txs
0 calls
constructor
constructor()
functions
admin
viewfunction admin() view returns (address)
aggregatorInterface
viewfunction aggregatorInterface() view returns (address)
baseDecimals
viewfunction baseDecimals() view returns (uint256)
calculatePrice
viewfunction calculatePrice(uint256 _amount) view returns (uint256)
checkPoint
viewfunction checkPoint() view returns (uint256)
claimStart
viewfunction claimStart() view returns (uint256)
currentStep
viewfunction currentStep() view returns (uint256)
dynamicTimeFlag
viewfunction dynamicTimeFlag() view returns (bool)
endTime
viewfunction endTime() view returns (uint256)
ethBuyHelper
viewfunction ethBuyHelper(uint256 amount) view returns (uint256 ethAmount)
getLatestPrice
viewfunction getLatestPrice() view returns (uint256)
hasClaimed
viewfunction hasClaimed(address) view returns (bool)
isBlacklisted
viewfunction isBlacklisted(address) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address) view returns (bool)
maxTokensToBuy
viewfunction maxTokensToBuy() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentWallet
viewfunction paymentWallet() view returns (address)
prevCheckpoints
viewfunction prevCheckpoints(uint256) view returns (uint256)
remainingTokensTracker
viewfunction remainingTokensTracker(uint256) view returns (uint256)
roundDetails
viewfunction roundDetails(uint256 _no) view returns (uint256[])
rounds
viewfunction rounds(uint256, uint256) view returns (uint256)
saleToken
viewfunction saleToken() view returns (address)
startTime
viewfunction startTime() view returns (uint256)
timeConstant
viewfunction timeConstant() view returns (uint256)
totalTokensSold
viewfunction totalTokensSold() view returns (uint256)
trackRemainingTokens
viewfunction trackRemainingTokens() view returns (uint256[])
usdRaised
viewfunction usdRaised() view returns (uint256)
usdtBuyHelper
viewfunction usdtBuyHelper(uint256 amount) view returns (uint256 usdPrice)
USDTInterface
viewfunction USDTInterface() view returns (address)
userDeposits
viewfunction userDeposits(address) view returns (uint256)
wertWhitelisted
viewfunction wertWhitelisted(address) view returns (bool)
whitelistClaimOnly
viewfunction whitelistClaimOnly() view returns (bool)
addNewRound
nonpayablefunction addNewRound(uint256 _newNoOfTokens, uint256 _newPrice, uint256 _newTime) returns (bool)
blacklistUsers
nonpayablefunction blacklistUsers(address[] _usersToBlacklist)
buyWithEth
payablefunction buyWithEth(uint256 amount) payable returns (bool)
buyWithETHWert
payablefunction buyWithETHWert(address _user, uint256 _amount) payable returns (bool)
buyWithUSDT
nonpayablefunction buyWithUSDT(uint256 amount) returns (bool)
changeClaimStart
nonpayablefunction changeClaimStart(uint256 _claimStart) returns (bool)
changeIndividualRoundData
nonpayablefunction changeIndividualRoundData(uint256 _index, uint256 _newNoOfTokens, uint256 _newPrice, uint256 _newTime) returns (bool)
changeMaxTokensToBuy
nonpayablefunction changeMaxTokensToBuy(uint256 _maxTokensToBuy)
changePaymentWallet
nonpayablefunction changePaymentWallet(address _newPaymentWallet)
changeRoundsData
nonpayablefunction changeRoundsData(uint256[][3] _rounds)
changeSaleTimes
nonpayablefunction changeSaleTimes(uint256 _startTime, uint256 _endTime)
claim
nonpayablefunction claim() returns (bool)
incrementCurrentStep
nonpayablefunction incrementCurrentStep()
pause
nonpayablefunction pause()
removeFromBlacklist
nonpayablefunction removeFromBlacklist(address[] _userToRemoveFromBlacklist)
removeFromWhitelist
nonpayablefunction removeFromWhitelist(address[] _userToRemoveFromWhitelist)
removeFromWhitelistForWERT
nonpayablefunction removeFromWhitelistForWERT(address[] _addressesToRemoveFromWhitelist)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin)
setClaimWhitelistStatus
nonpayablefunction setClaimWhitelistStatus(bool _status)
setCurrentStep
nonpayablefunction setCurrentStep(uint256 _step, uint256 _checkpoint)
setDynamicTimeFlag
nonpayablefunction setDynamicTimeFlag(bool _dynamicTimeFlag)
setTimeConstant
nonpayablefunction setTimeConstant(uint256 _timeConstant)
startClaim
nonpayablefunction startClaim(uint256 _claimStart, uint256 noOfTokens, address _saleToken) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateFromBSC
nonpayablefunction updateFromBSC(address[] _users, uint256[] _userDeposits)
whitelistUsers
nonpayablefunction whitelistUsers(address[] _usersToWhitelist)
whitelistUsersForWERT
nonpayablefunction whitelistUsersForWERT(address[] _addressesToWhitelist)
events
ClaimStartUpdated
event ClaimStartUpdated(uint256 prevValue, uint256 newValue, uint256 timestamp)
Initialized
event Initialized(uint8 version)
MaxTokensUpdated
event MaxTokensUpdated(uint256 prevValue, uint256 newValue, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SaleTimeSet
event SaleTimeSet(uint256 _start, uint256 _end, uint256 timestamp)
SaleTimeUpdated
event SaleTimeUpdated(bytes32 indexed key, uint256 prevValue, uint256 newValue, uint256 timestamp)
TokensAdded
event TokensAdded(address indexed token, uint256 noOfTokens, uint256 timestamp)
TokensBought
event TokensBought(address indexed user, uint256 indexed tokensBought, address indexed purchaseToken, uint256 amountPaid, uint256 usdEq, uint256 timestamp)
TokensClaimed
event TokensClaimed(address indexed user, uint256 amount, uint256 timestamp)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200013d60201b620030c51760201c565b15801562000063575060005460ff166001145b620000cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000ef576000805461ff0019166101001790555b801562000136576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506200014c565b6001600160a01b03163b151590565b613b80806200015c6000396000f3fe6080604052600436106103ad5760003560e01c80638456cb59116101e7578063c8adff011161010d578063edec5f27116100a0578063f597573f1161006f578063f597573f14610aa2578063f851a44014610ac2578063fb9a4acd14610ae2578063fe575a8714610b0257600080fd5b8063edec5f2714610a2c578063f04d688f14610a4c578063f2fde38b14610a62578063f446374314610a8257600080fd5b8063e32204dd116100dc578063e32204dd146109b6578063e6da9213146109d6578063e985e367146109f6578063eadd94ec14610a1657600080fd5b8063c8adff011461094b578063cad0055614610960578063cff805ab14610980578063e19648db1461099657600080fd5b8063a7c6016011610185578063ba166a3911610154578063ba166a39146108be578063bb3d676a146108eb578063c23326f31461090b578063c49cc6451461092b57600080fd5b8063a7c601601461083e578063ae1042651461085e578063b02538471461087e578063b2caaebd1461089e57600080fd5b80638e15f473116101c15780638e15f473146107d35780639a89c1fb146107e85780639cfa0f7c14610808578063a6d42e4e1461081e57600080fd5b80638456cb591461076c57806389daf799146107815780638da5cb5b146107a157600080fd5b806343568eae116102d757806363b201171161026a578063715018a611610239578063715018a6146106fe57806373b2e80e146107135780637649b9571461074357806378e979251461075657600080fd5b806363b201171461069357806363e40879146106a9578063641046f4146106c9578063704b6c02146106de57600080fd5b8063548db174116102a6578063548db174146106155780635bc34f71146106355780635c975abb1461064b5780635df4f3531461066357600080fd5b806343568eae146105b65780634e71d92d146105cc5780635173ffaa146105e157806353d99207146105f457600080fd5b806323a8f1c01161034f57806333f761781161031e57806333f761781461053b5780633af32abf146105515780633d9c8d8b146105815780633f4ba83a146105a157600080fd5b806323a8f1c0146104c5578063278c278b146104e557806329a5a0b6146105055780633197cbb61461052557600080fd5b80630ba36dcd1161038b5780630ba36dcd146104295780630dc9c838146104645780631ddc6091146104845780631fa2bc92146104a457600080fd5b806303b9c5ad146103b257806307f18082146103d45780630a200fc714610409575b600080fd5b3480156103be57600080fd5b506103d26103cd366004613517565b610b32565b005b3480156103e057600080fd5b506103f46103ef366004613559565b610bb1565b60405190151581526020015b60405180910390f35b34801561041557600080fd5b506103d2610424366004613580565b610ced565b34801561043557600080fd5b506104566104443660046135b4565b60dc6020526000908152604090205481565b604051908152602001610400565b34801561047057600080fd5b506103d261047f3660046135cf565b610d13565b34801561049057600080fd5b506103d261049f366004613580565b610f35565b3480156104b057600080fd5b5060d9546103f490600160a01b900460ff1681565b3480156104d157600080fd5b506103d26104e0366004613559565b610f5b565b3480156104f157600080fd5b506103d2610500366004613559565b610f68565b34801561051157600080fd5b50610456610520366004613559565b61100b565b34801561053157600080fd5b5061045660cb5481565b34801561054757600080fd5b5061045660ce5481565b34801561055d57600080fd5b506103f461056c3660046135b4565b60df6020526000908152604090205460ff1681565b34801561058d57600080fd5b506103f461059c3660046135f1565b61103f565b3480156105ad57600080fd5b506103d2611114565b3480156105c257600080fd5b5061045660d85481565b3480156105d857600080fd5b506103f4611126565b6103f46105ef366004613623565b611482565b34801561060057600080fd5b5060d9546103f490600160a81b900460ff1681565b34801561062157600080fd5b506103d2610630366004613517565b6118c2565b34801561064157600080fd5b5061045660d05481565b34801561065757600080fd5b5060975460ff166103f4565b34801561066f57600080fd5b506103f461067e3660046135b4565b60e06020526000908152604090205460ff1681565b34801561069f57600080fd5b5061045660c95481565b3480156106b557600080fd5b506104566106c4366004613559565b61193c565b3480156106d557600080fd5b506103d261195e565b3480156106ea57600080fd5b506103d26106f93660046135b4565b611acc565b34801561070a57600080fd5b506103d2611af6565b34801561071f57600080fd5b506103f461072e3660046135b4565b60dd6020526000908152604090205460ff1681565b6103f4610751366004613559565b611b08565b34801561076257600080fd5b5061045660ca5481565b34801561077857600080fd5b506103d2611ed6565b34801561078d57600080fd5b506103d261079c366004613517565b611ee6565b3480156107ad57600080fd5b506065546001600160a01b03165b6040516001600160a01b039091168152602001610400565b3480156107df57600080fd5b50610456611f60565b3480156107f457600080fd5b506103d26108033660046135cf565b612000565b34801561081457600080fd5b5061045660cf5481565b34801561082a57600080fd5b506103d26108393660046136bd565b612013565b34801561084a57600080fd5b506103f4610859366004613559565b612028565b34801561086a57600080fd5b50610456610879366004613559565b612519565b34801561088a57600080fd5b506103f46108993660046137be565b61284f565b3480156108aa57600080fd5b506103f46108b93660046137ea565b6129bf565b3480156108ca57600080fd5b506108de6108d9366004613559565b612c56565b604051610400919061381f565b3480156108f757600080fd5b506103d2610906366004613517565b612cc2565b34801561091757600080fd5b50610456610926366004613559565b612d3c565b34801561093757600080fd5b5060db546107bb906001600160a01b031681565b34801561095757600080fd5b506108de612d5d565b34801561096c57600080fd5b506103d261097b3660046135b4565b612db5565b34801561098c57600080fd5b5061045660d45481565b3480156109a257600080fd5b506104566109b1366004613559565b612e2e565b3480156109c257600080fd5b5060d9546107bb906001600160a01b031681565b3480156109e257600080fd5b506104566109f13660046135cf565b612e3e565b348015610a0257600080fd5b5060cd546107bb906001600160a01b031681565b348015610a2257600080fd5b5061045660d55481565b348015610a3857600080fd5b506103d2610a47366004613517565b612e72565b348015610a5857600080fd5b5061045660cc5481565b348015610a6e57600080fd5b506103d2610a7d3660046135b4565b612eec565b348015610a8e57600080fd5b506103d2610a9d366004613517565b612f65565b348015610aae57600080fd5b5060da546107bb906001600160a01b031681565b348015610ace57600080fd5b5060e1546107bb906001600160a01b031681565b348015610aee57600080fd5b506103d2610afd366004613863565b612fdf565b348015610b0e57600080fd5b506103f4610b1d3660046135b4565b60de6020526000908152604090205460ff1681565b610b3a6130d4565b60005b81811015610bac57600160e06000858585818110610b5d57610b5d6138cf565b9050602002016020810190610b7291906135b4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ba4816138fb565b915050610b3d565b505050565b6000610bbb6130d4565b600060cc5411610c125760405162461bcd60e51b815260206004820152601a60248201527f496e697469616c20636c61696d2064617461206e6f742073657400000000000060448201526064015b60405180910390fd5b60cb548211610c565760405162461bcd60e51b815260206004820152601060248201526f53616c6520696e2070726f677265737360801b6044820152606401610c09565b428211610c9b5760405162461bcd60e51b815260206004820152601360248201527210db185a5b481cdd185c9d081a5b881c185cdd606a1b6044820152606401610c09565b60cc8054908390556040805182815260208101859052428183015290517f5f3a900c85949962b4cc192dd3714dae64071dc2e907049ec720b023270905a49181900360600190a160019150505b919050565b610cf56130d4565b60d98054911515600160a01b0260ff60a01b19909216919091179055565b610d1b6130d4565b6000821180610d2a5750600081115b610d6b5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420706172616d657465727360701b6044820152606401610c09565b8115610e505760ca544210610db95760405162461bcd60e51b815260206004820152601460248201527314d85b1948185b1c9958591e481cdd185c9d195960621b6044820152606401610c09565b814210610dfc5760405162461bcd60e51b815260206004820152601160248201527014d85b19481d1a5b59481a5b881c185cdd607a1b6044820152606401610c09565b60ca8054908390556040805182815260208101859052428183015290516414d510549560da1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b8015610f315760cb544210610e9c5760405162461bcd60e51b815260206004820152601260248201527114d85b1948185b1c9958591e48195b99195960721b6044820152606401610c09565b60ca548111610edf5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420656e6454696d6560881b6044820152606401610c09565b60cb8054908290556040805182815260208101849052428183015290516211539160ea1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b5050565b610f3d6130d4565b60d98054911515600160a81b0260ff60a81b19909216919091179055565b610f636130d4565b60d855565b610f706130d4565b60008111610fc05760405162461bcd60e51b815260206004820152601c60248201527f5a65726f206d617820746f6b656e7320746f206275792076616c7565000000006044820152606401610c09565b60cf8054908290556040805182815260208101849052428183015290517f76f9e5e1f6af6a9f180708b77a5c99210fbf19b91f1f194f3918c262b8edf77c9181900360600190a15050565b60008061101783612519565b9050611021611f60565b60ce5461102e9083613916565b6110389190613935565b9392505050565b60006110496130d4565b60d15485111561108b5760405162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610c09565b83156110b5578360d160000186815481106110a8576110a86138cf565b6000918252602090912001555b82156110df578260d160010186815481106110d2576110d26138cf565b6000918252602090912001555b8115611109578160d160020186815481106110fc576110fc6138cf565b6000918252602090912001555b506001949350505050565b61111c6130d4565b61112461312e565b565b6000611130613180565b60cd546001600160a01b031661117f5760405162461bcd60e51b815260206004820152601460248201527314d85b19481d1bdad95b881b9bdd08185919195960621b6044820152606401610c09565b33600090815260de602052604090205460ff16156111df5760405162461bcd60e51b815260206004820152601b60248201527f54686973204164647265737320697320426c61636b6c697374656400000000006044820152606401610c09565b60d954600160a81b900460ff16156112505733600090815260df602052604090205460ff166112505760405162461bcd60e51b815260206004820152601e60248201527f55736572206e6f742077686974656c697374656420666f7220636c61696d00006044820152606401610c09565b60cc544210156112a25760405162461bcd60e51b815260206004820152601960248201527f436c61696d20686173206e6f74207374617274656420796574000000000000006044820152606401610c09565b33600090815260dd602052604090205460ff16156112f45760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b6044820152606401610c09565b33600090815260dd60209081526040808320805460ff1916600117905560dc909152902054806113595760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b6044820152606401610c09565b33600081815260dc6020908152604080832083905560cd54815163a9059cbb60e01b8152600481019590955260248501869052905192936001600160a01b039091169263a9059cbb9260448084019391929182900301818787803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f89190613957565b90508061143f5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610c09565b6040805183815242602082015233917f9923b4306c6c030f2bdfbf156517d5983b87e15b96176da122cd4f2effa4ba7b910160405180910390a260019250505090565b60008160ca544210158015611499575060cb544211155b6114b55760405162461bcd60e51b8152600401610c0990613974565b600081116114d55760405162461bcd60e51b8152600401610c09906139ab565b6114dd613180565b600260015414156115305760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c09565b600260015533600090815260e0602052604090205460ff166115945760405162461bcd60e51b815260206004820181905260248201527f55736572206e6f742077686974656c697374656420666f7220746869732074786044820152606401610c09565b600061159f84612519565b905060006115ab611f60565b60ce546115b89084613916565b6115c29190613935565b9050803410156116035760405162461bcd60e51b815260206004820152600c60248201526b13195cdcc81c185e5b595b9d60a21b6044820152606401610c09565b600061160f82346139d8565b90508560c9600082825461162391906139ef565b909155505060d45415611648578560d4600082825461164291906139ef565b90915550505b600060d45460c9541161165d5760d454611661565b60c9545b905060d160000160d0548154811061167b5761167b6138cf565b90600052602060002001548111806116b5575060d160020160d054815481106116a6576116a66138cf565b90600052602060002001544210155b156117e85760d160020160d054815481106116d2576116d26138cf565b90600052602060002001544210611719578660d160000160d054815481106116fc576116fc6138cf565b906000526020600020015461171191906139ef565b60d455611733565b60d954600160a01b900460ff1615611733576117336131c6565b600060d1810160d0548154811061174c5761174c6138cf565b90600052602060002001548211611790578160d160000160d05481548110611776576117766138cf565b906000526020600020015461178b91906139d8565b611793565b60005b60d780546001818101835560009283527f8a012a6de2943a5aa4d77acf5e695d4456760a3f1f30a5d6dc2079599187a07190910183905560d0805493945090929091906117e19084906139ef565b9091555050505b60ce546117f59088613916565b6001600160a01b038916600090815260dc60205260408120805490919061181d9084906139ef565b925050819055508360d5600082825461183691906139ef565b909155505060d954611851906001600160a01b031684613236565b8115611861576118618883613236565b60408051848152602081018690524281830152905160009189916001600160a01b038c16917f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36919081900360600190a4505060018080559695505050505050565b6118ca6130d4565b60005b81811015610bac57600060df60008585858181106118ed576118ed6138cf565b905060200201602081019061190291906135b4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611934816138fb565b9150506118cd565b600061194782612519565b905061195864e8d4a5100082613935565b92915050565b60e1546001600160a01b031633148061198157506065546001600160a01b031633145b6119cd5760405162461bcd60e51b815260206004820152601960248201527f63616c6c6572206e6f742061646d696e206f72206f776e6572000000000000006044820152606401610c09565b60d45460d680546001810182556000919091527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd015560d954600160a01b900460ff1615611a1d57611a1d6131c6565b60d160000160d05481548110611a3557611a356138cf565b906000526020600020015460d4541015611ab55760d45460d79060d160000160d05481548110611a6757611a676138cf565b9060005260206000200154611a7c91906139d8565b8154600181018355600092835260208320015560d10160d05481548110611aa557611aa56138cf565b60009182526020909120015460d4555b60d08054906000611ac5836138fb565b9190505550565b611ad46130d4565b60e180546001600160a01b0319166001600160a01b0392909216919091179055565b611afe6130d4565b611124600061330c565b60008160ca544210158015611b1f575060cb544211155b611b3b5760405162461bcd60e51b8152600401610c0990613974565b60008111611b5b5760405162461bcd60e51b8152600401610c09906139ab565b611b63613180565b60026001541415611bb65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c09565b60026001556000611bc684612519565b90506000611bd2611f60565b60ce54611bdf9084613916565b611be99190613935565b905080341015611c2a5760405162461bcd60e51b815260206004820152600c60248201526b13195cdcc81c185e5b595b9d60a21b6044820152606401610c09565b6000611c3682346139d8565b90508560c96000828254611c4a91906139ef565b909155505060d45415611c6f578560d46000828254611c6991906139ef565b90915550505b600060d45460c95411611c845760d454611c88565b60c9545b905060d160000160d05481548110611ca257611ca26138cf565b9060005260206000200154811180611cdc575060d160020160d05481548110611ccd57611ccd6138cf565b90600052602060002001544210155b15611e0f5760d160020160d05481548110611cf957611cf96138cf565b90600052602060002001544210611d40578660d160000160d05481548110611d2357611d236138cf565b9060005260206000200154611d3891906139ef565b60d455611d5a565b60d954600160a01b900460ff1615611d5a57611d5a6131c6565b600060d1810160d05481548110611d7357611d736138cf565b90600052602060002001548211611db7578160d160000160d05481548110611d9d57611d9d6138cf565b9060005260206000200154611db291906139d8565b611dba565b60005b60d780546001818101835560009283527f8a012a6de2943a5aa4d77acf5e695d4456760a3f1f30a5d6dc2079599187a07190910183905560d080549394509092909190611e089084906139ef565b9091555050505b60ce54611e1c9088613916565b33600090815260dc602052604081208054909190611e3b9084906139ef565b925050819055508360d56000828254611e5491906139ef565b909155505060d954611e6f906001600160a01b031684613236565b8115611e7f57611e7f3383613236565b604080518481526020810186905242818301529051600091899133917f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36919081900360600190a45050600180805595945050505050565b611ede6130d4565b61112461335e565b611eee6130d4565b60005b81811015610bac57600060de6000858585818110611f1157611f116138cf565b9050602002016020810190611f2691906135b4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611f58816138fb565b915050611ef1565b60008060db60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015611fb157600080fd5b505afa158015611fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe99190613a21565b505050915050806402540be4006119589190613a71565b6120086130d4565b60d09190915560d455565b61201b6130d4565b610f3160d18260036133e4565b60008160ca54421015801561203f575060cb544211155b61205b5760405162461bcd60e51b8152600401610c0990613974565b6000811161207b5760405162461bcd60e51b8152600401610c09906139ab565b612083613180565b600061208e84612519565b90508360c960008282546120a291906139ef565b909155505060d454156120c7578360d460008282546120c191906139ef565b90915550505b600060d45460c954116120dc5760d4546120e0565b60c9545b905060d160000160d054815481106120fa576120fa6138cf565b9060005260206000200154811180612134575060d160020160d05481548110612125576121256138cf565b90600052602060002001544210155b156122675760d160020160d05481548110612151576121516138cf565b90600052602060002001544210612198578460d160000160d0548154811061217b5761217b6138cf565b906000526020600020015461219091906139ef565b60d4556121b2565b60d954600160a01b900460ff16156121b2576121b26131c6565b600060d1810160d054815481106121cb576121cb6138cf565b9060005260206000200154821161220f578160d160000160d054815481106121f5576121f56138cf565b906000526020600020015461220a91906139d8565b612212565b60005b60d780546001818101835560009283527f8a012a6de2943a5aa4d77acf5e695d4456760a3f1f30a5d6dc2079599187a07190910183905560d0805493945090929091906122609084906139ef565b9091555050505b60ce546122749086613916565b33600090815260dc6020526040812080549091906122939084906139ef565b925050819055508160d560008282546122ac91906139ef565b909155505060da546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b15801561230b57600080fd5b505afa15801561231f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123439190613af6565b9050600061235664e8d4a5100085613935565b9050818111156123b25760405162461bcd60e51b815260206004820152602160248201527f4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e636044820152606560f81b6064820152608401610c09565b60da546000906001600160a01b03163360d9546040516001600160a01b039283166024820152911660448201526064810184905260840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b1790525161241e9190613b0f565b6000604051808303816000865af19150503d806000811461245b576040519150601f19603f3d011682016040523d82523d6000602084013e612460565b606091505b50509050806124a85760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610c09565b60da546001600160a01b031688336001600160a01b03167f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36858942604051612503939291909283526020830191909152604082015260600190565b60405180910390a4506001979650505050505050565b600080600060d4546000146125305760d454612534565b60c9545b905060cf548411156125885760405162461bcd60e51b815260206004820181905260248201527f416d6f756e742065786365656473206d617820746f6b656e7320746f206275796044820152606401610c09565b60d160000160d054815481106125a0576125a06138cf565b906000526020600020015481856125b791906139ef565b11806125e5575060d160020160d054815481106125d6576125d66138cf565b90600052602060002001544210155b156128175760d1546125f9906001906139d8565b60d054106126385760405162461bcd60e51b815260206004820152600c60248201526b57726f6e6720706172616d7360a01b6044820152606401610c09565b60d160020160d05481548110612650576126506138cf565b906000526020600020015442106127635760d05460d1906126729060016139ef565b81548110612682576126826138cf565b90600052602060002001548460d16000600381106126a2576126a26138cf565b0160d054815481106126b6576126b66138cf565b90600052602060002001546126cb91906139ef565b11156127255760405162461bcd60e51b815260206004820152602360248201527f43616e74205075726368617365204d6f726520696e20696e646976696475616c604482015262040e8f60eb1b6064820152608401610c09565b60d05460d2906127369060016139ef565b81548110612746576127466138cf565b90600052602060002001548461275c9190613916565b9150612848565b60008160d1820160d0548154811061277d5761277d6138cf565b906000526020600020015461279291906139d8565b60d05490915060d2906127a69060016139ef565b815481106127b6576127b66138cf565b906000526020600020015481866127cd91906139d8565b6127d79190613916565b60d160010160d054815481106127ef576127ef6138cf565b9060005260206000200154826128059190613916565b61280f91906139ef565b925050612848565b60d160010160d0548154811061282f5761282f6138cf565b9060005260206000200154846128459190613916565b91505b5092915050565b60006128596130d4565b600084116128a05760405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206e6f206f6620746f6b656e7360601b6044820152606401610c09565b600083116128e45760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964206e657720707269636560781b6044820152606401610c09565b600082116129275760405162461bcd60e51b815260206004820152601060248201526f696e76616c6964206e65772074696d6560801b6044820152606401610c09565b5060d1805460018082019092557f695fb3134ad82c3b8022bc5464edd0bcc9424ef672b52245dcb6ab2374327ce3019390935560d280548085019091557ff2192e1030363415d7b4fb0406540a0060e8e2fc8982f3f32289379e11fa6546019190915560d3805480840182556000919091527f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a6015590565b60006129c96130d4565b60cb54841180156129d957504284115b612a255760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636c61696d2073746172742074696d6500000000000000006044820152606401610c09565b60ce5460c954612a359190613916565b831015612a7c5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b9cc81b195cdcc81d1a185b881cdbdb19605a1b6044820152606401610c09565b6001600160a01b038216612ac75760405162461bcd60e51b81526020600482015260126024820152715a65726f20746f6b656e206164647265737360701b6044820152606401610c09565b60cc5415612b0b5760405162461bcd60e51b815260206004820152601160248201527010db185a5b48185b1c9958591e481cd95d607a1b6044820152606401610c09565b60cc84905560cd80546001600160a01b0319166001600160a01b0384169081179091556000906323b872dd336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101879052606401602060405180830381600087803b158015612b8557600080fd5b505af1158015612b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbd9190613957565b905080612c045760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610c09565b60cd54604080518681524260208201526001600160a01b03909216917fdc9670dbabdd488b372eb16ebe49a39b3124a12cdffdcefbc89834a408bf8ff8910160405180910390a2506001949350505050565b606060d18260038110612c6b57612c6b6138cf565b01805480602002602001604051908101604052809291908181526020018280548015612cb657602002820191906000526020600020905b815481526020019060010190808311612ca2575b50505050509050919050565b612cca6130d4565b60005b81811015610bac57600160de6000858585818110612ced57612ced6138cf565b9050602002016020810190612d0291906135b4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580612d34816138fb565b915050612ccd565b60d78181548110612d4c57600080fd5b600091825260209091200154905081565b606060d7805480602002602001604051908101604052809291908181526020018280548015612dab57602002820191906000526020600020905b815481526020019060010190808311612d97575b5050505050905090565b612dbd6130d4565b6001600160a01b038116612e0c5760405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b6044820152606401610c09565b60d980546001600160a01b0319166001600160a01b0392909216919091179055565b60d68181548110612d4c57600080fd5b60d18260038110612e4e57600080fd5b018181548110612e5d57600080fd5b90600052602060002001600091509150505481565b612e7a6130d4565b60005b81811015610bac57600160df6000858585818110612e9d57612e9d6138cf565b9050602002016020810190612eb291906135b4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580612ee4816138fb565b915050612e7d565b612ef46130d4565b6001600160a01b038116612f595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c09565b612f628161330c565b50565b612f6d6130d4565b60005b81811015610bac57600060e06000858585818110612f9057612f906138cf565b9050602002016020810190612fa591906135b4565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580612fd7816138fb565b915050612f70565b612fe76130d4565b8281146130285760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610c09565b60005b838110156130be57828282818110613045576130456138cf565b9050602002013560dc6000878785818110613062576130626138cf565b905060200201602081019061307791906135b4565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546130a691906139ef565b909155508190506130b6816138fb565b91505061302b565b5050505050565b6001600160a01b03163b151590565b6065546001600160a01b031633146111245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c09565b61313661339b565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff16156111245760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c09565b60005b60d05460d3546131d991906139d8565b811015612f625760d8546131ed9082613916565b6131f790426139ef565b60d05460d3906132089084906139ef565b81548110613218576132186138cf565b6000918252602090912001558061322e816138fb565b9150506131c9565b804710156132745760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610c09565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146132c1576040519150601f19603f3d011682016040523d82523d6000602084013e6132c6565b606091505b5050905080610bac5760405162461bcd60e51b81526020600482015260126024820152711155120814185e5b595b9d0819985a5b195960721b6044820152606401610c09565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b613366613180565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586131633390565b60975460ff166111245760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c09565b8260038101928215613424579160200282015b828111156134245782518051613414918491602090910190613434565b50916020019190600101906133f7565b5061343092915061347b565b5090565b82805482825590600052602060002090810192821561346f579160200282015b8281111561346f578251825591602001919060010190613454565b50613430929150613498565b8082111561343057600061348f82826134ad565b5060010161347b565b5b808211156134305760008155600101613499565b5080546000825590600052602060002090810190612f629190613498565b60008083601f8401126134dd57600080fd5b50813567ffffffffffffffff8111156134f557600080fd5b6020830191508360208260051b850101111561351057600080fd5b9250929050565b6000806020838503121561352a57600080fd5b823567ffffffffffffffff81111561354157600080fd5b61354d858286016134cb565b90969095509350505050565b60006020828403121561356b57600080fd5b5035919050565b8015158114612f6257600080fd5b60006020828403121561359257600080fd5b813561103881613572565b80356001600160a01b0381168114610ce857600080fd5b6000602082840312156135c657600080fd5b6110388261359d565b600080604083850312156135e257600080fd5b50508035926020909101359150565b6000806000806080858703121561360757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561363657600080fd5b61363f8361359d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156136865761368661364d565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156136b5576136b561364d565b604052919050565b600060208083850312156136d057600080fd5b823567ffffffffffffffff808211156136e857600080fd5b8185019150601f86818401126136fd57600080fd5b613705613663565b80606085018981111561371757600080fd5b855b818110156137af578035868111156137315760008081fd5b87018581018c136137425760008081fd5b8035878111156137545761375461364d565b8060051b6137638b820161368c565b9182528281018b01918b8101908f84111561378057600092508283fd5b938c01935b8385101561379e5784358252938c0193908c0190613785565b885250505093880193508701613719565b50909998505050505050505050565b6000806000606084860312156137d357600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156137ff57600080fd5b83359250602084013591506138166040850161359d565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156138575783518352928401929184019160010161383b565b50909695505050505050565b6000806000806040858703121561387957600080fd5b843567ffffffffffffffff8082111561389157600080fd5b61389d888389016134cb565b909650945060208701359150808211156138b657600080fd5b506138c3878288016134cb565b95989497509550505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561390f5761390f6138e5565b5060010190565b6000816000190483118215151615613930576139306138e5565b500290565b60008261395257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561396957600080fd5b815161103881613572565b60208082526017908201527f496e76616c69642074696d6520666f7220627579696e67000000000000000000604082015260600190565b602080825260139082015272125b9d985b1a59081cd85b1948185b5bdd5b9d606a1b604082015260600190565b6000828210156139ea576139ea6138e5565b500390565b60008219821115613a0257613a026138e5565b500190565b805169ffffffffffffffffffff81168114610ce857600080fd5b600080600080600060a08688031215613a3957600080fd5b613a4286613a07565b9450602086015193506040860151925060608601519150613a6560808701613a07565b90509295509295909350565b60006001600160ff1b0381841382841380821686840486111615613a9757613a976138e5565b600160ff1b6000871282811687830589121615613ab657613ab66138e5565b60008712925087820587128484161615613ad257613ad26138e5565b87850587128184161615613ae857613ae86138e5565b505050929093029392505050565b600060208284031215613b0857600080fd5b5051919050565b6000825160005b81811015613b305760208186018101518583015201613b16565b81811115613b3f576000828501525b50919091019291505056fea26469706673582212201f142caec335886b55e46aa88506391ca86d4d65a4c943dbf2c1b75c1051e07464736f6c63430008090033