@pendle/core-v2 0.12.2-testnet → 0.13.1-testnet

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 (473) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +4 -0
  2. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +3 -3
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +4 -0
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +48 -0
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +4 -0
  6. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +3 -3
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +4 -0
  8. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +4 -0
  10. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/EpochResultManager.sol/EpochResultManager.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +4 -0
  12. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +3 -3
  13. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +4 -0
  14. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +3 -3
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +4 -0
  16. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +4 -0
  18. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +3 -3
  19. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +4 -0
  20. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +4 -0
  22. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +1084 -0
  23. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +4 -0
  24. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +32 -1
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +4 -0
  26. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +3 -3
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +4 -0
  28. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  29. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +4 -0
  30. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +4 -0
  32. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeBalanceLib.sol/VeBalanceLib.json +3 -3
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +4 -0
  34. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol/CheckpointHelper.json +3 -3
  35. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +4 -0
  36. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol/Checkpoints.json +3 -3
  37. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +4 -0
  38. package/build/artifacts/contracts/{libraries/math → LiquidityMining/libraries}/WeekMath.sol/WeekMath.json +3 -3
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +4 -0
  40. package/build/artifacts/contracts/{libraries/math → core/Market}/MarketMathCore.sol/MarketMathCore.json +3 -3
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +4 -0
  42. package/build/artifacts/contracts/{libraries → core/Market}/OracleLib.sol/OracleLib.json +3 -3
  43. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +4 -0
  44. package/build/artifacts/contracts/core/{LiquidityMining → Market}/PendleGauge.sol/PendleGauge.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +4 -4
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  49. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +4 -0
  50. package/build/artifacts/contracts/{libraries → core/RewardManager}/RewardManager.sol/RewardManager.json +1 -1
  51. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +4 -0
  52. package/build/artifacts/contracts/{libraries → core/RewardManager}/RewardManagerAbstract.sol/RewardManagerAbstract.json +1 -1
  53. package/build/artifacts/contracts/core/SuperComposableYield/PYIndex.sol/PYIndexLib.dbg.json +4 -0
  54. package/build/artifacts/contracts/{libraries/helpers → core/SuperComposableYield}/PYIndex.sol/PYIndexLib.json +3 -3
  55. package/build/artifacts/contracts/core/SuperComposableYield/SCYBase.sol/SCYBase.dbg.json +4 -0
  56. package/build/artifacts/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBase.sol/SCYBase.json +1 -1
  57. package/build/artifacts/contracts/core/SuperComposableYield/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +4 -0
  58. package/build/artifacts/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +1 -1
  59. package/build/artifacts/contracts/core/SuperComposableYield/SCYUtils.sol/SCYUtils.dbg.json +4 -0
  60. package/build/artifacts/contracts/{libraries/SCY → core/SuperComposableYield}/SCYUtils.sol/SCYUtils.json +3 -3
  61. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +4 -0
  62. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +3 -3
  63. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +1007 -0
  65. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +1030 -0
  67. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +1025 -0
  69. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +4 -0
  70. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.json +1 -1
  71. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +4 -0
  72. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +3 -3
  73. package/build/artifacts/contracts/core/SuperComposableYield/implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/SuperComposableYield/implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +851 -0
  75. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  78. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  80. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  82. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +4 -0
  83. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +254 -0
  84. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +4 -0
  85. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +329 -0
  86. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +4 -0
  87. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/ArrayLib.sol/ArrayLib.json +3 -3
  88. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +4 -0
  89. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -3
  90. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +4 -0
  91. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol/CodeDeployer.json +3 -3
  92. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
  93. package/build/artifacts/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +1 -1
  94. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
  95. package/build/artifacts/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +3 -3
  96. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +4 -0
  97. package/build/artifacts/contracts/{libraries → core/libraries}/Errors.sol/Errors.json +9 -4
  98. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +4 -0
  99. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/ExpiryUtilsLib.sol/ExpiryUtils.json +3 -3
  100. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +4 -0
  101. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/MiniHelpers.sol/MiniHelpers.json +3 -3
  102. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +4 -0
  103. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/TokenHelper.sol/TokenHelper.json +1 -1
  104. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +4 -0
  105. package/build/artifacts/contracts/{libraries → core/libraries}/math/LogExpMath.sol/LogExpMath.json +3 -3
  106. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +4 -0
  107. package/build/artifacts/contracts/{libraries → core/libraries}/math/Math.sol/Math.json +3 -3
  108. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPFeeDistributorFactory.sol/IPFeeDistributorFactory.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +31 -0
  148. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  168. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  169. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  170. package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.dbg.json +4 -0
  171. package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.json +190 -0
  172. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  173. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +8 -3
  174. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  175. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +60 -89
  176. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
  177. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1237 -0
  178. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +4 -0
  179. package/build/artifacts/contracts/{core/actions → router}/ActionCallback.sol/ActionCallback.json +3 -3
  180. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
  181. package/build/artifacts/contracts/{core/actions → router}/ActionMintRedeem.sol/ActionMintRedeem.json +5 -5
  182. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +4 -0
  183. package/build/artifacts/contracts/{core/actions → router}/ActionMisc.sol/ActionMisc.json +3 -3
  184. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
  185. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +698 -0
  186. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +4 -0
  187. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +317 -0
  188. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
  189. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +645 -0
  190. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +4 -0
  191. package/build/artifacts/contracts/{core → router}/PendleRouter.sol/PendleRouter.json +3 -3
  192. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
  193. package/build/artifacts/contracts/{core/actions → router}/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  194. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +4 -0
  195. package/build/artifacts/contracts/{core/actions → router}/base/CallbackHelper.sol/CallbackHelper.json +1 -1
  196. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +4 -0
  197. package/build/artifacts/contracts/{libraries/math → router/base}/MarketApproxLib.sol/MarketApproxPtInLib.json +3 -3
  198. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +4 -0
  199. package/build/artifacts/contracts/{libraries/math → router/base}/MarketApproxLib.sol/MarketApproxPtOutLib.json +3 -3
  200. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +4 -0
  201. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +35 -0
  202. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +4 -0
  203. package/build/artifacts/contracts/{libraries → router}/kyberswap/IMultihopRouter.sol/IMultihopRouter.json +1 -1
  204. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
  205. package/build/artifacts/contracts/{libraries → router}/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  206. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +6 -6
  207. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiverAppUpg.sol +5 -5
  208. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSendEndpointUpg.sol +5 -5
  209. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSenderAppUpg.sol +4 -4
  210. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/EpochResultManager.sol +7 -7
  211. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributor.sol +14 -11
  212. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributorFactory.sol +6 -4
  213. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerBaseUpg.sol +14 -11
  214. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerMainchainUpg.sol +2 -2
  215. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerSidechainUpg.sol +1 -1
  216. package/contracts/{core/LiquidityMining → LiquidityMining}/README.md +0 -0
  217. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/PendleVotingControllerUpg.sol +6 -5
  218. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/VotingControllerStorageUpg.sol +16 -12
  219. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleMainchain.sol +11 -7
  220. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleSidechain.sol +9 -4
  221. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowTokenBase.sol +9 -7
  222. package/contracts/{libraries → LiquidityMining/libraries}/VeBalanceLib.sol +3 -3
  223. package/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol +2 -2
  224. package/contracts/{libraries/math → LiquidityMining/libraries}/WeekMath.sol +2 -2
  225. package/contracts/{libraries/math → core/Market}/MarketMathCore.sol +17 -19
  226. package/contracts/{libraries → core/Market}/OracleLib.sol +2 -2
  227. package/contracts/core/{LiquidityMining → Market}/PendleGauge.sol +4 -6
  228. package/contracts/core/Market/PendleMarket.sol +4 -12
  229. package/contracts/core/Market/PendleMarketFactory.sol +5 -5
  230. package/contracts/{libraries → core/RewardManager}/RewardManager.sol +2 -4
  231. package/contracts/{libraries → core/RewardManager}/RewardManagerAbstract.sol +9 -4
  232. package/contracts/{libraries/helpers → core/SuperComposableYield}/PYIndex.sol +4 -3
  233. package/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBase.sol +11 -8
  234. package/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBaseWithRewards.sol +5 -4
  235. package/contracts/{libraries/SCY → core/SuperComposableYield}/SCYUtils.sol +1 -1
  236. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenHelper.sol +2 -2
  237. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenSCY.sol +6 -6
  238. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol +2 -2
  239. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol +1 -1
  240. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol +5 -5
  241. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/Pendle3CrvHelper.sol +2 -2
  242. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/PendleWstEthSCY.sol +6 -5
  243. package/contracts/core/YieldContracts/InterestManagerYT.sol +5 -5
  244. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +6 -4
  245. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +6 -7
  246. package/contracts/core/YieldContracts/PendleYieldToken.sol +11 -10
  247. package/contracts/core/{PendleERC20.sol → erc20/PendleERC20.sol} +0 -0
  248. package/contracts/core/{PendleERC20Permit.sol → erc20/PendleERC20Permit.sol} +0 -0
  249. package/contracts/{libraries/helpers → core/libraries}/ArrayLib.sol +0 -0
  250. package/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol +1 -1
  251. package/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol +1 -1
  252. package/contracts/{libraries → core/libraries}/Errors.sol +2 -2
  253. package/contracts/{libraries/helpers → core/libraries}/ExpiryUtilsLib.sol +1 -1
  254. package/contracts/{libraries/helpers → core/libraries}/MiniHelpers.sol +1 -1
  255. package/contracts/{libraries/helpers → core/libraries}/TokenHelper.sol +1 -16
  256. package/contracts/{libraries → core/libraries}/math/LogExpMath.sol +1 -1
  257. package/contracts/{libraries → core/libraries}/math/Math.sol +2 -2
  258. package/contracts/deployments/43113-core.json +16 -0
  259. package/contracts/deployments/43113-helper.json +3 -0
  260. package/contracts/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  261. package/contracts/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  262. package/{deployments → contracts/deployments}/43113-testenv.json +0 -0
  263. package/contracts/deployments/80001-core.json +15 -0
  264. package/contracts/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  265. package/contracts/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  266. package/{deployments → contracts/deployments}/80001-testenv.json +0 -0
  267. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  268. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -1
  269. package/contracts/interfaces/ConvexCurve/ICvxCrv.sol +1 -1
  270. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -1
  271. package/contracts/interfaces/Curve/ICrvPool.sol +1 -1
  272. package/contracts/interfaces/IAToken.sol +1 -1
  273. package/contracts/interfaces/IAavePool.sol +1 -1
  274. package/contracts/interfaces/IAaveRewardsController.sol +1 -1
  275. package/contracts/interfaces/IBenQiComptroller.sol +1 -1
  276. package/contracts/interfaces/IBenQiInterestRateModel.sol +1 -1
  277. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +1 -1
  278. package/contracts/interfaces/IERC4626.sol +1 -1
  279. package/contracts/interfaces/IEulerEToken.sol +1 -1
  280. package/contracts/interfaces/IEulerMarkets.sol +1 -1
  281. package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -3
  282. package/contracts/interfaces/IPActionMintRedeem.sol +3 -3
  283. package/contracts/interfaces/IPActionMisc.sol +1 -1
  284. package/contracts/interfaces/IPActionSwapPT.sol +3 -3
  285. package/contracts/interfaces/IPActionSwapPTYT.sol +3 -3
  286. package/contracts/interfaces/IPActionSwapYT.sol +3 -3
  287. package/contracts/interfaces/IPAllAction.sol +1 -1
  288. package/contracts/interfaces/IPFeeDistributor.sol +1 -1
  289. package/contracts/interfaces/IPFeeDistributorFactory.sol +1 -1
  290. package/contracts/interfaces/IPGauge.sol +1 -1
  291. package/contracts/interfaces/IPGaugeController.sol +1 -1
  292. package/contracts/interfaces/IPGaugeControllerMainchain.sol +1 -1
  293. package/contracts/interfaces/IPGovernanceManager.sol +1 -1
  294. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  295. package/contracts/interfaces/IPMarket.sol +2 -2
  296. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  297. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  298. package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
  299. package/contracts/interfaces/IPPrincipalToken.sol +1 -1
  300. package/contracts/interfaces/IPVeToken.sol +1 -1
  301. package/contracts/interfaces/IPVotingController.sol +5 -3
  302. package/contracts/interfaces/IPVotingEscrowMainchain.sol +3 -3
  303. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  304. package/contracts/interfaces/IPYieldToken.sol +1 -1
  305. package/contracts/interfaces/IQiAvax.sol +1 -1
  306. package/contracts/interfaces/IQiErc20.sol +1 -1
  307. package/contracts/interfaces/IQiToken.sol +1 -1
  308. package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
  309. package/contracts/interfaces/IRewardManager.sol +1 -1
  310. package/contracts/interfaces/ISAvax.sol +1 -1
  311. package/contracts/interfaces/ISJoe.sol +1 -1
  312. package/contracts/interfaces/IStETH.sol +1 -1
  313. package/contracts/interfaces/IStargateLPStaking.sol +1 -1
  314. package/contracts/interfaces/IStargatePool.sol +1 -1
  315. package/contracts/interfaces/IStargateRouter.sol +1 -1
  316. package/contracts/interfaces/ISuperComposableYield.sol +1 -1
  317. package/contracts/interfaces/IWAvax.sol +1 -1
  318. package/contracts/interfaces/IWETH.sol +1 -1
  319. package/contracts/interfaces/IWXBTRFLY.sol +1 -1
  320. package/contracts/interfaces/IWstETH.sol +1 -1
  321. package/contracts/interfaces/IYearnVault.sol +1 -1
  322. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -3
  323. package/contracts/offchain-helpers/ImplicitSwapfeeContract.sol +26 -0
  324. package/contracts/offchain-helpers/MarketMathStatic.sol +7 -7
  325. package/contracts/offchain-helpers/RouterStatic.sol +7 -14
  326. package/contracts/{core/actions → router}/ActionAddRemoveLiq.sol +5 -5
  327. package/contracts/{core/actions → router}/ActionCallback.sol +7 -7
  328. package/contracts/{core/actions → router}/ActionMintRedeem.sol +4 -4
  329. package/contracts/{core/actions → router}/ActionMisc.sol +4 -4
  330. package/contracts/{core/actions → router}/ActionSwapPT.sol +5 -5
  331. package/contracts/{core/actions → router}/ActionSwapPTYT.sol +5 -5
  332. package/contracts/{core/actions → router}/ActionSwapYT.sol +5 -5
  333. package/contracts/{core → router}/PendleRouter.sol +3 -3
  334. package/contracts/{core/actions → router}/base/ActionBaseMintRedeem.sol +6 -6
  335. package/contracts/{core/actions → router}/base/CallbackHelper.sol +1 -1
  336. package/contracts/{libraries/math → router/base}/MarketApproxLib.sol +180 -219
  337. package/contracts/{libraries → router}/kyberswap/AggregationRouterHelper.sol +1 -1
  338. package/contracts/{libraries → router}/kyberswap/IMultihopRouter.sol +0 -0
  339. package/contracts/{libraries → router}/kyberswap/KyberSwapHelper.sol +3 -4
  340. package/package.json +4 -4
  341. package/typechain-types/IPVotingController.ts +18 -0
  342. package/typechain-types/ImplicitSwapfeeContract.ts +157 -0
  343. package/typechain-types/PendleMsgReceiverAppUpg.ts +3 -128
  344. package/typechain-types/PendleVotingControllerUpg.ts +18 -0
  345. package/typechain-types/RouterStatic.ts +0 -45
  346. package/typechain-types/VotingControllerStorageUpg.ts +18 -0
  347. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +10 -5
  348. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  349. package/typechain-types/factories/ActionMintRedeem__factory.ts +4 -4
  350. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  351. package/typechain-types/factories/ActionSwapPTYT__factory.ts +7 -2
  352. package/typechain-types/factories/ActionSwapPT__factory.ts +10 -5
  353. package/typechain-types/factories/ActionSwapYT__factory.ts +10 -5
  354. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  355. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  356. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  357. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  358. package/typechain-types/factories/ERC20__factory.ts +1 -1
  359. package/typechain-types/factories/Errors__factory.ts +7 -2
  360. package/typechain-types/factories/IPVotingController__factory.ts +31 -0
  361. package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +247 -0
  362. package/typechain-types/factories/MarketMathStatic__factory.ts +7 -2
  363. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  364. package/typechain-types/factories/Pendle3CrvAndTokenSCY__factory.ts +1 -1
  365. package/typechain-types/factories/Pendle3CrvHelper__factory.ts +1 -1
  366. package/typechain-types/factories/PendleConvexCurveLP2PoolSCY__factory.ts +1 -1
  367. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  368. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  369. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  370. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  371. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  372. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  373. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  374. package/typechain-types/factories/PendleMarket__factory.ts +4 -4
  375. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  376. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +0 -75
  377. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  378. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  379. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  380. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  381. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  382. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +32 -1
  383. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  384. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  385. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  386. package/typechain-types/factories/RouterStatic__factory.ts +1 -30
  387. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +31 -0
  388. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  389. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  390. package/typechain-types/hardhat.d.ts +241 -232
  391. package/typechain-types/index.ts +92 -90
  392. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +0 -4
  393. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +0 -4
  394. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +0 -1007
  395. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +0 -4
  396. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +0 -1030
  397. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +0 -4
  398. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +0 -1025
  399. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +0 -4
  400. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
  401. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +0 -4
  402. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +0 -851
  403. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +0 -4
  404. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +0 -4
  405. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +0 -4
  406. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +0 -4
  407. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +0 -123
  408. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +0 -4
  409. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +0 -4
  410. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +0 -4
  411. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +0 -4
  412. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +0 -4
  413. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +0 -4
  414. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +0 -4
  415. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +0 -4
  416. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +0 -4
  417. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +0 -4
  418. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +0 -1053
  419. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +0 -4
  420. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +0 -4
  421. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +0 -4
  422. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +0 -4
  423. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +0 -4
  424. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +0 -254
  425. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  426. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
  427. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +0 -4
  428. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +0 -4
  429. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +0 -1232
  430. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  431. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +0 -4
  432. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +0 -4
  433. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +0 -4
  434. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +0 -693
  435. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  436. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -312
  437. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +0 -4
  438. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +0 -640
  439. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +0 -4
  440. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +0 -4
  441. package/build/artifacts/contracts/libraries/Errors.sol/Errors.dbg.json +0 -4
  442. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +0 -4
  443. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +0 -4
  444. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +0 -4
  445. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +0 -4
  446. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +0 -4
  447. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +0 -4
  448. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +0 -4
  449. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +0 -4
  450. package/build/artifacts/contracts/libraries/helpers/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +0 -4
  451. package/build/artifacts/contracts/libraries/helpers/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +0 -4
  452. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +0 -4
  453. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +0 -4
  454. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +0 -4
  455. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +0 -4
  456. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  457. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -35
  458. package/build/artifacts/contracts/libraries/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +0 -4
  459. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  460. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +0 -4
  461. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +0 -4
  462. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +0 -4
  463. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +0 -4
  464. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +0 -4
  465. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +0 -4
  466. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +0 -4
  467. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +0 -4
  468. package/deployments/43113-core.json +0 -16
  469. package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
  470. package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
  471. package/deployments/80001-core.json +0 -15
  472. package/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
  473. package/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
@@ -0,0 +1,247 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type {
7
+ ImplicitSwapfeeContract,
8
+ ImplicitSwapfeeContractInterface,
9
+ } from "../ImplicitSwapfeeContract";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [],
14
+ stateMutability: "nonpayable",
15
+ type: "constructor",
16
+ },
17
+ {
18
+ inputs: [
19
+ {
20
+ internalType: "int256",
21
+ name: "exchangeRate",
22
+ type: "int256",
23
+ },
24
+ ],
25
+ name: "MarketExchangeRateBelowOne",
26
+ type: "error",
27
+ },
28
+ {
29
+ inputs: [],
30
+ name: "MarketExpired",
31
+ type: "error",
32
+ },
33
+ {
34
+ inputs: [
35
+ {
36
+ internalType: "int256",
37
+ name: "currentAmount",
38
+ type: "int256",
39
+ },
40
+ {
41
+ internalType: "int256",
42
+ name: "requiredAmount",
43
+ type: "int256",
44
+ },
45
+ ],
46
+ name: "MarketInsufficientPtForTrade",
47
+ type: "error",
48
+ },
49
+ {
50
+ inputs: [],
51
+ name: "MarketProportionMustNotEqualOne",
52
+ type: "error",
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ internalType: "int256",
58
+ name: "proportion",
59
+ type: "int256",
60
+ },
61
+ {
62
+ internalType: "int256",
63
+ name: "maxProportion",
64
+ type: "int256",
65
+ },
66
+ ],
67
+ name: "MarketProportionTooHigh",
68
+ type: "error",
69
+ },
70
+ {
71
+ inputs: [
72
+ {
73
+ internalType: "int256",
74
+ name: "rateScalar",
75
+ type: "int256",
76
+ },
77
+ ],
78
+ name: "MarketRateScalarBelowZero",
79
+ type: "error",
80
+ },
81
+ {
82
+ inputs: [],
83
+ name: "MarketZeroLnImpliedRate",
84
+ type: "error",
85
+ },
86
+ {
87
+ inputs: [
88
+ {
89
+ internalType: "int256",
90
+ name: "totalPt",
91
+ type: "int256",
92
+ },
93
+ {
94
+ internalType: "int256",
95
+ name: "totalAsset",
96
+ type: "int256",
97
+ },
98
+ ],
99
+ name: "MarketZeroTotalPtOrTotalAsset",
100
+ type: "error",
101
+ },
102
+ {
103
+ inputs: [],
104
+ name: "K",
105
+ outputs: [
106
+ {
107
+ internalType: "int256",
108
+ name: "",
109
+ type: "int256",
110
+ },
111
+ ],
112
+ stateMutability: "view",
113
+ type: "function",
114
+ },
115
+ {
116
+ inputs: [
117
+ {
118
+ internalType: "address",
119
+ name: "market",
120
+ type: "address",
121
+ },
122
+ {
123
+ components: [
124
+ {
125
+ internalType: "int256",
126
+ name: "totalPt",
127
+ type: "int256",
128
+ },
129
+ {
130
+ internalType: "int256",
131
+ name: "totalScy",
132
+ type: "int256",
133
+ },
134
+ {
135
+ internalType: "int256",
136
+ name: "totalLp",
137
+ type: "int256",
138
+ },
139
+ {
140
+ internalType: "address",
141
+ name: "treasury",
142
+ type: "address",
143
+ },
144
+ {
145
+ internalType: "int256",
146
+ name: "scalarRoot",
147
+ type: "int256",
148
+ },
149
+ {
150
+ internalType: "uint256",
151
+ name: "lnFeeRateRoot",
152
+ type: "uint256",
153
+ },
154
+ {
155
+ internalType: "uint256",
156
+ name: "expiry",
157
+ type: "uint256",
158
+ },
159
+ {
160
+ internalType: "uint256",
161
+ name: "reserveFeePercent",
162
+ type: "uint256",
163
+ },
164
+ {
165
+ internalType: "uint256",
166
+ name: "lastLnImpliedRate",
167
+ type: "uint256",
168
+ },
169
+ ],
170
+ internalType: "struct MarketState",
171
+ name: "prevState",
172
+ type: "tuple",
173
+ },
174
+ {
175
+ internalType: "int256",
176
+ name: "netPtToAccount",
177
+ type: "int256",
178
+ },
179
+ ],
180
+ name: "execute",
181
+ outputs: [
182
+ {
183
+ internalType: "int256",
184
+ name: "netScyToAccount",
185
+ type: "int256",
186
+ },
187
+ ],
188
+ stateMutability: "view",
189
+ type: "function",
190
+ },
191
+ ];
192
+
193
+ const _bytecode =
194
+ "0x608060405234801561001057600080fd5b50611615806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063755bb5751461003b578063a932492f14610060575b600080fd5b61004e61004936600461130e565b610068565b60405190815260200160405180910390f35b61004e606481565b600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156100a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100cd919061135b565b925050506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610111573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013591906113a8565b905060005b606481121561018d57600061016c836101546064896113ed565b42610164368c90038c018c611452565b929190610197565b50905061017981866114d4565b94505080610186906114fc565b905061013a565b5050509392505050565b6000806101a88660c0015184610232565b156101c65760405163b2094b5960e01b815260040160405180910390fd5b855184126101f9578551604051632185509b60e21b81526004810191909152602481018590526044015b60405180910390fd5b600061020687878661023d565b905061021487828888610346565b90935091506102288782888887878a61048c565b5094509492505050565b808211155b92915050565b6102686040518060800160405280600081526020016000815260200160008152602001600081525090565b6102768460c0015183610232565b156102945760405163b2094b5960e01b815260040160405180910390fd5b6000828560c001516102a6919061151b565b90506102b2858261051e565b825260208501516102c490859061057f565b6020830152845115806102d957506020820151155b15610307578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016101f0565b610325856000015186610100015184602001518560000151856105be565b604083015260a0850151610339908261063f565b6060830152509392505050565b6000806000610368876000015187602001518860000151896040015188610678565b9050600061037e6103798684610735565b610764565b606088015190915060008613156103ed57600061039b8483610735565b9050670de0b6b3a76400008112156103c95760405163329e322960e21b8152600481018290526024016101f0565b6103e56103de83670de0b6b3a764000061152e565b8490610772565b91505061041a565b6104178161040381670de0b6b3a764000061152e565b61040d9085611555565b61037991906113ed565b90505b6000606461042b8b60e00151610790565b6104359084611555565b61043f91906113ed565b9050600061044d838561152e565b9050600081126104665761046189826107aa565b610470565b61047089826107d7565b965061047c89836107aa565b9550505050505094509492505050565b6000818860c0015161049e919061151b565b88519091506104ad9086610804565b88526104c76104bc84866114d4565b60208a015190610804565b6020890181905288516104ec916104df90899061057f565b895160408b015185610852565b610100890181905260000361051457604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600061052982610790565b61054061053b6201518061016d611585565b610790565b846080015161054f9190611555565b61055991906113ed565b90506000811361023757604051630e520c3b60e11b8152600481018290526024016101f0565b60008060008312610591576001610595565b6000195b90506105ac61053b856105a7866108aa565b6108c1565b6105b69082611555565b949350505050565b6000806105cb868461063f565b9050670de0b6b3a76400008112156105f95760405163329e322960e21b8152600481018290526024016101f0565b600061060f610608878a6114d4565b8990610735565b9050600061061c826108e0565b90506106288187610735565b610632908461152e565b9998505050505050505050565b6000806106516201518061016d611585565b61065b8486611585565b610665919061159c565b90506105b661067382610790565b610933565b6000806106858784610804565b9050600061069d610696888a6114d4565b8390610735565b9050670d529ae9e86000008113156106d957604051637e34684f60e11b815260048101829052670d529ae9e860000060248201526044016101f0565b60006106e4826108e0565b9050856106f18289610735565b6106fb91906114d4565b9350670de0b6b3a76400008412156107295760405163329e322960e21b8152600481018590526024016101f0565b50505095945050505050565b60008061074a670de0b6b3a764000085611555565b905082818161075b5761075b6113c1565b05949350505050565b600061023782600019611555565b60008061077f8385611555565b9050670de0b6b3a76400008161075b565b60006001600160ff1b038211156107a657600080fd5b5090565b600080600083126107bc5760016107c0565b6000195b90506105ac61053b856107d2866108aa565b610d48565b600080600083126107e95760016107ed565b6000195b90506105ac61053b856107ff866108aa565b610d5d565b6000818312156108415760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016101f0565b61084b828461152e565b9392505050565b600080610863878787876000610678565b9050600061087861087383610d89565b610e1a565b90508361088a6201518061016d611585565b6108949083611585565b61089e919061159c565b98975050505050505050565b60008082136107a6576108bc826115b0565b610237565b6000670de0b6b3a76400006108d68484611585565b61084b919061159c565b6000670de0b6b3a7640000820361090a5760405163a9c8b14d60e01b815260040160405180910390fd5b600061092861092184670de0b6b3a764000061152e565b8490610735565b905061084b81610d89565b6000680238fd42c5cf03ffff198212158015610958575068070c1cc73b00c800008213155b6109975760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016101f0565b60008212156109cf576109ac82600003610933565b6a0c097ce7bc90715b34b9f160241b816109c8576109c86113c1565b0592915050565b60006806f05b59d3b20000008312610a0d57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610a43565b6803782dace9d90000008312610a3f57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610a43565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610a935768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610acf576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610b0957682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412610b43576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412610b7c57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412610bb55768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412610bee576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412610c275768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000826108d6670de0b6b3a764000084611585565b600082600181610d75670de0b6b3a764000086611585565b610d7f91906115cc565b6108d6919061151b565b6000808213610dca5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016101f0565b670c7d713b49da000082138015610de85750670f43fc2c04ee000082125b15610e0c57670de0b6b3a7640000610dff83610e29565b816109c8576109c86113c1565b61023782610f48565b919050565b6000808212156107a657600080fd5b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281610e6a57610e6a6113c1565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215610f8957610f80826a0c097ce7bc90715b34b9f160241b81610f7a57610f7a6113c1565b05610f48565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312610fd45772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b831261100b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611053576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261108e576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf85083126110c557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126110fc57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126111315768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261115c57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611191576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f177578893793783126111c6576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126111fa576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac831261122e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611257576112576113c1565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461130057600080fd5b50565b8035610e15816112eb565b600080600083850361016081121561132557600080fd5b8435611330816112eb565b9350610120601f198201121561134557600080fd5b5060208401915061014084013590509250925092565b60008060006060848603121561137057600080fd5b835161137b816112eb565b602085015190935061138c816112eb565b604085015190925061139d816112eb565b809150509250925092565b6000602082840312156113ba57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826113fc576113fc6113c1565b600160ff1b821460001984141615611416576114166113d7565b500590565b60405161012081016001600160401b038111828210171561144c57634e487b7160e01b600052604160045260246000fd5b60405290565b6000610120828403121561146557600080fd5b61146d61141b565b82358152602083013560208201526040830135604082015261149160608401611303565b60608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152508091505092915050565b80820182811260008312801582168215821617156114f4576114f46113d7565b505092915050565b60006001600160ff1b018201611514576115146113d7565b5060010190565b81810381811115610237576102376113d7565b818103600083128015838313168383128216171561154e5761154e6113d7565b5092915050565b80820260008212600160ff1b84141615611571576115716113d7565b8181058314821517610237576102376113d7565b8082028115828204841417610237576102376113d7565b6000826115ab576115ab6113c1565b500490565b6000600160ff1b82016115c5576115c56113d7565b5060000390565b80820180821115610237576102376113d756fea26469706673582212201b4ef25ff8ebae0bd00e3267cc339a4a20e17e3ed9dd6ddafab6591a9e5733f764736f6c63430008110033";
195
+
196
+ type ImplicitSwapfeeContractConstructorParams =
197
+ | [signer?: Signer]
198
+ | ConstructorParameters<typeof ContractFactory>;
199
+
200
+ const isSuperArgs = (
201
+ xs: ImplicitSwapfeeContractConstructorParams
202
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
203
+
204
+ export class ImplicitSwapfeeContract__factory extends ContractFactory {
205
+ constructor(...args: ImplicitSwapfeeContractConstructorParams) {
206
+ if (isSuperArgs(args)) {
207
+ super(...args);
208
+ } else {
209
+ super(_abi, _bytecode, args[0]);
210
+ }
211
+ this.contractName = "ImplicitSwapfeeContract";
212
+ }
213
+
214
+ deploy(
215
+ overrides?: Overrides & { from?: string | Promise<string> }
216
+ ): Promise<ImplicitSwapfeeContract> {
217
+ return super.deploy(overrides || {}) as Promise<ImplicitSwapfeeContract>;
218
+ }
219
+ getDeployTransaction(
220
+ overrides?: Overrides & { from?: string | Promise<string> }
221
+ ): TransactionRequest {
222
+ return super.getDeployTransaction(overrides || {});
223
+ }
224
+ attach(address: string): ImplicitSwapfeeContract {
225
+ return super.attach(address) as ImplicitSwapfeeContract;
226
+ }
227
+ connect(signer: Signer): ImplicitSwapfeeContract__factory {
228
+ return super.connect(signer) as ImplicitSwapfeeContract__factory;
229
+ }
230
+ static readonly contractName: "ImplicitSwapfeeContract";
231
+ public readonly contractName: "ImplicitSwapfeeContract";
232
+ static readonly bytecode = _bytecode;
233
+ static readonly abi = _abi;
234
+ static createInterface(): ImplicitSwapfeeContractInterface {
235
+ return new utils.Interface(_abi) as ImplicitSwapfeeContractInterface;
236
+ }
237
+ static connect(
238
+ address: string,
239
+ signerOrProvider: Signer | Provider
240
+ ): ImplicitSwapfeeContract {
241
+ return new Contract(
242
+ address,
243
+ _abi,
244
+ signerOrProvider
245
+ ) as ImplicitSwapfeeContract;
246
+ }
247
+ }
@@ -26,8 +26,13 @@ const _abi = [
26
26
  name: "guessMax",
27
27
  type: "uint256",
28
28
  },
29
+ {
30
+ internalType: "uint256",
31
+ name: "eps",
32
+ type: "uint256",
33
+ },
29
34
  ],
30
- name: "ApproxGuessRangeInvalid",
35
+ name: "ApproxParamsInvalid",
31
36
  type: "error",
32
37
  },
33
38
  {
@@ -293,7 +298,7 @@ const _abi = [
293
298
  ];
294
299
 
295
300
  const _bytecode =
296
- "0x61477661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101695760003560e01c806303670dba1461016e578063067cbde1146101ae5780630f8cb321146101ce5780631272d863146101fc5780631b9d358d1461021c57806321b7679d1461023c5780632f7707091461025c57806331c6d55c1461026f57806336233bd91461028f5780633c71db3d146102af5780633e32089f146102c257806345324d9c146102e2578063586772c51461030257806362eaf69d14610322578063672b79e41461034357806368d384c014610363578063690a0cbd14610383578063919f9430146103c3578063a4beab18146103e3578063ab52e20f14610403578063af2c797114610423578063b24898f414610436578063c06225e814610456578063c50b5c8b14610476578063c74141f114610496578063cf8a61d6146104a9578063d92f8f09146104c9578063efb7601d146104e9578063fe852a2014610509575b600080fd5b81801561017a57600080fd5b5061018e610189366004614176565b610529565b604080519384526020840192909252908201526060015b60405180910390f35b8180156101ba57600080fd5b5061018e6101c9366004614176565b6105f0565b8180156101da57600080fd5b506101ee6101e9366004614176565b61068c565b6040519081526020016101a5565b81801561020857600080fd5b5061018e6102173660046141a2565b61083f565b81801561022857600080fd5b506101ee6102373660046141e4565b610940565b81801561024857600080fd5b5061018e6102573660046141a2565b6109c2565b61018e61026a366004614201565b6109d2565b81801561027b57600080fd5b5061018e61028a3660046141a2565b610a5a565b81801561029b57600080fd5b5061018e6102aa366004614176565b610a6a565b61018e6102bd366004614236565b610baf565b8180156102ce57600080fd5b5061018e6102dd366004614330565b610d30565b8180156102ee57600080fd5b5061018e6102fd366004614176565b610e26565b81801561030e57600080fd5b5061018e61031d366004614383565b610ef3565b610335610330366004614176565b610f95565b6040516101a59291906143c2565b81801561034f57600080fd5b5061018e61035e366004614330565b611015565b81801561036f57600080fd5b506101ee61037e366004614176565b6110fa565b81801561038f57600080fd5b506103a361039e366004614330565b61114d565b6040805194855260208501939093529183015260608201526080016101a5565b8180156103cf57600080fd5b506103a36103de366004614383565b611247565b8180156103ef57600080fd5b506103a36103fe366004614383565b611389565b81801561040f57600080fd5b5061018e61041e366004614383565b611427565b6103356104313660046141a2565b6114bd565b81801561044257600080fd5b5061018e610451366004614176565b61161c565b81801561046257600080fd5b506103a3610471366004614383565b6116ae565b81801561048257600080fd5b506103a3610491366004614383565b6117e4565b6101ee6104a43660046141e4565b6118a7565b8180156104b557600080fd5b506103a36104c4366004614383565b611932565b8180156104d557600080fd5b5061018e6104e4366004614383565b6119d0565b8180156104f557600080fd5b506101ee6105043660046141e4565b611a77565b81801561051557600080fd5b5061018e610524366004614383565b611a84565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906143db565b9050600061059f87610940565b905060006105b86105af89610940565b84908942611b1e565b9550905060006105c88389611b5d565b90506105d48183611b69565b96506105e38961037e8a611b80565b9450505050509250925092565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065991906143db565b905061067061066787610940565b82908742611b1e565b90945092506106828661037e87611b80565b9150509250925092565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f0919061445d565b156107045750670de0b6b3a7640000610839565b60008290506000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e91906143db565b9050600061078661077e87610940565b839042611b97565b905060006107a7836000015183602001518460000151856040015188611c91565b905060008413156108135760006107cb836060015183611d4990919063ffffffff16565b9050670de0b6b3a76400008112156107fe5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b61080781611d78565b95505050505050610839565b61083261082d836060015183611d8b90919063ffffffff16565b611d78565b9450505050505b92915050565b60008060008061084f8787610a6a565b8094508195508293505050506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf919061447f565b505060405163cbe52ae360e01b81529091506001600160a01b0382169063cbe52ae3906108f290899086906004016144c1565b602060405180830381865afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093391906144da565b9450505093509350939050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a5919061447f565b925050506109bb816001600160a01b0316611da9565b9392505050565b60008060008061084f8787610e26565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906143db565b9050610a4981878742611e0f565b919a90995090975095505050505050565b60008060008061084f87876105f0565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad391906143db565b9050600080610ae28388611e7a565b91509150876001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b48919061445d565b15610b7157610b6081610b5a8a610940565b90611eb5565b610b6a9083614509565b9550610ba5565b6000610b88610b7f8a610940565b85908442611b1e565b96509050610b968184614509565b96506105e38961037e84611b80565b5050509250925092565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c17919061447f565b505090506000816001600160a01b031663b8f82b2689896040518363ffffffff1660e01b8152600401610c4b9291906144c1565b602060405180830381865afa158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c91906144da565b90506000808a6001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf491906143db565b9050610d0281848a42611e0f565b9199509096509250610d20905083610d1a848c614521565b90611ec1565b9550505050509450945094915050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d98919061447f565b50509050610e1588826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b8152600401610dce9291906144c1565b602060405180830381865afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906144da565b87611427565b935093509350509450945094915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f91906143db565b90506000610e9c87610940565b90506000610eac83838942611ee4565b955090506000610ebc8383611f08565b90506000610eca828a614540565b9050610ed68482611eb5565b9750610ee58a61037e8b611f15565b955050505050509250925092565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5c91906143db565b9050610f74610f6a88610940565b8290884289611f2b565b919550909350610f8990508761037e86611b80565b91505093509350939050565b6000806000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906143db565b90506110098185611e7a565b90969095509350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d919061447f565b50509050610e1588826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b81526004016110b39291906144c1565b602060405180830381865afa1580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f491906144da565b87611a84565b60008061110684611a77565b90506000611114858561068c565b90506111448261113e61112685611f15565b61112f85611f15565b6111399190614557565b612085565b9061209c565b95945050505050565b6000806000806000886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b7919061447f565b5050905061123489826001600160a01b031663b8f82b268b8b6040518363ffffffff1660e01b81526004016111ed9291906144c1565b602060405180830381865afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e91906144da565b88611247565b929c919b50995090975095505050505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b291906143db565b90506112ca6112c089610940565b829089428a6120cb565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906143db565b9050600061134d6113448a610940565b83908742611ee4565b9450905061136761135e828a614540565b83908742611e0f565b5090975061137c91508a905061037e87611f15565b9250505093509350935093565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f491906143db565b9050600061140189610940565b905061141082828a428b6122a6565b929850965090945061137c90508961037e87611b80565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149091906143db565b90506114a861149e88610940565b8290884289612402565b919550909350610f8990508761037e86611f15565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611524919061447f565b50509050600080876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e91906143db565b905061159a8188611e7a565b60405163cbe52ae360e01b81529095509092506001600160a01b0384169063cbe52ae3906115ce90899086906004016144c1565b602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f91906144da565b9450505050935093915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168591906143db565b905061169c61169387610940565b82908742611ee4565b90945092506106828661037e87611f15565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156116f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171991906143db565b905061173161172789610940565b829089428a612527565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b91906143db565b905060006117b46117ab8a610940565b83908742611b1e565b945090506117cf816117c6878b614540565b84919042611e0f565b5090975061137c91508a905061037e87611b80565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f91906143db565b905060008061185e838a611e7a565b9150915061187861186e8b610940565b849084428c612402565b91975090955061188a90508682614509565b96506118998a61037e88611f15565b935050505093509350935093565b600080826001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d91906143db565b9050600061191f826101000151611f15565b905061192a816126ea565b949350505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d91906143db565b905060006119aa89610940565b90506119b982828a428b612aff565b929850965090945061137c90508961037e87611f15565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906143db565b90506000611a4688610940565b9050611a55828289428a612c64565b919650909450611a6a90508861037e87611f15565b9250505093509350939050565b600061083982600061068c565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed91906143db565b90506000611afa88610940565b9050611b09828289428a612d70565b919650909450611a6a90508861037e87611b80565b600080600080611b388888611b3289611b80565b88612ec5565b91509150611b4582611d78565b9350611b5081611d78565b9250505094509492505050565b60006109bb8383612f85565b600081831015611b7a5760006109bb565b50900390565b6000611b8b82611f15565b61083990600019614596565b611bc26040518060800160405280600081526020016000815260200160008152602001600081525090565b60c08401518210611be65760405163b2094b5960e01b815260040160405180910390fd5b6000828560c00151611bf89190614540565b9050611c048582612fa7565b82526020850151611c16908590613008565b602083015284511580611c2b57506020820151155b15611c52578451602083015160405163b1c4aefb60e01b81526107f59291906004016143c2565b611c708560000151866101000151846020015185600001518561303f565b604083015260a0850151611c8490826130c0565b6060830152509392505050565b600080611c9e87846130f9565b90506000611cb6611caf888a61461b565b8390611d49565b9050670d529ae9e8600000811315611ced5780670d529ae9e8600000604051637e34684f60e11b81526004016107f59291906143c2565b6000611cf882613140565b905085611d058289611d49565b611d0f919061461b565b9350670de0b6b3a7640000841215611d3d5760405163329e322960e21b8152600481018590526024016107f5565b50505095945050505050565b600080611d5e670de0b6b3a764000085614596565b9050828181611d6f57611d6f61465c565b05949350505050565b600080821215611d8757600080fd5b5090565b600080611d988385614596565b9050670de0b6b3a764000081611d6f565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611deb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906144da565b600080600080600080600080611e378c611e288d611f15565b611e318d611f15565b8c613193565b9350935093509350611e4884611d78565b9750611e5383611d78565b9650611e5e82611d78565b9550611e6981611d78565b945050505050945094509450949050565b600080600080611e9286611e8d87611f15565b613341565b91509150611e9f82611d78565b9350611eaa81611d78565b925050509250929050565b60006109bb838361340c565b6000816001611ed08286614509565b611eda9190614540565b6109bb9190614672565b600080600080611ef88888611b3289611f15565b91509150611b4561082d83613421565b60008261192a818461342f565b60006001600160ff1b03821115611d8757600080fd5b6040805160808101825286815260208101869052908101849052606081018390526000908190819081611f5f8a8a89611b97565b90506000611f71878360200151613447565b90506000611f9084604001518560200151611f0890919063ffffffff16565b905060005b826060015181101561206057600080611fb88587896000015160000151866134f8565b9150915081611fcc57602085015250612050565b600080611fde89600001518985613563565b915091508582106120475782876020018181525050600061200483888a608001516135a2565b905080156120415760208a0151849061201d9085611eb5565b60208c015161202c9085611eb5565b9c509c509c505050505050505050505061207a565b5061204b565b8287525b505050505b61205981614686565b9050611f95565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000808213611d87576120978261469f565b610839565b6000806120b1670de0b6b3a764000085614521565b90508281816120c2576120c261465c565b04949350505050565b60008060008060405180608001604052808a815260200189815260200188815260200187815250905080600001516040015160000361211c5760405162461bcd60e51b81526004016107f5906146bb565b60208101516060820151825160009261213492611b97565b9050600061214b87838560000151600001516135d5565b9050600061216a8460400151856020015161367b90919063ffffffff16565b905060005b82606001518110156120605760006121878483613687565b905060008061219b886000015188856136fc565b91509150848211156121c0576121b2600184614540565b602087015250612296915050565b600080806121ce8589614540565b90506000866121e48d6000015160000151611d78565b6121ee9190614540565b9050600085876122018e60200151611d78565b61220b9190614509565b6122159190614540565b90506122218189614521565b945061222d8284614521565b935050505061224182828a6080015161371c565b156122665760208a015185906122579086611eb5565b60208c015161202c9086611eb5565b80821161227f57612278856001614509565b8852612290565b61228a600186614540565b60208901525b50505050505b61229f81614686565b905061216f565b604080516080810182528681526020810186905290810184905260608101839052600090819081908190816122dc8b8b8a611b97565b905060006122ee888360200151613447565b90506123028160000151846040015161373a565b815260005b81606001518110156120605760008061232a8486886000015160000151866134f8565b915091508161233e576020840152506123e6565b60008061235088600001518885613563565b9150915060008860400151836123669190614509565b90508084116123cf57838752600061237e8486614540565b9050612393818b604001518a60800151613750565b156123c9578381866123b2868e60200151611eb590919063ffffffff16565b9d509d509d509d50505050505050505050506123f6565b506123e0565b6123da600185614540565b60208801525b50505050505b6123ef81614686565b9050612307565b95509550955095915050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816124368a8a89611b97565b9050600061244d87838560000151600001516135d5565b9050600061246c8460400151856020015161367b90919063ffffffff16565b905060005b82606001518110156120605760006124898483613687565b905060008061249d886000015188856136fc565b915091508482116125025782865260808601516000906124c09084908890613750565b905080156124fc57602089015184906124d99085611eb5565b60208b01516124e89085611eb5565b9b509b509b5050505050505050505061207a565b50612513565b61250d600184614540565b60208701525b5050508061252090614686565b9050612471565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036125785760405162461bcd60e51b81526004016107f5906146bb565b60208101516060820151825160009261259092611b97565b905060006125a2878360200151613447565b90506125b68160200151846040015161377e565b602082015260005b8160600151811015612060576000806125e18486886000015160000151866134f8565b91509150816125f5576020840152506126da565b60008061260788600001518885613563565b915091506000806000856126228c6000015160000151611d78565b61262c9190614509565b90506000868c604001516126409190614540565b9050600085876126538e60200151611d78565b61265d9190614540565b6126679190614540565b90506126738388614521565b945061267f8183614521565b935050505061269382828a6080015161371c565b156126a95760208a015185906122579086611eb5565b8082116126c2576126bb856001614509565b88526126d3565b6126cd600186614540565b60208901525b5050505050505b6126e381614686565b90506125be565b6000680238fd42c5cf03ffff19821215801561270f575068070c1cc73b00c800008213155b61274e5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016107f5565b600082121561278657612763826000036126ea565b6a0c097ce7bc90715b34b9f160241b8161277f5761277f61465c565b0592915050565b60006806f05b59d3b200000083126127c457506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6127fa565b6803782dace9d900000083126127f657506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806127fa565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261284a5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612886576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126128c057682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126128fa576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261293357680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d63100000841261296c5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126129a5576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126129de5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008060008060006040518060a001604052808b81526020018a8152602001898152602001888152602001612b3d8a8c611eb590919063ffffffff16565b9052602081015160608201518251929350600092612b5c929091611b97565b90506000612b7388838560000151600001516135d5565b9050612b878160000151846040015161373a565b815260005b8160600151811015612060576000612ba48383613687565b9050600080612bb8876000015187856136fc565b915091506000612bd5838960200151611b5d90919063ffffffff16565b905087608001518111612c3e5783865260408801516080870151612bfa918591613750565b15612c39576040880151612c0e9085614540565b604089015160208a01518690612c249086611eb5565b9b509b509b509b5050505050505050506123f6565b612c4f565b612c49600185614540565b60208701525b5050505080612c5d90614686565b9050612b8c565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612c988a8a89611b97565b90506000612caf87838560000151600001516135d5565b90506000612cce84604001518560200151611f0890919063ffffffff16565b905060005b8260600151811015612060576000612ceb8483613687565b9050600080612cff886000015188856136fc565b90925090506000612d108385614540565b9050858110612d4d5783876020018181525050612d32818789608001516135a2565b15612d4857602089015184906124d99083611eb5565b612d5b565b612d58846001614509565b87525b5050505080612d6990614686565b9050612cd3565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612da48a8a89611b97565b90506000612db6878360200151613447565b90506000612dd58460400151856020015161367b90919063ffffffff16565b8251909150600003612de5578082525b60005b826060015181101561206057600080612e0b8587896000015160000151866134f8565b9150915081612e1f57602085015250612eb5565b600080612e3189600001518985613563565b90925090506000612e428385614540565b9050868111612ea7578388526080880151600090612e639083908a90613750565b90508015612ea15760208b01518590612e7c9084611eb5565b60208d0151612e8b9086611eb5565b9d509d509d50505050505050505050505061207a565b50612eaf565b602088018490525b50505050505b612ebe81614686565b9050612de8565b600080612ed68660c0015184101590565b15612ef45760405163b2094b5960e01b815260040160405180910390fd5b85518412612f1a578551604051632185509b60e21b81526107f5919086906004016143c2565b6000612f27878786611b97565b9050600080612f3789848961378d565b9150915060008212612f5257612f4d8883613890565b612f5c565b612f5c88836138bd565b9450612f688882613890565b9350612f7989848a8a89898c6138ea565b50505094509492505050565b600082600181612f9d670de0b6b3a764000086614521565b611ed09190614509565b6000612fb282611f15565b612fc9612fc46201518061016d614521565b611f15565b8460800151612fd89190614596565b612fe291906146e3565b90506000811361083957604051630e520c3b60e11b8152600481018290526024016107f5565b6000806000831261301a57600161301e565b6000195b9050613035612fc48561303086612085565b61397c565b61192a9082614596565b60008061304c86846130c0565b9050670de0b6b3a764000081121561307a5760405163329e322960e21b8152600481018290526024016107f5565b6000613090613089878a61461b565b8990611d49565b9050600061309d82613140565b90506130a98187611d49565b6130b39084614557565b9998505050505050505050565b6000806130d26201518061016d614521565b6130dc8486614521565b6130e69190614672565b905061192a6130f482611f15565b6126ea565b6000818312156131365760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016107f5565b6109bb8284614557565b6000670de0b6b3a7640000820361316a5760405163a9c8b14d60e01b815260040160405180910390fd5b600061318861318184670de0b6b3a7640000614557565b8490611d49565b90506109bb81613991565b60008080808615806131a3575085155b156131c1576040516325daaec360e01b815260040160405180910390fd5b60c088015185106131e55760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003613228576103e861320c612fc461320761082d8a8c614596565b613a22565b6132169190614557565b92506103e893508691508590506132cb565b875160408901516000919061323d9089614596565b61324791906146e3565b9050600089602001518a604001518a6132609190614596565b61326a91906146e3565b9050808212156132a0578194508792508960400151858b6020015161328f9190614596565b61329991906146e3565b93506132c8565b8094508893508960400151858b600001516132bb9190614596565b6132c591906146e3565b92505b50505b826000036132ec57604051631997ea8d60e31b815260040160405180910390fd5b81886020018181516132fe919061461b565b90525087518190899061331290839061461b565b90525061331f848461461b565b88604001818151613330919061461b565b905250929791965094509092509050565b60008082600003613365576040516325daaec360e01b815260040160405180910390fd5b604084015160208501516133799085614596565b61338391906146e3565b60408501518551919350906133989085614596565b6133a291906146e3565b90508115806133af575080155b156133cd57604051631997ea8d60e31b815260040160405180910390fd5b60408401516133dc90846130f9565b604085015283516133ed90826130f9565b845260208401516133fe90836130f9565b602090940193909352929050565b600082611eda670de0b6b3a764000084614521565b600061083982600019614596565b6000670de0b6b3a7640000600181612f9d8686614521565b6134806040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82518152602083015161349b9061349684613a91565b61377e565b602082018190526040808501519083015260608085015190830152608080850151908301528151118015906134dc5750670de0b6b3a7640000816080015111155b6108395760405162461bcd60e51b81526004016107f590614711565b60008060006135078785613687565b90508660a00151811161351f5760019250905061355a565b6000613534878761352f85611f15565b613aa8565b9050600081121561354b575060009250905061355a565b5060a087018190526001925090505b94509492505050565b60008060008061357e8661357687611b80565b89919061378d565b9150915061358b82611d78565b935061359681611d78565b92505050935093915050565b600082841015801561192a57506135ca836135c584670de0b6b3a7640000614509565b613ba0565b841115949350505050565b6136076040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83518152602084015161361e906134968585613bbe565b6020820181905260408086015190830152606080860151908301526080808601519083015281511180159061365f5750670de0b6b3a7640000816080015111155b6109bb5760405162461bcd60e51b81526004016107f590614711565b60006109bb838361397c565b60008115801561369a5750604083015115155b156136aa57506040820151610839565b60208301518351116136da57602083015183516002916136c991614509565b6136d39190614672565b9050610839565b82516020840151604051632d3b201b60e01b81526107f59291906004016143c2565b60008060008061370f8661357687611f15565b9150915061358b82612085565b60006137298484846135a2565b8061192a575061192a848484613750565b600081831161374957816109bb565b5090919050565b600082841115801561192a5750613773836135c584670de0b6b3a7640000614540565b909310159392505050565b600081831061374957816109bb565b60008060006137af866000015186602001518760000151886040015188611c91565b905060006137c56137c08684611d49565b613421565b606087015190915060008613156138345760006137e28483611d49565b9050670de0b6b3a76400008112156138105760405163329e322960e21b8152600481018290526024016107f5565b61382c61382583670de0b6b3a7640000614557565b8490611d8b565b915050613861565b61385e8161384a81670de0b6b3a7640000614557565b6138549085614596565b6137c091906146e3565b90505b60646138708960e00151611f15565b61387a9083614596565b61388491906146e3565b935061160f8183614557565b600080600083126138a25760016138a6565b6000195b9050613035612fc4856138b886612085565b61340c565b600080600083126138cf5760016138d3565b6000195b9050613035612fc4856138e586612085565b612f85565b6000818860c001516138fc9190614540565b885190915061390b90866130f9565b885261392561391a848661461b565b60208a0151906130f9565b60208901819052885161394a9161393d908990613008565b895160408b015185613c49565b610100890181905260000361397257604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000670de0b6b3a7640000611eda8484614521565b60008082136139d25760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016107f5565b670c7d713b49da0000821380156139f05750670f43fc2c04ee000082125b15613a1457670de0b6b3a7640000613a0783613c9c565b8161277f5761277f61465c565b61083982613dbb565b919050565b60006003821115613a835750806000613a3c600283614672565b613a47906001614509565b90505b81811015613a7d57905080600281613a628186614672565b613a6c9190614509565b613a769190614672565b9050613a4a565b50919050565b8115613a1d57506001919050565b60006001613a9e83611d78565b6108399190614540565b600080828560200151613abb9190614557565b90506000613ac9858561461b565b9050600082138015613adb5750600081135b613b1c5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016107f5565b6000613b4a613b2b8484614596565b6020890151613b3a908961461b565b613b449088614596565b90611d49565b90506000613b60613b5b8486611d49565b613991565b8851909150600090613b7b90670de0b6b3a764000090611d49565b9050613b9181613b8b8486614557565b90611d8b565b89604001516130b39190614557565b600080613bad8385614521565b9050670de0b6b3a7640000816120c2565b600080613be06130f4856000015186604001518760600151613b8b9190614557565b90506000613bf9611caf670de0b6b3a76400008461461b565b90506000613c17866020015186613c10919061461b565b8390611d8b565b90506000613c258287614557565b90506103e8613c3382611d78565b613c3f906103e7614521565b6108329190614672565b600080613c5a878787876000611c91565b90506000613c6a61082d83613991565b905083613c7c6201518061016d614521565b613c869083614521565b613c909190614672565b98975050505050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281613cdd57613cdd61465c565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215613dfc57613df3826a0c097ce7bc90715b34b9f160241b81613ded57613ded61465c565b05613dbb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312613e475772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312613e7e576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312613ec6576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613f01576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613f3857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613f6f57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613fa45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613fcf57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614004576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614039576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b286603831261406d576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126140a1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816140ca576140ca61465c565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461417357600080fd5b50565b6000806040838503121561418957600080fd5b82356141948161415e565b946020939093013593505050565b6000806000606084860312156141b757600080fd5b83356141c28161415e565b92506020840135915060408401356141d98161415e565b809150509250925092565b6000602082840312156141f657600080fd5b81356109bb8161415e565b60008060006060848603121561421657600080fd5b83356142218161415e565b95602085013595506040909401359392505050565b6000806000806080858703121561424c57600080fd5b84356142578161415e565b935060208501356142678161415e565b93969395505050506040820135916060013590565b60405161012081016001600160401b03811182821017156142ad57634e487b7160e01b600052604160045260246000fd5b60405290565b600060a082840312156142c557600080fd5b60405160a081016001600160401b03811182821017156142f557634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600080600080610100858703121561434757600080fd5b84356143528161415e565b935060208501356143628161415e565b92506040850135915061437886606087016142b3565b905092959194509250565b600080600060e0848603121561439857600080fd5b83356143a38161415e565b9250602084013591506143b985604086016142b3565b90509250925092565b918252602082015260400190565b8051613a1d8161415e565b600061012082840312156143ee57600080fd5b6143f661427c565b82518152602083015160208201526040830151604082015261441a606084016143d0565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561446f57600080fd5b815180151581146109bb57600080fd5b60008060006060848603121561449457600080fd5b835161449f8161415e565b60208501519093506144b08161415e565b60408501519092506141d98161415e565b6001600160a01b03929092168252602082015260400190565b6000602082840312156144ec57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561451c5761451c6144f3565b500190565b600081600019048311821515161561453b5761453b6144f3565b500290565b600082821015614552576145526144f3565b500390565b60008083128015600160ff1b850184121615614575576145756144f3565b6001600160ff1b0384018313811615614590576145906144f3565b50500390565b60006001600160ff1b03818413828413808216868404861116156145bc576145bc6144f3565b600160ff1b60008712828116878305891216156145db576145db6144f3565b600087129250878205871284841616156145f7576145f76144f3565b8785058712818416161561460d5761460d6144f3565b505050929093029392505050565b600080821280156001600160ff1b038490038513161561463d5761463d6144f3565b600160ff1b8390038412811615614656576146566144f3565b50500190565b634e487b7160e01b600052601260045260246000fd5b6000826146815761468161465c565b500490565b600060018201614698576146986144f3565b5060010190565b6000600160ff1b82016146b4576146b46144f3565b5060000390565b6020808252600e908201526d06e6f206578697374696e67206c760941b604082015260600190565b6000826146f2576146f261465c565b600160ff1b82146000198414161561470c5761470c6144f3565b500590565b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b60408201526060019056fea26469706673582212201d11e389b648df40d0d30cd8ef04a88ea58a26afd829ad5233826c37bbcd74b964736f6c634300080f0033";
301
+ "0x6145b361003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101695760003560e01c806303670dba1461016e578063067cbde1146101a65780630f8cb321146101c65780631272d863146101f45780631b9d358d1461021457806321b7679d146102345780632f7707091461025457806331c6d55c1461026757806336233bd9146102875780633c71db3d146102a75780633e32089f146102ba57806345324d9c146102da578063586772c5146102fa57806362eaf69d1461031a578063672b79e41461033b57806368d384c01461035b578063690a0cbd1461037b578063919f9430146103bb578063a4beab18146103db578063ab52e20f146103fb578063af2c79711461041b578063b24898f41461042e578063c06225e81461044e578063c50b5c8b1461046e578063c74141f11461048e578063cf8a61d6146104a1578063d92f8f09146104c1578063efb7601d146104e1578063fe852a2014610501575b600080fd5b81801561017a57600080fd5b5061018e610189366004614063565b610521565b60405161019d9392919061408f565b60405180910390f35b8180156101b257600080fd5b5061018e6101c1366004614063565b6105e8565b8180156101d257600080fd5b506101e66101e1366004614063565b610684565b60405190815260200161019d565b81801561020057600080fd5b5061018e61020f3660046140a5565b610837565b81801561022057600080fd5b506101e661022f3660046140e7565b610938565b81801561024057600080fd5b5061018e61024f3660046140a5565b6109ba565b61018e610262366004614104565b6109ca565b81801561027357600080fd5b5061018e6102823660046140a5565b610a52565b81801561029357600080fd5b5061018e6102a2366004614063565b610a62565b61018e6102b5366004614139565b610ba7565b8180156102c657600080fd5b5061018e6102d5366004614233565b610d28565b8180156102e657600080fd5b5061018e6102f5366004614063565b610e1e565b81801561030657600080fd5b5061018e610315366004614286565b610eeb565b61032d610328366004614063565b610f8d565b60405161019d9291906142c5565b81801561034757600080fd5b5061018e610356366004614233565b61100d565b81801561036757600080fd5b506101e6610376366004614063565b6110f2565b81801561038757600080fd5b5061039b610396366004614233565b611145565b60408051948552602085019390935291830152606082015260800161019d565b8180156103c757600080fd5b5061039b6103d6366004614286565b61123f565b8180156103e757600080fd5b5061039b6103f6366004614286565b611381565b81801561040757600080fd5b5061018e610416366004614286565b61141c565b61032d6104293660046140a5565b6114af565b81801561043a57600080fd5b5061018e610449366004614063565b61160e565b81801561045a57600080fd5b5061039b610469366004614286565b6116a0565b81801561047a57600080fd5b5061039b610489366004614286565b6117d6565b6101e661049c3660046140e7565b611896565b8180156104ad57600080fd5b5061039b6104bc366004614286565b611921565b8180156104cd57600080fd5b5061018e6104dc366004614286565b6119bc565b8180156104ed57600080fd5b506101e66104fc3660046140e7565b611a63565b81801561050d57600080fd5b5061018e61051c366004614286565b611a70565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a91906142de565b9050600061059787610938565b905060006105b06105a789610938565b84908942611b07565b9550905060006105c08389611b46565b90506105cc8183611b52565b96506105db896103768a611b69565b9450505050509250925092565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561062d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065191906142de565b905061066861065f87610938565b82908742611b07565b909450925061067a8661037687611b69565b9150509250925092565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e89190614360565b156106fc5750670de0b6b3a7640000610831565b60008290506000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076691906142de565b9050600061077e61077687610938565b839042611b80565b9050600061079f836000015183602001518460000151856040015188611c7a565b9050600084131561080b5760006107c3836060015183611d3290919063ffffffff16565b9050670de0b6b3a76400008112156107f65760405163329e322960e21b8152600481018290526024015b60405180910390fd5b6107ff81611d61565b95505050505050610831565b61082a610825836060015183611d7490919063ffffffff16565b611d61565b9450505050505b92915050565b6000806000806108478787610a62565b8094508195508293505050506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190614382565b505060405163cbe52ae360e01b81529091506001600160a01b0382169063cbe52ae3906108ea90899086906004016143c4565b602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b91906143dd565b9450505093509350939050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099d9190614382565b925050506109b3816001600160a01b0316611d92565b9392505050565b6000806000806108478787610e1e565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3391906142de565b9050610a4181878742611df8565b919a90995090975095505050505050565b60008060008061084787876105e8565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acb91906142de565b9050600080610ada8388611e63565b91509150876001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190614360565b15610b6957610b5881610b528a610938565b90611e9e565b610b62908361440c565b9550610b9d565b6000610b80610b778a610938565b85908442611b07565b96509050610b8e818461440c565b96506105db8961037684611b69565b5050509250925092565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0f9190614382565b505090506000816001600160a01b031663b8f82b2689896040518363ffffffff1660e01b8152600401610c439291906143c4565b602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8491906143dd565b90506000808a6001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec91906142de565b9050610cfa81848a42611df8565b9199509096509250610d18905083610d12848c61441f565b90611eaa565b9550505050509450945094915050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d909190614382565b50509050610e0d88826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b8152600401610dc69291906143c4565b602060405180830381865afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0791906143dd565b8761141c565b935093509350509450945094915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8791906142de565b90506000610e9487610938565b90506000610ea483838942611ecd565b955090506000610eb48383611ef1565b90506000610ec2828a614436565b9050610ece8482611e9e565b9750610edd8a6103768b611efe565b955050505050509250925092565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5491906142de565b9050610f6c610f6288610938565b8290884289611f14565b919550909350610f8190508761037686611b69565b91505093509350939050565b6000806000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff591906142de565b90506110018185611e63565b90969095509350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190614382565b50509050610e0d88826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b81526004016110ab9291906143c4565b602060405180830381865afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec91906143dd565b87611a70565b6000806110fe84611a63565b9050600061110c8585610684565b905061113c8261113661111e85611efe565b61112785611efe565b6111319190614449565b612044565b9061205b565b95945050505050565b6000806000806000886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190614382565b5050905061122c89826001600160a01b031663b8f82b268b8b6040518363ffffffff1660e01b81526004016111e59291906143c4565b602060405180830381865afa158015611202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122691906143dd565b8861123f565b929c919b50995090975095505050505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112aa91906142de565b90506112c26112b889610938565b829089428a61208a565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c91906142de565b9050600061134561133c8a610938565b83908742611ecd565b9450905061135f611356828a614436565b83908742611df8565b5090975061137491508a905061037687611efe565b9250505093509350935093565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec91906142de565b905060006113f989610938565b905061140882828a428b612254565b919750955093506113748961037687611b69565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611461573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148591906142de565b905061149d61149388610938565b829088428961238b565b9094509250610f818761037686611efe565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115169190614382565b50509050600080876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561155c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158091906142de565b905061158c8188611e63565b60405163cbe52ae360e01b81529095509092506001600160a01b0384169063cbe52ae3906115c090899086906004016143c4565b602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160191906143dd565b9450505050935093915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611653573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167791906142de565b905061168e61168587610938565b82908742611ecd565b909450925061067a8661037687611efe565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170b91906142de565b905061172361171989610938565b829089428a612489565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d91906142de565b905060006117a661179d8a610938565b83908742611b07565b945090506117c1816117b8878b614436565b84919042611df8565b5090975061137491508a905061037687611b69565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184191906142de565b9050600080611850838a611e63565b9150915061186a6118608b610938565b849084428c61238b565b9096509450611879868261440c565b96506118888a61037688611efe565b935050505093509350935093565b600080826001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc91906142de565b9050600061190e826101000151611efe565b90506119198161266b565b949350505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198c91906142de565b9050600061199989610938565b90506119a882828a428b612a80565b919750955093506113748961037687611efe565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2591906142de565b90506000611a3288610938565b9050611a41828289428a612ba8565b919650909450611a5690508861037687611efe565b9250505093509350939050565b6000610831826000610684565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad991906142de565b90506000611ae688610938565b9050611af5828289428a612cd2565b9095509350611a568861037687611b69565b600080600080611b218888611b1b89611b69565b88612e0b565b91509150611b2e82611d61565b9350611b3981611d61565b9250505094509492505050565b60006109b38383612e99565b600081831015611b635760006109b3565b50900390565b6000611b7482611efe565b61083190600019614470565b611bab6040518060800160405280600081526020016000815260200160008152602001600081525090565b60c08401518210611bcf5760405163b2094b5960e01b815260040160405180910390fd5b6000828560c00151611be19190614436565b9050611bed8582612ebb565b82526020850151611bff908590612f1c565b602083015284511580611c1457506020820151155b15611c3b578451602083015160405163b1c4aefb60e01b81526107ed9291906004016142c5565b611c5985600001518661010001518460200151856000015185612f53565b604083015260a0850151611c6d9082612fd4565b6060830152509392505050565b600080611c87878461300d565b90506000611c9f611c98888a6144a0565b8390611d32565b9050670d529ae9e8600000811315611cd65780670d529ae9e8600000604051637e34684f60e11b81526004016107ed9291906142c5565b6000611ce182613054565b905085611cee8289611d32565b611cf891906144a0565b9350670de0b6b3a7640000841215611d265760405163329e322960e21b8152600481018590526024016107ed565b50505095945050505050565b600080611d47670de0b6b3a764000085614470565b9050828181611d5857611d586144c8565b05949350505050565b600080821215611d7057600080fd5b5090565b600080611d818385614470565b9050670de0b6b3a764000081611d58565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611dd4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083191906143dd565b600080600080600080600080611e208c611e118d611efe565b611e1a8d611efe565b8c6130a7565b9350935093509350611e3184611d61565b9750611e3c83611d61565b9650611e4782611d61565b9550611e5281611d61565b945050505050945094509450949050565b600080600080611e7b86611e7687611efe565b613255565b91509150611e8882611d61565b9350611e9381611d61565b925050509250929050565b60006109b38383613320565b6000816001611eb9828661440c565b611ec39190614436565b6109b391906144de565b600080600080611ee18888611b1b89611efe565b91509150611b2e61082583613335565b6000826119198184613343565b60006001600160ff1b03821115611d7057600080fd5b6040805160808101825286815260208101869052908101849052606081018390526000908190819081611f488a8a89611b80565b90506000611f64876000611f5f856020015161335b565b613372565b905060005b816060015181101561201f57600080611f8c84868860000151600001518661343d565b9150915081611fa05760208401525061200f565b600080611fb78860000151888a60200151866134a8565b915091508760400151821061200657828660200181815250506000611fe5838a6040015189608001516134c5565b90508015612000575091995097509550612039945050505050565b5061200a565b8286525b505050505b612018816144f2565b9050611f69565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000808213611d70576120568261450b565b610831565b600080612070670de0b6b3a76400008561441f565b9050828181612081576120816144c8565b04949350505050565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036120db5760405162461bcd60e51b81526004016107ed90614527565b6020810151606082015182516000926120f392611b80565b9050600061211487600061210f858760000151600001516134f8565b613589565b905060005b816060015181101561201f57600061213183836135bb565b905060008061214a876000015187896020015186613627565b91509150866040015182111561217357612165600184614436565b602086015250612244915050565b6000806000848a604001516121889190614436565b905060008661219e8c6000015160000151611d61565b6121a89190614436565b9050600085876121bb8d60200151611d61565b6121c5919061440c565b6121cf9190614436565b90506121db818961441f565b93506121e7828461441f565b94505050506121fb81838960800151613648565b1561221457509299509097509550612039945050505050565b81811161222d5761222685600161440c565b875261223e565b612238600186614436565b60208801525b50505050505b61224d816144f2565b9050612119565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816122888a8a89611b80565b905060006122a2878460400151611f5f856020015161335b565b905060005b816060015181101561201f576000806122ca84868860000151600001518661343d565b91509150816122de5760208401525061237b565b6000806122f58860000151888a60200151866134a8565b915091506000612312838a6020015161368090919063ffffffff16565b90506000896040015182612326919061440c565b9050808511612363578488526080880151612344908690839061368c565b1561235e57509a5091985090965061203995505050505050565b612374565b61236e600186614436565b60208901525b5050505050505b612384816144f2565b90506122a7565b6040805160808101825286815260208101869052908101849052606081018390526000908190816123bd898988611b80565b905060006123d986600061210f858760000151600001516134f8565b905060005b816060015181101561201f5760006123f683836135bb565b905060008061240f876000015187896020015186613627565b915091508660400151821161245a578285526040870151608086015160009161243a9185919061368c565b90508015612454575091975090955061247f945050505050565b5061246b565b612465600184614436565b60208601525b50505080612478906144f2565b90506123de565b9550959350505050565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036124da5760405162461bcd60e51b81526004016107ed90614527565b6020810151606082015182516000926124f292611b80565b90506000612516876000611f5f8660400151612511876020015161335b565b6136ba565b905061252a816020015184604001516136ba565b602082015260005b816060015181101561201f5760008061255584868860000151600001518661343d565b91509150816125695760208401525061265b565b6000806125808860000151888a60200151866134a8565b9150915060008060008561259b8c6000015160000151611d61565b6125a5919061440c565b90506000868c604001516125b99190614436565b9050600085876125d08f6000015160200151611d61565b6125da9190614436565b6125e49190614436565b90506125f0838861441f565b94506125fc818361441f565b935050505061261082828a60800151613648565b1561262a5750929a50909850965061203995505050505050565b8082116126435761263c85600161440c565b8852612654565b61264e600186614436565b60208901525b5050505050505b612664816144f2565b9050612532565b6000680238fd42c5cf03ffff198212158015612690575068070c1cc73b00c800008213155b6126cf5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016107ed565b6000821215612707576126e48260000361266b565b6a0c097ce7bc90715b34b9f160241b81612700576127006144c8565b0592915050565b60006806f05b59d3b2000000831261274557506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61277b565b6803782dace9d9000000831261277757506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061277b565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126127cb5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612807576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261284157682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c400000841261287b576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126128b457680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126128ed5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612926576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c40000841261295f5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000806000806040518060a001604052808a8152602001898152602001888152602001878152602001612abc898b611e9e90919063ffffffff16565b9052602081015160608201518251929350600092612adb929091611b80565b90506000612afa87846040015161210f858760000151600001516134f8565b905060005b816060015181101561201f576000612b1783836135bb565b9050600080612b30876000015187896020015186613627565b9150915086608001518211612b835782855260808088015190860151612b5791849161368c565b15612b7e576040870151612b6b9084614436565b9950919750909550612039945050505050565b612b94565b612b8e600184614436565b60208601525b50505080612ba1906144f2565b9050612aff565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612bdc8a8a89611b80565b90506000612bf887600061210f858760000151600001516134f8565b905060005b816060015181101561201f576000612c1583836135bb565b9050600080612c2e876000015187896020015186613627565b915091506000612c4b838960200151611ef190919063ffffffff16565b90506000612c67612c5c8387614436565b60208b015190611e9e565b905088604001518110612cae576020870185905260408901516080880151612c909183916134c5565b15612ca957939a50929850965061203995505050505050565b612cbc565b612cb985600161440c565b87525b505050505080612ccb906144f2565b9050612bfd565b604080516080810182528681526020810186905290810184905260608101839052600090819081612d04898988611b80565b90506000612d3486612d278560400151866020015161368090919063ffffffff16565b611f5f856020015161335b565b905060005b816060015181101561201f57600080612d5c84868860000151600001518661343d565b9150915081612d7057602084015250612dfb565b600080612d878860000151888a60200151866134a8565b915091506000612dab896040015184612da0919061440c565b60208b015190613680565b9050808411612ded578387526080870151600090612dcc908690849061368c565b90508015612de75750929950975061247f9650505050505050565b50612df5565b602087018490525b50505050505b612e04816144f2565b9050612d39565b600080612e1c8660c0015184101590565b15612e3a5760405163b2094b5960e01b815260040160405180910390fd5b85518412612e60578551604051632185509b60e21b81526107ed919086906004016142c5565b6000612e6d878786611b80565b9050612e7b878288886136d0565b9093509150612e8f8782888887878a613816565b5094509492505050565b600082600181612eb1670de0b6b3a76400008661441f565b611eb9919061440c565b6000612ec682611efe565b612edd612ed86201518061016d61441f565b611efe565b8460800151612eec9190614470565b612ef6919061454f565b90506000811361083157604051630e520c3b60e11b8152600481018290526024016107ed565b60008060008312612f2e576001612f32565b6000195b9050612f49612ed885612f4486612044565b6138a8565b6119199082614470565b600080612f608684612fd4565b9050670de0b6b3a7640000811215612f8e5760405163329e322960e21b8152600481018290526024016107ed565b6000612fa4612f9d878a6144a0565b8990611d32565b90506000612fb182613054565b9050612fbd8187611d32565b612fc79084614449565b9998505050505050505050565b600080612fe66201518061016d61441f565b612ff0848661441f565b612ffa91906144de565b905061191961300882611efe565b61266b565b60008183121561304a5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016107ed565b6109b38284614449565b6000670de0b6b3a7640000820361307e5760405163a9c8b14d60e01b815260040160405180910390fd5b600061309c61309584670de0b6b3a7640000614449565b8490611d32565b90506109b3816138bd565b60008080808615806130b7575085155b156130d5576040516325daaec360e01b815260040160405180910390fd5b60c088015185106130f95760405163b2094b5960e01b815260040160405180910390fd5b876040015160000361313c576103e8613120612ed861311b6108258a8c614470565b61394e565b61312a9190614449565b92506103e893508691508590506131df565b87516040890151600091906131519089614470565b61315b919061454f565b9050600089602001518a604001518a6131749190614470565b61317e919061454f565b9050808212156131b4578194508792508960400151858b602001516131a39190614470565b6131ad919061454f565b93506131dc565b8094508893508960400151858b600001516131cf9190614470565b6131d9919061454f565b92505b50505b8260000361320057604051631997ea8d60e31b815260040160405180910390fd5b818860200181815161321291906144a0565b9052508751819089906132269083906144a0565b90525061323384846144a0565b8860400181815161324491906144a0565b905250929791965094509092509050565b60008082600003613279576040516325daaec360e01b815260040160405180910390fd5b6040840151602085015161328d9085614470565b613297919061454f565b60408501518551919350906132ac9085614470565b6132b6919061454f565b90508115806132c3575080155b156132e157604051631997ea8d60e31b815260040160405180910390fd5b60408401516132f0908461300d565b60408501528351613301908261300d565b84526020840151613312908361300d565b602090940193909352929050565b600082611ec3670de0b6b3a76400008461441f565b600061083182600019614470565b6000670de0b6b3a7640000600181612eb1868661441f565b6000600161336883611d61565b6108319190614436565b6133ab6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b83516133b790846139bd565b815260208401516133c890836136ba565b60208201819052815111806133e85750670de0b6b3a76400008460800151115b1561341557835160208501516080860151604051632cc06bc160e21b81526107ed9392919060040161408f565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b600080600061344c87856135bb565b90508660a0015181116134645760019250905061349f565b6000613479878761347485611efe565b6139cc565b90506000811215613490575060009250905061349f565b5060a087018190526001925090505b94509492505050565b600080600080611b2187876134bc88611b69565b8b9291906136d0565b600082841015801561191957506134ed836134e884670de0b6b3a764000061440c565b613abe565b841115949350505050565b60008061352061300885600001518660400151876060015161351a9190614449565b90611d74565b90506000613539611c98670de0b6b3a7640000846144a0565b9050600061355786602001518661355091906144a0565b8390611d74565b905060006135658287614449565b90506103e861357382611d61565b61357f906103e761441f565b61082a91906144de565b6133ab6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000811580156135ce5750604083015115155b156135de57506040820151610831565b602083015183511161360e57602083015183516002916135fd9161440c565b61360791906144de565b9050610831565b604051637d388ed960e11b815260040160405180910390fd5b60008060008061363b87876134bc88611efe565b91509150611b2e82612044565b600083613661846134e885670de0b6b3a7640000614436565b1115801561191957506134ed836134e884670de0b6b3a764000061440c565b60006109b383836138a8565b600082841115801561191957506136af836134e884670de0b6b3a7640000614436565b909310159392505050565b60008183106136c957816109b3565b5090919050565b60008060006136f2876000015187602001518860000151896040015188611c7a565b905060006137086137038684611d32565b613335565b606088015190915060008613156137775760006137258483611d32565b9050670de0b6b3a76400008112156137535760405163329e322960e21b8152600481018290526024016107ed565b61376f61376883670de0b6b3a7640000614449565b8490611d74565b9150506137a4565b6137a18161378d81670de0b6b3a7640000614449565b6137979085614470565b613703919061454f565b90505b600060646137b58b60e00151611efe565b6137bf9084614470565b6137c9919061454f565b905060006137d78385614449565b9050600081126137f0576137eb8982613adc565b6137fa565b6137fa8982613b09565b96506138068983613adc565b9550505050505094509492505050565b6000818860c001516138289190614436565b8851909150613837908661300d565b885261385161384684866144a0565b60208a01519061300d565b60208901819052885161387691613869908990612f1c565b895160408b015185613b36565b610100890181905260000361389e57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000670de0b6b3a7640000611ec3848461441f565b60008082136138fe5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016107ed565b670c7d713b49da00008213801561391c5750670f43fc2c04ee000082125b1561394057670de0b6b3a764000061393383613b89565b81612700576127006144c8565b61083182613ca8565b919050565b600060038211156139af57508060006139686002836144de565b61397390600161440c565b90505b818110156139a95790508060028161398e81866144de565b613998919061440c565b6139a291906144de565b9050613976565b50919050565b811561394957506001919050565b60008183116136c957816109b3565b6000808285602001516139df9190614449565b905060006139ed85856144a0565b90506000821380156139ff5750600081135b613a405760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016107ed565b6000613a6e613a4f8484614470565b6020890151613a5e90896144a0565b613a689088614470565b90611d32565b90506000613a84613a7f8486611d32565b6138bd565b8851909150600090613a9f90670de0b6b3a764000090611d32565b9050613aaf8161351a8486614449565b8960400151612fc79190614449565b600080613acb838561441f565b9050670de0b6b3a764000081612081565b60008060008312613aee576001613af2565b6000195b9050612f49612ed885613b0486612044565b613320565b60008060008312613b1b576001613b1f565b6000195b9050612f49612ed885613b3186612044565b612e99565b600080613b47878787876000611c7a565b90506000613b57610825836138bd565b905083613b696201518061016d61441f565b613b73908361441f565b613b7d91906144de565b98975050505050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281613bca57613bca6144c8565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215613ce957613ce0826a0c097ce7bc90715b34b9f160241b81613cda57613cda6144c8565b05613ca8565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312613d345772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312613d6b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312613db3576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613dee576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613e2557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613e5c57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613e915768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613ebc57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312613ef1576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312613f26576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312613f5a576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312613f8e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281613fb757613fb76144c8565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461406057600080fd5b50565b6000806040838503121561407657600080fd5b82356140818161404b565b946020939093013593505050565b9283526020830191909152604082015260600190565b6000806000606084860312156140ba57600080fd5b83356140c58161404b565b92506020840135915060408401356140dc8161404b565b809150509250925092565b6000602082840312156140f957600080fd5b81356109b38161404b565b60008060006060848603121561411957600080fd5b83356141248161404b565b95602085013595506040909401359392505050565b6000806000806080858703121561414f57600080fd5b843561415a8161404b565b9350602085013561416a8161404b565b93969395505050506040820135916060013590565b60405161012081016001600160401b03811182821017156141b057634e487b7160e01b600052604160045260246000fd5b60405290565b600060a082840312156141c857600080fd5b60405160a081016001600160401b03811182821017156141f857634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600080600080610100858703121561424a57600080fd5b84356142558161404b565b935060208501356142658161404b565b92506040850135915061427b86606087016141b6565b905092959194509250565b600080600060e0848603121561429b57600080fd5b83356142a68161404b565b9250602084013591506142bc85604086016141b6565b90509250925092565b918252602082015260400190565b80516139498161404b565b600061012082840312156142f157600080fd5b6142f961417f565b82518152602083015160208201526040830151604082015261431d606084016142d3565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561437257600080fd5b815180151581146109b357600080fd5b60008060006060848603121561439757600080fd5b83516143a28161404b565b60208501519093506143b38161404b565b60408501519092506140dc8161404b565b6001600160a01b03929092168252602082015260400190565b6000602082840312156143ef57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610831576108316143f6565b8082028115828204841417610831576108316143f6565b81810381811115610831576108316143f6565b8181036000831280158383131683831282161715614469576144696143f6565b5092915050565b80820260008212600160ff1b8414161561448c5761448c6143f6565b8181058314821517610831576108316143f6565b80820182811260008312801582168215821617156144c0576144c06143f6565b505092915050565b634e487b7160e01b600052601260045260246000fd5b6000826144ed576144ed6144c8565b500490565b600060018201614504576145046143f6565b5060010190565b6000600160ff1b8201614520576145206143f6565b5060000390565b6020808252600e908201526d06e6f206578697374696e67206c760941b604082015260600190565b60008261455e5761455e6144c8565b600160ff1b821460001984141615614578576145786143f6565b50059056fea2646970667358221220f434d4c33d61df5fac727a2fffb053e632707d636b7d1c40e7fb82abdbe41edd64736f6c63430008110033";
297
302
 
298
303
  type MarketMathStaticConstructorParams =
299
304
  | [signer?: Signer]
@@ -98,7 +98,7 @@ const _abi = [
98
98
  ];
99
99
 
100
100
  const _bytecode =
101
- "0x61107661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100825760003560e01c80631dd421ce14610087578063335129ad146100b05780634af74b68146100db578063587cdc06146101165780635d27625914610149578063b8d236ac1461016a578063ca7dab2c1461017d578063f8500bcc146101cc575b600080fd5b61009a610095366004610aaf565b6101ec565b6040516100a79190610ba8565b60405180910390f35b6100c36100be366004610bf5565b6102d0565b6040516001600160d81b0390911681526020016100a7565b8180156100e757600080fd5b506100fb6100f6366004610c3a565b61044f565b6040805161ffff9384168152929091166020830152016100a7565b81801561012257600080fd5b50610136610131366004610c63565b610598565b60405161ffff90911681526020016100a7565b61015c610157366004610c9f565b61062c565b6040516100a7929190610d16565b61015c610178366004610d31565b6107e6565b81801561018957600080fd5b506100fb610198366004610d8f565b6040805160608101825263ffffffff9290921680835260006020840152600192909101829052600160f81b17909155908190565b6101df6101da366004610dbb565b610995565b6040516100a79190610e63565b60608161ffff1660000361021357604051636a86842160e01b815260040160405180910390fd5b84516001600160401b0381111561022c5761022c610a40565b604051908082528060200260200182016040528015610255578160200160208202803683370190505b50905060005b81518110156102c55761028b888888848151811061027b5761027b610e77565b60200260200101518888886102d0565b82828151811061029d5761029d610e77565b6001600160d81b03909216602092830291909101909101526102be81610ea3565b905061025b565b509695505050505050565b60008463ffffffff16600003610369576000878461ffff1661ffff81106102f9576102f9610e77565b60408051606081018252919092015463ffffffff808216808452600160201b83046001600160d81b03166020850152600160f81b90920460ff161515938301939093529092509088161461035e57610352818887610995565b60200151915050610445565b602001519050610445565b60006103758688610ebc565b90506000806103878a848989896107e6565b91509150816000015163ffffffff168363ffffffff16036103b057506020015191506104459050565b806000015163ffffffff168363ffffffff16036103d557602001519250610445915050565b815181516103e39190610ebc565b63ffffffff168260000151846103f99190610ebc565b63ffffffff16836020015183602001516104139190610ee1565b6001600160d81b03166104269190610f01565b6104309190610f36565b826020015161043f9190610f4a565b93505050505b9695505050505050565b6000806000888861ffff1661ffff811061046b5761046b610e77565b60408051606081018252919092015463ffffffff808216808452600160201b83046001600160d81b03166020850152600160f81b90920460ff1615159383019390935290925090881690036104c6578785925092505061058d565b8461ffff168461ffff161180156104ee57506104e3600186610f75565b61ffff168861ffff16145b156104fb578391506104ff565b8491505b8161050b896001610f90565b6105159190610fad565b9250610522818888610995565b898461ffff1661ffff811061053957610539610e77565b82519101805460208401516040909401511515600160f81b026001600160f81b036001600160d81b03909516600160201b026001600160f81b031990921663ffffffff909416939093171792909216179055505b965096945050505050565b60008261ffff166000036105bf5760405163dc14e8a160e01b815260040160405180910390fd5b8261ffff168261ffff16116105d5575081610625565b825b8261ffff168161ffff1614610620576001858261ffff1661ffff81106105ff576105ff610e77565b01805463ffffffff191663ffffffff929092169190911790556001016105d7565b508190505b9392505050565b610634610a07565b61063c610a07565b60008361064a866001610f90565b6106549190610fad565b61ffff169050600060018561ffff168361066e9190610fce565b6106789190610fe6565b905060005b60026106898385610fce565b6106939190610f36565b9050886106a461ffff881683610ffd565b61ffff81106106b5576106b5610e77565b60408051606081018252919092015463ffffffff81168252600160201b81046001600160d81b03166020830152600160f81b900460ff161515918101829052955061070c57610705816001610fce565b925061067d565b8861ffff871661071d836001610fce565b6107279190610ffd565b61ffff811061073857610738610e77565b60408051606081018252919092015463ffffffff8082168352600160201b82046001600160d81b03166020840152600160f81b90910460ff16151592820192909252865190955089821691161180159081906107a45750846000015163ffffffff168963ffffffff1611155b156107af57506107da565b806107c6576107bf600183610fe6565b92506107d4565b6107d1826001610fce565b93505b5061067d565b50505094509492505050565b6107ee610a07565b6107f6610a07565b868461ffff1661ffff811061080d5761080d610e77565b60408051606081018252919092015463ffffffff808216808452600160201b83046001600160d81b03166020850152600160f81b90920460ff161515938301939093529093509087161061088157815163ffffffff87811691161461098b5781610878838888610995565b9150915061098b565b868361088e866001610f90565b6108989190610fad565b61ffff1661ffff81106108ad576108ad610e77565b60408051606081018252919092015463ffffffff81168252600160201b81046001600160d81b03166020830152600160f81b900460ff16151591810182905292506109325760408051606081018252885463ffffffff81168252600160201b81046001600160d81b03166020830152600160f81b900460ff1615159181019190915291505b816000015163ffffffff168663ffffffff16101561097a578151604051632728d09b60e21b815263ffffffff8089166004830152909116602482015260440160405180910390fd5b6109868787868661062c565b915091505b9550959350505050565b61099d610a07565b60405180606001604052808463ffffffff1681526020018560000151856109c49190610ebc565b6109dd9063ffffffff166001600160601b038616611011565b86602001516109ec9190610f4a565b6001600160d81b031681526001602090910152949350505050565b604080516060810182526000808252602082018190529181019190915290565b803563ffffffff81168114610a3b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a7e57610a7e610a40565b604052919050565b80356001600160601b0381168114610a3b57600080fd5b803561ffff81168114610a3b57600080fd5b60008060008060008060c08789031215610ac857600080fd5b863595506020610ad9818901610a27565b955060408801356001600160401b0380821115610af557600080fd5b818a0191508a601f830112610b0957600080fd5b813581811115610b1b57610b1b610a40565b8060051b9150610b2c848301610a56565b818152918301840191848101908d841115610b4657600080fd5b938501935b83851015610b6b57610b5c85610a27565b82529385019390850190610b4b565b809950505050505050610b8060608801610a86565b9250610b8e60808801610a9d565b9150610b9c60a08801610a9d565b90509295509295509295565b6020808252825182820181905260009190848201906040850190845b81811015610be95783516001600160d81b031683529284019291840191600101610bc4565b50909695505050505050565b60008060008060008060c08789031215610c0e57600080fd5b86359550610c1e60208801610a27565b9450610c2c60408801610a27565b9350610b8060608801610a86565b60008060008060008060c08789031215610c5357600080fd5b86359550610c1e60208801610a9d565b600080600060608486031215610c7857600080fd5b83359250610c8860208501610a9d565b9150610c9660408501610a9d565b90509250925092565b60008060008060808587031215610cb557600080fd5b84359350610cc560208601610a27565b9250610cd360408601610a9d565b9150610ce160608601610a9d565b905092959194509250565b805163ffffffff1682526020808201516001600160d81b0316908301526040908101511515910152565b60c08101610d248285610cec565b6106256060830184610cec565b600080600080600060a08688031215610d4957600080fd5b85359450610d5960208701610a27565b9350610d6760408701610a86565b9250610d7560608701610a9d565b9150610d8360808701610a9d565b90509295509295909350565b60008060408385031215610da257600080fd5b82359150610db260208401610a27565b90509250929050565b600080600083850360a0811215610dd157600080fd5b6060811215610ddf57600080fd5b50604051606081016001600160401b0381118282101715610e0257610e02610a40565b604052610e0e85610a27565b815260208501356001600160d81b0381168114610e2a57600080fd5b602082015260408501358015158114610e4257600080fd5b60408201529250610e5560608501610a27565b9150610c9660808501610a86565b60608101610e718284610cec565b92915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610eb557610eb5610e8d565b5060010190565b600063ffffffff83811690831681811015610ed957610ed9610e8d565b039392505050565b60006001600160d81b0383811690831681811015610ed957610ed9610e8d565b6000816000190483118215151615610f1b57610f1b610e8d565b500290565b634e487b7160e01b600052601260045260246000fd5b600082610f4557610f45610f20565b500490565b60006001600160d81b03828116848216808303821115610f6c57610f6c610e8d565b01949350505050565b600061ffff83811690831681811015610ed957610ed9610e8d565b600061ffff808316818516808303821115610f6c57610f6c610e8d565b600061ffff80841680610fc257610fc2610f20565b92169190910692915050565b60008219821115610fe157610fe1610e8d565b500190565b600082821015610ff857610ff8610e8d565b500390565b60008261100c5761100c610f20565b500690565b60006001600160d81b038281168482168115158284048211161561103757611037610e8d565b0294935050505056fea2646970667358221220084d871860e36b4f7d91cb4d145df77aee7a1824ba3630eda869b95238367f8164736f6c634300080f0033";
101
+ "0x61105a61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100825760003560e01c80631dd421ce14610087578063335129ad146100b05780634af74b68146100db578063587cdc06146101165780635d27625914610149578063b8d236ac1461016a578063ca7dab2c1461017d578063f8500bcc146101cc575b600080fd5b61009a610095366004610aaf565b6101ec565b6040516100a79190610ba8565b60405180910390f35b6100c36100be366004610bf5565b6102d0565b6040516001600160d81b0390911681526020016100a7565b8180156100e757600080fd5b506100fb6100f6366004610c3a565b61044f565b6040805161ffff9384168152929091166020830152016100a7565b81801561012257600080fd5b50610136610131366004610c63565b610598565b60405161ffff90911681526020016100a7565b61015c610157366004610c9f565b61062c565b6040516100a7929190610d16565b61015c610178366004610d31565b6107e6565b81801561018957600080fd5b506100fb610198366004610d8f565b6040805160608101825263ffffffff9290921680835260006020840152600192909101829052600160f81b17909155908190565b6101df6101da366004610dbb565b610995565b6040516100a79190610e63565b60608161ffff1660000361021357604051636a86842160e01b815260040160405180910390fd5b84516001600160401b0381111561022c5761022c610a40565b604051908082528060200260200182016040528015610255578160200160208202803683370190505b50905060005b81518110156102c55761028b888888848151811061027b5761027b610e77565b60200260200101518888886102d0565b82828151811061029d5761029d610e77565b6001600160d81b03909216602092830291909101909101526102be81610ea3565b905061025b565b509695505050505050565b60008463ffffffff16600003610369576000878461ffff1661ffff81106102f9576102f9610e77565b60408051606081018252919092015463ffffffff808216808452600160201b83046001600160d81b03166020850152600160f81b90920460ff161515938301939093529092509088161461035e57610352818887610995565b60200151915050610445565b602001519050610445565b60006103758688610ebc565b90506000806103878a848989896107e6565b91509150816000015163ffffffff168363ffffffff16036103b057506020015191506104459050565b806000015163ffffffff168363ffffffff16036103d557602001519250610445915050565b815181516103e39190610ebc565b63ffffffff168260000151846103f99190610ebc565b63ffffffff16836020015183602001516104139190610ee0565b6001600160d81b03166104269190610f00565b6104309190610f2d565b826020015161043f9190610f41565b93505050505b9695505050505050565b6000806000888861ffff1661ffff811061046b5761046b610e77565b60408051606081018252919092015463ffffffff808216808452600160201b83046001600160d81b03166020850152600160f81b90920460ff1615159383019390935290925090881690036104c6578785925092505061058d565b8461ffff168461ffff161180156104ee57506104e3600186610f61565b61ffff168861ffff16145b156104fb578391506104ff565b8491505b8161050b896001610f7c565b6105159190610f97565b9250610522818888610995565b898461ffff1661ffff811061053957610539610e77565b82519101805460208401516040909401511515600160f81b026001600160f81b036001600160d81b03909516600160201b026001600160f81b031990921663ffffffff909416939093171792909216179055505b965096945050505050565b60008261ffff166000036105bf5760405163dc14e8a160e01b815260040160405180910390fd5b8261ffff168261ffff16116105d5575081610625565b825b8261ffff168161ffff1614610620576001858261ffff1661ffff81106105ff576105ff610e77565b01805463ffffffff191663ffffffff929092169190911790556001016105d7565b508190505b9392505050565b610634610a07565b61063c610a07565b60008361064a866001610f7c565b6106549190610f97565b61ffff169050600060018561ffff168361066e9190610fb8565b6106789190610fcb565b905060005b60026106898385610fb8565b6106939190610f2d565b9050886106a461ffff881683610fde565b61ffff81106106b5576106b5610e77565b60408051606081018252919092015463ffffffff81168252600160201b81046001600160d81b03166020830152600160f81b900460ff161515918101829052955061070c57610705816001610fb8565b925061067d565b8861ffff871661071d836001610fb8565b6107279190610fde565b61ffff811061073857610738610e77565b60408051606081018252919092015463ffffffff8082168352600160201b82046001600160d81b03166020840152600160f81b90910460ff16151592820192909252865190955089821691161180159081906107a45750846000015163ffffffff168963ffffffff1611155b156107af57506107da565b806107c6576107bf600183610fcb565b92506107d4565b6107d1826001610fb8565b93505b5061067d565b50505094509492505050565b6107ee610a07565b6107f6610a07565b868461ffff1661ffff811061080d5761080d610e77565b60408051606081018252919092015463ffffffff808216808452600160201b83046001600160d81b03166020850152600160f81b90920460ff161515938301939093529093509087161061088157815163ffffffff87811691161461098b5781610878838888610995565b9150915061098b565b868361088e866001610f7c565b6108989190610f97565b61ffff1661ffff81106108ad576108ad610e77565b60408051606081018252919092015463ffffffff81168252600160201b81046001600160d81b03166020830152600160f81b900460ff16151591810182905292506109325760408051606081018252885463ffffffff81168252600160201b81046001600160d81b03166020830152600160f81b900460ff1615159181019190915291505b816000015163ffffffff168663ffffffff16101561097a578151604051632728d09b60e21b815263ffffffff8089166004830152909116602482015260440160405180910390fd5b6109868787868661062c565b915091505b9550959350505050565b61099d610a07565b60405180606001604052808463ffffffff1681526020018560000151856109c49190610ebc565b6109dd9063ffffffff166001600160601b038616610ff2565b86602001516109ec9190610f41565b6001600160d81b031681526001602090910152949350505050565b604080516060810182526000808252602082018190529181019190915290565b803563ffffffff81168114610a3b57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a7e57610a7e610a40565b604052919050565b80356001600160601b0381168114610a3b57600080fd5b803561ffff81168114610a3b57600080fd5b60008060008060008060c08789031215610ac857600080fd5b863595506020610ad9818901610a27565b955060408801356001600160401b0380821115610af557600080fd5b818a0191508a601f830112610b0957600080fd5b813581811115610b1b57610b1b610a40565b8060051b9150610b2c848301610a56565b818152918301840191848101908d841115610b4657600080fd5b938501935b83851015610b6b57610b5c85610a27565b82529385019390850190610b4b565b809950505050505050610b8060608801610a86565b9250610b8e60808801610a9d565b9150610b9c60a08801610a9d565b90509295509295509295565b6020808252825182820181905260009190848201906040850190845b81811015610be95783516001600160d81b031683529284019291840191600101610bc4565b50909695505050505050565b60008060008060008060c08789031215610c0e57600080fd5b86359550610c1e60208801610a27565b9450610c2c60408801610a27565b9350610b8060608801610a86565b60008060008060008060c08789031215610c5357600080fd5b86359550610c1e60208801610a9d565b600080600060608486031215610c7857600080fd5b83359250610c8860208501610a9d565b9150610c9660408501610a9d565b90509250925092565b60008060008060808587031215610cb557600080fd5b84359350610cc560208601610a27565b9250610cd360408601610a9d565b9150610ce160608601610a9d565b905092959194509250565b805163ffffffff1682526020808201516001600160d81b0316908301526040908101511515910152565b60c08101610d248285610cec565b6106256060830184610cec565b600080600080600060a08688031215610d4957600080fd5b85359450610d5960208701610a27565b9350610d6760408701610a86565b9250610d7560608701610a9d565b9150610d8360808701610a9d565b90509295509295909350565b60008060408385031215610da257600080fd5b82359150610db260208401610a27565b90509250929050565b600080600083850360a0811215610dd157600080fd5b6060811215610ddf57600080fd5b50604051606081016001600160401b0381118282101715610e0257610e02610a40565b604052610e0e85610a27565b815260208501356001600160d81b0381168114610e2a57600080fd5b602082015260408501358015158114610e4257600080fd5b60408201529250610e5560608501610a27565b9150610c9660808501610a86565b60608101610e718284610cec565b92915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610eb557610eb5610e8d565b5060010190565b63ffffffff828116828216039080821115610ed957610ed9610e8d565b5092915050565b6001600160d81b03828116828216039080821115610ed957610ed9610e8d565b8082028115828204841417610e7157610e71610e8d565b634e487b7160e01b600052601260045260246000fd5b600082610f3c57610f3c610f17565b500490565b6001600160d81b03818116838216019080821115610ed957610ed9610e8d565b61ffff828116828216039080821115610ed957610ed9610e8d565b61ffff818116838216019080821115610ed957610ed9610e8d565b600061ffff80841680610fac57610fac610f17565b92169190910692915050565b80820180821115610e7157610e71610e8d565b81810381811115610e7157610e71610e8d565b600082610fed57610fed610f17565b500690565b6001600160d81b0382811682821681810283169291811582850482141761101b5761101b610e8d565b5050509291505056fea2646970667358221220d3e0931186a3b1f9a444058a94a0b5b8094aaf3049d8dcff8bf3f8478fb5456d64736f6c63430008110033";
102
102
 
103
103
  type OracleLibConstructorParams =
104
104
  | [signer?: Signer]