0 txs
0 calls
constructor
constructor()
functions
assetsWithERC20Collateral
viewfunction assetsWithERC20Collateral(address market, address owner) view returns (address[4] tokens, uint256[4] balances, address gtAddr, uint256[] gtIds)
getAllLoanPosition
viewfunction getAllLoanPosition(address market, address owner) view returns (tuple[])
getAllLoanPositionV2
viewfunction getAllLoanPositionV2(address market) view returns (tuple[])
getOrderState
viewfunction getOrderState(address order) view returns (tuple orderState)
getPoolUnclaimedRewards
viewfunction getPoolUnclaimedRewards(address[] pools) view returns (address[] asset, uint256[] amount)
getPositionDetail
viewfunction getPositionDetail(address market, address owner) view returns (tuple position)
getPositionDetails
viewfunction getPositionDetails(address[] market, address owner) view returns (tuple[])
getVaultBalance
viewfunction getVaultBalance(address user, address[] vaults, address oracleAggregator) view returns (tuple[])
getVaultInfo
viewfunction getVaultInfo(address vault) view returns (tuple vaultInfo)
getVaultOrdersInfo
viewfunction getVaultOrdersInfo(address vault) view returns (tuple[])
getVaultPendingMarkets
viewfunction getVaultPendingMarkets(address vault, address[] markets) view returns (tuple[])
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
previewDealBadDebt
viewfunction previewDealBadDebt(address vault, address collateral, address user) view returns (uint256 maxRedeem, uint256 totalBadDebt, uint256 totalCollateral)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address admin)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100c257306080525f5160206144cb5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161440490816100c78239608051818181612d3a0152612e090152f35b6001600160401b0319166001600160401b039081175f5160206144cb5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630fc7a5f2146132c0578063255f187214612fff57806334c2cb2e14612fbe5780634f1ef28614612d8e57806352d1902d14612d2857806357dce29814612b7557806358d2b52414612625578063715018a6146125a857806379ba50971461255a57806389c3584d146122665780638da5cb5b1461223257806390229af71461139d57806390711dc2146112135780639aa6ac2a14610df9578063ad3cb1cc14610db2578063b4c83feb14610b0c578063c4d66de81461099d578063cede792d14610513578063d8d26d96146101bc578063e30c3978146101885763f2fde38b14610100575f80fd5b3461018457602036600319011261018457610119613314565b61012161423a565b5f5160206143af5f395f51905f5280546001600160a01b0319166001600160a01b039283169081179091555f51602061434f5f395f51905f52549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610184575f366003190112610184575f5160206143af5f395f51905f52546040516001600160a01b039091168152602090f35b34610184576020366003190112610184576004356001600160a01b03811690819003610184576101ea613f9d565b6040516380f5560560e01b8152602081600481865afa9081156103d9575f916104ce575b50604051634eb1c24560e11b8152929060a090849060049082906001600160a01b03165afa9283156103d9575f93610498575b5060405163be4319b960e01b8152905f82600481845afa9182156103d9575f926103e4575b50604080516304bad95160e41b815291829060049082905afa9081156103d9575f905f9261039f575b5060208301948551806102e6575b6102e2866080878a8888604086015260608501526040820151838501525160a0840152805160c0840152015160e082015260405191829160208352602083019061358e565b0390f35b6040516341a4eb5f60e11b81526004810191909152905f90829060249082906001600160a01b03165afa90815f915f93610376575b5061034057505093608092916102e2955f86525f60208701525b91958193945061029d565b9392909591602087519781808201998a9201010312610184576001600160801b036080956102e298518852166020870152610335565b90925061039591503d805f833e61038d818361345d565b810190613945565b915090918861031b565b9150506040813d6040116103d1575b816103bb6040938361345d565b810103126101845760208151910151908561028f565b3d91506103ae565b6040513d5f823e3d90fd5b9091503d805f833e6103f6818361345d565b810190602081830312610184578051906001600160401b0382116101845701610140818303126101845760405161042c81613427565b81516001600160401b03811161018457836104489184016140a7565b815260208281015190820152604080830151908201526060820151916001600160a01b038316830361018457600493608061048b92604095606086015201614106565b6080820152929150610266565b6104bb91935060a03d60a0116104c7575b6104b3818361345d565b810190613839565b50509150509183610241565b503d6104a9565b90506020813d60201161050b575b816104e96020938361345d565b810103126101845751916001600160a01b0383168303610184579160a061020e565b3d91506104dc565b34610184576020366003190112610184576004356001600160401b038111610184573660238201121561018457806004013561054e8161352c565b9161055c604051938461345d565b8183526024602084019260051b8201019036821161018457602401915b81831061097d578361058b8151613f16565b906105968151613f16565b5f5b8251811015610953576001600160a01b036105b38285613997565b5116906040516338d52e0f60e01b8152602081600481865afa9081156103d9575f9161091a575b506105e58287613997565b6001600160a01b0390911690526040516278744560e21b815291602083600481845afa9283156103d9575f936108e7575b50602460206001600160a01b0361062d858a613997565b5116604051928380926370a0823160e01b82528660048301525afa9081156103d9575f916108b6575b50604051635060f8af60e11b815281602082600481875afa5f928161087b575b506107fc575050604051637700336760e01b8152602081600481865afa9081156103d9575f916107bb575b506040516370a0823160e01b815260048101939093526001600160a01b031691602081602481865afa80156103d9575f90610789575b602091506024604051809581936303d1689d60e11b835260048301525afa9081156103d9575f91610754575b61070d925061417b565b915b80831115610749578203918211610735576001915b61072e8285613997565b5201610598565b634e487b7160e01b5f52601160045260245ffd5b50600191505f610724565b90506020823d8211610781575b8161076e6020938361345d565b810103126101845761070d915190610703565b3d9150610761565b506020813d82116107b3575b816107a26020938361345d565b8101031261018457602090516106d7565b3d9150610795565b90506020813d82116107f4575b816107d56020938361345d565b8101031261018457516001600160a01b038116810361018457886106a1565b3d91506107c8565b6040516370a0823160e01b815260048101949094529150602090839060249082906001600160a01b03165afa9081156103d9575f91610846575b610840925061417b565b9161070f565b90506020823d8211610873575b816108606020938361345d565b8101031261018457610840915190610836565b3d9150610853565b9092506020813d82116108ae575b816108966020938361345d565b81010312610184576108a790613825565b918a610676565b3d9150610889565b90506020813d82116108df575b816108d06020938361345d565b81010312610184575187610656565b3d91506108c3565b9092506020813d8211610912575b816109026020938361345d565b8101031261018457519186610616565b3d91506108f5565b90506020813d821161094b575b816109346020938361345d565b810103126101845761094590613825565b866105da565b3d9150610927565b61096f846102e2846040519384936040855260408501906134f0565b908382036020850152613499565b82356001600160a01b038116810361018457815260209283019201610579565b34610184576020366003190112610184576109b6613314565b5f51602061438f5f395f51905f52549060ff8260401c1615916001600160401b03811680159081610b04575b6001149081610afa575b159081610af1575b50610ae25767ffffffffffffffff1981166001175f51602061438f5f395f51905f525582610ab6575b50610a266142c5565b610a2e6142c5565b6001600160a01b03811615610aa357610a469061425a565b610a4c57005b68ff0000000000000000195f51602061438f5f395f51905f5254165f51602061438f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b631e4fbdf760e01b5f525f60045260245ffd5b68ffffffffffffffffff191668010000000000000001175f51602061438f5f395f51905f525582610a1d565b63f92ee8a960e01b5f5260045ffd5b905015846109f4565b303b1591506109ec565b8491506109e2565b34610184576020366003190112610184576001600160a01b03610b2d613314565b16604051630a17b31360e41b8152602081600481855afa9081156103d9575f91610d80575b50610b5c8161352c565b91610b6a604051938461345d565b818352601f19610b798361352c565b015f5b818110610d695750505f5b828110610bf557836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210610bc657505050500390f35b91936001919395506020610be58192603f198a8203018652885161358e565b9601920192018594939192610bb7565b60405163f7d1852160e01b81526004810182905290602082602481865afa9182156103d9575f92610d2e575b50604051636c6936cb60e11b81526001600160a01b0390921660048301525f82602481305afa80156103d9575f90610c74575b60019250610c628287613997565b52610c6d8186613997565b5001610b87565b503d805f843e610c84818461345d565b820191602081840312610184578051906001600160401b03821161018457016101a0818403126101845760405190610cbb8261340b565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151936001600160401b0385116101845760e082610d1983600198610d2496016140a7565b60c086015201614106565b60e0820152610c54565b9091506020813d8211610d61575b81610d496020938361345d565b8101031261018457610d5a90613825565b9085610c21565b3d9150610d3c565b602090610d74613f9d565b82828801015201610b7c565b90506020813d602011610daa575b81610d9b6020938361345d565b81010312610184575182610b52565b3d9150610d8e565b34610184575f366003190112610184576102e2604051610dd360408261345d565b60058152640352e302e360dc1b60208201526040519182916020835260208301906134cc565b3461018457606036600319011261018457610e12613314565b602435906001600160401b038211610184573660238301121561018457816004013591610e3e8361352c565b92610e4c604051948561345d565b8084526024602085019160051b8301019136831161018457602401905b8282106111fb575050506044356001600160a01b03811692908390036101845790815190610e968261352c565b91610ea4604051938461345d565b808352610eb3601f199161352c565b015f5b8181106111de5750506001600160a01b03165f5b835181101561117a5760049060206001600160a01b03610eea8388613997565b5116604051938480926338d52e0f60e01b82525afa9182156103d9575f9261113f575b50602460206001600160a01b03610f248489613997565b5116604051928380926370a0823160e01b82528860048301525afa9081156103d9575f9161110e575b5080610f598387613997565b515260206001600160a01b03610f6f8489613997565b5116916024604051809481936303d1689d60e11b835260048301525afa9081156103d9575f916110dd575b506020610fa78387613997565b510152604080516341976e0960e01b81526001600160a01b039093166004840181905290836024818a5afa5f938161109c575b50610ffb5750600191505f6040610ff18387613997565b5101525b01610eca565b60206004916040519283809263313ce56760e01b82525afa9081156103d9575f9161105b575b50611047906001936110416020611038868a613997565b51015192613f8c565b91614188565b60406110538387613997565b510152610ff5565b90506020813d8211611094575b816110756020938361345d565b810103126101845760019261108c61104792613f7e565b915092611021565b3d9150611068565b9093506040813d82116110d5575b816110b76040938361345d565b81010312610184576110cd602082519201613f7e565b509288610fda565b3d91506110aa565b90506020813d8211611106575b816110f76020938361345d565b81010312610184575187610f9a565b3d91506110ea565b90506020813d8211611137575b816111286020938361345d565b81010312610184575187610f4d565b3d915061111b565b9091506020813d8211611172575b8161115a6020938361345d565b810103126101845761116b90613825565b9086610f0d565b3d915061114d565b826040518091602082016020835281518091526020604084019201905f5b8181106111a6575050500390f35b9193509160206060826111d060019488516040809180518452602081015160208501520151910152565b019401910191849392611198565b6020906111ec95939561388e565b82828701015201939193610eb6565b602080916112088461332a565b815201910190610e69565b34610184576040366003190112610184576004356001600160401b03811161018457366023820112156101845780600401359061124f8261352c565b9161125d604051938461345d565b8083526024602084019160051b8301019136831161018457602401905b828210611385578361128a61333e565b908051916112978361352c565b926112a5604051948561345d565b8084526112b4601f199161352c565b015f5b81811061136e5750505f5b8251811015611307576001906112eb836001600160a01b036112e48488613997565b51166139f7565b6112f58287613997565b526113008186613997565b50016112c2565b836040518091602082016020835281518091526040830190602060408260051b8601019301915f905b82821061133f57505050500390f35b9193600191939550602061135e8192603f198a82030186528851613354565b9601920192018594939192611330565b6020906113796139cd565b828288010152016112b7565b602080916113928461332a565b81520191019061127a565b34610184576020366003190112610184576113b6613314565b6040519061030082018281106001600160401b0382111761221e5760405260608252606060208301525f60408301525f60608301525f60808301525f60a08301525f60c08301525f60e08301525f6101008301525f6101208301525f6101408301525f6101608301525f6101808301525f6101a08301525f6101c08301525f6101e083015260606102008301526060610220830152604051611457816133f0565b5f81525f6020820152610240830152604051611472816133f0565b5f81525f602082015261026083015260405161148d816133f0565b5f81525f60208201526102808301525f6102a08301525f6102c08301525f6102e08301526040516338d52e0f60e01b815260208160048160018060a01b0386165afa9081156103d9575f916121e4575b506040516306fdde0360e01b81525f816004816001600160a01b0387165afa9081156103d9575f916121ca575b5083526040516395d89b4160e01b81525f816004816001600160a01b0387165afa9081156103d9575f916121a8575b50602084015260018060a01b03811660408401526040516278744560e21b815260208160048160018060a01b0387165afa9081156103d9575f91612176575b5060608401526040516318160ddd60e01b81526020816004816001600160a01b0387165afa9081156103d9575f91612144575b5060808401526040516357ded9c960e01b81526020816004816001600160a01b0387165afa9081156103d9575f91612112575b5060a0840152604051630229549960e51b81526020816004816001600160a01b0387165afa9081156103d9575f916120d8575b506001600160a01b0390811660c085015260405163e66f53b760e01b8152906020908290600490829087165afa9081156103d9575f9161209e575b506001600160a01b0390811660e08501526040516334cc866d60e21b8152906020908290600490829087165afa9081156103d9575f9161206c575b5061010084015260405163402d267d60e01b81525f60048201526020816024816001600160a01b0387165afa9081156103d9575f91612039575b506101208401526040516370a0823160e01b81526001600160a01b038381166004830152909160209183916024918391165afa9081156103d9575f91612007575b506101608301526040516369c4212560e01b81526020816004816001600160a01b0386165afa9081156103d9575f91611fd5575b5061018083015260405163594d16f760e01b81526020816004816001600160a01b0386165afa9081156103d9575f91611fa3575b506101a083015260405163e5c6c88d60e01b81526020816004816001600160a01b0386165afa9081156103d9575f91611f71575b506101c08301526040516303feff6960e21b81526020816004816001600160a01b0386165afa80156103d9575f90611f31575b6001600160401b0316610140840152506040516343bc43c160e11b81526020816004816001600160a01b0386165afa9081156103d9575f91611eff575b506101e0830152604051630a17b31360e41b81526020816004816001600160a01b0386165afa9081156103d9575f91611ecd575b5061184c81613f16565b6102008401525f5b818110611e3d5750506040516333f91ebb60e01b81526020816004816001600160a01b0386165afa9081156103d9575f91611e0b575b5061189481613f16565b6102208401525f5b818110611d7b57505060408051633b1618dd60e11b815290816004816001600160a01b0386165afa9081156103d9575f91611d22575b5061024083015260408051637cc4d9a160e01b815290816004816001600160a01b0386165afa9081156103d9575f91611d03575b5061026083015260408051633f38db4160e01b815290816004816001600160a01b0386165afa9081156103d9575f91611cd4575b5061028083015260405163631ebadb60e11b81525f60048201526020816024816001600160a01b0386165afa9081156103d9575f91611ca2575b506102a083015260405163313ce56760e01b81526020816004816001600160a01b0386165afa80156103d9575f90611c67575b6119b19150613f8c565b6040516363737ac960e11b815260048101919091526020816024816001600160a01b0386165afa9081156103d9575f91611c34575b506102c0830152604051635c975abb60e01b815290602090829060049082906001600160a01b03165afa9081156103d9575f91611bfa575b5015156102e08201526040518091602082526102e0611b58611b40611a6a611a54855161036060208901526103808801906134cc565b6020860151878203601f190160408901526134cc565b60018060a01b03604086015116606087015260608501516080870152608085015160a087015260a085015160c087015260018060a01b0360c08601511660e087015260018060a01b0360e0860151166101008701526101008501516101208701526101208501516101408701526001600160401b03610140860151166101608701526101608501516101808701526101808501516101a08701526101a08501516101c08701526101c08501516101e08701526101e0850151610200870152610200850151601f19878303016102208801526134f0565b610220840151858203601f19016102408701526134f0565b61024083015180516001600160a01b0316610260868101919091526020918201516001600160401b039081166102808801529085015180516001600160c01b03166102a088015290910151166102c08501529161028081015180516001600160c01b03168584019081526020918201516001600160401b03169101526102a08101516103208501526102c0810151610340850152015115156103608301520390f35b90506020813d602011611c2c575b81611c156020938361345d565b8101031261018457611c2690613e79565b82611a1e565b3d9150611c08565b90506020813d602011611c5f575b81611c4f6020938361345d565b81010312610184575160046119e6565b3d9150611c42565b506020813d602011611c9a575b81611c816020938361345d565b8101031261018457611c956119b191613f7e565b6119a7565b3d9150611c74565b90506020813d602011611ccc575b81611cbd6020938361345d565b81010312610184575183611974565b3d9150611cb0565b611cf6915060403d604011611cfc575b611cee818361345d565b810190613e28565b8361193a565b503d611ce4565b611d1c915060403d604011611cfc57611cee818361345d565b83611906565b90506040813d604011611d73575b81611d3d6040938361345d565b8101031261018457611d68602060405192611d57846133f0565b611d6081613825565b845201613e14565b6020820152836118d2565b3d9150611d30565b6040516362518ddf60e01b815260048101829052906020826024816001600160a01b0388165afa80156103d9575f90611dd2575b60019250611dc282610220880151613997565b90838060a01b031690520161189c565b506020823d8211611e03575b81611deb6020938361345d565b8101031261018457611dfe600192613825565b611daf565b3d9150611dde565b90506020813d602011611e35575b81611e266020938361345d565b8101031261018457518361188a565b3d9150611e19565b60405163f7d1852160e01b815260048101829052906020826024816001600160a01b0388165afa80156103d9575f90611e94575b60019250611e8482610200880151613997565b90838060a01b0316905201611854565b506020823d8211611ec5575b81611ead6020938361345d565b8101031261018457611ec0600192613825565b611e71565b3d9150611ea0565b90506020813d602011611ef7575b81611ee86020938361345d565b81010312610184575183611842565b3d9150611edb565b90506020813d602011611f29575b81611f1a6020938361345d565b8101031261018457518361180e565b3d9150611f0d565b506020813d602011611f69575b81611f4b6020938361345d565b8101031261018457611f646001600160401b0391613e14565b6117d1565b3d9150611f3e565b90506020813d602011611f9b575b81611f8c6020938361345d565b8101031261018457518361179e565b3d9150611f7f565b90506020813d602011611fcd575b81611fbe6020938361345d565b8101031261018457518361176a565b3d9150611fb1565b90506020813d602011611fff575b81611ff06020938361345d565b81010312610184575183611736565b3d9150611fe3565b90506020813d602011612031575b816120226020938361345d565b81010312610184575183611702565b3d9150612015565b90506020813d602011612064575b816120546020938361345d565b81010312610184575160246116c1565b3d9150612047565b90506020813d602011612096575b816120876020938361345d565b81010312610184575184611687565b3d915061207a565b90506020813d6020116120d0575b816120b96020938361345d565b81010312610184576120ca90613825565b8461164c565b3d91506120ac565b90506020813d60201161210a575b816120f36020938361345d565b810103126101845761210490613825565b84611611565b3d91506120e6565b90506020813d60201161213c575b8161212d6020938361345d565b810103126101845751846115de565b3d9150612120565b90506020813d60201161216e575b8161215f6020938361345d565b810103126101845751846115ab565b3d9150612152565b90506020813d6020116121a0575b816121916020938361345d565b81010312610184575184611578565b3d9150612184565b6121c491503d805f833e6121bc818361345d565b810190613f48565b84611539565b6121de91503d805f833e6121bc818361345d565b8461150a565b90506020813d602011612216575b816121ff6020938361345d565b810103126101845761221090613825565b836114dd565b3d91506121f2565b634e487b7160e01b5f52604160045260245ffd5b34610184575f366003190112610184575f51602061434f5f395f51905f52546040516001600160a01b039091168152602090f35b346101845760403660031901126101845761227f613314565b61228761333e565b60046080926040519361229a818661345d565b8036863760a0604051926122ae838561345d565b82368537604051634eb1c24560e11b815294859182905f196001861b01165afa80156103d9575f935f5f955f925f9461252e575b506001600160a01b0390811689529081166020890152908116604088015290811660608701528416925f5b600481106124a857506040516370a0823160e01b815260048101949094526001600160a01b031692602081602481875afa9081156103d9575f91612476575b5061235c81959395949294613f16565b925f5b8281106123e957505060405195869491505f855b600482106123c6575050508301935f5b600481106123ad5750508293506101006102e2930152610140610120840152610140830190613499565b8151865260209586019587955090910190600101612383565b82516001600160a01b031681528896506020928301926001929092019101612373565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052949693959394906020826044818a5afa80156103d9575f90612444575b60019250612437828a613997565b520195939594929461235f565b506020823d821161246e575b8161245d6020938361345d565b810103126101845760019151612429565b3d9150612450565b90506020813d6020116124a0575b816124916020938361345d565b8101031261018457518661234c565b3d9150612484565b60249060206001600160a01b036124bf838b613f05565b5116604051938480926370a0823160e01b82528a60048301525afa80156103d9575f906124fc575b600192506124f58287613f05565b520161230d565b506020823d8211612526575b816125156020938361345d565b8101031261018457600191516124e7565b3d9150612508565b935050505061254d91935060a03d60a0116104c7576104b3818361345d565b91959391929091896122e2565b34610184575f366003190112610184575f5160206143af5f395f51905f5254336001600160a01b0390911603612595576125933361425a565b005b63118cdaa760e01b5f523360045260245ffd5b34610184575f366003190112610184576125c061423a565b5f5160206143af5f395f51905f5280546001600160a01b03199081169091555f51602061434f5f395f51905f52805491821690555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461018457602036600319011261018457600460a06001600160a01b0361264a613314565b1660405192838092634eb1c24560e11b82525afa9081156103d9575f91612b51575b50604051633bbd5ddf60e21b81526001600160a01b03919091169061012081600481855afa9081156103d9575f91612a41575b506040516318160ddd60e01b815290602082600481865afa9182156103d9575f92612a0d575b506126cf82613e86565b925f915f5b8481106127bf5785846126e681613e86565b915f5b82811061279557836040518091602082016020835281518091526020604084019201905f5b81811061271c575050500390f35b9193509160206101006001926001600160801b0360e08851868060a01b0381511684528581015186850152604081015160408501526060810151606085015282608082015116608085015260a0810151151560a085015260c0810151151560c085015201511660e082015201940191019184939261270e565b806127a260019284613997565b516127ad8287613997565b526127b88186613997565b50016126e9565b604051634f6ccce760e01b815260048101829052602081602481875afa9081156103d9575f916129dc575b506040516341a4eb5f60e11b8152600481018290525f81602481885afa5f9189825f925f946129b8575b506128285750505050506001905b016126d4565b908460206128428b6001600160801b03959c98999c613997565b510152166060612852858c613997565b5101526020815191818082019384920101031261018457516040612876848b613997565b5101526128838289613997565b516001600160a01b0390911690526040516350ef5c3560e01b81526004810192909252606082602481875afa80925f90895f915f94612951575b5090849392916128d9956001976128df575b50505050506139bf565b93612822565b6128f36080916001600160801b0393613997565b5101911680915263ffffffff602060a0890151015116111560a0612917858d613997565b51015260c0612926848c613997565b510190151590526001600160801b0360e0612941848c613997565b5101911690528880808a846128cf565b9493505050506060823d82116129b0575b8161296f6060938361345d565b8101031261018457600192826129876128d994613e79565b8a846129a1604061299a602087016138fb565b95016138fb565b949790965093945090926128bd565b3d9150612962565b91945092506129d191503d805f833e61038d818361345d565b91939091928c612814565b90506020813d8211612a05575b816129f66020938361345d565b810103126101845751876127ea565b3d91506129e9565b9091506020813d602011612a39575b81612a296020938361345d565b81010312610184575190836126c5565b3d9150612a1c565b8091506101203d8111612b4a575b612a59818361345d565b8101039061012082126101845760405191612a73836133d5565b612a7c82613825565b83526020820151906001600160a01b0382168203610184576080916020850152612aa860408401613825565b6040850152612ab960608401613825565b6060850152612ac9828401613e14565b84830152609f1901126101845760405190608082018281106001600160401b0382111761221e5760405260a08101516001600160a01b038116810361018457612b3a91610100918452612b1e60c08201613e68565b6020850152612b2f60e08201613e68565b604085015201613e79565b606082015260a08201528261269f565b503d612a4f565b612b6a915060a03d60a0116104c7576104b3818361345d565b50509150508161266c565b3461018457604036600319011261018457612b8e613314565b602435906001600160401b03821161018457366023830112156101845781600401356001600160401b038111610184573660248260051b850101116101845790612bd78261352c565b92612be5604051948561345d565b828452601f19612bf48461352c565b015f5b818110612cfe5750506001600160a01b03909116905f5b83811015612c9b576024600582901b830101356001600160a01b0381169190829003610184576040519163460bf7e160e01b83526004830152604082602481875afa80156103d9576001925f91612c7d575b50612c6b8288613997565b52612c768187613997565b5001612c0e565b612c95915060403d8111611cfc57611cee818361345d565b87612c60565b846040518091602082016020835281518091526020604084019201905f5b818110612cc7575050500390f35b825180516001600160c01b031685526020908101516001600160401b03168186015286955060409094019390920191600101612cb9565b60405193949360209190612d11816133f0565b5f81525f8382015282828901015201939293612bf7565b34610184575f366003190112610184577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612d7f5760206040515f51602061436f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261018457612da2613314565b602435906001600160401b038211610184573660238301121561018457816004013590612dce8261347e565b91612ddc604051938461345d565b8083526020830193366024838301011161018457815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612f9c575b50612d7f57612e4161423a565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181612f68575b50612e835784634c9c8ce360e01b5f5260045260245ffd5b805f51602061436f5f395f51905f52869203612f565750823b15612f44575f51602061436f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115612f2b575f8091612593945190845af43d15612f23573d91612f078361347e565b92612f15604051948561345d565b83523d5f602085013e6142f0565b6060916142f0565b50505034612f3557005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011612f94575b81612f846020938361345d565b8101031261018457519086612e6b565b3d9150612f77565b5f51602061436f5f395f51905f52546001600160a01b03161415905084612e34565b34610184576040366003190112610184576102e2612feb612fdd613314565b612fe561333e565b906139f7565b604051918291602083526020830190613354565b3461018457604036600319011261018457613018613314565b600460a061302461333e565b9260405192838092634eb1c24560e11b8252600180861b03165afa9081156103d9575f9161329c575b506040516370a0823160e01b81526001600160a01b038381166004830152919091169190602081602481865afa9081156103d9575f9161326a575b50613092816138ac565b925f925f5b8381106131415785856130a9816138ac565b915f5b82811061311757836040518091602082016020835281518091526020604084019201905f5b8181106130df575050500390f35b91935091602060608261310960019488516040809180518452602081015160208501520151910152565b0194019101918493926130d1565b8061312460019284613997565b5161312f8287613997565b5261313a8186613997565b50016130ac565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052602081604481875afa9081156103d9575f91613239575b506040516341a4eb5f60e11b8152600481018290525f81602481885afa91825f925f94613216575b506131b4575b505050600101613097565b906001600160801b03916131cb898b9a969a613997565b51521660406131da848a613997565b510152602081519181808201938492010103126101845760019161320d91516020613205838b613997565b5101526139bf565b949087806131a9565b90935061322e9192503d805f833e61038d818361345d565b92915091928a6131a3565b90506020813d8211613262575b816132536020938361345d565b8101031261018457518761317b565b3d9150613246565b90506020813d602011613294575b816132856020938361345d565b81010312610184575183613088565b3d9150613278565b6132b5915060a03d60a0116104c7576104b3818361345d565b50509150508261304d565b34610184576060366003190112610184576132d9613314565b6132e161333e565b906044356001600160a01b0381168103610184576060926133019261365a565b9060405192835260208301526040820152f35b600435906001600160a01b038216820361018457565b35906001600160a01b038216820361018457565b602435906001600160a01b038216820361018457565b602060c0608060a0850193805186528381015184870152604081015160408701526060810151606087015201519360a060808201528451809452019201905f5b8181106133a15750505090565b90919260206060826133ca60019488516040809180518452602081015160208501520151910152565b019401929101613394565b60c081019081106001600160401b0382111761221e57604052565b604081019081106001600160401b0382111761221e57604052565b61010081019081106001600160401b0382111761221e57604052565b60a081019081106001600160401b0382111761221e57604052565b606081019081106001600160401b0382111761221e57604052565b90601f801991011681019081106001600160401b0382111761221e57604052565b6001600160401b03811161221e57601f01601f191660200190565b90602080835192838152019201905f5b8181106134b65750505090565b82518452602093840193909201916001016134a9565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b81811061350d5750505090565b82516001600160a01b0316845260209384019390920191600101613500565b6001600160401b03811161221e5760051b60200190565b90602080835192838152019201905f5b8181106135605750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091613553565b90815181526020820151602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015261018063ffffffff60a060e061361160c08701516101a060c088015260206135fb825160406101a08b01526101e08a0190613543565b91015187820361019f19016101c0890152613543565b9501518281511660e08601528260208201511661010086015282604082015116610120860152826060820151166101408601528260808201511661016086015201511691015290565b604051631863e5a560e21b81526001600160a01b0392831660048201819052909392909116602084602481845afa9384156103d9575f946137f1575b5083156137e5576020602492604051938480926370a0823160e01b82528560048301525afa9182156103d9575f926137b1575b506040516370a0823160e01b81526001600160a01b0390931660048401529091829190602081602481855afa80156103d9575f9061377e575b602091506024604051809481936303d1689d60e11b835260048301525afa80156103d95784915f91613747575b50918282806137449510911802821890614188565b92565b9150506020813d602011613776575b816137636020938361345d565b810103126101845751839061374461372f565b3d9150613756565b506020813d6020116137a9575b816137986020938361345d565b810103126101845760209051613702565b3d915061378b565b9091506020813d6020116137dd575b816137cd6020938361345d565b810103126101845751905f6136c9565b3d91506137c0565b505050505f905f905f90565b9093506020813d60201161381d575b8161380d6020938361345d565b810103126101845751925f613696565b3d9150613800565b51906001600160a01b038216820361018457565b908160a09103126101845761384d81613825565b9161385a60208301613825565b60408301519092906001600160a01b0381168103610184579161388b608061388460608501613825565b9301613825565b90565b6040519061389b82613442565b5f6040838281528260208201520152565b906138b68261352c565b6138c3604051918261345d565b82815280926138d4601f199161352c565b01905f5b8281106138e457505050565b6020906138ef61388e565b828285010152016138d8565b51906001600160801b038216820361018457565b92919261391b8261347e565b91613929604051938461345d565b829481845281830111610184578281602093845f96015e010152565b90916060828403126101845761395a82613825565b92613967602084016138fb565b926040810151906001600160401b03821161018457019080601f8301121561018457815161388b9260200161390f565b80518210156139ab5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b5f1981146107355760010190565b604051906139da82613427565b60606080835f81525f60208201525f60408201525f838201520152565b9190600460a0613a056139cd565b9460405192838092634eb1c24560e11b8252600180861b03165afa9081156103d9575f5f905f925f905f95613deb575b506040516370a0823160e01b81526001600160a01b03878116600483018190529660209183916024918391165afa9081156103d9575f91613db8575b5088526040516370a0823160e01b81526004810186905290602090829060249082906001600160a01b03165afa9081156103d9575f91613d85575b506020888101919091526040516370a0823160e01b81526004810186905291829060249082906001600160a01b03165afa9081156103d9575f91613d52575b50604087810191909152516370a0823160e01b81526004810184905290602090829060249082906001600160a01b03165afa9081156103d9575f91613d20575b5060608601526040516370a0823160e01b815260048101929092526001600160a01b031690602081602481855afa9081156103d9575f91613cee575b50613b71816138ac565b915f935f5b838110613bcd5750505050613b8a826138ac565b90608085019182525f5b838110613ba15750505050565b80613bc681613bb260019486613997565b51865190613bc08383613997565b52613997565b5001613b94565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052602081604481875afa9081156103d9575f91613cbd575b506040516341a4eb5f60e11b8152600481018290525f81602481885afa91825f925f94613c9a575b50613c40575b505050600101613b76565b906001600160801b0391613c578a8a9b969b613997565b5152166040613c668489613997565b5101526020815191818082019384920101031261018457600191613c9191516020613205838a613997565b95905f80613c35565b909350613cb29192503d805f833e61038d818361345d565b92915091925f613c2f565b90506020813d8211613ce6575b81613cd76020938361345d565b8101031261018457515f613c07565b3d9150613cca565b90506020813d602011613d18575b81613d096020938361345d565b8101031261018457515f613b67565b3d9150613cfc565b90506020813d602011613d4a575b81613d3b6020938361345d565b8101031261018457515f613b2b565b3d9150613d2e565b90506020813d602011613d7d575b81613d6d6020938361345d565b8101031261018457516024613aeb565b3d9150613d60565b90506020813d602011613db0575b81613da06020938361345d565b8101031261018457516024613aac565b3d9150613d93565b90506020813d602011613de3575b81613dd36020938361345d565b8101031261018457516024613a71565b3d9150613dc6565b9350505050613e09915060a03d60a0116104c7576104b3818361345d565b93919291905f613a35565b51906001600160401b038216820361018457565b908160409103126101845760405190613e40826133f0565b80516001600160c01b0381168103610184578252613e6090602001613e14565b602082015290565b519063ffffffff8216820361018457565b5190811515820361018457565b90613e908261352c565b613e9d604051918261345d565b8281528092613eae601f199161352c565b01905f5b828110613ebe57505050565b602090604051613ecd8161340b565b5f81525f838201525f60408201525f60608201525f60808201525f60a08201525f60c08201525f60e082015282828501015201613eb2565b9060048110156139ab5760051b0190565b90613f208261352c565b613f2d604051918261345d565b8281528092613f3e601f199161352c565b0190602036910137565b602081830312610184578051906001600160401b03821161018457019080601f8301121561018457815161388b9260200161390f565b519060ff8216820361018457565b60ff16604d811161073557600a0a90565b60405190613faa8261340b565b815f81525f60208201525f60408201525f60608201525f60808201525f60a0820152604051613fd8816133f0565b606081526060602082015260c082015260e060405191613ff7836133d5565b5f83525f60208401525f60408401525f60608401525f60808401525f60a08401520152565b81601f82011215610184578051906140338261352c565b92614041604051948561345d565b8284526020606081860194028301019181831161018457602001925b82841061406b575050505090565b60608483031261018457602060609160405161408681613442565b8651815282870151838201526040870151604082015281520193019261405d565b919060408382031261018457604051906140c0826133f0565b819380516001600160401b03811161018457826140de91830161401c565b83526020810151916001600160401b03831161018457602092614101920161401c565b910152565b91908260c09103126101845760405161411e816133d5565b60a061410181839561412f81613e68565b855261413d60208201613e68565b602086015261414e60408201613e68565b604086015261415f60608201613e68565b606086015261417060808201613e68565b608086015201613e68565b9190820180921161073557565b91818302915f198185099383808610950394808603951461421857848311156142005790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b505080925015614226570490565b634e487b7160e01b5f52601260045260245ffd5b5f51602061434f5f395f51905f52546001600160a01b0316330361259557565b5f5160206143af5f395f51905f5280546001600160a01b03199081169091555f51602061434f5f395f51905f5280549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b60ff5f51602061438f5f395f51905f525460401c16156142e157565b631afcd79f60e31b5f5260045ffd5b90614314575080511561430557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580614345575b614325575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561431d56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a26469706673582212207d670f98d8b75f1a0b2bb431b80465ecfad915e4a31b1306a73299a07e9a4ced64736f6c634300081d0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00