183 txs
254 calls
constructor
constructor(address _usdAddress, address _thirdPartyAddress, address[] _initialDistributionAddresses, uint256[] _initialDistributionAmounts, uint256 _totalDepositCap, uint256 _interestRate, uint256 _autoCompoundIncentive, string _tokenName, string _tokenSymbol)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
autoCompoundAllowed
viewfunction autoCompoundAllowed(address) view returns (bool)
autoCompoundIncentive
viewfunction autoCompoundIncentive() view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
cashedInterest
viewfunction cashedInterest(address) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
getPendingInterest
viewfunction getPendingInterest(address _user) view returns (uint256)
getPendingInterestBulk
viewfunction getPendingInterestBulk(address[] _users) view returns (uint256[])
getPendingInterestBulkByTimeStamp
viewfunction getPendingInterestBulkByTimeStamp(address[] _users, uint256 _timestamp) view returns (uint256[])
getPendingInterestByTimeStamp
viewfunction getPendingInterestByTimeStamp(address _user, uint256 _timestamp) view returns (uint256)
getTotalInterestUser
viewfunction getTotalInterestUser(address _user) view returns (uint256)
getTotalInterestUserBulk
viewfunction getTotalInterestUserBulk(address[] _users) view returns (uint256[])
getTotalInterestUserBulkByTimeStamp
viewfunction getTotalInterestUserBulkByTimeStamp(address[] _users, uint256 _timestamp) view returns (uint256[])
getTotalInterestUserByTimeStamp
viewfunction getTotalInterestUserByTimeStamp(address _user, uint256 _timestamp) view returns (uint256)
interestRate
viewfunction interestRate() view returns (uint256)
isWhiteListed
viewfunction isWhiteListed(address) view returns (bool)
lastSyncTimeStamp
viewfunction lastSyncTimeStamp(address) view returns (uint256)
master
viewfunction master() view returns (address)
name
viewfunction name() view returns (string)
paused
viewfunction paused() view returns (bool)
proposedMaster
viewfunction proposedMaster() view returns (address)
supplyChangeByOwnerNotAllowed
viewfunction supplyChangeByOwnerNotAllowed() view returns (bool)
symbol
viewfunction symbol() view returns (string)
thirdPartyAddress
viewfunction thirdPartyAddress() view returns (address)
totalDepositCap
viewfunction totalDepositCap() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
USD_TOKEN
viewfunction USD_TOKEN() view returns (address)
withdrawAllowed
viewfunction withdrawAllowed() view returns (bool)
allowAutoCompound
nonpayablefunction allowAutoCompound()
allowWithdraw
nonpayablefunction allowWithdraw()
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burnSupply
nonpayablefunction burnSupply(address _from, uint256 _amount)
claimInterest
nonpayablefunction claimInterest() returns (uint256)
claimOwnership
nonpayablefunction claimOwnership()
compoundInterest
nonpayablefunction compoundInterest() returns (uint256)
compoundInterestOnBehalf
nonpayablefunction compoundInterestOnBehalf(address _user) returns (uint256)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 _amount)
depositAndClaimInterest
nonpayablefunction depositAndClaimInterest(uint256 _amount) returns (uint256)
depositAndCompoundInterest
nonpayablefunction depositAndCompoundInterest(uint256 _amount) returns (uint256)
disallowAutoCompound
nonpayablefunction disallowAutoCompound()
disAllowSupplyChangeByOwner
nonpayablefunction disAllowSupplyChangeByOwner()
disallowWithdraw
nonpayablefunction disallowWithdraw()
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
mintSupply
nonpayablefunction mintSupply(address _to, uint256 _amount)
pauseDeposits
nonpayablefunction pauseDeposits()
proposeOwner
nonpayablefunction proposeOwner(address _proposedOwner)
removeWhiteListAddress
nonpayablefunction removeWhiteListAddress(address _unfriendlyUser)
renounceOwnership
nonpayablefunction renounceOwnership()
setInterestRate
nonpayablefunction setInterestRate(uint256 _interestRate)
setThirdPartyAddress
nonpayablefunction setThirdPartyAddress(address _thirdPartyAddress)
setTotalDepositCap
nonpayablefunction setTotalDepositCap(uint256 _totalDepositCap)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
unpauseDeposits
nonpayablefunction unpauseDeposits()
whiteListAddress
nonpayablefunction whiteListAddress(address _friendlyUser)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
MasterProposed
event MasterProposed(address indexed proposer, address indexed proposedMaster)
Paused
event Paused(address account)
RenouncedOwnership
event RenouncedOwnership(address indexed previousMaster)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
errors
CompoundNotAllowed
error CompoundNotAllowed()
DepositExceedCap
error DepositExceedCap()
InsufficientBalance
error InsufficientBalance()
InsufficientBalanceInContract
error InsufficientBalanceInContract(uint256 attemptedWithdrawAmount, uint256 contractBalance)
InvalidPosition
error InvalidPosition()
InvalidValue
error InvalidValue()
NoInterest
error NoInterest()
NoRewards
error NoRewards()
NotMaster
error NotMaster()
NotProposed
error NotProposed()
NotWhiteListed
error NotWhiteListed()
NoValue
error NoValue()
OnlyOwner
error OnlyOwner(address owner, address caller)
SupplyChangeNotAllowed
error SupplyChangeNotAllowed()
WithdrawNotAllowed
error WithdrawNotAllowed()
creation bytecode
0x60a060405234801561000f575f5ffd5b50604051612ba6380380612ba683398101604081905261002e916105da565b8181338061004f5760405163f2365b5b60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b03929092169190911790556001805460ff60a01b19168155600255600661008a8382610756565b5060076100978282610756565b5050506001600160a01b03898116608052600a80546001600160a01b031916918a16919091179055600b85905560088490555f8490036100ea57604051632a9ffab760e21b815260040160405180910390fd5b845f0361010a57604051632a9ffab760e21b815260040160405180910390fd5b6001600160a01b03891661013157604051632a9ffab760e21b815260040160405180910390fd5b6001600160a01b03881661015857604051632a9ffab760e21b815260040160405180910390fd5b5f5b87518110156101d5576101a588828151811061017857610178610810565b602002602001015188838151811061019257610192610810565b602002602001015161020060201b60201c565b6101cd8882815181106101ba576101ba610810565b60200260200101516102c360201b60201c565b60010161015a565b5050506009555050335f908152600d60205260409020805460ff191660011790555061089492505050565b6001600160a01b03821661025a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060055f82825461026b9190610838565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f6102cd82610323565b90508015610302576001600160a01b0382165f908152600f6020526040812080548392906102fc908490610838565b90915550505b506001600160a01b03165f908152600e60205260409020429055565b505050565b5f61032e8242610334565b92915050565b6001600160a01b0382165f90815260036020526040812054805f0361035c575f91505061032e565b6001600160a01b0384165f908152600e602052604081205415610396576001600160a01b0385165f908152600e6020526040902054610398565b835b90508084116103ab575f9250505061032e565b5f6103b6828661084b565b90505f6301e143206103d0670de0b6b3a76400008461085e565b6103da9190610875565b90505f670de0b6b3a764000061271083600854886103f8919061085e565b610402919061085e565b61040c9190610875565b6104169190610875565b98975050505050505050565b80516001600160a01b0381168114610438575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156104795761047961043d565b604052919050565b5f6001600160401b038211156104995761049961043d565b5060051b60200190565b5f82601f8301126104b2575f5ffd5b81516104c56104c082610481565b610451565b8082825260208201915060208360051b8601019250858311156104e6575f5ffd5b602085015b8381101561050a576104fc81610422565b8352602092830192016104eb565b5095945050505050565b5f82601f830112610523575f5ffd5b81516105316104c082610481565b8082825260208201915060208360051b860101925085831115610552575f5ffd5b602085015b8381101561050a578051835260209283019201610557565b5f82601f83011261057e575f5ffd5b81516001600160401b038111156105975761059761043d565b6105aa601f8201601f1916602001610451565b8181528460208386010111156105be575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f5f5f5f5f5f6101208a8c0312156105f3575f5ffd5b6105fc8a610422565b985061060a60208b01610422565b60408b01519098506001600160401b03811115610625575f5ffd5b6106318c828d016104a3565b60608c015190985090506001600160401b0381111561064e575f5ffd5b61065a8c828d01610514565b60808c015160a08d015160c08e015160e08f0151939a509198509650945090506001600160401b0381111561068d575f5ffd5b6106998c828d0161056f565b6101008c015190935090506001600160401b038111156106b7575f5ffd5b6106c38c828d0161056f565b9150509295985092959850929598565b600181811c908216806106e757607f821691505b60208210810361070557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561031e57805f5260205f20601f840160051c810160208510156107305750805b601f840160051c820191505b8181101561074f575f815560010161073c565b5050505050565b81516001600160401b0381111561076f5761076f61043d565b6107838161077d84546106d3565b8461070b565b6020601f8211600181146107b5575f831561079e5750848201515b5f19600385901b1c1916600184901b17845561074f565b5f84815260208120601f198516915b828110156107e457878501518255602094850194600190920191016107c4565b508482101561080157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561032e5761032e610824565b8181038181111561032e5761032e610824565b808202811582820484141761032e5761032e610824565b5f8261088f57634e487b7160e01b5f52601260045260245ffd5b500490565b6080516122d06108d65f395f818161050601528181610860015281816108d9015281816109a8015281816117550152818161187401526118ad01526122d05ff3fe608060405234801561000f575f5ffd5b5060043610610291575f3560e01c8063021919801461029557806306fdde031461029f578063095ea7b3146102bd578063151d9b74146102e057806318160ddd1461030157806323b872dd146103095780632c28f0261461031c5780632e1a7d4d1461032f578063313ce5671461034257806335981fd814610351578063394edada14610359578063395093511461036c57806340d0dcdd1461037f5780634e71e0c81461039f5780635438ebaa146103a7578063574eab01146103af5780635c975abb146103c35780635db88e85146103cb5780635f3743df146103d45780635f84f302146103f65780635fed40da146104095780636095ad551461041c57806363d8882a1461042457806364259daa1461042c5780636c561567146104345780636f9170f61461044757806370a0823114610469578063715018a61461047c57806378357689146104845780637c3a00fd146104985780637d31de9c146104a15780638c859fca146104b4578063900eb005146104c757806395b20d6e146104da57806395d89b41146104f95780639d23c812146105015780639f7096b6146105355780639f981e1a146105485780639fa8e27214610550578063a457c2d714610563578063a9059cbb14610576578063abec101f14610589578063aecf8a6d1461059c578063b5ed298a146105af578063b6b55f25146105c2578063c35ad6b0146105d5578063ce114c25146105de578063cf52a7b2146105f1578063d3573a3314610604578063d5dc58d614610617578063dd62ed3e1461062a578063e425e8b51461063d578063e742806a14610645578063ebbf5c1714610658578063ed9c68341461066b578063ee97f7f31461068a578063f1ead2521461069c575b5f5ffd5b61029d6106a4565b005b6102a76106c8565b6040516102b49190611ee5565b60405180910390f35b6102d06102cb366004611f30565b610758565b60405190151581526020016102b4565b6102f36102ee366004611f58565b610771565b6040519081526020016102b4565b6005546102f3565b6102d0610317366004611f71565b61077c565b6102f361032a366004611f30565b6107a6565b61029d61033d366004611fab565b6107da565b604051601281526020016102b4565b6102f36109dd565b6102f3610367366004611f30565b610a11565b6102d061037a366004611f30565b610af4565b61039261038d366004612079565b610b15565b6040516102b491906120ba565b61029d610bff565b61029d610c1a565b600a546102d090600160a01b900460ff1681565b6102d0610c45565b6102f3600b5481565b6102d06103e2366004611f58565b600c6020525f908152604090205460ff1681565b61029d610404366004611fab565b610c55565b6103926104173660046120fc565b610c74565b61029d610c80565b61029d610ca7565b61029d610cbf565b610392610442366004612079565b610ce7565b6102d0610455366004611f58565b600d6020525f908152604090205460ff1681565b6102f3610477366004611f58565b610d74565b61029d610d8e565b600a546102d090600160a81b900460ff1681565b6102f360085481565b6102f36104af366004611f58565b610dda565b61029d6104c2366004611f58565b610ec8565b6103926104d53660046120fc565b610efb565b6102f36104e8366004611f58565b600e6020525f908152604090205481565b6102a7610f07565b6105287f000000000000000000000000000000000000000000000000000000000000000081565b6040516102b4919061212d565b600a54610528906001600160a01b031681565b61029d610f16565b6102f361055e366004611fab565b610f43565b6102d0610571366004611f30565b610f7c565b6102d0610584366004611f30565b611001565b6102f3610597366004611fab565b611029565b61029d6105aa366004611f30565b611056565b61029d6105bd366004611f58565b6110b4565b61029d6105d0366004611fab565b61112e565b6102f360095481565b61029d6105ec366004611f58565b611151565b61029d6105ff366004611f58565b61118a565b600154610528906001600160a01b031681565b6102f3610625366004611f58565b6111c6565b6102f3610638366004612141565b6111d1565b6102f36111fb565b61029d610653366004611f30565b61121e565b61029d610666366004611fab565b61126d565b6102f3610679366004611f58565b600f6020525f908152604090205481565b5f54610528906001600160a01b031681565b61029d61128c565b6106ac6112b9565b6106b46112ed565b6106bc611344565b6106c66001600255565b565b6060600680546106d790612172565b80601f016020809104026020016040519081016040528092919081815260200182805461070390612172565b801561074e5780601f106107255761010080835404028352916020019161074e565b820191905f5260205f20905b81548152906001019060200180831161073157829003601f168201915b5050505050905090565b5f3361076581858561139e565b60019150505b92915050565b5f61076b8242610a11565b5f83610787816114c1565b83610791816114c1565b61079c86868661151c565b9695505050505050565b5f6107b18383610a11565b6001600160a01b0384165f908152600f60205260409020546107d391906121be565b9392505050565b6107e26112ed565b6107ea611534565b336107f4816114c1565b600a54600160a01b900460ff1661081e576040516315e34e0560e01b815260040160405180910390fd5b8161082833610d74565b101561084757604051631e9acf1760e31b815260040160405180910390fd5b6040516370a0823160e01b815282906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061089590309060040161212d565b602060405180830381865afa1580156108b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d491906121d1565b1015827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610923919061212d565b602060405180830381865afa15801561093e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096291906121d1565b909161098f57604051630c9dfce960e11b8152600481019290925260248201526044015b60405180910390fd5b505061099b338361157c565b6109cf6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016338461169b565b506109da6001600255565b50565b5f6109e66112ed565b6109ee611534565b336109f8816114c1565b610a01336116fe565b915050610a0e6001600255565b90565b5f5f610a1c84610d74565b9050805f03610a2e575f91505061076b565b6001600160a01b0384165f908152600e602052604081205415610a68576001600160a01b0385165f908152600e6020526040902054610a6a565b835b9050808411610a7d575f9250505061076b565b5f610a8882866121e8565b90505f6301e14320610aa2670de0b6b3a7640000846121fb565b610aac9190612212565b90505f670de0b6b3a76400006127108360085488610aca91906121fb565b610ad491906121fb565b610ade9190612212565b610ae89190612212565b98975050505050505050565b5f33610765818585610b0683836111d1565b610b1091906121be565b61139e565b60605f83516001600160401b03811115610b3157610b31611fc2565b604051908082528060200260200182016040528015610b5a578160200160208202803683370190505b5090505f5b8451811015610bf757610b8b858281518110610b7d57610b7d612231565b602002602001015185610a11565b600f5f878481518110610ba057610ba0612231565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054610bd291906121be565b828281518110610be457610be4612231565b6020908102919091010152600101610b5f565b509392505050565b610c0761177c565b5f80546001600160a01b03191633179055565b610c226112ed565b335f908152600c60205260409020805460ff191660011790556106c66001600255565b600154600160a01b900460ff1690565b610c5d6117a9565b610c656112ed565b60088190556109da6001600255565b606061076b8242610ce7565b610c886117a9565b610c906112ed565b600a805460ff60a01b191690556106c66001600255565b610caf6112b9565b610cb76112ed565b6106bc6117ec565b610cc76112ed565b335f908152600c60205260409020805460ff191690556106c66001600255565b60605f83516001600160401b03811115610d0357610d03611fc2565b604051908082528060200260200182016040528015610d2c578160200160208202803683370190505b5090505f5b8451811015610bf757610d4f858281518110610b7d57610b7d612231565b828281518110610d6157610d61612231565b6020908102919091010152600101610d31565b6001600160a01b03165f9081526003602052604090205490565b610d96611828565b5f80546001600160a01b0319908116825560018054909116905560405133917f6172baf984ea013d88b784409f46655b96ba7f2ff91bca1ac9bcd27b113e6eb091a2565b5f610de36112ed565b81610ded816114c1565b33610df7816114c1565b610dff611534565b610e076112b9565b6001600160a01b0384165f908152600c602052604090205460ff16610e3f5760405163e35e1ed360e01b815260040160405180910390fd5b5f610e49856116fe565b90505f61271060095483610e5d91906121fb565b610e679190612212565b90505f610e7482846121e8565b9050610e7f81611854565b80610e8a33336111d1565b1015610ea657610e9b33335f61139e565b610ea633338361139e565b610eb133888361077c565b5091945050505050610ec36001600255565b919050565b610ed06117a9565b610ed86112ed565b600a80546001600160a01b0319166001600160a01b038316179055600160025550565b606061076b8242610b15565b6060600780546106d790612172565b610f1e6117a9565b610f266112ed565b600a805460ff60a81b1916600160a81b1790556106c66001600255565b5f610f4c6112ed565b610f54611534565b33610f5e816114c1565b610f6783611854565b610f6f6118d6565b915050610ec36001600255565b5f3381610f8982866111d1565b905083811015610fe95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610986565b610ff6828686840361139e565b506001949350505050565b5f3361100c816114c1565b83611016816114c1565b61102085856118ec565b95945050505050565b5f6110326112ed565b61103a611534565b33611044816114c1565b61104d83611854565b610f6f336116fe565b61105e6117a9565b81611068816114c1565b6110706112ed565b600a54600160a81b900460ff161561109b5760405163443da05b60e01b815260040160405180910390fd5b6110a5838361157c565b6110af6001600255565b505050565b6110bc611828565b6001600160a01b0381166110e35760405163f2365b5b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907f322fd6444c59daffa82e4689b7685b6fafc6109a1eff8a6ca10c5a8e3206cda1905f90a350565b611136611534565b61113e6112ed565b33611148816114c1565b6109cf82611854565b6111596117a9565b6111616112ed565b6001600160a01b0381165f908152600d60205260409020805460ff191690556109da6001600255565b6111926117a9565b61119a6112ed565b6001600160a01b0381165f908152600d60205260409020805460ff191660011790556109da6001600255565b5f61076b82426107a6565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f6112046112ed565b61120c611534565b33611216816114c1565b610a016118d6565b6112266117a9565b81611230816114c1565b6112386112ed565b600a54600160a81b900460ff16156112635760405163443da05b60e01b815260040160405180910390fd5b6110a583836118f9565b6112756117a9565b61127d6112ed565b600b8190556109da6001600255565b6112946117a9565b61129c6112ed565b600a805460ff60a01b1916600160a01b1790556106c66001600255565b335f908152600d602052604090205460ff1615156001146106c657604051636a9a57a560e01b815260040160405180910390fd5b600280540361133e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610986565b60028055565b61134c611534565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113873390565b604051611394919061212d565b60405180910390a1565b6001600160a01b0383166114005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610986565b6001600160a01b0382166114615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610986565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6114cb82610771565b90508015611500576001600160a01b0382165f908152600f6020526040812080548392906114fa9084906121be565b90915550505b506001600160a01b03165f908152600e60205260409020429055565b5f336115298582856119a5565b610ff6858585611a1d565b61153c610c45565b156106c65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610986565b6001600160a01b0382166115dc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610986565b6001600160a01b0382165f908152600360205260409020548181101561164f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610986565b6001600160a01b0383165f8181526003602090815260408083208686039055600580548790039055518581529192915f51602061227b5f395f51905f52910160405180910390a3505050565b6040516001600160a01b0383166024820152604481018290526110af90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611bb3565b6001600160a01b0381165f908152600f6020526040812054808203611736576040516379a85f2d60e01b815260040160405180910390fd5b6001600160a01b038084165f908152600f602052604081205561076b907f000000000000000000000000000000000000000000000000000000000000000016338361169b565b6001546001600160a01b0316330361179057565b6040516379543eaf60e11b815260040160405180910390fd5b5f546001600160a01b0316338082146117e85760405163a3ee740f60e01b81526001600160a01b03928316600482015291166024820152604401610986565b5050565b6117f4611c86565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611387565b5f546001600160a01b0316330361183b57565b604051635a7617f960e11b815260040160405180910390fd5b61185d81611cd1565b61186733826118f9565b61189c6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611d27565b600a546109da906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168361169b565b5f5f6118e1336116fe565b9050610ec381611854565b5f33610765818585611a1d565b6001600160a01b03821661194f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610986565b8060055f82825461196091906121be565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481525f51602061227b5f395f51905f52910160405180910390a35050565b5f6119b084846111d1565b90505f198114611a175781811015611a0a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610986565b611a17848484840361139e565b50505050565b6001600160a01b038316611a815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610986565b6001600160a01b038216611ae35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610986565b6001600160a01b0383165f9081526003602052604090205481811015611b5a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610986565b6001600160a01b038085165f8181526003602052604080822086860390559286168082529083902080548601905591515f51602061227b5f395f51905f5290611ba69086815260200190565b60405180910390a3611a17565b5f611c07826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d5f9092919063ffffffff16565b905080515f1480611c27575080806020019051810190611c279190612245565b6110af5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610986565b611c8e610c45565b6106c65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610986565b805f03611cf157604051632a9ffab760e21b815260040160405180910390fd5b600b5481611cfe60055490565b611d0891906121be565b11156109da57604051639c960c6360e01b815260040160405180910390fd5b6040516001600160a01b0380851660248301528316604482015260648101829052611a179085906323b872dd60e01b906084016116c7565b6060611d6d84845f85611d75565b949350505050565b606082471015611dd65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610986565b5f5f866001600160a01b03168587604051611df19190612264565b5f6040518083038185875af1925050503d805f8114611e2b576040519150601f19603f3d011682016040523d82523d5f602084013e611e30565b606091505b5091509150611e4187838387611e4c565b979650505050505050565b60608315611eba5782515f03611eb3576001600160a01b0385163b611eb35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610986565b5081611d6d565b611d6d8383815115611ecf5781518083602001fd5b8060405162461bcd60e51b815260040161098691905b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610ec3575f5ffd5b5f5f60408385031215611f41575f5ffd5b611f4a83611f1a565b946020939093013593505050565b5f60208284031215611f68575f5ffd5b6107d382611f1a565b5f5f5f60608486031215611f83575f5ffd5b611f8c84611f1a565b9250611f9a60208501611f1a565b929592945050506040919091013590565b5f60208284031215611fbb575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112611fe5575f5ffd5b81356001600160401b03811115611ffe57611ffe611fc2565b604051600582901b90603f8201601f191681016001600160401b038111828210171561202c5761202c611fc2565b604052918252602081850181019290810186841115612049575f5ffd5b6020860192505b8383101561206f5761206183611f1a565b815260209283019201612050565b5095945050505050565b5f5f6040838503121561208a575f5ffd5b82356001600160401b0381111561209f575f5ffd5b6120ab85828601611fd6565b95602094909401359450505050565b602080825282518282018190525f918401906040840190835b818110156120f15783518352602093840193909201916001016120d3565b509095945050505050565b5f6020828403121561210c575f5ffd5b81356001600160401b03811115612121575f5ffd5b611d6d84828501611fd6565b6001600160a01b0391909116815260200190565b5f5f60408385031215612152575f5ffd5b61215b83611f1a565b915061216960208401611f1a565b90509250929050565b600181811c9082168061218657607f821691505b6020821081036121a457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561076b5761076b6121aa565b5f602082840312156121e1575f5ffd5b5051919050565b8181038181111561076b5761076b6121aa565b808202811582820484141761076b5761076b6121aa565b5f8261222c57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612255575f5ffd5b815180151581146107d3575f5ffd5b5f82518060208501845e5f92019182525091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204f5369791a89128e6b1a1a0798a544f465e90e2bcbc10f141057ab5cf27267dc64736f6c634300081c0033000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000028839a860dbf95e013d6ea528f6140e7340d0880000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004c0000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000641ad78baca220c5bd28b51ce8e0f495e85fe689000000000000000000000000a803c226c8281550454523191375695928dcfe9200000000000000000000000022079a848266a7d2e40cf0ff71a6573d78adcf37000000000000000000000000123e405f65124286697569fa0e8fffa57a2be5c900000000000000000000000026408fdd7d5e4ae51002b1068637fd84e59ded620000000000000000000000003dd47b76e7908a0116675d3882a300f19423ee8d000000000000000000000000434df135fe3b2c58d3bdf16f61d8675a22a4333f0000000000000000000000008276e87b3446fb007b2c081711b7fc7e105bdb28000000000000000000000000898929d50566138bed1deb1688919b52ab80ae63000000000000000000000000c99eeecfab3c0490596f2f99d8f2b1543fd5db41000000000000000000000000e1531ce52e10b0db0b315a431e47fafb67b22b82000000000000000000000000edb6e2e8265956f889e1f991676ae513374a9b2e000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000022a5a1000000000000000000000000000000000000000000000000000000000005573000000000000000000000000000000000000000000000000000000000000419ce000000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000035a3fea000000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000012a05f20000000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000002fad816000000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000008f0d180000000000000000000000000000000000000000000000000000000003b9ac618000000000000000000000000000000000000000000000000000000000000002152574120574f524c44204d4f42494c45205641554c54204552433230205553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f525741574d564552433230555344430000000000000000000000000000000000