0 txs
0 calls
constructor
constructor()
functions
accrualBlockTimestamp
viewfunction accrualBlockTimestamp() view returns (uint256)
adminAllowed
viewfunction adminAllowed(address) view returns (bool)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
borrowBalanceStored
viewfunction borrowBalanceStored(address account) view returns (uint256)
borrowIndex
viewfunction borrowIndex() view returns (uint256)
borrowRatePerBlock
viewfunction borrowRatePerBlock() view returns (uint256)
comptroller
viewfunction comptroller() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
exchangeRateStored
viewfunction exchangeRateStored() view returns (uint256)
getAccountSnapshot
viewfunction getAccountSnapshot(address account) view returns (uint256, uint256, uint256, uint256)
getCash
viewfunction getCash() view returns (uint256)
implementation
viewfunction implementation() view returns (address)
interestRateModel
viewfunction interestRateModel() view returns (address)
isEthDerivative
viewfunction isEthDerivative() view returns (bool)
isRToken
viewfunction isRToken() view returns (bool)
name
viewfunction name() view returns (string)
poolFee
viewfunction poolFee() view returns (uint24)
protocolSeizeShareMantissa
viewfunction protocolSeizeShareMantissa() view returns (uint256)
reserveFactorMantissa
viewfunction reserveFactorMantissa() view returns (uint256)
supplyRatePerBlock
viewfunction supplyRatePerBlock() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalBorrows
viewfunction totalBorrows() view returns (uint256)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
_addReserves
nonpayablefunction _addReserves(uint256 addAmount) returns (uint256)
_becomeImplementation
nonpayablefunction _becomeImplementation(bytes data)
_reduceReserves
nonpayablefunction _reduceReserves(uint256 reduceAmount) returns (uint256)
_resignImplementation
nonpayablefunction _resignImplementation()
_setAdminStatus
nonpayablefunction _setAdminStatus(address adminAddr, bool status) returns (uint256)
_setComptroller
nonpayablefunction _setComptroller(address newComptroller) returns (uint256)
_setInterestRateModel
nonpayablefunction _setInterestRateModel(address newInterestRateModel) returns (uint256)
_setProtocolSeizeShare
nonpayablefunction _setProtocolSeizeShare(uint256 newProtocolSeizeShareMantissa) returns (uint256)
_setReserveFactor
nonpayablefunction _setReserveFactor(uint256 newReserveFactorMantissa) returns (uint256)
accrueInterest
nonpayablefunction accrueInterest() returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
balanceOfUnderlying
nonpayablefunction balanceOfUnderlying(address owner) returns (uint256)
borrow
nonpayablefunction borrow(uint256 borrowAmount) returns (uint256)
borrowBalanceCurrent
nonpayablefunction borrowBalanceCurrent(address account) returns (uint256)
exchangeRateCurrent
nonpayablefunction exchangeRateCurrent() returns (uint256)
initialize
nonpayablefunction initialize(address comptroller_, address interestRateModel_, uint256 initialExchangeRateMantissa_, string name_, string symbol_, uint8 decimals_, uint24 poolFee_)
initialize
nonpayablefunction initialize(address underlying_, address comptroller_, address interestRateModel_, uint256 initialExchangeRateMantissa_, string name_, string symbol_, uint8 decimals_, uint24 poolFee_)
liquidateBorrow
nonpayablefunction liquidateBorrow(address borrower, uint256 repayAmount, address pTokenCollateral) returns (uint256)
megaSell
nonpayablefunction megaSell(uint256 borrowAmount, uint256 minTokenOut, address routerAddress, uint24 feeTier, address tokenAddress) returns (uint256)
mint
nonpayablefunction mint(uint256 mintAmount) returns (uint256)
mintWithPermit
nonpayablefunction mintWithPermit(uint256 mintAmount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns (uint256)
redeem
nonpayablefunction redeem(uint256 redeemTokens) returns (uint256)
redeemUnderlying
nonpayablefunction redeemUnderlying(uint256 redeemAmount) returns (uint256)
repayBorrow
nonpayablefunction repayBorrow(uint256 repayAmount) returns (uint256)
repayBorrowBehalf
nonpayablefunction repayBorrowBehalf(address borrower, uint256 repayAmount) returns (uint256)
seize
nonpayablefunction seize(address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
sweepToken
nonpayablefunction sweepToken(address token)
totalBorrowsCurrent
nonpayablefunction totalBorrowsCurrent() returns (uint256)
transfer
nonpayablefunction transfer(address dst, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address src, address dst, uint256 amount) returns (bool)
events
AccrueInterest
event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)
AdminStatusChanged
event AdminStatusChanged(address adminAddr, bool status)
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
Borrow
event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)
Failure
event Failure(uint256 error, uint256 info, uint256 detail)
LiquidateBorrow
event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address pTokenCollateral, uint256 seizeTokens)
MegaSell
event MegaSell(address borrower, address tokenAddress, uint256 borrowAmount, uint256 tokenReceived)
Mint
event Mint(address minter, uint256 mintAmount, uint256 mintTokens)
NewComptroller
event NewComptroller(address oldComptroller, address newComptroller)
NewMarketInterestRateModel
event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)
NewProtocolSeizeShare
event NewProtocolSeizeShare(uint256 oldProtocolSeizeShareMantissa, uint256 newProtocolSeizeShareMantissa)
NewRedemptionReserveFactor
event NewRedemptionReserveFactor(uint256 oldRedemptionReserveFactor, uint256 newRedemptionReserveFactor)
NewReserveFactor
event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)
Redeem
event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)
RepayBorrow
event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)
ReservesAdded
event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves)
ReservesReduced
event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
No errors.
creation bytecode
0x6080806040523461001757615e2790816200001c8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305a50b5e1461039457806306fdde031461038f578063079db4961461038a578063089fe6aa14610385578063095ea7b3146103805780630e7527021461037b578063153ab50514610376578063173b99041461037157806317bfdfbc1461036c57806318160ddd14610367578063182df0f5146103625780631be195601461035d578063217880451461035857806323b872dd146103535780632608f8181461034e578063313ce567146103495780633630a6b51461034457806337b40f351461033f5780633af9e6691461033a5780633b1d21a2146103355780633e941010146103305780634576b5db1461032b57806347bd37181461032657806356e67728146103215780635c60da1b1461031c5780635fe3b56714610317578063601a0bf1146103125780636752e7021461030d5780636f307dc31461030857806370a082311461030357806373acee98146102fe5780637dc7dc5b146102f957806383030846146102f4578063852a12e3146102ef578063895dabad146102ea5780638f840ddd146102e557806395d89b41146102e057806395dd9193146102db578063a0712d68146102d6578063a6afed95146102d1578063a9059cbb146102cc578063aa5af0fd146102c7578063ae9d70b0146102c2578063b2a02ff1146102bd578063bd6d894d146102b8578063c37f68e2146102b3578063c5ebeaec146102ae578063cfa99201146102a9578063d0248fb4146102a4578063db006a751461029f578063dd62ed3e1461029a578063f2b3abbd14610295578063f3fdb15a14610290578063f5e3c4621461028b578063f8f9da28146102865763fca7820b14610281575f80fd5b61182a565b6117c8565b611778565b611750565b611729565b6116ca565b611694565b6115e6565b6115c9565b6115ab565b611561565b611547565b611511565b61146c565b61144f565b61140b565b6113f1565b6113bb565b611399565b6112f4565b6112d7565b6112bd565b611287565b611251565b6111cb565b611184565b611149565b611121565b611104565b6110ce565b6110a6565b61107e565b610fc6565b610fa9565b610f82565b610f4c565b610f32565b610e7a565b610e3a565b610e1f565b610dff565b610dbb565b610d75565b610d15565b610bfd565b610bdb565b610bbe565b610b5e565b610b41565b610abb565b610a75565b6109ea565b6109c5565b610707565b610628565b610508565b6001600160a01b038116036103aa57565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116103d557604052565b6103ae565b602081019081106001600160401b038211176103d557604052565b604081019081106001600160401b038211176103d557604052565b90601f801991011681019081106001600160401b038211176103d557604052565b6040519060e082018281106001600160401b038211176103d557604052565b6040519061045d826103da565b565b9291926001600160401b0382116103d55760405191610488601f8201601f191660200184610410565b8294818452818301116103aa578281602093845f960137010152565b9080601f830112156103aa578160206104bf9335910161045f565b90565b6044359060ff821682036103aa57565b60e4359062ffffff821682036103aa57565b6064359062ffffff821682036103aa57565b60c4359062ffffff821682036103aa57565b346103aa576101003660031901126103aa5760043561052681610399565b60243561053281610399565b6044359161053f83610399565b6001600160401b036084358181116103aa5761055f9036906004016104a4565b9060a4359081116103aa576105789036906004016104a4565b9060c4359260ff841684036103aa5761059d956105936104d2565b9560643592611860565b005b5f9103126103aa57565b90600182811c921680156105d7575b60208310146105c357565b634e487b7160e01b5f52602260045260245ffd5b91607f16916105b8565b602080825282518183018190529093925f5b82811061061457505060409293505f838284010152601f8019910116010190565b8181018601518482016040015285016105f3565b346103aa575f3660031901126103aa576040515f60018054610649816105a9565b80855291602091600181169081156106dd5750600114610684575b6106808561067481870382610410565b604051918291826105e1565b0390f35b60015f90815293507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106106ca5750505050810160200161067482610680610664565b80548686018401529382019381016106ae565b8695506106809693506020925061067494915060ff191682840152151560051b8201019293610664565b346103aa5760a03660031901126103aa5760443560043561072782610399565b61072f6104e4565b9060843561073c81610399565b6011546001600160a01b0390811693858216916107639083151590816109b9575b50612821565b61076e84151561285f565b61077784613ec8565b50604080516323b872dd60e01b8152336004820152306024820152604481018690529096602093909184816064815f8c5af1801561096a576107ed938692899261099c575b508a5163095ea7b360e01b81526001600160a01b039091166004820152602481019190915292839081906044820190565b03815f8b5af196871561096a5761083e85946108c9945f9a61096f575b50610825610816610431565b6001600160a01b039094168452565b6001600160a01b0388168387015262ffffff16828b0152565b336060820152608081018781526024803560a0840190815260c084018b81528c516304e45aaf60e01b815285516001600160a01b0390811660048301526020870151811694820194909452604086015162ffffff16604482015260609095015183166064860152925160848501525160a484015290511660c4820152968792839190829060e4820190565b03925af1801561096a577f11d6fb2c2507da12379bb6bb24fd495535eb938838e531364d49a8e415e4bfe994610931925f9261093d575b505085513381526001600160a01b039093166020840152604083019390935260608201929092529081906080820190565b0390a1515f8152602090f35b61095c9250803d10610963575b6109548183610410565b810190611a7f565b5f80610900565b503d61094a565b611a8e565b61098e90873d8911610995575b6109868183610410565b810190611c0b565b505f61080a565b503d61097c565b6109b290843d8611610995576109868183610410565b505f6107bc565b9050841615155f61075d565b346103aa575f3660031901126103aa57602062ffffff60035460081c16604051908152f35b346103aa5760403660031901126103aa57600435610a0781610399565b60243590335f52600e60205281610a318260405f209060018060a01b03165f5260205260405f2090565b556040519182526001600160a01b03169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b346103aa5760203660031901126103aa5760205f54610a9660ff8216611892565b60ff199081165f556001610aab6004356128a3565b50915f5416175f55604051908152f35b346103aa575f3660031901126103aa57335f52600d602052600160ff60405f205416151503610ae657005b60405162461bcd60e51b815260206004820152602d60248201527f6f6e6c79207468652061646d696e206d61792063616c6c205f72657369676e4960448201526c36b83632b6b2b73a30ba34b7b760991b6064820152608490fd5b346103aa575f3660031901126103aa576020600654604051908152f35b346103aa5760203660031901126103aa576020600435610b7d81610399565b6001610baf5f5492610b9160ff8516611892565b60ff199384165f55610baa610ba4612455565b156118e9565b612326565b915f5416175f55604051908152f35b346103aa575f3660031901126103aa576020600b54604051908152f35b346103aa575f3660031901126103aa576020610bf5611938565b604051908152f35b346103aa5760203660031901126103aa57600435610c1a81610399565b335f908152600d60205260409020610c4390600190610c3b905b5460ff1690565b1515146119b4565b6011546001600160a01b0391821691610c7091610c6891165b6001600160a01b031690565b821415611a18565b6040516370a0823160e01b815230600482015290602082602481845afa91821561096a575f92610cea575b50803b156103aa5760405163a9059cbb60e01b815233600482015260248101839052905f908290604490829084905af1801561096a57610cd757005b80610ce461059d926103c2565b8061059f565b610d0491925060203d602011610963576109548183610410565b905f610c9b565b801515036103aa57565b346103aa5760403660031901126103aa576020610bf5600435610d3781610399565b60243590610d4482610d0b565b611ae5565b60609060031901126103aa57600435610d6181610399565b90602435610d6e81610399565b9060443590565b346103aa576020610daa6001610d8a36610d49565b905f9492945494610d9d60ff8716611892565b60ff199586165f55611bc7565b915f5416175f556040519015158152f35b346103aa5760403660031901126103aa576020600435610dda81610399565b6001610aab5f5492610dee60ff8516611892565b60ff199384165f55602435906130b3565b346103aa575f3660031901126103aa57602060ff60035416604051908152f35b346103aa575f3660031901126103aa57602060405160018152f35b346103aa5760203660031901126103aa57600435610e5781610399565b60018060a01b03165f52600d602052602060ff60405f2054166040519015158152f35b346103aa5760203660031901126103aa57610ecf600435610e9a81610399565b610ea26126ef565b9060405191610eb0836103da565b82526001600160a01b03165f908152600c602052604090205490613101565b906004811015610f2d57610ee857604051908152602090f35b60405162461bcd60e51b815260206004820152601f60248201527f62616c616e636520636f756c64206e6f742062652063616c63756c61746564006044820152606490fd5b6118cb565b346103aa575f3660031901126103aa576020610bf5613132565b346103aa5760203660031901126103aa5760205f54610f6d60ff8216611892565b60ff199081165f556001610baf600435613188565b346103aa5760203660031901126103aa576020610bf5600435610fa481610399565b611c6c565b346103aa575f3660031901126103aa576020600954604051908152f35b346103aa5760203660031901126103aa576004356001600160401b0381116103aa57366023820112156103aa5761100790369060248160040135910161045f565b50335f52600d602052600160ff60405f20541615150361102357005b60405162461bcd60e51b815260206004820152602d60248201527f6f6e6c79207468652061646d696e206d61792063616c6c205f6265636f6d654960448201526c36b83632b6b2b73a30ba34b7b760991b6064820152608490fd5b346103aa575f3660031901126103aa576012546040516001600160a01b039091168152602090f35b346103aa575f3660031901126103aa57600354604051602091821c6001600160a01b03168152f35b346103aa5760203660031901126103aa5760205f546110ef60ff8216611892565b60ff199081165f556001610baf600435611d5f565b346103aa575f3660031901126103aa576020601054604051908152f35b346103aa575f3660031901126103aa576011546040516001600160a01b039091168152602090f35b346103aa5760203660031901126103aa5760043561116681610399565b60018060a01b03165f52600c602052602060405f2054604051908152f35b346103aa575f3660031901126103aa5760205f546111a460ff8216611892565b60ff199081165f556111b7610ba4612455565b6001600954915f5416175f55604051908152f35b346103aa5760e03660031901126103aa576004356111e881610399565b6024356111f481610399565b6001600160401b036064358181116103aa576112149036906004016104a4565b906084359081116103aa5761122d9036906004016104a4565b60a4359160ff831683036103aa5761059d946112476104f6565b94604435916121af565b346103aa5760203660031901126103aa5760205f5461127260ff8216611892565b60ff199081165f556001610baf6004356122dd565b346103aa5760203660031901126103aa5760205f546112a860ff8216611892565b60ff199081165f556001610baf60043561349e565b346103aa575f3660031901126103aa5760206040515f8152f35b346103aa575f3660031901126103aa576020600a54604051908152f35b346103aa575f3660031901126103aa576040515f600254611314816105a9565b808452906020906001908181169081156106dd5750600114611340576106808561067481870382610410565b60025f90815293507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8385106113865750505050810160200161067482610680610664565b805486860184015293820193810161136a565b346103aa5760203660031901126103aa576020610bf5600435610baa81610399565b346103aa5760203660031901126103aa5760205f546113dc60ff8216611892565b60ff199081165f556001610aab60043561356c565b346103aa575f3660031901126103aa576020610bf5612455565b346103aa5760403660031901126103aa57602060043561142a81610399565b6001610daa5f549261143e60ff8516611892565b60ff199384165f55602435906126b0565b346103aa575f3660031901126103aa576020600854604051908152f35b346103aa575f3660031901126103aa576004546001600160a01b03166020611492613132565b600954600a54600654604051635c0b440b60e11b815260048101949094526024840192909252604483015260648201529182908180608481015b03915afa801561096a57610680915f916114f2575b506040519081529081906020820190565b61150b915060203d602011610963576109548183610410565b5f6114e1565b346103aa576020610baf600161152636610d49565b905f949294549461153960ff8716611892565b60ff199586165f5533613b83565b346103aa575f3660031901126103aa576020610bf56126ef565b346103aa5760203660031901126103aa5761068061158960043561158481610399565b612724565b6040805194855260208501939093529183015260608201529081906080820190565b346103aa5760203660031901126103aa576020610bf5600435613ec8565b346103aa575f3660031901126103aa576020600754604051908152f35b346103aa5760a03660031901126103aa576004356116026104c2565b9060018060a01b036011541690813b156103aa5760405163d505accf60e01b815233600482015230602480830191909152604482018390523560648083019190915260ff94909416608480830191909152933560a4820152923560c4840152610680926114e1925f90829060e490829084905af1611681575b5061353e565b80610ce461168e926103c2565b5f61167b565b346103aa5760203660031901126103aa5760205f546116b560ff8216611892565b60ff199081165f556001610baf600435613f2f565b346103aa5760403660031901126103aa5760206117206004356116ec81610399565b602435906116f982610399565b60018060a01b03165f52600e835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b346103aa5760203660031901126103aa576020610bf560043561174b81610399565b61278f565b346103aa575f3660031901126103aa576004546040516001600160a01b039091168152602090f35b346103aa5760603660031901126103aa57602060043561179781610399565b6001610aab6044356117a881610399565b5f54936117b760ff8616611892565b60ff199485165f5560243590613f48565b346103aa575f3660031901126103aa576004546114cc906020906001600160a01b03166117f3613132565b600954600a546040516315f2405360e01b815260048101939093526024830191909152604482015292839190829081906064820190565b346103aa5760203660031901126103aa5760205f5461184b60ff8216611892565b60ff199081165f556001610baf6004356127d8565b96949290916118709694926121af565b60018060a01b03166bffffffffffffffffffffffff60a01b6011541617601155565b1561189957565b60405162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b6044820152606490fd5b634e487b7160e01b5f52602160045260245ffd5b60131115610f2d57565b156118f057565b60405162461bcd60e51b81526020600482015260166024820152751858d8dc9d59481a5b9d195c995cdd0819985a5b195960521b6044820152606490fd5b60041115610f2d57565b6119406128f4565b906004811015610f2d576119515790565b60405162461bcd60e51b815260206004820152603560248201527f65786368616e67655261746553746f7265643a2065786368616e67655261746560448201527414dd1bdc9959125b9d195c9b985b0819985a5b1959605a1b6064820152608490fd5b156119bb57565b60405162461bcd60e51b815260206004820152602f60248201527f5045726332303a3a7377656570546f6b656e3a206f6e6c792061646d696e206360448201526e616e20737765657020746f6b656e7360881b6064820152608490fd5b15611a1f57565b60405162461bcd60e51b815260206004820152603260248201527f5045726332303a3a7377656570546f6b656e3a2063616e206e6f74207377656560448201527138103ab73232b9363cb4b733903a37b5b2b760711b6064820152608490fd5b908160209103126103aa575190565b6040513d5f823e3d90fd5b15611aa057565b60405162461bcd60e51b815260206004820152601e60248201527f73657441646d696e53746174757320696e76616c6964207374617475732000006044820152606490fd5b90335f52600d60205260ff60405f20541615611b9b576001600160a01b0382165f908152600d60205260409020547fc63c72d6995119c079ef24c02679d49838905c8e81df9e632011b914e6f592f69290611b499060ff1615158315151415611a99565b6001600160a01b0381165f908152600d60205260409020611b75908360ff801983541691151516179055565b604080516001600160a01b039092168252911515602082015290819081015b0390a15f90565b50505f80516020615db2833981519152606060405160018152604860208201525f6040820152a1600190565b91906001600160a01b038116301480611bf4575b611bed57611be99233612e63565b1590565b5050505f90565b50335f52600d60205260ff60405f20541615611bdb565b908160209103126103aa57516104bf81610d0b565b15611c2757565b60405162461bcd60e51b815260206004820152601c60248201527f6d61726b6572206d6574686f642072657475726e65642066616c7365000000006044820152606490fd5b335f908152600d602052604090205460ff1615611d565760035460201c6001600160a01b0316604051623f1ee960e11b815291906020836004816001600160a01b0386165afa92831561096a577f7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d93611cec915f91611d37575b50611c20565b60038054640100000000600160c01b031916602084901b640100000000600160c01b03161790555b604080516001600160a01b03928316815292909116602083015281908101611b94565b611d50915060203d602011610995576109868183610410565b5f611ce6565b506104bf612965565b611d67612455565b9081611d77576104bf9150613253565b506013811015610f2d575f80516020615db28339815191526060604051838152603360208201525f6040820152a190565b15611daf57565b60405162461bcd60e51b815260206004820152602360248201527f6d61726b6574206d6179206f6e6c7920626520696e697469616c697a6564206f6044820152626e636560e81b6064820152608490fd5b15611e0757565b60405162461bcd60e51b815260206004820152603060248201527f696e697469616c2065786368616e67652072617465206d75737420626520677260448201526f32b0ba32b9103a3430b7103d32b9379760811b6064820152608490fd5b15611e6c57565b60405162461bcd60e51b815260206004820152601a60248201527f73657474696e6720636f6d7074726f6c6c6572206661696c65640000000000006044820152606490fd5b15611eb857565b60405162461bcd60e51b815260206004820152602260248201527f73657474696e6720696e7465726573742072617465206d6f64656c206661696c604482015261195960f21b6064820152608490fd5b90601f8211611f15575050565b60019160015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6906020601f840160051c83019310611f6f575b601f0160051c01905b818110611f6557505050565b5f81558201611f59565b9091508190611f50565b601f8111611f85575050565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace906020601f840160051c83019310611fdc575b601f0160051c01905b818110611fd1575050565b5f8155600101611fc6565b9091508190611fbd565b9081516001600160401b0381116103d55760019061200d8161200884546105a9565b611f08565b602080601f831160011461204e5750819061203f9394955f92612043575b50508160011b915f199060031b1c19161790565b9055565b015190505f8061202b565b90601f1983169561208060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b925f905b8882106120b957505083859697106120a1575b505050811b019055565b01515f1960f88460031b161c191690555f8080612097565b808785968294968601518155019501930190612084565b9081516001600160401b0381116103d5576120f5816120f06002546105a9565b611f79565b602080601f831160011461212a5750819061212593945f926120435750508160011b915f199060031b1c19161790565b600255565b90601f1983169461215c60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90565b925f905b87821061219757505083600195961061217f575b505050811b01600255565b01515f1960f88460031b161c191690555f8080612174565b80600185968294968601518155019501930190612160565b939095949295335f52600d602052600160ff60405f20541615150361228c576122729661223d612237612242936122186122126122579a6122056122479a6007541580612282575b61220090611da8565b600555565b610fa46005541515611e00565b15611e65565b61222142600755565b612232670de0b6b3a7640000600855565b613322565b15611eb1565b611fe6565b6120d0565b60ff1660ff196003541617600355565b63ffffff006003549160081b169063ffffff00191617600355565b61045d600160ff195f5416175f55565b50600854156121f7565b60405162461bcd60e51b8152602060048201526024808201527f6f6e6c792061646d696e206d617920696e697469616c697a6520746865206d616044820152631c9ad95d60e21b6064820152608490fd5b6122e5612455565b90816122f5576104bf91506133e2565b506013811015610f2d575f80516020615db28339815191526060604051838152605760208201525f6040820152a190565b61232f906134ca565b906004811015610f2d576123405790565b60405162461bcd60e51b815260206004820152603760248201527f626f72726f7742616c616e636553746f7265643a20626f72726f7742616c616e60448201527f636553746f726564496e7465726e616c206661696c65640000000000000000006064820152608490fd5b156123b257565b60405162461bcd60e51b815260206004820152601c60248201527f626f72726f772072617465206973206162737572646c792068696768000000006044820152606490fd5b156123fe57565b60405162461bcd60e51b815260206004820152601f60248201527f636f756c64206e6f742063616c63756c61746520626c6f636b2064656c7461006044820152606490fd5b60405190612450826103da565b5f8252565b6007544281146126ab57612467613132565b60095490600a549260085490612487610c5c60045460018060a01b031690565b6040516315f2405360e01b815260048101859052602481018690526044810187905290602090829060649082905afa801561096a57612512926124f9925f92612686575b506124e8906124e265048c273950008411156123ab565b426135b8565b92906124f38161192e565b156123f7565b612501612443565b5061250a610450565b9081526135d8565b919061251d8161192e565b8061266e575061252d8483613101565b94906125388161192e565b8061265557506125489085613a89565b95906125538161192e565b8061263c57506125719085600654612569610450565b908152613aa8565b929061257c8161192e565b806126235750908061258d92613aa8565b91906125988161192e565b8061260b575093611b94916125e87f4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04966125d142600755565b6125da83600855565b6125e384600955565b600a55565b604051948594859094939260609260808301968352602083015260408201520152565b93505050506104bf915061261e8161192e565b6136d7565b9450505050506104bf91506126378161192e565b6136ac565b9450505050506104bf91506126508161192e565b613681565b9450505050506104bf91506126698161192e565b613656565b93505050506104bf91506126818161192e565b61362b565b6124e89192506126a49060203d602011610963576109548183610410565b91906124cb565b505f90565b906001600160a01b0382163014806126d8575b6126d257611be9913333612e63565b50505f90565b50335f52600d60205260ff60405f205416156126c3565b5f54906126fe60ff8316611892565b60ff199182165f55612711610ba4612455565b600161271b611938565b925f5416175f55565b6001600160a01b0381165f908152600c60205260409020549190612747906134ca565b91906004811015610f2d576127825761275e6128f4565b91906127698161192e565b612774575f93929190565b600993505f92508291508190565b600992505f915081908190565b612797612455565b90816127a7576104bf9150613322565b506013811015610f2d575f80516020615db28339815191526060604051838152604360208201525f6040820152a190565b6127e0612455565b90816127f0576104bf9150614012565b506013811015610f2d575f80516020615db28339815191526060604051838152604960208201525f6040820152a190565b1561282857565b60405162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4164647265737360881b6044820152606490fd5b1561286657565b60405162461bcd60e51b81526020600482015260156024820152741253959053125117d093d49493d5d7d05353d55395605a1b6044820152606490fd5b6128ab612455565b90816128c1576128bd915033336141e8565b9091565b506013811015610f2d575f80516020615db28339815191526060604051838152603960208201525f6040820152a1905f90565b600b548061290457506005545f91565b61292961290f613132565b5f60405161291c816103da565b52600954600a549161445c565b61293482939261192e565b8261295e5761294392506144b5565b9061294d8161192e565b806129585750515f91565b915f9150565b5050905f90565b5f80516020615db2833981519152606060405160018152604260208201525f6040820152a1600190565b5f80516020615db2833981519152606060405160028152605160208201525f6040820152a1600290565b5f80516020615db2833981519152606060405160098152605160208201525f6040820152a1600990565b5f80516020615db2833981519152606060405160098152605260208201525f6040820152a1600990565b5f80516020615db2833981519152606060405160098152605360208201525f6040820152a1600990565b5f80516020615db2833981519152606060405160018152603460208201525f6040820152a1600190565b5f80516020615db28339815191526060604051600a8152603660208201525f6040820152a1600a90565b5f80516020615db28339815191526060604051600f8152603560208201525f6040820152a1600f90565b5f80516020615db2833981519152606060405160028152603760208201525f6040820152a1600290565b5f80516020615db2833981519152606060405160018152604560208201525f6040820152a1600190565b5f80516020615db28339815191526060604051600a8152604460208201525f6040820152a1600a90565b6013811015610f2d575f80516020615db28339815191526060604051838152602860208201525f6040820152a190565b5f80516020615db2833981519152606060405160068152601c60208201525f6040820152a1600690565b6013811015610f2d575f80516020615db28339815191526060604051838152601060208201525f6040820152a190565b5f80516020615db28339815191526060604051600a8152604b60208201525f6040820152a1600a90565b5f80516020615db2833981519152606060405160028152604c60208201525f6040820152a1600290565b5f80516020615db28339815191526060604051600a8152603c60208201525f6040820152a1600a90565b5f80516020615db28339815191526060604051600a8152605560208201525f6040820152a1600a90565b5f80516020615db2833981519152606060405160128152605b60208201525f6040820152a1601290565b5f80516020615db28339815191526060604051600a8152602f60208201525f6040820152a1600a90565b5f80516020615db28339815191526060604051600f8152603260208201525f6040820152a1600f90565b5f80516020615db28339815191526060604051600a8152602260208201525f6040820152a1600a90565b5f80516020615db28339815191526060604051600a8152600a60208201525f6040820152a1600a90565b5f80516020615db28339815191526060604051600f8152600960208201525f6040820152a1600f90565b5f80516020615db28339815191526060604051600a8152601660208201525f6040820152a1600a90565b5f80516020615db28339815191526060604051600a8152601160208201525f6040820152a1600a90565b5f80516020615db2833981519152606060405160068152601760208201525f6040820152a1600690565b5f80516020615db2833981519152606060405160078152601560208201525f6040820152a1600790565b5f80516020615db2833981519152606060405160078152601460208201525f6040820152a1600790565b6013811015610f2d575f80516020615db28339815191526060604051838152601860208201525f6040820152a190565b60035490939290612e7f9060201c6001600160a01b0316610c5c565b6040516317b9b84b60e31b81523060048201526001600160a01b038481166024830152831660448201526064810185905290602090829060849082905f905af190811561096a575f91613094575b508061308657506001600160a01b03818116948382169491858714613077578116850361304e575f19935b612f0283866135b8565b9290612f0d8161192e565b61303e576001600160a01b0382165f908152600c60205260409020612f359085905b546135b8565b9690612f408161192e565b61302d576001600160a01b0386165f908152600c60205260409020612f6790869054613a89565b90612f718161192e565b61301b57612fbf612fd9975f80516020615dd283398151915299612fa58760018060a01b03165f52600c60205260405f2090565b556001600160a01b03165f908152600c6020526040902090565b5519612fe0575b5050604051918252509081906020820190565b0390a35f90565b612ffd6130129260018060a01b03165f52600e60205260405f2090565b9060018060a01b03165f5260205260405f2090565b555f8080612fc6565b505050505050505050506104bf612a0d565b5050505050505050506104bf6129e3565b50505050505050506104bf6129b9565b6001600160a01b0384165f908152600e60205260409020613070908290612ffd565b5493612ef8565b505050505050506104bf61298f565b925050506104bf9150613702565b6130ad915060203d602011610963576109548183610410565b5f612ecd565b906130bc612455565b91826130cd576128bd9250336141e8565b50506013811015610f2d575f80516020615db28339815191526060604051838152603860208201525f6040820152a1905f90565b9061310b916135d8565b6004821015610f2d578161312c57670de0b6b3a764000091505104905f9190565b50905f90565b6011546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa90811561096a575f9161316f575090565b6104bf915060203d602011610963576109548183610410565b613190612455565b90816131a4576131a09150614517565b5090565b506013811015610f2d575f80516020615db28339815191526060604051838152605460208201525f6040820152a190565b634e487b7160e01b5f52601160045260245ffd5b919082039182116131f657565b6131d5565b1561320257565b60405162461bcd60e51b8152602060048201526024808201527f72656475636520726573657276657320756e657870656374656420756e646572604482015263666c6f7760e01b6064820152608490fd5b335f908152600d6020526040902061326e90611be990610c34565b6133195760075442036133105780613284613132565b1061330757600a548082116132fd57816132cb6132c27f3bad0c59cf2f06e7314077049f48a93578cd16f5ef92329f1dab1420a99c177e94846131e9565b928311156131fb565b6132d482600a55565b6132de81336145e1565b6040805133815260208101929092528101919091528060608101611b94565b50506104bf612ab5565b506104bf612a8b565b506104bf612a61565b506104bf612a37565b335f908152600d6020526040902061333d90611be990610c34565b6133d95760075442036133d0576004546001600160a01b03166040516310c8fc9560e11b815291906020836004816001600160a01b0386165afa92831561096a577fedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926936133b0915f91611d375750611c20565b600480546001600160a01b0319166001600160a01b038416179055611d14565b506104bf612b09565b506104bf612adf565b335f52600d60205260409060ff825f2054161561347457600754420361344a577ff5815f353a60e815cce7553e4f60c533a59d26b1b5504ea4b6db8d60da3e4da291611b946010549161343484601055565b5191825260208201929092529081906040820190565b506060815f5f80516020615db2833981519152935191600a835260596020840152820152a1600a90565b506060815f5f80516020615db28339815191529351916001835260586020840152820152a1600190565b6134a6612455565b90816134b7576104bf91503361475e565b506013811015610f2d576104bf90612b33565b6001600160a01b03165f908152600f6020526040902080548015613536576008546134f491614f16565b906004811015610f2d578061352e5750600161351292015490614f43565b919061351d8161192e565b8061352857505f9190565b91505f90565b915050905f90565b50505f905f90565b6001916135605f549261355360ff8516611892565b60ff199384165f5561356c565b939093925f5416175f55565b613574612455565b9081613585576128bd915033615064565b506013811015610f2d575f80516020615db28339815191526060604051838152601e60208201525f6040820152a1905f90565b91908281116135cf5782039182116131f6575f9190565b50600391505f90565b906135f1915f6040516135ea816103da565b5251614f16565b91906004811015610f2d578061361657506040519161360f836103da565b82525f9190565b6040519250613624836103da565b5f83529190565b60605f80516020615db2833981519152916040519060098252600660208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252600160208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252600460208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252600560208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252600360208301526040820152a1600990565b60605f80516020615db2833981519152916040519060038252605060208301526040820152a1600390565b60605f80516020615db2833981519152916040519060038252601b60208301526040820152a1600390565b60605f80516020615db2833981519152916040519060098252601a60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252601960208301526040820152a1600990565b60605f80516020615db2833981519152916040519060038252603b60208301526040820152a1600390565b60605f80516020615db2833981519152916040519060098252603a60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252602e60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252602b60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252602c60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252602a60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060038252602960208301526040820152a1600390565b60605f80516020615db2833981519152916040519060098252605a60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252603160208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252603060208301526040820152a1600990565b60605f80516020615db2833981519152916040519060038252601f60208301526040820152a1600390565b60605f80516020615db2833981519152916040519060098252602160208301526040820152a1600990565b60605f80516020615db2833981519152916040519060038252600e60208301526040820152a1600390565b60605f80516020615db2833981519152916040519060098252600760208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252600c60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060098252600b60208301526040820152a1600990565b60605f80516020615db2833981519152916040519060038252601260208301526040820152a1600390565b91908201918281116131f6578210613aa0575f9190565b600291505f90565b90613ab2916135d8565b91906004811015610f2d578061352e5750670de0b6b3a76400006128bd925104613a89565b6040519061012082018281106001600160401b038211176103d5576040525f610100838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b6004821015610f2d5752565b15613b3e57565b60405162461bcd60e51b815260206004820152601860248201527f65786368616e67652072617465206d617468206572726f7200000000000000006044820152606490fd5b92602083829395865f613ba4610c5c60035460018060a01b039060201c1690565b60405163d02f735160e01b81523060048201526001600160a01b03948516602482015292841660448401529390921660648201526084810194909452839160a49183915af190811561096a575f91613ea9575b5080613e9c57506001600160a01b038381169190831690818314613e8f57613c4f92613c21613ad7565b94613c4083612f2f8360018060a01b03165f52600c60205260405f2090565b95906020880196875287613b2b565b8551613c5a8161192e565b613c638161192e565b613e6d57613d5996613c9b670de0b6b3a7640000613c8d60105480613c86610450565b5287615cde565b0460808901958187526152da565b9160608801928352613cf1613cc0613cb16128f4565b919060c08c019283528b613b2b565b613cdd8a51613cce8161192e565b613cd78161192e565b15613b37565b51613ce6610450565b908152865190615321565b96613d0560a08a0198808a52600a54615355565b9860e08101998a52613d1b600b548851906152da565b906101008101918252613d4a613d418660018060a01b03165f52600c60205260405f2090565b54875190613a89565b9c90604083019d8e5282613b2b565b8051613d648161192e565b613d6d8161192e565b613e4557507fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc59a8897969593613dd6613e159a9694613dba613df3958f613db49051600a55565b51600b55565b516001600160a01b039092165f908152600c6020526040902090565b55516001600160a01b039092165f908152600c6020526040902090565b5551604051805f80516020615dd2833981519152978893829190602083019252565b0390a351604051908152309290602090a35190516040805130815260208101939093528201528060608101611b94565b99505050505050505050506104bf915051613e5f8161192e565b613e688161192e565b613783565b50505050506104bf915051613e818161192e565b613e8a8161192e565b613758565b50505050506104bf612b63565b9150506104bf915061372d565b613ec2915060203d602011610963576109548183610410565b5f613bf7565b90600161271b5f5493613edd60ff8616611892565b60ff199485165f55613eed612455565b9081613efe576104bf9150336153ca565b506013811015610f2d575f80516020615db28339815191526060604051838152600860208201525f6040820152a190565b613f37612455565b90816134b7576104bf915033614b83565b9190613f52612455565b80613fd3575060405163a6afed9560e01b8152926020846004815f6001600160a01b0388165af193841561096a575f94613fb2575b5083613f98576128bd935033615744565b50505080613fa8613fad926118df565b612b8d565b905f90565b613fcc91945060203d602011610963576109548183610410565b925f613f87565b92505050613fe0816118df565b6013811015610f2d575f80516020615db28339815191526060604051838152600f60208201525f6040820152a1905f90565b335f52600d60205260ff60405f2054161561409857600754420361408f57670de0b6b3a76400008111614086577faaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f8214609060065461406d82600655565b6040805191825260208201929092529081908101611b94565b506104bf612be7565b506104bf612bbd565b505f80516020615db2833981519152606060405160018152604a60208201525f6040820152a1600190565b6040519061010082018281106001600160401b038211176103d5576040525f60e0838281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b1561411757565b60405162461bcd60e51b815260206004820152603a60248201527f52455041595f424f52524f575f4e45575f4143434f554e545f424f52524f575f60448201527f42414c414e43455f43414c43554c4154494f4e5f4641494c45440000000000006064820152608490fd5b1561418957565b60405162461bcd60e51b815260206004820152603160248201527f52455041595f424f52524f575f4e45575f544f54414c5f42414c414e43455f43604482015270105310d55310551253d397d19052531151607a1b6064820152608490fd5b6003549091906142039060201c6001600160a01b0316610c5c565b604051631200453160e11b81523060048201526001600160a01b038481166024830152831660448201526064810185905290602090829060849082905f905af190811561096a575f9161443d575b508061443057506007544203614425576142696140c3565b9160016142868360018060a01b03165f52600f60205260405f2090565b01546060840152614296826134ca565b9390946142ae60208301966080840196875287613b2b565b85516142b98161192e565b6142c28161192e565b6144045760c061438b7f1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a196976143726143f29561433a955f1981145f146143fa57508a5160408201525b61432b61431d60408301518a615b77565b60e083018181529c516135b8565b969060a0830197885284613b2b565b61435783516143488161192e565b6143518161192e565b15614110565b6143656009548c51906135b8565b9590910194855282613b2b565b5161437c8161192e565b6143858161192e565b15614182565b81516001600160a01b0386165f908152600f602052604090209081556008546001909101555160098190559086519051604080516001600160a01b0396871681529690951660208701529385015260608401929092526080830191909152819060a0820190565b0390a1515f91565b604082015261430c565b5050505050613fad90516144178161192e565b6144208161192e565b6137d9565b505050613fad612c11565b915050613fad91506137ae565b614456915060203d602011610963576109548183610410565b5f614251565b9061446691613a89565b60048293921015610f2d578261295e576128bd92506135b8565b614497905f604051614491816103da565b52614f31565b91906144a28161192e565b8061361657506040519161360f836103da565b6144cf909291925f6040516144c9816103da565b52614eb4565b60048294921015610f2d57836144ea57614497929350614f43565b505060405191613624836103da565b8115614503570490565b634e487b7160e01b5f52601260045260245ffd5b60075442036145d85761452a9033615b77565b90600a54828101908181116131f65781106145945761458c8161456d7fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc593600a55565b6040805133815260208101879052908101919091529081906060820190565b0390a15f9190565b606460405162461bcd60e51b815260206004820152602060248201527f61646420726573657276657320756e6578706563746564206f766572666c6f776044820152fd5b50613fad612c3b565b6011546001600160a01b031691823b156103aa5760405163a9059cbb60e01b81526001600160a01b039290921660048301526024820152905f908290604490829084905af1801561096a576146a0575b503d801561469857602014614644575f80fd5b60205f803e5f515b1561465357565b60405162461bcd60e51b815260206004820152601960248201527f544f4b454e5f5452414e534645525f4f55545f4641494c4544000000000000006044820152606490fd5b505f1961464c565b6146a9906103c2565b5f614631565b156146b657565b60405162461bcd60e51b815260206004820152603460248201527f6f6e65206f662072656465656d546f6b656e73496e206f722072656465656d416044820152736d6f756e74496e206d757374206265207a65726f60601b6064820152608490fd5b6040519060e082018281106001600160401b038211176103d5576040525f60c0838281528260208201528260408201528260608201528260808201528260a08201520152565b614766614718565b61476e6128f4565b614785602084939401936040840192835284613b2b565b82516147908161192e565b6147998161192e565b614b62576147b76147c6958251906147af610450565b918252615cd4565b95906060840196875284613b2b565b82516147d18161192e565b6147da8161192e565b614b4157906147fb61480a9392516147f0610450565b908152865190613101565b93906080830194855283613b2b565b81516148158161192e565b61481e8161192e565b614b20576003545f9060209061487d9061484290831c6001600160a01b0316610c5c565b885160405163eabe7d9160e01b81523060048201526001600160a01b038a166024820152604481019190915293849283919082906064820190565b03925af190811561096a575f91614b01575b5080614af257506001600160a01b038416916148aa836134ca565b906148b48161192e565b80614ad85750614aca576007544203614abc576148e8916148d9600b548851906135b8565b939060a0830194855283613b2b565b81516148f38161192e565b6148fc8161192e565b614a99576001600160a01b0386165f908152600c6020526040902060c093929161492d9161436590548a51906135b8565b80516149388161192e565b6149418161192e565b614a76575061494e613132565b845111614a685751600b555b516001600160a01b0384165f908152600c602052604090205583516040519081523091905f80516020615dd28339815191529080602081010390a380518351604080516001600160a01b038616815260208101939093528201527fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a92990606090a16003546149f29060201c6001600160a01b0316610c5c565b9281519051843b156103aa576040516351dff98960e01b81523060048201526001600160a01b038516602482015260448101929092526064820152925f90849060849082905afa92831561096a57614a5193614a55575b5051906145e1565b5f90565b80610ce4614a62926103c2565b5f614a49565b5050505050506104bf612cb9565b9450505050506104bf915051614a8b8161192e565b614a948161192e565b613931565b5093505050506104bf915051614aae8161192e565b614ab78161192e565b613906565b5050505050506104bf612c8f565b5050505050506104bf612c65565b955050505050506104bf9150614aed8161192e565b6138db565b93505050506104bf91506138b0565b614b1a915060203d602011610963576109548183610410565b5f61488f565b509150506104bf915051614b338161192e565b614b3c8161192e565b61385a565b505090506104bf915051614b548161192e565b614b5d8161192e565b61382f565b505090506104bf915051614b758161192e565b614b7e8161192e565b613804565b81159182159283614e99575b614b98906146af565b614ba0614718565b90614ba96128f4565b9094614bc060208501966040860193845287613b2b565b8551614bcb8161192e565b614bd48161192e565b614e865715614df857614c0b91614c0091606085019182525190614bf6610450565b9182525190613101565b608084015284613b2b565b8251614c168161192e565b614c1f8161192e565b614dda575b600354614c3c9060201c6001600160a01b0316610c5c565b60608201805160405163eabe7d9160e01b81523060048201526001600160a01b03861660248201526044810191909152909491602090829060649082905f905af190811561096a575f91614dbb575b5080614dad57506001600160a01b03831690614ca6826134ca565b90614cb08161192e565b80614d995750614d8c576007544203614d7f57614ce490614cd5600b548751906135b8565b929060a0860193845282613b2b565b8051614cef8161192e565b614cf88161192e565b614d6b576001600160a01b0385165f908152600c60205260409020614d35929190614d2690548851906135b8565b939060c0870194855282613b2b565b8051614d408161192e565b614d498161192e565b614a7657506080614d58613132565b940193845111614a685751600b5561495a565b93505050506104bf915051614aae8161192e565b50505050506104bf612c8f565b50505050506104bf612c65565b9450505050506104bf9150614aed8161192e565b925050506104bf91506138b0565b614dd4915060203d602011610963576109548183610410565b5f614c8b565b50506104bf9051614dea8161192e565b614df38161192e565b613885565b614e219150614e128151614e0a610450565b908152615cbc565b92906060850193845286613b2b565b8451614e2c8161192e565b614e358161192e565b614e7457614e4b91614c00915190614bf6610450565b8251614e568161192e565b614e5f8161192e565b15614c245750506104bf9051614b338161192e565b505050506104bf9051614b548161192e565b50505050506104bf9051614b758161192e565b506001614b8f565b818102929181159184041417156131f657565b8015614eeb57670de0b6b3a76400008082029180830482036131f657614eda90836144f9565b14614ee757506002905f90565b5f91565b505f905f90565b670de0b6b3a7640000908082029182048082036131f65714614ee757506002905f90565b90811561353657614eda614f2a8284614ea1565b92836144f9565b15614f3c575f905f90565b6001905f90565b908015614f5357614ee7916144f9565b50506001905f90565b15614f6357565b606460405162461bcd60e51b815260206004820152602060248201527f4d494e545f45584348414e47455f43414c43554c4154494f4e5f4641494c45446044820152fd5b15614fae57565b60405162461bcd60e51b815260206004820152602860248201527f4d494e545f4e45575f544f54414c5f535550504c595f43414c43554c4154494f6044820152671397d1905253115160c21b6064820152608490fd5b1561500b57565b60405162461bcd60e51b815260206004820152602b60248201527f4d494e545f4e45575f4143434f554e545f42414c414e43455f43414c43554c4160448201526a151253d397d1905253115160aa1b6064820152608490fd5b60035461507c9060201c6001600160a01b0316610c5c565b604051634ef4c3e160e01b81523060048201526001600160a01b03831660248201526044810184905290602090829060649082905f905af190811561096a575f916152bb575b50806152af575060075442036152a5576150da614718565b916150e36128f4565b9390916150fb60208301936040840196875284613b2b565b82516151068161192e565b61510f8161192e565b6152845761518e613db4615154946151db60a0956151456151336151f4978b615b77565b60c083019b818d5251906147af610450565b989060608301998a5284613b2b565b61517183516151628161192e565b61516b8161192e565b15614f5c565b61517f600b54895190613a89565b95906080830196875284613b2b565b6151ab835161519c8161192e565b6151a58161192e565b15614fa7565b6001600160a01b0389165f908152600c602052604090205488516151ce91613a89565b9790910196875282613b2b565b516151e58161192e565b6151ee8161192e565b15615004565b516001600160a01b0383165f908152600c602052604090205582518151604080516001600160a01b038616815260208101939093528201527f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9080606081010390a1516040519081526001600160a01b03919091169030905f80516020615dd283398151915290602090a3515f91565b50509050613fad9150516152978161192e565b6152a08161192e565b613987565b5050613fad612ce3565b9050613fad915061395c565b6152d4915060203d602011610963576109548183610410565b5f6150c2565b906153156040516152ea816103f5565b60158152747375627472616374696f6e20756e646572666c6f7760581b602082015283831115615d1e565b81039081116131f65790565b670de0b6b3a764000091615343915f60405161533c816103da565b5251615cde565b80604051615350816103da565b520490565b60405191615362836103f5565b60118352706164646974696f6e206f766572666c6f7760781b60208401528101918282116131f6576104bf91831015615d1e565b60405190608082018281106001600160401b038211176103d5576040525f6060838281528260208201528260408201520152565b6003549091906153e59060201c6001600160a01b0316610c5c565b60405163368f515360e21b81523060048201526001600160a01b03841660248201526044810183905290602090829060649082905f905af190811561096a575f91615618575b508061560c575060075442036156025780615444613132565b106155f857615451615396565b916154766154676001600160a01b0383166134ca565b91906020860192835285613b2b565b83516154818161192e565b61548a8161192e565b6155d9579261549d836154ac9551613a89565b94906040830195865282613b2b565b80516154b78161192e565b6154c08161192e565b6155b9576154e3906154d484600954613a89565b92906060830193845282613b2b565b80516154ee8161192e565b6154f78161192e565b6155985750837f13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab8091614a51955161553e8560018060a01b03165f52600f60205260405f2090565b556008546001600160a01b0385165f908152600f6020526040902060010155519061556882600955565b51604080516001600160a01b038616815260208101879052908101919091526060810191909152608090a16145e1565b925050506104bf9150516155ab8161192e565b6155b48161192e565b613a33565b9150506104bf9150516155cb8161192e565b6155d48161192e565b613a08565b5050506104bf90516155ea8161192e565b6155f38161192e565b6139dd565b50506104bf612d37565b50506104bf612d0d565b90506104bf91506139b2565b615631915060203d602011610963576109548183610410565b5f61542b565b91908260409103126103aa576020825192015190565b1561565457565b60405162461bcd60e51b815260206004820152603360248201527f4c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f604482015272105353d5539517d4d152569157d19052531151606a1b6064820152608490fd5b156156bc57565b60405162461bcd60e51b815260206004820152601860248201527f4c49515549444154455f5345495a455f544f4f5f4d55434800000000000000006044820152606490fd5b1561570857565b60405162461bcd60e51b81526020600482015260146024820152731d1bdad95b881cd95a5e9d5c994819985a5b195960621b6044820152606490fd5b600354929493926157609060201c6001600160a01b0316610c5c565b60408051632fe3f38f60e11b81523060048201526001600160a01b03958616602482018190528487166044830152858716606483015260848201899052602098929690939091908990829060a49082905afa90811561096a575f91615ac2575b5080615ab057506007544203615aa057855163cfa9920160e01b81528881600481875afa90811561096a575f91615a83575b504203615a735780841690851614615a64578015615a55575f198114615a465761581d9084846141e8565b969080615a2c575060035461583d9060201c6001600160a01b0316610c5c565b855163c488847b60e01b81523060048201526001600160a01b03841660248201526044810189905295908190879060649082905afa95861561096a575f905f976159fa575b5061588d901561564d565b80516370a0823160e01b81526001600160a01b0386166004820152918083602481875afa801561096a57876158cd918b955f916159dd575b5010156156b5565b308403615946575091859161458c9361591261590c7f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb5299898930613b83565b15615701565b516001600160a01b0395861681529585166020870152604086015290921660608401526080830191909152819060a0820190565b815163b2a02ff160e01b81526001600160a01b03868116600483015287166024820152604481018890529096919391925086816064815f865af193841561096a5761591261458c958b937f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb529a5f926159c0575b505061590c565b6159d69250803d10610963576109548183610410565b5f806159b9565b6159f49150843d8611610963576109548183610410565b5f6158c5565b61588d9750615a1f9150823d8411615a25575b615a178183610410565b810190615637565b96615882565b503d615a0d565b945050505050613fad919250615a41816118df565b612e33565b50505050509050613fad612e09565b50505050509050613fad612ddf565b50505050509050613fad612db5565b5050505050509050613fad612d8b565b615a9a9150893d8b11610963576109548183610410565b5f6157f2565b5050505050509050613fad612d61565b95505050505050613fad919250613a5e565b615ad99150893d8b11610963576109548183610410565b5f6157c0565b15615ae657565b60405162461bcd60e51b815260206004820152601860248201527f544f4b454e5f5452414e534645525f494e5f4641494c454400000000000000006044820152606490fd5b15615b3257565b60405162461bcd60e51b815260206004820152601a60248201527f544f4b454e5f5452414e534645525f494e5f4f564552464c4f570000000000006044820152606490fd5b6011546040516370a0823160e01b80825230600483015260209491936001600160a01b03909316929091908585602481875afa94851561096a575f95615c9d575b50833b156103aa576040516323b872dd60e01b81526001600160a01b0391909116600482015230602482015260448101919091525f8160648183875af1801561096a57615c8a575b503d848115615c7d5750602014615c15575f80fd5b8390815f803e615c255f51615adf565b60405190815230600482015291829060249082905afa90811561096a576104bf935f92615c60575b5050615c5b82821015615b2b565b6131e9565b615c769250803d10610963576109548183610410565b5f80615c4d565b919050615c255f19615adf565b80610ce4615c97926103c2565b5f615c00565b615cb5919550863d8811610963576109548183610410565b935f615bb8565b61310b905f604051615ccd816103da565b5251614480565b9061310b91615d46565b6104bf9160405191615cef836103f5565b601783527f6d756c7469706c69636174696f6e206f766572666c6f770000000000000000006020840152615d7d565b15615d265750565b60405162461bcd60e51b8152908190615d4290600483016105e1565b0390fd5b615d60909291925f604051615d5a816103da565b52614ef2565b90926004841015610f2d57836144ea576128bd92935051906144b5565b9182158015615da9575b611bed5781615da3615d9c6104bf9486614ea1565b94856144f9565b14615d1e565b508115615d8756fe45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220983c562850f5da594f02e8c20a14c35e8af3f2be0905ef57efe2e615ae5fc50464736f6c63430008170033