@raac/rpc 2.0.0-beta.2 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. package/dist/RPCLibrary.js +57 -23
  2. package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +2 -2
  3. package/dist/artifacts/core/governance/gauges/GaugeController.sol/GaugeController.json +8 -2
  4. package/dist/artifacts/core/governance/gauges/GaugeRewardsDistributor.sol/GaugeRewardsDistributor.json +2 -2
  5. package/dist/artifacts/core/governance/gauges/RAACGauge.sol/RAACGauge.json +2 -2
  6. package/dist/artifacts/core/governance/gauges/RWAGauge.sol/RWAGauge.json +2 -2
  7. package/dist/artifacts/core/lockers/RAACMaturityVault.sol/RAACMaturityVault.json +2 -2
  8. package/dist/artifacts/core/oracles/RAACPrimeRateOracle.sol/RAACPrimeRateOracle.json +2 -2
  9. package/dist/artifacts/core/pools/LendingPool/LendingPool.sol/LendingPool.json +62 -86
  10. package/dist/artifacts/core/pools/StabilityPool/StabilityPool.sol/StabilityPool.json +2 -2
  11. package/dist/artifacts/core/psm/PSMVault.sol/PSMVault.json +2303 -0
  12. package/dist/artifacts/core/psm/RateProvider.sol/RateProvider.json +444 -0
  13. package/dist/artifacts/core/tokens/RToken.sol/RToken.json +2 -2
  14. package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +69 -66
  15. package/dist/artifacts/zeno/Auction.sol/Auction.json +278 -120
  16. package/dist/artifacts/zeno/AuctionFactory.sol/AuctionFactory.json +31 -148
  17. package/dist/artifacts/zeno/Zeno.sol/Zeno.json +80 -45
  18. package/dist/artifacts/zeno/ZenoFactory.sol/ZenoFactory.json +11 -88
  19. package/dist/assets/getAsset.js +2 -2
  20. package/dist/assets/getSupply.js +7 -7
  21. package/dist/configs/chains/1.json +15 -0
  22. package/dist/contracts/feeCollector/claimRewardFromPool.js +2 -2
  23. package/dist/contracts/findContract.js +1 -1
  24. package/dist/contracts/getContractAddress.js +1 -2
  25. package/dist/contracts/getTokenMetadata.js +31 -0
  26. package/dist/contracts/governance/_helpers.js +1 -22
  27. package/dist/contracts/governance/distributor/claimAll.js +2 -2
  28. package/dist/contracts/governance/distributor/claimForGauge.js +2 -2
  29. package/dist/contracts/governance/distributor/deposit.js +2 -2
  30. package/dist/contracts/governance/distributor/setController.js +2 -2
  31. package/dist/contracts/governance/distributor/setLastClaimedEpoch.js +2 -2
  32. package/dist/contracts/governance/distributor/setMaxClaimBound.js +2 -2
  33. package/dist/contracts/governance/distributor/withdrawDust.js +2 -2
  34. package/dist/contracts/governance/distributor/withdrawRemovedGaugeRewards.js +2 -2
  35. package/dist/contracts/governance/gauge/claimRewardToken.js +2 -3
  36. package/dist/contracts/governance/gauge/pullRewardsFromDistributor.js +2 -2
  37. package/dist/contracts/governance/gauge/stake.js +2 -3
  38. package/dist/contracts/governance/gauge/updateUserRewards.js +2 -3
  39. package/dist/contracts/governance/gauge/withdraw.js +2 -3
  40. package/dist/contracts/governance/gaugeController/addGauge.js +2 -2
  41. package/dist/contracts/governance/gaugeController/batchVote.js +2 -2
  42. package/dist/contracts/governance/gaugeController/forceCompleteCheckpoint.js +2 -2
  43. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeight.js +2 -2
  44. package/dist/contracts/governance/gaugeController/kick.js +2 -2
  45. package/dist/contracts/governance/gaugeController/removeGauge.js +2 -2
  46. package/dist/contracts/governance/gaugeController/removePowerFromGauge.js +2 -2
  47. package/dist/contracts/governance/gaugeController/setBoostAmplificationEnabled.js +2 -2
  48. package/dist/contracts/governance/gaugeController/setDistributor.js +2 -2
  49. package/dist/contracts/governance/gaugeController/setEmergencyGaugePause.js +2 -2
  50. package/dist/contracts/governance/gaugeController/setEmergencyGaugePauseBatch.js +2 -2
  51. package/dist/contracts/governance/gaugeController/setEmergencyPause.js +2 -2
  52. package/dist/contracts/governance/gaugeController/setMaxVoteBuckets.js +2 -2
  53. package/dist/contracts/governance/gaugeController/vote.js +2 -2
  54. package/dist/contracts/governance/proposals/cancel.js +3 -4
  55. package/dist/contracts/governance/proposals/castVote.js +4 -4
  56. package/dist/contracts/governance/proposals/execute.js +3 -4
  57. package/dist/contracts/governance/proposals/getVoteReceipt.js +0 -1
  58. package/dist/contracts/governance/proposals/propose.js +3 -4
  59. package/dist/contracts/governance/proposals/setParameter.js +3 -4
  60. package/dist/contracts/governance/proposals/setTimelock.js +3 -4
  61. package/dist/contracts/housePrices/getLatestPrice.js +3 -3
  62. package/dist/contracts/housePrices/setOracle.js +3 -4
  63. package/dist/contracts/lockers/liquidLocker/deposit.js +12 -4
  64. package/dist/contracts/lockers/liquidLocker/hasHarvestRole.js +15 -0
  65. package/dist/contracts/pmBlender/getReserveBalance.js +3 -3
  66. package/dist/contracts/pmBlender/getSupportedTokens.js +0 -1
  67. package/dist/contracts/pmBlender/previewDeposit.js +3 -3
  68. package/dist/contracts/pmBlender/previewSwap.js +3 -3
  69. package/dist/contracts/pmBlender/previewWithdraw.js +3 -3
  70. package/dist/contracts/pmMarket/getMarketConfig.js +3 -3
  71. package/dist/contracts/pmTreasury/getCollateralRatio.js +4 -2
  72. package/dist/contracts/pmTreasury/getCurrentNav.js +4 -2
  73. package/dist/contracts/pmTreasury/getLeverageRatio.js +4 -2
  74. package/dist/contracts/pmTreasury/getMaxMintablePMUSD.js +4 -2
  75. package/dist/contracts/pmTreasury/getMaxMintablePMUSDWithoutBaseToken.js +4 -2
  76. package/dist/contracts/pmTreasury/getMaxMintableXPM.js +4 -2
  77. package/dist/contracts/pmTreasury/getMaxRedeemablePMUSD.js +4 -2
  78. package/dist/contracts/pmTreasury/getMaxRedeemableXPM.js +4 -2
  79. package/dist/contracts/pmTreasury/getTotalBaseToken.js +4 -2
  80. package/dist/contracts/psm/_helpers.js +68 -0
  81. package/dist/contracts/psm/cancelExit.js +20 -0
  82. package/dist/contracts/psm/deposit.js +25 -0
  83. package/dist/contracts/psm/getVaultInfo.js +126 -0
  84. package/dist/contracts/psm/previewDeposit.js +21 -0
  85. package/dist/contracts/psm/previewProportionalSplit.js +19 -0
  86. package/dist/contracts/psm/previewRedeem.js +21 -0
  87. package/dist/contracts/psm/previewSwap.js +21 -0
  88. package/dist/contracts/psm/redeem.js +25 -0
  89. package/dist/contracts/psm/requestExit.js +20 -0
  90. package/dist/contracts/psm/swap.js +24 -0
  91. package/dist/contracts/tokens/veRAAC/_helpers.js +0 -2
  92. package/dist/contracts/tokens/veRAAC/claimReward.js +3 -4
  93. package/dist/contracts/tokens/veRAAC/distributeRewards.js +3 -4
  94. package/dist/contracts/tokens/veRAAC/extend.js +3 -4
  95. package/dist/contracts/tokens/veRAAC/finalizeRagequit.js +3 -4
  96. package/dist/contracts/tokens/veRAAC/getRewardTokens.js +34 -0
  97. package/dist/contracts/tokens/veRAAC/getTotalSupply.js +0 -1
  98. package/dist/contracts/tokens/veRAAC/getTotalSupplyAt.js +1 -1
  99. package/dist/contracts/tokens/veRAAC/increase.js +3 -4
  100. package/dist/contracts/tokens/veRAAC/lock.js +3 -4
  101. package/dist/contracts/tokens/veRAAC/ragequitAll.js +3 -4
  102. package/dist/contracts/tokens/veRAAC/ragequitLock.js +3 -4
  103. package/dist/contracts/tokens/veRAAC/withdraw.js +3 -4
  104. package/dist/contracts/zeno/createAuction.js +30 -15
  105. package/dist/contracts/zeno/createZeno.js +23 -12
  106. package/dist/contracts/zeno/getAuctions.js +35 -33
  107. package/dist/contracts/zeno/getZenos.js +32 -16
  108. package/dist/generated/errors.json +3537 -0
  109. package/dist/index.js +1 -0
  110. package/dist/methods/approveToken.js +2 -4
  111. package/dist/methods/commons/checkAllowance.js +2 -3
  112. package/dist/methods/commons/estimateGasPrice.js +0 -1
  113. package/dist/methods/getAssetBalance.js +4 -4
  114. package/dist/nfts/approveNFT.js +3 -5
  115. package/dist/nfts/getAllTokens.js +3 -4
  116. package/dist/nfts/getApprovalForAll.js +3 -4
  117. package/dist/nfts/getBaseUri.js +3 -4
  118. package/dist/nfts/getHousePrice.js +3 -3
  119. package/dist/nfts/getMintFeePercentage.js +3 -3
  120. package/dist/nfts/getMintPrice.js +3 -3
  121. package/dist/nfts/getNFTApproval.js +3 -4
  122. package/dist/nfts/getOwnerOfNFT.js +3 -5
  123. package/dist/nfts/getTokenURI.js +3 -4
  124. package/dist/nfts/getTokensByOwner.js +3 -4
  125. package/dist/nfts/getTotalPropertiesCount.js +3 -4
  126. package/dist/nfts/mint.js +3 -5
  127. package/dist/nfts/setApprovalForAll.js +3 -5
  128. package/dist/nfts/setBaseUri.js +3 -4
  129. package/dist/nfts/totalNFTSupply.js +3 -3
  130. package/dist/oracles/houses/request.js +2 -15
  131. package/dist/oracles/houses/simulate.js +0 -3
  132. package/dist/oracles/prime-rate/request.js +2 -16
  133. package/dist/oracles/prime-rate/simulate.js +0 -4
  134. package/dist/pools/lendingPool/adapters/erc20/getERC20AdapterBalance.js +2 -2
  135. package/dist/pools/lendingPool/adapters/erc20/getERC20AdapterInfo.js +4 -2
  136. package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterDeposits.js +4 -3
  137. package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterInfo.js +4 -3
  138. package/dist/pools/lendingPool/borrowFromLendingPool.js +4 -2
  139. package/dist/pools/lendingPool/borrowFromLendingPoolWithInsurance.js +3 -8
  140. package/dist/pools/lendingPool/calculateInsuranceFee.js +4 -2
  141. package/dist/pools/lendingPool/closeLiquidation.js +4 -2
  142. package/dist/pools/lendingPool/depositAssetToLendingPool.js +4 -2
  143. package/dist/pools/lendingPool/depositToLendingPool.js +4 -6
  144. package/dist/pools/lendingPool/getAdapters.js +4 -2
  145. package/dist/pools/lendingPool/getEligibleUserDeposits.js +4 -2
  146. package/dist/pools/lendingPool/getHealthFactor.js +4 -2
  147. package/dist/pools/lendingPool/getHousePrice.js +3 -3
  148. package/dist/pools/lendingPool/getLendingPoolInfo.js +3 -2
  149. package/dist/pools/lendingPool/getLendingPoolTotalLiquidity.js +4 -2
  150. package/dist/pools/lendingPool/getParameters.js +4 -2
  151. package/dist/pools/lendingPool/getPositionDebt.js +4 -2
  152. package/dist/pools/lendingPool/getPositionScaledDebt.js +4 -2
  153. package/dist/pools/lendingPool/getPositionView.js +4 -2
  154. package/dist/pools/lendingPool/getPositionsScaledDebt.js +4 -2
  155. package/dist/pools/lendingPool/getRawUserDepositsInLendingPool.js +4 -2
  156. package/dist/pools/lendingPool/getUserCollateralValue.js +4 -2
  157. package/dist/pools/lendingPool/initializeLiquidation.js +4 -2
  158. package/dist/pools/lendingPool/openVaultPosition.js +4 -6
  159. package/dist/pools/lendingPool/repayToLendingPool.js +4 -2
  160. package/dist/pools/lendingPool/vaultOpened.js +4 -2
  161. package/dist/pools/lendingPool/withdrawAssetFromLendingPool.js +4 -2
  162. package/dist/pools/lendingPool/withdrawFromLendingPool.js +3 -4
  163. package/dist/pools/liquidityPool/getLiquidityPoolInfo.js +3 -3
  164. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterAssetValue.js +2 -2
  165. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterInfo.js +2 -2
  166. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterTotalValue.js +2 -2
  167. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterAssetValue.js +2 -2
  168. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterDeposits.js +2 -2
  169. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterInfo.js +2 -2
  170. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterTotalValue.js +2 -2
  171. package/dist/pools/rwaVault/checkRedeemEligibility.js +46 -0
  172. package/dist/pools/rwaVault/depositToRWAVault.js +4 -4
  173. package/dist/pools/rwaVault/getAdapters.js +2 -2
  174. package/dist/pools/rwaVault/getNextRandomNFT.js +4 -2
  175. package/dist/pools/rwaVault/getRWAVaultInfo.js +4 -2
  176. package/dist/pools/rwaVault/previewDeposit.js +4 -2
  177. package/dist/pools/rwaVault/previewWithdraw.js +4 -2
  178. package/dist/pools/rwaVault/redeemNFTFromRWAVault.js +4 -4
  179. package/dist/pools/rwaVault/requestRandomSeed.js +4 -4
  180. package/dist/pools/stabilityPool/depositToStabilityPool.js +4 -4
  181. package/dist/pools/stabilityPool/getRawUserDepositsInStabilityPool.js +4 -2
  182. package/dist/pools/stabilityPool/getStabilityPoolInfo.js +4 -2
  183. package/dist/pools/stabilityPool/getStabilityPoolTotalDeposits.js +4 -2
  184. package/dist/pools/stabilityPool/getWithdrawRequestInfo.js +4 -2
  185. package/dist/pools/stabilityPool/getWithdrawTimelockConfig.js +25 -0
  186. package/dist/pools/stabilityPool/requestWithdraw.js +4 -4
  187. package/dist/pools/stabilityPool/withdrawFromStabilityPool.js +4 -4
  188. package/dist/prices/computeStakingAPY.js +12 -0
  189. package/dist/prices/getCurveLPPriceUSD.js +46 -0
  190. package/dist/prices/getPrices.js +10 -8
  191. package/dist/prices/getStakingTokenPriceUSD.js +25 -0
  192. package/dist/prices/getWrapperPriceUSD.js +33 -0
  193. package/dist/prices/tokenPricesUSD.js +20 -0
  194. package/dist/scripts/generateErrorCatalogue.js +237 -0
  195. package/dist/types/RPCLibrary.d.ts +42 -8
  196. package/dist/types/configs/chains/index.d.ts +30 -0
  197. package/dist/types/configs/index.d.ts +15 -0
  198. package/dist/types/contracts/getTokenMetadata.d.ts +13 -0
  199. package/dist/types/contracts/governance/_helpers.d.ts +0 -20
  200. package/dist/types/contracts/governance/proposals/castVote.d.ts +1 -2
  201. package/dist/types/contracts/lockers/liquidLocker/hasHarvestRole.d.ts +8 -0
  202. package/dist/types/contracts/psm/_helpers.d.ts +18 -0
  203. package/dist/types/contracts/psm/cancelExit.d.ts +4 -0
  204. package/dist/types/contracts/psm/deposit.d.ts +9 -0
  205. package/dist/types/contracts/psm/getVaultInfo.d.ts +77 -0
  206. package/dist/types/contracts/psm/previewDeposit.d.ts +7 -0
  207. package/dist/types/contracts/psm/previewProportionalSplit.d.ts +9 -0
  208. package/dist/types/contracts/psm/previewRedeem.d.ts +7 -0
  209. package/dist/types/contracts/psm/previewSwap.d.ts +7 -0
  210. package/dist/types/contracts/psm/redeem.d.ts +9 -0
  211. package/dist/types/contracts/psm/requestExit.d.ts +4 -0
  212. package/dist/types/contracts/psm/swap.d.ts +8 -0
  213. package/dist/types/contracts/tokens/veRAAC/getRewardTokens.d.ts +10 -0
  214. package/dist/types/contracts/zeno/createAuction.d.ts +15 -5
  215. package/dist/types/contracts/zeno/createZeno.d.ts +10 -1
  216. package/dist/types/contracts/zeno/getAuctions.d.ts +10 -11
  217. package/dist/types/contracts/zeno/getZenos.d.ts +25 -2
  218. package/dist/types/index.d.ts +1 -0
  219. package/dist/types/pools/rwaVault/checkRedeemEligibility.d.ts +15 -0
  220. package/dist/types/pools/stabilityPool/getWithdrawTimelockConfig.d.ts +14 -0
  221. package/dist/types/prices/computeStakingAPY.d.ts +2 -0
  222. package/dist/types/prices/getCurveLPPriceUSD.d.ts +3 -0
  223. package/dist/types/prices/getPrices.d.ts +4 -8
  224. package/dist/types/prices/getStakingTokenPriceUSD.d.ts +16 -0
  225. package/dist/types/prices/getWrapperPriceUSD.d.ts +7 -0
  226. package/dist/types/prices/tokenPricesUSD.d.ts +7 -0
  227. package/dist/types/scripts/generateErrorCatalogue.d.ts +45 -0
  228. package/dist/types/typechain-types/@openzeppelin/contracts/index.d.ts +2 -0
  229. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.d.ts +65 -0
  230. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  231. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +36 -0
  232. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.d.ts +20 -0
  233. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
  234. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/Proxy.d.ts +20 -0
  235. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +25 -0
  236. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/beacon/index.d.ts +1 -0
  237. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/index.d.ts +7 -0
  238. package/dist/types/typechain-types/{contracts/core/governance/gauges/VeBoostProxy.d.ts → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts} +24 -47
  239. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts +80 -0
  240. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts +51 -0
  241. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +2 -0
  242. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
  243. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeController.d.ts +29 -2
  244. package/dist/types/typechain-types/contracts/core/governance/gauges/index.d.ts +0 -2
  245. package/dist/types/typechain-types/contracts/core/lockers/RAACBotLocker.d.ts +1 -9
  246. package/dist/types/typechain-types/contracts/core/lockers/RAACLiquidLocker.d.ts +47 -2
  247. package/dist/types/typechain-types/contracts/core/lockers/RAACMaturityVault.d.ts +24 -10
  248. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPool.d.ts +42 -43
  249. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPoolStorage.d.ts +7 -3
  250. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LiquidationProxy.d.ts +7 -3
  251. package/dist/types/typechain-types/contracts/core/pools/LendingPool/VaultProxy.d.ts +7 -3
  252. package/dist/types/typechain-types/contracts/core/tokens/VeRAACToken.d.ts +59 -12
  253. package/dist/types/typechain-types/contracts/core/tokens/VeRAACTokenStorage.d.ts +47 -12
  254. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeController.d.ts +29 -2
  255. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/index.d.ts +0 -2
  256. package/dist/types/typechain-types/contracts/interfaces/core/lockers/IRAACBotLocker.d.ts +1 -9
  257. package/dist/types/typechain-types/contracts/interfaces/core/lockers/IRaacLiquidLocker.d.ts +82 -15
  258. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPool.d.ts +32 -6
  259. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDebtToken.d.ts +5 -1
  260. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IveRAACToken.d.ts +47 -12
  261. package/dist/types/typechain-types/contracts/interfaces/zeno/IAuction.d.ts +43 -39
  262. package/dist/types/typechain-types/contracts/interfaces/zeno/IZENO.d.ts +28 -22
  263. package/dist/types/typechain-types/contracts/libraries/math/TimeWeightedAverage.d.ts +2 -36
  264. package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/MockGaugeStub.d.ts +33 -0
  265. package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/index.d.ts +1 -0
  266. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/SimToken.d.ts +173 -0
  267. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVault.d.ts +53 -0
  268. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVe.d.ts +91 -0
  269. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/index.d.ts +3 -0
  270. package/dist/types/typechain-types/contracts/mocks/core/lockers/index.d.ts +2 -0
  271. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolDebtToken.d.ts +32 -6
  272. package/dist/types/typechain-types/contracts/mocks/libraries/governance/PowerCheckpointMock.d.ts +6 -2
  273. package/dist/types/typechain-types/contracts/zeno/Auction.d.ts +200 -108
  274. package/dist/types/typechain-types/contracts/zeno/AuctionFactory.d.ts +21 -105
  275. package/dist/types/typechain-types/contracts/zeno/ZENO.d.ts +46 -40
  276. package/dist/types/typechain-types/contracts/zeno/ZENOFactory.d.ts +10 -57
  277. package/dist/types/typechain-types/factories/@openzeppelin/contracts/index.d.ts +1 -0
  278. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.d.ts +42 -0
  279. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  280. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +71 -0
  281. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.d.ts +50 -0
  282. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
  283. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +10 -0
  284. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts +17 -0
  285. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +1 -0
  286. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/index.d.ts +4 -0
  287. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +115 -0
  288. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts +56 -0
  289. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +102 -0
  290. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +2 -0
  291. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +2 -0
  292. package/dist/types/typechain-types/factories/contracts/core/collectors/FeeCollector__factory.d.ts +1 -1
  293. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeController__factory.d.ts +26 -1
  294. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeRewardsDistributor__factory.d.ts +1 -1
  295. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RAACGauge__factory.d.ts +1 -1
  296. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RWAGauge__factory.d.ts +1 -1
  297. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/index.d.ts +0 -2
  298. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACBotLocker__factory.d.ts +1 -11
  299. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACLiquidLocker__factory.d.ts +66 -1
  300. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACMaturityVault__factory.d.ts +25 -9
  301. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACPrimeRateOracle__factory.d.ts +1 -1
  302. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPoolStorage__factory.d.ts +12 -2
  303. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPool__factory.d.ts +43 -60
  304. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LiquidationProxy__factory.d.ts +12 -2
  305. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/VaultProxy__factory.d.ts +12 -2
  306. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationStrategyProxy__factory.d.ts +1 -1
  307. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPoolStorage__factory.d.ts +1 -1
  308. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPool__factory.d.ts +1 -1
  309. package/dist/types/typechain-types/factories/contracts/core/tokens/DebtToken__factory.d.ts +1 -1
  310. package/dist/types/typechain-types/factories/contracts/core/tokens/RToken__factory.d.ts +1 -1
  311. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACTokenStorage__factory.d.ts +47 -18
  312. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACToken__factory.d.ts +58 -19
  313. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeController__factory.d.ts +25 -0
  314. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/index.d.ts +0 -2
  315. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/IRAACBotLocker__factory.d.ts +0 -10
  316. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/IRaacLiquidLocker__factory.d.ts +91 -6
  317. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPool__factory.d.ts +30 -0
  318. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDebtToken__factory.d.ts +10 -0
  319. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IveRAACToken__factory.d.ts +47 -18
  320. package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IAuction__factory.d.ts +52 -30
  321. package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IZENO__factory.d.ts +36 -8
  322. package/dist/types/typechain-types/factories/contracts/libraries/governance/BoostCalculator__factory.d.ts +1 -1
  323. package/dist/types/typechain-types/factories/contracts/libraries/governance/LockManager__factory.d.ts +1 -1
  324. package/dist/types/typechain-types/factories/contracts/libraries/governance/PowerCheckpoint__factory.d.ts +1 -1
  325. package/dist/types/typechain-types/factories/contracts/libraries/governance/RagequitLib__factory.d.ts +1 -1
  326. package/dist/types/typechain-types/factories/contracts/libraries/governance/RewardLib__factory.d.ts +1 -1
  327. package/dist/types/typechain-types/factories/contracts/libraries/math/TimeWeightedAverage__factory.d.ts +1 -36
  328. package/dist/types/typechain-types/factories/contracts/libraries/pools/LendingPoolFeeLibrary__factory.d.ts +1 -1
  329. package/dist/types/typechain-types/factories/contracts/libraries/pools/ReserveLibrary__factory.d.ts +1 -1
  330. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockGaugeStub__factory.d.ts +42 -0
  331. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/index.d.ts +1 -0
  332. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/libraries/LockManagerMock__factory.d.ts +1 -1
  333. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/SimToken__factory.d.ts +306 -0
  334. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVault__factory.d.ts +68 -0
  335. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVe__factory.d.ts +149 -0
  336. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/index.d.ts +3 -0
  337. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/index.d.ts +1 -0
  338. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockOracle__factory.d.ts +1 -1
  339. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACPrimeRateOracle__factory.d.ts +1 -1
  340. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolDebtToken__factory.d.ts +31 -1
  341. package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockTimeUtils__factory.d.ts +1 -1
  342. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/BoostCalculatorMock__factory.d.ts +1 -1
  343. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/PowerCheckpointMock__factory.d.ts +5 -1
  344. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RagequitHarness__factory.d.ts +1 -1
  345. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RewardIntegralCalculatorMock.sol/MockRewardIntegralCalculator__factory.d.ts +1 -1
  346. package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/TimeWeightedAverageMock__factory.d.ts +2 -9
  347. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMockCalculation__factory.d.ts +1 -1
  348. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMock__factory.d.ts +1 -1
  349. package/dist/types/typechain-types/factories/contracts/mocks/tests/VeRAACFuzzHelper__factory.d.ts +1 -1
  350. package/dist/types/typechain-types/factories/contracts/zeno/AuctionFactory__factory.d.ts +26 -118
  351. package/dist/types/typechain-types/factories/contracts/zeno/Auction__factory.d.ts +230 -106
  352. package/dist/types/typechain-types/factories/contracts/zeno/ZENOFactory__factory.d.ts +9 -68
  353. package/dist/types/typechain-types/factories/contracts/zeno/ZENO__factory.d.ts +66 -38
  354. package/dist/types/typechain-types/index.d.ts +24 -8
  355. package/dist/types/typechain-types/psm/PSMVault.d.ts +1503 -0
  356. package/dist/types/typechain-types/psm/RateProvider.d.ts +228 -0
  357. package/dist/types/typechain-types/psm/common.d.ts +46 -0
  358. package/dist/types/typechain-types/psm/factories/PSMVault__factory.d.ts +1795 -0
  359. package/dist/types/typechain-types/psm/factories/RateProvider__factory.d.ts +299 -0
  360. package/dist/types/typechain-types/psm/factories/imports.sol/PSMProxyAdmin__factory.d.ts +117 -0
  361. package/dist/types/typechain-types/psm/factories/imports.sol/PSMTransparentProxy__factory.d.ts +108 -0
  362. package/dist/types/typechain-types/psm/factories/imports.sol/index.d.ts +2 -0
  363. package/dist/types/typechain-types/psm/factories/index.d.ts +8 -0
  364. package/dist/types/typechain-types/psm/factories/interfaces/IBaseAssetNav__factory.d.ts +21 -0
  365. package/dist/types/typechain-types/psm/factories/interfaces/IRateProvider__factory.d.ts +65 -0
  366. package/dist/types/typechain-types/psm/factories/interfaces/IRebalancer__factory.d.ts +25 -0
  367. package/dist/types/typechain-types/{factories/contracts/interfaces/core/governance/gauges/IVeBoost__factory.d.ts → psm/factories/interfaces/ISavingsToken__factory.d.ts} +215 -192
  368. package/dist/types/typechain-types/psm/factories/interfaces/index.d.ts +6 -0
  369. package/dist/types/typechain-types/psm/factories/interfaces/v2/IRebalancerV2__factory.d.ts +21 -0
  370. package/dist/types/typechain-types/psm/factories/interfaces/v2/index.d.ts +1 -0
  371. package/dist/types/typechain-types/psm/factories/interfaces/v3/IRateProviderV3__factory.d.ts +65 -0
  372. package/dist/types/typechain-types/psm/factories/interfaces/v3/index.d.ts +1 -0
  373. package/dist/types/typechain-types/psm/factories/mocks/MockBaseAssetModule__factory.d.ts +450 -0
  374. package/dist/types/typechain-types/psm/factories/mocks/MockChainlinkFeed__factory.d.ts +106 -0
  375. package/dist/types/typechain-types/psm/factories/mocks/MockERC20__factory.d.ts +288 -0
  376. package/dist/types/typechain-types/psm/factories/mocks/MockFeeOnTransferERC20__factory.d.ts +356 -0
  377. package/dist/types/typechain-types/psm/factories/mocks/MockPmUSD__factory.d.ts +326 -0
  378. package/dist/types/typechain-types/psm/factories/mocks/MockProxy__factory.d.ts +108 -0
  379. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancer.sol/IMockMintable__factory.d.ts +21 -0
  380. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancer.sol/MockRebalancer__factory.d.ts +138 -0
  381. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancer.sol/index.d.ts +2 -0
  382. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancerV2.sol/IMockMintable__factory.d.ts +21 -0
  383. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancerV2.sol/MockRebalancerV2__factory.d.ts +134 -0
  384. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancerV2.sol/index.d.ts +2 -0
  385. package/dist/types/typechain-types/psm/factories/mocks/MockSavingsToken__factory.d.ts +330 -0
  386. package/dist/types/typechain-types/psm/factories/mocks/index.d.ts +9 -0
  387. package/dist/types/typechain-types/psm/factories/utils/index.d.ts +1 -0
  388. package/dist/types/typechain-types/psm/factories/utils/zap/AladdinZap__factory.d.ts +322 -0
  389. package/dist/types/typechain-types/psm/factories/utils/zap/TokenZapLogic__factory.d.ts +73 -0
  390. package/dist/types/typechain-types/psm/factories/utils/zap/index.d.ts +3 -0
  391. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IBalancerPool__factory.d.ts +91 -0
  392. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IBalancerVault__factory.d.ts +261 -0
  393. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IConvexCRVDepositor__factory.d.ts +49 -0
  394. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveA2Pool__factory.d.ts +305 -0
  395. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveA3Pool__factory.d.ts +305 -0
  396. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveA4Pool__factory.d.ts +305 -0
  397. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveAPool__factory.d.ts +305 -0
  398. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/index.d.ts +4 -0
  399. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase2Pool__factory.d.ts +39 -0
  400. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase3Pool__factory.d.ts +39 -0
  401. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase4Pool__factory.d.ts +39 -0
  402. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBasePool__factory.d.ts +175 -0
  403. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/index.d.ts +4 -0
  404. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveCryptoPool__factory.d.ts +301 -0
  405. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveTriCryptoPool__factory.d.ts +165 -0
  406. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/IZapCurveMetaCryptoPool__factory.d.ts +181 -0
  407. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/index.d.ts +3 -0
  408. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveETHPool__factory.d.ts +155 -0
  409. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap3Pool__factory.d.ts +99 -0
  410. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap4Pool__factory.d.ts +99 -0
  411. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap__factory.d.ts +55 -0
  412. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveFactoryMetaPool__factory.d.ts +193 -0
  413. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/index.d.ts +4 -0
  414. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain2Pool__factory.d.ts +183 -0
  415. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain3Pool__factory.d.ts +183 -0
  416. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain4Pool__factory.d.ts +183 -0
  417. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlainPool__factory.d.ts +147 -0
  418. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/index.d.ts +4 -0
  419. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolDeposit__factory.d.ts +141 -0
  420. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolSwap__factory.d.ts +227 -0
  421. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveMetaPool.sol/index.d.ts +2 -0
  422. package/dist/types/typechain-types/{factories/contracts/interfaces/core/governance/gauges/IVeBoostProxy__factory.d.ts → psm/factories/utils/zap/interfaces/ICurvePoolRegistry__factory.d.ts} +13 -24
  423. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolDeposit__factory.d.ts +165 -0
  424. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolSwap__factory.d.ts +193 -0
  425. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolDeposit__factory.d.ts +165 -0
  426. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolSwap__factory.d.ts +193 -0
  427. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolDeposit__factory.d.ts +165 -0
  428. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolSwap__factory.d.ts +193 -0
  429. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolDeposit__factory.d.ts +165 -0
  430. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolSwap__factory.d.ts +193 -0
  431. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/index.d.ts +8 -0
  432. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ILidoStETH__factory.d.ts +35 -0
  433. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ILidoWstETH__factory.d.ts +83 -0
  434. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IUniswapV2Pair__factory.d.ts +95 -0
  435. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IUniswapV3Pool__factory.d.ts +115 -0
  436. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IUniswapV3Router__factory.d.ts +54 -0
  437. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IWETH__factory.d.ts +23 -0
  438. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IZap__factory.d.ts +107 -0
  439. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/concentrator/IAladdinCRV__factory.d.ts +401 -0
  440. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/concentrator/IAladdinCompounder__factory.d.ts +350 -0
  441. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/concentrator/index.d.ts +2 -0
  442. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/index.d.ts +20 -0
  443. package/dist/types/typechain-types/psm/factories/v2/PSMVaultV2__factory.d.ts +1846 -0
  444. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/IPSMVaultView__factory.d.ts +17 -0
  445. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/IRateOracle__factory.d.ts +31 -0
  446. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/IZap__factory.d.ts +33 -0
  447. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/RebalancerV2__factory.d.ts +506 -0
  448. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/index.d.ts +4 -0
  449. package/dist/types/typechain-types/psm/factories/v2/index.d.ts +2 -0
  450. package/dist/types/typechain-types/psm/factories/v3/PSMVaultV3__factory.d.ts +1955 -0
  451. package/dist/types/typechain-types/psm/factories/v3/RateProviderComposed__factory.d.ts +303 -0
  452. package/dist/types/typechain-types/psm/factories/v3/RateProviderDirect__factory.d.ts +293 -0
  453. package/dist/types/typechain-types/psm/factories/v3/index.d.ts +3 -0
  454. package/dist/types/typechain-types/psm/imports.sol/PSMProxyAdmin.d.ts +96 -0
  455. package/dist/types/typechain-types/psm/imports.sol/PSMTransparentProxy.d.ts +51 -0
  456. package/dist/types/typechain-types/psm/imports.sol/index.d.ts +2 -0
  457. package/dist/types/typechain-types/psm/index.d.ts +157 -0
  458. package/dist/types/typechain-types/psm/interfaces/IBaseAssetNav.d.ts +33 -0
  459. package/dist/types/typechain-types/psm/interfaces/IRateProvider.d.ts +75 -0
  460. package/dist/types/typechain-types/psm/interfaces/IRebalancer.d.ts +39 -0
  461. package/dist/types/typechain-types/psm/interfaces/ISavingsToken.d.ts +400 -0
  462. package/dist/types/typechain-types/psm/interfaces/index.d.ts +8 -0
  463. package/dist/types/typechain-types/psm/interfaces/v2/IRebalancerV2.d.ts +35 -0
  464. package/dist/types/typechain-types/psm/interfaces/v2/index.d.ts +1 -0
  465. package/dist/types/typechain-types/psm/interfaces/v3/IRateProviderV3.d.ts +75 -0
  466. package/dist/types/typechain-types/psm/interfaces/v3/index.d.ts +1 -0
  467. package/dist/types/typechain-types/psm/mocks/MockBaseAssetModule.d.ts +311 -0
  468. package/dist/types/typechain-types/psm/mocks/MockChainlinkFeed.d.ts +91 -0
  469. package/dist/types/typechain-types/psm/mocks/MockERC20.d.ts +179 -0
  470. package/dist/types/typechain-types/psm/mocks/MockFeeOnTransferERC20.d.ts +247 -0
  471. package/dist/types/typechain-types/psm/mocks/MockPmUSD.d.ts +213 -0
  472. package/dist/types/typechain-types/psm/mocks/MockProxy.d.ts +51 -0
  473. package/dist/types/typechain-types/psm/mocks/MockRebalancer.sol/IMockMintable.d.ts +35 -0
  474. package/dist/types/typechain-types/psm/mocks/MockRebalancer.sol/MockRebalancer.d.ts +125 -0
  475. package/dist/types/typechain-types/psm/mocks/MockRebalancer.sol/index.d.ts +2 -0
  476. package/dist/types/typechain-types/psm/mocks/MockRebalancerV2.sol/IMockMintable.d.ts +35 -0
  477. package/dist/types/typechain-types/psm/mocks/MockRebalancerV2.sol/MockRebalancerV2.d.ts +121 -0
  478. package/dist/types/typechain-types/psm/mocks/MockRebalancerV2.sol/index.d.ts +2 -0
  479. package/dist/types/typechain-types/psm/mocks/MockSavingsToken.d.ts +213 -0
  480. package/dist/types/typechain-types/psm/mocks/index.d.ts +11 -0
  481. package/dist/types/typechain-types/psm/utils/index.d.ts +2 -0
  482. package/dist/types/typechain-types/psm/utils/zap/AladdinZap.d.ts +276 -0
  483. package/dist/types/typechain-types/psm/utils/zap/TokenZapLogic.d.ts +59 -0
  484. package/dist/types/typechain-types/psm/utils/zap/index.d.ts +4 -0
  485. package/dist/types/typechain-types/psm/utils/zap/interfaces/IBalancerPool.d.ts +101 -0
  486. package/dist/types/typechain-types/psm/utils/zap/interfaces/IBalancerVault.d.ts +199 -0
  487. package/dist/types/typechain-types/psm/utils/zap/interfaces/IConvexCRVDepositor.d.ts +61 -0
  488. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveA2Pool.d.ts +245 -0
  489. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveA3Pool.d.ts +245 -0
  490. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveA4Pool.d.ts +245 -0
  491. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveAPool.d.ts +245 -0
  492. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/index.d.ts +4 -0
  493. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase2Pool.d.ts +49 -0
  494. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase3Pool.d.ts +49 -0
  495. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase4Pool.d.ts +49 -0
  496. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBasePool.d.ts +159 -0
  497. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/index.d.ts +4 -0
  498. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveCryptoPool.d.ts +249 -0
  499. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveTriCryptoPool.d.ts +153 -0
  500. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/IZapCurveMetaCryptoPool.d.ts +165 -0
  501. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/index.d.ts +3 -0
  502. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveETHPool.d.ts +135 -0
  503. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap.d.ts +55 -0
  504. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap3Pool.d.ts +87 -0
  505. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap4Pool.d.ts +87 -0
  506. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveFactoryMetaPool.d.ts +159 -0
  507. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/index.d.ts +4 -0
  508. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain2Pool.d.ts +159 -0
  509. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain3Pool.d.ts +159 -0
  510. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain4Pool.d.ts +159 -0
  511. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlainPool.d.ts +131 -0
  512. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/index.d.ts +4 -0
  513. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolDeposit.d.ts +133 -0
  514. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolSwap.d.ts +191 -0
  515. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveMetaPool.sol/index.d.ts +2 -0
  516. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurvePoolRegistry.d.ts +45 -0
  517. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolDeposit.d.ts +163 -0
  518. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolSwap.d.ts +179 -0
  519. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolDeposit.d.ts +163 -0
  520. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolSwap.d.ts +179 -0
  521. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolDeposit.d.ts +163 -0
  522. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolSwap.d.ts +179 -0
  523. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolDeposit.d.ts +163 -0
  524. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolSwap.d.ts +179 -0
  525. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/index.d.ts +8 -0
  526. package/dist/types/typechain-types/psm/utils/zap/interfaces/ILidoStETH.d.ts +45 -0
  527. package/dist/types/typechain-types/psm/utils/zap/interfaces/ILidoWstETH.d.ts +89 -0
  528. package/dist/types/typechain-types/psm/utils/zap/interfaces/IUniswapV2Pair.d.ts +103 -0
  529. package/dist/types/typechain-types/psm/utils/zap/interfaces/IUniswapV3Pool.d.ts +113 -0
  530. package/dist/types/typechain-types/psm/utils/zap/interfaces/IUniswapV3Router.d.ts +55 -0
  531. package/dist/types/typechain-types/psm/utils/zap/interfaces/IWETH.d.ts +43 -0
  532. package/dist/types/typechain-types/psm/utils/zap/interfaces/IZap.d.ts +91 -0
  533. package/dist/types/typechain-types/psm/utils/zap/interfaces/concentrator/IAladdinCRV.d.ts +361 -0
  534. package/dist/types/typechain-types/psm/utils/zap/interfaces/concentrator/IAladdinCompounder.d.ts +290 -0
  535. package/dist/types/typechain-types/psm/utils/zap/interfaces/concentrator/index.d.ts +2 -0
  536. package/dist/types/typechain-types/psm/utils/zap/interfaces/index.d.ts +28 -0
  537. package/dist/types/typechain-types/psm/v2/PSMVaultV2.d.ts +1528 -0
  538. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/IPSMVaultView.d.ts +31 -0
  539. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/IRateOracle.d.ts +43 -0
  540. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/IZap.d.ts +39 -0
  541. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/RebalancerV2.d.ts +387 -0
  542. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/index.d.ts +4 -0
  543. package/dist/types/typechain-types/psm/v2/index.d.ts +3 -0
  544. package/dist/types/typechain-types/psm/v3/PSMVaultV3.d.ts +1631 -0
  545. package/dist/types/typechain-types/psm/v3/RateProviderComposed.d.ts +228 -0
  546. package/dist/types/typechain-types/psm/v3/RateProviderDirect.d.ts +218 -0
  547. package/dist/types/typechain-types/psm/v3/index.d.ts +3 -0
  548. package/dist/types/utils/artifacts.d.ts +244 -102
  549. package/dist/types/utils/contracts.d.ts +30 -0
  550. package/dist/types/utils/errorDecoder.d.ts +29 -28
  551. package/dist/types/utils/rpcError.d.ts +52 -0
  552. package/dist/utils/artifacts.js +6 -0
  553. package/dist/utils/chain.js +2 -1
  554. package/dist/utils/config.js +0 -1
  555. package/dist/utils/contracts.js +1 -1
  556. package/dist/utils/errorDecoder.js +69 -117
  557. package/dist/utils/rpcError.js +159 -0
  558. package/dist/wallet/assets/approveAsset.js +10 -12
  559. package/dist/wallet/assets/burnAsset.js +14 -16
  560. package/dist/wallet/assets/getAllowance.js +4 -4
  561. package/dist/wallet/assets/getAsset.js +2 -2
  562. package/dist/wallet/assets/getBalance.js +4 -3
  563. package/dist/wallet/assets/mintAsset.js +14 -17
  564. package/dist/wallet/assets/transferAsset.js +7 -10
  565. package/package.json +4 -3
  566. package/dist/generated/errorMap.json +0 -3945
  567. package/dist/scripts/generateErrorMap.js +0 -180
  568. package/dist/types/scripts/generateErrorMap.d.ts +0 -1
  569. package/dist/types/typechain-types/contracts/core/governance/gauges/VeBoost.d.ts +0 -518
  570. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IVeBoost.d.ts +0 -311
  571. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IVeBoostProxy.d.ts +0 -50
  572. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/VeBoostProxy__factory.d.ts +0 -152
  573. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/VeBoost__factory.d.ts +0 -716
@@ -15,7 +15,7 @@ export declare class LendingPool__factory extends ContractFactory {
15
15
  deploymentTransaction(): ContractTransactionResponse;
16
16
  }>;
17
17
  connect(runner: ContractRunner | null): LendingPool__factory;
18
- static readonly bytecode = "0x60a0604052346100e2576101006167f8803803809161001d826100e6565b60a039126100e25761007d610030610143565b61003a60c0610159565b61004460e0610159565b61004f610100610159565b61005a610120610159565b90610066610140610159565b926101605194610077610180610159565b966101f2565b604051615e8090816108b88239608051818181610b5a01528181610dfe0152818161163b0152818161192b01528181611e31015281816126c701528181612a1501528181612b1301528181612dd5015281816130f4015281816135a201526137400152f35b5f80fd5b60a0601f91909101601f19168101906001600160401b0382119082101761010c57604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761010c57604052565b60a051906001600160a01b03821682036100e257565b51906001600160a01b03821682036100e257565b908160209103126100e2575160ff811681036100e25790565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b60ff16604d81116101b657600a0a90565b610191565b9081629896800291629896808304036101b657565b90816064029160648304036101b657565b9081600a0291600a8304036101b657565b6102b26102d49261025a60049a99976102386102f6986102166102fb9c33906105da565b603380546001600160a01b0319166001600160a01b0392909216919091179055565b603480546001600160a01b0319166001600160a01b0392909216919091179055565b7b033b2e3c9fd0803ce800000000000000033b2e3c9fd0803ce80000006005556006805464ffffffffff19164264ffffffffff161790555f80546001600160a01b0319166001600160a01b0392909216919091179055565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600a55565b61030e610309600a5461068c565b600b55565b61032161031c600a546106c2565b600c55565b6103366b02b3c569d7acdbe2a7800000600d55565b61034b6b0295be96e640669720000000600e55565b61035f6a52b7d2dcc80cd2e4000000600f55565b6103685f601155565b6103715f600855565b61037a5f600955565b610385611388602a55565b610390611f40602255565b61039c6203f480602355565b6001546020906103c2906103b6906001600160a01b031681565b6001600160a01b031690565b60405163313ce56760e01b815293849182905afa9182156105d5576103fc6103f7600494610401935f916105a6575b506101a5565b6101bb565b602755565b60015460209061041b906103b6906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105d55761044f6103f7600494610454935f916105a657506101a5565b602855565b61045f612710602655565b61046a61012c602455565b61047c600160ff196021541617602155565b600154602090610496906103b6906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105d5576104cf6104ca6004946104d4935f916105a657506101a5565b6101d0565b602955565b6001546020906104ee906103b6906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105d55761052761052260049461052c935f916105a657506101a5565b6101e1565b602b55565b61053660c8602c55565b600154602090610550906103b6906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105d5576105856104ca6105a39461058a935f916105a657506101a5565b602d55565b6105938161070b565b5061059d81610783565b5061081d565b50565b6105c8915060203d6020116105ce575b6105c08183610120565b81019061016d565b5f6103f1565b503d6105b6565b610186565b906001600160a01b0316801561067957602f80546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a360016030556001600160a01b0316801561064457608052565b60405162461bcd60e51b815260206004820152600d60248201526c5a65726f20726567697374727960981b6044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b7e1a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e90d81116100e2576113886109c46127109202010490565b7e0d1b71758e219652bd3c36113404ea4a8c154c985f06f694467381d7dbf48681116100e257611388806127109202010490565b9060018060a01b03165f5260205260405f2090565b5f8052603260205260ff61072c825f5160206167585f395f51905f526106f6565b541661077e575f80526032602052610751815f5160206167585f395f51905f526106f6565b805460ff1916600117905533906001600160a01b03165f5f5160206167385f395f51905f528180a4600190565b505f90565b5f5160206167785f395f51905f525f52603260205260ff6107b1825f5160206167d85f395f51905f526106f6565b541661077e575f5160206167785f395f51905f525f5260326020526107e3815f5160206167d85f395f51905f526106f6565b805460ff1916600117905533906001600160a01b03165f5160206167785f395f51905f525f5160206167385f395f51905f525f80a4600190565b5f5160206167985f395f51905f525f52603260205260ff61084b825f5160206167b85f395f51905f526106f6565b541661077e575f5160206167985f395f51905f525f52603260205261087d815f5160206167b85f395f51905f526106f6565b805460ff1916600117905533906001600160a01b03165f5160206167985f395f51905f525f5160206167385f395f51905f525f80a460019056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461053f57806302768de41461053a578063048c661d14610535578063086c33e11461053057806309bf1e731461052b5780630ab30d8a146105265780630c34b914146105215780630c42dcaf1461051c5780630c679a7b14610517578063152f1584146105125780631a7fd2001461050d5780631d8557d714610508578063202019a61461050357806322f2caf1146104fe5780632445eee5146104f9578063248a9ca3146104f457806327156a68146104ef5780632a5bf6d2146104ea5780632a7e7849146104e55780632ab414fc146104e05780632e1a7d4d146104db5780632f17682b146104545780632f2ff15d146104d657806332128b03146104d157806334176a6d146104cc57806336568abe146104c75780633f4ba83a146104c25780634a7d0369146104bd5780634ef501ac146104b857806353f35770146104b35780635c975abb146104ae578063618295df146104a9578063640bc491146104a45780636817031b1461049f5780636bf633791461049a578063715018a614610495578063745a5cec1461049057806375417da61461048b5780637bc7780b146104865780638429d51f146104815780638456cb591461047c578063883c6b24146104775780638903573014610472578063893a53721461046d5780638ad7cacc146104685780638d7081e4146104635780638da5cb5b1461045e5780638def3ec2146104595780638f7e84981461045457806391d148541461044f5780639612071f1461044a5780639632b92a1461044557806398c2b1081461044057806398d721e01461043b5780639daa54b414610436578063a217fddf14610431578063a42dce801461042c578063a51e896314610427578063a90d728f14610422578063a9bf805c1461041d578063aaf6379914610418578063b21cfc7114610413578063b6b55f251461040e578063b82e16e314610409578063ba74669414610404578063c3525c28146103ff578063c415b95c146103fa578063c4f8911c146103f5578063c939ad61146103f0578063cac89c5c146103eb578063cd3293de146103e6578063d017e978146103e1578063d17e9883146103dc578063d547741f146103d7578063de597d5b146103d2578063e5711e8b146103cd578063ec915ee6146103c8578063ef16b0e0146103c3578063ef5bac25146103be578063f2fde38b146103b9578063f36c8f5c146103b4578063fbfa77cf146103af5763fe64cc0b146103aa575f80fd5b613bd4565b613bac565b613b85565b613b0e565b6139a6565b61394c565b6138e0565b61381a565b6136e0565b6136ac565b613685565b613669565b6135dd565b61358d565b613502565b6133c7565b61339f565b61337d565b61331f565b6132a9565b6130b7565b613068565b612fe2565b612fba565b612ed5565b612daa565b612d33565b612d19565b612c1e565b612ba7565b612ab7565b6129b9565b61297c565b61293a565b611856565b612662565b61263a565b61261e565b6124f1565b612449565b612391565b612377565b61231e565b6122ce565b6122b1565b6121fe565b6121dc565b612194565b612178565b611fdb565b611fb3565b611eba565b611e98565b611dce565b611d47565b611c59565b611bf3565b611bab565b611b1c565b6118cf565b611896565b6115fe565b610f26565b610da2565b610d43565b610cfb565b610cdd565b610ac2565b610a19565b6109de565b6109bc565b610936565b6108f7565b610846565b61082a565b610705565b6106eb565b6106ce565b6106aa565b6105fc565b6105a3565b346105955760203660031901126105955760043563ffffffff60e01b811680910361059557602090637965db0b60e01b8114908115610584575b506040519015158152f35b6301ffc9a760e01b1490505f610579565b5f80fd5b5f91031261059557565b34610595575f3660031901126105955760206040515f516020615deb5f395f51905f528152f35b60039190911b1c6001600160a01b031690565b6001600160a01b031690565b6001600160a01b03909116815260200190565b34610595575f366003190112610595576014546040516001600160a01b039091168152602090f35b6001600160a01b0381160361059557565b9181601f84011215610595578235916001600160401b038311610595576020838186019501011161059557565b60606003198201126105955760043561067a81610624565b9160243561068781610624565b91604435906001600160401b038211610595576106a691600401610635565b9091565b346105955760206106c66106bd36610662565b92919091613c1b565b604051908152f35b34610595575f3660031901126105955760206040516203f4808152f35b34610595575f3660031901126105955760206106c66143e2565b34610595575f366003190112610595575f61012060405161072581613cc3565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152610826610766613d7e565b60085481526009546020820152600a546040820152600b546060820152600c546080820152600d5460a0820152600e5460c0820152600f5460e08201526010546101008201526011546101208201526040519182918291909161012080610140830194805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501520151910152565b0390f35b34610595575f366003190112610595576020604051611f408152f35b346105955760203660031901126105955760043561086381610624565b61086b614445565b601380546001600160a01b0319166001600160a01b039290921691821790557f10482019a808694c207a221c5aec7946dfeeb0d60acb5cc3bd6f9e36394564295f80a2005b6001600160a01b03165f908152601e6020526040902090565b6001600160a01b03165f90815260126020526040902090565b9060018060a01b03165f5260205260405f2090565b346105955760203660031901126105955760043561091481610624565b60018060a01b03165f5260208052602060ff60405f2054166040519015158152f35b346105955760203660031901126105955760043561095381610624565b61095b614445565b6001600160a01b031680156109ad57603380546001600160a01b0319811683179091556001600160a01b03167f748f1f5793b18b83e17ec58dd942771a149a2da21e05fe50ced8c278143c6d715f80a3005b6303988b8160e61b5f5260045ffd5b34610595575f366003190112610595576109d46155ef565b6109dc61446c565b005b34610595576020366003190112610595576004356109fb81610624565b60018060a01b03165f52602e602052602060405f2054604051908152f35b3461059557602036600319011261059557600435610a3681610624565b610a3e614445565b6001600160a01b0381165f818152601e602052604090205460ff16610ab3577fa77e7c594c11a0d5d9d8e6a9132ac0db912dc0f34f5fb7d94860fe38d16410bd91610aae915f52601e60205260405f20600160ff19825416179055610aa281613dc1565b604051918291826105e9565b0390a1005b63dc37823360e01b5f5260045ffd5b3461059557608036600319011261059557600435610adf81610624565b6024356001600160401b03811161059557610afe903690600401610635565b6044359060643592610b0f84610624565b610b17614723565b610b1f614743565b8215610cce576001600160a01b0385165f908152601e602052604090205460ff1615610cbf5760405163fe575a8760e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa908115610c9b575f91610ca0575b50610c5d5760405163fe575a8760e01b81526001600160a01b0386166004820181905291602090829060249082905afa908115610c9b575f91610c6c575b50610c5d5760ff6021541615610c4e5780156109ad57610bfa838387896142d4565b908115159081610c43575b50610c1f575b50610c15946148d0565b6109dc6001603055565b610c289061474f565b8310610c34575f610c0b565b63175dd87760e31b5f5260045ffd5b90503314155f610c05565b6312cefcd560e31b5f5260045ffd5b632652747360e21b5f5260045ffd5b610c8e915060203d602011610c94575b610c868183613cff565b810190613e0d565b5f610bd8565b503d610c7c565b613d73565b610cb9915060203d602011610c9457610c868183613cff565b5f610b9a565b630867d69960e11b5f5260045ffd5b63162908e360e11b5f5260045ffd5b346105955760203660031901126105955760206106c6600435613e21565b3461059557602036600319011261059557600435610d1881610624565b610d2a610d2482613e54565b91614305565b8101809111610d3e57602090604051908152f35b613e33565b346105955760203660031901126105955760206106c6600435610d6581610624565b613e54565b90604060031983011261059557600435610d8381610624565b91602435906001600160401b038211610595576106a691600401610635565b3461059557610db036610d6a565b610db8614723565b610dc0614743565b6001600160a01b0383165f818152601e602052604090205490939060ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91610f07575b50610c5d576020610e558385610e5c943390610e50614207565b614237565b0151151590565b610ef857335f9081526020805260409020610e8190610e7d905b5460ff1690565b1590565b610ee957610e8d6155ef565b823b1561059557610eb8925f928360405180968195829463cf2c52cb60e01b84523360048501613d51565b03925af18015610c9b57610ecf575b610c1561446c565b80610edd5f610ee393613cff565b80610599565b5f610ec7565b6361803dfb60e11b5f5260045ffd5b636a1b5fa160e01b5f5260045ffd5b610f20915060203d602011610c9457610c868183613cff565b5f610e36565b3461059557604036600319011261059557600435601181101561059557602435610f4e6155ef565b610f5782613eab565b600982148080156115eb575b80156115d8575b80156115c7575b80156115b4575b80156115a1575b801561158e575b801561157b575b8015611568575b8015611555575b8015611542575b801561152f575b801561151c575b610fb984613eab565b6005841480918115611507575b81156114f2575b81156114dd575b1561147057505f516020615deb5f395f51905f525f52603260205261101f610e7d610e76337f4be98a500fedc87dbf83b0f2e386ce313ece8458dab0590898ef9a4135d192146108e2565b611461575b5f9161102f85613eab565b156110965750508015611087576027548111611078575f516020615dcb5f395f51905f5291610aae6028549261106481602855565b61106c61446c565b60405193849384613ec9565b635bf62a1160e01b5f5260045ffd5b635b9ad34160e11b5f5260045ffd5b61109f84613eab565b600884036110eb57505080156110875760285481106110dc575f516020615dcb5f395f51905f5291610aae602754926110d781602755565b611064565b631749c8ff60e11b5f5260045ffd5b6110f484613eab565b600b8403611136575050602254811015611127575f516020615dcb5f395f51905f5291610aae602a54926110d781602a55565b6303de40d960e01b5f5260045ffd5b61113f84613eab565b8361117e575050602a5481111561116f575f516020615dcb5f395f51905f5291610aae602254926110d781602255565b637c07cff960e01b5f5260045ffd5b61118784613eab565b600184036111dc57505062015180811080156111d0575b6111c1575f516020615dcb5f395f51905f5291610aae602354926110d781602355565b63d7c43e0f60e01b5f5260045ffd5b5062093a80811161119e565b6111e584613eab565b6002840361120e5750505f516020615dcb5f395f51905f5291610aae602654926110d781602655565b61121784613eab565b600384036112685750909160018311611259576021805461ff0019166001851460081b61ff00161790555f516020615dcb5f395f51905f5292610aae90611064565b63af979eb560e01b5f5260045ffd5b61127184613eab565b600484036112af575090916001831161125957610aae836110d760015f516020615dcb5f395f51905f52961460ff8019602154169115151617602155565b6112b884613eab565b156112dd57505f516020615dcb5f395f51905f5291610aae602454926110d781602455565b6112e683613eab565b6006830361130e57505f516020615dcb5f395f51905f5291610aae600f54926110d781600f55565b61131783613eab565b6007830361133f57505f516020615dcb5f395f51905f5291610aae602554926110d781602555565b61134883613eab565b600a830361137057505f516020615dcb5f395f51905f5291610aae602954926110d781602955565b61137983613eab565b600c83036113a157505f516020615dcb5f395f51905f5291610aae600d54926110d781600d55565b6113aa83613eab565b600d83036113d857508015610cce575f516020615dcb5f395f51905f5291610aae602b54926110d781602b55565b915f516020615dcb5f395f51905f52926113f182613eab565b600e820361140a5750610aae600e54926110d781600e55565b61141382613eab565b600f820361142c5750610aae602c54926110d781602c55565b9161143682613eab565b60108214611448575b610aae90611064565b9150610aae602d549261145a81602d55565b905061143f565b634ca8886760e01b5f5260045ffd5b156114ce575f516020615d8b5f395f51905f525f5260326020526114ba610e7d610e76337f08ae08a1778cb01871246af592e3e907ec9ba7bc1cc0b308a58e75fd2ee1dfba6108e2565b1561102457634ca8886760e01b5f5260045ffd5b630309cb8760e51b5f5260045ffd5b90506114e885613eab565b600a851490610fd4565b90506114fd85613eab565b6007851490610fcd565b905061151285613eab565b6006851490610fc6565b5061152683613eab565b60108314610fb0565b5061153983613eab565b600f8314610fa9565b5061154c83613eab565b600e8314610fa2565b5061155f83613eab565b600d8314610f9b565b5061157283613eab565b600c8314610f94565b5061158583613eab565b60048314610f8d565b5061159883613eab565b60038314610f86565b506115ab83613eab565b60028314610f7f565b506115be83613eab565b60018314610f78565b506115d183613eab565b8215610f71565b506115e283613eab565b600b8314610f6a565b506115f583613eab565b60088314610f63565b346105955760203660031901126105955760043561161a614723565b8015610cce5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91611837575b50610c5d5761168b6116866014546105dd565b6105dd565b331415808061182b575b61181c578061180d575b6117fe576116ab6155ef565b5f1981036117f957506116c46116866116865f546105dd565b602060405180926370a0823160e01b825281806116e433600483016105e9565b03915afa908115610c9b575f916117da575b505b6117086116866116865f546105dd565b602060405180926370a0823160e01b8252818061172833600483016105e9565b03915afa908115610c9b575f916117ab575b50811161179c578061174e61175592614c20565b3390614ca5565b505061175f614d9a565b60405190815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649080602081015b0390a26109dc6001603055565b631e9acf1760e31b5f5260045ffd5b6117cd915060203d6020116117d3575b6117c58183613cff565b810190613d22565b5f61173a565b503d6117bb565b6117f3915060203d6020116117d3576117c58183613cff565b5f6116f6565b6116f8565b6370a7336d60e11b5f5260045ffd5b5060215460081c60ff1661169f565b63d93c066560e01b5f5260045ffd5b5060315460ff16611695565b611850915060203d602011610c9457610c868183613cff565b5f611673565b346105955760203660031901126105955760043561187381610624565b60018060a01b03165f52601e602052602060ff60405f2054166040519015158152f35b34610595576040366003190112610595576109dc6024356004356118b982610624565b6118ca6118c582613e21565b614dcb565b614e02565b34610595576118dd36610d6a565b6118e5614723565b6118ed614743565b6001600160a01b0383165f818152601e602052604090205490939060ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91611af0575b50610c5d5761197c6020610e5584863386610e50614207565b611ae15781836119959261198e6155ef565b33906142d4565b806119c7575b50823b1561059557610eb8925f92836040518096819582946312ede2c560e21b84523360048501613d51565b60405163d57dfa1560e01b8152602081806119e786883360048501613d51565b0381885afa908115610c9b575f91611ac2575b50604051633de6b58d60e21b81529060208280611a1c87893360048501613d51565b0381895afa908115610c9b57611a39925f92611aa1575b50613f0e565b6001821015611a755750670de0b6b3a76400009050676765c793fa10079d601b1b5b10611a66575f61199b565b6302c9375f60e21b5f5260045ffd5b670de0b6b3a764000091611a97611a92611a9c93602a5490614826565b613f1b565b613f3f565b611a5b565b611abb91925060203d6020116117d3576117c58183613cff565b905f611a33565b611adb915060203d6020116117d3576117c58183613cff565b5f6119fa565b6367c11db560e01b5f5260045ffd5b611b09915060203d602011610c9457610c868183613cff565b5f611963565b905f5260205260405f2090565b3461059557604036600319011261059557600435611b3981610624565b6001600160a01b03165f908152601260209081526040808320602435845282529182902080546001820154600283015460038401546004850154600590950154875194855260ff93841615159685019690965295830152606082019490945292161515608083015260a082015260c090f35b3461059557604036600319011261059557600435602435611bcb81610624565b336001600160a01b03821603611be4576109dc91614e74565b63334bd91960e11b5f5260045ffd5b34610595575f36600319011261059557611c0b614445565b60315460ff811615611c4a5760ff19166031557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b34610595575f36600319011261059557611c71614445565b611c796155ef565b611c84600754614c20565b601554604080516305c54c4b60e11b81525f60048201526001600160a01b0390921660248301528160448173__$a41e93b90bf90930769ef660a8f88d039d$__5af48015610c9b57611cdd915f91611ce5575b50614544565b6109dc614d9a565b611d07915060403d604011611d0f575b611cff8183613cff565b810190613f5d565b90505f611cd7565b503d611cf5565b634e487b7160e01b5f52603260045260245ffd5b601f54811015611d4257601f5f5260205f2001905f90565b611d16565b3461059557602036600319011261059557600435601f5481101561059557601f5f525f516020615e0b5f395f51905f5201546040516001600160a01b039091168152602090f35b90606060031983011261059557600435611da781610624565b91602435906001600160401b03821161059557611dc691600401610635565b909160443590565b3461059557611ddc36611d8e565b90611de8939293614723565b611df0614743565b8115610cce576001600160a01b0383165f908152601e602052604090205460ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91611e79575b50610c5d57610c159333936148d0565b611e92915060203d602011610c9457610c868183613cff565b5f611e69565b34610595575f36600319011261059557602060ff603154166040519015158152f35b3461059557602036600319011261059557600435611ed781610624565b611edf614445565b611eee610e7d610e76836108b0565b610cbf57611f08611efe826108b0565b805460ff19169055565b6001600160a01b038116905f5b601f5480821015611f985783611f3f611f2d84611d2a565b90546001600160a01b039291906105ca565b1614611f4e5750600101611f15565b5f516020615dab5f395f51905f529350610aae9291611f8a611f84611f7d611f78611f9095613ee7565b611d2a565b90546105ca565b91611d2a565b90613d9e565b610aa2613f7c565b50505f516020615dab5f395f51905f529150610aae90610aa2565b34610595575f366003190112610595576033546040516001600160a01b039091168152602090f35b3461059557602036600319011261059557600435611ff881610624565b612000614445565b61200e611686601d546105dd565b6001600160a01b03918216911680821415908161216e575b50612125575b61203a611686601d546105dd565b601d80546001600160a01b0319166001600160a01b038416179055811515806120a0575b612091576001600160a01b03167f483bdedaaf23706a9800ac1af0d852b34927780d79f9d6ba60a80c7cad75ea395f80a3005b631b3b488360e11b5f5260045ffd5b50600460206120b3611686601d546105dd565b6040516338d52e0f60e01b815292839182905afa908115610c9b575f916120f6575b506120e46116866001546105dd565b6001600160a01b03909116141561205e565b612118915060203d60201161211e575b6121108183613cff565b810190614021565b5f6120d5565b503d612106565b6121695f806121356034546105dd565b60405163429c145b60e11b602082019081526004825290612157602482613cff565b51915af4612163613fe3565b90614ee4565b61202c565b905015155f612026565b34610595575f3660031901126105955760206040516113888152f35b34610595575f366003190112610595576121ac614445565b602f80546001600160a01b031981169091555f906001600160a01b03165f516020615e2b5f395f51905f528280a3005b34610595575f366003190112610595576020604051678ac7230489e800008152f35b346105955760203660031901126105955760043561221b81610624565b5f5f91601f54905b81841061223557604051838152602090f35b9091612249611686611686611f7d87611d2a565b6020604051809263572bf25760e01b8252818061226988600483016105e9565b03915afa8015610c9b57600192612287925f92612291575b50613e47565b9301929190612223565b6122aa91925060203d81116117d3576117c58183613cff565b905f612281565b34610595575f366003190112610595576020600a54604051908152f35b34610595575f3660031901126105955760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b34610595575f36600319011261059557612336614445565b61233e614743565b600160ff1960315416176031557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b34610595575f3660031901126105955760206106c6614efa565b34610595575f366003190112610595576021546022549061082660235460245460255460265460275460285460295491602a5493602b5495602c5497602d54996040519d8d8f9e8f9060ff809160081c169216909b99979593919e9d9c9a98969492909e6101c08d019f15158d52151560208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526101a00152565b34610595575f366003190112610595576034546040516001600160a01b039091168152602090f35b6124ef90929192610100806101208301958051845260208101516020850152604081015160408501526060810151151560608501526080810151608085015260a081015160a085015260c0810151151560c08501526124df60e082015160e086019060018060a01b03169052565b01516001600160a01b0316910152565b565b34610595576124ff36610662565b9091612509614036565b506001600160a01b0384165f818152601e602052604090205490919060ff1615610cbf5760049460606125be926125a9602096612544614036565b9861255482828689610e50614207565b9361256c6125648b870151151590565b15158c880152565b604085015160808c015284518b5261259361258a6080870151151590565b151560c08d0152565b61259f8383838a6142d4565b8a8c015286613c1b565b6040880152015160a086015260e0850161408a565b60405163f8eef10f60e01b815293849182905afa918215610c9b57610826926125f3915f916125ff575b50610100830161408a565b60405191829182612471565b612618915060203d60201161211e576121108183613cff565b5f6125e8565b346105955760206106c661263136610662565b92919091614099565b34610595575f36600319011261059557602f546040516001600160a01b039091168152602090f35b346105955761267036611d8e565b61267b939293614723565b612683614743565b8015610cce576001600160a01b0383165f818152601e602052604090205490919060ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f9161291b575b50610c5d5761270d336108c9565b60405163a646a19360e01b8152906020828061272d888b600484016140bb565b0381875afa908115610c9b5761274a925f926128fa575b50611b0f565b9161275784873388614099565b92612765838689338a61436f565b926127776116866116866001546105dd565b604051636eb1769f60e11b8152336004820152306024820152602081604481855afa8015610c9b5786915f916128db575b50106128cc57602060405180926370a0823160e01b825281806127ce33600483016105e9565b03915afa8015610c9b5785915f916128ad575b501061179c57600561281d82612809602097612804612827968c8f60049f614fbd565b6151c6565b848a01805460ff1916600117905587613e47565b9201918254613e47565b905560405163f8eef10f60e01b815294859182905afa908115610c9b577f2386b33461472749e636e4d07c6e2b5e114398809469e25100c5ef910a663f64935f92612888575b5061178f9060405193849360018060a01b03169633856140cc565b61178f9192506128a69060203d60201161211e576121108183613cff565b919061286d565b6128c6915060203d6020116117d3576117c58183613cff565b5f6127e1565b6339e067d560e21b5f5260045ffd5b6128f4915060203d6020116117d3576117c58183613cff565b5f6127a8565b61291491925060203d6020116117d3576117c58183613cff565b905f612744565b612934915060203d602011610c9457610c868183613cff565b5f6126ff565b3461059557604036600319011261059557602060ff61297060243560043561296182610624565b5f526032845260405f206108e2565b54166040519015158152f35b346105955760203660031901126105955760043561299981610624565b60018060a01b03165f52602e602052602060405f20546040519043148152f35b34610595576129c736610d6a565b6129d2929192614723565b6129da614743565b6001600160a01b0382165f908152601e602052604090205460ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91612a98575b50610c5d57610c15925f92839261215760018060a01b036033541693612a8a6040519384926020840196634b195c9560e11b885260248501613d51565b03601f198101835282613cff565b612ab1915060203d602011610c9457610c868183613cff565b5f612a4d565b3461059557612ac536610662565b612ad0929192614723565b612ad8614743565b6001600160a01b0384165f908152601e602052604090205460ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91612b88575b50610c5d57610c15935f936121578594612a8a60018060a01b0360335416956040519485936020850197631318562160e31b8952602486016140f7565b612ba1915060203d602011610c9457610c868183613cff565b5f612b4b565b3461059557602036600319011261059557600435612bc481610624565b612bcc614445565b6001600160a01b031680156109ad57601480546001600160a01b0319811683179091556001600160a01b03167f593eaf5e0e1afc1c041a664a437fdae719a628836785d06572b008e6ca5c189d5f80a3005b3461059557602036600319011261059557600435612c3b81610624565b5f5f601f545b808210612c5357604051838152602090f35b9091612c67611686611686611f7d86611d2a565b905f60405180936371e078ab60e01b82528180612c878a600483016105e9565b03915afa918215610c9b575f92612cf5575b505f905b8251821015612ce757612cdf600191612cd9612cd4612ccf612cbe8b6108c9565b612cc8888a6141a3565b5190611b0f565b6141b7565b6152f3565b90613e47565b910190612c9d565b939050600191500190612c41565b612d129192503d805f833e612d0a8183613cff565b810190614120565b905f612c99565b34610595575f3660031901126105955760206040515f8152f35b3461059557602036600319011261059557600435612d5081610624565b612d58614445565b6001600160a01b031680156109ad57601580546001600160a01b0319811683179091556001600160a01b03167f5d16ad41baeb009cd23eb8f6c7cde5c2e0cd5acf4a33926ab488875c37c37f385f80a3005b34610595575f3660031901126105955760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91612e9b575b50610c5d57335f526020805260ff60405f205416612e8c57335f5260208052612e4060405f20600160ff19825416179055565b60295480612e7d575b7fd5acd12fd21128fb0a61c90d812321cb1423b1948052a3e93786c482bbef6608610aae6029546040519182913383612eba565b612e8690615267565b5f612e49565b63992c89a960e01b5f5260045ffd5b612eb4915060203d602011610c9457610c868183613cff565b5f612e0d565b6001600160a01b039091168152602081019190915260400190565b34610595575f366003190112610595576015546001600160a01b031633819003612fac5760018060a01b03600154166040519163c0b6476b60e01b835260166004840152816024840152604483015260208260648173__$a41e93b90bf90930769ef660a8f88d039d$__5af4918215610c9b575f92612f8b575b506040518281527f7edfb0d5d58c6a3d398df94a9bdfa2b33f3fa42ae40d72ebdc717d2db3953ee590602090a161082660405192839283612eba565b612fa591925060203d6020116117d3576117c58183613cff565b905f612f4f565b6282b42960e81b5f5260045ffd5b34610595575f366003190112610595576013546040516001600160a01b039091168152602090f35b34610595576130146020612ff536610662565b60405163d57dfa1560e01b815295869493859384939160048501613d51565b03916001600160a01b03165afa8015610c9b576020915f9161303a575b50604051908152f35b6130519150823d84116117d3576117c58183613cff565b5f613031565b908152602081019190915260400190565b346105955761307636610662565b9160018060a01b0384165f52601e60205260ff60405f20541615610cbf576130a093610e50614207565b606081015190519061082660405192839283613057565b34610595576020366003190112610595576004356130d3614723565b8015610cce5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f91613248575b50610c5d5761313f6116866014546105dd565b3314158061323c575b61181c576131546155ef565b6015546001600160a01b0390613169906105dd565b16158015613226575b156131ff575f516020615d6b5f395f51905f5261178f6131935f8094613f0e565b9261319d84615332565b6131a733856153d2565b906131b0614d9a565b806131f0575b506131c56116866014546105dd565b33036131da575b604051918291339583613057565b335f908152602e602052604090204390556131cc565b6131f990615267565b5f6131b6565b5f516020615d6b5f395f51905f5261178f61319361321f60255485614826565b8094613f0e565b506132356116866014546105dd565b3314613172565b5060315460ff16613148565b613261915060203d602011610c9457610c868183613cff565b5f61312c565b60206040818301928281528451809452019201905f5b81811061328a5750505090565b82516001600160a01b031684526020938401939092019160010161327d565b34610595575f36600319011261059557604051601f80548083525f91825260208301915f516020615e0b5f395f51905f5291905b81811061330057610826856132f481870382613cff565b60405191829182613267565b82546001600160a01b03168452602090930192600192830192016132dd565b346105955760c061333e61333236610662565b92610e50929192614207565b60a060405191805183526020810151151560208401526040810151604084015260608101516060840152608081015115156080840152015160a0820152f35b34610595575f366003190112610595576020604051670de0b6b3a76400008152f35b34610595575f366003190112610595576015546040516001600160a01b039091168152602090f35b34610595576020366003190112610595576004356013546001600160a01b03163303612fac57602c5490600181106134f357676765c793fa10079d601b1b81116134c257600a549182613486575b507fd45d1eb66419c036e2fa401916c7db417696f889cf4ab8ca92272327e8e1c83e916134406155ef565b61344982600a55565b61345c613457600a546147bc565b600b55565b61346f61346a600a546147f2565b600c55565b61347761446c565b610aae60405192839283613057565b61349861349282614785565b84613e47565b906134a281614785565b8410156134db57505f905b82119081156134d1575b506134c2575f613415565b631a8b543360e21b5f5260045ffd5b905081105f6134b7565b6134e76134ed91614785565b84613f0e565b906134ad565b63824c180760e01b5f5260045ffd5b346105955761351036610662565b61351b929192614723565b6014546001600160a01b03163303612fac576001600160a01b0384165f908152601e602052604090205460ff1615610cbf57613585935f936121578594612a8a60018060a01b036033541695604051948593602085019763c939ad6160e01b8952602486016140f7565b610c15614d9a565b34610595575f366003190112610595576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160801b031690565b34610595575f366003190112610595575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b346105955760206106c661367c36610662565b929190916142d4565b346105955760203660031901126105955760206106c66004356136a781610624565b614305565b34610595576040366003190112610595576109dc6024356004356136cf82610624565b6136db6118c582613e21565b614e74565b34610595576136ee36611d8e565b906136f7614723565b6136ff614743565b8115610cce576001600160a01b0384165f818152601e602052604090205460ff1615610cbf5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610c9b575f916137fb575b50610c5d5761378e60209383866137b498614fbd565b613797336108c9565b9360405180968194829363a646a19360e01b8452600484016140bb565b03915afa908115610c9b576137cf925f926128fa5750611b0f565b60048101805460ff166137e6576109dc6001603055565b805460ff191690555f90600501555f80610c15565b613814915060203d602011610c9457610c868183613cff565b5f613778565b346105955760603660031901126105955760043561383781610624565b6024359061384482610624565b60443590613850614445565b601d546001600160a01b039182169116811461389f5761389a6109dc9361388c60405194859263a9059cbb60e01b602085015260248401612eba565b03601f198101845283613cff565b615bf2565b60405162461bcd60e51b815260206004820152601960248201527821b0b73737ba103932b9b1bab2903b30bab63a103a37b5b2b760391b6044820152606490fd5b34610595575f36600319011261059557610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b346105955760803660031901126105955760043561396981610624565b6024359061397682610624565b604435906001600160401b0382116105955760209261399c6106c6933690600401610635565b916064359361436f565b34610595575f366003190112610595576139be614036565b506108266139ca613d8e565b6139dd6139d75f546105dd565b8261408a565b6139f46139eb6001546105dd565b6020830161408a565b613a0b613a026002546105dd565b6040830161408a565b60035460608201526004546080820152613a56613a46600554613a40613a30826135d1565b6001600160801b031660a0860152565b60801c90565b6001600160801b031660c0830152565b613a77613a6960065464ffffffffff1690565b64ffffffffff1660e0830152565b6007546101008201526040519182918281516001600160a01b0390811682526020808401518216908301526040808401519091169082015261012081019291610100908190606081810151908501526080808201519085015260a0808201516001600160801b03169085015260c0818101516001600160801b03169085015260e08181015164ffffffffff16908501520151910152565b3461059557602036600319011261059557600435613b2b81610624565b613b33614445565b6001600160a01b03168015613b7257602f80546001600160a01b0319811683179091556001600160a01b03165f516020615e2b5f395f51905f525f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b34610595575f3660031901126105955760206040515f516020615d8b5f395f51905f528152f35b34610595575f36600319011261059557601d546040516001600160a01b039091168152602090f35b3461059557613be236610662565b9060018060a09594951b0383165f52601e60205260ff60405f20541615610cbf57602093613c1293610e50614207565b51604051908152f35b6001600160a01b0381165f818152601e6020526040902054909491939060ff1615610cbf576020604051809663d57dfa1560e01b82528180613c6287878a60048501613d51565b03915afa928315610c9b57613c89955f94613c8c575b50613c8393946142d4565b90614391565b90565b613c839450613ca99060203d6020116117d3576117c58183613cff565b93613c78565b634e487b7160e01b5f52604160045260245ffd5b61014081019081106001600160401b03821117613cdf57604052565b613caf565b60c081019081106001600160401b03821117613cdf57604052565b601f909101601f19168101906001600160401b03821190821017613cdf57604052565b90816020910312610595575190565b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b039091168152604060208201819052613c8993910191613d31565b6040513d5f823e3d90fd5b604051906124ef61014083613cff565b604051906124ef61012083613cff565b80546001600160a01b0360039390931b83811b199091169290931690921b179055565b601f5490600160401b821015613cdf5760018201601f55601f54821015611d4257601f5f9081526124ef925f516020615e0b5f395f51905f5201613d9e565b5190811515820361059557565b9081602091031261059557613c8990613e00565b5f526032602052600160405f20015490565b634e487b7160e01b5f52601160045260245ffd5b91908201809211610d3e57565b5f54604051630481930d60e21b81526001600160a01b0392831660048201529160209183916024918391165afa908115610c9b575f91613e92575090565b613c89915060203d6020116117d3576117c58183613cff565b60111115613eb557565b634e487b7160e01b5f52602160045260245ffd5b606081019493926011831015613eb557604092825260208201520152565b5f19810191908211610d3e57565b676765c793fa10079d601b1b90810391908211610d3e57565b91908203918211610d3e57565b90670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610d3e57565b8115613f49570490565b634e487b7160e01b5f52601260045260245ffd5b91908260409103126105955760208251613f7681610624565b92015190565b601f548015613fcf575f19810190601f54821015611d4257601f5f8190527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80690910180546001600160a01b031916905555565b634e487b7160e01b5f52603160045260245ffd5b3d1561401c573d906001600160401b038211613cdf5760405191614011601f8201601f191660200184613cff565b82523d5f602084013e565b606090565b908160209103126105955751613c8981610624565b6040519061012082016001600160401b03811183821017613cdf576040525f610100838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b6001600160a01b039091169052565b906140a8939291610e50614207565b60a081519101518103908111610d3e5790565b916020613c89938181520191613d31565b949392916040926140f29260018060a01b03168752606060208801526060870191613d31565b930152565b6001600160a01b03918216815291166020820152606060408201819052613c8993910191613d31565b602081830312610595578051906001600160401b03821161059557019080601f83011215610595578151916001600160401b038311613cdf578260051b906040519361416f6020840186613cff565b845260208085019282010192831161059557602001905b8282106141935750505090565b8151815260209182019101614186565b8051821015611d425760209160051b010190565b906040516141c481613ce4565b60a0600582948054845260ff60018201541615156020850152600281015460408501526003810154606085015260ff600482015416151560808501520154910152565b6040519061421482613ce4565b5f60a0838281528260208201528260408201528260608201528260808201520152565b506001600160a01b03165f818152601e60205260409020549293909260ff1615610cbf576142919260209260018060a01b03165f526012835260405f209460405180958194829363a646a19360e01b8452600484016140bb565b03915afa908115610c9b575f916142b5575b505f52602052613c8960405f206141b7565b6142ce915060203d6020116117d3576117c58183613cff565b5f6142a3565b9192909260018060a01b0383165f52601e60205260ff60405f20541615610cbf57613c8993612cd493610e50614207565b6014546001600160a01b0316908115614369575f918291604051602081019163c084b10b60e01b835260018060a01b031660248201526024815261434a604482613cff565b51915afa50613c8961435a613fe3565b60208082518301019101613d22565b50505f90565b9061437b939291614099565b908101809111610d3e57602454613c8991614826565b600182106143d0576022546143a591614826565b90670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610d3e57613c8991613f3f565b50676765c793fa10079d601b1b919050565b64ffffffffff600654164203428111610d3e576001811061443b57614436613c8991614421600a54600b54600c54600d5490600e5492601154946154c8565b9061443060055460801c6135d1565b91615580565b6135d1565b5060055460801c90565b602f546001600160a01b0316330361445957565b63118cdaa760e01b5f523360045260245ffd5b600460206144816116866116866002546105dd565b6040516318160ddd60e01b815292839182905afa908115610c9b575f91614525575b506004556144ea6144b9600354600454906158f5565b806011556144d781600a54600b54600c54600d5491600e54936154c8565b600955600954600f549060045492615929565b906008556010556144fc60085f615781565b5f516020615d2b5f395f51905f526008546009549061452060405192839283613057565b0390a1565b61453e915060203d6020116117d3576117c58183613cff565b5f6144a3565b80614560575b50600460206144816116866116866002546105dd565b6003548181106145885761457961443661457f936158c4565b90613f0e565b6003555f61454a565b63bb55fd2760e01b5f5260045ffd5b806145b25750600460206144816116866116866002546105dd565b61457f90612cd9614436600354926158c4565b90826146be575b6004925060206145e561168661168660028601546105dd565b6040516318160ddd60e01b815294859182905afa918215610c9b575f516020615d2b5f395f51905f52935f93614697575b5081816004614684930194855561467761463660038301548754906158f5565b8060098501556146608160028601546003870154600488015460058901549160068a0154936154c8565b966001850197885587546007860154915492615929565b9083556008830155615781565b5490549061452060405192839283613057565b6146849193506146b6839160203d6020116117d3576117c58183613cff565b939150614616565b60038201805493808510614588576004946145796144366146de936158c4565b90556145cc565b9060049280614705575b5060206145e561168661168660028601546105dd565b61471b6003840191612cd96144368454926158c4565b90555f6146ef565b600260305414614734576002603055565b633ee5aeb560e01b5f5260045ffd5b60ff6031541661181c57565b7f028f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c25d81116105955761138860646127109202010490565b801561138819829004676765c793fa10079d601b1b1115171561059557612710676765c793fa10079d601b1b909102611388010490565b7e1a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e90d8111610595576113886109c46127109202010490565b7e0d1b71758e219652bd3c36113404ea4a8c154c985f06f694467381d7dbf486811161059557611388806127109202010490565b81611388190481111582151715610595576127109102611388010490565b9190826080910312610595578151916020810151916060604083015192015190565b91908251928382525f5b848110614890575050825f602080949584010152601f8019910116010190565b80602080928401015182828601015201614870565b9092608092613c89959460018060a01b03168352602083015260408201528160608201520190614866565b919390938315610cce576001600160a01b0382169485156109ad576001600160a01b038416803b156105955760405163caf9278560e01b81525f818061491b87878a60048501613d51565b0381855afa8015610c9b57614c0c575b506149346155ef565b61493d846108c9565b6020604051809363a646a19360e01b8252818061495e8989600484016140bb565b03915afa908115610c9b57614979925f926128fa5750611b0f565b94614988600187015460ff1690565b8080614bf5575b614be65780614bcd575b614bbe576149a9838386886142d4565b905f198103614bb65750945b6149c66116866116866002546105dd565b60405163055986c560e11b8152602081600481305afa8015610c9b576080915f91614b97575b5060405192614a1284614a0489898d60208501613d51565b03601f198101865285613cff565b895f89614a3560405197889687958694638a94b05f60e01b8652600486016148a5565b03925af1908115610c9b57614a94915f915f91614b61575b50614a5d61443660055460801c90565b6003850155614a8689614a746116866001546105dd565b614a7e5f546105dd565b903390615961565b80614b4e575b508254613f0e565b81556005810180548254809111614b46575b50815415614b31575b50614ab986614597565b5415159283614b13575b5050509050614b0457614ad4614d9a565b60405190815233907f05f2eeda0e08e4b437f487c8d7d29b14537d15e3488170dc3de5dbdf8dac468490602090a3565b6370c1d60160e01b5f5260045ffd5b614b279350678ac7230489e80000946142d4565b10805f8080614ac3565b5f905560048101805460ff191690555f614aaf565b81555f614aa6565b614b59908454613e47565b83555f614a8c565b9050614b85915060803d608011614b90575b614b7d8183613cff565b810190614844565b92509050905f614a4d565b503d614b73565b614bb0915060203d6020116117d3576117c58183613cff565b5f6149ec565b9050946149b5565b634b3c322760e11b5f5260045ffd5b50614bdf600287015460235490613e47565b4211614999565b63224aae4f60e21b5f5260045ffd5b50614c07610e7d600489015460ff1690565b61498f565b80610edd5f614c1a93613cff565b5f61492b565b5f806124ef9260018060a01b036034541690604051602081019163489493f160e11b8352602482015260248152612157604482613cff565b90816060910312610595578051916040602083015192015190565b6001600160a01b0391821681529116602082015260408101919091526001600160801b03909116606082015260800190565b9160018310610cce576060614cfa93614cbf60085f615781565b614ccf6116866116865f546105dd565b614cda6005546135d1565b915f604051809881958294636b81068560e11b84528a8060048601614c73565b03925af1918215610c9b575f935f93614d61575b50614d1b8360085f6145c5565b6040516001600160a01b03909116907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689080614d58878783613057565b0390a281929190565b909250614d8791935060603d606011614d93575b614d7f8183613cff565b810190614c58565b9391905092915f614d0e565b503d614d75565b6124ef5f8060018060a01b03603454166040516020810190633fa5758d60e11b825260048152612157602482613cff565b805f52603260205260ff614de23360405f206108e2565b541615614dec5750565b63e2517d3f60e01b5f523360045260245260445ffd5b805f52603260205260ff614e198360405f206108e2565b541661436957805f526032602052614e348260405f206108e2565b805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b805f52603260205260ff614e8b8360405f206108e2565b54161561436957805f526032602052614ea78260405f206108e2565b805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b15614eec5750565b805190811561059557602001fd5b64ffffffffff600654164203428111610d3e5760018110614f43576135d190614f2f601154600954600f549060045492615929565b506005546001600160801b031691906159a5565b506005546001600160801b031690565b919082608091031261059557614f6882613e00565b916020810151916060604083015192015190565b6001600160a01b0391821681529116602082015260408101919091526001600160801b03909116606082015260a060808201819052613c8992910190614866565b9091614fc8336108c9565b60405163a646a19360e01b81529060208280614fe88689600484016140bb565b03816001600160a01b0388165afa908115610c9b5761500d925f926128fa5750611b0f565b9261501c600185015460ff1690565b6151b7576150a69260809261502f6155ef565b61503b878285856159df565b61504487614c20565b6150866150586116866116866002546105dd565b9261507861506860055460801c90565b9360405196879360208501613d51565b03601f198101855284613cff565b5f60405180968195829463292aab8160e11b84528b333360048701614f7c565b03925af1908115610c9b575f905f92615183575b506150ca61443660055460801c90565b60038401556150df6116866116865f546105dd565b91823b15610595575f6040518094635c921eb960e01b82528183816151088b3360048401612eba565b03925af1918215610c9b5761512c936151259361516f5750613e47565b8254613e47565b905561513781614544565b61513f614d9a565b60405190815233907fcbc04eca7e9da35cb1393a6135a199ca52e450d5e9251cbd99f7847d33a3675090602090a2565b80610edd5f61517d93613cff565b5f612281565b90506151a7915060803d6080116151b0575b61519f8183613cff565b810190614f53565b5091505f6150ba565b503d615195565b630bff073160e31b5f5260045ffd5b6001546015546001600160a01b039081169291169073__$a41e93b90bf90930769ef660a8f88d039d$__803b15610595575f926084916040519586948593632843d15960e21b8552600485015260248401527f65991ea5d80f7b6dc8c32648f59c5a653beb10caddae8fefad6966b35a0a65f1604484015260648301525af48015610c9b576152525750565b8061525e5f8093613cff565b80031261059557565b6001546015546001600160a01b039081169291169073__$a41e93b90bf90930769ef660a8f88d039d$__803b15610595575f926084916040519586948593632843d15960e21b8552600485015260248401527f42fd249bdce4c4255579b56a79389d6d679ba17c7b7c848ee5c0a2ffcf354cf1604484015260648301525af48015610c9b576152525750565b6152fb6143e2565b60608201519081158015615329575b61532357613c89929161531c91615b88565b9051615bb8565b50505190565b5082511561530a565b6153406116866014546105dd565b33146153cf57602b5481106153c05760049060206153646116866116865f546105dd565b6040516318160ddd60e01b815293849182905afa8015610c9b5761538e925f916153a75750613e47565b6027541061539857565b6354db2d5d60e11b5f5260045ffd5b61517d915060203d6020116117d3576117c58183613cff565b6379db461960e01b5f5260045ffd5b50565b60018110610cce575f916153e7600884615781565b61540a826153f96116866001546105dd565b8361540487546105dd565b91615961565b606061544961541f61168661168687546105dd565b61542a6005546135d1565b60405196878094819363b3f1c93d60e01b835289893060048601614c73565b03925af1928315610c9b575f93615496575b50825f516020615d6b5f395f51905f52916154788460085f6146e5565b61549060405192839260018060a01b03169583613057565b0390a290565b5f516020615d6b5f395f51905f529193506154bf9060603d606011614d9357614d7f8183613cff565b5050929061545b565b909491949392938481831192831593615575575b5050811561556a575b508015615560575b61555157806154fe57505050505f90565b81811161550b5750505090565b8161553b61552a615524615540969795612cd995613f0e565b92613ef5565b916155358588613f0e565b90615bb8565b615b88565b8181111561554c575090565b905090565b63abc83fed60e01b5f5260045ffd5b50828410156154ed565b90508411155f6154e5565b10159150845f6154dc565b9161553561559192613c8994615c4a565b6158c4565b80546001600160801b0319166001600160801b03909216919091179055565b80546001600160801b031660809290921b6001600160801b031916919091179055565b9064ffffffffff1664ffffffffff19825416179055565b61561561560f61560560065464ffffffffff1690565b64ffffffffff1690565b42613f0e565b600181106153cf5761562b6144366005546135d1565b9060018210615772576156658161565261564b8561566c956008546159a5565b6005615596565b6009549061443061443660055460801c90565b60056155b5565b61567e64ffffffffff421660066155d8565b600460206156926116866116865f546105dd565b60405163a14e19d560e01b815292839182905afa8015610c9b57615709926145796156e092615701945f91615753575b506156da816156d56144366005546135d1565b615bb8565b92615bb8565b6156fc6156f66156f1600f54613ef5565b615b51565b82615bb8565b613f0e565b600754613e47565b6007555f516020615d4b5f395f51905f52600554615730615729826135d1565b9160801c90565b604080516001600160801b03938416815292909116602083015281908101614520565b61576c915060203d6020116117d3576117c58183613cff565b5f6156c2565b630a1cf3ed60e21b5f5260045ffd5b600681019061579b61560f615605845464ffffffffff1690565b91600183106158be5760058201926157b661443685546135d1565b9060018210615772576004926157fb6157f5836157e16157db87615809978d546159a5565b8a615596565b60018a0154906144306144368b5460801c90565b876155b5565b64ffffffffff4216906155d8565b602061581b61168661168686546105dd565b60405163a14e19d560e01b815293849182905afa908115610c9b575f516020615d4b5f395f51905f52956156fc6156f66156f1600761587a61281d9661457983998d6158829c5f92615891575b50816156d56144366156da93546135d1565b940154613ef5565b905554615730615729826135d1565b6144369250906156d56158b56156da9360203d6020116117d3576117c58183613cff565b93505090615868565b50505050565b6001600160801b0381116158de576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b6001821061436957600181106143d057818101809111610d3e576001600160801b03916159259161559191615b88565b1690565b90919392600111615957576159489161594191615bb8565b9283615bb8565b91828103908111610d3e579190565b505090505f905f90565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526124ef9161389a608483613cff565b818102918183041490151715610d3e57676765c793fa10079d601b1b6301e133809091048101908110610d3e57613c899161559191615bb8565b9290916001600160a01b03841690813b156105955760405163caf9278560e01b81525f8180615a1385893360048501613d51565b0381865afa8015610c9b57615b3d575b50678ac7230489e800008310615b2e5760046020615a486116866116866002546105dd565b6040516318160ddd60e01b815292839182905afa908115610c9b57615a759185915f916153a75750613e47565b60285410615b1f576020604051809363d57dfa1560e01b82528180615a9f868a3360048501613d51565b03915afa918215610c9b575f92615afe575b508115615aef57615ad993615acc615ad493602a5490614826565b9533906142d4565b613e47565b11615ae057565b630369fbd160e51b5f5260045ffd5b638dc8d9b360e01b5f5260045ffd5b615b1891925060203d6020116117d3576117c58183613cff565b905f615ab1565b6353977d1f60e01b5f5260045ffd5b630e25379960e21b5f5260045ffd5b80610edd5f615b4b93613cff565b5f615a23565b600181901c8115676765c793fa10079d601b1b82198190041017610595576f29c30f1029939b146664242d97d9f64960361b010490565b600182901c908215676765c793fa10079d601b1b83190482111761059557676765c793fa10079d601b1b02010490565b8115676765c793fa10079d601a1b19839004821115171561059557676765c793fa10079d601b1b9102676765c793fa10079d601a1b010490565b905f602091828151910182855af115613d73575f513d615c4157506001600160a01b0381163b155b615c215750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415615c1a565b600182106143d057744f3a68dbc8f03f243baf513267aa9a3ee524f8e028811161059557613c89916301e1338062f099c0615c9393676765c793fa10079d601b1b020104615bb8565b8015615d1a57676765c793fa10079d601c1b81800204906b09b18ab5df7180b6b80000008282020490676765c793fa10079d601d1b82820204906b1027e72f1f1281308800000082820204916b1363156bbee3016d7000000083830204936b169e43a85eb381aa580000008584020495676765c793fa10079d601b1b930101010101010190565b50676765c793fa10079d601b1b9056fe48f4f83c2f1843e8fd7ef13ffcff40fca5055dc1b9b074cd9dd0f9a8a8e09dd9f92a3abee06d57c996e7e19eb34560241fdc1fe67e9ebd503177710bf9fd820490890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1571840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1df980d21d8c7bb34800e668dbe003299093bac8e693614151d3c57f73f98a93d063386e75a280368ce68f5e39db7d7a3f09737ca4d289d9345a5f4968ff76955ba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c0a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8078be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220424bf867d4419188b72a72a2e77bba2d2c26c6e59c353f5133b3870c1c7be14864736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d00bcd6ff29ae71d399fb597d99792fa72d0863bd723b9ab11f79d0b8d8ac5bc871840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1ba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c04be98a500fedc87dbf83b0f2e386ce313ece8458dab0590898ef9a4135d1921408ae08a1778cb01871246af592e3e907ec9ba7bc1cc0b308a58e75fd2ee1dfba";
18
+ static readonly bytecode = "0x60a0604052346100e2576101006168df803803809161001d826100e6565b60a039126100e25761007d610030610143565b61003a60c0610159565b61004460e0610159565b61004f610100610159565b61005a610120610159565b90610066610140610159565b926101605194610077610180610159565b966101f2565b604051615ee990816108f68239608051818181610b7901528181610e1d015281816116470152818161193701528181611e6e015281816126f801528181612a6901528181612b6701528181612e2901528181613148015281816135f601526137940152f35b5f80fd5b60a0601f91909101601f19168101906001600160401b0382119082101761010c57604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761010c57604052565b60a051906001600160a01b03821682036100e257565b51906001600160a01b03821682036100e257565b908160209103126100e2575160ff811681036100e25790565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b60ff16604d81116101b657600a0a90565b610191565b9081629896800291629896808304036101b657565b90816064029160648304036101b657565b9081600a0291600a8304036101b657565b6102b06102d29261025860049a99976102366102f4986102146102f99c6105e2565b603280546001600160a01b0319166001600160a01b0392909216919091179055565b603380546001600160a01b0319166001600160a01b0392909216919091179055565b7b033b2e3c9fd0803ce800000000000000033b2e3c9fd0803ce80000006005556006805464ffffffffff19164264ffffffffff161790555f80546001600160a01b0319166001600160a01b0392909216919091179055565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600a55565b61030c610307600a54610630565b600b55565b61031f61031a600a54610666565b600c55565b6103346b02b3c569d7acdbe2a7800000600d55565b6103496b0295be96e640669720000000600e55565b61035d6a52b7d2dcc80cd2e4000000600f55565b6103665f601155565b61036f5f600855565b6103785f600955565b610383611388602a55565b61038e611f40602255565b61039a6203f480602355565b6001546020906103c0906103b4906001600160a01b031681565b6001600160a01b031690565b60405163313ce56760e01b815293849182905afa9182156105dd576103fa6103f56004946103ff935f916105ae575b506101a5565b6101bb565b602755565b600154602090610419906103b4906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105dd5761044d6103f5600494610452935f916105ae57506101a5565b602855565b61045d612710602655565b61046861012c602455565b61047a600160ff196021541617602155565b600154602090610494906103b4906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105dd576104cd6104c86004946104d2935f916105ae57506101a5565b6101d0565b602955565b6001546020906104ec906103b4906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105dd5761052561052060049461052a935f916105ae57506101a5565b6101e1565b602b55565b61053460c8602c55565b60015460209061054e906103b4906001600160a01b031681565b60405163313ce56760e01b815293849182905afa9182156105dd576105836104c86105ab94610588935f916105ae57506101a5565b602d55565b610591816106af565b5061059b81610727565b506105a5816107c1565b5061085b565b50565b6105d0915060203d6020116105d6575b6105c88183610120565b81019061016d565b5f6103ef565b503d6105be565b610186565b6001602f556001600160a01b031680156105fb57608052565b60405162461bcd60e51b815260206004820152600d60248201526c5a65726f20726567697374727960981b6044820152606490fd5b7e1a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e90d81116100e2576113886109c46127109202010490565b7e0d1b71758e219652bd3c36113404ea4a8c154c985f06f694467381d7dbf48681116100e257611388806127109202010490565b9060018060a01b03165f5260205260405f2090565b5f8052603160205260ff6106d0825f5160206168bf5f395f51905f5261069a565b5416610722575f805260316020526106f5815f5160206168bf5f395f51905f5261069a565b805460ff1916600117905533906001600160a01b03165f5f5160206167df5f395f51905f528180a4600190565b505f90565b5f5160206167ff5f395f51905f525f52603160205260ff610755825f51602061689f5f395f51905f5261069a565b5416610722575f5160206167ff5f395f51905f525f526031602052610787815f51602061689f5f395f51905f5261069a565b805460ff1916600117905533906001600160a01b03165f5160206167ff5f395f51905f525f5160206167df5f395f51905f525f80a4600190565b5f51602061685f5f395f51905f525f52603160205260ff6107ef825f51602061687f5f395f51905f5261069a565b5416610722575f51602061685f5f395f51905f525f526031602052610821815f51602061687f5f395f51905f5261069a565b805460ff1916600117905533906001600160a01b03165f51602061685f5f395f51905f525f5160206167df5f395f51905f525f80a4600190565b5f51602061681f5f395f51905f525f52603160205260ff610889825f51602061683f5f395f51905f5261069a565b5416610722575f51602061681f5f395f51905f525f5260316020526108bb815f51602061683f5f395f51905f5261069a565b805460ff1916600117905533906001600160a01b03165f51602061681f5f395f51905f525f5160206167df5f395f51905f525f80a460019056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461052f57806302768de41461052a578063048c661d14610525578063086c33e11461052057806309bf1e731461051b5780630ab30d8a146105165780630c34b914146105115780630c42dcaf1461050c5780630c679a7b14610507578063152f1584146105025780631a7fd200146104fd5780631d8557d7146104f8578063202019a6146104f357806320df4359146104ee57806322f2caf1146104e95780632445eee5146104e4578063248a9ca3146104df57806327156a68146104da5780632a5bf6d2146104d55780632a7e7849146104d05780632ab414fc146104cb5780632e1a7d4d146104c65780632f17682b146104495780632f2ff15d146104c157806332128b03146104bc57806334176a6d146104b757806336568abe146104b25780633f4ba83a146104ad5780634a7d0369146104a85780634ef501ac146104a357806353f357701461049e5780635c975abb14610499578063618295df14610494578063640bc4911461048f5780636817031b1461048a5780636bf6337914610485578063745a5cec1461048057806375417da61461047b5780637bc7780b146104765780638429d51f146104715780638456cb591461046c578063883c6b24146104675780638903573014610462578063893a53721461045d5780638ad7cacc146104585780638d7081e4146104535780638def3ec21461044e5780638f7e84981461044957806391d14854146104445780639612071f1461043f5780639632b92a1461043a57806398c2b1081461043557806398d721e0146104305780639daa54b41461042b578063a217fddf14610426578063a42dce8014610421578063a51e89631461041c578063a90d728f14610417578063a9bf805c14610412578063aaf637991461040d578063b21cfc7114610408578063b6b55f2514610403578063b82e16e3146103fe578063ba746694146103f9578063c3525c28146103f4578063c415b95c146103ef578063c4f8911c146103ea578063c939ad61146103e5578063cac89c5c146103e0578063cd3293de146103db578063d017e978146103d6578063d17e9883146103d1578063d547741f146103cc578063de597d5b146103c7578063e5711e8b146103c2578063e69d8c47146103bd578063ec915ee6146103b8578063ef16b0e0146103b3578063ef5bac25146103ae578063f36c8f5c146103a9578063fbfa77cf146103a45763fe64cc0b1461039f575f80fd5b613bd7565b613baf565b613b88565b613a20565b6139c6565b61395a565b613934565b61386e565b613734565b613700565b6136d9565b6136bd565b613631565b6135e1565b613556565b61341b565b6133f3565b6133d1565b613373565b6132fd565b61310b565b6130bc565b613036565b61300e565b612f29565b612dfe565b612d87565b612d6d565b612c72565b612bfb565b612b0b565b612a0d565b6129d0565b61298e565b611862565b612693565b612677565b61254a565b6124a2565b6123ea565b6123d0565b612313565b6122c3565b6122a6565b6121f3565b6121d1565b6121b5565b612018565b611ff0565b611ef7565b611ed5565b611e0b565b611d84565b611c65565b611bff565b611bb7565b611b28565b6118db565b6118a2565b61160a565b610f45565b610dc1565b610d62565b610d1a565b610cfc565b610ae1565b610a38565b610a11565b6109d6565b6109ac565b610926565b6108e7565b610836565b61081a565b6106f5565b6106db565b6106be565b61069a565b6105ec565b610593565b346105855760203660031901126105855760043563ffffffff60e01b811680910361058557602090637965db0b60e01b8114908115610574575b506040519015158152f35b6301ffc9a760e01b1490505f610569565b5f80fd5b5f91031261058557565b34610585575f3660031901126105855760206040515f516020615e545f395f51905f528152f35b60039190911b1c6001600160a01b031690565b6001600160a01b031690565b6001600160a01b03909116815260200190565b34610585575f366003190112610585576014546040516001600160a01b039091168152602090f35b6001600160a01b0381160361058557565b9181601f84011215610585578235916001600160401b038311610585576020838186019501011161058557565b60606003198201126105855760043561066a81610614565b9160243561067781610614565b91604435906001600160401b0382116105855761069691600401610625565b9091565b346105855760206106b66106ad36610652565b92919091613c1e565b604051908152f35b34610585575f3660031901126105855760206040516203f4808152f35b34610585575f3660031901126105855760206106b66143e5565b34610585575f366003190112610585575f61012060405161071581613cc6565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152610816610756613d81565b60085481526009546020820152600a546040820152600b546060820152600c546080820152600d5460a0820152600e5460c0820152600f5460e08201526010546101008201526011546101208201526040519182918291909161012080610140830194805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501520151910152565b0390f35b34610585575f366003190112610585576020604051611f408152f35b346105855760203660031901126105855760043561085381610614565b61085b614448565b601380546001600160a01b0319166001600160a01b039290921691821790557f10482019a808694c207a221c5aec7946dfeeb0d60acb5cc3bd6f9e36394564295f80a2005b6001600160a01b03165f908152601e6020526040902090565b6001600160a01b03165f90815260126020526040902090565b9060018060a01b03165f5260205260405f2090565b346105855760203660031901126105855760043561090481610614565b60018060a01b03165f5260208052602060ff60405f2054166040519015158152f35b346105855760203660031901126105855760043561094381610614565b61094b614448565b6001600160a01b0316801561099d57603280546001600160a01b0319811683179091556001600160a01b03167f748f1f5793b18b83e17ec58dd942771a149a2da21e05fe50ced8c278143c6d715f80a3005b6303988b8160e61b5f5260045ffd5b34610585575f366003190112610585576109c46144da565b6109cc61567b565b6109d46144e6565b005b34610585576020366003190112610585576004356109f381610614565b60018060a01b03165f52602e602052602060405f2054604051908152f35b34610585575f3660031901126105855760206040515f516020615df45f395f51905f528152f35b3461058557602036600319011261058557600435610a5581610614565b610a5d614448565b6001600160a01b0381165f818152601e602052604090205460ff16610ad2577fa77e7c594c11a0d5d9d8e6a9132ac0db912dc0f34f5fb7d94860fe38d16410bd91610acd915f52601e60205260405f20600160ff19825416179055610ac181613dc4565b604051918291826105d9565b0390a1005b63dc37823360e01b5f5260045ffd5b3461058557608036600319011261058557600435610afe81610614565b6024356001600160401b03811161058557610b1d903690600401610625565b6044359060643592610b2e84610614565b610b3661479d565b610b3e6144da565b8215610ced576001600160a01b0385165f908152601e602052604090205460ff1615610cde5760405163fe575a8760e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa908115610cba575f91610cbf575b50610c7c5760405163fe575a8760e01b81526001600160a01b0386166004820181905291602090829060249082905afa908115610cba575f91610c8b575b50610c7c5760ff6021541615610c6d57801561099d57610c19838387896142d7565b908115159081610c62575b50610c3e575b50610c3494614956565b6109d46001602f55565b610c47906147bd565b8310610c53575f610c2a565b63175dd87760e31b5f5260045ffd5b90503314155f610c24565b6312cefcd560e31b5f5260045ffd5b632652747360e21b5f5260045ffd5b610cad915060203d602011610cb3575b610ca58183613d02565b810190613e10565b5f610bf7565b503d610c9b565b613d76565b610cd8915060203d602011610cb357610ca58183613d02565b5f610bb9565b630867d69960e11b5f5260045ffd5b63162908e360e11b5f5260045ffd5b346105855760203660031901126105855760206106b6600435613e24565b3461058557602036600319011261058557600435610d3781610614565b610d49610d4382613e57565b91614308565b8101809111610d5d57602090604051908152f35b613e36565b346105855760203660031901126105855760206106b6600435610d8481610614565b613e57565b90604060031983011261058557600435610da281610614565b91602435906001600160401b0382116105855761069691600401610625565b3461058557610dcf36610d89565b610dd761479d565b610ddf6144da565b6001600160a01b0383165f818152601e602052604090205490939060ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91610f26575b50610c7c576020610e748385610e7b943390610e6f61420a565b61423a565b0151151590565b610f1757335f9081526020805260409020610ea090610e9c905b5460ff1690565b1590565b610f0857610eac61567b565b823b1561058557610ed7925f928360405180968195829463cf2c52cb60e01b84523360048501613d54565b03925af18015610cba57610eee575b610c346144e6565b80610efc5f610f0293613d02565b80610589565b5f610ee6565b6361803dfb60e11b5f5260045ffd5b636a1b5fa160e01b5f5260045ffd5b610f3f915060203d602011610cb357610ca58183613d02565b5f610e55565b3461058557604036600319011261058557600435601181101561058557602435610f6d61567b565b610f7682613eae565b600982148080156115f7575b80156115e4575b80156115d3575b80156115c0575b80156115ad575b801561159a575b8015611587575b8015611574575b8015611561575b801561154e575b801561153b575b8015611528575b610fd884613eae565b6005841480918115611513575b81156114fe575b81156114e9575b1561147c57505f516020615e545f395f51905f525f52603160205261102b610e9c610e95335f516020615e745f395f51905f526108d2565b61146d575b5f9161103b85613eae565b156110a25750508015611093576027548111611084575f516020615e345f395f51905f5291610acd6028549261107081602855565b6110786144e6565b60405193849384613ecc565b635bf62a1160e01b5f5260045ffd5b635b9ad34160e11b5f5260045ffd5b6110ab84613eae565b600884036110f757505080156110935760285481106110e8575f516020615e345f395f51905f5291610acd602754926110e381602755565b611070565b631749c8ff60e11b5f5260045ffd5b61110084613eae565b600b8403611142575050602254811015611133575f516020615e345f395f51905f5291610acd602a54926110e381602a55565b6303de40d960e01b5f5260045ffd5b61114b84613eae565b8361118a575050602a5481111561117b575f516020615e345f395f51905f5291610acd602254926110e381602255565b637c07cff960e01b5f5260045ffd5b61119384613eae565b600184036111e857505062015180811080156111dc575b6111cd575f516020615e345f395f51905f5291610acd602354926110e381602355565b63d7c43e0f60e01b5f5260045ffd5b5062093a8081116111aa565b6111f184613eae565b6002840361121a5750505f516020615e345f395f51905f5291610acd602654926110e381602655565b61122384613eae565b600384036112745750909160018311611265576021805461ff0019166001851460081b61ff00161790555f516020615e345f395f51905f5292610acd90611070565b63af979eb560e01b5f5260045ffd5b61127d84613eae565b600484036112bb575090916001831161126557610acd836110e360015f516020615e345f395f51905f52961460ff8019602154169115151617602155565b6112c484613eae565b156112e957505f516020615e345f395f51905f5291610acd602454926110e381602455565b6112f283613eae565b6006830361131a57505f516020615e345f395f51905f5291610acd600f54926110e381600f55565b61132383613eae565b6007830361134b57505f516020615e345f395f51905f5291610acd602554926110e381602555565b61135483613eae565b600a830361137c57505f516020615e345f395f51905f5291610acd602954926110e381602955565b61138583613eae565b600c83036113ad57505f516020615e345f395f51905f5291610acd600d54926110e381600d55565b6113b683613eae565b600d83036113e457508015610ced575f516020615e345f395f51905f5291610acd602b54926110e381602b55565b915f516020615e345f395f51905f52926113fd82613eae565b600e82036114165750610acd600e54926110e381600e55565b61141f82613eae565b600f82036114385750610acd602c54926110e381602c55565b9161144282613eae565b60108214611454575b610acd90611070565b9150610acd602d549261146681602d55565b905061144b565b634ca8886760e01b5f5260045ffd5b156114da575f516020615dd45f395f51905f525f5260316020526114c6610e9c610e95337fe88adfebbe50b6adbf3c8cfe33f27fa81f4ebcdb413071cc22c68c58fcdb31f86108d2565b1561103057634ca8886760e01b5f5260045ffd5b630309cb8760e51b5f5260045ffd5b90506114f485613eae565b600a851490610ff3565b905061150985613eae565b6007851490610fec565b905061151e85613eae565b6006851490610fe5565b5061153283613eae565b60108314610fcf565b5061154583613eae565b600f8314610fc8565b5061155883613eae565b600e8314610fc1565b5061156b83613eae565b600d8314610fba565b5061157e83613eae565b600c8314610fb3565b5061159183613eae565b60048314610fac565b506115a483613eae565b60038314610fa5565b506115b783613eae565b60028314610f9e565b506115ca83613eae565b60018314610f97565b506115dd83613eae565b8215610f90565b506115ee83613eae565b600b8314610f89565b5061160183613eae565b60088314610f82565b346105855760203660031901126105855760043561162661479d565b8015610ced5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91611843575b50610c7c576116976116926014546105cd565b6105cd565b3314158080611837575b6118285780611819575b61180a576116b761567b565b5f19810361180557506116d06116926116925f546105cd565b602060405180926370a0823160e01b825281806116f033600483016105d9565b03915afa908115610cba575f916117e6575b505b6117146116926116925f546105cd565b602060405180926370a0823160e01b8252818061173433600483016105d9565b03915afa908115610cba575f916117b7575b5081116117a8578061175a61176192614cb6565b3390614d3b565b505061176b614e30565b60405190815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649080602081015b0390a26109d46001602f55565b631e9acf1760e31b5f5260045ffd5b6117d9915060203d6020116117df575b6117d18183613d02565b810190613d25565b5f611746565b503d6117c7565b6117ff915060203d6020116117df576117d18183613d02565b5f611702565b611704565b6370a7336d60e11b5f5260045ffd5b5060215460081c60ff166116ab565b63d93c066560e01b5f5260045ffd5b5060305460ff166116a1565b61185c915060203d602011610cb357610ca58183613d02565b5f61167f565b346105855760203660031901126105855760043561187f81610614565b60018060a01b03165f52601e602052602060ff60405f2054166040519015158152f35b34610585576040366003190112610585576109d46024356004356118c582610614565b6118d66118d182613e24565b6144a3565b614e61565b34610585576118e936610d89565b6118f161479d565b6118f96144da565b6001600160a01b0383165f818152601e602052604090205490939060ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91611afc575b50610c7c576119886020610e7484863386610e6f61420a565b611aed5781836119a19261199a61567b565b33906142d7565b806119d3575b50823b1561058557610ed7925f92836040518096819582946312ede2c560e21b84523360048501613d54565b60405163d57dfa1560e01b8152602081806119f386883360048501613d54565b0381885afa908115610cba575f91611ace575b50604051633de6b58d60e21b81529060208280611a2887893360048501613d54565b0381895afa908115610cba57611a45925f92611aad575b50613f11565b6001821015611a815750670de0b6b3a76400009050676765c793fa10079d601b1b5b10611a72575f6119a7565b6302c9375f60e21b5f5260045ffd5b670de0b6b3a764000091611aa3611a9e611aa893602a5490614894565b613f1e565b613f42565b611a67565b611ac791925060203d6020116117df576117d18183613d02565b905f611a3f565b611ae7915060203d6020116117df576117d18183613d02565b5f611a06565b6367c11db560e01b5f5260045ffd5b611b15915060203d602011610cb357610ca58183613d02565b5f61196f565b905f5260205260405f2090565b3461058557604036600319011261058557600435611b4581610614565b6001600160a01b03165f908152601260209081526040808320602435845282529182902080546001820154600283015460038401546004850154600590950154875194855260ff93841615159685019690965295830152606082019490945292161515608083015260a082015260c090f35b3461058557604036600319011261058557600435602435611bd781610614565b336001600160a01b03821603611bf0576109d491614ed3565b63334bd91960e11b5f5260045ffd5b34610585575f36600319011261058557611c17614448565b60305460ff811615611c565760ff19166030557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b34610585575f36600319011261058557611c7d614448565b611c8561567b565b611cea604060018060801b0360055416611ca9611ca482600754614f43565b614cb6565b611cb46015546105cd565b825163592ca82760e01b81525f60048201526001600160a01b039091166024820152604481019190915291829081906064820190565b038173__$a41e93b90bf90930769ef660a8f88d039d$__5af48015610cba57611d1a915f91611d22575b506145be565b6109d4614e30565b611d44915060403d604011611d4c575b611d3c8183613d02565b810190613f60565b90505f611d14565b503d611d32565b634e487b7160e01b5f52603260045260245ffd5b601f54811015611d7f57601f5f5260205f2001905f90565b611d53565b3461058557602036600319011261058557600435601f5481101561058557601f5f525f516020615e945f395f51905f5201546040516001600160a01b039091168152602090f35b90606060031983011261058557600435611de481610614565b91602435906001600160401b03821161058557611e0391600401610625565b909160443590565b3461058557611e1936611dcb565b90611e2593929361479d565b611e2d6144da565b8115610ced576001600160a01b0383165f908152601e602052604090205460ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91611eb6575b50610c7c57610c34933393614956565b611ecf915060203d602011610cb357610ca58183613d02565b5f611ea6565b34610585575f36600319011261058557602060ff603054166040519015158152f35b3461058557602036600319011261058557600435611f1481610614565b611f1c614448565b611f2b610e9c610e95836108a0565b610cde57611f45611f3b826108a0565b805460ff19169055565b6001600160a01b038116905f5b601f5480821015611fd55783611f7c611f6a84611d67565b90546001600160a01b039291906105ba565b1614611f8b5750600101611f52565b5f516020615e145f395f51905f529350610acd9291611fc7611fc1611fba611fb5611fcd95613eea565b611d67565b90546105ba565b91611d67565b90613da1565b610ac1613f7f565b50505f516020615e145f395f51905f529150610acd90610ac1565b34610585575f366003190112610585576032546040516001600160a01b039091168152602090f35b346105855760203660031901126105855760043561203581610614565b61203d614448565b61204b611692601d546105cd565b6001600160a01b0391821691168082141590816121ab575b50612162575b612077611692601d546105cd565b601d80546001600160a01b0319166001600160a01b038416179055811515806120dd575b6120ce576001600160a01b03167f483bdedaaf23706a9800ac1af0d852b34927780d79f9d6ba60a80c7cad75ea395f80a3005b631b3b488360e11b5f5260045ffd5b50600460206120f0611692601d546105cd565b6040516338d52e0f60e01b815292839182905afa908115610cba575f91612133575b506121216116926001546105cd565b6001600160a01b03909116141561209b565b612155915060203d60201161215b575b61214d8183613d02565b810190614024565b5f612112565b503d612143565b6121a65f806121726033546105cd565b60405163429c145b60e11b602082019081526004825290612194602482613d02565b51915af46121a0613fe6565b90614f7d565b612069565b905015155f612063565b34610585575f3660031901126105855760206040516113888152f35b34610585575f366003190112610585576020604051678ac7230489e800008152f35b346105855760203660031901126105855760043561221081610614565b5f5f91601f54905b81841061222a57604051838152602090f35b909161223e611692611692611fba87611d67565b6020604051809263572bf25760e01b8252818061225e88600483016105d9565b03915afa8015610cba5760019261227c925f92612286575b50613e4a565b9301929190612218565b61229f91925060203d81116117df576117d18183613d02565b905f612276565b34610585575f366003190112610585576020600a54604051908152f35b34610585575f3660031901126105855760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b34610585575f366003190112610585575f516020615df45f395f51905f525f52603160205260ff612364337fb27331d7fb14c602af35d1a0207693d03bf40388dd28c83235863dcee08e1b836108d2565b5416156123ac576123736144da565b600160ff1960305416176030557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63e2517d3f60e01b5f52336004525f516020615df45f395f51905f5260245260445ffd5b34610585575f3660031901126105855760206106b6614f93565b34610585575f366003190112610585576021546022549061081660235460245460255460265460275460285460295491602a5493602b5495602c5497602d54996040519d8d8f9e8f9060ff809160081c169216909b99979593919e9d9c9a98969492909e6101c08d019f15158d52151560208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526101a00152565b34610585575f366003190112610585576033546040516001600160a01b039091168152602090f35b61254890929192610100806101208301958051845260208101516020850152604081015160408501526060810151151560608501526080810151608085015260a081015160a085015260c0810151151560c085015261253860e082015160e086019060018060a01b03169052565b01516001600160a01b0316910152565b565b346105855761255836610652565b9091612562614039565b506001600160a01b0384165f818152601e602052604090205490919060ff1615610cde5760049460606126179261260260209661259d614039565b986125ad82828689610e6f61420a565b936125c56125bd8b870151151590565b15158c880152565b604085015160808c015284518b526125ec6125e36080870151151590565b151560c08d0152565b6125f88383838a6142d7565b8a8c015286613c1e565b6040880152015160a086015260e0850161408d565b60405163f8eef10f60e01b815293849182905afa918215610cba576108169261264c915f91612658575b50610100830161408d565b604051918291826124ca565b612671915060203d60201161215b5761214d8183613d02565b5f612641565b346105855760206106b661268a36610652565b9291909161409c565b34610585576126a136611dcb565b6126ac93929361479d565b6126b46144da565b8015610ced576001600160a01b0383165f818152601e602052604090205490919060ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f9161296f575b50610c7c5761273e336108b9565b60405163a646a19360e01b8152906020828061275e888b600484016140be565b0381875afa908115610cba5761277b925f9261294e575b50611b1b565b916127888487338861409c565b92612796838689338a614372565b956127a86116926116926001546105cd565b604051636eb1769f60e11b815233600482015230602482015290602090829060449082905afa8015610cba5788915f9161292f575b5010612920578386896127ef93615056565b6128006116926116926001546105cd565b602060405180926370a0823160e01b8252818061282033600483016105d9565b03915afa8015610cba5787915f91612901575b50106117a85761286c60056128626020958960049a6128f2575b50848a01805460ff1916600117905587613e4a565b9201918254613e4a565b905560405163f8eef10f60e01b815294859182905afa908115610cba577f2386b33461472749e636e4d07c6e2b5e114398809469e25100c5ef910a663f64935f926128cd575b5061179b9060405193849360018060a01b03169633856140cf565b61179b9192506128eb9060203d60201161215b5761214d8183613d02565b91906128b2565b6128fb90615258565b5f61284d565b61291a915060203d6020116117df576117d18183613d02565b5f612833565b6339e067d560e21b5f5260045ffd5b612948915060203d6020116117df576117d18183613d02565b5f6127dd565b61296891925060203d6020116117df576117d18183613d02565b905f612775565b612988915060203d602011610cb357610ca58183613d02565b5f612730565b3461058557604036600319011261058557602060ff6129c46024356004356129b582610614565b5f526031845260405f206108d2565b54166040519015158152f35b34610585576020366003190112610585576004356129ed81610614565b60018060a01b03165f52602e602052602060405f20546040519043148152f35b3461058557612a1b36610d89565b612a2692919261479d565b612a2e6144da565b6001600160a01b0382165f908152601e602052604090205460ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91612aec575b50610c7c57610c34925f92839261219460018060a01b036032541693612ade6040519384926020840196634b195c9560e11b885260248501613d54565b03601f198101835282613d02565b612b05915060203d602011610cb357610ca58183613d02565b5f612aa1565b3461058557612b1936610652565b612b2492919261479d565b612b2c6144da565b6001600160a01b0384165f908152601e602052604090205460ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91612bdc575b50610c7c57610c34935f936121948594612ade60018060a01b0360325416956040519485936020850197631318562160e31b8952602486016140fa565b612bf5915060203d602011610cb357610ca58183613d02565b5f612b9f565b3461058557602036600319011261058557600435612c1881610614565b612c20614448565b6001600160a01b0316801561099d57601480546001600160a01b0319811683179091556001600160a01b03167f593eaf5e0e1afc1c041a664a437fdae719a628836785d06572b008e6ca5c189d5f80a3005b3461058557602036600319011261058557600435612c8f81610614565b5f5f601f545b808210612ca757604051838152602090f35b9091612cbb611692611692611fba86611d67565b905f60405180936371e078ab60e01b82528180612cdb8a600483016105d9565b03915afa918215610cba575f92612d49575b505f905b8251821015612d3b57612d33600191612d2d612d28612d23612d128b6108b9565b612d1c888a6141a6565b5190611b1b565b6141ba565b615385565b90613e4a565b910190612cf1565b939050600191500190612c95565b612d669192503d805f833e612d5e8183613d02565b810190614123565b905f612ced565b34610585575f3660031901126105855760206040515f8152f35b3461058557602036600319011261058557600435612da481610614565b612dac614448565b6001600160a01b0316801561099d57601580546001600160a01b0319811683179091556001600160a01b03167f5d16ad41baeb009cd23eb8f6c7cde5c2e0cd5acf4a33926ab488875c37c37f385f80a3005b34610585575f3660031901126105855760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f91612eef575b50610c7c57335f526020805260ff60405f205416612ee057335f5260208052612e9460405f20600160ff19825416179055565b60295480612ed1575b7fd5acd12fd21128fb0a61c90d812321cb1423b1948052a3e93786c482bbef6608610acd6029546040519182913383612f0e565b612eda906152f9565b5f612e9d565b63992c89a960e01b5f5260045ffd5b612f08915060203d602011610cb357610ca58183613d02565b5f612e61565b6001600160a01b039091168152602081019190915260400190565b34610585575f366003190112610585576015546001600160a01b0316338190036130005760018060a01b03600154166040519163c0b6476b60e01b835260166004840152816024840152604483015260208260648173__$a41e93b90bf90930769ef660a8f88d039d$__5af4918215610cba575f92612fdf575b506040518281527f7edfb0d5d58c6a3d398df94a9bdfa2b33f3fa42ae40d72ebdc717d2db3953ee590602090a161081660405192839283612f0e565b612ff991925060203d6020116117df576117d18183613d02565b905f612fa3565b6282b42960e81b5f5260045ffd5b34610585575f366003190112610585576013546040516001600160a01b039091168152602090f35b3461058557613068602061304936610652565b60405163d57dfa1560e01b815295869493859384939160048501613d54565b03916001600160a01b03165afa8015610cba576020915f9161308e575b50604051908152f35b6130a59150823d84116117df576117d18183613d02565b5f613085565b908152602081019190915260400190565b34610585576130ca36610652565b9160018060a01b0384165f52601e60205260ff60405f20541615610cde576130f493610e6f61420a565b6060810151905190610816604051928392836130ab565b346105855760203660031901126105855760043561312761479d565b8015610ced5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f9161329c575b50610c7c576131936116926014546105cd565b33141580613290575b611828576131a861567b565b6015546001600160a01b03906131bd906105cd565b1615801561327a575b15613253575f516020615db45f395f51905f5261179b6131e75f8094613f11565b926131f1846153c4565b6131fb3385615464565b90613204614e30565b80613244575b506132196116926014546105cd565b330361322e575b6040519182913395836130ab565b335f908152602e60205260409020439055613220565b61324d906152f9565b5f61320a565b5f516020615db45f395f51905f5261179b6131e761327360255485614894565b8094613f11565b506132896116926014546105cd565b33146131c6565b5060305460ff1661319c565b6132b5915060203d602011610cb357610ca58183613d02565b5f613180565b60206040818301928281528451809452019201905f5b8181106132de5750505090565b82516001600160a01b03168452602093840193909201916001016132d1565b34610585575f36600319011261058557604051601f80548083525f91825260208301915f516020615e945f395f51905f5291905b818110613354576108168561334881870382613d02565b604051918291826132bb565b82546001600160a01b0316845260209093019260019283019201613331565b346105855760c061339261338636610652565b92610e6f92919261420a565b60a060405191805183526020810151151560208401526040810151604084015260608101516060840152608081015115156080840152015160a0820152f35b34610585575f366003190112610585576020604051670de0b6b3a76400008152f35b34610585575f366003190112610585576015546040516001600160a01b039091168152602090f35b34610585576020366003190112610585576004356013546001600160a01b0316330361300057602c54906001811061354757676765c793fa10079d601b1b811161351657600a5491826134da575b507fd45d1eb66419c036e2fa401916c7db417696f889cf4ab8ca92272327e8e1c83e9161349461567b565b61349d82600a55565b6134b06134ab600a5461482a565b600b55565b6134c36134be600a54614860565b600c55565b6134cb6144e6565b610acd604051928392836130ab565b6134ec6134e6826147f3565b84613e4a565b906134f6816147f3565b84101561352f57505f905b8211908115613525575b50613516575f613469565b631a8b543360e21b5f5260045ffd5b905081105f61350b565b61353b613541916147f3565b84613f11565b90613501565b63824c180760e01b5f5260045ffd5b346105855761356436610652565b61356f92919261479d565b6014546001600160a01b03163303613000576001600160a01b0384165f908152601e602052604090205460ff1615610cde576135d9935f936121948594612ade60018060a01b036032541695604051948593602085019763c939ad6160e01b8952602486016140fa565b610c34614e30565b34610585575f366003190112610585576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160801b031690565b34610585575f366003190112610585575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b346105855760206106b66136d036610652565b929190916142d7565b346105855760203660031901126105855760206106b66004356136fb81610614565b614308565b34610585576040366003190112610585576109d460243560043561372382610614565b61372f6118d182613e24565b614ed3565b346105855761374236611dcb565b9061374b61479d565b6137536144da565b8115610ced576001600160a01b0384165f818152601e602052604090205460ff1615610cde5760405163fe575a8760e01b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610cba575f9161384f575b50610c7c576137e2602093838661380898615056565b6137eb336108b9565b9360405180968194829363a646a19360e01b8452600484016140be565b03915afa908115610cba57613823925f9261294e5750611b1b565b60048101805460ff1661383a576109d46001602f55565b805460ff191690555f90600501555f80610c34565b613868915060203d602011610cb357610ca58183613d02565b5f6137cc565b346105855760603660031901126105855760043561388b81610614565b6024359061389882610614565b604435906138a4614448565b601d546001600160a01b03918216911681146138f3576138ee6109d4936138e060405194859263a9059cbb60e01b602085015260248401612f0e565b03601f198101845283613d02565b615c3b565b60405162461bcd60e51b815260206004820152601960248201527821b0b73737ba103932b9b1bab2903b30bab63a103a37b5b2b760391b6044820152606490fd5b34610585575f3660031901126105855760206106b6600754613954614f93565b90614f43565b34610585575f36600319011261058557610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b34610585576080366003190112610585576004356139e381610614565b602435906139f082610614565b604435906001600160401b03821161058557602092613a166106b6933690600401610625565b9160643593614372565b34610585575f36600319011261058557613a38614039565b50610816613a44613d91565b613a57613a515f546105cd565b8261408d565b613a6e613a656001546105cd565b6020830161408d565b613a85613a7c6002546105cd565b6040830161408d565b60035460608201526004546080820152613ad0613ac0600554613aba613aaa82613625565b6001600160801b031660a0860152565b60801c90565b6001600160801b031660c0830152565b613af1613ae360065464ffffffffff1690565b64ffffffffff1660e0830152565b6007546101008201526040519182918281516001600160a01b0390811682526020808401518216908301526040808401519091169082015261012081019291610100908190606081810151908501526080808201519085015260a0808201516001600160801b03169085015260c0818101516001600160801b03169085015260e08181015164ffffffffff16908501520151910152565b34610585575f3660031901126105855760206040515f516020615dd45f395f51905f528152f35b34610585575f36600319011261058557601d546040516001600160a01b039091168152602090f35b3461058557613be536610652565b9060018060a09594951b0383165f52601e60205260ff60405f20541615610cde57602093613c1593610e6f61420a565b51604051908152f35b6001600160a01b0381165f818152601e6020526040902054909491939060ff1615610cde576020604051809663d57dfa1560e01b82528180613c6587878a60048501613d54565b03915afa928315610cba57613c8c955f94613c8f575b50613c8693946142d7565b90614394565b90565b613c869450613cac9060203d6020116117df576117d18183613d02565b93613c7b565b634e487b7160e01b5f52604160045260245ffd5b61014081019081106001600160401b03821117613ce257604052565b613cb2565b60c081019081106001600160401b03821117613ce257604052565b601f909101601f19168101906001600160401b03821190821017613ce257604052565b90816020910312610585575190565b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b039091168152604060208201819052613c8c93910191613d34565b6040513d5f823e3d90fd5b6040519061254861014083613d02565b6040519061254861012083613d02565b80546001600160a01b0360039390931b83811b199091169290931690921b179055565b601f5490600160401b821015613ce25760018201601f55601f54821015611d7f57601f5f908152612548925f516020615e945f395f51905f5201613da1565b5190811515820361058557565b9081602091031261058557613c8c90613e03565b5f526031602052600160405f20015490565b634e487b7160e01b5f52601160045260245ffd5b91908201809211610d5d57565b5f54604051630481930d60e21b81526001600160a01b0392831660048201529160209183916024918391165afa908115610cba575f91613e95575090565b613c8c915060203d6020116117df576117d18183613d02565b60111115613eb857565b634e487b7160e01b5f52602160045260245ffd5b606081019493926011831015613eb857604092825260208201520152565b5f19810191908211610d5d57565b676765c793fa10079d601b1b90810391908211610d5d57565b91908203918211610d5d57565b90670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610d5d57565b8115613f4c570490565b634e487b7160e01b5f52601260045260245ffd5b91908260409103126105855760208251613f7981610614565b92015190565b601f548015613fd2575f19810190601f54821015611d7f57601f5f8190527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80690910180546001600160a01b031916905555565b634e487b7160e01b5f52603160045260245ffd5b3d1561401f573d906001600160401b038211613ce25760405191614014601f8201601f191660200184613d02565b82523d5f602084013e565b606090565b908160209103126105855751613c8c81610614565b6040519061012082016001600160401b03811183821017613ce2576040525f610100838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b6001600160a01b039091169052565b906140ab939291610e6f61420a565b60a081519101518103908111610d5d5790565b916020613c8c938181520191613d34565b949392916040926140f59260018060a01b03168752606060208801526060870191613d34565b930152565b6001600160a01b03918216815291166020820152606060408201819052613c8c93910191613d34565b602081830312610585578051906001600160401b03821161058557019080601f83011215610585578151916001600160401b038311613ce2578260051b90604051936141726020840186613d02565b845260208085019282010192831161058557602001905b8282106141965750505090565b8151815260209182019101614189565b8051821015611d7f5760209160051b010190565b906040516141c781613ce7565b60a0600582948054845260ff60018201541615156020850152600281015460408501526003810154606085015260ff600482015416151560808501520154910152565b6040519061421782613ce7565b5f60a0838281528260208201528260408201528260608201528260808201520152565b506001600160a01b03165f818152601e60205260409020549293909260ff1615610cde576142949260209260018060a01b03165f526012835260405f209460405180958194829363a646a19360e01b8452600484016140be565b03915afa908115610cba575f916142b8575b505f52602052613c8c60405f206141ba565b6142d1915060203d6020116117df576117d18183613d02565b5f6142a6565b9192909260018060a01b0383165f52601e60205260ff60405f20541615610cde57613c8c93612d2893610e6f61420a565b6014546001600160a01b031690811561436c575f918291604051602081019163c084b10b60e01b835260018060a01b031660248201526024815261434d604482613d02565b51915afa50613c8c61435d613fe6565b60208082518301019101613d25565b50505f90565b9061437e93929161409c565b908101809111610d5d57602454613c8c91614894565b600182106143d3576022546143a891614894565b90670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610d5d57613c8c91613f42565b50676765c793fa10079d601b1b919050565b64ffffffffff600654164203428111610d5d576001811061443e57614439613c8c91614424600a54600b54600c54600d5490600e54926011549461555a565b9061443360055460801c613625565b9161560c565b613625565b5060055460801c90565b5f516020615e545f395f51905f525f52603160205260ff614476335f516020615e745f395f51905f526108d2565b54161561447f57565b63e2517d3f60e01b5f52336004525f516020615e545f395f51905f5260245260445ffd5b805f52603160205260ff6144ba3360405f206108d2565b5416156144c45750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff6030541661182857565b600460206144fb6116926116926002546105cd565b6040516318160ddd60e01b815292839182905afa908115610cba575f9161459f575b50600455614564614533600354600454906159af565b8060115561455181600a54600b54600c54600d5491600e549361555a565b600955600954600f5490600454926159e3565b9060085560105561457660085f615826565b5f516020615d745f395f51905f526008546009549061459a604051928392836130ab565b0390a1565b6145b8915060203d6020116117df576117d18183613d02565b5f61451d565b806145da575b50600460206144fb6116926116926002546105cd565b600354818110614602576145f36144396145f99361597e565b90613f11565b6003555f6145c4565b63bb55fd2760e01b5f5260045ffd5b8061462c5750600460206144fb6116926116926002546105cd565b6145f990612d2d6144396003549261597e565b9082614738575b60049250602061465f61169261169260028601546105cd565b6040516318160ddd60e01b815294859182905afa918215610cba575f516020615d745f395f51905f52935f93614711575b50818160046146fe93019485556146f16146b060038301548754906159af565b8060098501556146da8160028601546003870154600488015460058901549160068a01549361555a565b9660018501978855875460078601549154926159e3565b9083556008830155615826565b5490549061459a604051928392836130ab565b6146fe919350614730839160203d6020116117df576117d18183613d02565b939150614690565b60038201805493808510614602576004946145f36144396147589361597e565b9055614646565b906004928061477f575b50602061465f61169261169260028601546105cd565b6147956003840191612d2d61443984549261597e565b90555f614769565b6002602f54146147ae576002602f55565b633ee5aeb560e01b5f5260045ffd5b7f028f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c25d81116105855761138860646127109202010490565b801561138819829004676765c793fa10079d601b1b1115171561058557612710676765c793fa10079d601b1b909102611388010490565b7e1a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e90d8111610585576113886109c46127109202010490565b7e0d1b71758e219652bd3c36113404ea4a8c154c985f06f694467381d7dbf486811161058557611388806127109202010490565b81611388190481111582151715610585576127109102611388010490565b9190826080910312610585578151916020810151916060604083015192015190565b91908251928382525f5b8481106148fe575050825f602080949584010152601f8019910116010190565b806020809284010151828286010152016148de565b9092608092613c8c959460018060a01b031683526020830152604082015281606082015201906148d4565b9392916020916140f591604087526040870191613d34565b93929190918015610ced576001600160a01b03841694851561099d576001600160a01b03811694853b156105855760405163caf9278560e01b81525f81806149a3888a8760048501613d54565b03818a5afa8015610cba57614ca2575b506149bc61567b565b6149c5816108b9565b60405163a646a19360e01b815290602082806149e5898b600484016140be565b03818b5afa908115610cba57614a01925f9261294e5750611b1b565b92614a10600185015460ff1690565b8080614c8b575b614c7c5780614c63575b614c5457614a31858784866142d7565b905f198103614c4c5750925b614a4e6116926116926002546105cd565b60405163055986c560e11b8152602081600481305afa908115610cba57614ac09260809289925f91614c2d575b50614aa18b614a936040519586928c60208501613d54565b03601f198101855284613d02565b5f604051809681958294638a94b05f60e01b84528d8c60048601614913565b03925af1918215610cba57614b22889288945f915f91614bf7575b50614aeb61443960055460801c90565b6003850155614b1489614b026116926001546105cd565b614b0c5f546105cd565b903390615a1b565b80614be4575b508254613f11565b81556005810180548254809111614bdc575b50815415614bc7575b50614b4786614611565b5415159283614ba9575b5050509050614b9a577fe3a726b91ef4c278a3d01e307af0e6a15bc204b23bab854208e67fef4685540291614b84614e30565b614b9560405192839233968461493e565b0390a4565b6370c1d60160e01b5f5260045ffd5b614bbd9350678ac7230489e80000946142d7565b108083855f614b51565b5f905560048101805460ff191690555f614b3d565b81555f614b34565b614bef908454613e4a565b83555f614b1a565b9050614c1b915060803d608011614c26575b614c138183613d02565b8101906148b2565b92509050905f614adb565b503d614c09565b614c46915060203d6020116117df576117d18183613d02565b5f614a7b565b905092614a3d565b634b3c322760e11b5f5260045ffd5b50614c75600285015460235490613e4a565b4211614a21565b63224aae4f60e21b5f5260045ffd5b50614c9d610e9c600487015460ff1690565b614a17565b80610efc5f614cb093613d02565b5f6149b3565b5f806125489260018060a01b036033541690604051602081019163489493f160e11b8352602482015260248152612194604482613d02565b90816060910312610585578051916040602083015192015190565b6001600160a01b0391821681529116602082015260408101919091526001600160801b03909116606082015260800190565b9160018310610ced576060614d9093614d5560085f615826565b614d656116926116925f546105cd565b614d70600554613625565b915f604051809881958294636b81068560e11b84528a8060048601614d09565b03925af1918215610cba575f935f93614df7575b50614db18360085f61463f565b6040516001600160a01b03909116907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689080614dee8787836130ab565b0390a281929190565b909250614e1d91935060603d606011614e29575b614e158183613d02565b810190614cee565b9391905092915f614da4565b503d614e0b565b6125485f8060018060a01b03603354166040516020810190633fa5758d60e11b825260048152612194602482613d02565b805f52603160205260ff614e788360405f206108d2565b541661436c57805f526031602052614e938260405f206108d2565b805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b805f52603160205260ff614eea8360405f206108d2565b54161561436c57805f526031602052614f068260405f206108d2565b805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b8115676765c793fa10079d601a1b19839004821115171561058557676765c793fa10079d601b1b9102676765c793fa10079d601a1b010490565b15614f855750565b805190811561058557602001fd5b64ffffffffff600654164203428111610d5d5760018110614fdc5761362590614fc8601154600954600f5490600454926159e3565b506005546001600160801b03169190615a5f565b506005546001600160801b031690565b91908260809103126105855761500182613e03565b916020810151916060604083015192015190565b6001600160a01b0391821681529116602082015260408101919091526001600160801b03909116606082015260a060808201819052613c8c929101906148d4565b909192615062336108b9565b60405163a646a19360e01b81526001600160a01b03841695916020828061508d868a600484016140be565b03818a5afa908115610cba576150a9925f9261294e5750611b1b565b600181015460ff166152495760808561512e956150c461567b565b6150d086868484615a99565b6150d986614cb6565b6150ea6116926116926002546105cd565b9061510e6150fa60055460801c90565b91614a938860405196879360208501613d54565b5f60405180998195829463292aab8160e11b84528b333360048701615015565b03925af18015610cba575f945f91615212575b5061515161443960055460801c90565b60038301556151666116926116925f546105cd565b90813b15610585575f6040518093635c921eb960e01b825281838161518f8b3360048401612f0e565b03925af1908115610cba577ffbbbd9ad7d8748a240b7b526feb4d0b8ec4f69d8f3cf86477248adf6272154fa966151d5936151ce936151fe5750613e4a565b8254613e4a565b90556151e0826145be565b6151e8614e30565b6151f960405192839233968461493e565b0390a3565b80610efc5f61520c93613d02565b5f612276565b905061523791945060803d608011615242575b61522f8183613d02565b810190614fec565b50949150935f615141565b503d615225565b630bff073160e31b5f5260045ffd5b6001546015546001600160a01b039081169291169073__$a41e93b90bf90930769ef660a8f88d039d$__803b15610585575f926084916040519586948593632843d15960e21b8552600485015260248401527f65991ea5d80f7b6dc8c32648f59c5a653beb10caddae8fefad6966b35a0a65f1604484015260648301525af48015610cba576152e45750565b806152f05f8093613d02565b80031261058557565b6001546015546001600160a01b039081169291169073__$a41e93b90bf90930769ef660a8f88d039d$__803b15610585575f926084916040519586948593632843d15960e21b8552600485015260248401527f42fd249bdce4c4255579b56a79389d6d679ba17c7b7c848ee5c0a2ffcf354cf1604484015260648301525af48015610cba576152e45750565b61538d6143e5565b606082015190811580156153bb575b6153b557613c8c92916153ae91615c0b565b9051614f43565b50505190565b5082511561539c565b6153d26116926014546105cd565b331461546157602b5481106154525760049060206153f66116926116925f546105cd565b6040516318160ddd60e01b815293849182905afa8015610cba57615420925f916154395750613e4a565b6027541061542a57565b6354db2d5d60e11b5f5260045ffd5b61520c915060203d6020116117df576117d18183613d02565b6379db461960e01b5f5260045ffd5b50565b60018110610ced575f91615479600884615826565b61549c8261548b6116926001546105cd565b8361549687546105cd565b91615a1b565b60606154db6154b161169261169287546105cd565b6154bc600554613625565b60405196878094819363b3f1c93d60e01b835289893060048601614d09565b03925af1928315610cba575f93615528575b50825f516020615db45f395f51905f529161550a8460085f61475f565b61552260405192839260018060a01b031695836130ab565b0390a290565b5f516020615db45f395f51905f529193506155519060603d606011614e2957614e158183613d02565b505092906154ed565b909491949392938481831192831593615601575b505081156155f6575b5080156155ec575b6155dd578061559057505050505f90565b81811161559d5750505090565b816155c76155bc6155b66155cc969795612d2d95613f11565b92613ef8565b916139548588613f11565b615c0b565b818111156155d8575090565b905090565b63abc83fed60e01b5f5260045ffd5b508284101561557f565b90508411155f615577565b10159150845f61556e565b9161395461561d92613c8c94615c93565b61597e565b80546001600160801b0319166001600160801b03909216919091179055565b80546001600160801b031660809290921b6001600160801b031916919091179055565b9064ffffffffff1664ffffffffff19825416179055565b6156a161569b61569160065464ffffffffff1690565b64ffffffffff1690565b42613f11565b6001811061546157600554906156b961443983613625565b9160018310615817576156e9926156ff926156f06156dd6144396156f89560801c90565b95869383600854615a5f565b6005615622565b60095461560c565b6005615641565b61571164ffffffffff42166006615664565b600460206157266116926116926002546105cd565b604051635a20bdb760e01b815292839182905afa908115610cba5761577d91615774915f916157f8575b506145f36005549461576e6157686144398860801c90565b84614f43565b92614f43565b600f5490614f43565b90816157cd575b50505f516020615d945f395f51905f526005546157aa6157a382613625565b9160801c90565b604080516001600160801b0393841681529290911660208301528190810161459a565b6157ee916157e06144396157e693613625565b90615c0b565b600754613e4a565b6007555f80615784565b615811915060203d6020116117df576117d18183613d02565b5f615750565b630a1cf3ed60e21b5f5260045ffd5b600681019061584061569b615691845464ffffffffff1690565b916001831061597857600582019283549161585d61443984613625565b91600183106158175761589f6158b3936158a59261589561588461443961588f9960801c90565b978893838d54615a5f565b8a615622565b60018a015461560c565b86615641565b64ffffffffff421690615664565b600460206158ca61169261169260028701546105cd565b604051635a20bdb760e01b815292839182905afa948515610cba57600761591b5f516020615d945f395f51905f5297615924945f91615959575b506145f388549661576e6157686144398a60801c90565b91015490614f43565b8061593a575b505050546157aa6157a382613625565b6128626007916157e061443961594f95613625565b90555f808061592a565b615972915060203d6020116117df576117d18183613d02565b5f615904565b50505050565b6001600160801b038111615998576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b6001821061436c57600181106143d357818101809111610d5d576001600160801b03916159df9161561d91615c0b565b1690565b90919392600111615a1157615a02916159fb91614f43565b9283614f43565b91828103908111610d5d579190565b505090505f905f90565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152612548916138ee608483613d02565b818102918183041490151715610d5d57676765c793fa10079d601b1b6301e133809091048101908110610d5d57613c8c9161561d91614f43565b9290916001600160a01b03841690813b156105855760405163caf9278560e01b81525f8180615acd85893360048501613d54565b0381865afa8015610cba57615bf7575b50678ac7230489e800008310615be85760046020615b026116926116926002546105cd565b6040516318160ddd60e01b815292839182905afa908115610cba57615b2f9185915f916154395750613e4a565b60285410615bd9576020604051809363d57dfa1560e01b82528180615b59868a3360048501613d54565b03915afa918215610cba575f92615bb8575b508115615ba957615b9393615b86615b8e93602a5490614894565b9533906142d7565b613e4a565b11615b9a57565b630369fbd160e51b5f5260045ffd5b638dc8d9b360e01b5f5260045ffd5b615bd291925060203d6020116117df576117d18183613d02565b905f615b6b565b6353977d1f60e01b5f5260045ffd5b630e25379960e21b5f5260045ffd5b80610efc5f615c0593613d02565b5f615add565b600182901c908215676765c793fa10079d601b1b83190482111761058557676765c793fa10079d601b1b02010490565b905f602091828151910182855af115613d76575f513d615c8a57506001600160a01b0381163b155b615c6a5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415615c63565b600182106143d357744f3a68dbc8f03f243baf513267aa9a3ee524f8e028811161058557613c8c916301e1338062f099c0615cdc93676765c793fa10079d601b1b020104614f43565b8015615d6357676765c793fa10079d601c1b81800204906b09b18ab5df7180b6b80000008282020490676765c793fa10079d601d1b82820204906b1027e72f1f1281308800000082820204916b1363156bbee3016d7000000083830204936b169e43a85eb381aa580000008584020495676765c793fa10079d601b1b930101010101010190565b50676765c793fa10079d601b1b9056fe48f4f83c2f1843e8fd7ef13ffcff40fca5055dc1b9b074cd9dd0f9a8a8e09dd9f92a3abee06d57c996e7e19eb34560241fdc1fe67e9ebd503177710bf9fd820490890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1571840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1bf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b26df980d21d8c7bb34800e668dbe003299093bac8e693614151d3c57f73f98a93d063386e75a280368ce68f5e39db7d7a3f09737ca4d289d9345a5f4968ff76955ba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c0c0024adac358c93b1f8c24744abf49eedeab3f1217617d95ad241e5c523f4de3a03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807a264697066735822122038ceb94bc9f8f563baeb56c3dd61220d90e00e23862d234e80bb7021cfd132a564736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1bf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b26b27331d7fb14c602af35d1a0207693d03bf40388dd28c83235863dcee08e1b83ba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c0c0024adac358c93b1f8c24744abf49eedeab3f1217617d95ad241e5c523f4de3e88adfebbe50b6adbf3c8cfe33f27fa81f4ebcdb413071cc22c68c58fcdb31f8346dc135129bcc5b8e8f6ff902940f16dc0729d02b27118b912aa326da88b831";
19
19
  static readonly abi: readonly [{
20
20
  readonly inputs: readonly [{
21
21
  readonly internalType: "address";
@@ -284,22 +284,6 @@ export declare class LendingPool__factory extends ContractFactory {
284
284
  readonly inputs: readonly [];
285
285
  readonly name: "NotUnderLiquidation";
286
286
  readonly type: "error";
287
- }, {
288
- readonly inputs: readonly [{
289
- readonly internalType: "address";
290
- readonly name: "owner";
291
- readonly type: "address";
292
- }];
293
- readonly name: "OwnableInvalidOwner";
294
- readonly type: "error";
295
- }, {
296
- readonly inputs: readonly [{
297
- readonly internalType: "address";
298
- readonly name: "account";
299
- readonly type: "address";
300
- }];
301
- readonly name: "OwnableUnauthorizedAccount";
302
- readonly type: "error";
303
287
  }, {
304
288
  readonly inputs: readonly [];
305
289
  readonly name: "PaybackDebtDisabled";
@@ -435,6 +419,16 @@ export declare class LendingPool__factory extends ContractFactory {
435
419
  readonly internalType: "address";
436
420
  readonly name: "user";
437
421
  readonly type: "address";
422
+ }, {
423
+ readonly indexed: true;
424
+ readonly internalType: "address";
425
+ readonly name: "adapter";
426
+ readonly type: "address";
427
+ }, {
428
+ readonly indexed: false;
429
+ readonly internalType: "bytes";
430
+ readonly name: "data";
431
+ readonly type: "bytes";
438
432
  }, {
439
433
  readonly indexed: false;
440
434
  readonly internalType: "uint256";
@@ -783,21 +777,6 @@ export declare class LendingPool__factory extends ContractFactory {
783
777
  readonly inputs: readonly [];
784
778
  readonly name: "NotFeeCollector";
785
779
  readonly type: "event";
786
- }, {
787
- readonly anonymous: false;
788
- readonly inputs: readonly [{
789
- readonly indexed: true;
790
- readonly internalType: "address";
791
- readonly name: "previousOwner";
792
- readonly type: "address";
793
- }, {
794
- readonly indexed: true;
795
- readonly internalType: "address";
796
- readonly name: "newOwner";
797
- readonly type: "address";
798
- }];
799
- readonly name: "OwnershipTransferred";
800
- readonly type: "event";
801
780
  }, {
802
781
  readonly anonymous: false;
803
782
  readonly inputs: readonly [{
@@ -905,11 +884,21 @@ export declare class LendingPool__factory extends ContractFactory {
905
884
  readonly internalType: "address";
906
885
  readonly name: "user";
907
886
  readonly type: "address";
887
+ }, {
888
+ readonly indexed: true;
889
+ readonly internalType: "address";
890
+ readonly name: "adapter";
891
+ readonly type: "address";
908
892
  }, {
909
893
  readonly indexed: true;
910
894
  readonly internalType: "address";
911
895
  readonly name: "onBehalfOf";
912
896
  readonly type: "address";
897
+ }, {
898
+ readonly indexed: false;
899
+ readonly internalType: "bytes";
900
+ readonly name: "data";
901
+ readonly type: "bytes";
913
902
  }, {
914
903
  readonly indexed: false;
915
904
  readonly internalType: "uint256";
@@ -1378,6 +1367,16 @@ export declare class LendingPool__factory extends ContractFactory {
1378
1367
  }];
1379
1368
  readonly stateMutability: "view";
1380
1369
  readonly type: "function";
1370
+ }, {
1371
+ readonly inputs: readonly [];
1372
+ readonly name: "EMERGENCY_ROLE";
1373
+ readonly outputs: readonly [{
1374
+ readonly internalType: "bytes32";
1375
+ readonly name: "";
1376
+ readonly type: "bytes32";
1377
+ }];
1378
+ readonly stateMutability: "view";
1379
+ readonly type: "function";
1381
1380
  }, {
1382
1381
  readonly inputs: readonly [];
1383
1382
  readonly name: "GOVERNANCE_ROLE";
@@ -1692,6 +1691,16 @@ export declare class LendingPool__factory extends ContractFactory {
1692
1691
  }];
1693
1692
  readonly stateMutability: "view";
1694
1693
  readonly type: "function";
1694
+ }, {
1695
+ readonly inputs: readonly [];
1696
+ readonly name: "getPendingProtocolFee";
1697
+ readonly outputs: readonly [{
1698
+ readonly internalType: "uint256";
1699
+ readonly name: "";
1700
+ readonly type: "uint256";
1701
+ }];
1702
+ readonly stateMutability: "view";
1703
+ readonly type: "function";
1695
1704
  }, {
1696
1705
  readonly inputs: readonly [{
1697
1706
  readonly internalType: "address";
@@ -1981,7 +1990,7 @@ export declare class LendingPool__factory extends ContractFactory {
1981
1990
  readonly type: "uint40";
1982
1991
  }, {
1983
1992
  readonly internalType: "uint256";
1984
- readonly name: "pendingProtocolFeeAmount";
1993
+ readonly name: "scaledPendingProtocolFee";
1985
1994
  readonly type: "uint256";
1986
1995
  }];
1987
1996
  readonly internalType: "struct ReserveLibrary.ReserveData";
@@ -2148,16 +2157,6 @@ export declare class LendingPool__factory extends ContractFactory {
2148
2157
  readonly outputs: readonly [];
2149
2158
  readonly stateMutability: "nonpayable";
2150
2159
  readonly type: "function";
2151
- }, {
2152
- readonly inputs: readonly [];
2153
- readonly name: "owner";
2154
- readonly outputs: readonly [{
2155
- readonly internalType: "address";
2156
- readonly name: "";
2157
- readonly type: "address";
2158
- }];
2159
- readonly stateMutability: "view";
2160
- readonly type: "function";
2161
2160
  }, {
2162
2161
  readonly inputs: readonly [];
2163
2162
  readonly name: "parameters";
@@ -2340,12 +2339,6 @@ export declare class LendingPool__factory extends ContractFactory {
2340
2339
  readonly outputs: readonly [];
2341
2340
  readonly stateMutability: "nonpayable";
2342
2341
  readonly type: "function";
2343
- }, {
2344
- readonly inputs: readonly [];
2345
- readonly name: "renounceOwnership";
2346
- readonly outputs: readonly [];
2347
- readonly stateMutability: "nonpayable";
2348
- readonly type: "function";
2349
2342
  }, {
2350
2343
  readonly inputs: readonly [{
2351
2344
  readonly internalType: "bytes32";
@@ -2455,7 +2448,7 @@ export declare class LendingPool__factory extends ContractFactory {
2455
2448
  readonly type: "uint40";
2456
2449
  }, {
2457
2450
  readonly internalType: "uint256";
2458
- readonly name: "pendingProtocolFeeAmount";
2451
+ readonly name: "scaledPendingProtocolFee";
2459
2452
  readonly type: "uint256";
2460
2453
  }];
2461
2454
  readonly stateMutability: "view";
@@ -2600,16 +2593,6 @@ export declare class LendingPool__factory extends ContractFactory {
2600
2593
  }];
2601
2594
  readonly stateMutability: "view";
2602
2595
  readonly type: "function";
2603
- }, {
2604
- readonly inputs: readonly [{
2605
- readonly internalType: "address";
2606
- readonly name: "newOwner";
2607
- readonly type: "address";
2608
- }];
2609
- readonly name: "transferOwnership";
2610
- readonly outputs: readonly [];
2611
- readonly stateMutability: "nonpayable";
2612
- readonly type: "function";
2613
2596
  }, {
2614
2597
  readonly inputs: readonly [];
2615
2598
  readonly name: "unpause";
@@ -14,7 +14,7 @@ export declare class LiquidationProxy__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): LiquidationProxy__factory;
17
- static readonly bytecode = "0x60a0806040523460305730608052611a209081610035823960805181818161064a0152818161088f0152610ab20152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806302768de414610194578063048c661d1461018f57806309bf1e731461018a5780630c42dcaf14610185578063152f158414610180578063202019a61461017b57806334176a6d146101765780633ddf117a146101715780634ef501ac1461016c5780636bf6337914610167578063745a5cec146101625780638429d51f1461015d57806389035730146101585780638f7e8498146101535780639632b92a1461014e57806398c2b10814610149578063a9bf805c14610144578063c3525c281461013f578063c415b95c1461013a578063c939ad6114610135578063cd3293de14610130578063ec915ee61461012b578063f36c8f5c146101265763fbfa77cf14610121575f80fd5b610f1d565b610ee3565b610e77565b610deb565b610a9a565b610a72565b610a50565b610a28565b610877565b61060c565b6105cf565b610517565b6104c7565b6104a5565b610489565b61042f565b61040b565b6102f1565b6102b9565b61027d565b610226565b610209565b6101e1565b6101a7565b5f9103126101a357565b5f80fd5b346101a3575f3660031901126101a35760206040517fba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c08152f35b346101a3575f3660031901126101a3576014546040516001600160a01b039091168152602090f35b346101a3575f3660031901126101a35760206040516203f4808152f35b346101a3575f3660031901126101a3576020604051611f408152f35b600435906001600160a01b03821682036101a357565b6001600160a01b031690565b6001600160a01b03165f90815260126020526040902090565b346101a35760203660031901126101a3576001600160a01b0361029e610242565b165f5260208052602060ff60405f2054166040519015158152f35b346101a35760203660031901126101a3576001600160a01b036102da610242565b165f52602e602052602060405f2054604051908152f35b346101a35760403660031901126101a3576001600160a01b03610312610242565b165f52601260205260405f206024355f5260205260405f20805461038460ff600184015416926002810154906003810154600560ff60048401541692015492604051968796879260a094919796959260c085019885521515602085015260408401526060830152151560808201520152565b0390f35b9181601f840112156101a3578235916001600160401b0383116101a357602083818601950101116101a357565b60606003198201126101a3576004356001600160a01b03811681036101a357916024356001600160a01b03811681036101a35791604435906001600160401b0382116101a35761040791600401610388565b9091565b346101a357602061042761041e366103b5565b92919091610fe2565b604051908152f35b346101a35760203660031901126101a357600435601f548110156101a357601f5f527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701546040516001600160a01b039091168152602090f35b346101a3575f3660031901126101a35760206040516113888152f35b346101a3575f3660031901126101a3576020604051678ac7230489e800008152f35b346101a3575f3660031901126101a35760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b346101a3575f3660031901126101a3576021546022549061038460235460245460255460265460275460285460295491602a5493602b5495602c5497602d54996040519d8d8f9e8f9060ff809160081c169216909b99979593919e9d9c9a98969492909e6101c08d019f15158d52151560208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526101a00152565b346101a35760203660031901126101a3576001600160a01b036105f0610242565b165f52601e602052602060ff60405f2054166040519015158152f35b346101a35760403660031901126101a357610625610242565b6024356001600160401b0381116101a357610644903690600401610388565b610679307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415611033565b60405163a646a19360e01b81526001600160a01b0384169290602081806106a486866004840161107a565b0381875afa8015610834576106d1915f91610848575b506106c433610264565b905f5260205260405f2090565b60018101936106e86106e4865460ff1690565b1590565b61083957803b156101a3575f604051809263caf9278560e01b825281806107148989336004850161108b565b03915afa80156108345761081a575b5061073083833388610fe2565b60028201946107438654602354906110c1565b421180610811575b6108025760048301916107626106e4845460ff1690565b806107f9575b6107ea5761077461139e565b6107db5760056107bd935f7fb0c81d4656d75534dd28b6de6ea0fa675e34edc21dad96062011f1817642e912986107b0829560ff198154169055565b550155805460ff19169055565b6107c56111f4565b6107d660405192839233968461108b565b0390a2005b6312bf4cab60e01b5f5260045ffd5b6370aef2b560e01b5f5260045ffd5b50801515610768565b634b3c322760e11b5f5260045ffd5b5081151561074b565b806108285f61082e93610f45565b80610199565b5f610723565b610fd7565b63013e5dc360e61b5f5260045ffd5b61086a915060203d602011610870575b6108628183610f45565b810190610f7c565b5f6106ba565b503d610858565b346101a357610885366103b5565b909291906108be307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415611033565b60405163a646a19360e01b81526001600160a01b0384169290602081806108e9868a6004840161107a565b0381875afa801561083457610909915f91610a09575b506106c483610264565b6001810193610919855460ff1690565b6109fa57803b156101a3575f604051809263caf9278560e01b82528180610945898d8a6004850161108b565b03915afa8015610834576109e6575b5061095d61139e565b670de0b6b3a764000061097284888589611323565b10156109d7576109aa7ff4c454ebcd16349d07fc3e6946ed4208c0732abd5d01fda36928b747d650be7194600160ff19825416179055565b6002429101556109b86111f4565b6109d260405192839260018060a01b03169633968461108b565b0390a3005b634bd575c960e01b5f5260045ffd5b806108285f6109f493610f45565b5f610954565b63b84f7eb560e01b5f5260045ffd5b610a22915060203d602011610870576108628183610f45565b5f6108ff565b346101a3575f3660031901126101a3576013546040516001600160a01b039091168152602090f35b346101a3575f3660031901126101a3576020604051670de0b6b3a76400008152f35b346101a3575f3660031901126101a3576015546040516001600160a01b039091168152602090f35b346101a357610aa8366103b5565b91929190610ae1307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415611033565b60405163a646a19360e01b81526001600160a01b038416949060208180610b0c87876004840161107a565b0381895afa801561083457610b2b915f91610a0957506106c483610264565b946001860195610b3f6106e4885460ff1690565b61083957813b156101a35760405163caf9278560e01b81525f8180610b698989896004850161108b565b0381865afa801561083457610dcb575b50610b8261139e565b60048101805460ff1680610db1575b610da257610bc390610bb3610ba88888888c610fe2565b8a5460ff1916909a55565b5f6002840155805460ff19169055565b610bce601454610258565b90823b156101a3575f610bf89260405180948192639ebeb90f60e01b83528a8a8a600486016110d3565b038183875af191821561083457610c7392610d8e575b50608085610c28610c23610c23600254610258565b610258565b60055460801c610c538b610c458c6040519687936020850161108b565b03601f198101855284610f45565b5f8c60405197889586948593638a94b05f60e01b85528d6004860161112c565b03925af190811561083457610cb0925f92610d55575b5060055f91610ca1610c9c835460801c90565b610ddf565b600382015582815501556112e5565b610cbb601454610258565b956020604051809363d57dfa1560e01b82528180610cde8a8a8a6004850161108b565b03915afa908115610834577f080b424cea9a40779061385dfc0893179b5177808d5fd41036f01e9776bac06b956109d2935f93610d34575b506040516001600160a01b039586169990951697949586958661119d565b610d4e91935060203d602011610870576108628183610f45565b915f610d16565b5f919250610d7c60059160803d608011610d87575b610d748183610f45565b81019061110a565b505050929150610c89565b503d610d6a565b806108285f610d9c93610f45565b5f610c0e565b6363e5f12d60e11b5f5260045ffd5b50610dc36002830154602354906110c1565b421115610b91565b806108285f610dd993610f45565b5f610b79565b6001600160801b031690565b346101a3575f3660031901126101a3575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b346101a3575f3660031901126101a357610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b346101a3575f3660031901126101a35760206040517f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb18152f35b346101a3575f3660031901126101a357601d546040516001600160a01b039091168152602090f35b601f909101601f19168101906001600160401b03821190821017610f6857604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126101a3575190565b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b03918216815291166020820152606060408201819052610fd493910191610f8b565b90565b6040513d5f823e3d90fd5b611004602093946040519586948594631a02fd2f60e31b865260048601610fab565b0381305afa908115610834575f9161101a575090565b610fd4915060203d602011610870576108628183610f45565b1561103a57565b60405162461bcd60e51b8152602060048201526018602482015277111a5c9958dd0818d85b1b1cc81b9bdd08185b1b1bddd95960421b6044820152606490fd5b916020610fd4938181520191610f8b565b6001600160a01b039091168152604060208201819052610fd493910191610f8b565b634e487b7160e01b5f52601160045260245ffd5b919082018092116110ce57565b6110ad565b92916040926110fa9296959660018060a01b03168552606060208601526060850191610f8b565b6001600160a01b03909416910152565b91908260809103126101a3578151916020810151916060604083015192015190565b6001600160a01b03909116815260208101919091526001600160801b03909116604082015260806060820181905282519082018190529192915f5b818110611187575060a09293505f838284010152601f8019910116010190565b80602080928701015160a0828601015201611167565b916060936111c4929796959760018060a01b03168452608060208501526080840191610f8b565b9460408201520152565b676765c793fa10079d601b1b908103919082116110ce57565b919082039182116110ce57565b60046020611209610c23610c23600254610258565b6040516318160ddd60e01b815292839182905afa908115610834575f916112c6575b50600455611272611241600354600454906116bd565b8060115561125f81600a54600b54600c54600d5491600e549361170e565b600955600954600f5490600454926117c6565b9060085560105561128460085f61153f565b6008546009546040805192835260208301919091527f48f4f83c2f1843e8fd7ef13ffcff40fca5055dc1b9b074cd9dd0f9a8a8e09dd99190819081015b0390a1565b6112df915060203d602011610870576108628183610f45565b5f61122b565b80611301575b5060046020611209610c23610c23600254610258565b61131a90611314610c9c6003549261168c565b906110c1565b6003555f6112eb565b61100460209394604051958694859463086c33e160e01b865260048601610fab565b80546001600160801b0319166001600160801b03909216919091179055565b80546001600160801b031660809290921b6001600160801b031916919091179055565b9064ffffffffff1664ffffffffff19825416179055565b6113c46113be6113b460065464ffffffffff1690565b64ffffffffff1690565b426111e7565b6001811061153c576113da610c9c600554610ddf565b906001821061152d5761141a816114016113fa85611421956008546117fe565b6005611345565b60095490611414610c9c60055460801c90565b91611838565b6005611364565b61143364ffffffffff42166006611387565b60046020611447610c23610c235f54610258565b60405163a14e19d560e01b815292839182905afa8015610834576114c49261149561149b926114bc945f9161150e575b5061148f8161148a610c9c600554610ddf565b611849565b92611849565b906111e7565b6114b76114b16114ac600f546111ce565b611883565b82611849565b6111e7565b6007546110c1565b6007555f5160206119cb5f395f51905f526005546114eb6114e482610ddf565b9160801c90565b604080516001600160801b039384168152929091166020830152819081016112c1565b611527915060203d602011610870576108628183610f45565b5f611477565b630a1cf3ed60e21b5f5260045ffd5b50565b60068101906115596113be6113b4845464ffffffffff1690565b9160018310611686576005820192611574610c9c8554610ddf565b906001821061152d576004926115b96115b38361159f611599876115c7978d546117fe565b8a611345565b60018a015490611414610c9c8b5460801c90565b87611364565b64ffffffffff421690611387565b60206115d9610c23610c238654610258565b60405163a14e19d560e01b815293849182905afa908115610834575f5160206119cb5f395f51905f52956114b76114b16114ac60076116386116409661149583998d61164a9c5f92611659575b508161148a610c9c61148f9354610ddf565b9401546111ce565b92019182546110c1565b9055546114eb6114e482610ddf565b610c9c92509061148a61167d61148f9360203d602011610870576108628183610f45565b93505090611626565b50505050565b6001600160801b0381116116a6576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b6001821061170857600181106116f6578181018091116110ce576001600160801b03916116f2916116ed916118ba565b61168c565b1690565b50676765c793fa10079d601b1b919050565b50505f90565b9094919493929384818311928315936117bb575b505081156117b0575b5080156117a6575b611797578061174457505050505f90565b8181116117515750505090565b8161178161177061176a611786969795611314956111e7565b926111ce565b9161177b85886111e7565b90611849565b6118ba565b81811115611792575090565b905090565b63abc83fed60e01b5f5260045ffd5b5082841015611733565b90508411155f61172b565b10159150845f611722565b909193926001116117f4576117e5916117de91611849565b9283611849565b918281039081116110ce579190565b505090505f905f90565b8181029181830414901517156110ce57676765c793fa10079d601b1b6301e1338090910481019081106110ce57610fd4916116ed91611849565b9161177b6116ed92610fd4946118ea565b8115676765c793fa10079d601a1b1983900482111517156101a357676765c793fa10079d601b1b9102676765c793fa10079d601a1b010490565b600181901c8115676765c793fa10079d601b1b821981900410176101a3576f29c30f1029939b146664242d97d9f64960361b010490565b600182901c908215676765c793fa10079d601b1b8319048211176101a357676765c793fa10079d601b1b02010490565b600182106116f657744f3a68dbc8f03f243baf513267aa9a3ee524f8e02881116101a357610fd4916301e1338062f099c061193393676765c793fa10079d601b1b020104611849565b80156119ba57676765c793fa10079d601c1b81800204906b09b18ab5df7180b6b80000008282020490676765c793fa10079d601d1b82820204906b1027e72f1f1281308800000082820204916b1363156bbee3016d7000000083830204936b169e43a85eb381aa580000008584020495676765c793fa10079d601b1b930101010101010190565b50676765c793fa10079d601b1b9056fef92a3abee06d57c996e7e19eb34560241fdc1fe67e9ebd503177710bf9fd8204a26469706673582212208dbbeb3bf7db7c520cbb93b94c2c038991a3216e0edba67ef1f38980ee5a917e64736f6c634300081e0033";
17
+ static readonly bytecode = "0x60a0806040523460305730608052611a5b90816100358239608051818181610694015281816108d90152610afc0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806302768de4146101a4578063048c661d1461019f57806309bf1e731461019a5780630c42dcaf14610195578063152f158414610190578063202019a61461018b57806320df43591461018657806334176a6d146101815780633ddf117a1461017c5780634ef501ac146101775780636bf6337914610172578063745a5cec1461016d5780638429d51f1461016857806389035730146101635780638f7e84981461015e5780639632b92a1461015957806398c2b10814610154578063a9bf805c1461014f578063c3525c281461014a578063c415b95c14610145578063c939ad6114610140578063cd3293de1461013b578063ec915ee614610136578063f36c8f5c146101315763fbfa77cf1461012c575f80fd5b610f67565b610f2d565b610ec1565b610e35565b610ae4565b610abc565b610a9a565b610a72565b6108c1565b610656565b610619565b610561565b610511565b6104ef565b6104d3565b610479565b610455565b61033b565b610301565b6102c9565b61028d565b610236565b610219565b6101f1565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b35760206040517fba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c08152f35b346101b3575f3660031901126101b3576014546040516001600160a01b039091168152602090f35b346101b3575f3660031901126101b35760206040516203f4808152f35b346101b3575f3660031901126101b3576020604051611f408152f35b600435906001600160a01b03821682036101b357565b6001600160a01b031690565b6001600160a01b03165f90815260126020526040902090565b346101b35760203660031901126101b3576001600160a01b036102ae610252565b165f5260208052602060ff60405f2054166040519015158152f35b346101b35760203660031901126101b3576001600160a01b036102ea610252565b165f52602e602052602060405f2054604051908152f35b346101b3575f3660031901126101b35760206040517fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b268152f35b346101b35760403660031901126101b3576001600160a01b0361035c610252565b165f52601260205260405f206024355f5260205260405f2080546103ce60ff600184015416926002810154906003810154600560ff60048401541692015492604051968796879260a094919796959260c085019885521515602085015260408401526060830152151560808201520152565b0390f35b9181601f840112156101b3578235916001600160401b0383116101b357602083818601950101116101b357565b60606003198201126101b3576004356001600160a01b03811681036101b357916024356001600160a01b03811681036101b35791604435906001600160401b0382116101b357610451916004016103d2565b9091565b346101b3576020610471610468366103ff565b9291909161102c565b604051908152f35b346101b35760203660031901126101b357600435601f548110156101b357601f5f527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701546040516001600160a01b039091168152602090f35b346101b3575f3660031901126101b35760206040516113888152f35b346101b3575f3660031901126101b3576020604051678ac7230489e800008152f35b346101b3575f3660031901126101b35760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b346101b3575f3660031901126101b357602154602254906103ce60235460245460255460265460275460285460295491602a5493602b5495602c5497602d54996040519d8d8f9e8f9060ff809160081c169216909b99979593919e9d9c9a98969492909e6101c08d019f15158d52151560208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526101a00152565b346101b35760203660031901126101b3576001600160a01b0361063a610252565b165f52601e602052602060ff60405f2054166040519015158152f35b346101b35760403660031901126101b35761066f610252565b6024356001600160401b0381116101b35761068e9036906004016103d2565b6106c3307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561107d565b60405163a646a19360e01b81526001600160a01b0384169290602081806106ee8686600484016110c4565b0381875afa801561087e5761071b915f91610892575b5061070e33610274565b905f5260205260405f2090565b600181019361073261072e865460ff1690565b1590565b61088357803b156101b3575f604051809263caf9278560e01b8252818061075e898933600485016110d5565b03915afa801561087e57610864575b5061077a8383338861102c565b600282019461078d86546023549061110b565b42118061085b575b61084c5760048301916107ac61072e845460ff1690565b80610843575b610834576107be6113e8565b610825576005610807935f7fb0c81d4656d75534dd28b6de6ea0fa675e34edc21dad96062011f1817642e912986107fa829560ff198154169055565b550155805460ff19169055565b61080f61123e565b6108206040519283923396846110d5565b0390a2005b6312bf4cab60e01b5f5260045ffd5b6370aef2b560e01b5f5260045ffd5b508015156107b2565b634b3c322760e11b5f5260045ffd5b50811515610795565b806108725f61087893610f8f565b806101a9565b5f61076d565b611021565b63013e5dc360e61b5f5260045ffd5b6108b4915060203d6020116108ba575b6108ac8183610f8f565b810190610fc6565b5f610704565b503d6108a2565b346101b3576108cf366103ff565b90929190610908307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561107d565b60405163a646a19360e01b81526001600160a01b038416929060208180610933868a600484016110c4565b0381875afa801561087e57610953915f91610a53575b5061070e83610274565b6001810193610963855460ff1690565b610a4457803b156101b3575f604051809263caf9278560e01b8252818061098f898d8a600485016110d5565b03915afa801561087e57610a30575b506109a76113e8565b670de0b6b3a76400006109bc8488858961136d565b1015610a21576109f47ff4c454ebcd16349d07fc3e6946ed4208c0732abd5d01fda36928b747d650be7194600160ff19825416179055565b600242910155610a0261123e565b610a1c60405192839260018060a01b0316963396846110d5565b0390a3005b634bd575c960e01b5f5260045ffd5b806108725f610a3e93610f8f565b5f61099e565b63b84f7eb560e01b5f5260045ffd5b610a6c915060203d6020116108ba576108ac8183610f8f565b5f610949565b346101b3575f3660031901126101b3576013546040516001600160a01b039091168152602090f35b346101b3575f3660031901126101b3576020604051670de0b6b3a76400008152f35b346101b3575f3660031901126101b3576015546040516001600160a01b039091168152602090f35b346101b357610af2366103ff565b91929190610b2b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561107d565b60405163a646a19360e01b81526001600160a01b038416949060208180610b568787600484016110c4565b0381895afa801561087e57610b75915f91610a53575061070e83610274565b946001860195610b8961072e885460ff1690565b61088357813b156101b35760405163caf9278560e01b81525f8180610bb3898989600485016110d5565b0381865afa801561087e57610e15575b50610bcc6113e8565b60048101805460ff1680610dfb575b610dec57610c0d90610bfd610bf28888888c61102c565b8a5460ff1916909a55565b5f6002840155805460ff19169055565b610c18601454610268565b90823b156101b3575f610c429260405180948192639ebeb90f60e01b83528a8a8a6004860161111d565b038183875af191821561087e57610cbd92610dd8575b50608085610c72610c6d610c6d600254610268565b610268565b60055460801c610c9d8b610c8f8c604051968793602085016110d5565b03601f198101855284610f8f565b5f8c60405197889586948593638a94b05f60e01b85528d60048601611176565b03925af190811561087e57610cfa925f92610d9f575b5060055f91610ceb610ce6835460801c90565b610e29565b6003820155828155015561132f565b610d05601454610268565b956020604051809363d57dfa1560e01b82528180610d288a8a8a600485016110d5565b03915afa90811561087e577f080b424cea9a40779061385dfc0893179b5177808d5fd41036f01e9776bac06b95610a1c935f93610d7e575b506040516001600160a01b03958616999095169794958695866111e7565b610d9891935060203d6020116108ba576108ac8183610f8f565b915f610d60565b5f919250610dc660059160803d608011610dd1575b610dbe8183610f8f565b810190611154565b505050929150610cd3565b503d610db4565b806108725f610de693610f8f565b5f610c58565b6363e5f12d60e11b5f5260045ffd5b50610e0d60028301546023549061110b565b421115610bdb565b806108725f610e2393610f8f565b5f610bc3565b6001600160801b031690565b346101b3575f3660031901126101b3575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b346101b3575f3660031901126101b357610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b346101b3575f3660031901126101b35760206040517f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb18152f35b346101b3575f3660031901126101b357601d546040516001600160a01b039091168152602090f35b601f909101601f19168101906001600160401b03821190821017610fb257604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126101b3575190565b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0391821681529116602082015260606040820181905261101e93910191610fd5565b90565b6040513d5f823e3d90fd5b61104e602093946040519586948594631a02fd2f60e31b865260048601610ff5565b0381305afa90811561087e575f91611064575090565b61101e915060203d6020116108ba576108ac8183610f8f565b1561108457565b60405162461bcd60e51b8152602060048201526018602482015277111a5c9958dd0818d85b1b1cc81b9bdd08185b1b1bddd95960421b6044820152606490fd5b91602061101e938181520191610fd5565b6001600160a01b03909116815260406020820181905261101e93910191610fd5565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161111857565b6110f7565b92916040926111449296959660018060a01b03168552606060208601526060850191610fd5565b6001600160a01b03909416910152565b91908260809103126101b3578151916020810151916060604083015192015190565b6001600160a01b03909116815260208101919091526001600160801b03909116604082015260806060820181905282519082018190529192915f5b8181106111d1575060a09293505f838284010152601f8019910116010190565b80602080928701015160a08286010152016111b1565b9160609361120e929796959760018060a01b03168452608060208501526080840191610fd5565b9460408201520152565b676765c793fa10079d601b1b9081039190821161111857565b9190820391821161111857565b60046020611253610c6d610c6d600254610268565b6040516318160ddd60e01b815292839182905afa90811561087e575f91611310575b506004556112bc61128b6003546004549061172f565b806011556112a981600a54600b54600c54600d5491600e5493611780565b600955600954600f549060045492611838565b906008556010556112ce60085f61159c565b6008546009546040805192835260208301919091527f48f4f83c2f1843e8fd7ef13ffcff40fca5055dc1b9b074cd9dd0f9a8a8e09dd99190819081015b0390a1565b611329915060203d6020116108ba576108ac8183610f8f565b5f611275565b8061134b575b5060046020611253610c6d610c6d600254610268565b6113649061135e610ce6600354926116fe565b9061110b565b6003555f611335565b61104e60209394604051958694859463086c33e160e01b865260048601610ff5565b80546001600160801b0319166001600160801b03909216919091179055565b80546001600160801b031660809290921b6001600160801b031916919091179055565b9064ffffffffff1664ffffffffff19825416179055565b61140e6114086113fe60065464ffffffffff1690565b64ffffffffff1690565b42611231565b600181106115995760055490611426610ce683610e29565b916001831061158a576114569261146c9261145d61144a610ce66114659560801c90565b95869383600854611870565b600561138f565b6009546118aa565b60056113ae565b61147e64ffffffffff421660066113d1565b60046020611493610c6d610c6d600254610268565b604051635a20bdb760e01b815292839182905afa90811561087e576114f0916114e7915f9161156b575b506114e1600554946114db6114d5610ce68860801c90565b846118bb565b926118bb565b90611231565b600f54906118bb565b9081611540575b50505f516020611a065f395f51905f5260055461151d61151682610e29565b9160801c90565b604080516001600160801b0393841681529290911660208301528190810161130b565b61156191611553610ce661155993610e29565b906118f5565b60075461110b565b6007555f806114f7565b611584915060203d6020116108ba576108ac8183610f8f565b5f6114bd565b630a1cf3ed60e21b5f5260045ffd5b50565b60068101906115b66114086113fe845464ffffffffff1690565b91600183106116f85760058201928354916115d3610ce684610e29565b916001831061158a576116156116299361161b9261160b6115fa610ce66116059960801c90565b978893838d54611870565b8a61138f565b60018a01546118aa565b866113ae565b64ffffffffff4216906113d1565b60046020611640610c6d610c6d6002870154610268565b604051635a20bdb760e01b815292839182905afa94851561087e5760076116915f516020611a065f395f51905f529761169a945f916116d9575b506114e18854966114db6114d5610ce68a60801c90565b910154906118bb565b806116b0575b5050505461151d61151682610e29565b6116c5600791611553610ce66116cf95610e29565b920191825461110b565b90555f80806116a0565b6116f2915060203d6020116108ba576108ac8183610f8f565b5f61167a565b50505050565b6001600160801b038111611718576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b6001821061177a576001811061176857818101809111611118576001600160801b03916117649161175f916118f5565b6116fe565b1690565b50676765c793fa10079d601b1b919050565b50505f90565b90949194939293848183119283159361182d575b50508115611822575b508015611818575b61180957806117b657505050505f90565b8181116117c35750505090565b816117f36117e26117dc6117f896979561135e95611231565b92611218565b916117ed8588611231565b906118bb565b6118f5565b81811115611804575090565b905090565b63abc83fed60e01b5f5260045ffd5b50828410156117a5565b90508411155f61179d565b10159150845f611794565b909193926001116118665761185791611850916118bb565b92836118bb565b91828103908111611118579190565b505090505f905f90565b81810291818304149015171561111857676765c793fa10079d601b1b6301e1338090910481019081106111185761101e9161175f916118bb565b916117ed61175f9261101e94611925565b8115676765c793fa10079d601a1b1983900482111517156101b357676765c793fa10079d601b1b9102676765c793fa10079d601a1b010490565b600182901c908215676765c793fa10079d601b1b8319048211176101b357676765c793fa10079d601b1b02010490565b6001821061176857744f3a68dbc8f03f243baf513267aa9a3ee524f8e02881116101b35761101e916301e1338062f099c061196e93676765c793fa10079d601b1b0201046118bb565b80156119f557676765c793fa10079d601c1b81800204906b09b18ab5df7180b6b80000008282020490676765c793fa10079d601d1b82820204906b1027e72f1f1281308800000082820204916b1363156bbee3016d7000000083830204936b169e43a85eb381aa580000008584020495676765c793fa10079d601b1b930101010101010190565b50676765c793fa10079d601b1b9056fef92a3abee06d57c996e7e19eb34560241fdc1fe67e9ebd503177710bf9fd8204a26469706673582212205af888872c4b0c9b21dbf5c6813752820b8a14b77115bab785aae359a4f37d3d64736f6c634300081e0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly stateMutability: "nonpayable";
@@ -332,6 +332,16 @@ export declare class LiquidationProxy__factory extends ContractFactory {
332
332
  }];
333
333
  readonly stateMutability: "view";
334
334
  readonly type: "function";
335
+ }, {
336
+ readonly inputs: readonly [];
337
+ readonly name: "EMERGENCY_ROLE";
338
+ readonly outputs: readonly [{
339
+ readonly internalType: "bytes32";
340
+ readonly name: "";
341
+ readonly type: "bytes32";
342
+ }];
343
+ readonly stateMutability: "view";
344
+ readonly type: "function";
335
345
  }, {
336
346
  readonly inputs: readonly [];
337
347
  readonly name: "GOVERNANCE_ROLE";
@@ -675,7 +685,7 @@ export declare class LiquidationProxy__factory extends ContractFactory {
675
685
  readonly type: "uint40";
676
686
  }, {
677
687
  readonly internalType: "uint256";
678
- readonly name: "pendingProtocolFeeAmount";
688
+ readonly name: "scaledPendingProtocolFee";
679
689
  readonly type: "uint256";
680
690
  }];
681
691
  readonly stateMutability: "view";
@@ -14,7 +14,7 @@ export declare class VaultProxy__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): VaultProxy__factory;
17
- static readonly bytecode = "0x60a08060405234603e5730608052611b199081610043823960805181818161024501528181610487015281816105240152818161066a01526108bb0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806302768de414610194578063048c661d1461018f578063076d08151461018a57806309bf1e73146101855780630c42dcaf14610180578063152f15841461017b578063202019a61461017657806334176a6d146101715780634ef501ac1461016c5780636bf6337914610167578063745a5cec146101625780637f4aeb1a1461015d5780638429d51f14610158578063853828b614610153578063890357301461014e5780638f7e849814610149578063912927e214610144578063a9bf805c1461013f578063c3525c281461013a578063c415b95c14610135578063cd3293de14610130578063ec915ee61461012b578063f36c8f5c146101265763fbfa77cf14610121575f80fd5b610842565b610808565b61079c565b610710565b6106e8565b6106c6565b61069e565b610653565b610613565b61055b565b61050e565b6104be565b610471565b61044f565b610433565b6103df565b61034b565b610310565b6102d1565b610298565b61027b565b61022e565b6101f4565b6101a7565b5f9103126101a357565b5f80fd5b346101a3575f3660031901126101a35760206040517fba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c08152f35b6001600160a01b03909116815260200190565b346101a3575f3660031901126101a3576014546040516001600160a01b039091168152602090f35b60209060031901126101a35760043590565b346101a35761027961023f3661021c565b610274307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561086a565b610968565b005b346101a3575f3660031901126101a35760206040516203f4808152f35b346101a3575f3660031901126101a3576020604051611f408152f35b6001600160a01b038116036101a357565b6001600160a01b031690565b346101a35760203660031901126101a3576004356102ee816102b4565b60018060a01b03165f5260208052602060ff60405f2054166040519015158152f35b346101a35760203660031901126101a35760043561032d816102b4565b60018060a01b03165f52602e602052602060405f2054604051908152f35b346101a35760403660031901126101a357600435610368816102b4565b6001600160a01b03165f908152601260209081526040808320602435845282529182902080546001820154600283015460038401546004850154600590950154875194855260ff93841615159685019690965295830152606082019490945292161515608083015260a08201528060c081015b0390f35b346101a3576103ed3661021c565b601f548110156101a357601f5f527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701546040516001600160a01b039091168152602090f35b346101a3575f3660031901126101a35760206040516113888152f35b346101a3575f3660031901126101a3576020604051678ac7230489e800008152f35b346101a3575f3660031901126101a3576104b6307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561086a565b610279610b53565b346101a3575f3660031901126101a35760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b346101a3575f3660031901126101a357610553307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561086a565b610279610cf7565b346101a3575f3660031901126101a357602154602254906103db60235460245460255460265460275460285460295491602a5493602b5495602c5497602d54996040519d8d8f9e8f9060ff809160081c169216909b99979593919e9d9c9a98969492909e6101c08d019f15158d52151560208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526101a00152565b346101a35760203660031901126101a357600435610630816102b4565b60018060a01b03165f52601e602052602060ff60405f2054166040519015158152f35b346101a3576102796106643661021c565b610699307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561086a565b611145565b346101a3575f3660031901126101a3576013546040516001600160a01b039091168152602090f35b346101a3575f3660031901126101a3576020604051670de0b6b3a76400008152f35b346101a3575f3660031901126101a3576015546040516001600160a01b039091168152602090f35b346101a3575f3660031901126101a3575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b346101a3575f3660031901126101a357610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b346101a3575f3660031901126101a35760206040517f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb18152f35b346101a3575f3660031901126101a357601d546040516001600160a01b039091168152602090f35b1561087157565b60405162461bcd60e51b8152602060048201526018602482015277111a5c9958dd0818d85b1b1cc81b9bdd08185b1b1bddd95960421b6044820152606490fd5b6108ea90610274307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141561086a565b565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761092357604052565b6108ec565b908160209103126101a3575190565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b9190820391821161096357565b610942565b8015610b50576109773061137d565b15610b50576109846113e4565b8061098e3061137d565b10610af4576109a96109a46109a46001546102c5565b6102c5565b90602060405180936370a0823160e01b825281806109ca30600483016101e1565b03915afa918215610aca575f92610acf575b506109ea90309030906115a3565b906109f96109a46001546102c5565b610a02816102c5565b602060405180926370a0823160e01b82528180610a2230600483016101e1565b03915afa928315610aca57610a5393610a42925f91610a9b575b50610956565b90610a4d5f546102c5565b906115f6565b601c54808210610a84575050610a685f601c55565b610a7b610a76601c54611630565b601655565b6108ea42601a55565b610a9691610a9191610956565b601c55565b610a68565b610abd915060203d602011610ac3575b610ab58183610900565b810190610928565b5f610a3c565b503d610aab565b610937565b6109ea919250610aed9060203d602011610ac357610ab58183610900565b91906109dc565b60405162461bcd60e51b815260206004820152602e60248201527f4e6f7420656e6f756768206c697175696469747920746f2066756c66696c6c2060448201526d1d1a19481dda5d1a191c985dd85b60921b6064820152608490fd5b50565b601d546001600160a01b0390610b6c906109a4906102c5565b16156108ea57610bbd610b846003546026549061166e565b6020610b976109a46109a46001546102c5565b610ba15f546102c5565b9060405180809681946370a0823160e01b8352600483016101e1565b03915afa908115610aca577f8f9497c27f572ff1a65e8b2c7a0706d466466ae0b5efc78462b5f0021da66956925f92610c96575b5080821115610c3c57610c049082610956565b602d54811015610c2d575b505b601654604080519283526020830191909152819081015b0390a1565b610c36906116a4565b5f610c0f565b81818110610c4c575b5050610c11565b610c5591610956565b602d54811015610c66575b81610c45565b610c6f3061137d565b9081811115610c8f57505b8015610c6057610c89906108b1565b5f610c60565b9050610c7a565b610cb091925060203d602011610ac357610ab58183610900565b905f610bf1565b9190820180921161096357565b908160209103126101a35751610cd9816102b4565b90565b6001600160a01b039091168152602081019190915260400190565b610d0b6109a46109a46109a4601d546102c5565b602060405180926370a0823160e01b82528180610d2b30600483016101e1565b03915afa908115610aca575f91611126575b501561110257610d4b6113e4565b610d543061137d565b601654811061108157610d6e6109a46109a46001546102c5565b90602060405180936370a0823160e01b82528180610d8f30600483016101e1565b03915afa918215610aca575f926110dd575b50610daf90309030906115a3565b50610dbe6109a46001546102c5565b90610dc8826102c5565b90602060405180936370a0823160e01b82528180610de930600483016101e1565b03915afa8015610aca57610e03925f91610a9b5750610956565b9060165480831061108157610e1c91610a4d5f546102c5565b610e2860165482610956565b80611068575b610e3f6109a46109a4601d546102c5565b91610e49836102c5565b92602060405180956370a0823160e01b82528180610e6a30600483016101e1565b03915afa938415610aca575f94611047575b5083610ee4575b50610ebd5f516020611ac45f395f51905f529360165493604051948594859094939260609260808301968352602083015260408201520152565b0390a1610ec95f601655565b610ed25f601955565b610edb5f601b55565b610a7b5f601c55565b92610ef66109a46109a46015546102c5565b60405163186e140f60e11b81527f06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb7600482015290602090829060249082905afa908115610aca575f91611018575b506001600160a01b038116948515610fe057610f619183916117f0565b610f6f6109a4601d546102c5565b93803b156101a357815f91610f9b96836040518099819582946311f9fbc960e21b845260048401610cdc565b03925af1908115610aca575f516020611ac45f395f51905f5294610ebd92610fc6575b509350610e83565b80610fd45f610fda93610900565b80610199565b5f610fbe565b60405162461bcd60e51b815260206004820152601060248201526f151c99585cdd5c9e481b9bdd081cd95d60821b6044820152606490fd5b61103a915060203d602011611040575b6110328183610900565b810190610cc4565b5f610f44565b503d611028565b61106191945060203d602011610ac357610ab58183610900565b925f610e7c565b61107c61107782601754610cb7565b601755565b610e2e565b60405162461bcd60e51b815260206004820152602e60248201527f4e6f7420656e6f75676820776974686472617761626c6520616d6f756e74207460448201526d1bc81dda5d1a191c985dc8185b1b60921b6064820152608490fd5b610daf9192506110fb9060203d602011610ac357610ab58183610900565b9190610da1565b61110b5f601655565b6111145f601955565b61111d5f601b55565b6108ea5f601c55565b61113f915060203d602011610ac357610ab58183610900565b5f610d3d565b611181602061115b6109a46109a46001546102c5565b6111655f546102c5565b9060405180809581946370a0823160e01b8352600483016101e1565b03915afa908115610aca575f916112df575b50601d546001600160a01b03906111ad906109a4906102c5565b1615611288578181106111be575050565b6111c89082610956565b80611279575b506111e5602061115b6109a46109a46001546102c5565b03915afa908115610aca575f9161125a575b50106111ff57565b60405162461bcd60e51b815260206004820152602d60248201527f496e73756666696369656e74206c69717569646974792061667465722076617560448201526c1b1d081dda5d1a191c985dd85b609a1b6064820152608490fd5b611273915060203d602011610ac357610ab58183610900565b5f6111f7565b611282906108b1565b5f6111ce565b1061128f57565b60405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e74206c697175696469747920696e2074686520706f6044820152611bdb60f21b6064820152608490fd5b6112f8915060203d602011610ac357610ab58183610900565b5f611193565b6040519061130d602083610900565b5f808352366020840137565b90602080835192838152019201905f5b8181106113365750505090565b82516001600160a01b0316845260209384019390920191600101611329565b6001600160a01b0390911681525f6020820152606060408201819052610cd992910190611319565b601d546113b6916020916001600160a01b03166113986112fe565b6040516365cb676560e01b8152948593849283929160048401611355565b03915afa908115610aca575f916113cb575090565b610cd9915060203d602011610ac357610ab58183610900565b601c5480158015611564575b610b50576113ff6016546118b8565b808211156115605761141091610956565b611419306118f6565b908181111561155957505b8015610b505761143381611630565b15610b50576114496109a46109a46001546102c5565b90602060405180936370a0823160e01b8252818061146a30600483016101e1565b03915afa918215610aca575f92611538575b5061148830308361192f565b5061149a6109a46109a46001546102c5565b91602060405180946370a0823160e01b825281806114bb30600483016101e1565b03915afa8015610aca576114fe61151692610a91927f46eee0760c564660379a99fd69bc8669b19dba864b3053d7dbb597d0cfbfb266965f91610a9b5750610956565b9261150e61107785601754610cb7565b601c54610956565b61151e61196d565b604080519283525f60208401528201528060608101610c28565b61155291925060203d602011610ac357610ab58183610900565b905f61147c565b9050611424565b5050565b50601654156113f0565b9081526001600160a01b039182166020820152911660408201525f606082015260a060808201819052610cd992910190611319565b601d54909260209290916001600160a01b0316905f6115c06112fe565b956115e160405197889687958694636c0d04fb60e11b86526004860161156e565b03925af1908115610aca575f916113cb575090565b61162b6108ea939261161d60405194859263a9059cbb60e01b602085015260248401610cdc565b03601f198101845283610900565b6119a4565b601d5460405163266d6a8360e11b81526004810192909252602090829060249082906001600160a01b03165afa908115610aca575f916113cb575090565b816113881904811115821517156101a3576127109102611388010490565b908160209103126101a3575180151581036101a35790565b8015610b50576116b26113e4565b6116bb306119fc565b8082116117e8575b506116cd81611a3b565b15610b50576116e26109a46109a45f546102c5565b90813b156101a3575f6040518093635c921eb960e01b825281838161170b873060048401610cdc565b03925af1918215610aca5761175f926117d4575b506020816117346109a46109a46001546102c5565b6117426109a4601d546102c5565b5f60405180978195829463095ea7b360e01b845260048401610cdc565b03925af1918215610aca5761177b926117a7575b503090611a79565b8015610b5057610a9161179091601c54610cb7565b61179e610a76601c54611630565b6108ea42601b55565b6117c89060203d6020116117cd575b6117c08183610900565b81019061168c565b611773565b503d6117b6565b80610fd45f6117e293610900565b5f61171f565b90505f6116c3565b91909160205f60405193611827856118198582019363095ea7b360e01b85528960248401610cdc565b03601f198101875286610900565b84519082855af15f51903d8161188c575b501590505b61184657505050565b60405163095ea7b360e01b60208201526001600160a01b039390931660248401525f60448085019190915283526108ea9261162b90611886606482610900565b826119a4565b151590506118ac575061183d6001600160a01b0382163b15155b5f611838565b600161183d91146118a6565b601d54604051630a28a47760e01b81526004810192909252602090829060249082906001600160a01b03165afa908115610aca575f916113cb575090565b601d546113b6916020916001600160a01b03166119116112fe565b604051631a5afd5b60e11b8152948593849283929160048401611355565b601d54909260209290916001600160a01b0316905f61194c6112fe565b956115e1604051978896879586946306580f2d60e01b86526004860161156e565b601d54604051634ca9858360e11b815290602090829060049082906001600160a01b03165afa908115610aca575f916113cb575090565b905f602091828151910182855af115610937575f513d6119f357506001600160a01b0381163b155b6119d35750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156119cc565b601d5460405163402d267d60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610aca575f916113cb575090565b601d5460405163ef8b30f760e01b81526004810192909252602090829060249082906001600160a01b03165afa908115610aca575f916113cb575090565b601d54604051636e553f6560e01b815260048101929092526001600160a01b0392831660248301529091602091839160449183915f91165af1908115610aca575f916113cb57509056fea676852c9f9a3dbb8cc0176455c9067361c4c6f5ee3533b7f53b16baadb6bf5fa2646970667358221220e6ed623c6dab227df42761518dc4fe0d56d07cf39181adea5c8a4fd8e5737a2c64736f6c634300081e0033";
17
+ static readonly bytecode = "0x60a08060405234603e5730608052611b6390816100438239608051818181610255015281816104d10152818161056e015281816106b401526109050152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806302768de4146101a4578063048c661d1461019f578063076d08151461019a57806309bf1e73146101955780630c42dcaf14610190578063152f15841461018b578063202019a61461018657806320df43591461018157806334176a6d1461017c5780634ef501ac146101775780636bf6337914610172578063745a5cec1461016d5780637f4aeb1a146101685780638429d51f14610163578063853828b61461015e57806389035730146101595780638f7e849814610154578063912927e21461014f578063a9bf805c1461014a578063c3525c2814610145578063c415b95c14610140578063cd3293de1461013b578063ec915ee614610136578063f36c8f5c146101315763fbfa77cf1461012c575f80fd5b61088c565b610852565b6107e6565b61075a565b610732565b610710565b6106e8565b61069d565b61065d565b6105a5565b610558565b610508565b6104bb565b610499565b61047d565b610429565b610395565b61035b565b610320565b6102e1565b6102a8565b61028b565b61023e565b610204565b6101b7565b5f9103126101b357565b5f80fd5b346101b3575f3660031901126101b35760206040517fba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c08152f35b6001600160a01b03909116815260200190565b346101b3575f3660031901126101b3576014546040516001600160a01b039091168152602090f35b60209060031901126101b35760043590565b346101b35761028961024f3661022c565b610284307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156108b4565b6109b2565b005b346101b3575f3660031901126101b35760206040516203f4808152f35b346101b3575f3660031901126101b3576020604051611f408152f35b6001600160a01b038116036101b357565b6001600160a01b031690565b346101b35760203660031901126101b3576004356102fe816102c4565b60018060a01b03165f5260208052602060ff60405f2054166040519015158152f35b346101b35760203660031901126101b35760043561033d816102c4565b60018060a01b03165f52602e602052602060405f2054604051908152f35b346101b3575f3660031901126101b35760206040517fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b268152f35b346101b35760403660031901126101b3576004356103b2816102c4565b6001600160a01b03165f908152601260209081526040808320602435845282529182902080546001820154600283015460038401546004850154600590950154875194855260ff93841615159685019690965295830152606082019490945292161515608083015260a08201528060c081015b0390f35b346101b3576104373661022c565b601f548110156101b357601f5f527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701546040516001600160a01b039091168152602090f35b346101b3575f3660031901126101b35760206040516113888152f35b346101b3575f3660031901126101b3576020604051678ac7230489e800008152f35b346101b3575f3660031901126101b357610500307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156108b4565b610289610b9d565b346101b3575f3660031901126101b35760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b346101b3575f3660031901126101b35761059d307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156108b4565b610289610d41565b346101b3575f3660031901126101b3576021546022549061042560235460245460255460265460275460285460295491602a5493602b5495602c5497602d54996040519d8d8f9e8f9060ff809160081c169216909b99979593919e9d9c9a98969492909e6101c08d019f15158d52151560208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526101a00152565b346101b35760203660031901126101b35760043561067a816102c4565b60018060a01b03165f52601e602052602060ff60405f2054166040519015158152f35b346101b3576102896106ae3661022c565b6106e3307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156108b4565b61118f565b346101b3575f3660031901126101b3576013546040516001600160a01b039091168152602090f35b346101b3575f3660031901126101b3576020604051670de0b6b3a76400008152f35b346101b3575f3660031901126101b3576015546040516001600160a01b039091168152602090f35b346101b3575f3660031901126101b3575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b346101b3575f3660031901126101b357610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b346101b3575f3660031901126101b35760206040517f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb18152f35b346101b3575f3660031901126101b357601d546040516001600160a01b039091168152602090f35b156108bb57565b60405162461bcd60e51b8152602060048201526018602482015277111a5c9958dd0818d85b1b1cc81b9bdd08185b1b1bddd95960421b6044820152606490fd5b61093490610284307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156108b4565b565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761096d57604052565b610936565b908160209103126101b3575190565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b919082039182116109ad57565b61098c565b8015610b9a576109c1306113c7565b15610b9a576109ce61142e565b806109d8306113c7565b10610b3e576109f36109ee6109ee6001546102d5565b6102d5565b90602060405180936370a0823160e01b82528180610a1430600483016101f1565b03915afa918215610b14575f92610b19575b50610a3490309030906115ed565b90610a436109ee6001546102d5565b610a4c816102d5565b602060405180926370a0823160e01b82528180610a6c30600483016101f1565b03915afa928315610b1457610a9d93610a8c925f91610ae5575b506109a0565b90610a975f546102d5565b90611640565b601c54808210610ace575050610ab25f601c55565b610ac5610ac0601c5461167a565b601655565b61093442601a55565b610ae091610adb916109a0565b601c55565b610ab2565b610b07915060203d602011610b0d575b610aff818361094a565b810190610972565b5f610a86565b503d610af5565b610981565b610a34919250610b379060203d602011610b0d57610aff818361094a565b9190610a26565b60405162461bcd60e51b815260206004820152602e60248201527f4e6f7420656e6f756768206c697175696469747920746f2066756c66696c6c2060448201526d1d1a19481dda5d1a191c985dd85b60921b6064820152608490fd5b50565b601d546001600160a01b0390610bb6906109ee906102d5565b161561093457610c07610bce600354602654906116b8565b6020610be16109ee6109ee6001546102d5565b610beb5f546102d5565b9060405180809681946370a0823160e01b8352600483016101f1565b03915afa908115610b14577f8f9497c27f572ff1a65e8b2c7a0706d466466ae0b5efc78462b5f0021da66956925f92610ce0575b5080821115610c8657610c4e90826109a0565b602d54811015610c77575b505b601654604080519283526020830191909152819081015b0390a1565b610c80906116ee565b5f610c59565b81818110610c96575b5050610c5b565b610c9f916109a0565b602d54811015610cb0575b81610c8f565b610cb9306113c7565b9081811115610cd957505b8015610caa57610cd3906108fb565b5f610caa565b9050610cc4565b610cfa91925060203d602011610b0d57610aff818361094a565b905f610c3b565b919082018092116109ad57565b908160209103126101b35751610d23816102c4565b90565b6001600160a01b039091168152602081019190915260400190565b610d556109ee6109ee6109ee601d546102d5565b602060405180926370a0823160e01b82528180610d7530600483016101f1565b03915afa908115610b14575f91611170575b501561114c57610d9561142e565b610d9e306113c7565b60165481106110cb57610db86109ee6109ee6001546102d5565b90602060405180936370a0823160e01b82528180610dd930600483016101f1565b03915afa918215610b14575f92611127575b50610df990309030906115ed565b50610e086109ee6001546102d5565b90610e12826102d5565b90602060405180936370a0823160e01b82528180610e3330600483016101f1565b03915afa8015610b1457610e4d925f91610ae557506109a0565b906016548083106110cb57610e6691610a975f546102d5565b610e72601654826109a0565b806110b2575b610e896109ee6109ee601d546102d5565b91610e93836102d5565b92602060405180956370a0823160e01b82528180610eb430600483016101f1565b03915afa938415610b14575f94611091575b5083610f2e575b50610f075f516020611b0e5f395f51905f529360165493604051948594859094939260609260808301968352602083015260408201520152565b0390a1610f135f601655565b610f1c5f601955565b610f255f601b55565b610ac55f601c55565b92610f406109ee6109ee6015546102d5565b60405163186e140f60e11b81527f06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb7600482015290602090829060249082905afa908115610b14575f91611062575b506001600160a01b03811694851561102a57610fab91839161183a565b610fb96109ee601d546102d5565b93803b156101b357815f91610fe596836040518099819582946311f9fbc960e21b845260048401610d26565b03925af1908115610b14575f516020611b0e5f395f51905f5294610f0792611010575b509350610ecd565b8061101e5f6110249361094a565b806101a9565b5f611008565b60405162461bcd60e51b815260206004820152601060248201526f151c99585cdd5c9e481b9bdd081cd95d60821b6044820152606490fd5b611084915060203d60201161108a575b61107c818361094a565b810190610d0e565b5f610f8e565b503d611072565b6110ab91945060203d602011610b0d57610aff818361094a565b925f610ec6565b6110c66110c182601754610d01565b601755565b610e78565b60405162461bcd60e51b815260206004820152602e60248201527f4e6f7420656e6f75676820776974686472617761626c6520616d6f756e74207460448201526d1bc81dda5d1a191c985dc8185b1b60921b6064820152608490fd5b610df99192506111459060203d602011610b0d57610aff818361094a565b9190610deb565b6111555f601655565b61115e5f601955565b6111675f601b55565b6109345f601c55565b611189915060203d602011610b0d57610aff818361094a565b5f610d87565b6111cb60206111a56109ee6109ee6001546102d5565b6111af5f546102d5565b9060405180809581946370a0823160e01b8352600483016101f1565b03915afa908115610b14575f91611329575b50601d546001600160a01b03906111f7906109ee906102d5565b16156112d257818110611208575050565b61121290826109a0565b806112c3575b5061122f60206111a56109ee6109ee6001546102d5565b03915afa908115610b14575f916112a4575b501061124957565b60405162461bcd60e51b815260206004820152602d60248201527f496e73756666696369656e74206c69717569646974792061667465722076617560448201526c1b1d081dda5d1a191c985dd85b609a1b6064820152608490fd5b6112bd915060203d602011610b0d57610aff818361094a565b5f611241565b6112cc906108fb565b5f611218565b106112d957565b60405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e74206c697175696469747920696e2074686520706f6044820152611bdb60f21b6064820152608490fd5b611342915060203d602011610b0d57610aff818361094a565b5f6111dd565b6040519061135760208361094a565b5f808352366020840137565b90602080835192838152019201905f5b8181106113805750505090565b82516001600160a01b0316845260209384019390920191600101611373565b6001600160a01b0390911681525f6020820152606060408201819052610d2392910190611363565b601d54611400916020916001600160a01b03166113e2611348565b6040516365cb676560e01b815294859384928392916004840161139f565b03915afa908115610b14575f91611415575090565b610d23915060203d602011610b0d57610aff818361094a565b601c54801580156115ae575b610b9a57611449601654611902565b808211156115aa5761145a916109a0565b61146330611940565b90818111156115a357505b8015610b9a5761147d8161167a565b15610b9a576114936109ee6109ee6001546102d5565b90602060405180936370a0823160e01b825281806114b430600483016101f1565b03915afa918215610b14575f92611582575b506114d2303083611979565b506114e46109ee6109ee6001546102d5565b91602060405180946370a0823160e01b8252818061150530600483016101f1565b03915afa8015610b145761154861156092610adb927f46eee0760c564660379a99fd69bc8669b19dba864b3053d7dbb597d0cfbfb266965f91610ae557506109a0565b926115586110c185601754610d01565b601c546109a0565b6115686119b7565b604080519283525f60208401528201528060608101610c72565b61159c91925060203d602011610b0d57610aff818361094a565b905f6114c6565b905061146e565b5050565b506016541561143a565b9081526001600160a01b039182166020820152911660408201525f606082015260a060808201819052610d2392910190611363565b601d54909260209290916001600160a01b0316905f61160a611348565b9561162b60405197889687958694636c0d04fb60e11b8652600486016115b8565b03925af1908115610b14575f91611415575090565b611675610934939261166760405194859263a9059cbb60e01b602085015260248401610d26565b03601f19810184528361094a565b6119ee565b601d5460405163266d6a8360e11b81526004810192909252602090829060249082906001600160a01b03165afa908115610b14575f91611415575090565b816113881904811115821517156101b3576127109102611388010490565b908160209103126101b3575180151581036101b35790565b8015610b9a576116fc61142e565b61170530611a46565b808211611832575b5061171781611a85565b15610b9a5761172c6109ee6109ee5f546102d5565b90813b156101b3575f6040518093635c921eb960e01b8252818381611755873060048401610d26565b03925af1918215610b14576117a99261181e575b5060208161177e6109ee6109ee6001546102d5565b61178c6109ee601d546102d5565b5f60405180978195829463095ea7b360e01b845260048401610d26565b03925af1918215610b14576117c5926117f1575b503090611ac3565b8015610b9a57610adb6117da91601c54610d01565b6117e8610ac0601c5461167a565b61093442601b55565b6118129060203d602011611817575b61180a818361094a565b8101906116d6565b6117bd565b503d611800565b8061101e5f61182c9361094a565b5f611769565b90505f61170d565b91909160205f60405193611871856118638582019363095ea7b360e01b85528960248401610d26565b03601f19810187528661094a565b84519082855af15f51903d816118d6575b501590505b61189057505050565b60405163095ea7b360e01b60208201526001600160a01b039390931660248401525f604480850191909152835261093492611675906118d060648261094a565b826119ee565b151590506118f657506118876001600160a01b0382163b15155b5f611882565b600161188791146118f0565b601d54604051630a28a47760e01b81526004810192909252602090829060249082906001600160a01b03165afa908115610b14575f91611415575090565b601d54611400916020916001600160a01b031661195b611348565b604051631a5afd5b60e11b815294859384928392916004840161139f565b601d54909260209290916001600160a01b0316905f611996611348565b9561162b604051978896879586946306580f2d60e01b8652600486016115b8565b601d54604051634ca9858360e11b815290602090829060049082906001600160a01b03165afa908115610b14575f91611415575090565b905f602091828151910182855af115610981575f513d611a3d57506001600160a01b0381163b155b611a1d5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611a16565b601d5460405163402d267d60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610b14575f91611415575090565b601d5460405163ef8b30f760e01b81526004810192909252602090829060249082906001600160a01b03165afa908115610b14575f91611415575090565b601d54604051636e553f6560e01b815260048101929092526001600160a01b0392831660248301529091602091839160449183915f91165af1908115610b14575f9161141557509056fea676852c9f9a3dbb8cc0176455c9067361c4c6f5ee3533b7f53b16baadb6bf5fa2646970667358221220321fe9628720eff95f3950c2fb72c53a0a65523dd3f95dc88648209e1275274464736f6c634300081e0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly stateMutability: "nonpayable";
@@ -316,6 +316,16 @@ export declare class VaultProxy__factory extends ContractFactory {
316
316
  }];
317
317
  readonly stateMutability: "view";
318
318
  readonly type: "function";
319
+ }, {
320
+ readonly inputs: readonly [];
321
+ readonly name: "EMERGENCY_ROLE";
322
+ readonly outputs: readonly [{
323
+ readonly internalType: "bytes32";
324
+ readonly name: "";
325
+ readonly type: "bytes32";
326
+ }];
327
+ readonly stateMutability: "view";
328
+ readonly type: "function";
319
329
  }, {
320
330
  readonly inputs: readonly [];
321
331
  readonly name: "GOVERNANCE_ROLE";
@@ -603,7 +613,7 @@ export declare class VaultProxy__factory extends ContractFactory {
603
613
  readonly type: "uint40";
604
614
  }, {
605
615
  readonly internalType: "uint256";
606
- readonly name: "pendingProtocolFeeAmount";
616
+ readonly name: "scaledPendingProtocolFee";
607
617
  readonly type: "uint256";
608
618
  }];
609
619
  readonly stateMutability: "view";