0 txs
2 calls
constructor
No constructor.
functions
accountAssets
viewfunction accountAssets(address, uint256) view returns (address)
actionPaused
viewfunction actionPaused(address market, uint8 action) view returns (bool)
admin
viewfunction admin() view returns (address)
allMarkets
viewfunction allMarkets(uint256) view returns (address)
approvedDelegates
viewfunction approvedDelegates(address, address) view returns (bool)
borrowCapGuardian
viewfunction borrowCapGuardian() view returns (address)
borrowCaps
viewfunction borrowCaps(address) view returns (uint256)
closeFactorMantissa
viewfunction closeFactorMantissa() view returns (uint256)
comptrollerImplementation
viewfunction comptrollerImplementation() view returns (address)
comptrollerLens
viewfunction comptrollerLens() view returns (address)
getAccountLiquidity
viewfunction getAccountLiquidity(address account) view returns (uint256, uint256, uint256)
getHypotheticalAccountLiquidity
viewfunction getHypotheticalAccountLiquidity(address account, address vTokenModify, uint256 redeemTokens, uint256 borrowAmount) view returns (uint256, uint256, uint256)
getXVSAddress
viewfunction getXVSAddress() view returns (address)
isForcedLiquidationEnabled
viewfunction isForcedLiquidationEnabled(address) view returns (bool)
isForcedLiquidationEnabledForUser
viewfunction isForcedLiquidationEnabledForUser(address, address) view returns (bool)
liquidateBorrowAllowed
viewfunction liquidateBorrowAllowed(address vTokenBorrowed, address vTokenCollateral, address liquidator, address borrower, uint256 repayAmount) view returns (uint256)
liquidationIncentiveMantissa
viewfunction liquidationIncentiveMantissa() view returns (uint256)
liquidatorContract
viewfunction liquidatorContract() view returns (address)
markets
viewfunction markets(address) view returns (bool isListed, uint256 collateralFactorMantissa, bool isVenus)
maxAssets
viewfunction maxAssets() view returns (uint256)
minReleaseAmount
viewfunction minReleaseAmount() view returns (uint256)
mintedVAIs
viewfunction mintedVAIs(address) view returns (uint256)
mintVAIGuardianPaused
viewfunction mintVAIGuardianPaused() view returns (bool)
oracle
viewfunction oracle() view returns (address)
pauseGuardian
viewfunction pauseGuardian() view returns (address)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
pendingComptrollerImplementation
viewfunction pendingComptrollerImplementation() view returns (address)
prime
viewfunction prime() view returns (address)
protocolPaused
viewfunction protocolPaused() view returns (bool)
releaseStartBlock
viewfunction releaseStartBlock() view returns (uint256)
repayVAIGuardianPaused
viewfunction repayVAIGuardianPaused() view returns (bool)
supplyCaps
viewfunction supplyCaps(address) view returns (uint256)
treasuryAddress
viewfunction treasuryAddress() view returns (address)
treasuryGuardian
viewfunction treasuryGuardian() view returns (address)
treasuryPercent
viewfunction treasuryPercent() view returns (uint256)
vaiController
viewfunction vaiController() view returns (address)
vaiMintRate
viewfunction vaiMintRate() view returns (uint256)
vaiVaultAddress
viewfunction vaiVaultAddress() view returns (address)
venusAccrued
viewfunction venusAccrued(address) view returns (uint256)
venusBorrowerIndex
viewfunction venusBorrowerIndex(address, address) view returns (uint256)
venusBorrowSpeeds
viewfunction venusBorrowSpeeds(address) view returns (uint256)
venusBorrowState
viewfunction venusBorrowState(address) view returns (uint224 index, uint32 block)
venusInitialIndex
viewfunction venusInitialIndex() view returns (uint224)
venusSupplierIndex
viewfunction venusSupplierIndex(address, address) view returns (uint256)
venusSupplySpeeds
viewfunction venusSupplySpeeds(address) view returns (uint256)
venusSupplyState
viewfunction venusSupplyState(address) view returns (uint224 index, uint32 block)
venusVAIVaultRate
viewfunction venusVAIVaultRate() view returns (uint256)
_setVenusSpeeds
nonpayablefunction _setVenusSpeeds(address[] vTokens, uint256[] supplySpeeds, uint256[] borrowSpeeds)
borrowAllowed
nonpayablefunction borrowAllowed(address vToken, address borrower, uint256 borrowAmount) returns (uint256)
borrowVerify
nonpayablefunction borrowVerify(address vToken, address borrower, uint256 borrowAmount)
liquidateBorrowVerify
nonpayablefunction liquidateBorrowVerify(address vTokenBorrowed, address vTokenCollateral, address liquidator, address borrower, uint256 actualRepayAmount, uint256 seizeTokens)
mintAllowed
nonpayablefunction mintAllowed(address vToken, address minter, uint256 mintAmount) returns (uint256)
mintVerify
nonpayablefunction mintVerify(address vToken, address minter, uint256 actualMintAmount, uint256 mintTokens)
redeemAllowed
nonpayablefunction redeemAllowed(address vToken, address redeemer, uint256 redeemTokens) returns (uint256)
redeemVerify
nonpayablefunction redeemVerify(address vToken, address redeemer, uint256 redeemAmount, uint256 redeemTokens)
repayBorrowAllowed
nonpayablefunction repayBorrowAllowed(address vToken, address payer, address borrower, uint256 repayAmount) returns (uint256)
repayBorrowVerify
nonpayablefunction repayBorrowVerify(address vToken, address payer, address borrower, uint256 actualRepayAmount, uint256 borrowerIndex)
seizeAllowed
nonpayablefunction seizeAllowed(address vTokenCollateral, address vTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
seizeVerify
nonpayablefunction seizeVerify(address vTokenCollateral, address vTokenBorrowed, address liquidator, address borrower, uint256 seizeTokens)
transferAllowed
nonpayablefunction transferAllowed(address vToken, address src, address dst, uint256 transferTokens) returns (uint256)
transferVerify
nonpayablefunction transferVerify(address vToken, address src, address dst, uint256 transferTokens)
events
DistributedBorrowerVenus
event DistributedBorrowerVenus(address indexed vToken, address indexed borrower, uint256 venusDelta, uint256 venusBorrowIndex)
DistributedSupplierVenus
event DistributedSupplierVenus(address indexed vToken, address indexed supplier, uint256 venusDelta, uint256 venusSupplyIndex)
DistributedVAIVaultVenus
event DistributedVAIVaultVenus(uint256 amount)
Failure
event Failure(uint256 error, uint256 info, uint256 detail)
MarketEntered
event MarketEntered(address indexed vToken, address indexed account)
VenusBorrowSpeedUpdated
event VenusBorrowSpeedUpdated(address indexed vToken, uint256 newSpeed)
VenusSupplySpeedUpdated
event VenusSupplySpeedUpdated(address indexed vToken, uint256 newSpeed)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613510806100206000396000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637d172bd5116101f4578063c5b4db551161011a578063e37d4b79116100ad578063ead1a8a01161007c578063ead1a8a014610b88578063f445d70314610c96578063f851a44014610cc4578063fa6331d814610ccc576103af565b8063e37d4b7914610af5578063e85a296014610b1b578063e875544614610b4a578063eabe7d9114610b52576103af565b8063d3270f99116100e9578063d3270f9914610a83578063da3d454c14610a8b578063dce1544914610ac1578063dcfbc0c714610aed576103af565b8063c5b4db5514610a09578063c5f956af14610a2d578063c7ee005e14610a35578063d02f735114610a3d576103af565b80639bb27d6211610192578063bbb8864a11610161578063bbb8864a14610997578063bdcdc258146109bd578063bec04f72146109f9578063bf32442d14610a01576103af565b80639bb27d6214610931578063b2eafc3914610939578063b8324c7c14610941578063bb82aa5e1461098f576103af565b80638c1ac18a116101ce5780638c1ac18a146108b35780638e8f294b146108d95780639254f5e51461092157806394b2294b14610929576103af565b80637d172bd51461087d5780637dc0d1d0146108855780638a7dc1651461088d576103af565b806347ef3b3b116102d95780635c778605116102775780636a56947e116102465780636a56947e146107eb5780636d35bf9114610827578063719f701b1461086d5780637655138314610875576103af565b80635c778605146107235780635dd3fc9d146107595780635ec88c791461077f5780635fc7e71e146107a5576103af565b80634e79238f116102b35780634e79238f1461063a5780634ef4c3e11461069457806351dff989146106ca57806352d84d1e14610706576103af565b806347ef3b3b146105c05780634a5844321461060c5780634ada90af14610632576103af565b806324008a62116103515780634088c73e116103205780634088c73e1461054657806341a18d2c1461054e57806341c728b91461057c578063425fad58146105b8576103af565b806324008a62146104d457806324a3d6221461051057806326782247146105185780632bc7e29e14610520576103af565b80630db4b4e51161038d5780630db4b4e51461042257806310b983381461042a5780631ededc911461046c57806321af4569146104b0576103af565b806302c3bcbb146103b457806304ef9d58146103ec57806308e0225c146103f4575b600080fd5b6103da600480360360208110156103ca57600080fd5b50356001600160a01b0316610cd4565b60408051918252519081900360200190f35b6103da610ce6565b6103da6004803603604081101561040a57600080fd5b506001600160a01b0381358116916020013516610cec565b6103da610d09565b6104586004803603604081101561044057600080fd5b506001600160a01b0381358116916020013516610d0f565b604080519115158252519081900360200190f35b6104ae600480360360a081101561048257600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610d2f565b005b6104b8610db6565b604080516001600160a01b039092168252519081900360200190f35b6103da600480360360808110156104ea57600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610dc5565b6104b8610e9a565b6104b8610ea9565b6103da6004803603602081101561053657600080fd5b50356001600160a01b0316610eb8565b610458610eca565b6103da6004803603604081101561056457600080fd5b506001600160a01b0381358116916020013516610ed3565b6104ae6004803603608081101561059257600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610ef0565b610458610f76565b6104ae600480360360c08110156105d657600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a00135610f85565b6103da6004803603602081101561062257600080fd5b50356001600160a01b031661107b565b6103da61108d565b6106766004803603608081101561065057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611093565b60408051938452602084019290925282820152519081900360600190f35b6103da600480360360608110156106aa57600080fd5b506001600160a01b038135811691602081013590911690604001356110c9565b6104ae600480360360808110156106e057600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356112cf565b6104b86004803603602081101561071c57600080fd5b5035611320565b6104ae6004803603606081101561073957600080fd5b506001600160a01b03813581169160208101359091169060400135611347565b6103da6004803603602081101561076f57600080fd5b50356001600160a01b03166113cc565b6106766004803603602081101561079557600080fd5b50356001600160a01b03166113de565b6103da600480360360a08110156107bb57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135611413565b6104ae6004803603608081101561080157600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356116ae565b6104ae600480360360a081101561083d57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135610daf565b6103da611783565b610458611789565b6104b8611797565b6104b86117a6565b6103da600480360360208110156108a357600080fd5b50356001600160a01b03166117b5565b610458600480360360208110156108c957600080fd5b50356001600160a01b03166117c7565b6108ff600480360360208110156108ef57600080fd5b50356001600160a01b03166117dc565b6040805193151584526020840192909252151582820152519081900360600190f35b6104b8611802565b6103da611811565b6104b8611817565b6104b8611826565b6109676004803603602081101561095757600080fd5b50356001600160a01b0316611835565b604080516001600160e01b03909316835263ffffffff90911660208301528051918290030190f35b6104b861185f565b6103da600480360360208110156109ad57600080fd5b50356001600160a01b031661186e565b6103da600480360360808110156109d357600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135611880565b6103da6118ce565b6104b86118d4565b610a116118e3565b604080516001600160e01b039092168252519081900360200190f35b6104b86118f5565b6104b8611904565b6103da600480360360a0811015610a5357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060800135611913565b6104b8611a06565b6103da60048036036060811015610aa157600080fd5b506001600160a01b03813581169160208101359091169060400135611a15565b6104b860048036036040811015610ad757600080fd5b506001600160a01b038135169060200135611dae565b6104b8611de3565b61096760048036036020811015610b0b57600080fd5b50356001600160a01b0316611df2565b61045860048036036040811015610b3157600080fd5b5080356001600160a01b0316906020013560ff16611e1c565b6103da611e5e565b6103da60048036036060811015610b6857600080fd5b506001600160a01b03813581169160208101359091169060400135611e64565b6104ae60048036036060811015610b9e57600080fd5b810190602081018135600160201b811115610bb857600080fd5b820183602082011115610bca57600080fd5b803590602001918460208302840111600160201b83111715610beb57600080fd5b919390929091602081019035600160201b811115610c0857600080fd5b820183602082011115610c1a57600080fd5b803590602001918460208302840111600160201b83111715610c3b57600080fd5b919390929091602081019035600160201b811115610c5857600080fd5b820183602082011115610c6a57600080fd5b803590602001918460208302840111600160201b83111715610c8b57600080fd5b509092509050611eb3565b61045860048036036040811015610cac57600080fd5b506001600160a01b0381358116916020013516611f8c565b6104b8611fac565b6103da611fbb565b60276020526000908152604090205481565b60225481565b601360209081526000928352604080842090915290825290205481565b601d5481565b602c60209081526000928352604080842090915290825290205460ff1681565b6031546001600160a01b031615610daf57603154604080516367994e8b60e11b81526001600160a01b03868116600483015288811660248301529151919092169163cf329d1691604480830192600092919082900301818387803b158015610d9657600080fd5b505af1158015610daa573d6000803e3d6000fd5b505050505b5050505050565b601e546001600160a01b031681565b6000610dcf611fc1565b610dda856003612016565b6001600160a01b0385166000908152600960205260409020610dfb90612069565b610e0361349e565b6040518060200160405280876001600160a01b031663aa5af0fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d6020811015610e7157600080fd5b505190529050610e8186826120b6565b610e8c86858361226c565b60009150505b949350505050565b600a546001600160a01b031681565b6001546001600160a01b031681565b60166020526000908152604090205481565b60185460ff1681565b601260209081526000928352604080842090915290825290205481565b6031546001600160a01b031615610f7057603154604080516367994e8b60e11b81526001600160a01b03868116600483015287811660248301529151919092169163cf329d1691604480830192600092919082900301818387803b158015610f5757600080fd5b505af1158015610f6b573d6000803e3d6000fd5b505050505b50505050565b60185462010000900460ff1681565b6031546001600160a01b03161561107357603154604080516367994e8b60e11b81526001600160a01b03868116600483015289811660248301529151919092169163cf329d1691604480830192600092919082900301818387803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b5050603154604080516367994e8b60e11b81526001600160a01b0389811660048301528b81166024830152915191909216935063cf329d169250604480830192600092919082900301818387803b15801561105a57600080fd5b505af115801561106e573d6000803e3d6000fd5b505050505b505050505050565b601f6020526000908152604090205481565b60065481565b6000806000806000806110a88a8a8a8a61240c565b9250925092508260138111156110ba57fe5b9a919950975095505050505050565b60006110d3611fc1565b6110de846000612016565b6001600160a01b03841660009081526009602052604090206110ff90612069565b6001600160a01b03841660009081526027602052604090205480611163576040805162461bcd60e51b815260206004820152601660248201527506d61726b657420737570706c792063617020697320360541b604482015290519081900360640190fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119e57600080fd5b505afa1580156111b2573d6000803e3d6000fd5b505050506040513d60208110156111c857600080fd5b505190506111d461349e565b6040518060200160405280886001600160a01b031663182df0f56040518163ffffffff1660e01b815260040160206040518083038186803b15801561121857600080fd5b505afa15801561122c573d6000803e3d6000fd5b505050506040513d602081101561124257600080fd5b50519052905060006112558284886124cb565b9050838111156112ac576040805162461bcd60e51b815260206004820152601960248201527f6d61726b657420737570706c7920636170207265616368656400000000000000604482015290519081900360640190fd5b6112b5886124f3565b6112bf888861267f565b60009450505050505b9392505050565b801515806112db575081155b610ef0576040805162461bcd60e51b815260206004820152601160248201527072656465656d546f6b656e73207a65726f60781b604482015290519081900360640190fd5b600d818154811061132d57fe5b6000918252602090912001546001600160a01b0316905081565b6031546001600160a01b0316156113c757603154604080516367994e8b60e11b81526001600160a01b03858116600483015286811660248301529151919092169163cf329d1691604480830192600092919082900301818387803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050505b505050565b602b6020526000908152604090205481565b6000806000806000806113f587600080600061240c565b92509250925082601381111561140757fe5b97919650945092505050565b600061141d611fc1565b611428866005612016565b6025546001600160a01b03161580159061145057506025546001600160a01b03858116911614155b1561145d575060016116a5565b6001600160a01b038516600090815260096020526040902061147e90612069565b6015546000906001600160a01b03888116911614611540576001600160a01b03871660009081526009602052604090206114b790612069565b866001600160a01b03166395dd9193856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561150d57600080fd5b505afa158015611521573d6000803e3d6000fd5b505050506040513d602081101561153757600080fd5b505190506115bc565b60155460408051633c617c9160e11b81526001600160a01b038781166004830152915191909216916378c2f922916024808301926020929190829003018186803b15801561158d57600080fd5b505afa1580156115a1573d6000803e3d6000fd5b505050506040513d60208110156115b757600080fd5b505190505b6001600160a01b0387166000908152602d602052604090205460ff168061160857506001600160a01b038085166000908152603260209081526040808320938b168352929052205460ff165b1561162757808311156116205760115b9150506116a5565b6000611618565b60008061163886600080600061240c565b9193509091506000905082601381111561164e57fe5b146116695781601381111561165f57fe5b93505050506116a5565b8061167557600361165f565b61168f604051806020016040528060055481525084612847565b85111561169d57601161165f565b600093505050505b95945050505050565b6031546001600160a01b031615610f7057603154604080516367994e8b60e11b81526001600160a01b03868116600483015287811660248301529151919092169163cf329d1691604480830192600092919082900301818387803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b5050603154604080516367994e8b60e11b81526001600160a01b0387811660048301528981166024830152915191909216935063cf329d169250604480830192600092919082900301818387803b158015610f5757600080fd5b601c5481565b601854610100900460ff1681565b601b546001600160a01b031681565b6004546001600160a01b031681565b60146020526000908152604090205481565b602d6020526000908152604090205460ff1681565b60096020526000908152604090208054600182015460039092015460ff91821692911683565b6015546001600160a01b031681565b60075481565b6025546001600160a01b031681565b6020546001600160a01b031681565b6010602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6002546001600160a01b031681565b602a6020526000908152604090205481565b600061188a611fc1565b611895856006612016565b60006118a2868685612866565b905080156118b1579050610e92565b6118ba866124f3565b6118c4868661267f565b610e8c868561267f565b60175481565b6033546001600160a01b031690565b6a0c097ce7bc90715b34b9f160241b81565b6021546001600160a01b031681565b6031546001600160a01b031681565b600073a07c5b74c9b40447a954e1466938b865b6bbea3673939bd8d64c0a9583a7dcea9933f7b21697ab639673489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec8133841461196157600080fd5b836001600160a01b03168a6001600160a01b03161461197f57600080fd5b826001600160a01b0316896001600160a01b03161461199d57600080fd5b806001600160a01b0316886001600160a01b0316146119bb57600080fd5b816001600160a01b0316876001600160a01b0316146119d957600080fd5b6119e28a6124f3565b6119ec8a8861267f565b6119f68a8961267f565b60009a9950505050505050505050565b6026546001600160a01b031681565b6000611a1f611fc1565b611a2a846002612016565b6001600160a01b0384166000908152600960205260409020611a4b90612069565b6001600160a01b0384166000908152601f602052604090205480611aaf576040805162461bcd60e51b815260206004820152601660248201527506d61726b657420626f72726f772063617020697320360541b604482015290519081900360640190fd5b6001600160a01b038086166000908152600960209081526040808320938816835260029093019052205460ff16611b6d57336001600160a01b03861614611b35576040805162461bcd60e51b815260206004820152601560248201527439b2b73232b91036bab9ba103132903b2a37b5b2b760591b604482015290519081900360640190fd5b6000611b418686612910565b90506000816013811115611b5157fe5b14611b6b57806013811115611b6257fe5b925050506112c8565b505b600480546040805163fc57d4df60e01b81526001600160a01b03898116948201949094529051929091169163fc57d4df91602480820192602092909190829003018186803b158015611bbe57600080fd5b505afa158015611bd2573d6000803e3d6000fd5b505050506040513d6020811015611be857600080fd5b5051611bf857600d9150506112c8565b6000611c68866001600160a01b03166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3657600080fd5b505afa158015611c4a573d6000803e3d6000fd5b505050506040513d6020811015611c6057600080fd5b5051856129f4565b905081811115611cbf576040805162461bcd60e51b815260206004820152601960248201527f6d61726b657420626f72726f7720636170207265616368656400000000000000604482015290519081900360640190fd5b600080611ccf878960008961240c565b91935090915060009050826013811115611ce557fe5b14611d0157816013811115611cf657fe5b9450505050506112c8565b8015611d0e576004611cf6565b611d1661349e565b60405180602001604052808a6001600160a01b031663aa5af0fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5a57600080fd5b505afa158015611d6e573d6000803e3d6000fd5b505050506040513d6020811015611d8457600080fd5b505190529050611d9489826120b6565b611d9f89898361226c565b60009998505050505050505050565b60086020528160005260406000208181548110611dc757fe5b6000918252602090912001546001600160a01b03169150829050565b6003546001600160a01b031681565b6011602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6001600160a01b038216600090815260296020526040812081836008811115611e4157fe5b815260208101919091526040016000205460ff1690505b92915050565b60055481565b6000611e6e611fc1565b611e79846001612016565b6000611e86858585612866565b90508015611e955790506112c8565b611e9e856124f3565b611ea8858561267f565b600095945050505050565b611ebb612a2a565b848381148015611eca57508082145b611f0b576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b604482015290519081900360640190fd5b60005b81811015610f6b57611f3a888883818110611f2557fe5b905060200201356001600160a01b0316612a7a565b611f84888883818110611f4957fe5b905060200201356001600160a01b0316878784818110611f6557fe5b90506020020135868685818110611f7857fe5b90506020020135612acd565b600101611f0e565b603260209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b031681565b601a5481565b60185462010000900460ff1615612014576040805162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b565b6120208282611e1c565b15612065576040805162461bcd60e51b815260206004820152601060248201526f1858dd1a5bdb881a5cc81c185d5cd95960821b604482015290519081900360640190fd5b5050565b805460ff166120b3576040805162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b604482015290519081900360640190fd5b50565b6001600160a01b0382166000908152601160209081526040808320602a90925282205490916120e3612c62565b83549091506000906121059063ffffffff80851691600160e01b900416612ca3565b9050801580159061211557508215155b1561224157600061218a876001600160a01b03166347bd37186040518163ffffffff1660e01b815260040160206040518083038186803b15801561215857600080fd5b505afa15801561216c573d6000803e3d6000fd5b505050506040513d602081101561218257600080fd5b505187612cdd565b905060006121988386612cfb565b90506121a261349e565b826121bc57604051806020016040528060008152506121c6565b6121c68284612d3d565b604080516020810190915288546001600160e01b0316815290915061220f906121ef9083612d7a565b516040805180820190915260038152620c8c8d60ea1b6020820152612d9f565b87546001600160e01b0319166001600160e01b039182161716600160e01b63ffffffff87160217875550611073915050565b801561107357835463ffffffff8316600160e01b026001600160e01b03909116178455505050505050565b601b546001600160a01b03161561228557612285612e39565b6001600160a01b0383811660009081526011602090815260408083205460138352818420948716845293909152902080546001600160e01b039092169081905590801580156122e257506a0c097ce7bc90715b34b9f160241b8210155b156122f857506a0c097ce7bc90715b34b9f160241b5b61230061349e565b60405180602001604052806123158585612ca3565b8152509050600061237e612378886001600160a01b03166395dd9193896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561215857600080fd5b83612fe1565b6001600160a01b0387166000908152601460205260409020549091506123a490826129f4565b6001600160a01b0380881660008181526014602090815260409182902094909455805185815293840188905280519193928b16927f837bdc11fca9f17ce44167944475225a205279b17e88c791c3b1f66f354668fb929081900390910190a350505050505050565b6026546040805163a7032efb60e01b81523060048201526001600160a01b03878116602483015286811660448301526064820186905260848201859052915160009384938493849384938493169163a7032efb9160a4808301926060929190829003018186803b15801561247f57600080fd5b505afa158015612493573d6000803e3d6000fd5b505050506040513d60608110156124a957600080fd5b508051602082015160409092015190945090925090508260138111156110ba57fe5b60006124d561349e565b6124df858561300f565b90506116a56124ed82613030565b846129f4565b6001600160a01b0381166000908152601060209081526040808320602b9092528220549091612520612c62565b83549091506000906125429063ffffffff80851691600160e01b900416612ca3565b9050801580159061255257508215155b15612655576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561259257600080fd5b505afa1580156125a6573d6000803e3d6000fd5b505050506040513d60208110156125bc57600080fd5b5051905060006125cc8386612cfb565b90506125d661349e565b826125f057604051806020016040528060008152506125fa565b6125fa8284612d3d565b604080516020810190915288546001600160e01b03168152909150612623906121ef9083612d7a565b87546001600160e01b0319166001600160e01b039182161716600160e01b63ffffffff87160217875550610daf915050565b8015610daf57835463ffffffff8316600160e01b026001600160e01b039091161784555050505050565b601b546001600160a01b03161561269857612698612e39565b6001600160a01b0382811660009081526010602090815260408083205460128352818420948616845293909152902080546001600160e01b039092169081905590801580156126f557506a0c097ce7bc90715b34b9f160241b8210155b1561270b57506a0c097ce7bc90715b34b9f160241b5b61271361349e565b60405180602001604052806127288585612ca3565b815250905060006127ba866001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561278857600080fd5b505afa15801561279c573d6000803e3d6000fd5b505050506040513d60208110156127b257600080fd5b505183612fe1565b6001600160a01b0386166000908152601460205260409020549091506127e090826129f4565b6001600160a01b0380871660008181526014602090815260409182902094909455805185815293840188905280519193928a16927ffa9d964d891991c113b49e3db1932abd6c67263d387119707aafdd6c4010a3a9929081900390910190a3505050505050565b600061285161349e565b61285b848461300f565b9050610e9281613030565b6001600160a01b038316600090815260096020526040812061288790612069565b6001600160a01b038085166000908152600960209081526040808320938716835260029093019052205460ff166128c0575060006112c8565b6000806128d0858786600061240c565b919350909150600090508260138111156128e657fe5b146128f757816013811115611b6257fe5b8015612904576004611b62565b60009695505050505050565b600061291d836007612016565b6001600160a01b038316600090815260096020526040902061293e81612069565b6001600160a01b038316600090815260028201602052604090205460ff161561296b576000915050611e58565b6001600160a01b0380841660008181526002840160209081526040808320805460ff191660019081179091556008835281842080549182018155845291832090910180549489166001600160a01b031990951685179055519192917f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59190a35060009392505050565b60006112c88383604051806040016040528060118152602001706164646974696f6e206f766572666c6f7760781b81525061303f565b6000546001600160a01b03163314612014576040805162461bcd60e51b815260206004820152600e60248201526d37b7363c9030b236b4b71031b0b760911b604482015290519081900360640190fd5b6001600160a01b0381166120b3576040805162461bcd60e51b815260206004820152601560248201527463616e2774206265207a65726f206164647265737360581b604482015290519081900360640190fd5b6001600160a01b0383166000908152600960205260409020612aee90612069565b6001600160a01b0383166000908152602b60205260409020548214612b6757612b16836124f3565b6001600160a01b0383166000818152602b6020908152604091829020859055815185815291517fa9ff26899e4982e7634afa9f70115dcfb61a17d6e8cdd91aa837671d0ff40ba69281900390910190a25b6001600160a01b0383166000908152602a602052604090205481146113c757612b8e61349e565b6040518060200160405280856001600160a01b031663aa5af0fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612bd257600080fd5b505afa158015612be6573d6000803e3d6000fd5b505050506040513d6020811015612bfc57600080fd5b505190529050612c0c84826120b6565b6001600160a01b0384166000818152602a6020908152604091829020859055815185815291517f0c62c1bc89ec4c40dccb4d21543e782c5ba43897c0075d108d8964181ea3c51b9281900390910190a250505050565b6000612c9e612c6f61309d565b60405180604001604052806011815260200170626c6f636b2023203e203332206269747360781b8152506130a1565b905090565b60006112c88383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b8152506130f6565b60006112c8612cf484670de0b6b3a7640000612cfb565b8351613150565b60006112c883836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250613183565b612d4561349e565b6040518060200160405280612d71612d6b866a0c097ce7bc90715b34b9f160241b612cfb565b85613150565b90529392505050565b612d8261349e565b6040518060200160405280612d71856000015185600001516129f4565b600081600160e01b8410612e315760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612df6578181015183820152602001612dde565b50505050905090810190601f168015612e235780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509192915050565b601c541580612e505750601c54612e4e61309d565b105b15612e5a57612014565b603354604080516370a0823160e01b815230600482015290516001600160a01b039092169160009183916370a0823191602480820192602092909190829003018186803b158015612eaa57600080fd5b505afa158015612ebe573d6000803e3d6000fd5b505050506040513d6020811015612ed457600080fd5b5051905080612ee4575050612014565b600080612efa612ef261309d565b601c54612ca3565b90506000612f0a601a5483612cfb565b9050808410612f1b57809250612f1f565b8392505b601d54831015612f33575050505050612014565b612f3b61309d565b601c55601b54612f5e906001600160a01b0387811691168563ffffffff6131f916565b6040805184815290517ff6d4b8f74d85a6e2d7a50225957b8a6cfec69ad92f5905627260541aa0a5565d9181900360200190a1601b60009054906101000a90046001600160a01b03166001600160a01b031663faa1809e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d9657600080fd5b60006a0c097ce7bc90715b34b9f160241b613000848460000151612cfb565b8161300757fe5b049392505050565b61301761349e565b6040518060200160405280612d71856000015185612cfb565b51670de0b6b3a7640000900490565b600083830182858210156130945760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612df6578181015183820152602001612dde565b50949350505050565b4390565b600081600160201b8410612e315760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612df6578181015183820152602001612dde565b600081848411156131485760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612df6578181015183820152602001612dde565b505050900390565b60006112c883836040518060400160405280600e81526020016d646976696465206279207a65726f60901b81525061324b565b6000831580613190575082155b1561319d575060006112c8565b838302838582816131aa57fe5b041483906130945760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612df6578181015183820152602001612dde565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113c79084906132ad565b6000818361329a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612df6578181015183820152602001612dde565b508284816132a457fe5b04949350505050565b6132bf826001600160a01b0316613465565b613310576040805162461bcd60e51b815260206004820152601f60248201527f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061334e5780518252601f19909201916020918201910161332f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146133b0576040519150601f19603f3d011682016040523d82523d6000602084013e6133b5565b606091505b50915091508161340c576040805162461bcd60e51b815260206004820181905260248201527f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610f705780806020019051602081101561342857600080fd5b5051610f705760405162461bcd60e51b815260040180806020018281038252602a8152602001806134b2602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610e92575050151592915050565b604051806020016040528060008152509056fe5361666542455032303a204245503230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a723158209bbf1419ec6e1fd6586a7273cb6eff61231e09932fff4f6ac272823ff03bf3fc64736f6c63430005100032