0 txs
1 call
constructor
No constructor.
functions
configuredGauges
viewfunction configuredGauges(address) view returns (address)
hookReceiverConfig
viewfunction hookReceiverConfig(address _silo) view returns (uint24 hooksBefore, uint24 hooksAfter)
maxLiquidation
viewfunction maxLiquidation(address _borrower) view returns (uint256 collateralToLiquidate, uint256 debtToRepay, bool sTokenRequired)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
siloConfig
viewfunction siloConfig() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
afterAction
nonpayablefunction afterAction(address _silo, uint256 _action, bytes _inputAndOutput)
beforeAction
nonpayablefunction beforeAction(address, uint256, bytes)
initialize
nonpayablefunction initialize(address _config, bytes _data)
liquidationCall
nonpayablefunction liquidationCall(address _collateralAsset, address _debtAsset, address _borrower, uint256 _maxDebtToCover, bool _receiveSToken) returns (uint256 withdrawCollateral, uint256 repayDebtAssets)
removeGauge
nonpayablefunction removeGauge(address _shareToken)
renounceOwnership
nonpayablefunction renounceOwnership()
setGauge
nonpayablefunction setGauge(address _gauge, address _shareToken)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferOwnership1Step
nonpayablefunction transferOwnership1Step(address newOwner)
events
GaugeConfigured
event GaugeConfigured(address gauge, address shareToken)
GaugeRemoved
event GaugeRemoved(address shareToken)
HookConfigured
event HookConfigured(address silo, uint24 hooksBefore, uint24 hooksAfter)
Initialized
event Initialized(uint64 version)
LiquidationCall
event LiquidationCall(address indexed liquidator, address indexed silo, address indexed borrower, uint256 repayDebtAssets, uint256 withdrawCollateral, bool receiveSToken)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AlreadyConfigured
error AlreadyConfigured()
CantRemoveActiveGauge
error CantRemoveActiveGauge()
EmptyGaugeAddress
error EmptyGaugeAddress()
EmptySiloConfig
error EmptySiloConfig()
FailedCall
error FailedCall()
FullLiquidationRequired
error FullLiquidationRequired()
GaugeAlreadyConfigured
error GaugeAlreadyConfigured()
GaugeIsNotConfigured
error GaugeIsNotConfigured()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidInitialization
error InvalidInitialization()
InvalidShareToken
error InvalidShareToken()
NoDebtToCover
error NoDebtToCover()
NoRepayAssets
error NoRepayAssets()
NotInitializing
error NotInitializing()
OnlySilo
error OnlySilo()
OnlySiloOrShareToken
error OnlySiloOrShareToken()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
OwnerIsZeroAddress
error OwnerIsZeroAddress()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
RequestNotSupported
error RequestNotSupported()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnexpectedCollateralToken
error UnexpectedCollateralToken()
UnexpectedDebtToken
error UnexpectedDebtToken()
UnknownRatio
error UnknownRatio()
UserIsSolvent
error UserIsSolvent()
WrongGaugeShareToken
error WrongGaugeShareToken()
creation bytecode
0x608060405234801561000f575f5ffd5b50338061001a610061565b6001600160a01b03811661004757604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005081610113565b5061005c90505f610113565b610178565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100b15760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101105780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b600380546001600160a01b031916905561011081600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b61297e806101855f395ff3fe608060405234801561000f575f5ffd5b50600436106100fa575f3560e01c8063aef2823511610093578063e1b9713911610063578063e1b971391461022b578063e30c39781461023e578063e4784fa91461024f578063f2fde38b146102b9575f5ffd5b8063aef28235146101c3578063bd02d848146101d6578063d1f5789414610206578063d714fd1914610219575f5ffd5b8063715018a6116100ce578063715018a61461016657806379ba50971461016e5780638da5cb5b14610176578063a37d94111461019b575f5ffd5b8062a718a9146100fe578063237e6d641461012b57806335cb1099146101405780633a04514514610153575b5f5ffd5b61011161010c366004612140565b6102cc565b604080519283526020830191909152015b60405180910390f35b61013e6101393660046121a4565b610896565b005b61013e61014e366004612220565b610ad3565b61013e610161366004612278565b610b12565b61013e610baf565b61013e610bc2565b6002546001600160a01b03165b6040516001600160a01b039091168152602001610122565b6101836101a9366004612278565b60046020525f90815260409020546001600160a01b031681565b61013e6101d1366004612220565b610c0b565b6101e96101e4366004612278565b610c43565b604080519384526020840192909252151590820152606001610122565b61013e610214366004612293565b610cda565b5f54610183906001600160a01b031681565b61013e610239366004612278565b610e03565b6003546001600160a01b0316610183565b61029d61025d366004612278565b6001600160a01b03165f9081526001602090815260409182902082518084019093525462ffffff8082168085526301000000909204169290910182905291565b6040805162ffffff938416815292909116602083015201610122565b61013e6102c7366004612278565b610e34565b5f8060ff815c16156102f157604051633ee5aeb560e01b815260040160405180910390fd5b60015f805c60ff19168217905d505f546001600160a01b031680610328576040516379c39cf960e01b815260040160405180910390fd5b845f03610348576040516317ff0e0960e11b815260040160405180910390fd5b806001600160a01b0316639dd413306040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610380575f5ffd5b505af1158015610392573d5f5f3e3d5ffd5b505050505f5f6103a4838b8b8b610ea5565b915091506103df6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f6001600160e01b03191681525090565b6101a0830151604051636da707db60e01b815273c355305c805bde1e5fc5fe0d1ba253577b5b27f891636da707db9161042391879187918f918f919060040161243c565b608060405180830381865af415801561043e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104629190612481565b6001600160e01b031916608085018190526060850192909252604084019290925290955061048f906110c2565b878511156104b05760405163d65db62d60e01b815260040160405180910390fd5b60608201516104ca906001600160a01b03163330886110df565b6104f082604001518684606001516001600160a01b03166111469092919063ffffffff16565b5f876104fc57306104fe565b335b905061051b84604001518b8385604001518860a0015160016111cd565b825260408401516060830151608086015161053c92918d918591905f6111cd565b826020018181525050846001600160a01b03166362402b046040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561057d575f5ffd5b505af115801561058f573d5f5f3e3d5ffd5b505050604080850151905163acb7081560e01b8152600481018990526001600160a01b038d81166024830152909116915063acb70815906044016020604051808303815f875af11580156105e5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060991906124cd565b5087156107185781511561068f576040808501518351915163a7d6e44b60e01b81526001600160a01b039091169163a7d6e44b9161064d919060019060040161250c565b602060405180830381865afa158015610668573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c91906124cd565b96505b6020820151156107135783604001516001600160a01b031663a7d6e44b83602001515f6040518363ffffffff1660e01b81526004016106cf92919061250c565b602060405180830381865afa1580156106ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070e91906124cd565b870196505b610825565b81511561079c57604080850151835191516306d29bb360e51b81526001600160a01b039091169163da53766091610759919033903090600190600401612520565b6020604051808303815f875af1158015610775573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079991906124cd565b96505b6020820151156108255783604001516001600160a01b031663da537660836020015133305f6040518563ffffffff1660e01b81526004016107e09493929190612520565b6020604051808303815f875af11580156107fc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082091906124cd565b870196505b6040838101518151888152602081018a90528a15158184015291516001600160a01b038d81169392169133917f3a84f64446e8eada995aa9da2ddbfcd9b5d5d650503b19f024096d04c05ef2a99181900360600190a4505f93505050815c60ff19169050815d509550959350505050565b61089e611332565b6001600160a01b0382166108c55760405163d1af83ef60e01b815260040160405180910390fd5b806001600160a01b0316826001600160a01b0316631d7e35566040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092f919061255b565b6001600160a01b0316146109565760405163060a0aaf60e41b815260040160405180910390fd5b6001600160a01b038082165f9081526004602052604090205416801561098f5760405163d0c7225560e01b815260040160405180910390fd5b5f826001600160a01b031663eb3beb296040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f0919061255b565b90505f6109fd828561135f565b6001600160a01b0383165f90815260016020526040812054919250906301000000900462ffffff1690506104008217610a3582821790565b9150610a6484610a5e866001600160a01b03165f9081526001602052604090205462ffffff1690565b84611468565b6001600160a01b038681165f8181526004602090815260409182902080546001600160a01b031916948c16948517905581519384528301919091527f213d54ca7d6adb897962b4f78f6c2424aa527ee584f57a6000f961c507e0ec27910160405180910390a150505050505050565b610adc3361154b565b610af9576040516310528c6d60e11b815260040160405180910390fd5b604051632a188cb160e21b815260040160405180910390fd5b610b1a611332565b6001600160a01b038082165f908152600460205260409020541680610b5257604051632e77844760e21b815260040160405180910390fd5b6001600160a01b0382165f8181526004602090815260409182902080546001600160a01b031916905590519182527f94ac12f5301759f065db9de7f23677e50bef009f062b028d4d4612f620f0f5fb910160405180910390a15050565b610bb7611332565b610bc05f6115f3565b565b60035433906001600160a01b03168114610bff5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b610c08816115f3565b50565b610c143361160c565b610c31576040516358ec9b7760e11b815260040160405180910390fd5b610c3d84848484611823565b50505050565b5f8054604051631c2b1ded60e01b81526001600160a01b03918216600482015290831660248201528190819073c355305c805bde1e5fc5fe0d1ba253577b5b27f890631c2b1ded90604401606060405180830381865af4158015610ca9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd9190612581565b9250925092509193909250565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610d1f5750825b90505f8267ffffffffffffffff166001148015610d3b5750303b155b905081158015610d49575080155b15610d675760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d9157845460ff60401b1916600160401b1785555b5f610d9e87890189612278565b9050610da989611962565b610db2816119db565b508315610df957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610e0b611332565b6001600160a01b038116610bff57604051631e4fbdf760e01b81525f6004820152602401610bf6565b610e3c611332565b600380546001600160a01b0383166001600160a01b03199091168117909155610e6d6002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610ead612094565b610eb5612094565b6040516394c0527d60e01b81526001600160a01b0384811660048301528716906394c0527d9060240161044060405180830381865afa158015610efa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612706565b604081015191935091506001600160a01b0316610f4e57604051632f13551560e11b815260040160405180910390fd5b81606001516001600160a01b0316856001600160a01b031614610f845760405163055692d760e21b815260040160405180910390fd5b80606001516001600160a01b0316846001600160a01b031614610fba5760405163129e080d60e21b815260040160405180910390fd5b80604001516001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101f91906124cd565b5080604001516001600160a01b031682604001516001600160a01b0316146110b95781604001516001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611082573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a691906124cd565b506110b082611a0a565b6110b981611a0a565b94509492505050565b6001600160e01b031981165f036110d65750565b610c0881611a90565b6040516001600160a01b038481166024830152838116604483015260648201839052610c3d9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611ac1565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015611193573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b791906124cd565b9050610c3d84846111c8858561274f565b611b27565b5f835f036111dc57505f611328565b6112b284886001600160a01b031663b6d821c7856040518263ffffffff1660e01b815260040161120c9190612762565b602060405180830381865afa158015611227573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124b91906124cd565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611287573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ab91906124cd565b5f86611bb6565b9050805f036112c257505f611328565b604051633661585b60e21b81526001600160a01b03878116600483015286811660248301526044820183905284169063d985616c906064015f604051808303815f87803b158015611311575f5ffd5b505af1158015611323573d5f5f3e3d5ffd5b505050505b9695505050505050565b6002546001600160a01b03163314610bc05760405163118cdaa760e01b8152336004820152602401610bf6565b5f8054604051630483b24f60e41b81526001600160a01b0385811660048301528392839283929091169063483b24f090602401606060405180830381865afa1580156113ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d1919061277c565b925092509250816001600160a01b0316856001600160a01b0316036113fd576108009350505050611462565b826001600160a01b0316856001600160a01b031603611423576110009350505050611462565b806001600160a01b0316856001600160a01b031603611449576120009350505050611462565b60405163d938fa3760e01b815260040160405180910390fd5b92915050565b60408051808201825262ffffff84811680835284821660208085018281526001600160a01b038a165f81815260018452889020965187549251871663010000000265ffffffffffff1990931696169590951717909455845192835292820152918201527f1c26a8451bc890d476a0e7bb8310f00750604879bb30d4813a7718a1ee089fa69060600160405180910390a1826001600160a01b031663cad1aacf6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611530575f5ffd5b505af1158015611542573d5f5f3e3d5ffd5b50505050505050565b5f80546040805163aecc90cb60e01b81528151849384936001600160a01b039091169263aecc90cb92600480830193928290030181865afa158015611592573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b691906127bb565b91509150816001600160a01b0316846001600160a01b031614806115eb5750806001600160a01b0316846001600160a01b0316145b949350505050565b600380546001600160a01b0319169055610c0881611bf3565b5f80546040805163aecc90cb60e01b81528151849384936001600160a01b039091169263aecc90cb92600480830193928290030181865afa158015611653573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167791906127bb565b91509150816001600160a01b0316846001600160a01b031614806116ac5750806001600160a01b0316846001600160a01b0316145b156116bb575060019392505050565b5f8054604051630483b24f60e41b81526001600160a01b0385811660048301528392169063483b24f090602401606060405180830381865afa158015611703573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611727919061277c565b919350909150506001600160a01b0386811690831614806117595750806001600160a01b0316866001600160a01b0316145b1561176a5750600195945050505050565b5f54604051630483b24f60e41b81526001600160a01b0385811660048301529091169063483b24f090602401606060405180830381865afa1580156117b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d5919061277c565b919350909150506001600160a01b0386811690831614806118075750806001600160a01b0316866001600160a01b0316145b156118185750600195945050505050565b505f95945050505050565b335f908152600460205260409020546001600160a01b0316806118465750610c3d565b61187b84611875876001600160a01b03165f9081526001602052604090205462ffffff63010000009091041690565b81161490565b6118855750610c3d565b5f6118c484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611c4492505050565b805160608201516020830151608084015160a0850151604080870151905163bbdc013b60e01b81526001600160a01b039687166004820152602481019590955292851660448501526064840191909152608483015260a482015291925083169063bbdc013b9060c4015f604051808303815f87803b158015611944575f5ffd5b505af1158015611956573d5f5f3e3d5ffd5b50505050505050505050565b61196a611ce8565b6001600160a01b038116611991576040516379c39cf960e01b815260040160405180910390fd5b5f546001600160a01b0316156119ba576040516308db0db560e11b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6119e3611ce8565b6001600160a01b038116610bff576040516354a4010f60e01b815260040160405180910390fd5b8061020001518015611a28575060e08101516001600160a01b031615155b15610c085760e08101516060820151604051637cfd30cd60e11b81526001600160a01b03918216600482015291169063f9fa619a906024015f604051808303815f87803b158015611a77575f5ffd5b505af1158015611a89573d5f5f3e3d5ffd5b5050505050565b6040805160048152602481019091526020810180516001600160e01b03166001600160e01b03198416178152815190fd5b5f611ad56001600160a01b03841683611d31565b905080515f14158015611af9575080806020019051810190611af791906127e8565b155b15611b2257604051635274afe760e01b81526001600160a01b0384166004820152602401610bf6565b505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611b788482611d45565b610c3d576040516001600160a01b0384811660248301525f6044830152611bac91869182169063095ea7b390606401611114565b610c3d8482611ac1565b5f5f5f611bc4878786611de2565b91509150815f03611bd9578792505050611bea565b611be588838388611e3d565b925050505b95945050505050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b611c896040518060c001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81525090565b506014810151602882015160488301516068840151608885015160a8909501516040805160c0810182526001600160a01b039687168152959094166020860152928401919091526060830152608082019290925260a081019190915290565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610bc057604051631afcd79f60e31b815260040160405180910390fd5b6060611d3e83835f611e7f565b9392505050565b5f5f5f846001600160a01b031684604051611d609190612803565b5f604051808303815f865af19150503d805f8114611d99576040519150601f19603f3d011682016040523d82523d5f602084013e611d9e565b606091505b5091509150818015611dc8575080511580611dc8575080806020019051810190611dc891906127e8565b8015611bea5750505050506001600160a01b03163b151590565b5f5f835f03611def575f94505b6002836002811115611e0357611e036124e4565b14611e2e57611e146003600a6128fc565b611e1e908561274f565b611e2986600161274f565b611e31565b83855b90969095509350505050565b5f611e6a611e4a83611f15565b8015611e6557505f8480611e6057611e60612907565b868809115b151590565b611e75868686611f41565b611bea919061274f565b606081471015611eab5760405163cf47918160e01b815247600482015260248101839052604401610bf6565b5f5f856001600160a01b03168486604051611ec69190612803565b5f6040518083038185875af1925050503d805f8114611f00576040519150601f19603f3d011682016040523d82523d5f602084013e611f05565b606091505b5091509150611328868383611ffe565b5f6002826003811115611f2a57611f2a6124e4565b611f34919061291b565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f03611f7557838281611f6b57611f6b612907565b0492505050611d3e565b808411611f9357611f938415611f8c57601161205a565b601261205a565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6060826120135761200e8261206b565b611d3e565b815115801561202a57506001600160a01b0384163b155b1561205357604051639996b31560e01b81526001600160a01b0385166004820152602401610bf6565b5080611d3e565b634e487b715f52806020526024601cfd5b80511561207b5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60408051610220810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e0810182905261020081019190915290565b6001600160a01b0381168114610c08575f5ffd5b8015158114610c08575f5ffd5b5f5f5f5f5f60a08688031215612154575f5ffd5b853561215f8161211f565b9450602086013561216f8161211f565b9350604086013561217f8161211f565b925060608601359150608086013561219681612133565b809150509295509295909350565b5f5f604083850312156121b5575f5ffd5b82356121c08161211f565b915060208301356121d08161211f565b809150509250929050565b5f5f83601f8401126121eb575f5ffd5b50813567ffffffffffffffff811115612202575f5ffd5b602083019150836020828501011115612219575f5ffd5b9250929050565b5f5f5f5f60608587031215612233575f5ffd5b843561223e8161211f565b935060208501359250604085013567ffffffffffffffff811115612260575f5ffd5b61226c878288016121db565b95989497509550505050565b5f60208284031215612288575f5ffd5b8135611d3e8161211f565b5f5f5f604084860312156122a5575f5ffd5b83356122b08161211f565b9250602084013567ffffffffffffffff8111156122cb575f5ffd5b6122d7868287016121db565b9497909650939450505050565b8051825260208101516020830152604081015161230c60408401826001600160a01b03169052565b50606081015161232760608401826001600160a01b03169052565b50608081015161234260808401826001600160a01b03169052565b5060a081015161235d60a08401826001600160a01b03169052565b5060c081015161237860c08401826001600160a01b03169052565b5060e081015161239360e08401826001600160a01b03169052565b506101008101516123b06101008401826001600160a01b03169052565b506101208101516123cd6101208401826001600160a01b03169052565b506101408101516101408301526101608101516101608301526101808101516101808301526101a08101516101a08301526101c08101516101c08301526101e08101516124266101e08401826001600160a01b03169052565b50610200810151611b2261020084018215159052565b6104a0810161244b82886122e4565b6124596102208301876122e4565b6001600160a01b03949094166104408201526104608101929092526104809091015292915050565b5f5f5f5f60808587031215612494575f5ffd5b845160208601516040870151606088015192965090945092506001600160e01b0319811681146124c2575f5ffd5b939692955090935050565b5f602082840312156124dd575f5ffd5b5051919050565b634e487b7160e01b5f52602160045260245ffd5b60028110612508576125086124e4565b9052565b82815260408101611d3e60208301846124f8565b8481526001600160a01b0384811660208301528316604082015260808101611bea60608301846124f8565b80516125568161211f565b919050565b5f6020828403121561256b575f5ffd5b8151611d3e8161211f565b805161255681612133565b5f5f5f60608486031215612593575f5ffd5b83516020850151604086015191945092506125ad81612133565b809150509250925092565b604051610220810167ffffffffffffffff811182821017156125e857634e487b7160e01b5f52604160045260245ffd5b60405290565b5f61022082840312156125ff575f5ffd5b6126076125b8565b825181526020808401519082015290506126236040830161254b565b60408201526126346060830161254b565b60608201526126456080830161254b565b608082015261265660a0830161254b565b60a082015261266760c0830161254b565b60c082015261267860e0830161254b565b60e082015261268a610100830161254b565b61010082015261269d610120830161254b565b6101208201526101408281015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526126e76101e0830161254b565b6101e08201526126fa6102008301612576565b61020082015292915050565b5f5f6104408385031215612718575f5ffd5b61272284846125ee565b91506127328461022085016125ee565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156114625761146261273b565b6020810160038310612776576127766124e4565b91905290565b5f5f5f6060848603121561278e575f5ffd5b83516127998161211f565b60208501519093506127aa8161211f565b60408501519092506125ad8161211f565b5f5f604083850312156127cc575f5ffd5b82516127d78161211f565b60208401519092506121d08161211f565b5f602082840312156127f8575f5ffd5b8151611d3e81612133565b5f82518060208501845e5f920191825250919050565b6001815b6001841115612854578085048111156128385761283861273b565b600184161561284657908102905b60019390931c92800261281d565b935093915050565b5f8261286a57506001611462565b8161287657505f611462565b816001811461288c5760028114612896576128b2565b6001915050611462565b60ff8411156128a7576128a761273b565b50506001821b611462565b5060208310610133831016604e8410600b84101617156128d5575081810a611462565b6128e15f198484612819565b805f19048211156128f4576128f461273b565b029392505050565b5f611d3e838361285c565b634e487b7160e01b5f52601260045260245ffd5b5f60ff83168061293957634e487b7160e01b5f52601260045260245ffd5b8060ff8416069150509291505056fea264697066735822122047bb22ba86959fb9e7aae26f6ee8386939b8929c8a162924575577e036d9b94a64736f6c634300081c0033