0 txs
122.1k calls
constructor
constructor()
functions
debtFloorInUsd
viewfunction debtFloorInUsd() view returns (uint256)
debtOf
viewfunction debtOf(address account_) view returns (uint256 _debtInUsd)
debtPositionOf
viewfunction debtPositionOf(address account_) view returns (bool _isHealthy, uint256 _depositInUsd, uint256 _debtInUsd, uint256 _issuableLimitInUsd, uint256 _issuableInUsd)
debtTokenOf
viewfunction debtTokenOf(address) view returns (address)
depositOf
viewfunction depositOf(address account_) view returns (uint256 _depositInUsd, uint256 _issuableLimitInUsd)
depositTokenOf
viewfunction depositTokenOf(address) view returns (address)
doesDebtTokenExist
viewfunction doesDebtTokenExist(address debtToken_) view returns (bool)
doesDepositTokenExist
viewfunction doesDepositTokenExist(address depositToken_) view returns (bool)
doesSyntheticTokenExist
viewfunction doesSyntheticTokenExist(address syntheticToken_) view returns (bool)
everythingStopped
viewfunction everythingStopped() view returns (bool)
feeCollector
viewfunction feeCollector() view returns (address)
feeProvider
viewfunction feeProvider() view returns (address)
getDebtTokens
viewfunction getDebtTokens() view returns (address[])
getDebtTokensOfAccount
viewfunction getDebtTokensOfAccount(address account_) view returns (address[])
getDepositTokens
viewfunction getDepositTokens() view returns (address[])
getDepositTokensOfAccount
viewfunction getDepositTokensOfAccount(address account_) view returns (address[])
getRewardsDistributors
viewfunction getRewardsDistributors() view returns (address[])
governor
viewfunction governor() view returns (address)
isBridgingActive
viewfunction isBridgingActive() view returns (bool)
isSwapActive
viewfunction isSwapActive() view returns (bool)
masterOracle
viewfunction masterOracle() view returns (address)
MAX_TOKENS_PER_USER
viewfunction MAX_TOKENS_PER_USER() view returns (uint256)
maxLiquidable
viewfunction maxLiquidable() view returns (uint256)
paused
viewfunction paused() view returns (bool)
poolRegistry
viewfunction poolRegistry() view returns (address)
proposedGovernor
viewfunction proposedGovernor() view returns (address)
quoteLiquidateIn
viewfunction quoteLiquidateIn(address syntheticToken_, uint256 totalToSeize_, address depositToken_) view returns (uint256 _amountToRepay, uint256 _toLiquidator, uint256 _fee)
quoteLiquidateMax
viewfunction quoteLiquidateMax(address syntheticToken_, address account_, address depositToken_) view returns (uint256 _maxAmountToRepay)
quoteLiquidateOut
viewfunction quoteLiquidateOut(address syntheticToken_, uint256 amountToRepay_, address depositToken_) view returns (uint256 _totalToSeize, uint256 _toLiquidator, uint256 _fee)
quoteSwapIn
viewfunction quoteSwapIn(address syntheticTokenIn_, address syntheticTokenOut_, uint256 amountOut_) view returns (uint256 _amountIn, uint256 _fee)
quoteSwapOut
viewfunction quoteSwapOut(address syntheticTokenIn_, address syntheticTokenOut_, uint256 amountIn_) view returns (uint256 _amountOut, uint256 _fee)
smartFarmingManager
viewfunction smartFarmingManager() view returns (address)
treasury
viewfunction treasury() view returns (address)
VERSION
viewfunction VERSION() view returns (string)
acceptGovernorship
nonpayablefunction acceptGovernorship()
addDebtToken
nonpayablefunction addDebtToken(address debtToken_)
addDepositToken
nonpayablefunction addDepositToken(address depositToken_)
addRewardsDistributor
nonpayablefunction addRewardsDistributor(address distributor_)
addToDebtTokensOfAccount
nonpayablefunction addToDebtTokensOfAccount(address account_)
addToDepositTokensOfAccount
nonpayablefunction addToDepositTokensOfAccount(address account_)
initialize
nonpayablefunction initialize(address poolRegistry_)
liquidate
nonpayablefunction liquidate(address syntheticToken_, address account_, uint256 amountToRepay_, address depositToken_) returns (uint256 _totalSeized, uint256 _toLiquidator, uint256 _fee)
open
nonpayablefunction open()
pause
nonpayablefunction pause()
removeDebtToken
nonpayablefunction removeDebtToken(address debtToken_)
removeDepositToken
nonpayablefunction removeDepositToken(address depositToken_)
removeFromDebtTokensOfAccount
nonpayablefunction removeFromDebtTokensOfAccount(address account_)
removeFromDepositTokensOfAccount
nonpayablefunction removeFromDepositTokensOfAccount(address account_)
removeRewardsDistributor
nonpayablefunction removeRewardsDistributor(address distributor_)
shutdown
nonpayablefunction shutdown()
swap
nonpayablefunction swap(address syntheticTokenIn_, address syntheticTokenOut_, uint256 amountIn_) returns (uint256 _amountOut, uint256 _fee)
sweep
nonpayablefunction sweep(address token_, address to_, uint256 amount_)
toggleBridgingIsActive
nonpayablefunction toggleBridgingIsActive()
toggleIsSwapActive
nonpayablefunction toggleIsSwapActive()
transferGovernorship
nonpayablefunction transferGovernorship(address proposedGovernor_)
unpause
nonpayablefunction unpause()
updateDebtFloor
nonpayablefunction updateDebtFloor(uint256 newDebtFloorInUsd_)
updateFeeProvider
nonpayablefunction updateFeeProvider(address feeProvider_)
updateMaxLiquidable
nonpayablefunction updateMaxLiquidable(uint256 newMaxLiquidable_)
updateSmartFarmingManager
nonpayablefunction updateSmartFarmingManager(address newSmartFarmingManager_)
updateTreasury
nonpayablefunction updateTreasury(address newTreasury_)
events
BridgingIsActiveUpdated
event BridgingIsActiveUpdated(bool newIsActive)
DebtFloorUpdated
event DebtFloorUpdated(uint256 oldDebtFloorInUsd, uint256 newDebtFloorInUsd)
DebtTokenAdded
event DebtTokenAdded(address indexed debtToken)
DebtTokenRemoved
event DebtTokenRemoved(address indexed debtToken)
DepositTokenAdded
event DepositTokenAdded(address indexed depositToken)
DepositTokenRemoved
event DepositTokenRemoved(address indexed depositToken)
FeeProviderUpdated
event FeeProviderUpdated(address indexed oldFeeProvider, address indexed newFeeProvider)
Initialized
event Initialized(uint8 version)
MaxLiquidableUpdated
event MaxLiquidableUpdated(uint256 oldMaxLiquidable, uint256 newMaxLiquidable)
Open
event Open(address indexed caller)
Paused
event Paused(address indexed caller)
PositionLiquidated
event PositionLiquidated(address indexed liquidator, address indexed account, address indexed syntheticToken, uint256 amountRepaid, uint256 depositSeized, uint256 fee)
RewardsDistributorAdded
event RewardsDistributorAdded(address indexed _distributor)
RewardsDistributorRemoved
event RewardsDistributorRemoved(address _distributor)
Shutdown
event Shutdown(address indexed caller)
SmartFarmingManagerUpdated
event SmartFarmingManagerUpdated(address oldSmartFarmingManager, address newSmartFarmingManager)
SwapActiveUpdated
event SwapActiveUpdated(bool newActive)
SyntheticTokenSwapped
event SyntheticTokenSwapped(address indexed account, address indexed syntheticTokenIn, address indexed syntheticTokenOut, uint256 amountIn, uint256 amountOut, uint256 fee)
TreasuryUpdated
event TreasuryUpdated(address indexed oldTreasury, address indexed newTreasury)
Unpaused
event Unpaused(address indexed caller)
UpdatedGovernor
event UpdatedGovernor(address indexed previousGovernor, address indexed proposedGovernor)
errors
AddressIsNull
error AddressIsNull()
AmountGreaterThanMaxLiquidable
error AmountGreaterThanMaxLiquidable()
AmountInIsInvalid
error AmountInIsInvalid()
AmountIsTooHigh
error AmountIsTooHigh()
AmountIsZero
error AmountIsZero()
CanNotLiquidateOwnPosition
error CanNotLiquidateOwnPosition()
DebtTokenAlreadyExists
error DebtTokenAlreadyExists()
DebtTokenDoesNotExist
error DebtTokenDoesNotExist()
DepositTokenAlreadyExists
error DepositTokenAlreadyExists()
DepositTokenDoesNotExist
error DepositTokenDoesNotExist()
FallbackIsNotAllowed
error FallbackIsNotAllowed()
IsNotPaused
error IsNotPaused()
IsNotShutdown
error IsNotShutdown()
IsPaused
error IsPaused()
IsShutdown
error IsShutdown()
MaxLiquidableTooHigh
error MaxLiquidableTooHigh()
NewValueIsSameAsCurrent
error NewValueIsSameAsCurrent()
PoolRegistryIsNull
error PoolRegistryIsNull()
PositionIsHealthy
error PositionIsHealthy()
ProposedGovernorIsNull
error ProposedGovernorIsNull()
ReachedMaxDepositTokens
error ReachedMaxDepositTokens()
ReceiveIsNotAllowed
error ReceiveIsNotAllowed()
RemainingDebtIsLowerThanTheFloor
error RemainingDebtIsLowerThanTheFloor()
RewardDistributorAlreadyExists
error RewardDistributorAlreadyExists()
RewardDistributorDoesNotExist
error RewardDistributorDoesNotExist()
SenderIsNotDebtToken
error SenderIsNotDebtToken()
SenderIsNotDepositToken
error SenderIsNotDepositToken()
SenderIsNotGovernor
error SenderIsNotGovernor()
SenderIsNotTheProposedGovernor
error SenderIsNotTheProposedGovernor()
SwapFeatureIsInactive
error SwapFeatureIsInactive()
SyntheticDoesNotExist
error SyntheticDoesNotExist()
SyntheticIsInUse
error SyntheticIsInUse()
SyntheticIsNull
error SyntheticIsNull()
TotalSupplyIsNotZero
error TotalSupplyIsNotZero()
UnderlyingAssetInUse
error UnderlyingAssetInUse()
UserReachedMaxTokens
error UserReachedMaxTokens()
creation bytecode
0x60806040523480156200001157600080fd5b50600280546001600160a01b031916339081179091556040516000907fd4459d5b8b913cab0244230fd9b1c08b6ceace7fe9230e60d0f74cbffdf849d0908290a36200005c62000062565b62000192565b6200006e60ff62000071565b50565b60008054610100900460ff16156200010a578160ff166001148015620000aa5750620000a8306200018360201b620039a11760201c565b155b620001025760405162461bcd60e51b815260206004820152602e602482015260008051602062004aca83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff808416911610620001695760405162461bcd60e51b815260206004820152602e602482015260008051602062004aca83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620000f9565b506000805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b61492880620001a26000396000f3fe6080604052600436106103a65760003560e01c80637f51bb1f116101e7578063d176e05f1161010d578063f0c80d3b116100a0578063fb01600d1161006f578063fb01600d14610b52578063fc0e74d114610b67578063fcfff16f14610b7c578063ffa1ad7414610b91576103c4565b8063f0c80d3b14610ae7578063f3b27bc314610b07578063f609280914610b1c578063f8977b8414610b32576103c4565b8063df791e50116100dc578063df791e5014610a7c578063e35bff9614610a9c578063eaada38214610abd578063ecf3a3f914610ad2576103c4565b8063d176e05f146109d2578063d283e75f146109f2578063dbe466b114610a12578063dde3ab9514610a32576103c4565b8063984a68b511610185578063b6aa515b11610154578063b6aa515b1461095d578063c415b95c1461097d578063c4d66de814610992578063c4d68a1a146109b2576103c4565b8063984a68b5146108d25780639ab620dd146108f25780639f8f0fa814610907578063afcff50f1461093d576103c4565b806387cddc86116101c157806387cddc861461083c578063892d522a146108725780638a11a3701461089257806396aaccfe146108b2576103c4565b80637f51bb1f146107f2578063833667df146108125780638456cb5914610827576103c4565b80634066fdea116102cc57806363c56d421161026a57806375c6f8ec1161023957806375c6f8ec14610772578063770b69b41461079257806379e40cba146107b25780637d355163146107d2576103c4565b806363c56d42146106fd57806369c5dfd81461071d5780636b4f41af146107325780636c33936714610752576103c4565b806356aaee2d116102a657806356aaee2d146106885780635c975abb146106a857806361d027b3146106bd57806362c06767146106dd576103c4565b80634066fdea14610633578063450058f8146106535780634ff9b74a14610673576103c4565b80632b80cc52116103445780633c2dc254116103135780633c2dc254146105a35780633de2f6b2146105de5780633f4ba83a146105fe5780633f5fc13114610613576103c4565b80632b80cc521461051c5780632bcb849c1461053d5780632dd6adb51461055d5780633605b51b14610581576103c4565b80631ccfbc4f116103805780631ccfbc4f1461048757806323e3fbd5146104bc578063275038d0146104dc5780632adcb0c6146104fc576103c4565b80630c340a24146103dd5780631a0dd00b1461041a5780631a4660ce14610465576103c4565b366103c457604051636436c22d60e11b815260040160405180910390fd5b60405163a0152e6360e01b815260040160405180910390fd5b3480156103e957600080fd5b506002546103fd906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561042657600080fd5b50610455610435366004614483565b6001600160a01b0390811660009081526016602052604090205416151590565b6040519015158152602001610411565b34801561047157600080fd5b506104856104803660046144a0565b610bcf565b005b34801561049357600080fd5b506104a76104a23660046144b9565b610c5d565b60408051928352602083019190915201610411565b3480156104c857600080fd5b506104a76104d7366004614483565b610e20565b3480156104e857600080fd5b506104856104f7366004614483565b611080565b34801561050857600080fd5b506104a76105173660046144b9565b6110d2565b34801561052857600080fd5b50601b5461045590600160a01b900460ff1681565b34801561054957600080fd5b50610485610558366004614483565b611282565b34801561056957600080fd5b50610573600b5481565b604051908152602001610411565b34801561058d57600080fd5b50610596611368565b60405161041191906144fa565b3480156105af57600080fd5b506105c36105be366004614547565b611379565b60408051938452602084019290925290820152606001610411565b3480156105ea57600080fd5b506105c36105f9366004614589565b61159e565b34801561060a57600080fd5b50610485611c30565b34801561061f57600080fd5b5061048561062e366004614483565b611ce0565b34801561063f57600080fd5b506018546103fd906001600160a01b031681565b34801561065f57600080fd5b5061045561066e366004614483565b611d74565b34801561067f57600080fd5b50610596611d87565b34801561069457600080fd5b506104856106a3366004614483565b611d93565b3480156106b457600080fd5b50610455611e44565b3480156106c957600080fd5b50600d546103fd906001600160a01b031681565b3480156106e957600080fd5b506104856106f83660046144b9565b611ee0565b34801561070957600080fd5b50610485610718366004614483565b611f19565b34801561072957600080fd5b50610573601e81565b34801561073e57600080fd5b5061048561074d366004614483565b611fd2565b34801561075e57600080fd5b506105c361076d366004614547565b612178565b34801561077e57600080fd5b5061048561078d366004614483565b612362565b34801561079e57600080fd5b506104856107ad366004614483565b6123b1565b3480156107be57600080fd5b506104856107cd366004614483565b612441565b3480156107de57600080fd5b506105966107ed366004614483565b6125eb565b3480156107fe57600080fd5b5061048561080d366004614483565b6125f8565b34801561081e57600080fd5b50610485612749565b34801561083357600080fd5b506104856127d5565b34801561084857600080fd5b506103fd610857366004614483565b6010602052600090815260409020546001600160a01b031681565b34801561087e57600080fd5b5061048561088d366004614483565b612866565b34801561089e57600080fd5b506003546103fd906001600160a01b031681565b3480156108be57600080fd5b50601b546103fd906001600160a01b031681565b3480156108de57600080fd5b506105736108ed3660046145dc565b61294f565b3480156108fe57600080fd5b50610485612ab0565b34801561091357600080fd5b506103fd610922366004614483565b6016602052600090815260409020546001600160a01b031681565b34801561094957600080fd5b50600c546103fd906001600160a01b031681565b34801561096957600080fd5b50610485610978366004614483565b612b3c565b34801561098957600080fd5b506103fd612bb0565b34801561099e57600080fd5b506104856109ad366004614483565b612c2d565b3480156109be57600080fd5b506104856109cd366004614483565b612cfe565b3480156109de57600080fd5b506105966109ed366004614483565b612eb2565b3480156109fe57600080fd5b50610573610a0d366004614483565b612ebf565b348015610a1e57600080fd5b50610485610a2d366004614483565b613091565b348015610a3e57600080fd5b50610a52610a4d366004614483565b613245565b6040805195151586526020860194909452928401919091526060830152608082015260a001610411565b348015610a8857600080fd5b506104a7610a973660046144b9565b61328f565b348015610aa857600080fd5b50600c5461045590600160a01b900460ff1681565b348015610ac957600080fd5b506103fd61367c565b348015610ade57600080fd5b506104556136c1565b348015610af357600080fd5b50610485610b023660046144a0565b613725565b348015610b1357600080fd5b506104856137dc565b348015610b2857600080fd5b5061057360045481565b348015610b3e57600080fd5b50610455610b4d366004614483565b61386b565b348015610b5e57600080fd5b50610596613878565b348015610b7357600080fd5b50610485613884565b348015610b8857600080fd5b50610485613917565b348015610b9d57600080fd5b50610bc2604051806040016040528060058152602001640312e332e360dc1b81525081565b604051610411919061464c565b6002546001600160a01b03163314610bfa57604051634b98449160e11b815260040160405180910390fd5b60045481811415610c1e57604051630333a68160e41b815260040160405180910390fd5b60408051828152602081018490527f0662703672e57800b9439de3a419c9155283ad25ea7776c139c876bd8b93bb98910160405180910390a150600455565b60185460405163d2d6b5a360e01b8152336004820152600091829182916001600160a01b03169063d2d6b5a39060240160206040518083038186803b158015610ca557600080fd5b505afa158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd919061467f565b90508015610d1057610d01610cfa82670de0b6b3a76400006146ae565b85906139b0565b9350610d0d84826139e4565b91505b600c60009054906101000a90046001600160a01b03166001600160a01b031663eaada3826040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5e57600080fd5b505afa158015610d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9691906146c5565b6001600160a01b031663b64663848688876040518463ffffffff1660e01b8152600401610dc5939291906146e2565b60206040518083038186803b158015610ddd57600080fd5b505afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061467f565b925050935093915050565b6000806000610e2d61367c565b90506000610e3c601386613a1c565b905060005b81811015611078576000610e5760138884613a3a565b90506000846001600160a01b0316638d0dba00836001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b158015610ea357600080fd5b505afa158015610eb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edb91906146c5565b6040516370a0823160e01b81526001600160a01b038c811660048301528616906370a082319060240160206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f54919061467f565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038186803b158015610f9857600080fd5b505afa158015610fac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd0919061467f565b9050610fdc8188614706565b9650611059826001600160a01b031663df011c416040518163ffffffff1660e01b815260040160206040518083038186803b15801561101a57600080fd5b505afa15801561102e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611052919061467f565b82906139e4565b6110639087614706565b95505050806110719061471e565b9050610e41565b505050915091565b6110893361386b565b6110a6576040516326688ebb60e11b815260040160405180910390fd5b6110b260138233613a4f565b6110cf5760405163a67d528360e01b815260040160405180910390fd5b50565b600080600c60009054906101000a90046001600160a01b03166001600160a01b031663eaada3826040518163ffffffff1660e01b815260040160206040518083038186803b15801561112357600080fd5b505afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b91906146c5565b6001600160a01b031663b64663848686866040518463ffffffff1660e01b815260040161118a939291906146e2565b60206040518083038186803b1580156111a257600080fd5b505afa1580156111b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111da919061467f565b60185460405163d2d6b5a360e01b81523360048201529193506000916001600160a01b039091169063d2d6b5a39060240160206040518083038186803b15801561122357600080fd5b505afa158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b919061467f565b905080156112795761126d83826139e4565b9150610e1582846146ae565b50935093915050565b6002546001600160a01b031633146112ad57604051634b98449160e11b815260040160405180910390fd5b6001600160a01b0381166112d45760405163fb7566d760e01b815260040160405180910390fd5b6018546001600160a01b0390811690821681141561130557604051630333a68160e41b815260040160405180910390fd5b816001600160a01b0316816001600160a01b03167f66fa9df7ccacf7a0c110fd7dd4591f59c76a798409b4aeaf850002679baca45560405160405180910390a350601880546001600160a01b0319166001600160a01b0392909216919091179055565b60606113746019613a5c565b905090565b6018546040805163cfc0c69f60e01b8152815160009384938493849384936001600160a01b03169263cfc0c69f9260048082019391829003018186803b1580156113c257600080fd5b505afa1580156113d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fa9190614750565b9092509050600061140b8383614783565b6001600160801b0316905087811561143c5761143961143283670de0b6b3a7640000614706565b82906139b0565b90505b61144461367c565b6001600160a01b031663b6466384896001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b15801561148b57600080fd5b505afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c391906146c5565b8c846040518463ffffffff1660e01b81526004016114e3939291906146e2565b60206040518083038186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061467f565b96506001600160801b0383161561155a57611557816001600160801b0385166139e4565b94505b6001600160801b038416156115915761158e61157e85670de0b6b3a7640000614783565b82906001600160801b03166139e4565b95505b5050505093509350939050565b60008060006115ab6136c1565b156115c957604051631b0e923f60e11b815260040160405180910390fd5b600260015414156116215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001556001600160a01b038088166000908152601660205260409020548891166116605760405163a596698b60e01b815260040160405180910390fd5b8461166a8161386b565b6116875760405163a67d528360e01b815260040160405180910390fd5b866116a5576040516310eb483f60e21b815260040160405180910390fd5b336001600160a01b03891614156116cf57604051630ecda8a760e01b815260040160405180910390fd5b6001600160a01b03808a1660009081526016602052604080822054815163a6afed9560e01b81529151931692839263a6afed95926004808201939182900301818387803b15801561171f57600080fd5b505af1158015611733573d6000803e3d6000fd5b5050505060006117428a613245565b50505050905080156117675760405163202881bd60e11b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b038b81166004830152600091908416906370a082319060240160206040518083038186803b1580156117ac57600080fd5b505afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e4919061467f565b600b549091506117f48b836139b0565b11156118135760405163e292f24f60e01b815260040160405180910390fd5b600061181d61367c565b600454909150156118f35760006001600160a01b038216638d0dba008f6118448f876146ae565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038186803b15801561188857600080fd5b505afa15801561189c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c0919061467f565b90506000811180156118d3575060045481105b156118f1576040516332b9d47360e01b815260040160405180910390fd5b505b6118fe8d8c8c612178565b6040516370a0823160e01b8152929b5090995097506001600160a01b038b16906370a0823190611941908f906004016001600160a01b0391909116815260200190565b60206040518083038186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611991919061467f565b8911156119b157604051635de1e54160e01b815260040160405180910390fd5b604051632770a7eb60e21b8152336004820152602481018c90526001600160a01b038e1690639dc29fac90604401600060405180830381600087803b1580156119f957600080fd5b505af1158015611a0d573d6000803e3d6000fd5b5050604051632770a7eb60e21b81526001600160a01b038f81166004830152602482018f905287169250639dc29fac9150604401600060405180830381600087803b158015611a5b57600080fd5b505af1158015611a6f573d6000803e3d6000fd5b505060405163b2a02ff160e01b81526001600160a01b038d16925063b2a02ff19150611aa3908f9033908d906004016146e2565b600060405180830381600087803b158015611abd57600080fd5b505af1158015611ad1573d6000803e3d6000fd5b505050506000871115611bc657896001600160a01b031663b2a02ff18d600c60009054906101000a90046001600160a01b03166001600160a01b031663c415b95c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3c57600080fd5b505afa158015611b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7491906146c5565b8a6040518463ffffffff1660e01b8152600401611b93939291906146e2565b600060405180830381600087803b158015611bad57600080fd5b505af1158015611bc1573d6000803e3d6000fd5b505050505b604080518c8152602081018b90529081018890526001600160a01b03808f1691908e169033907fe1c3870e3d7d5199a16d200133088e6e3f7012d28571e442a110b4c83b5e3b949060600160405180910390a4505050505050600180819055509450945094915050565b611c38611e44565b611c555760405163bc871ce560e01b815260040160405180910390fd5b611c5d6136c1565b15611c7b57604051631b0e923f60e11b815260040160405180910390fd5b6002546001600160a01b03163314611ca657604051634b98449160e11b815260040160405180910390fd5b6003805460ff60a01b1916905560405133907f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90600090a2565b611ce93361386b565b611d06576040516326688ebb60e11b815260040160405180910390fd5b80601e611d14601383613a1c565b611d1f601484613a1c565b611d299190614706565b10611d47576040516306ceeb8360e21b815260040160405180910390fd5b611d5360138333613a69565b611d705760405163dd40dad960e01b815260040160405180910390fd5b5050565b6000611d81601183613a76565b92915050565b60606113746011613a5c565b6002546001600160a01b03163314611dbe57604051634b98449160e11b815260040160405180910390fd5b6001600160a01b038116611de55760405163fb7566d760e01b815260040160405180910390fd5b611df0601982613a98565b611e0d57604051631e577fa560e31b815260040160405180910390fd5b6040516001600160a01b038216907f5579b1eead2d904c2b05255a92f5a4a4f3e234ae0a4efe538adef3c1794e1cea90600090a250565b600354600090600160a01b900460ff16806113745750600c60009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137491906147ae565b611ee8613aad565b6001600160a01b038316611f0557611f008282613ada565b505050565b611f006001600160a01b0384168383613bf3565b6002546001600160a01b03163314611f4457604051634b98449160e11b815260040160405180910390fd5b6001600160a01b038116611f6b5760405163fb7566d760e01b815260040160405180910390fd5b611f76601982613c45565b611f93576040516362c4c75f60e01b815260040160405180910390fd5b6040516001600160a01b03821681527f5412e32b52c11e4b232ab59f3660d55b48eb20735ccb2c67a0a1ebea0d6fe0199060200160405180910390a150565b6002546001600160a01b03163314611ffd57604051634b98449160e11b815260040160405180910390fd5b6001600160a01b0381166120245760405163fb7566d760e01b815260040160405180910390fd5b6000816001600160a01b0316638230ecd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561205f57600080fd5b505afa158015612073573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209791906146c5565b90506001600160a01b0381166120c05760405163013a1b4360e51b815260040160405180910390fd5b6001600160a01b0381811660009081526016602052604090205416156120f95760405163fa9b809960e01b815260040160405180910390fd5b612104601183613a98565b61212157604051631f477b5760e11b815260040160405180910390fd5b6001600160a01b0381811660009081526016602052604080822080546001600160a01b0319169386169384179055517fad48bee6bbb1b8ece321157ad29afc3c6baa177f8dc043132d65038cc601cdd69190a25050565b600080600061218561367c565b6001600160a01b031663b646638487866001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121cd57600080fd5b505afa1580156121e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220591906146c5565b886040518463ffffffff1660e01b8152600401612224939291906146e2565b60206040518083038186803b15801561223c57600080fd5b505afa158015612250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612274919061467f565b6018546040805163cfc0c69f60e01b8152815193955060009384936001600160a01b03169263cfc0c69f9260048082019391829003018186803b1580156122ba57600080fd5b505afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190614750565b90925090506001600160801b0381161561231c57612319846001600160801b0383166139e4565b92505b6001600160801b0382161561234b5761233e846001600160801b0384166139e4565b6123489085614706565b93505b6123558484614706565b9450505093509350939050565b61236b33611d74565b612388576040516304f8b91760e51b815260040160405180910390fd5b61239460148233613a4f565b6110cf576040516359c937f160e01b815260040160405180910390fd5b6123ba33611d74565b6123d7576040516304f8b91760e51b815260040160405180910390fd5b80601e6123e5601383613a1c565b6123f0601484613a1c565b6123fa9190614706565b10612418576040516306ceeb8360e21b815260040160405180910390fd5b61242460148333613a69565b611d7057604051631f477b5760e11b815260040160405180910390fd5b6002546001600160a01b0316331461246c57604051634b98449160e11b815260040160405180910390fd5b6001600160a01b0381166124935760405163fb7566d760e01b815260040160405180910390fd5b6000816001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156124ce57600080fd5b505afa1580156124e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250691906146c5565b6001600160a01b0380821660009081526010602052604090205491925016156125425760405163374f601360e11b815260040160405180910390fd5b601e61254e600e613c5a565b1061256c5760405163225b605b60e21b815260040160405180910390fd5b612577600e83613a98565b6125945760405163dd40dad960e01b815260040160405180910390fd5b6001600160a01b0381811660009081526010602052604080822080546001600160a01b0319169386169384179055517fdc705e658c7b6c6c01f5802457bf4ffb99f204bf1603e7b1ae3d4c7536611bc29190a25050565b6060611d81601383613c64565b6002546001600160a01b0316331461262357604051634b98449160e11b815260040160405180910390fd5b6001600160a01b03811661264a5760405163fb7566d760e01b815260040160405180910390fd5b600d546001600160a01b0390811690821681141561267b57604051630333a68160e41b815260040160405180910390fd5b6001600160a01b038116156126e6576040516326ed7c7960e11b81526001600160a01b038381166004830152821690634ddaf8f290602401600060405180830381600087803b1580156126cd57600080fd5b505af11580156126e1573d6000803e3d6000fd5b505050505b816001600160a01b0316816001600160a01b03167f4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a60405160405180910390a350600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b0316331461277457604051634b98449160e11b815260040160405180910390fd5b601b54604051600160a01b90910460ff1615808252907f0269774d3426d7e61b04b7d5129948b9f4edf9b937bb0c657fbb32a94a7996ec9060200160405180910390a1601b8054911515600160a01b0260ff60a01b19909216919091179055565b6127dd611e44565b156127fb57604051631309a56360e01b815260040160405180910390fd5b6002546001600160a01b0316331461282657604051634b98449160e11b815260040160405180910390fd5b6003805460ff60a01b1916600160a01b17905560405133907f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890600090a2565b6002546001600160a01b0316331461289157604051634b98449160e11b815260040160405180910390fd5b6001600160a01b0381166128b85760405163fb7566d760e01b815260040160405180910390fd5b601b546001600160a01b039081169082168114156128e957604051630333a68160e41b815260040160405180910390fd5b604080516001600160a01b038084168252841660208201527f01b723df71593f812e405dc433f7dcf4134ff941def9d2e189a31f3cb1b1963b910160405180910390a150601b80546001600160a01b0319166001600160a01b0392909216919091179055565b60008061295b84613245565b5050505090508015612971576000915050612aa9565b6040516370a0823160e01b81526001600160a01b0385811660048301526000916129fa918891908716906370a082319060240160206040518083038186803b1580156129bc57600080fd5b505afa1580156129d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f4919061467f565b86611379565b5050600b546001600160a01b03888116600090815260166020526040908190205490516370a0823160e01b81528983166004820152939450612a98939116906370a082319060240160206040518083038186803b158015612a5a57600080fd5b505afa158015612a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a92919061467f565b906139e4565b925082811015612aa6578092505b50505b9392505050565b6002546001600160a01b03163314612adb57604051634b98449160e11b815260040160405180910390fd5b600c54604051600160a01b90910460ff1615808252907fc8011ac148e14ab1e8f93a022ebc29088beedc705027c8eb9514d6d69c5b23639060200160405180910390a1600c8054911515600160a01b0260ff60a01b19909216919091179055565b6002546001600160a01b03163314612b6757604051634b98449160e11b815260040160405180910390fd5b6001600160a01b038116612b8e57604051634c267bfb60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600c54604080516331056e5760e21b815290516000926001600160a01b03169163c415b95c916004808301926020929190829003018186803b158015612bf557600080fd5b505afa158015612c09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137491906146c5565b6000612c396001613c72565b90508015612c51576000805461ff0019166101001790555b6001600160a01b038216612c7857604051637cb62f2b60e11b815260040160405180910390fd5b612c80613cff565b612c88613d2e565b600c80546001600160a81b0319166001600160a01b03841617600160a01b1790556706f05b59d3b20000600b558015611d70576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6002546001600160a01b03163314612d2957604051634b98449160e11b815260040160405180910390fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d6457600080fd5b505afa158015612d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9c919061467f565b1115612dbb5760405163066097f160e31b815260040160405180910390fd5b612dc6601182613c45565b612de3576040516359c937f160e01b815260040160405180910390fd5b60166000826001600160a01b0316638230ecd66040518163ffffffff1660e01b815260040160206040518083038186803b158015612e2057600080fd5b505afa158015612e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5891906146c5565b6001600160a01b03908116825260208201929092526040908101600090812080546001600160a01b03191690559051918316917f81e9205ee5a9e1289fad5baa5e74bd49d4613652eb4626bb15925bf9fdbc0feb9190a250565b6060611d81601483613c64565b600080612eca61367c565b90506000612ed9601485613a1c565b905060005b81811015613089576000612ef460148784613a3a565b9050836001600160a01b0316638d0dba00826001600160a01b0316638230ecd66040518163ffffffff1660e01b815260040160206040518083038186803b158015612f3e57600080fd5b505afa158015612f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7691906146c5565b6040516370a0823160e01b81526001600160a01b038a811660048301528516906370a082319060240160206040518083038186803b158015612fb757600080fd5b505afa158015612fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fef919061467f565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038186803b15801561303357600080fd5b505afa158015613047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306b919061467f565b6130759086614706565b945050806130829061471e565b9050612ede565b505050919050565b6002546001600160a01b031633146130bc57604051634b98449160e11b815260040160405180910390fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130f757600080fd5b505afa15801561310b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312f919061467f565b111561314e5760405163066097f160e31b815260040160405180910390fd5b613159600e82613c45565b6131765760405163a67d528360e01b815260040160405180910390fd5b60106000826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156131b357600080fd5b505afa1580156131c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131eb91906146c5565b6001600160a01b03908116825260208201929092526040908101600090812080546001600160a01b03191690559051918316917fe5a19a76470297a1f85f9a38f3ff148b4c8cdc1209e074dbe59db5e22eb31a3a9190a250565b600080600080600061325686612ebf565b925061326186610e20565b808511159650909450915081831061327a576000613284565b61328483836146ae565b905091939590929450565b60008061329a6136c1565b156132b857604051631b0e923f60e11b815260040160405180910390fd5b6002600154141561330b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611618565b60026001556001600160a01b0380861660009081526016602052604090205486911661334a5760405163a596698b60e01b815260040160405180910390fd5b6001600160a01b038086166000908152601660205260409020548691166133845760405163a596698b60e01b815260040160405180910390fd5b600c54600160a01b900460ff166133ae57604051633840404b60e21b815260040160405180910390fd5b84158061343057506040516370a0823160e01b81523360048201526001600160a01b038816906370a082319060240160206040518083038186803b1580156133f557600080fd5b505afa158015613409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061342d919061467f565b85115b1561344e5760405163ca99073960e01b815260040160405180910390fd5b604051632770a7eb60e21b8152336004820152602481018690526001600160a01b03881690639dc29fac90604401600060405180830381600087803b15801561349657600080fd5b505af11580156134aa573d6000803e3d6000fd5b505050506134b98787876110d2565b909450925082156135ba57856001600160a01b03166340c10f19600c60009054906101000a90046001600160a01b03166001600160a01b031663c415b95c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561352157600080fd5b505afa158015613535573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355991906146c5565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401600060405180830381600087803b1580156135a157600080fd5b505af11580156135b5573d6000803e3d6000fd5b505050505b6040516340c10f1960e01b8152336004820152602481018590526001600160a01b038716906340c10f1990604401600060405180830381600087803b15801561360257600080fd5b505af1158015613616573d6000803e3d6000fd5b505060408051888152602081018890529081018690526001600160a01b03808a1693508a16915033907fafd74f009c0ff7627726f24b568ee5529cd297f6a7a1e43ec363443a13a584209060600160405180910390a45050600180559094909350915050565b600c5460408051637556d1c160e11b815290516000926001600160a01b03169163eaada382916004808301926020929190829003018186803b158015612bf557600080fd5b600354600090600160a81b900460ff16806113745750600c60009054906101000a90046001600160a01b03166001600160a01b031663ecf3a3f96040518163ffffffff1660e01b815260040160206040518083038186803b158015611ea857600080fd5b6002546001600160a01b0316331461375057604051634b98449160e11b815260040160405180910390fd5b670de0b6b3a764000081111561377957604051633c2c00b560e21b815260040160405180910390fd5b600b548181141561379d57604051630333a68160e41b815260040160405180910390fd5b60408051828152602081018490527f6d8ed4ad9ba67058e16e32fc3c8da2e3358da6cd1599e0e0fb2630d0a19fd49c910160405180910390a150600b55565b6003546001600160a01b03163381146138085760405163038cdbad60e31b815260040160405180910390fd5b6002546040516001600160a01b038084169216907fd4459d5b8b913cab0244230fd9b1c08b6ceace7fe9230e60d0f74cbffdf849d090600090a3600280546001600160a01b039092166001600160a01b0319928316179055600380549091169055565b6000611d81600e83613a76565b6060611374600e613a5c565b61388c6136c1565b156138aa57604051631b0e923f60e11b815260040160405180910390fd5b6002546001600160a01b031633146138d557604051634b98449160e11b815260040160405180910390fd5b6003805461ffff60a01b191661010160a01b17905560405133907f28b4c24cb1012c094cd2f59f98e89d791973295f8fda6eaa118022d6d318960a90600090a2565b61391f6136c1565b61393c57604051636e2cff4560e01b815260040160405180910390fd5b6002546001600160a01b0316331461396757604051634b98449160e11b815260040160405180910390fd5b6003805460ff60a81b1916905560405133907fece7583a70a505ef0e36d4dec768f5ae597713e09c26011022599ee01abdabfc90600090a2565b6001600160a01b03163b151590565b6000816139be6002826147d0565b6139d0670de0b6b3a7640000866147f2565b6139da9190614706565b612aa991906147d0565b60008215806139f1575081155b156139fe57506000611d81565b670de0b6b3a7640000613a126002826147d0565b6139d084866147f2565b6001600160a01b038116600090815260208390526040812054612aa9565b6000613a47848484613d5d565b949350505050565b6000613a47848484613da4565b60606000612aa983613f51565b6000613a47848484613fad565b6001600160a01b03811660009081526001830160205260408120541515612aa9565b6000612aa9836001600160a01b03841661403b565b6002546001600160a01b03163314613ad857604051634b98449160e11b815260040160405180910390fd5b565b80471015613b2a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401611618565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613b77576040519150601f19603f3d011682016040523d82523d6000602084013e613b7c565b606091505b5050905080611f005760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401611618565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611f0090849061408a565b6000612aa9836001600160a01b03841661415c565b6000611d81825490565b60606000613a47848461424f565b60008054610100900460ff1615613cb9578160ff166001148015613c955750303b155b613cb15760405162461bcd60e51b815260040161161890614811565b506000919050565b60005460ff808416911610613ce05760405162461bcd60e51b815260040161161890614811565b506000805460ff191660ff92909216919091179055600190565b919050565b600054610100900460ff16613d265760405162461bcd60e51b81526004016116189061485f565b613ad86142c4565b600054610100900460ff16613d555760405162461bcd60e51b81526004016116189061485f565b613ad86142f1565b6001600160a01b0382166000908152602084905260408120805483908110613d8757613d876148aa565b6000918252602090912001546001600160a01b0316949350505050565b6001600160a01b03808316600090815260208581526040808320938516835260019093019052908120548015613f47576000613de16001836146ae565b6001600160a01b03861660009081526020889052604081205491925090613e0a906001906146ae565b9050818114613ec6576001600160a01b0386166000908152602088905260408120805483908110613e3d57613e3d6148aa565b60009182526020808320909101546001600160a01b038a81168452918b90526040909220805491909216925082919085908110613e7c57613e7c6148aa565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905589831682528a8152604080832094909316825260019390930190925290208390555b6001600160a01b0386166000908152602088905260409020805480613eed57613eed6148c0565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038881168352898252604080842091891684526001918201909252908220919091559350612aa992505050565b6000915050612aa9565b606081600001805480602002602001604051908101604052809291908181526020018280548015613fa157602002820191906000526020600020905b815481526020019060010190808311613f8d575b50505050509050919050565b6001600160a01b038083166000908152602085815260408083209385168352600190930190529081205461403357506001600160a01b0382811660009081526020858152604080832080546001808201835582865284862090910180546001600160a01b0319169688169687179055815495855290810190925290912091909155612aa9565b506000612aa9565b600081815260018301602052604081205461408257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611d81565b506000611d81565b60006140df826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661435a9092919063ffffffff16565b805190915015611f0057808060200190518101906140fd91906147ae565b611f005760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611618565b600081815260018301602052604081205480156142455760006141806001836146ae565b8554909150600090614194906001906146ae565b90508181146141f95760008660000182815481106141b4576141b46148aa565b90600052602060002001549050808760000184815481106141d7576141d76148aa565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061420a5761420a6148c0565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611d81565b6000915050611d81565b6001600160a01b038116600090815260208381526040918290208054835181840281018401909452808452606093928301828280156142b757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614299575b5050505050905092915050565b600054610100900460ff166142eb5760405162461bcd60e51b81526004016116189061485f565b60018055565b600054610100900460ff166143185760405162461bcd60e51b81526004016116189061485f565b600280546001600160a01b031916339081179091556040516000907fd4459d5b8b913cab0244230fd9b1c08b6ceace7fe9230e60d0f74cbffdf849d0908290a3565b6060613a478484600085856001600160a01b0385163b6143bc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611618565b600080866001600160a01b031685876040516143d891906148d6565b60006040518083038185875af1925050503d8060008114614415576040519150601f19603f3d011682016040523d82523d6000602084013e61441a565b606091505b509150915061442a828286614435565b979650505050505050565b60608315614444575081612aa9565b8251156144545782518084602001fd5b8160405162461bcd60e51b8152600401611618919061464c565b6001600160a01b03811681146110cf57600080fd5b60006020828403121561449557600080fd5b8135612aa98161446e565b6000602082840312156144b257600080fd5b5035919050565b6000806000606084860312156144ce57600080fd5b83356144d98161446e565b925060208401356144e98161446e565b929592945050506040919091013590565b6020808252825182820181905260009190848201906040850190845b8181101561453b5783516001600160a01b031683529284019291840191600101614516565b50909695505050505050565b60008060006060848603121561455c57600080fd5b83356145678161446e565b925060208401359150604084013561457e8161446e565b809150509250925092565b6000806000806080858703121561459f57600080fd5b84356145aa8161446e565b935060208501356145ba8161446e565b92506040850135915060608501356145d18161446e565b939692955090935050565b6000806000606084860312156145f157600080fd5b83356145fc8161446e565b9250602084013561460c8161446e565b9150604084013561457e8161446e565b60005b8381101561463757818101518382015260200161461f565b83811115614646576000848401525b50505050565b602081526000825180602084015261466b81604085016020870161461c565b601f01601f19169190910160400192915050565b60006020828403121561469157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156146c0576146c0614698565b500390565b6000602082840312156146d757600080fd5b8151612aa98161446e565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000821982111561471957614719614698565b500190565b600060001982141561473257614732614698565b5060010190565b80516001600160801b0381168114613cfa57600080fd5b6000806040838503121561476357600080fd5b61476c83614739565b915061477a60208401614739565b90509250929050565b60006001600160801b038083168185168083038211156147a5576147a5614698565b01949350505050565b6000602082840312156147c057600080fd5b81518015158114612aa957600080fd5b6000826147ed57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561480c5761480c614698565b500290565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600082516148e881846020870161461c565b919091019291505056fea26469706673582212205ab78b750d90fcb379f22a277fb3b982a66919f2236618f9d242111151f7332564736f6c63430008090033496e697469616c697a61626c653a20636f6e747261637420697320616c726561