@pendle/core-v2 2.19.0 → 2.20.0-tradingbot

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 (617) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  32. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  48. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  111. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +4 -0
  112. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol/BotDecisionHelperBase.json +816 -0
  113. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  114. package/build/artifacts/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1411 -0
  115. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  116. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +2332 -0
  117. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  118. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +1641 -0
  119. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
  120. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.json +10 -0
  121. package/build/artifacts/contracts/core/TradingBot/libraries/LongYieldActionLib.sol/LongYieldActionLib.dbg.json +4 -0
  122. package/build/artifacts/contracts/core/TradingBot/libraries/LongYieldActionLib.sol/LongYieldActionLib.json +154 -0
  123. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
  124. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.json +24 -0
  125. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
  126. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
  127. package/build/artifacts/contracts/core/TradingBot/libraries/TvlLib.sol/TvlLib.dbg.json +4 -0
  128. package/build/artifacts/contracts/core/TradingBot/libraries/TvlLib.sol/TvlLib.json +262 -0
  129. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  131. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  132. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  133. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  134. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  135. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  136. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  137. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  138. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  139. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  141. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  142. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  143. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  144. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  145. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  146. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  147. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  148. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  149. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  151. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +151 -2
  152. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  153. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  154. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  155. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
  156. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
  157. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  158. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  159. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  190. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  191. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  193. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  198. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  200. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  202. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  206. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +6 -82
  207. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +22 -22
  209. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +4 -42
  212. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  221. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  222. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  226. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +32 -146
  239. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  242. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  244. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  257. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +679 -0
  258. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.dbg.json +4 -0
  259. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.json +698 -0
  260. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
  261. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +813 -0
  262. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.dbg.json +4 -0
  263. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.json +679 -0
  264. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.dbg.json +4 -0
  265. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.json +794 -0
  266. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
  267. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +351 -0
  268. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  269. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  270. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  271. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  272. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  273. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  274. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  275. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  276. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  277. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  278. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  279. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  280. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  281. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  282. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  283. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  284. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  285. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  286. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +8 -84
  287. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  288. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +24 -24
  289. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  290. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +6 -44
  291. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  292. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  293. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  294. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  295. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  296. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  297. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  298. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  299. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  300. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  301. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  302. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  303. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  304. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  305. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  306. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  307. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  308. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  309. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  310. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  311. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  312. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  313. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  314. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  315. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  316. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  317. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  318. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  319. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  320. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  321. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  322. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  323. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  324. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  325. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  326. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  327. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  328. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  329. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  330. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  331. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
  332. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  333. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  334. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  335. package/contracts/core/StandardizedYield/PYIndex.sol +14 -0
  336. package/contracts/core/TradingBot/DecisionHelper/BotDecisionHelperBase.sol +260 -0
  337. package/contracts/core/TradingBot/DecisionHelper/LongYieldDecisionHelper.sol +291 -0
  338. package/contracts/core/TradingBot/LongYieldTradingBot.sol +128 -0
  339. package/contracts/core/TradingBot/README.md +153 -0
  340. package/contracts/core/TradingBot/TradingBotBase.sol +254 -0
  341. package/contracts/core/TradingBot/libraries/BotSimulationLib.sol +155 -0
  342. package/contracts/core/TradingBot/libraries/LongYieldActionLib.sol +279 -0
  343. package/contracts/core/TradingBot/libraries/MarketExtLib.sol +310 -0
  344. package/contracts/core/TradingBot/libraries/SpecSegmentLib.sol +62 -0
  345. package/contracts/core/TradingBot/libraries/TvlLib.sol +57 -0
  346. package/contracts/core/libraries/Errors.sol +12 -0
  347. package/contracts/core/libraries/TokenAmountLib.sol +47 -0
  348. package/contracts/interfaces/IPActionInfoStatic.sol +7 -8
  349. package/contracts/interfaces/IPActionMarketAuxStatic.sol +14 -21
  350. package/contracts/interfaces/IPActionMarketCoreStatic.sol +67 -70
  351. package/contracts/interfaces/IPActionMintRedeemStatic.sol +11 -23
  352. package/contracts/interfaces/IPRouterStatic.sol +1 -5
  353. package/contracts/interfaces/IStandardizedYield.sol +10 -15
  354. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +75 -0
  355. package/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol +8 -0
  356. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +51 -0
  357. package/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol +7 -0
  358. package/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol +27 -0
  359. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +53 -0
  360. package/contracts/offchain-helpers/BulkSellerOffchain.sol +8 -11
  361. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +11 -14
  362. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +37 -96
  363. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +80 -88
  364. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +14 -43
  365. package/contracts/oracles/PendleLpOracleLib.sol +1 -1
  366. package/deployments/core.ts +29 -0
  367. package/deployments/index.ts +4 -0
  368. package/deployments/markets/ape-june-29-2023.ts +3 -0
  369. package/deployments/markets/balancer-reth-dec-28-2023.ts +3 -0
  370. package/deployments/markets/balancer-wsteth-jun-27-2024.ts +3 -0
  371. package/deployments/markets/curve-fraxusdc-march-30-2023.ts +3 -0
  372. package/deployments/markets/index.ts +17 -0
  373. package/deployments/markets/looks-march-30-2023.ts +3 -0
  374. package/deployments/markets/steth-june-29-2023.ts +3 -0
  375. package/deployments/markets/steth-march-30-2023.ts +3 -0
  376. package/deployments/markets/types.ts +9 -0
  377. package/deployments/misc.ts +23 -0
  378. package/package.json +1 -1
  379. package/typechain-types/ActionMarketAuxStatic.ts +38 -191
  380. package/typechain-types/ActionMarketCoreStatic.ts +134 -600
  381. package/typechain-types/ActionMintRedeemStatic.ts +26 -92
  382. package/typechain-types/AuraEthxBbAWethSY.ts +1532 -0
  383. package/typechain-types/AuraSwEthBbAWethSYV2.ts +1532 -0
  384. package/typechain-types/AuraWethVethSY.ts +1598 -0
  385. package/typechain-types/AutomateReady.ts +102 -0
  386. package/typechain-types/AutomationBase.ts +57 -0
  387. package/typechain-types/AutomationCompatible.ts +140 -0
  388. package/typechain-types/AutomationCompatibleInterface.ts +141 -0
  389. package/typechain-types/BotActionCallbackLib.ts +57 -0
  390. package/typechain-types/BotDecisionHelperBase.ts +508 -0
  391. package/typechain-types/ChainlinkRelayerAutomation.ts +305 -0
  392. package/typechain-types/ChainlinkRelayerGelato.ts +311 -0
  393. package/typechain-types/ComposableStablePreviewProxy.ts +352 -0
  394. package/typechain-types/ComposableStablePreviewV4.ts +217 -0
  395. package/typechain-types/ComposableStablePreviewV5.ts +217 -0
  396. package/typechain-types/IAnkrBNB.ts +150 -0
  397. package/typechain-types/IAnkrLiquidStaking.ts +253 -0
  398. package/typechain-types/IAutomate.ts +203 -0
  399. package/typechain-types/IBotDecisionHelper.ts +476 -0
  400. package/typechain-types/IFluxErc20.ts +298 -0
  401. package/typechain-types/IFluxInterestRateModel.ts +113 -0
  402. package/typechain-types/ILongYieldDecisionHelper.ts +512 -0
  403. package/typechain-types/ILongYieldTradingBot.ts +682 -0
  404. package/typechain-types/IOpsProxyFactory.ts +93 -0
  405. package/typechain-types/IPActionMarketAuxStatic.ts +38 -191
  406. package/typechain-types/IPActionMarketCoreStatic.ts +134 -600
  407. package/typechain-types/IPActionMintRedeemStatic.ts +26 -92
  408. package/typechain-types/IPComposableStablePreview.ts +217 -0
  409. package/typechain-types/IPExternalRewardDistributor.ts +198 -0
  410. package/typechain-types/IPMarketFactoryV2.ts +253 -0
  411. package/typechain-types/IPOracleForSy.ts +87 -0
  412. package/typechain-types/IPRouterStatic.ts +197 -888
  413. package/typechain-types/IPendlePreviewHelper.ts +147 -0
  414. package/typechain-types/IShortYieldDecisionHelper.ts +476 -0
  415. package/typechain-types/IShortYieldTradingBot.ts +574 -0
  416. package/typechain-types/{IExecutorHelper2.ts → ISwETH.ts} +40 -32
  417. package/typechain-types/ITaskTreasuryUpgradable.ts +160 -0
  418. package/typechain-types/IThenaFactory.ts +245 -0
  419. package/typechain-types/IThenaGaugeV2.ts +206 -0
  420. package/typechain-types/IThenaPair.ts +579 -0
  421. package/typechain-types/IThenaRouter.ts +313 -0
  422. package/typechain-types/IThenaSY.ts +81 -0
  423. package/typechain-types/ITradingBotBase.ts +373 -0
  424. package/typechain-types/IVersion.ts +81 -0
  425. package/typechain-types/{PendleSwapArbitrum.ts → IWBETH.ts} +50 -48
  426. package/typechain-types/LegacyNFTHelper.ts +87 -0
  427. package/typechain-types/LongYieldActionLib.ts +57 -0
  428. package/typechain-types/LongYieldDecisionHelper.ts +663 -0
  429. package/typechain-types/LongYieldTradingBot.ts +2420 -0
  430. package/typechain-types/MarketExtLib.ts +81 -0
  431. package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
  432. package/typechain-types/PendleAuraBalancerStableLPSYV3.ts +1599 -0
  433. package/typechain-types/PendleAuraWethVethSY.ts +1511 -0
  434. package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
  435. package/typechain-types/PendleBridgedLSDSY.ts +1222 -0
  436. package/typechain-types/PendleChainlinkReceiver.ts +239 -0
  437. package/typechain-types/PendleChainlinkRelayer.ts +158 -0
  438. package/typechain-types/PendleERC20PermitUpgradable.ts +452 -0
  439. package/typechain-types/PendleERC20Upgradable.ts +348 -0
  440. package/typechain-types/PendleERC4626SY.ts +1216 -0
  441. package/typechain-types/PendleExternalRewardDistributor.ts +596 -0
  442. package/typechain-types/PendleFluxLendingSY.ts +1232 -0
  443. package/typechain-types/PendleGaugeV2.ts +225 -0
  444. package/typechain-types/PendleMantleStakedEthSY.ts +1222 -0
  445. package/typechain-types/PendleMarketFactoryV2.ts +932 -0
  446. package/typechain-types/PendleMarketV2.ts +1311 -0
  447. package/typechain-types/PendleOracleForSyProxy.ts +275 -0
  448. package/typechain-types/{PendleCamelotV1SY.ts → PendleThenaSY.ts} +214 -332
  449. package/typechain-types/PendleWbEthSY.ts +1229 -0
  450. package/typechain-types/SDKErrorsDirectory.ts +57 -0
  451. package/typechain-types/SYBaseUpgradable.ts +1132 -0
  452. package/typechain-types/SYBaseWithRewardsUpgradable.ts +1225 -0
  453. package/typechain-types/StarNFTV1.ts +880 -0
  454. package/typechain-types/SwETHSY.ts +1216 -0
  455. package/typechain-types/{PendleCamelotV1RouterHelper.ts → ThenaLpHelper.ts} +63 -5
  456. package/typechain-types/ThenaMath.ts +87 -0
  457. package/typechain-types/{CamelotV1PreviewHelper.ts → ThenaPreview.ts} +42 -63
  458. package/typechain-types/TradingBotBase.ts +1837 -0
  459. package/typechain-types/TvlLib.ts +215 -0
  460. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  461. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  462. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +7 -83
  463. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +23 -23
  464. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +5 -43
  465. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  466. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  467. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  468. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  469. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  470. package/typechain-types/factories/AuraEthxBbAWethSY__factory.ts +1240 -0
  471. package/typechain-types/factories/AuraSwEthBbAWethSYV2__factory.ts +1244 -0
  472. package/typechain-types/factories/AuraWethVethSY__factory.ts +1270 -0
  473. package/typechain-types/factories/AutomateReady__factory.ts +49 -0
  474. package/typechain-types/factories/AutomationBase__factory.ts +69 -0
  475. package/typechain-types/factories/AutomationCompatibleInterface__factory.ts +67 -0
  476. package/typechain-types/factories/AutomationCompatible__factory.ts +72 -0
  477. package/typechain-types/factories/BotActionCallbackLib__factory.ts +84 -0
  478. package/typechain-types/factories/BotDecisionHelperBase__factory.ts +835 -0
  479. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  480. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  481. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  482. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  483. package/typechain-types/factories/ChainlinkRelayerAutomation__factory.ts +238 -0
  484. package/typechain-types/factories/ChainlinkRelayerGelato__factory.ts +263 -0
  485. package/typechain-types/factories/ComposableStablePreviewProxy__factory.ts +288 -0
  486. package/typechain-types/factories/ComposableStablePreviewV4__factory.ts +190 -0
  487. package/typechain-types/factories/ComposableStablePreviewV5__factory.ts +190 -0
  488. package/typechain-types/factories/Errors__factory.ts +150 -1
  489. package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
  490. package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
  491. package/typechain-types/factories/IAutomate__factory.ts +126 -0
  492. package/typechain-types/factories/IBotDecisionHelper__factory.ts +694 -0
  493. package/typechain-types/factories/IFluxErc20__factory.ts +178 -0
  494. package/typechain-types/factories/{IExecutorHelper2__factory.ts → IFluxInterestRateModel__factory.ts} +19 -15
  495. package/typechain-types/factories/ILongYieldDecisionHelper__factory.ts +717 -0
  496. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +832 -0
  497. package/typechain-types/factories/IOpsProxyFactory__factory.ts +50 -0
  498. package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +6 -82
  499. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +22 -22
  500. package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +4 -42
  501. package/typechain-types/factories/IPComposableStablePreview__factory.ts +152 -0
  502. package/typechain-types/factories/{IPVotingEscrowSidechain__factory.ts → IPExternalRewardDistributor__factory.ts} +60 -44
  503. package/typechain-types/factories/IPMarketFactoryV2__factory.ts +181 -0
  504. package/typechain-types/factories/IPOracleForSy__factory.ts +36 -0
  505. package/typechain-types/factories/IPRouterStatic__factory.ts +32 -146
  506. package/typechain-types/factories/IPendlePreviewHelper__factory.ts +78 -0
  507. package/typechain-types/factories/IShortYieldDecisionHelper__factory.ts +698 -0
  508. package/typechain-types/factories/IShortYieldTradingBot__factory.ts +813 -0
  509. package/typechain-types/factories/ISwETH__factory.ts +53 -0
  510. package/typechain-types/factories/ITaskTreasuryUpgradable__factory.ts +76 -0
  511. package/typechain-types/factories/IThenaFactory__factory.ts +164 -0
  512. package/typechain-types/factories/IThenaGaugeV2__factory.ts +83 -0
  513. package/typechain-types/factories/IThenaPair__factory.ts +421 -0
  514. package/typechain-types/factories/IThenaRouter__factory.ts +200 -0
  515. package/typechain-types/factories/IThenaSY__factory.ts +36 -0
  516. package/typechain-types/factories/ITradingBotBase__factory.ts +366 -0
  517. package/typechain-types/factories/IVersion__factory.ts +36 -0
  518. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  519. package/typechain-types/factories/LegacyNFTHelper__factory.ts +83 -0
  520. package/typechain-types/factories/LongYieldActionLib__factory.ts +207 -0
  521. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1468 -0
  522. package/typechain-types/factories/LongYieldTradingBot__factory.ts +2333 -0
  523. package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
  524. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  525. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
  526. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  527. package/typechain-types/factories/PendleAuraBalancerStableLPSYV3__factory.ts +1212 -0
  528. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  529. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  530. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  531. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  532. package/typechain-types/factories/PendleAuraWethVethSY__factory.ts +1231 -0
  533. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  534. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
  535. package/typechain-types/factories/PendleBridgedLSDSY__factory.ts +1064 -0
  536. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  537. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +216 -0
  538. package/typechain-types/factories/PendleChainlinkRelayer__factory.ts +180 -0
  539. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  540. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  541. package/typechain-types/factories/PendleERC20PermitUpgradable__factory.ts +401 -0
  542. package/typechain-types/factories/PendleERC20Upgradable__factory.ts +326 -0
  543. package/typechain-types/factories/PendleERC4626SY__factory.ts +1030 -0
  544. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +437 -0
  545. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  546. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  547. package/typechain-types/factories/PendleFluxLendingSY__factory.ts +1038 -0
  548. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  549. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  550. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  551. package/typechain-types/factories/PendleGaugeV2__factory.ts +140 -0
  552. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  553. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  554. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  555. package/typechain-types/factories/PendleMantleStakedEthSY__factory.ts +1068 -0
  556. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +770 -0
  557. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  558. package/typechain-types/factories/PendleMarketV2__factory.ts +1299 -0
  559. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  560. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  561. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  562. package/typechain-types/factories/PendleOracleForSyProxy__factory.ts +211 -0
  563. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  564. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  565. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  566. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  567. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  568. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  569. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  570. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  571. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  572. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  573. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  574. package/typechain-types/factories/PendleThenaSY__factory.ts +1352 -0
  575. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  576. package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
  577. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  578. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  579. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  580. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  581. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  582. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  583. package/typechain-types/factories/SAPE__factory.ts +1 -1
  584. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1596 -0
  585. package/typechain-types/factories/SYBaseUpgradable__factory.ts +889 -0
  586. package/typechain-types/factories/SYBaseWithRewardsUpgradable__factory.ts +959 -0
  587. package/typechain-types/factories/StarNFTV1__factory.ts +584 -0
  588. package/typechain-types/factories/SwETHSY__factory.ts +1022 -0
  589. package/typechain-types/factories/{PendleCamelotV1RouterHelper__factory.ts → ThenaLpHelper__factory.ts} +58 -13
  590. package/typechain-types/factories/ThenaMath__factory.ts +36 -0
  591. package/typechain-types/factories/ThenaPreview__factory.ts +319 -0
  592. package/typechain-types/factories/TradingBotBase__factory.ts +1656 -0
  593. package/typechain-types/factories/TvlLib__factory.ts +309 -0
  594. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  595. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  596. package/typechain-types/hardhat.d.ts +153 -126
  597. package/typechain-types/index.ts +34 -18
  598. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +0 -4
  599. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +0 -976
  600. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.dbg.json +0 -4
  601. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.json +0 -97
  602. package/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol +0 -120
  603. package/contracts/offchain-helpers/PtAndLpToAsset.sol +0 -62
  604. package/deployments/42161-markets/RETH-ARBITRUM-JUNE2024.json +0 -10
  605. package/deployments/42161-markets/WSTETH-ARBITRUM-JUNE2024.json +0 -10
  606. package/typechain-types/IExecutorHelper1.ts +0 -643
  607. package/typechain-types/IExecutorHelperEthereum1.ts +0 -643
  608. package/typechain-types/IPVotingEscrowSidechain.ts +0 -155
  609. package/typechain-types/PendleCamelotRewardHelper.ts +0 -347
  610. package/typechain-types/PendleSwapEthereum.ts +0 -126
  611. package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +0 -400
  612. package/typechain-types/factories/IExecutorHelper1__factory.ts +0 -403
  613. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +0 -407
  614. package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +0 -317
  615. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +0 -1448
  616. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +0 -129
  617. package/typechain-types/factories/PendleSwapEthereum__factory.ts +0 -129
@@ -0,0 +1,2332 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LongYieldTradingBot",
4
+ "sourceName": "contracts/core/TradingBot/LongYieldTradingBot.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_market",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_router",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_PENDLE",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_decisionHelper",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "actualSharesOut",
37
+ "type": "uint256"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "requiredSharesOut",
42
+ "type": "uint256"
43
+ }
44
+ ],
45
+ "name": "SYInsufficientSharesOut",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "actualTokenOut",
53
+ "type": "uint256"
54
+ },
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "requiredTokenOut",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "SYInsufficientTokenOut",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "token",
69
+ "type": "address"
70
+ }
71
+ ],
72
+ "name": "SYInvalidTokenIn",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "token",
80
+ "type": "address"
81
+ }
82
+ ],
83
+ "name": "SYInvalidTokenOut",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "SYZeroDeposit",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "SYZeroRedeem",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "anonymous": false,
98
+ "inputs": [
99
+ {
100
+ "components": [
101
+ {
102
+ "internalType": "uint256",
103
+ "name": "guessMin",
104
+ "type": "uint256"
105
+ },
106
+ {
107
+ "internalType": "uint256",
108
+ "name": "guessMax",
109
+ "type": "uint256"
110
+ },
111
+ {
112
+ "internalType": "uint256",
113
+ "name": "guessOffchain",
114
+ "type": "uint256"
115
+ },
116
+ {
117
+ "internalType": "uint256",
118
+ "name": "maxIteration",
119
+ "type": "uint256"
120
+ },
121
+ {
122
+ "internalType": "uint256",
123
+ "name": "eps",
124
+ "type": "uint256"
125
+ }
126
+ ],
127
+ "indexed": false,
128
+ "internalType": "struct ApproxParams",
129
+ "name": "botParams",
130
+ "type": "tuple"
131
+ },
132
+ {
133
+ "indexed": false,
134
+ "internalType": "uint256",
135
+ "name": "maxSyIn",
136
+ "type": "uint256"
137
+ },
138
+ {
139
+ "indexed": false,
140
+ "internalType": "uint256",
141
+ "name": "netSyIn",
142
+ "type": "uint256"
143
+ },
144
+ {
145
+ "indexed": false,
146
+ "internalType": "uint256",
147
+ "name": "netLpOut",
148
+ "type": "uint256"
149
+ }
150
+ ],
151
+ "name": "AddLiqFromSy",
152
+ "type": "event"
153
+ },
154
+ {
155
+ "anonymous": false,
156
+ "inputs": [
157
+ {
158
+ "components": [
159
+ {
160
+ "internalType": "uint256",
161
+ "name": "guessMin",
162
+ "type": "uint256"
163
+ },
164
+ {
165
+ "internalType": "uint256",
166
+ "name": "guessMax",
167
+ "type": "uint256"
168
+ },
169
+ {
170
+ "internalType": "uint256",
171
+ "name": "guessOffchain",
172
+ "type": "uint256"
173
+ },
174
+ {
175
+ "internalType": "uint256",
176
+ "name": "maxIteration",
177
+ "type": "uint256"
178
+ },
179
+ {
180
+ "internalType": "uint256",
181
+ "name": "eps",
182
+ "type": "uint256"
183
+ }
184
+ ],
185
+ "indexed": false,
186
+ "internalType": "struct ApproxParams",
187
+ "name": "botParams",
188
+ "type": "tuple"
189
+ },
190
+ {
191
+ "indexed": false,
192
+ "internalType": "uint256",
193
+ "name": "netYtIn",
194
+ "type": "uint256"
195
+ },
196
+ {
197
+ "indexed": false,
198
+ "internalType": "uint256",
199
+ "name": "netLpOut",
200
+ "type": "uint256"
201
+ }
202
+ ],
203
+ "name": "AddLiqFromYt",
204
+ "type": "event"
205
+ },
206
+ {
207
+ "anonymous": false,
208
+ "inputs": [
209
+ {
210
+ "indexed": false,
211
+ "internalType": "uint256",
212
+ "name": "netSyIn",
213
+ "type": "uint256"
214
+ },
215
+ {
216
+ "indexed": false,
217
+ "internalType": "uint256",
218
+ "name": "netLpOut",
219
+ "type": "uint256"
220
+ },
221
+ {
222
+ "indexed": false,
223
+ "internalType": "uint256",
224
+ "name": "netYtOut",
225
+ "type": "uint256"
226
+ }
227
+ ],
228
+ "name": "AddLiqKeepYt",
229
+ "type": "event"
230
+ },
231
+ {
232
+ "anonymous": false,
233
+ "inputs": [
234
+ {
235
+ "indexed": false,
236
+ "internalType": "address",
237
+ "name": "previousAdmin",
238
+ "type": "address"
239
+ },
240
+ {
241
+ "indexed": false,
242
+ "internalType": "address",
243
+ "name": "newAdmin",
244
+ "type": "address"
245
+ }
246
+ ],
247
+ "name": "AdminChanged",
248
+ "type": "event"
249
+ },
250
+ {
251
+ "anonymous": false,
252
+ "inputs": [
253
+ {
254
+ "indexed": true,
255
+ "internalType": "address",
256
+ "name": "owner",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "indexed": true,
261
+ "internalType": "address",
262
+ "name": "spender",
263
+ "type": "address"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "uint256",
268
+ "name": "value",
269
+ "type": "uint256"
270
+ }
271
+ ],
272
+ "name": "Approval",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": true,
280
+ "internalType": "address",
281
+ "name": "beacon",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "name": "BeaconUpgraded",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": false,
293
+ "internalType": "uint256",
294
+ "name": "netSyOut",
295
+ "type": "uint256"
296
+ }
297
+ ],
298
+ "name": "ClaimAndCompound",
299
+ "type": "event"
300
+ },
301
+ {
302
+ "anonymous": false,
303
+ "inputs": [
304
+ {
305
+ "indexed": true,
306
+ "internalType": "address",
307
+ "name": "user",
308
+ "type": "address"
309
+ },
310
+ {
311
+ "indexed": false,
312
+ "internalType": "address[]",
313
+ "name": "rewardTokens",
314
+ "type": "address[]"
315
+ },
316
+ {
317
+ "indexed": false,
318
+ "internalType": "uint256[]",
319
+ "name": "rewardAmounts",
320
+ "type": "uint256[]"
321
+ }
322
+ ],
323
+ "name": "ClaimRewards",
324
+ "type": "event"
325
+ },
326
+ {
327
+ "anonymous": false,
328
+ "inputs": [
329
+ {
330
+ "indexed": true,
331
+ "internalType": "address",
332
+ "name": "caller",
333
+ "type": "address"
334
+ },
335
+ {
336
+ "indexed": true,
337
+ "internalType": "address",
338
+ "name": "receiver",
339
+ "type": "address"
340
+ },
341
+ {
342
+ "indexed": true,
343
+ "internalType": "address",
344
+ "name": "tokenIn",
345
+ "type": "address"
346
+ },
347
+ {
348
+ "indexed": false,
349
+ "internalType": "uint256",
350
+ "name": "amountDeposited",
351
+ "type": "uint256"
352
+ },
353
+ {
354
+ "indexed": false,
355
+ "internalType": "uint256",
356
+ "name": "amountSyOut",
357
+ "type": "uint256"
358
+ }
359
+ ],
360
+ "name": "Deposit",
361
+ "type": "event"
362
+ },
363
+ {
364
+ "anonymous": false,
365
+ "inputs": [
366
+ {
367
+ "indexed": false,
368
+ "internalType": "uint256",
369
+ "name": "netSyIn",
370
+ "type": "uint256"
371
+ }
372
+ ],
373
+ "name": "DepositSy",
374
+ "type": "event"
375
+ },
376
+ {
377
+ "anonymous": false,
378
+ "inputs": [
379
+ {
380
+ "indexed": true,
381
+ "internalType": "address",
382
+ "name": "token",
383
+ "type": "address"
384
+ },
385
+ {
386
+ "indexed": false,
387
+ "internalType": "uint256",
388
+ "name": "netTokenIn",
389
+ "type": "uint256"
390
+ }
391
+ ],
392
+ "name": "DepositToken",
393
+ "type": "event"
394
+ },
395
+ {
396
+ "anonymous": false,
397
+ "inputs": [
398
+ {
399
+ "indexed": false,
400
+ "internalType": "uint8",
401
+ "name": "version",
402
+ "type": "uint8"
403
+ }
404
+ ],
405
+ "name": "Initialized",
406
+ "type": "event"
407
+ },
408
+ {
409
+ "anonymous": false,
410
+ "inputs": [
411
+ {
412
+ "indexed": true,
413
+ "internalType": "address",
414
+ "name": "previousOwner",
415
+ "type": "address"
416
+ },
417
+ {
418
+ "indexed": true,
419
+ "internalType": "address",
420
+ "name": "newOwner",
421
+ "type": "address"
422
+ }
423
+ ],
424
+ "name": "OwnershipTransferred",
425
+ "type": "event"
426
+ },
427
+ {
428
+ "anonymous": false,
429
+ "inputs": [
430
+ {
431
+ "indexed": false,
432
+ "internalType": "address",
433
+ "name": "account",
434
+ "type": "address"
435
+ }
436
+ ],
437
+ "name": "Paused",
438
+ "type": "event"
439
+ },
440
+ {
441
+ "anonymous": false,
442
+ "inputs": [
443
+ {
444
+ "indexed": true,
445
+ "internalType": "address",
446
+ "name": "caller",
447
+ "type": "address"
448
+ },
449
+ {
450
+ "indexed": true,
451
+ "internalType": "address",
452
+ "name": "receiver",
453
+ "type": "address"
454
+ },
455
+ {
456
+ "indexed": true,
457
+ "internalType": "address",
458
+ "name": "tokenOut",
459
+ "type": "address"
460
+ },
461
+ {
462
+ "indexed": false,
463
+ "internalType": "uint256",
464
+ "name": "amountSyToRedeem",
465
+ "type": "uint256"
466
+ },
467
+ {
468
+ "indexed": false,
469
+ "internalType": "uint256",
470
+ "name": "amountTokenOut",
471
+ "type": "uint256"
472
+ }
473
+ ],
474
+ "name": "Redeem",
475
+ "type": "event"
476
+ },
477
+ {
478
+ "anonymous": false,
479
+ "inputs": [
480
+ {
481
+ "components": [
482
+ {
483
+ "internalType": "uint256",
484
+ "name": "guessMin",
485
+ "type": "uint256"
486
+ },
487
+ {
488
+ "internalType": "uint256",
489
+ "name": "guessMax",
490
+ "type": "uint256"
491
+ },
492
+ {
493
+ "internalType": "uint256",
494
+ "name": "guessOffchain",
495
+ "type": "uint256"
496
+ },
497
+ {
498
+ "internalType": "uint256",
499
+ "name": "maxIteration",
500
+ "type": "uint256"
501
+ },
502
+ {
503
+ "internalType": "uint256",
504
+ "name": "eps",
505
+ "type": "uint256"
506
+ }
507
+ ],
508
+ "indexed": false,
509
+ "internalType": "struct ApproxParams",
510
+ "name": "botParams",
511
+ "type": "tuple"
512
+ },
513
+ {
514
+ "indexed": false,
515
+ "internalType": "uint256",
516
+ "name": "netLpIn",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "indexed": false,
521
+ "internalType": "uint256",
522
+ "name": "netYtOut",
523
+ "type": "uint256"
524
+ }
525
+ ],
526
+ "name": "RemoveLiqToYt",
527
+ "type": "event"
528
+ },
529
+ {
530
+ "anonymous": false,
531
+ "inputs": [
532
+ {
533
+ "components": [
534
+ {
535
+ "internalType": "uint256",
536
+ "name": "guessMin",
537
+ "type": "uint256"
538
+ },
539
+ {
540
+ "internalType": "uint256",
541
+ "name": "guessMax",
542
+ "type": "uint256"
543
+ },
544
+ {
545
+ "internalType": "uint256",
546
+ "name": "guessOffchain",
547
+ "type": "uint256"
548
+ },
549
+ {
550
+ "internalType": "uint256",
551
+ "name": "maxIteration",
552
+ "type": "uint256"
553
+ },
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "eps",
557
+ "type": "uint256"
558
+ }
559
+ ],
560
+ "indexed": false,
561
+ "internalType": "struct ApproxParams",
562
+ "name": "botParams",
563
+ "type": "tuple"
564
+ },
565
+ {
566
+ "indexed": false,
567
+ "internalType": "uint256",
568
+ "name": "maxSyIn",
569
+ "type": "uint256"
570
+ },
571
+ {
572
+ "indexed": false,
573
+ "internalType": "uint256",
574
+ "name": "exactYtOut",
575
+ "type": "uint256"
576
+ },
577
+ {
578
+ "indexed": false,
579
+ "internalType": "uint256",
580
+ "name": "netSyIn",
581
+ "type": "uint256"
582
+ }
583
+ ],
584
+ "name": "SwapSyToYt",
585
+ "type": "event"
586
+ },
587
+ {
588
+ "anonymous": false,
589
+ "inputs": [
590
+ {
591
+ "indexed": true,
592
+ "internalType": "address",
593
+ "name": "from",
594
+ "type": "address"
595
+ },
596
+ {
597
+ "indexed": true,
598
+ "internalType": "address",
599
+ "name": "to",
600
+ "type": "address"
601
+ },
602
+ {
603
+ "indexed": false,
604
+ "internalType": "uint256",
605
+ "name": "value",
606
+ "type": "uint256"
607
+ }
608
+ ],
609
+ "name": "Transfer",
610
+ "type": "event"
611
+ },
612
+ {
613
+ "anonymous": false,
614
+ "inputs": [
615
+ {
616
+ "indexed": false,
617
+ "internalType": "address",
618
+ "name": "account",
619
+ "type": "address"
620
+ }
621
+ ],
622
+ "name": "Unpaused",
623
+ "type": "event"
624
+ },
625
+ {
626
+ "anonymous": false,
627
+ "inputs": [
628
+ {
629
+ "indexed": true,
630
+ "internalType": "address",
631
+ "name": "implementation",
632
+ "type": "address"
633
+ }
634
+ ],
635
+ "name": "Upgraded",
636
+ "type": "event"
637
+ },
638
+ {
639
+ "anonymous": false,
640
+ "inputs": [
641
+ {
642
+ "indexed": true,
643
+ "internalType": "address",
644
+ "name": "token",
645
+ "type": "address"
646
+ },
647
+ {
648
+ "indexed": false,
649
+ "internalType": "uint256",
650
+ "name": "amount",
651
+ "type": "uint256"
652
+ }
653
+ ],
654
+ "name": "WithdrawFunds",
655
+ "type": "event"
656
+ },
657
+ {
658
+ "inputs": [],
659
+ "name": "DOMAIN_SEPARATOR",
660
+ "outputs": [
661
+ {
662
+ "internalType": "bytes32",
663
+ "name": "",
664
+ "type": "bytes32"
665
+ }
666
+ ],
667
+ "stateMutability": "view",
668
+ "type": "function"
669
+ },
670
+ {
671
+ "inputs": [],
672
+ "name": "PENDLE",
673
+ "outputs": [
674
+ {
675
+ "internalType": "address",
676
+ "name": "",
677
+ "type": "address"
678
+ }
679
+ ],
680
+ "stateMutability": "view",
681
+ "type": "function"
682
+ },
683
+ {
684
+ "inputs": [],
685
+ "name": "PT",
686
+ "outputs": [
687
+ {
688
+ "internalType": "address",
689
+ "name": "",
690
+ "type": "address"
691
+ }
692
+ ],
693
+ "stateMutability": "view",
694
+ "type": "function"
695
+ },
696
+ {
697
+ "inputs": [],
698
+ "name": "SY",
699
+ "outputs": [
700
+ {
701
+ "internalType": "address",
702
+ "name": "",
703
+ "type": "address"
704
+ }
705
+ ],
706
+ "stateMutability": "view",
707
+ "type": "function"
708
+ },
709
+ {
710
+ "inputs": [],
711
+ "name": "YT",
712
+ "outputs": [
713
+ {
714
+ "internalType": "address",
715
+ "name": "",
716
+ "type": "address"
717
+ }
718
+ ],
719
+ "stateMutability": "view",
720
+ "type": "function"
721
+ },
722
+ {
723
+ "inputs": [
724
+ {
725
+ "internalType": "address",
726
+ "name": "user",
727
+ "type": "address"
728
+ }
729
+ ],
730
+ "name": "accruedRewards",
731
+ "outputs": [
732
+ {
733
+ "internalType": "uint256[]",
734
+ "name": "rewardAmounts",
735
+ "type": "uint256[]"
736
+ }
737
+ ],
738
+ "stateMutability": "view",
739
+ "type": "function"
740
+ },
741
+ {
742
+ "inputs": [
743
+ {
744
+ "components": [
745
+ {
746
+ "components": [
747
+ {
748
+ "internalType": "uint256",
749
+ "name": "guessMin",
750
+ "type": "uint256"
751
+ },
752
+ {
753
+ "internalType": "uint256",
754
+ "name": "guessMax",
755
+ "type": "uint256"
756
+ },
757
+ {
758
+ "internalType": "uint256",
759
+ "name": "guessOffchain",
760
+ "type": "uint256"
761
+ },
762
+ {
763
+ "internalType": "uint256",
764
+ "name": "maxIteration",
765
+ "type": "uint256"
766
+ },
767
+ {
768
+ "internalType": "uint256",
769
+ "name": "eps",
770
+ "type": "uint256"
771
+ }
772
+ ],
773
+ "internalType": "struct ApproxParams",
774
+ "name": "botParams",
775
+ "type": "tuple"
776
+ },
777
+ {
778
+ "internalType": "uint256",
779
+ "name": "minLpOut",
780
+ "type": "uint256"
781
+ },
782
+ {
783
+ "internalType": "uint256",
784
+ "name": "targetIy",
785
+ "type": "uint256"
786
+ },
787
+ {
788
+ "internalType": "int256",
789
+ "name": "currentBin",
790
+ "type": "int256"
791
+ }
792
+ ],
793
+ "internalType": "struct ILongYieldTradingBot.AddLiqFromYtInput",
794
+ "name": "inputParams",
795
+ "type": "tuple"
796
+ }
797
+ ],
798
+ "name": "addLiqFromYt",
799
+ "outputs": [
800
+ {
801
+ "internalType": "uint256",
802
+ "name": "netPtFromSwap",
803
+ "type": "uint256"
804
+ },
805
+ {
806
+ "internalType": "uint256",
807
+ "name": "netLpOut",
808
+ "type": "uint256"
809
+ },
810
+ {
811
+ "internalType": "uint256",
812
+ "name": "netYtIn",
813
+ "type": "uint256"
814
+ }
815
+ ],
816
+ "stateMutability": "nonpayable",
817
+ "type": "function"
818
+ },
819
+ {
820
+ "inputs": [
821
+ {
822
+ "internalType": "uint256",
823
+ "name": "netSyIn",
824
+ "type": "uint256"
825
+ },
826
+ {
827
+ "internalType": "uint256",
828
+ "name": "minLpOut",
829
+ "type": "uint256"
830
+ },
831
+ {
832
+ "internalType": "uint256",
833
+ "name": "minYtOut",
834
+ "type": "uint256"
835
+ }
836
+ ],
837
+ "name": "addLiqKeepYt",
838
+ "outputs": [
839
+ {
840
+ "internalType": "uint256",
841
+ "name": "netLpOut",
842
+ "type": "uint256"
843
+ },
844
+ {
845
+ "internalType": "uint256",
846
+ "name": "netYtOut",
847
+ "type": "uint256"
848
+ }
849
+ ],
850
+ "stateMutability": "nonpayable",
851
+ "type": "function"
852
+ },
853
+ {
854
+ "inputs": [
855
+ {
856
+ "internalType": "address",
857
+ "name": "owner",
858
+ "type": "address"
859
+ },
860
+ {
861
+ "internalType": "address",
862
+ "name": "spender",
863
+ "type": "address"
864
+ }
865
+ ],
866
+ "name": "allowance",
867
+ "outputs": [
868
+ {
869
+ "internalType": "uint256",
870
+ "name": "",
871
+ "type": "uint256"
872
+ }
873
+ ],
874
+ "stateMutability": "view",
875
+ "type": "function"
876
+ },
877
+ {
878
+ "inputs": [
879
+ {
880
+ "internalType": "address",
881
+ "name": "spender",
882
+ "type": "address"
883
+ },
884
+ {
885
+ "internalType": "uint256",
886
+ "name": "amount",
887
+ "type": "uint256"
888
+ }
889
+ ],
890
+ "name": "approve",
891
+ "outputs": [
892
+ {
893
+ "internalType": "bool",
894
+ "name": "",
895
+ "type": "bool"
896
+ }
897
+ ],
898
+ "stateMutability": "nonpayable",
899
+ "type": "function"
900
+ },
901
+ {
902
+ "inputs": [
903
+ {
904
+ "internalType": "address",
905
+ "name": "token",
906
+ "type": "address"
907
+ },
908
+ {
909
+ "internalType": "address",
910
+ "name": "to",
911
+ "type": "address"
912
+ }
913
+ ],
914
+ "name": "approveInf",
915
+ "outputs": [],
916
+ "stateMutability": "nonpayable",
917
+ "type": "function"
918
+ },
919
+ {
920
+ "inputs": [],
921
+ "name": "assetInfo",
922
+ "outputs": [
923
+ {
924
+ "internalType": "enum IStandardizedYield.AssetType",
925
+ "name": "assetType",
926
+ "type": "uint8"
927
+ },
928
+ {
929
+ "internalType": "address",
930
+ "name": "assetAddress",
931
+ "type": "address"
932
+ },
933
+ {
934
+ "internalType": "uint8",
935
+ "name": "assetDecimals",
936
+ "type": "uint8"
937
+ }
938
+ ],
939
+ "stateMutability": "view",
940
+ "type": "function"
941
+ },
942
+ {
943
+ "inputs": [
944
+ {
945
+ "internalType": "address",
946
+ "name": "account",
947
+ "type": "address"
948
+ }
949
+ ],
950
+ "name": "balanceOf",
951
+ "outputs": [
952
+ {
953
+ "internalType": "uint256",
954
+ "name": "",
955
+ "type": "uint256"
956
+ }
957
+ ],
958
+ "stateMutability": "view",
959
+ "type": "function"
960
+ },
961
+ {
962
+ "inputs": [],
963
+ "name": "buyBins",
964
+ "outputs": [
965
+ {
966
+ "internalType": "uint256",
967
+ "name": "",
968
+ "type": "uint256"
969
+ }
970
+ ],
971
+ "stateMutability": "view",
972
+ "type": "function"
973
+ },
974
+ {
975
+ "inputs": [],
976
+ "name": "claimOwnership",
977
+ "outputs": [],
978
+ "stateMutability": "nonpayable",
979
+ "type": "function"
980
+ },
981
+ {
982
+ "inputs": [
983
+ {
984
+ "internalType": "address",
985
+ "name": "user",
986
+ "type": "address"
987
+ }
988
+ ],
989
+ "name": "claimRewards",
990
+ "outputs": [
991
+ {
992
+ "internalType": "uint256[]",
993
+ "name": "rewardAmounts",
994
+ "type": "uint256[]"
995
+ }
996
+ ],
997
+ "stateMutability": "nonpayable",
998
+ "type": "function"
999
+ },
1000
+ {
1001
+ "inputs": [
1002
+ {
1003
+ "components": [
1004
+ {
1005
+ "internalType": "address",
1006
+ "name": "tokenIn",
1007
+ "type": "address"
1008
+ },
1009
+ {
1010
+ "internalType": "uint256",
1011
+ "name": "netTokenIn",
1012
+ "type": "uint256"
1013
+ },
1014
+ {
1015
+ "internalType": "address",
1016
+ "name": "tokenMintSy",
1017
+ "type": "address"
1018
+ },
1019
+ {
1020
+ "internalType": "address",
1021
+ "name": "bulk",
1022
+ "type": "address"
1023
+ },
1024
+ {
1025
+ "internalType": "address",
1026
+ "name": "pendleSwap",
1027
+ "type": "address"
1028
+ },
1029
+ {
1030
+ "components": [
1031
+ {
1032
+ "internalType": "enum SwapType",
1033
+ "name": "swapType",
1034
+ "type": "uint8"
1035
+ },
1036
+ {
1037
+ "internalType": "address",
1038
+ "name": "extRouter",
1039
+ "type": "address"
1040
+ },
1041
+ {
1042
+ "internalType": "bytes",
1043
+ "name": "extCalldata",
1044
+ "type": "bytes"
1045
+ },
1046
+ {
1047
+ "internalType": "bool",
1048
+ "name": "needScale",
1049
+ "type": "bool"
1050
+ }
1051
+ ],
1052
+ "internalType": "struct SwapData",
1053
+ "name": "swapData",
1054
+ "type": "tuple"
1055
+ }
1056
+ ],
1057
+ "internalType": "struct TokenInput",
1058
+ "name": "inp",
1059
+ "type": "tuple"
1060
+ },
1061
+ {
1062
+ "internalType": "uint256",
1063
+ "name": "minSyOut",
1064
+ "type": "uint256"
1065
+ }
1066
+ ],
1067
+ "name": "compound",
1068
+ "outputs": [
1069
+ {
1070
+ "internalType": "uint256",
1071
+ "name": "netSyOut",
1072
+ "type": "uint256"
1073
+ }
1074
+ ],
1075
+ "stateMutability": "nonpayable",
1076
+ "type": "function"
1077
+ },
1078
+ {
1079
+ "inputs": [],
1080
+ "name": "decimals",
1081
+ "outputs": [
1082
+ {
1083
+ "internalType": "uint8",
1084
+ "name": "",
1085
+ "type": "uint8"
1086
+ }
1087
+ ],
1088
+ "stateMutability": "view",
1089
+ "type": "function"
1090
+ },
1091
+ {
1092
+ "inputs": [],
1093
+ "name": "decisionHelper",
1094
+ "outputs": [
1095
+ {
1096
+ "internalType": "contract IBotDecisionHelper",
1097
+ "name": "",
1098
+ "type": "address"
1099
+ }
1100
+ ],
1101
+ "stateMutability": "view",
1102
+ "type": "function"
1103
+ },
1104
+ {
1105
+ "inputs": [
1106
+ {
1107
+ "internalType": "address",
1108
+ "name": "receiver",
1109
+ "type": "address"
1110
+ },
1111
+ {
1112
+ "internalType": "address",
1113
+ "name": "tokenIn",
1114
+ "type": "address"
1115
+ },
1116
+ {
1117
+ "internalType": "uint256",
1118
+ "name": "amountTokenToDeposit",
1119
+ "type": "uint256"
1120
+ },
1121
+ {
1122
+ "internalType": "uint256",
1123
+ "name": "minSharesOut",
1124
+ "type": "uint256"
1125
+ }
1126
+ ],
1127
+ "name": "deposit",
1128
+ "outputs": [
1129
+ {
1130
+ "internalType": "uint256",
1131
+ "name": "amountSharesOut",
1132
+ "type": "uint256"
1133
+ }
1134
+ ],
1135
+ "stateMutability": "payable",
1136
+ "type": "function"
1137
+ },
1138
+ {
1139
+ "inputs": [],
1140
+ "name": "exchangeRate",
1141
+ "outputs": [
1142
+ {
1143
+ "internalType": "uint256",
1144
+ "name": "",
1145
+ "type": "uint256"
1146
+ }
1147
+ ],
1148
+ "stateMutability": "view",
1149
+ "type": "function"
1150
+ },
1151
+ {
1152
+ "inputs": [],
1153
+ "name": "getMaxAmountSharesToRedeem",
1154
+ "outputs": [
1155
+ {
1156
+ "internalType": "uint256",
1157
+ "name": "",
1158
+ "type": "uint256"
1159
+ }
1160
+ ],
1161
+ "stateMutability": "view",
1162
+ "type": "function"
1163
+ },
1164
+ {
1165
+ "inputs": [],
1166
+ "name": "getRewardTokens",
1167
+ "outputs": [
1168
+ {
1169
+ "internalType": "address[]",
1170
+ "name": "rewardTokens",
1171
+ "type": "address[]"
1172
+ }
1173
+ ],
1174
+ "stateMutability": "view",
1175
+ "type": "function"
1176
+ },
1177
+ {
1178
+ "inputs": [],
1179
+ "name": "getTokensIn",
1180
+ "outputs": [
1181
+ {
1182
+ "internalType": "address[]",
1183
+ "name": "res",
1184
+ "type": "address[]"
1185
+ }
1186
+ ],
1187
+ "stateMutability": "view",
1188
+ "type": "function"
1189
+ },
1190
+ {
1191
+ "inputs": [],
1192
+ "name": "getTokensOut",
1193
+ "outputs": [
1194
+ {
1195
+ "internalType": "address[]",
1196
+ "name": "res",
1197
+ "type": "address[]"
1198
+ }
1199
+ ],
1200
+ "stateMutability": "view",
1201
+ "type": "function"
1202
+ },
1203
+ {
1204
+ "inputs": [
1205
+ {
1206
+ "internalType": "bool",
1207
+ "name": "isLiquidateTvl",
1208
+ "type": "bool"
1209
+ }
1210
+ ],
1211
+ "name": "getTvl",
1212
+ "outputs": [
1213
+ {
1214
+ "internalType": "uint256",
1215
+ "name": "",
1216
+ "type": "uint256"
1217
+ }
1218
+ ],
1219
+ "stateMutability": "view",
1220
+ "type": "function"
1221
+ },
1222
+ {
1223
+ "inputs": [
1224
+ {
1225
+ "components": [
1226
+ {
1227
+ "internalType": "uint256",
1228
+ "name": "buyYtIy",
1229
+ "type": "uint256"
1230
+ },
1231
+ {
1232
+ "internalType": "uint256",
1233
+ "name": "sellYtIy",
1234
+ "type": "uint256"
1235
+ },
1236
+ {
1237
+ "internalType": "uint256",
1238
+ "name": "targetSyRatio",
1239
+ "type": "uint256"
1240
+ },
1241
+ {
1242
+ "internalType": "uint256",
1243
+ "name": "bufferSyRatio",
1244
+ "type": "uint256"
1245
+ },
1246
+ {
1247
+ "internalType": "uint256",
1248
+ "name": "targetYtPtRatio",
1249
+ "type": "uint256"
1250
+ },
1251
+ {
1252
+ "internalType": "uint256",
1253
+ "name": "numOfBins",
1254
+ "type": "uint256"
1255
+ }
1256
+ ],
1257
+ "internalType": "struct TradingSpecs",
1258
+ "name": "_specs",
1259
+ "type": "tuple"
1260
+ }
1261
+ ],
1262
+ "name": "initialize",
1263
+ "outputs": [],
1264
+ "stateMutability": "nonpayable",
1265
+ "type": "function"
1266
+ },
1267
+ {
1268
+ "inputs": [
1269
+ {
1270
+ "internalType": "address",
1271
+ "name": "token",
1272
+ "type": "address"
1273
+ }
1274
+ ],
1275
+ "name": "isValidTokenIn",
1276
+ "outputs": [
1277
+ {
1278
+ "internalType": "bool",
1279
+ "name": "",
1280
+ "type": "bool"
1281
+ }
1282
+ ],
1283
+ "stateMutability": "view",
1284
+ "type": "function"
1285
+ },
1286
+ {
1287
+ "inputs": [
1288
+ {
1289
+ "internalType": "address",
1290
+ "name": "token",
1291
+ "type": "address"
1292
+ }
1293
+ ],
1294
+ "name": "isValidTokenOut",
1295
+ "outputs": [
1296
+ {
1297
+ "internalType": "bool",
1298
+ "name": "",
1299
+ "type": "bool"
1300
+ }
1301
+ ],
1302
+ "stateMutability": "view",
1303
+ "type": "function"
1304
+ },
1305
+ {
1306
+ "inputs": [],
1307
+ "name": "lastRewardBlock",
1308
+ "outputs": [
1309
+ {
1310
+ "internalType": "uint256",
1311
+ "name": "",
1312
+ "type": "uint256"
1313
+ }
1314
+ ],
1315
+ "stateMutability": "view",
1316
+ "type": "function"
1317
+ },
1318
+ {
1319
+ "inputs": [],
1320
+ "name": "market",
1321
+ "outputs": [
1322
+ {
1323
+ "internalType": "address",
1324
+ "name": "",
1325
+ "type": "address"
1326
+ }
1327
+ ],
1328
+ "stateMutability": "view",
1329
+ "type": "function"
1330
+ },
1331
+ {
1332
+ "inputs": [],
1333
+ "name": "name",
1334
+ "outputs": [
1335
+ {
1336
+ "internalType": "string",
1337
+ "name": "",
1338
+ "type": "string"
1339
+ }
1340
+ ],
1341
+ "stateMutability": "view",
1342
+ "type": "function"
1343
+ },
1344
+ {
1345
+ "inputs": [
1346
+ {
1347
+ "internalType": "address",
1348
+ "name": "owner",
1349
+ "type": "address"
1350
+ }
1351
+ ],
1352
+ "name": "nonces",
1353
+ "outputs": [
1354
+ {
1355
+ "internalType": "uint256",
1356
+ "name": "",
1357
+ "type": "uint256"
1358
+ }
1359
+ ],
1360
+ "stateMutability": "view",
1361
+ "type": "function"
1362
+ },
1363
+ {
1364
+ "inputs": [],
1365
+ "name": "owner",
1366
+ "outputs": [
1367
+ {
1368
+ "internalType": "address",
1369
+ "name": "",
1370
+ "type": "address"
1371
+ }
1372
+ ],
1373
+ "stateMutability": "view",
1374
+ "type": "function"
1375
+ },
1376
+ {
1377
+ "inputs": [],
1378
+ "name": "pause",
1379
+ "outputs": [],
1380
+ "stateMutability": "nonpayable",
1381
+ "type": "function"
1382
+ },
1383
+ {
1384
+ "inputs": [],
1385
+ "name": "paused",
1386
+ "outputs": [
1387
+ {
1388
+ "internalType": "bool",
1389
+ "name": "",
1390
+ "type": "bool"
1391
+ }
1392
+ ],
1393
+ "stateMutability": "view",
1394
+ "type": "function"
1395
+ },
1396
+ {
1397
+ "inputs": [],
1398
+ "name": "pendingOwner",
1399
+ "outputs": [
1400
+ {
1401
+ "internalType": "address",
1402
+ "name": "",
1403
+ "type": "address"
1404
+ }
1405
+ ],
1406
+ "stateMutability": "view",
1407
+ "type": "function"
1408
+ },
1409
+ {
1410
+ "inputs": [
1411
+ {
1412
+ "internalType": "address",
1413
+ "name": "owner",
1414
+ "type": "address"
1415
+ },
1416
+ {
1417
+ "internalType": "address",
1418
+ "name": "spender",
1419
+ "type": "address"
1420
+ },
1421
+ {
1422
+ "internalType": "uint256",
1423
+ "name": "value",
1424
+ "type": "uint256"
1425
+ },
1426
+ {
1427
+ "internalType": "uint256",
1428
+ "name": "deadline",
1429
+ "type": "uint256"
1430
+ },
1431
+ {
1432
+ "internalType": "uint8",
1433
+ "name": "v",
1434
+ "type": "uint8"
1435
+ },
1436
+ {
1437
+ "internalType": "bytes32",
1438
+ "name": "r",
1439
+ "type": "bytes32"
1440
+ },
1441
+ {
1442
+ "internalType": "bytes32",
1443
+ "name": "s",
1444
+ "type": "bytes32"
1445
+ }
1446
+ ],
1447
+ "name": "permit",
1448
+ "outputs": [],
1449
+ "stateMutability": "nonpayable",
1450
+ "type": "function"
1451
+ },
1452
+ {
1453
+ "inputs": [
1454
+ {
1455
+ "internalType": "address",
1456
+ "name": "tokenIn",
1457
+ "type": "address"
1458
+ },
1459
+ {
1460
+ "internalType": "uint256",
1461
+ "name": "amountTokenToDeposit",
1462
+ "type": "uint256"
1463
+ }
1464
+ ],
1465
+ "name": "previewDeposit",
1466
+ "outputs": [
1467
+ {
1468
+ "internalType": "uint256",
1469
+ "name": "amountSharesOut",
1470
+ "type": "uint256"
1471
+ }
1472
+ ],
1473
+ "stateMutability": "view",
1474
+ "type": "function"
1475
+ },
1476
+ {
1477
+ "inputs": [
1478
+ {
1479
+ "internalType": "address",
1480
+ "name": "tokenOut",
1481
+ "type": "address"
1482
+ },
1483
+ {
1484
+ "internalType": "uint256",
1485
+ "name": "amountSharesToRedeem",
1486
+ "type": "uint256"
1487
+ }
1488
+ ],
1489
+ "name": "previewRedeem",
1490
+ "outputs": [
1491
+ {
1492
+ "internalType": "uint256",
1493
+ "name": "amountTokenOut",
1494
+ "type": "uint256"
1495
+ }
1496
+ ],
1497
+ "stateMutability": "view",
1498
+ "type": "function"
1499
+ },
1500
+ {
1501
+ "inputs": [],
1502
+ "name": "proxiableUUID",
1503
+ "outputs": [
1504
+ {
1505
+ "internalType": "bytes32",
1506
+ "name": "",
1507
+ "type": "bytes32"
1508
+ }
1509
+ ],
1510
+ "stateMutability": "view",
1511
+ "type": "function"
1512
+ },
1513
+ {
1514
+ "inputs": [],
1515
+ "name": "readStrategyData",
1516
+ "outputs": [
1517
+ {
1518
+ "components": [
1519
+ {
1520
+ "components": [
1521
+ {
1522
+ "internalType": "uint256",
1523
+ "name": "lpBalance",
1524
+ "type": "uint256"
1525
+ },
1526
+ {
1527
+ "internalType": "uint256",
1528
+ "name": "ytBalance",
1529
+ "type": "uint256"
1530
+ },
1531
+ {
1532
+ "internalType": "uint256",
1533
+ "name": "ptBalance",
1534
+ "type": "uint256"
1535
+ },
1536
+ {
1537
+ "internalType": "uint256",
1538
+ "name": "syBalance",
1539
+ "type": "uint256"
1540
+ },
1541
+ {
1542
+ "internalType": "uint256",
1543
+ "name": "buyBins",
1544
+ "type": "uint256"
1545
+ }
1546
+ ],
1547
+ "internalType": "struct BotState",
1548
+ "name": "botState",
1549
+ "type": "tuple"
1550
+ },
1551
+ {
1552
+ "components": [
1553
+ {
1554
+ "components": [
1555
+ {
1556
+ "internalType": "int256",
1557
+ "name": "totalPt",
1558
+ "type": "int256"
1559
+ },
1560
+ {
1561
+ "internalType": "int256",
1562
+ "name": "totalSy",
1563
+ "type": "int256"
1564
+ },
1565
+ {
1566
+ "internalType": "int256",
1567
+ "name": "totalLp",
1568
+ "type": "int256"
1569
+ },
1570
+ {
1571
+ "internalType": "address",
1572
+ "name": "treasury",
1573
+ "type": "address"
1574
+ },
1575
+ {
1576
+ "internalType": "int256",
1577
+ "name": "scalarRoot",
1578
+ "type": "int256"
1579
+ },
1580
+ {
1581
+ "internalType": "uint256",
1582
+ "name": "expiry",
1583
+ "type": "uint256"
1584
+ },
1585
+ {
1586
+ "internalType": "uint256",
1587
+ "name": "lnFeeRateRoot",
1588
+ "type": "uint256"
1589
+ },
1590
+ {
1591
+ "internalType": "uint256",
1592
+ "name": "reserveFeePercent",
1593
+ "type": "uint256"
1594
+ },
1595
+ {
1596
+ "internalType": "uint256",
1597
+ "name": "lastLnImpliedRate",
1598
+ "type": "uint256"
1599
+ }
1600
+ ],
1601
+ "internalType": "struct MarketState",
1602
+ "name": "state",
1603
+ "type": "tuple"
1604
+ },
1605
+ {
1606
+ "internalType": "PYIndex",
1607
+ "name": "index",
1608
+ "type": "uint256"
1609
+ },
1610
+ {
1611
+ "internalType": "uint256",
1612
+ "name": "blockTime",
1613
+ "type": "uint256"
1614
+ }
1615
+ ],
1616
+ "internalType": "struct MarketExtState",
1617
+ "name": "marketExt",
1618
+ "type": "tuple"
1619
+ },
1620
+ {
1621
+ "components": [
1622
+ {
1623
+ "internalType": "uint256",
1624
+ "name": "buyYtIy",
1625
+ "type": "uint256"
1626
+ },
1627
+ {
1628
+ "internalType": "uint256",
1629
+ "name": "sellYtIy",
1630
+ "type": "uint256"
1631
+ },
1632
+ {
1633
+ "internalType": "uint256",
1634
+ "name": "targetSyRatio",
1635
+ "type": "uint256"
1636
+ },
1637
+ {
1638
+ "internalType": "uint256",
1639
+ "name": "bufferSyRatio",
1640
+ "type": "uint256"
1641
+ },
1642
+ {
1643
+ "internalType": "uint256",
1644
+ "name": "targetYtPtRatio",
1645
+ "type": "uint256"
1646
+ },
1647
+ {
1648
+ "internalType": "uint256",
1649
+ "name": "numOfBins",
1650
+ "type": "uint256"
1651
+ }
1652
+ ],
1653
+ "internalType": "struct TradingSpecs",
1654
+ "name": "specs",
1655
+ "type": "tuple"
1656
+ }
1657
+ ],
1658
+ "internalType": "struct StrategyData",
1659
+ "name": "strategyData",
1660
+ "type": "tuple"
1661
+ }
1662
+ ],
1663
+ "stateMutability": "view",
1664
+ "type": "function"
1665
+ },
1666
+ {
1667
+ "inputs": [
1668
+ {
1669
+ "internalType": "address",
1670
+ "name": "receiver",
1671
+ "type": "address"
1672
+ },
1673
+ {
1674
+ "internalType": "uint256",
1675
+ "name": "amountSharesToRedeem",
1676
+ "type": "uint256"
1677
+ },
1678
+ {
1679
+ "internalType": "address",
1680
+ "name": "tokenOut",
1681
+ "type": "address"
1682
+ },
1683
+ {
1684
+ "internalType": "uint256",
1685
+ "name": "minTokenOut",
1686
+ "type": "uint256"
1687
+ },
1688
+ {
1689
+ "internalType": "bool",
1690
+ "name": "burnFromInternalBalance",
1691
+ "type": "bool"
1692
+ }
1693
+ ],
1694
+ "name": "redeem",
1695
+ "outputs": [
1696
+ {
1697
+ "internalType": "uint256",
1698
+ "name": "amountTokenOut",
1699
+ "type": "uint256"
1700
+ }
1701
+ ],
1702
+ "stateMutability": "nonpayable",
1703
+ "type": "function"
1704
+ },
1705
+ {
1706
+ "inputs": [
1707
+ {
1708
+ "components": [
1709
+ {
1710
+ "components": [
1711
+ {
1712
+ "internalType": "uint256",
1713
+ "name": "guessMin",
1714
+ "type": "uint256"
1715
+ },
1716
+ {
1717
+ "internalType": "uint256",
1718
+ "name": "guessMax",
1719
+ "type": "uint256"
1720
+ },
1721
+ {
1722
+ "internalType": "uint256",
1723
+ "name": "guessOffchain",
1724
+ "type": "uint256"
1725
+ },
1726
+ {
1727
+ "internalType": "uint256",
1728
+ "name": "maxIteration",
1729
+ "type": "uint256"
1730
+ },
1731
+ {
1732
+ "internalType": "uint256",
1733
+ "name": "eps",
1734
+ "type": "uint256"
1735
+ }
1736
+ ],
1737
+ "internalType": "struct ApproxParams",
1738
+ "name": "botParams",
1739
+ "type": "tuple"
1740
+ },
1741
+ {
1742
+ "components": [
1743
+ {
1744
+ "internalType": "uint256",
1745
+ "name": "guessMin",
1746
+ "type": "uint256"
1747
+ },
1748
+ {
1749
+ "internalType": "uint256",
1750
+ "name": "guessMax",
1751
+ "type": "uint256"
1752
+ },
1753
+ {
1754
+ "internalType": "uint256",
1755
+ "name": "guessOffchain",
1756
+ "type": "uint256"
1757
+ },
1758
+ {
1759
+ "internalType": "uint256",
1760
+ "name": "maxIteration",
1761
+ "type": "uint256"
1762
+ },
1763
+ {
1764
+ "internalType": "uint256",
1765
+ "name": "eps",
1766
+ "type": "uint256"
1767
+ }
1768
+ ],
1769
+ "internalType": "struct ApproxParams",
1770
+ "name": "guessTotalPtToSwap",
1771
+ "type": "tuple"
1772
+ },
1773
+ {
1774
+ "internalType": "uint256",
1775
+ "name": "minYtOut",
1776
+ "type": "uint256"
1777
+ },
1778
+ {
1779
+ "internalType": "uint256",
1780
+ "name": "targetIy",
1781
+ "type": "uint256"
1782
+ },
1783
+ {
1784
+ "internalType": "int256",
1785
+ "name": "currentBin",
1786
+ "type": "int256"
1787
+ }
1788
+ ],
1789
+ "internalType": "struct ILongYieldTradingBot.RemoveLiqToYtInput",
1790
+ "name": "inputParams",
1791
+ "type": "tuple"
1792
+ }
1793
+ ],
1794
+ "name": "removeLiqToYt",
1795
+ "outputs": [
1796
+ {
1797
+ "internalType": "uint256",
1798
+ "name": "netLpRemoved",
1799
+ "type": "uint256"
1800
+ },
1801
+ {
1802
+ "internalType": "uint256",
1803
+ "name": "netYtOut",
1804
+ "type": "uint256"
1805
+ }
1806
+ ],
1807
+ "stateMutability": "nonpayable",
1808
+ "type": "function"
1809
+ },
1810
+ {
1811
+ "inputs": [
1812
+ {
1813
+ "internalType": "uint256",
1814
+ "name": "netLpToRemove",
1815
+ "type": "uint256"
1816
+ },
1817
+ {
1818
+ "internalType": "uint256",
1819
+ "name": "minSyOut",
1820
+ "type": "uint256"
1821
+ }
1822
+ ],
1823
+ "name": "removeLiquidityToSy",
1824
+ "outputs": [
1825
+ {
1826
+ "internalType": "uint256",
1827
+ "name": "netSyOut",
1828
+ "type": "uint256"
1829
+ }
1830
+ ],
1831
+ "stateMutability": "nonpayable",
1832
+ "type": "function"
1833
+ },
1834
+ {
1835
+ "inputs": [],
1836
+ "name": "rewardIndexesCurrent",
1837
+ "outputs": [
1838
+ {
1839
+ "internalType": "uint256[]",
1840
+ "name": "indexes",
1841
+ "type": "uint256[]"
1842
+ }
1843
+ ],
1844
+ "stateMutability": "nonpayable",
1845
+ "type": "function"
1846
+ },
1847
+ {
1848
+ "inputs": [],
1849
+ "name": "rewardIndexesStored",
1850
+ "outputs": [
1851
+ {
1852
+ "internalType": "uint256[]",
1853
+ "name": "indexes",
1854
+ "type": "uint256[]"
1855
+ }
1856
+ ],
1857
+ "stateMutability": "view",
1858
+ "type": "function"
1859
+ },
1860
+ {
1861
+ "inputs": [
1862
+ {
1863
+ "internalType": "address",
1864
+ "name": "",
1865
+ "type": "address"
1866
+ }
1867
+ ],
1868
+ "name": "rewardState",
1869
+ "outputs": [
1870
+ {
1871
+ "internalType": "uint128",
1872
+ "name": "index",
1873
+ "type": "uint128"
1874
+ },
1875
+ {
1876
+ "internalType": "uint128",
1877
+ "name": "lastBalance",
1878
+ "type": "uint128"
1879
+ }
1880
+ ],
1881
+ "stateMutability": "view",
1882
+ "type": "function"
1883
+ },
1884
+ {
1885
+ "inputs": [],
1886
+ "name": "router",
1887
+ "outputs": [
1888
+ {
1889
+ "internalType": "address",
1890
+ "name": "",
1891
+ "type": "address"
1892
+ }
1893
+ ],
1894
+ "stateMutability": "view",
1895
+ "type": "function"
1896
+ },
1897
+ {
1898
+ "inputs": [
1899
+ {
1900
+ "components": [
1901
+ {
1902
+ "internalType": "uint256",
1903
+ "name": "buyYtIy",
1904
+ "type": "uint256"
1905
+ },
1906
+ {
1907
+ "internalType": "uint256",
1908
+ "name": "sellYtIy",
1909
+ "type": "uint256"
1910
+ },
1911
+ {
1912
+ "internalType": "uint256",
1913
+ "name": "targetSyRatio",
1914
+ "type": "uint256"
1915
+ },
1916
+ {
1917
+ "internalType": "uint256",
1918
+ "name": "bufferSyRatio",
1919
+ "type": "uint256"
1920
+ },
1921
+ {
1922
+ "internalType": "uint256",
1923
+ "name": "targetYtPtRatio",
1924
+ "type": "uint256"
1925
+ },
1926
+ {
1927
+ "internalType": "uint256",
1928
+ "name": "numOfBins",
1929
+ "type": "uint256"
1930
+ }
1931
+ ],
1932
+ "internalType": "struct TradingSpecs",
1933
+ "name": "_specs",
1934
+ "type": "tuple"
1935
+ }
1936
+ ],
1937
+ "name": "setSpecs",
1938
+ "outputs": [],
1939
+ "stateMutability": "nonpayable",
1940
+ "type": "function"
1941
+ },
1942
+ {
1943
+ "inputs": [],
1944
+ "name": "specs",
1945
+ "outputs": [
1946
+ {
1947
+ "internalType": "uint256",
1948
+ "name": "buyYtIy",
1949
+ "type": "uint256"
1950
+ },
1951
+ {
1952
+ "internalType": "uint256",
1953
+ "name": "sellYtIy",
1954
+ "type": "uint256"
1955
+ },
1956
+ {
1957
+ "internalType": "uint256",
1958
+ "name": "targetSyRatio",
1959
+ "type": "uint256"
1960
+ },
1961
+ {
1962
+ "internalType": "uint256",
1963
+ "name": "bufferSyRatio",
1964
+ "type": "uint256"
1965
+ },
1966
+ {
1967
+ "internalType": "uint256",
1968
+ "name": "targetYtPtRatio",
1969
+ "type": "uint256"
1970
+ },
1971
+ {
1972
+ "internalType": "uint256",
1973
+ "name": "numOfBins",
1974
+ "type": "uint256"
1975
+ }
1976
+ ],
1977
+ "stateMutability": "view",
1978
+ "type": "function"
1979
+ },
1980
+ {
1981
+ "inputs": [
1982
+ {
1983
+ "internalType": "int256",
1984
+ "name": "ptToAccount",
1985
+ "type": "int256"
1986
+ },
1987
+ {
1988
+ "internalType": "int256",
1989
+ "name": "syToAccount",
1990
+ "type": "int256"
1991
+ },
1992
+ {
1993
+ "internalType": "bytes",
1994
+ "name": "data",
1995
+ "type": "bytes"
1996
+ }
1997
+ ],
1998
+ "name": "swapCallback",
1999
+ "outputs": [],
2000
+ "stateMutability": "nonpayable",
2001
+ "type": "function"
2002
+ },
2003
+ {
2004
+ "inputs": [
2005
+ {
2006
+ "internalType": "uint256",
2007
+ "name": "netYtToSell",
2008
+ "type": "uint256"
2009
+ },
2010
+ {
2011
+ "internalType": "uint256",
2012
+ "name": "minSyOut",
2013
+ "type": "uint256"
2014
+ }
2015
+ ],
2016
+ "name": "swapYtToSy",
2017
+ "outputs": [
2018
+ {
2019
+ "internalType": "uint256",
2020
+ "name": "netSyOut",
2021
+ "type": "uint256"
2022
+ }
2023
+ ],
2024
+ "stateMutability": "nonpayable",
2025
+ "type": "function"
2026
+ },
2027
+ {
2028
+ "inputs": [],
2029
+ "name": "symbol",
2030
+ "outputs": [
2031
+ {
2032
+ "internalType": "string",
2033
+ "name": "",
2034
+ "type": "string"
2035
+ }
2036
+ ],
2037
+ "stateMutability": "view",
2038
+ "type": "function"
2039
+ },
2040
+ {
2041
+ "inputs": [],
2042
+ "name": "totalSupply",
2043
+ "outputs": [
2044
+ {
2045
+ "internalType": "uint256",
2046
+ "name": "",
2047
+ "type": "uint256"
2048
+ }
2049
+ ],
2050
+ "stateMutability": "view",
2051
+ "type": "function"
2052
+ },
2053
+ {
2054
+ "inputs": [
2055
+ {
2056
+ "internalType": "address",
2057
+ "name": "to",
2058
+ "type": "address"
2059
+ },
2060
+ {
2061
+ "internalType": "uint256",
2062
+ "name": "amount",
2063
+ "type": "uint256"
2064
+ }
2065
+ ],
2066
+ "name": "transfer",
2067
+ "outputs": [
2068
+ {
2069
+ "internalType": "bool",
2070
+ "name": "",
2071
+ "type": "bool"
2072
+ }
2073
+ ],
2074
+ "stateMutability": "nonpayable",
2075
+ "type": "function"
2076
+ },
2077
+ {
2078
+ "inputs": [
2079
+ {
2080
+ "internalType": "address",
2081
+ "name": "from",
2082
+ "type": "address"
2083
+ },
2084
+ {
2085
+ "internalType": "address",
2086
+ "name": "to",
2087
+ "type": "address"
2088
+ },
2089
+ {
2090
+ "internalType": "uint256",
2091
+ "name": "amount",
2092
+ "type": "uint256"
2093
+ }
2094
+ ],
2095
+ "name": "transferFrom",
2096
+ "outputs": [
2097
+ {
2098
+ "internalType": "bool",
2099
+ "name": "",
2100
+ "type": "bool"
2101
+ }
2102
+ ],
2103
+ "stateMutability": "nonpayable",
2104
+ "type": "function"
2105
+ },
2106
+ {
2107
+ "inputs": [
2108
+ {
2109
+ "internalType": "address",
2110
+ "name": "newOwner",
2111
+ "type": "address"
2112
+ },
2113
+ {
2114
+ "internalType": "bool",
2115
+ "name": "direct",
2116
+ "type": "bool"
2117
+ },
2118
+ {
2119
+ "internalType": "bool",
2120
+ "name": "renounce",
2121
+ "type": "bool"
2122
+ }
2123
+ ],
2124
+ "name": "transferOwnership",
2125
+ "outputs": [],
2126
+ "stateMutability": "nonpayable",
2127
+ "type": "function"
2128
+ },
2129
+ {
2130
+ "inputs": [],
2131
+ "name": "unpause",
2132
+ "outputs": [],
2133
+ "stateMutability": "nonpayable",
2134
+ "type": "function"
2135
+ },
2136
+ {
2137
+ "inputs": [
2138
+ {
2139
+ "internalType": "address",
2140
+ "name": "newImplementation",
2141
+ "type": "address"
2142
+ }
2143
+ ],
2144
+ "name": "upgradeTo",
2145
+ "outputs": [],
2146
+ "stateMutability": "nonpayable",
2147
+ "type": "function"
2148
+ },
2149
+ {
2150
+ "inputs": [
2151
+ {
2152
+ "internalType": "address",
2153
+ "name": "newImplementation",
2154
+ "type": "address"
2155
+ },
2156
+ {
2157
+ "internalType": "bytes",
2158
+ "name": "data",
2159
+ "type": "bytes"
2160
+ }
2161
+ ],
2162
+ "name": "upgradeToAndCall",
2163
+ "outputs": [],
2164
+ "stateMutability": "payable",
2165
+ "type": "function"
2166
+ },
2167
+ {
2168
+ "inputs": [
2169
+ {
2170
+ "internalType": "address",
2171
+ "name": "",
2172
+ "type": "address"
2173
+ },
2174
+ {
2175
+ "internalType": "address",
2176
+ "name": "",
2177
+ "type": "address"
2178
+ }
2179
+ ],
2180
+ "name": "userReward",
2181
+ "outputs": [
2182
+ {
2183
+ "internalType": "uint128",
2184
+ "name": "index",
2185
+ "type": "uint128"
2186
+ },
2187
+ {
2188
+ "internalType": "uint128",
2189
+ "name": "accrued",
2190
+ "type": "uint128"
2191
+ }
2192
+ ],
2193
+ "stateMutability": "view",
2194
+ "type": "function"
2195
+ },
2196
+ {
2197
+ "inputs": [],
2198
+ "name": "yieldToken",
2199
+ "outputs": [
2200
+ {
2201
+ "internalType": "address",
2202
+ "name": "",
2203
+ "type": "address"
2204
+ }
2205
+ ],
2206
+ "stateMutability": "view",
2207
+ "type": "function"
2208
+ },
2209
+ {
2210
+ "stateMutability": "payable",
2211
+ "type": "receive"
2212
+ }
2213
+ ],
2214
+ "bytecode": "0x61028080604052346200097b5760808162006c5a80380380916200002482856200099c565b8339810103126200097b576200003a81620009c0565b6200004860208301620009c0565b6200006460606200005c60408601620009c0565b9401620009c0565b92604051620000738162000980565b600e81526d119bdc9d1adb9bde0815985d5b1d60921b90816020820152604051916200009f8362000980565b600e83526020830152604051630b2339af60e21b8152906060826004816001600160a01b038a165afa918215620005725760009262000953575b5060405163313ce56760e01b81526020816004816001600160a01b0387165afa908115620005725760009162000909575b50604051936200011a8562000980565b60018552603160f81b602086015282516001600160401b038111620006bb57600354600181811c91168015620008fe575b6020821014620007de57601f811162000894575b50806020601f82116001146200080b57600091620007ff575b508160011b916000199060031b1c1916176003555b8051906001600160401b038211620006bb5760045490600182811c92168015620007f4575b6020831014620007de5781601f8493116200076c575b50602090601f8311600114620006dd57600092620006d1575b50508160011b916000199060031b1c1916176004555b608052600160f81b60018060f81b036002541617600255602081519101209160208151910120826101005280610120524660c0526040519260008051602062006c3a8339815191526020850152604084015260608301524660808301523060a083015260a082528160c081011060018060401b0360c084011117620006bb5760c082016040528151602083012060a0523060e05260008051602062006c3a8339815191526101405260ff196038541660385560075460ff8160a81c161592838094620006aa575b80156200068e575b156200062e575060ff60a01b198116600160a01b176007558262000615575b506001600160a01b0316610160526007549060a882901c60ff1615620005bc57600680546001600160a01b031916331790556200057e575b50604051630b2339af60e21b81526060816004816001600160a01b0388165afa908115620005725760008091819362000538575b506101a09586526101c09485526001600160a01b039081166101e090815291811661020090815292811661022090815261024094855296166101809081523061026090815260405161621f9890979196909493929091908962000a1b8a3960805189612f4b015260a05189615c37015260c05189615cf2015260e05189615c0801526101005189615c8601526101205189615cac01526101405189615c6301526101605189611aeb0152518881816107a301528181610cac015281816114730152614dce0152518781816103490152818161091701528181610bd9015281816115e1015281816118c3015281816119dc0152818161282e01528181612fc5015281816141f8015281816148d801528181614cc70152818161506e0152818161513601526152cb0152518681816105220152818161201701526148a9015251858181610fff0152818161118c0152818161120d0152818161138201528181611b8001528181611f6201528181613199015281816135ac015281816138b301528181613b21015281816142580152614cf2015251848181610db10152614d4e015251838181611aa701528181614198015281816149380152614d20015251828181611a570152818161204f015261548f0152518181816121ec015281816122e30152612bb50152f35b91505062000562915060603d6060116200056a575b6200055981836200099c565b810190620009d5565b913862000351565b503d6200054d565b6040513d6000823e3d90fd5b60ff60a81b1916600755604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1386200031d565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b61ffff60a01b191661010160a01b1760075538620002e5565b60c060849162461bcd60e51b82820152602060c4820152602e60e48201527f496e697469616c697a61626c653a20636f6e747261637420697320616c7265616101048201526d191e481a5b9a5d1a585b1a5e995960921b61012482015201fd5b50303b158015620002c65750600160ff8360a01c1614620002c6565b50600160ff8360a01c1610620002be565b634e487b7160e01b600052604160045260246000fd5b015190503880620001e1565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000750576001945083601f1981161062000736575b505050811b01600455620001f7565b015160001960f88460031b161c1916905538808062000727565b818101518355602094850194600190930192909101906200070a565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810160208510620007d6575b90849392915b601f830160051c82018110620007c6575050620001c8565b60008155859450600101620007ae565b5080620007a8565b634e487b7160e01b600052602260045260246000fd5b91607f1691620001b2565b90508401513862000178565b600360009081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9250601f198416905b8181106200087b5750908360019493921062000861575b5050811b016003556200018d565b86015160001960f88460031b161c19169055388062000853565b9192602060018192868b0151815501940192016200083c565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410620008f3575b601f0160051c01905b818110620008e657506200015f565b60008155600101620008d7565b9091508190620008ce565b90607f16906200014b565b6020813d6020116200094a575b8162000925602093836200099c565b810103126200094657519060ff82168203620009435750386200010a565b80fd5b5080fd5b3d915062000916565b6200097191925060603d6060116200056a576200055981836200099c565b50509038620000d9565b600080fd5b604081019081106001600160401b03821117620006bb57604052565b601f909101601f19168101906001600160401b03821190821017620006bb57604052565b51906001600160a01b03821682036200097b57565b908160609103126200097b5780516001600160a01b03929083811681036200097b5792602083015181811681036200097b5760409093015190811681036200097b579056fe60406080815260048036101561001f575b5050361561001d57600080fd5b005b600090813560e01c92836306fdde03146117b3578363071bc3c91461312f578363078dfbe714613651578363095ea7b314613620578363105f40291461351e578363128fced11461348e57836318160ddd1461346657836320e8c5651461313b578363213cae631461312f57836323b872dd1461302f5783632b4cb4b7146130065783632ccfdeef14612f6f578363313ce56714612f315783633644e51514612f145783633659cfe614612b8f57836337deed8d146128ff5783633ba0b9a9146127e55783633f4ba83a1461271b5783634c6e8f81146126db5783634e71e0c8146126145783634f1ef286146122a357836352d1902d146121d05783635c975abb146121ac5783635cbadbe4146121375783636925c60514611dd857836370a0823114611d9d578363769f8e5d14611b0f57836376d5de8514611acb578363781c18db14611a87578363784367d614611a7b5783637cf738d214611a375783637ecebe0014611a0057836380f55605146119bc5783638195f6741461186e5783638456cb59146117e75783638da5cb5b146117bf57836395d89b41146117b357836396aba4921461143e578363a40bee5014611366578363a7584e5e146112ff578363a9059cbb14611299578363a9f8d1811461127a578363adb7c3f714611231578363afd27bf5146111ed578363b8f82b2614611165578363c4f59f9b14611134578363cbe52ae314610fd9578363d505accf14610dd5578363d94073d414610d91578363da88ecb414610d60578363dd62ed3e14610d17578363e138b2ee14610cf8578363e30c397814610cd0578363e82cee7914610c8c578363e83ab23c14610b83578363ea64a82014610b22578363eb983ce514610af6578363ebff54391461076c578363ef5cfb8c14610546578363f887ea4014610502578363f8b2f9911461048a578363fa483e72146102f45750505063fa5a4f06146102e7575b3880610010565b6102ef613af6565b6102e0565b34610486576060600319360112610486576044359167ffffffffffffffff90818411610482573660238501121561048257838101359180831161047e576024943686858301011161047a576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168033036104385790879173__$4841977b5e630d8d12d7143ab50b0fe229$__90813b156104345760a486601f19601f8a8d9b8d519e8f998a9889977fbdfa09ab0000000000000000000000000000000000000000000000000000000089528801528d35828801528135604488015260806064880152826084880152018686013788858286010152011681010301915af4801561042a57610407578580f35b84116104195750505281808080808580f35b60418591634e487b7160e01b835252fd5b84513d88823e3d90fd5b8380fd5b606484600a8960208a519362461bcd60e51b85528401528201527f6e6f74206d61726b6574000000000000000000000000000000000000000000006044820152fd5b8680fd5b8580fd5b8480fd5b8280fd5b9050346104fe57816003193601126104fe576104fa90600254906104b460028360f81c1415613e5b565b600160f91b6001600160f81b03809316176002556104d06140b1565b5050600160f81b6104df614698565b92600254161760025551918291602083526020830190613929565b0390f35b5080fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b8290346104fe576020908160031936011261048657916105646138e9565b906002549361057960028660f81c1415613e5b565b600160f91b6001600160f81b038096161760025561059683613fe6565b61059e615464565b906105a98251613f59565b946001600160a01b0393858516815b85518110156106f857866105cc8288613fd2565b51168352603980855285842083855285528584205490608091821c6105f1848d613fd2565b526105fc838c613fd2565b51610612575b505061060d90613f8a565b6105b8565b8861061d848a613fd2565b5116855285528584208385528552858420906fffffffffffffffffffffffffffffffff91828154169055610651838c613fd2565b519082821161047e5789610665858b613fd2565b51168652603b8752828887209216908254901c039182116106e5578a8a6106d7858c6106cf828e6106ca61060d9b9a6106de9a906fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b613fd2565b511693613fd2565b5191615e4e565b908c610602565b60248560118f634e487b7160e01b835252fd5b88846104fa87600160f81b8e877f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f610745610731615464565b610752875192839289845289840190613837565b8281038b8401528b613929565b0390a2600254161760025551928284938452830190613929565b9034610486576101a0600319360112610486576001600160a01b039261079784600654163314613ea6565b61079f6147b0565b93807f000000000000000000000000000000000000000000000000000000000000000016928451917fa76541e50000000000000000000000000000000000000000000000000000000083526107f682840188613b48565b6020926102c490848183818a5afa908115610aec578691610abf575b506101843503610a7e576002906108518851997f03270af4000000000000000000000000000000000000000000000000000000008b52858b0190613b48565b880152610164356102e48801526000196103048801526004356103248801526024356103448801526044356103648801526064356103848801526084356103a488015260a43594856103c489015260c43590816103e48a015260e43591826104048b015261010492833591826104248d0152878c610464816101243597886104448301525afa998a15610a74578b9c8a9b9c98999a9c610a31575b5087519889977f2285db260000000000000000000000000000000000000000000000000000000089527f000000000000000000000000000000000000000000000000000000000000000016908801528b602488015260448701526064860152608485015260a484015260c48301526101443560e48301528173__$4841977b5e630d8d12d7143ab50b0fe229$__5af4928315610a2657926109f6575b50610991614d81565b83516004358152602435602082015260443560408201526064356060820152608435608082015260a0810184905260c081018390527f43950417e0eb7225b8f42332a069bc35fbdf65f3d90c124210b3d3aefc3d6a409060e090a18351928352820152f35b610a17919250843d8611610a1f575b610a0f8183613a16565b810190614700565b509084610988565b503d610a05565b8551903d90823e3d90fd5b8a80929d508193949596979899503d8311610a6d575b610a518183613a16565b81010312610a6957908b969594939291519a8d6108ec565b8980fd5b503d610a47565b8b513d8b823e3d90fd5b60648385808a519262461bcd60e51b845283015260248201527f72656d6f76654c6971546f59743a2062696e20737461746520657870697265646044820152fd5b90508481813d8311610ae5575b610ad68183613a16565b8101031261047e575189610812565b503d610acc565b88513d88823e3d90fd5b9050346104fe57816003193601126104fe576102c090610b20610b176147b0565b91518092613b48565bf35b9050346104fe5760206003193601126104fe57806104fa926001600160a01b03610b4a6138e9565b168152603b60209081529190205491516fffffffffffffffffffffffffffffffff8316815260809290921c908201529081906040820190565b34610486576020610b933661395d565b93610baa6001600160a01b03600654163314613ea6565b610c1a845195869384937f448b96190000000000000000000000000000000000000000000000000000000085527f00000000000000000000000000000000000000000000000000000000000000009085016040919493926001600160a01b03606083019616825260208201520152565b038173__$4841977b5e630d8d12d7143ab50b0fe229$__5af4918215610c82578392610c4b575b6020838351908152f35b9091506020813d8211610c7a575b81610c6660209383613a16565b810103126104865760209250519083610c41565b3d9150610c59565b81513d85823e3d90fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe57816003193601126104fe576020906001600160a01b03600754169051908152f35b9050346104fe57816003193601126104fe576020906042549051908152f35b9050346104fe57806003193601126104fe5780602092610d356138e9565b610d3d6138ff565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b9050346104fe57816003193601126104fe576104fa90610d7e614698565b9051918291602083526020830190613929565b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9250346104fe5760e06003193601126104fe57610df06138e9565b610df86138ff565b90604435926064356084359060ff8216820361047a57804211610f96576001600160a01b03908185169283895260056020528989208054906001820190558a519260208401917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98352868d860152858a1660608601528a608086015260a085015260c084015260c0835260e083019267ffffffffffffffff9381811085821117610f83578c5251902090610eaa615bfe565b928b519260208401947f190100000000000000000000000000000000000000000000000000000000000086526022850152604284015260428352608083019083821090821117610f705791610f189391610f10938d5260c4359260a43592519020615b49565b9190916159a5565b1603610f2d5750610f2a939450615871565b80f35b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b60248b604189634e487b7160e01b835252fd5b60248c60418a634e487b7160e01b835252fd5b60648360208a519162461bcd60e51b8352820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152fd5b90346104865781600319360112610486576001600160a01b0380610ffb6138e9565b16907f000000000000000000000000000000000000000000000000000000000000000016810361110757506020611030614cb9565b61103861486b565b9261106d855194859384937fb1ef9e500000000000000000000000000000000000000000000000000000000085528401614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af49283156110fc5780936110bf575b6020836110b86110a660243588615096565b6001600160f81b0360025416906150a9565b9051908152f35b9092506020833d82116110f4575b816110da60209383613a16565b810103126110f157509051906110b86110a6611094565b80fd5b3d91506110cd565b8251903d90823e3d90fd5b60249251917f88a50561000000000000000000000000000000000000000000000000000000008352820152fd5b9050346104fe57816003193601126104fe576104fa90611152615464565b9051918291602083526020830190613837565b91346110f157826003193601126110f157506001600160a01b03806111886138e9565b16907f00000000000000000000000000000000000000000000000000000000000000001681036111c0576020836110b860243561525f565b60249251917faeabe718000000000000000000000000000000000000000000000000000000008352820152fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe57816003193601126104fe5760c090603c5490603d5490603e54603f549082549260415494815196875260208701528501526060840152608083015260a0820152f35b9050346104fe57816003193601126104fe57602090603a549051908152f35b9050346104fe57806003193601126104fe57602090600160f81b6112bb6138e9565b6112f0600254916112d260028460f81c1415613e5b565b600160f91b6001600160f81b038094161760025560243590336154b3565b60025416176002555160018152f35b82346110f15760c06003193601126110f1576113276001600160a01b03600654163314613ea6565b610f2a61133336613a39565b60a0908051603c556020810151603d556040810151603e556060810151603f556080810151604055015180604155604255565b8290346104fe57816003193601126104fe576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926020825180927f313ce56700000000000000000000000000000000000000000000000000000000825281875afa9081156114325783916113f6575b5060ff90606094835194855260208501521690820152f35b90506020813d821161142a575b8161141060209383613a16565b81010312610486575160ff811681036104865760606113de565b3d9150611403565b505051903d90823e3d90fd5b3461048657610100600319360112610486576001600160a01b039061146882600654163314613ea6565b6114706147b0565b917f000000000000000000000000000000000000000000000000000000000000000016916114c68251917fa76541e500000000000000000000000000000000000000000000000000000000835285830190613b48565b6020926102c49184818481855afa9081156117a957879161177c575b5060e435036117395761153161046485926114fb6147b0565b906001875196879586947f03270af40000000000000000000000000000000000000000000000000000000086528c860190613b48565b83015260c4356102e48301526000196103048301526004356103248301526024356103448301526044356103648301526064356103848301526084356103a48301526004356103c48301526024356103e48301526044356104048301526064356104248301526084356104448301525afa92831561172f5785936116fd575b505080517f3525e03f0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169381019384526020840183905260a435604085015291928190839081906060015b038173__$4841977b5e630d8d12d7143ab50b0fe229$__5af49182156116f35784926116cd575b50906104fa91611657614d81565b80516004358152602435602082015260443560408201526064356060820152608435608082015260a0810183905260c081018690527fba4064507fa740cdd61480d0c0ce70e6b4e0f349dda4cd52184466a3c19936439060e090a151938493846040919493926060820195825260208201520152565b816116ea9295506104fa93503d8611610a1f57610a0f8183613a16565b93909391611649565b81513d86823e3d90fd5b90809350813d8311611728575b6117148183613a16565b8101031261043457806116229251926115b0565b503d61170a565b82513d87823e3d90fd5b505060649350519162461bcd60e51b8352820152601f60248201527f6164644c697146726f6d59743a2062696e2073746174652065787069726564006044820152fd5b90508481813d83116117a2575b6117938183613a16565b8101031261047a5751876114e2565b503d611789565b84513d89823e3d90fd5b505050506102ef6137d3565b9050346104fe57816003193601126104fe576020906001600160a01b03600654169051908152f35b9050346104fe57816003193601126104fe5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258916118336001600160a01b03600654163314613ea6565b61183b613ef1565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00603854161760385551338152a180f35b9250346104fe5760606003193601126104fe5780356001600160a01b039161189b83600654163314613ea6565b8451927fee723a8d0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169083015280602483015260243560448301526044356064830152838260848173__$4841977b5e630d8d12d7143ab50b0fe229$__5af49182156119b257839261196d575b50835190815260208101839052604081018290527f48f22f4bc9aee5b703ec4521f5f611eb37d722e592a0545e957f00ce8e9bd3ec90606090a182519182526020820152f35b7f48f22f4bc9aee5b703ec4521f5f611eb37d722e592a0545e957f00ce8e9bd3ec93506119a8919250843d8611610a1f57610a0f8183613a16565b9092509082611927565b84513d85823e3d90fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe5760206003193601126104fe57806020926001600160a01b03611a276138e9565b1681526005845220549051908152f35b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b505050506102ef613af6565b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b8290346104fe5760a06003193601126104fe57611b2a6138e9565b90602435936044356001600160a01b039081811680910361047e5760643596608435928315158403611d9957600294855494611b6b878760f81c1415613e5b565b600160f91b6001600160f81b038097161787557f0000000000000000000000000000000000000000000000000000000000000000908382168603611d6a578415611d425715611d3357611bbe84306156ce565b611bc6614cb9565b99611bcf61486b565b8951907fb1ef9e50000000000000000000000000000000000000000000000000000000008252818060209e8f9388830191611c0992614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af4918215611d2857918691838d96959492611ce9575b5050611c4a611c659392611c5d92615096565b611c57888b8d54166140a4565b906150a9565b9a8b91615e4e565b8a8910611cb4575090600160f81b949392918751928352888a84015216907faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c873392a482541617905551908152f35b6044908b8a8a51927fbfee4ca00000000000000000000000000000000000000000000000000000000084528301526024820152fd5b925080939495508d8092503d8311611d21575b611d068183613a16565b810103126110f1575051899291908590611c4a611c65611c37565b503d611cfc565b8a51903d90823e3d90fd5b611d3d84336156ce565b611bbe565b8289517fc3d83b07000000000000000000000000000000000000000000000000000000008152fd5b602483878b51917f88a50561000000000000000000000000000000000000000000000000000000008352820152fd5b8780fd5b9050346104fe5760206003193601126104fe576020906110b8611dbe6138e9565b6001600160a01b0316600052600060205260406000205490565b8290346104fe576003199281843601126104865780359367ffffffffffffffff908186116104825760c0818736030112610482576001600160a01b0392611e2484600654163314613ea6565b845192611e3084613973565b611e3b888301613915565b845260209788850193602494858301358152611e5960448401613915565b90898801918252611e6c60648501613915565b9260608901938452611e8060848601613915565b9460808a0195865260a481013590878211612121579060809101918236030112612119578a51956080870187811082821117612125578c5287820135888110156121215787528d611ed28a8401613915565b90880152604482013590811161211d5790611ef4606492893691840101613aaf565b8c88015201358015158103612119579289869593819593828f8f9c9b9a8e839860608593015260a081019b8c52600019855114612106575b5116612100575081519b5b517f443e6512000000000000000000000000000000000000000000000000000000008152308b8201527f000000000000000000000000000000000000000000000000000000000000000082168c8201528b356044820152608060648201529c511660848d01525160a48c0152511660c48a0152511660e488015251166101048601525160c0610124860152805190929091808310156120ef57505091838080938a9561014483015287868201511661016483015260606120078a83015160806101848601526101c4850190613793565b91015115156101a48301520391867f0000000000000000000000000000000000000000000000000000000000000000165af19384156120e45780946120b0575b5050612082907f0000000000000000000000000000000000000000000000000000000000000000906006541661207c82615f10565b91615e4e565b7f52709ca3666ff5bd61f9d9d26f0dbdadd947fdadf265f3141227189da7d48463838251848152a151908152f35b909193508482813d83116120dd575b6120c98183613a16565b810103126110f15750519161208285612047565b503d6120bf565b8351903d90823e3d90fd5b60218991634e487b7160e01b835252fd5b9b611f37565b61211282825116615f10565b8552611f2c565b8b80fd5b8c80fd5b8d80fd5b898e60418b634e487b7160e01b835252fd5b9050346104fe57806003193601126104fe57806104fa926121566138e9565b61215e6138ff565b6001600160a01b0391821683526039602090815284842091909216835281529190205491516fffffffffffffffffffffffffffffffff8316815260809290921c908201529081906040820190565b9050346104fe57816003193601126104fe5760209060ff6038541690519015158152f35b91346110f157806003193601126110f157506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361223b57602082517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b80600319360112610486576122b66138e9565b9060243567ffffffffffffffff8111610482576122d69036908501613aaf565b906001600160a01b0391827f0000000000000000000000000000000000000000000000000000000000000000169261231084301415613c40565b61233f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc948286541614613cb1565b61234e81600654163314613ea6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156123865750505050610f2a9150613d22565b8491929394168351947f52d1902d00000000000000000000000000000000000000000000000000000000865260209586818981865afa8991816125e5575b50612431576084888888519162461bcd60e51b8352820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152fd5b969294969593950361257d5761244684613d22565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8780a2835115801590612575575b612482575b505050505080f35b84519461248e866139a5565b602786527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c838701527f206661696c65640000000000000000000000000000000000000000000000000081870152833b1561250e57505082859283926125039695519201905af46124fd613de7565b90613e17565b50818080808061247a565b91608492519162461bcd60e51b8352820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152fd5b506001612475565b5060849185519162461bcd60e51b8352820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b9091508781813d831161260d575b6125fd8183613a16565b81010312610a695751908a6123c4565b503d6125f3565b34610486578260031936011261048657600754906001600160a01b039283831691823303612698575050806006549384167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a37fffffffffffffffffffffffff0000000000000000000000000000000000000000809316176006551660075580f35b906020606492519162461bcd60e51b8352820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b9050346104fe576003193601126110f157610f2a6126f76138e9565b6126ff6138ff565b906127166001600160a01b03600654163314613ea6565b615f96565b90346104865782600319360112610486576127426001600160a01b03600654163314613ea6565b6038549060ff8216156127a257507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006020921660385551338152a180f35b606490602084519162461bcd60e51b8352820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b82346110f157806003193601126110f1576128556020612803614cb9565b8451809381927fe2102e670000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000898401614e8b565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af49081156128f55782916128c4575b506001600160f81b036002541691670de0b6b3a7640000918281029281840414901517156128b1576020846110b885856150a9565b80601186634e487b7160e01b6024945252fd5b90506020813d82116128ed575b816128de60209383613a16565b810103126104fe57518461287c565b3d91506128d1565b83513d84823e3d90fd5b90346104865760c06003193601126104865761291a36613a39565b6007549060ff8260a81c161591828093612b7f575b8015612b65575b15612afc57908183740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6129b7951617600755612ab9575b5060a0908051603c556020810151603d556040810151603e556060810151603f556080810151604055015180604155604255565b6007549160ff8360a81c1615612a505750337fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006556129fa578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff602092166007555160018152a181808280f35b608490602085519162461bcd60e51b8352820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff1675010100000000000000000000000000000000000000001760075586612983565b608484602087519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156129365750600160ff8260a01c1614612936565b50600160ff8260a01c161061292f565b346104865760208060031936011261043457612ba96138e9565b916001600160a01b03807f000000000000000000000000000000000000000000000000000000000000000016612be181301415613c40565b612c107f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc918383541614613cb1565b612c1f82600654163314613ea6565b8251908482019282841067ffffffffffffffff851117612f01578385528883527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612c7957505050505050610f2a9150613d22565b86949596169085517f52d1902d00000000000000000000000000000000000000000000000000000000815287818a81865afa8a9181612ece575b50612d20576084898989519162461bcd60e51b8352820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152fd5b979395979692949603612e6657612d3686613d22565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8880a2825115801590612e5f575b612d73575b50505050505080f35b855195612d7f876139a5565b602787527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c828801527f206661696c65640000000000000000000000000000000000000000000000000081880152853b15612df857505050612dec93928592839251915af46124fd613de7565b50818080808080612d6a565b60849350519162461bcd60e51b8352820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152fd5b5086612d65565b6084838389519162461bcd60e51b8352820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b9091508881813d8311612efa575b612ee68183613a16565b81010312612ef65751908b612cb3565b8a80fd5b503d612edc565b60248960418a634e487b7160e01b835252fd5b9050346104fe57816003193601126104fe576020906110b8615bfe565b9050346104fe57816003193601126104fe576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610486576020612f7f3661395d565b93612f966001600160a01b03600654163314613ea6565b610c1a845195869384937f57e7540a0000000000000000000000000000000000000000000000000000000085527f00000000000000000000000000000000000000000000000000000000000000009085016040919493926001600160a01b03606083019616825260208201520152565b903461048657602060031936011261048657359182151583036110f157506110b8602092614f8d565b9250346104fe5760606003193601126104fe5761304a6138e9565b6130526138ff565b9060443592856002549561306c60028860f81c1415613e5b565b600160f91b6001600160f81b03809816176002556001600160a01b0384168152600160205281812033825260205220549060001982036130bb575b602087600160f81b886112f08989896154b3565b8482106130ec57509260209594926112f0926130df83600160f81b97033383615871565b92509294958194506130a7565b606490602088519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b505050506102ef613874565b829060806003193601126104fe576131516138e9565b9161315a6138ff565b6044359360643594600293845497613177868a60f81c1415613e5b565b600160f91b6001600160f81b03809a161786556001600160a01b0380951694807f000000000000000000000000000000000000000000000000000000000000000016860361343757831561340f578561339657833403613353575b6131db846150c9565b98808a1061331e575084169384156132db576131fe906131f9613ef1565b613fe6565b8888116104fe578554908989168a831601908a82116132c85750938092600160f81b9694927fff000000000000000000000000000000000000000000000000000000000000008c60209d98169116178855818152808b528881206132638b82546140a4565b90557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b8a518c8152a3865190815287898201527f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59873392a482541617905551908152f35b836011602492634e487b7160e01b835252fd5b60648260208a519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b826044918b8b51927fbc71f2ba0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b60648260208a519162461bcd60e51b8352820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b87517f23b872dd0000000000000000000000000000000000000000000000000000000060208201523360248201523060448201528460648201526064815260a0810181811067ffffffffffffffff8211176133fc5789526133f79087615d18565b6131d2565b602485604186634e487b7160e01b835252fd5b5086517fa907f2f0000000000000000000000000000000000000000000000000000000008152fd5b602482878a51917faeabe718000000000000000000000000000000000000000000000000000000008352820152fd5b9050346104fe57816003193601126104fe576020906001600160f81b03600254169051908152f35b82346110f157602091826003193601126104fe576134aa6138e9565b916134b3615464565b926134be8451613f59565b946001600160a01b0391821691835b865181101561350c5780826134e46001938a613fd2565b511686526039845286862085875284528686205460801c613505828b613fd2565b52016134cd565b8551838152806104fa8186018b613929565b90346104865782600319360112610486576020613539614cb9565b61354161486b565b92613576855194859384937fb1ef9e500000000000000000000000000000000000000000000000000000000085528401614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af49283156110fc5780936135e7575b6020836110b8866135e26135d07f0000000000000000000000000000000000000000000000000000000000000000615f10565b6001600160f81b036002541690615096565b6150a9565b9092506020833d8211613618575b8161360260209383613a16565b810103126110f157506110b8602092519261359d565b3d91506135f5565b9050346104fe57806003193601126104fe5760209061364a6136406138e9565b6024359033615871565b5160018152f35b346104865760606003193601126104865761366a6138e9565b916024359182151583036104825760443592831515840361047e576001600160a01b0394859161369f83600654163314613ea6565b15613761571692831590811591613759575b5015613716575050806006549283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a37fffffffffffffffffffffffff0000000000000000000000000000000000000000809216176006556007541660075580f35b906020606492519162461bcd60e51b8352820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b9050866136b1565b9350505050167fffffffffffffffffffffffff0000000000000000000000000000000000000000600754161760075580f35b919082519283825260005b8481106137bf575050601f19601f8460006020809697860101520116010190565b60208183018101518483018201520161379e565b5034613832576000600319360112613832576104fa6040516137f4816139de565b600e81527f466f72746b6e6f78205661756c740000000000000000000000000000000000006020820152604051918291602083526020830190613793565b600080fd5b90815180825260208080930193019160005b828110613857575050505090565b83516001600160a01b031685529381019392810192600101613849565b5034613832576000600319360112613832576104fa604051613895816139de565b60018152602036818301376138a981613faf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169052604051918291602083526020830190613837565b600435906001600160a01b038216820361383257565b602435906001600160a01b038216820361383257565b35906001600160a01b038216820361383257565b90815180825260208080930193019160005b828110613949575050505090565b83518552938101939281019260010161393b565b6003196040910112613832576004359060243590565b60c0810190811067ffffffffffffffff82111761398f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761398f57604052565b610120810190811067ffffffffffffffff82111761398f57604052565b6040810190811067ffffffffffffffff82111761398f57604052565b6080810190811067ffffffffffffffff82111761398f57604052565b90601f601f19910116810190811067ffffffffffffffff82111761398f57604052565b60031960c0910112613832576040519060c0820182811067ffffffffffffffff82111761398f57604052816004358152602435602082015260443560408201526064356060820152608435608082015260a060a435910152565b67ffffffffffffffff811161398f57601f01601f191660200190565b81601f8201121561383257803590613ac682613a93565b92613ad46040519485613a16565b8284526020838301011161383257816000926020809301838601378301015290565b5034613832576020600319360112613832576020613b126138e9565b604051906001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b60a060406102a092613b8385825160808091805184526020810151602085015260408101516040850152606081015160608501520151910152565b816020820151613bf085880182518051825260208101516020830152604081015160408301526001600160a01b0360608201511660608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60208101516101c088015201516101e08601520151805161020085015260208101516102208501526040810151610240850152606081015161026085015260808101516102808501520151910152565b15613c4757565b608460405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b15613cb857565b608460405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b803b15613d7d576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b608460405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b3d15613e12573d90613df882613a93565b91613e066040519384613a16565b82523d6000602084013e565b606090565b90919015613e23575090565b815115613e335750805190602001fd5b613e579060405191829162461bcd60e51b8352602060048401526024830190613793565b0390fd5b15613e6257565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b15613ead57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60ff60385416613efd57565b606460405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b67ffffffffffffffff811161398f5760051b60200190565b90613f6382613f41565b613f706040519182613a16565b828152601f19613f808294613f41565b0190602036910137565b6000198114613f995760010190565b634e487b7160e01b600052601160045260246000fd5b805115613fbc5760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015613fbc5760209160051b010190565b613fee6140b1565b9080511561402a576001600160a01b038316801515908161401f575b5061401457505050565b61401d92614498565b565b90503014153861400a565b505050565b6140376140b1565b91815115614091576001600160a01b039083838383168015159081614086575b50614075575b5050508316801515908161401f575061401457505050565b61407e92614498565b38838361405d565b905030141538614057565b50505050565b91908203918211613f9957565b91908201809211613f9957565b6140b9615464565b906140c48251613f59565b82511561449557603a544303614132575b6000805b845181101561412d57806001600160a01b036140f86141289388613fd2565b51168352603b6020526fffffffffffffffffffffffffffffffff6040842054166141228286613fd2565b52613f8a565b6140d9565b505090565b43603a556001600160f81b03600254166040908151907f7d24da4d0000000000000000000000000000000000000000000000000000000082526004308184015260019360249185838601528560448601526000916001600160a01b03958381606481838b7f0000000000000000000000000000000000000000000000000000000000000000165af1801561442f57614453575b5080517f9262187b000000000000000000000000000000000000000000000000000000008152308382015283818681838b7f0000000000000000000000000000000000000000000000000000000000000000165af1801561442f57614439575b5080517fef5cfb8c000000000000000000000000000000000000000000000000000000008152308382015283818681838b7f0000000000000000000000000000000000000000000000000000000000000000165af1801561442f5761440d575b50869583861515985b6142a1575b5050505050505050506140d5565b8b518110156144085782898d8a6142d0866142c987826142c18288613fd2565b511695613fd2565b5116615f10565b91808a52603b906020908282526142f0878d205495608096871c90614097565b95818d528383528c6fffffffffffffffffffffffffffffffff988991205416948515614400575b506143ba575b868411612119578b525283878a2091166fffffffffffffffffffffffffffffffff19825416179055828211611d9957828689209216908254901c019182116143a8579161439c6143a1928b9594906fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b613f8a565b909161428e565b8787601188634e487b7160e01b835252fd5b92670de0b6b3a76400008087029087820414871517156143ee57906143e28f6143e8936150a9565b906140a4565b9261431d565b8d8d60118e634e487b7160e01b835252fd5b94508f614317565b614293565b614428903d8086833e6144208183613a16565b81019061543e565b5038614285565b82513d86823e3d90fd5b61444c903d8086833e6144208183613a16565b5038614225565b3d8085833e6144628183613a16565b81019082818303126104825760208101519067ffffffffffffffff821161047e5761448e9291016153e0565b50386141c5565b90565b909291926001600160a01b03808316928315158061468e575b15614678576144d4906001600160a01b0316600052600060205260406000205490565b9160005b815181101561466f57826144ec8284613fd2565b5116906144f98189613fd2565b51826000526039906020908282526040806000208a60005283526fffffffffffffffffffffffffffffffff9182826000205416801561462d5781811461461d57670de0b6b3a76400006145586145526145779385614097565b8d615096565b0488600052868652836000208d6000528652836000205460801c6140a4565b9183821161383257838311613832578051948186019686881067ffffffffffffffff89111761398f576146189986809561439c9a86521688528483890196168652600052815281600020908d600052526000209351166fffffffffffffffffffffffffffffffff1984541617835551166fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b6144d8565b5050505050506146189150613f8a565b5093828594929394116138325761461896600052815281600020908a6000525260002091166fffffffffffffffffffffffffffffffff19825416179055613f8a565b50505050509050565b634e487b7160e01b600052600160045260246000fd5b50308414156144b1565b6146a0615464565b906146ab8251613f59565b91600090815b815181101561402a57806001600160a01b036146cf60019385613fd2565b51168452603b6020526fffffffffffffffffffffffffffffffff6040852054166146f98288613fd2565b52016146b1565b9190826040910312613832576020825192015190565b6040519060a0820182811067ffffffffffffffff82111761398f5760405260006080838281528260208201528260408201528260608201520152565b6040519061475f826139a5565b81604080519161476e836139c1565b60009283815283602082015283838201528360608201528360808201528360a08201528360c08201528360e08201528361010082015281528260208201520152565b6040908151916147bf836139a5565b6147c7614716565b8352602083016147d5614752565b81528184019082516147e681613973565b6000808252806020830152808583015280606083015280608083015260a0820152825284614812614cb9565b905261481c61486b565b905281519161482a83613973565b603c548352603d546020840152603e5481840152603f54606084015254608083015260415460a083015252565b51906001600160a01b038216820361383257565b614873614752565b90604080517f794052f30000000000000000000000000000000000000000000000000000000081526001600160a01b03600491817f000000000000000000000000000000000000000000000000000000000000000016838201526101208082602481867f0000000000000000000000000000000000000000000000000000000000000000165afa908115614c9657600091614c05575b5086525082517fafd27bf5000000000000000000000000000000000000000000000000000000008152602092907f000000000000000000000000000000000000000000000000000000000000000083169084818481855afa908115614bfa57600091614bc5575b508551927fd2a3584e00000000000000000000000000000000000000000000000000000000845285848281865afa938415614bba57600094614b8b575b5086517f516399df00000000000000000000000000000000000000000000000000000000815260009387828481845afa918215614b81579088949392918692614b52575b5081614a9e575b5015614a1057505050509050905b8401524290830152565b8751809681937f3ba0b9a9000000000000000000000000000000000000000000000000000000008352165afa928315614a92578193614a63575b505080821115614a5c57505b90614a06565b9050614a56565b9092508381813d8311614a8b575b614a7b8183613a16565b8101031261048657519138614a4a565b503d614a71565b508451903d90823e3d90fd5b82939491508951928380927f60e0a9e10000000000000000000000000000000000000000000000000000000082525afa908115614b485790879392918591614afc575b506fffffffffffffffffffffffffffffffff164314386149f8565b848193949592503d8311614b41575b614b158183613a16565b8101031261043457516fffffffffffffffffffffffffffffffff81168103610434579086929138614ae1565b503d614b0b565b88513d86823e3d90fd5b614b73919250853d8711614b7a575b614b6b8183613a16565b810190614ca1565b90386149f1565b503d614b61565b89513d87823e3d90fd5b90938682813d8311614bb3575b614ba28183613a16565b810103126110f157505192386149ad565b503d614b98565b87513d6000823e3d90fd5b908582813d8311614bf3575b614bdb8183613a16565b810103126110f15750614bed90614857565b38614970565b503d614bd1565b86513d6000823e3d90fd5b82813d8311614c8f575b614c198183613a16565b810103126110f15750835190614c2e826139c1565b80518252602081015160208301528481015185830152614c5060608201614857565b60608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151908201528038614909565b503d614c0f565b85513d6000823e3d90fd5b90816020910312613832575180151581036138325790565b614cc1614716565b90614ceb7f0000000000000000000000000000000000000000000000000000000000000000615f10565b8252614d167f0000000000000000000000000000000000000000000000000000000000000000615f10565b6060830152614d447f0000000000000000000000000000000000000000000000000000000000000000615f10565b6020830152614d727f0000000000000000000000000000000000000000000000000000000000000000615f10565b60408301526042546080830152565b614d896147b0565b614dbd604051917fa76541e50000000000000000000000000000000000000000000000000000000083526004830190613b48565b6020816102c4816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115614e7f57600091614e4e575b506042547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116138325760008282019283129112908015821691151617613f99576000811261383257604255565b906020823d8211614e77575b81614e6760209383613a16565b810103126110f157505138614dff565b3d9150614e5a565b6040513d6000823e3d90fd5b91602061401d9294936001600160a01b0360c0820196168152019060808091805184526020810151602085015260408101516040850152606081015160608501520151910152565b90929160406101e091614f138461020081019760808091805184526020810151602085015260408101516040850152606081015160608501520151910152565b614f7b60a0850182518051825260208101516020830152604081015160408301526001600160a01b0360608201511660608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60208101516101c08501520151910152565b1561503557614fdc6020614f9f614cb9565b614fa761486b565b9060405193849283927fb1ef9e5000000000000000000000000000000000000000000000000000000000845260048401614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af4908115614e7f57600091615007575090565b906020823d821161502d575b8161502060209383613a16565b810103126110f157505190565b3d9150615013565b614fdc6020615042614cb9565b604051809381927fe2102e670000000000000000000000000000000000000000000000000000000083527f000000000000000000000000000000000000000000000000000000000000000060048401614e8b565b81810292918115918404141715613f9957565b81156150b3570490565b634e487b7160e01b600052601260045260246000fd5b6150d1614cb9565b906150da61486b565b6001600160f81b03928360025416156152585773__$a7098bf20e819a81ac73f4e6e6693165f6$__91604051927fe2102e6700000000000000000000000000000000000000000000000000000000845260209283858061515e847f000000000000000000000000000000000000000000000000000000000000000060048401614e8b565b0381855af4948515614e7f57600095615229575b509183916151af936040518095819482937fb1ef9e5000000000000000000000000000000000000000000000000000000000845260048401614ed3565b03915af4918215614e7f576000926151f6575b5050916151e8611c579261449595948082116000146151ee5750935b6002541682615096565b92614097565b9050936151de565b81819392933d8311615222575b61520d8183613a16565b810103126110f15750516151e8611c576151c2565b503d615203565b90948482813d8311615251575b6152408183613a16565b810103126110f15750519383615172565b503d615236565b5050905090565b6001600160f81b036002541680156153dc57615279614cb9565b61528161486b565b9073__$a7098bf20e819a81ac73f4e6e6693165f6$__91604051927fe2102e670000000000000000000000000000000000000000000000000000000084526020928385806152f3847f000000000000000000000000000000000000000000000000000000000000000060048401614e8b565b0381855af4948515614e7f576000956153ad575b50918391615344936040518095819482937fb1ef9e5000000000000000000000000000000000000000000000000000000000845260048401614ed3565b03915af4918215614e7f5760009261537c575b5050916135e2916144959493808211600014615374575092615096565b905092615096565b81819392933d83116153a6575b6153938183613a16565b810103126110f157505181614495615357565b503d615389565b90948482813d83116153d5575b6153c48183613a16565b810103126110f15750519383615307565b503d6153ba565b5090565b81601f82011215613832578051916153f783613f41565b926154056040519485613a16565b808452602092838086019260051b820101928311613832578301905b82821061542f575050505090565b81518152908301908301615421565b9060208282031261383257815167ffffffffffffffff81116138325761449592016153e0565b60405190615471826139de565b600182526020368184013761548582613faf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169052565b90916001600160a01b03918281169283156156645784169384156155fa578484146155b6576154e9916154e4613ef1565b61402f565b60008281528060205260408120549180831061554c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206155418282546140a4565b9055604051908152a3565b608460405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b606460405162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e7366657220746f2073656c660000000000000000006044820152fd5b608460405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b6001600160a01b038116908115615807576156eb906131f9613ef1565b60009181835282602052604083205481811061579d578190838552846020520360408420556001600160f81b0380821161043457600254908083168183160381811161578957917fff000000000000000000000000000000000000000000000000000000000000007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef949260209416911617600255604051908152a3565b602486634e487b7160e01b81526011600452fd5b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b6001600160a01b0380911691821561593c57169182156158d25760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b6005811015615b3357806159b65750565b60018103615a0257606460405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103615a4e57606460405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b60038103615ac057608460405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b600414615ac957565b608460405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311615bf25760ff16601b81141580615be7575b615bdb579160809493916020936040519384528484015260408301526060820152600093849182805260015afa15615bce5781516001600160a01b03811615615bc8579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600490565b50601c811415615b81565b50505050600090600390565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480615cef575b15615c59577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f000000000000000000000000000000000000000000000000000000000000000082527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152615ce981613973565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614615c30565b6001600160a01b03169060405190615d2f826139de565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b15615e0a5760008281928287615d7b9796519301915af16124fd613de7565b80519081615d8857505050565b8280615d98938301019101614ca1565b15615da05750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6064846040519062461bcd60e51b82526004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b821561402a576001600160a01b039081169081615ec4575050600080809381935af1615e78613de7565b5015615e8057565b606460405162461bcd60e51b815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b9261401d93604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252615f0b826139fa565b615d18565b6000906001600160a01b031680615f275750504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215615f8a578092615f7057505090565b9091506020823d821161502d578161502060209383613a16565b604051903d90823e3d90fd5b906001600160a01b0391828116908115614091576040918251809581957fdd62ed3e0000000000000000000000000000000000000000000000000000000083523060048401521691826024830152602096879160449788915afa80156161de576000906161a5575b6b7fffffffffffffffffffffff91501061601a575b5050505050565b8251906000808784017f095ea7b30000000000000000000000000000000000000000000000000000000094858252846024820152828982015288815261605f816139fa565b519082875af161606d613de7565b81616175575b50156161335791600092918380938651908982019384526024820152600019888201528781526160a2816139fa565b51925af16160ae613de7565b81616103575b50156160c1578080616013565b606492917f5361666520417070726f7665000000000000000000000000000000000000000091519262461bcd60e51b84526004840152600c6024840152820152fd5b8051801592508590831561611b575b505050386160b4565b61612b9350820181019101614ca1565b388481616112565b6064867f5361666520417070726f766500000000000000000000000000000000000000008787519262461bcd60e51b84526004840152600c6024840152820152fd5b8051801592508890831561618d575b50505038616073565b61619d9350820181019101614ca1565b388781616184565b8682813d83116161d7575b6161ba8183613a16565b810103126110f157506b7fffffffffffffffffffffff9051615ffe565b503d6161b0565b84513d6000823e3d90fdfea264697066735822122075dab21fce305f6f672441b100304e8710d3917c34d0e0299e558ea451d2fef864736f6c634300081100338b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
2215
+ "deployedBytecode": "0x60406080815260048036101561001f575b5050361561001d57600080fd5b005b600090813560e01c92836306fdde03146117b3578363071bc3c91461312f578363078dfbe714613651578363095ea7b314613620578363105f40291461351e578363128fced11461348e57836318160ddd1461346657836320e8c5651461313b578363213cae631461312f57836323b872dd1461302f5783632b4cb4b7146130065783632ccfdeef14612f6f578363313ce56714612f315783633644e51514612f145783633659cfe614612b8f57836337deed8d146128ff5783633ba0b9a9146127e55783633f4ba83a1461271b5783634c6e8f81146126db5783634e71e0c8146126145783634f1ef286146122a357836352d1902d146121d05783635c975abb146121ac5783635cbadbe4146121375783636925c60514611dd857836370a0823114611d9d578363769f8e5d14611b0f57836376d5de8514611acb578363781c18db14611a87578363784367d614611a7b5783637cf738d214611a375783637ecebe0014611a0057836380f55605146119bc5783638195f6741461186e5783638456cb59146117e75783638da5cb5b146117bf57836395d89b41146117b357836396aba4921461143e578363a40bee5014611366578363a7584e5e146112ff578363a9059cbb14611299578363a9f8d1811461127a578363adb7c3f714611231578363afd27bf5146111ed578363b8f82b2614611165578363c4f59f9b14611134578363cbe52ae314610fd9578363d505accf14610dd5578363d94073d414610d91578363da88ecb414610d60578363dd62ed3e14610d17578363e138b2ee14610cf8578363e30c397814610cd0578363e82cee7914610c8c578363e83ab23c14610b83578363ea64a82014610b22578363eb983ce514610af6578363ebff54391461076c578363ef5cfb8c14610546578363f887ea4014610502578363f8b2f9911461048a578363fa483e72146102f45750505063fa5a4f06146102e7575b3880610010565b6102ef613af6565b6102e0565b34610486576060600319360112610486576044359167ffffffffffffffff90818411610482573660238501121561048257838101359180831161047e576024943686858301011161047a576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168033036104385790879173__$4841977b5e630d8d12d7143ab50b0fe229$__90813b156104345760a486601f19601f8a8d9b8d519e8f998a9889977fbdfa09ab0000000000000000000000000000000000000000000000000000000089528801528d35828801528135604488015260806064880152826084880152018686013788858286010152011681010301915af4801561042a57610407578580f35b84116104195750505281808080808580f35b60418591634e487b7160e01b835252fd5b84513d88823e3d90fd5b8380fd5b606484600a8960208a519362461bcd60e51b85528401528201527f6e6f74206d61726b6574000000000000000000000000000000000000000000006044820152fd5b8680fd5b8580fd5b8480fd5b8280fd5b9050346104fe57816003193601126104fe576104fa90600254906104b460028360f81c1415613e5b565b600160f91b6001600160f81b03809316176002556104d06140b1565b5050600160f81b6104df614698565b92600254161760025551918291602083526020830190613929565b0390f35b5080fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b8290346104fe576020908160031936011261048657916105646138e9565b906002549361057960028660f81c1415613e5b565b600160f91b6001600160f81b038096161760025561059683613fe6565b61059e615464565b906105a98251613f59565b946001600160a01b0393858516815b85518110156106f857866105cc8288613fd2565b51168352603980855285842083855285528584205490608091821c6105f1848d613fd2565b526105fc838c613fd2565b51610612575b505061060d90613f8a565b6105b8565b8861061d848a613fd2565b5116855285528584208385528552858420906fffffffffffffffffffffffffffffffff91828154169055610651838c613fd2565b519082821161047e5789610665858b613fd2565b51168652603b8752828887209216908254901c039182116106e5578a8a6106d7858c6106cf828e6106ca61060d9b9a6106de9a906fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b613fd2565b511693613fd2565b5191615e4e565b908c610602565b60248560118f634e487b7160e01b835252fd5b88846104fa87600160f81b8e877f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f610745610731615464565b610752875192839289845289840190613837565b8281038b8401528b613929565b0390a2600254161760025551928284938452830190613929565b9034610486576101a0600319360112610486576001600160a01b039261079784600654163314613ea6565b61079f6147b0565b93807f000000000000000000000000000000000000000000000000000000000000000016928451917fa76541e50000000000000000000000000000000000000000000000000000000083526107f682840188613b48565b6020926102c490848183818a5afa908115610aec578691610abf575b506101843503610a7e576002906108518851997f03270af4000000000000000000000000000000000000000000000000000000008b52858b0190613b48565b880152610164356102e48801526000196103048801526004356103248801526024356103448801526044356103648801526064356103848801526084356103a488015260a43594856103c489015260c43590816103e48a015260e43591826104048b015261010492833591826104248d0152878c610464816101243597886104448301525afa998a15610a74578b9c8a9b9c98999a9c610a31575b5087519889977f2285db260000000000000000000000000000000000000000000000000000000089527f000000000000000000000000000000000000000000000000000000000000000016908801528b602488015260448701526064860152608485015260a484015260c48301526101443560e48301528173__$4841977b5e630d8d12d7143ab50b0fe229$__5af4928315610a2657926109f6575b50610991614d81565b83516004358152602435602082015260443560408201526064356060820152608435608082015260a0810184905260c081018390527f43950417e0eb7225b8f42332a069bc35fbdf65f3d90c124210b3d3aefc3d6a409060e090a18351928352820152f35b610a17919250843d8611610a1f575b610a0f8183613a16565b810190614700565b509084610988565b503d610a05565b8551903d90823e3d90fd5b8a80929d508193949596979899503d8311610a6d575b610a518183613a16565b81010312610a6957908b969594939291519a8d6108ec565b8980fd5b503d610a47565b8b513d8b823e3d90fd5b60648385808a519262461bcd60e51b845283015260248201527f72656d6f76654c6971546f59743a2062696e20737461746520657870697265646044820152fd5b90508481813d8311610ae5575b610ad68183613a16565b8101031261047e575189610812565b503d610acc565b88513d88823e3d90fd5b9050346104fe57816003193601126104fe576102c090610b20610b176147b0565b91518092613b48565bf35b9050346104fe5760206003193601126104fe57806104fa926001600160a01b03610b4a6138e9565b168152603b60209081529190205491516fffffffffffffffffffffffffffffffff8316815260809290921c908201529081906040820190565b34610486576020610b933661395d565b93610baa6001600160a01b03600654163314613ea6565b610c1a845195869384937f448b96190000000000000000000000000000000000000000000000000000000085527f00000000000000000000000000000000000000000000000000000000000000009085016040919493926001600160a01b03606083019616825260208201520152565b038173__$4841977b5e630d8d12d7143ab50b0fe229$__5af4918215610c82578392610c4b575b6020838351908152f35b9091506020813d8211610c7a575b81610c6660209383613a16565b810103126104865760209250519083610c41565b3d9150610c59565b81513d85823e3d90fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe57816003193601126104fe576020906001600160a01b03600754169051908152f35b9050346104fe57816003193601126104fe576020906042549051908152f35b9050346104fe57806003193601126104fe5780602092610d356138e9565b610d3d6138ff565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b9050346104fe57816003193601126104fe576104fa90610d7e614698565b9051918291602083526020830190613929565b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9250346104fe5760e06003193601126104fe57610df06138e9565b610df86138ff565b90604435926064356084359060ff8216820361047a57804211610f96576001600160a01b03908185169283895260056020528989208054906001820190558a519260208401917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98352868d860152858a1660608601528a608086015260a085015260c084015260c0835260e083019267ffffffffffffffff9381811085821117610f83578c5251902090610eaa615bfe565b928b519260208401947f190100000000000000000000000000000000000000000000000000000000000086526022850152604284015260428352608083019083821090821117610f705791610f189391610f10938d5260c4359260a43592519020615b49565b9190916159a5565b1603610f2d5750610f2a939450615871565b80f35b606490602087519162461bcd60e51b8352820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b60248b604189634e487b7160e01b835252fd5b60248c60418a634e487b7160e01b835252fd5b60648360208a519162461bcd60e51b8352820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152fd5b90346104865781600319360112610486576001600160a01b0380610ffb6138e9565b16907f000000000000000000000000000000000000000000000000000000000000000016810361110757506020611030614cb9565b61103861486b565b9261106d855194859384937fb1ef9e500000000000000000000000000000000000000000000000000000000085528401614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af49283156110fc5780936110bf575b6020836110b86110a660243588615096565b6001600160f81b0360025416906150a9565b9051908152f35b9092506020833d82116110f4575b816110da60209383613a16565b810103126110f157509051906110b86110a6611094565b80fd5b3d91506110cd565b8251903d90823e3d90fd5b60249251917f88a50561000000000000000000000000000000000000000000000000000000008352820152fd5b9050346104fe57816003193601126104fe576104fa90611152615464565b9051918291602083526020830190613837565b91346110f157826003193601126110f157506001600160a01b03806111886138e9565b16907f00000000000000000000000000000000000000000000000000000000000000001681036111c0576020836110b860243561525f565b60249251917faeabe718000000000000000000000000000000000000000000000000000000008352820152fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe57816003193601126104fe5760c090603c5490603d5490603e54603f549082549260415494815196875260208701528501526060840152608083015260a0820152f35b9050346104fe57816003193601126104fe57602090603a549051908152f35b9050346104fe57806003193601126104fe57602090600160f81b6112bb6138e9565b6112f0600254916112d260028460f81c1415613e5b565b600160f91b6001600160f81b038094161760025560243590336154b3565b60025416176002555160018152f35b82346110f15760c06003193601126110f1576113276001600160a01b03600654163314613ea6565b610f2a61133336613a39565b60a0908051603c556020810151603d556040810151603e556060810151603f556080810151604055015180604155604255565b8290346104fe57816003193601126104fe576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926020825180927f313ce56700000000000000000000000000000000000000000000000000000000825281875afa9081156114325783916113f6575b5060ff90606094835194855260208501521690820152f35b90506020813d821161142a575b8161141060209383613a16565b81010312610486575160ff811681036104865760606113de565b3d9150611403565b505051903d90823e3d90fd5b3461048657610100600319360112610486576001600160a01b039061146882600654163314613ea6565b6114706147b0565b917f000000000000000000000000000000000000000000000000000000000000000016916114c68251917fa76541e500000000000000000000000000000000000000000000000000000000835285830190613b48565b6020926102c49184818481855afa9081156117a957879161177c575b5060e435036117395761153161046485926114fb6147b0565b906001875196879586947f03270af40000000000000000000000000000000000000000000000000000000086528c860190613b48565b83015260c4356102e48301526000196103048301526004356103248301526024356103448301526044356103648301526064356103848301526084356103a48301526004356103c48301526024356103e48301526044356104048301526064356104248301526084356104448301525afa92831561172f5785936116fd575b505080517f3525e03f0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169381019384526020840183905260a435604085015291928190839081906060015b038173__$4841977b5e630d8d12d7143ab50b0fe229$__5af49182156116f35784926116cd575b50906104fa91611657614d81565b80516004358152602435602082015260443560408201526064356060820152608435608082015260a0810183905260c081018690527fba4064507fa740cdd61480d0c0ce70e6b4e0f349dda4cd52184466a3c19936439060e090a151938493846040919493926060820195825260208201520152565b816116ea9295506104fa93503d8611610a1f57610a0f8183613a16565b93909391611649565b81513d86823e3d90fd5b90809350813d8311611728575b6117148183613a16565b8101031261043457806116229251926115b0565b503d61170a565b82513d87823e3d90fd5b505060649350519162461bcd60e51b8352820152601f60248201527f6164644c697146726f6d59743a2062696e2073746174652065787069726564006044820152fd5b90508481813d83116117a2575b6117938183613a16565b8101031261047a5751876114e2565b503d611789565b84513d89823e3d90fd5b505050506102ef6137d3565b9050346104fe57816003193601126104fe576020906001600160a01b03600654169051908152f35b9050346104fe57816003193601126104fe5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258916118336001600160a01b03600654163314613ea6565b61183b613ef1565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00603854161760385551338152a180f35b9250346104fe5760606003193601126104fe5780356001600160a01b039161189b83600654163314613ea6565b8451927fee723a8d0000000000000000000000000000000000000000000000000000000084527f0000000000000000000000000000000000000000000000000000000000000000169083015280602483015260243560448301526044356064830152838260848173__$4841977b5e630d8d12d7143ab50b0fe229$__5af49182156119b257839261196d575b50835190815260208101839052604081018290527f48f22f4bc9aee5b703ec4521f5f611eb37d722e592a0545e957f00ce8e9bd3ec90606090a182519182526020820152f35b7f48f22f4bc9aee5b703ec4521f5f611eb37d722e592a0545e957f00ce8e9bd3ec93506119a8919250843d8611610a1f57610a0f8183613a16565b9092509082611927565b84513d85823e3d90fd5b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe5760206003193601126104fe57806020926001600160a01b03611a276138e9565b1681526005845220549051908152f35b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b505050506102ef613af6565b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b9050346104fe57816003193601126104fe57602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b8290346104fe5760a06003193601126104fe57611b2a6138e9565b90602435936044356001600160a01b039081811680910361047e5760643596608435928315158403611d9957600294855494611b6b878760f81c1415613e5b565b600160f91b6001600160f81b038097161787557f0000000000000000000000000000000000000000000000000000000000000000908382168603611d6a578415611d425715611d3357611bbe84306156ce565b611bc6614cb9565b99611bcf61486b565b8951907fb1ef9e50000000000000000000000000000000000000000000000000000000008252818060209e8f9388830191611c0992614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af4918215611d2857918691838d96959492611ce9575b5050611c4a611c659392611c5d92615096565b611c57888b8d54166140a4565b906150a9565b9a8b91615e4e565b8a8910611cb4575090600160f81b949392918751928352888a84015216907faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c873392a482541617905551908152f35b6044908b8a8a51927fbfee4ca00000000000000000000000000000000000000000000000000000000084528301526024820152fd5b925080939495508d8092503d8311611d21575b611d068183613a16565b810103126110f1575051899291908590611c4a611c65611c37565b503d611cfc565b8a51903d90823e3d90fd5b611d3d84336156ce565b611bbe565b8289517fc3d83b07000000000000000000000000000000000000000000000000000000008152fd5b602483878b51917f88a50561000000000000000000000000000000000000000000000000000000008352820152fd5b8780fd5b9050346104fe5760206003193601126104fe576020906110b8611dbe6138e9565b6001600160a01b0316600052600060205260406000205490565b8290346104fe576003199281843601126104865780359367ffffffffffffffff908186116104825760c0818736030112610482576001600160a01b0392611e2484600654163314613ea6565b845192611e3084613973565b611e3b888301613915565b845260209788850193602494858301358152611e5960448401613915565b90898801918252611e6c60648501613915565b9260608901938452611e8060848601613915565b9460808a0195865260a481013590878211612121579060809101918236030112612119578a51956080870187811082821117612125578c5287820135888110156121215787528d611ed28a8401613915565b90880152604482013590811161211d5790611ef4606492893691840101613aaf565b8c88015201358015158103612119579289869593819593828f8f9c9b9a8e839860608593015260a081019b8c52600019855114612106575b5116612100575081519b5b517f443e6512000000000000000000000000000000000000000000000000000000008152308b8201527f000000000000000000000000000000000000000000000000000000000000000082168c8201528b356044820152608060648201529c511660848d01525160a48c0152511660c48a0152511660e488015251166101048601525160c0610124860152805190929091808310156120ef57505091838080938a9561014483015287868201511661016483015260606120078a83015160806101848601526101c4850190613793565b91015115156101a48301520391867f0000000000000000000000000000000000000000000000000000000000000000165af19384156120e45780946120b0575b5050612082907f0000000000000000000000000000000000000000000000000000000000000000906006541661207c82615f10565b91615e4e565b7f52709ca3666ff5bd61f9d9d26f0dbdadd947fdadf265f3141227189da7d48463838251848152a151908152f35b909193508482813d83116120dd575b6120c98183613a16565b810103126110f15750519161208285612047565b503d6120bf565b8351903d90823e3d90fd5b60218991634e487b7160e01b835252fd5b9b611f37565b61211282825116615f10565b8552611f2c565b8b80fd5b8c80fd5b8d80fd5b898e60418b634e487b7160e01b835252fd5b9050346104fe57806003193601126104fe57806104fa926121566138e9565b61215e6138ff565b6001600160a01b0391821683526039602090815284842091909216835281529190205491516fffffffffffffffffffffffffffffffff8316815260809290921c908201529081906040820190565b9050346104fe57816003193601126104fe5760209060ff6038541690519015158152f35b91346110f157806003193601126110f157506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361223b57602082517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b80600319360112610486576122b66138e9565b9060243567ffffffffffffffff8111610482576122d69036908501613aaf565b906001600160a01b0391827f0000000000000000000000000000000000000000000000000000000000000000169261231084301415613c40565b61233f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc948286541614613cb1565b61234e81600654163314613ea6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156123865750505050610f2a9150613d22565b8491929394168351947f52d1902d00000000000000000000000000000000000000000000000000000000865260209586818981865afa8991816125e5575b50612431576084888888519162461bcd60e51b8352820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152fd5b969294969593950361257d5761244684613d22565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8780a2835115801590612575575b612482575b505050505080f35b84519461248e866139a5565b602786527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c838701527f206661696c65640000000000000000000000000000000000000000000000000081870152833b1561250e57505082859283926125039695519201905af46124fd613de7565b90613e17565b50818080808061247a565b91608492519162461bcd60e51b8352820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152fd5b506001612475565b5060849185519162461bcd60e51b8352820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b9091508781813d831161260d575b6125fd8183613a16565b81010312610a695751908a6123c4565b503d6125f3565b34610486578260031936011261048657600754906001600160a01b039283831691823303612698575050806006549384167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a37fffffffffffffffffffffffff0000000000000000000000000000000000000000809316176006551660075580f35b906020606492519162461bcd60e51b8352820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b9050346104fe576003193601126110f157610f2a6126f76138e9565b6126ff6138ff565b906127166001600160a01b03600654163314613ea6565b615f96565b90346104865782600319360112610486576127426001600160a01b03600654163314613ea6565b6038549060ff8216156127a257507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006020921660385551338152a180f35b606490602084519162461bcd60e51b8352820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b82346110f157806003193601126110f1576128556020612803614cb9565b8451809381927fe2102e670000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000898401614e8b565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af49081156128f55782916128c4575b506001600160f81b036002541691670de0b6b3a7640000918281029281840414901517156128b1576020846110b885856150a9565b80601186634e487b7160e01b6024945252fd5b90506020813d82116128ed575b816128de60209383613a16565b810103126104fe57518461287c565b3d91506128d1565b83513d84823e3d90fd5b90346104865760c06003193601126104865761291a36613a39565b6007549060ff8260a81c161591828093612b7f575b8015612b65575b15612afc57908183740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6129b7951617600755612ab9575b5060a0908051603c556020810151603d556040810151603e556060810151603f556080810151604055015180604155604255565b6007549160ff8360a81c1615612a505750337fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006556129fa578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498917fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff602092166007555160018152a181808280f35b608490602085519162461bcd60e51b8352820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff1675010100000000000000000000000000000000000000001760075586612983565b608484602087519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b1580156129365750600160ff8260a01c1614612936565b50600160ff8260a01c161061292f565b346104865760208060031936011261043457612ba96138e9565b916001600160a01b03807f000000000000000000000000000000000000000000000000000000000000000016612be181301415613c40565b612c107f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc918383541614613cb1565b612c1f82600654163314613ea6565b8251908482019282841067ffffffffffffffff851117612f01578385528883527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612c7957505050505050610f2a9150613d22565b86949596169085517f52d1902d00000000000000000000000000000000000000000000000000000000815287818a81865afa8a9181612ece575b50612d20576084898989519162461bcd60e51b8352820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152fd5b979395979692949603612e6657612d3686613d22565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8880a2825115801590612e5f575b612d73575b50505050505080f35b855195612d7f876139a5565b602787527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c828801527f206661696c65640000000000000000000000000000000000000000000000000081880152853b15612df857505050612dec93928592839251915af46124fd613de7565b50818080808080612d6a565b60849350519162461bcd60e51b8352820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152fd5b5086612d65565b6084838389519162461bcd60e51b8352820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b9091508881813d8311612efa575b612ee68183613a16565b81010312612ef65751908b612cb3565b8a80fd5b503d612edc565b60248960418a634e487b7160e01b835252fd5b9050346104fe57816003193601126104fe576020906110b8615bfe565b9050346104fe57816003193601126104fe576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610486576020612f7f3661395d565b93612f966001600160a01b03600654163314613ea6565b610c1a845195869384937f57e7540a0000000000000000000000000000000000000000000000000000000085527f00000000000000000000000000000000000000000000000000000000000000009085016040919493926001600160a01b03606083019616825260208201520152565b903461048657602060031936011261048657359182151583036110f157506110b8602092614f8d565b9250346104fe5760606003193601126104fe5761304a6138e9565b6130526138ff565b9060443592856002549561306c60028860f81c1415613e5b565b600160f91b6001600160f81b03809816176002556001600160a01b0384168152600160205281812033825260205220549060001982036130bb575b602087600160f81b886112f08989896154b3565b8482106130ec57509260209594926112f0926130df83600160f81b97033383615871565b92509294958194506130a7565b606490602088519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b505050506102ef613874565b829060806003193601126104fe576131516138e9565b9161315a6138ff565b6044359360643594600293845497613177868a60f81c1415613e5b565b600160f91b6001600160f81b03809a161786556001600160a01b0380951694807f000000000000000000000000000000000000000000000000000000000000000016860361343757831561340f578561339657833403613353575b6131db846150c9565b98808a1061331e575084169384156132db576131fe906131f9613ef1565b613fe6565b8888116104fe578554908989168a831601908a82116132c85750938092600160f81b9694927fff000000000000000000000000000000000000000000000000000000000000008c60209d98169116178855818152808b528881206132638b82546140a4565b90557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b8a518c8152a3865190815287898201527f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59873392a482541617905551908152f35b836011602492634e487b7160e01b835252fd5b60648260208a519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b826044918b8b51927fbc71f2ba0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b60648260208a519162461bcd60e51b8352820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b87517f23b872dd0000000000000000000000000000000000000000000000000000000060208201523360248201523060448201528460648201526064815260a0810181811067ffffffffffffffff8211176133fc5789526133f79087615d18565b6131d2565b602485604186634e487b7160e01b835252fd5b5086517fa907f2f0000000000000000000000000000000000000000000000000000000008152fd5b602482878a51917faeabe718000000000000000000000000000000000000000000000000000000008352820152fd5b9050346104fe57816003193601126104fe576020906001600160f81b03600254169051908152f35b82346110f157602091826003193601126104fe576134aa6138e9565b916134b3615464565b926134be8451613f59565b946001600160a01b0391821691835b865181101561350c5780826134e46001938a613fd2565b511686526039845286862085875284528686205460801c613505828b613fd2565b52016134cd565b8551838152806104fa8186018b613929565b90346104865782600319360112610486576020613539614cb9565b61354161486b565b92613576855194859384937fb1ef9e500000000000000000000000000000000000000000000000000000000085528401614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af49283156110fc5780936135e7575b6020836110b8866135e26135d07f0000000000000000000000000000000000000000000000000000000000000000615f10565b6001600160f81b036002541690615096565b6150a9565b9092506020833d8211613618575b8161360260209383613a16565b810103126110f157506110b8602092519261359d565b3d91506135f5565b9050346104fe57806003193601126104fe5760209061364a6136406138e9565b6024359033615871565b5160018152f35b346104865760606003193601126104865761366a6138e9565b916024359182151583036104825760443592831515840361047e576001600160a01b0394859161369f83600654163314613ea6565b15613761571692831590811591613759575b5015613716575050806006549283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a37fffffffffffffffffffffffff0000000000000000000000000000000000000000809216176006556007541660075580f35b906020606492519162461bcd60e51b8352820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b9050866136b1565b9350505050167fffffffffffffffffffffffff0000000000000000000000000000000000000000600754161760075580f35b919082519283825260005b8481106137bf575050601f19601f8460006020809697860101520116010190565b60208183018101518483018201520161379e565b5034613832576000600319360112613832576104fa6040516137f4816139de565b600e81527f466f72746b6e6f78205661756c740000000000000000000000000000000000006020820152604051918291602083526020830190613793565b600080fd5b90815180825260208080930193019160005b828110613857575050505090565b83516001600160a01b031685529381019392810192600101613849565b5034613832576000600319360112613832576104fa604051613895816139de565b60018152602036818301376138a981613faf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169052604051918291602083526020830190613837565b600435906001600160a01b038216820361383257565b602435906001600160a01b038216820361383257565b35906001600160a01b038216820361383257565b90815180825260208080930193019160005b828110613949575050505090565b83518552938101939281019260010161393b565b6003196040910112613832576004359060243590565b60c0810190811067ffffffffffffffff82111761398f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761398f57604052565b610120810190811067ffffffffffffffff82111761398f57604052565b6040810190811067ffffffffffffffff82111761398f57604052565b6080810190811067ffffffffffffffff82111761398f57604052565b90601f601f19910116810190811067ffffffffffffffff82111761398f57604052565b60031960c0910112613832576040519060c0820182811067ffffffffffffffff82111761398f57604052816004358152602435602082015260443560408201526064356060820152608435608082015260a060a435910152565b67ffffffffffffffff811161398f57601f01601f191660200190565b81601f8201121561383257803590613ac682613a93565b92613ad46040519485613a16565b8284526020838301011161383257816000926020809301838601378301015290565b5034613832576020600319360112613832576020613b126138e9565b604051906001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b60a060406102a092613b8385825160808091805184526020810151602085015260408101516040850152606081015160608501520151910152565b816020820151613bf085880182518051825260208101516020830152604081015160408301526001600160a01b0360608201511660608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60208101516101c088015201516101e08601520151805161020085015260208101516102208501526040810151610240850152606081015161026085015260808101516102808501520151910152565b15613c4757565b608460405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b15613cb857565b608460405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b803b15613d7d576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b608460405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b3d15613e12573d90613df882613a93565b91613e066040519384613a16565b82523d6000602084013e565b606090565b90919015613e23575090565b815115613e335750805190602001fd5b613e579060405191829162461bcd60e51b8352602060048401526024830190613793565b0390fd5b15613e6257565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b15613ead57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60ff60385416613efd57565b606460405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b67ffffffffffffffff811161398f5760051b60200190565b90613f6382613f41565b613f706040519182613a16565b828152601f19613f808294613f41565b0190602036910137565b6000198114613f995760010190565b634e487b7160e01b600052601160045260246000fd5b805115613fbc5760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015613fbc5760209160051b010190565b613fee6140b1565b9080511561402a576001600160a01b038316801515908161401f575b5061401457505050565b61401d92614498565b565b90503014153861400a565b505050565b6140376140b1565b91815115614091576001600160a01b039083838383168015159081614086575b50614075575b5050508316801515908161401f575061401457505050565b61407e92614498565b38838361405d565b905030141538614057565b50505050565b91908203918211613f9957565b91908201809211613f9957565b6140b9615464565b906140c48251613f59565b82511561449557603a544303614132575b6000805b845181101561412d57806001600160a01b036140f86141289388613fd2565b51168352603b6020526fffffffffffffffffffffffffffffffff6040842054166141228286613fd2565b52613f8a565b6140d9565b505090565b43603a556001600160f81b03600254166040908151907f7d24da4d0000000000000000000000000000000000000000000000000000000082526004308184015260019360249185838601528560448601526000916001600160a01b03958381606481838b7f0000000000000000000000000000000000000000000000000000000000000000165af1801561442f57614453575b5080517f9262187b000000000000000000000000000000000000000000000000000000008152308382015283818681838b7f0000000000000000000000000000000000000000000000000000000000000000165af1801561442f57614439575b5080517fef5cfb8c000000000000000000000000000000000000000000000000000000008152308382015283818681838b7f0000000000000000000000000000000000000000000000000000000000000000165af1801561442f5761440d575b50869583861515985b6142a1575b5050505050505050506140d5565b8b518110156144085782898d8a6142d0866142c987826142c18288613fd2565b511695613fd2565b5116615f10565b91808a52603b906020908282526142f0878d205495608096871c90614097565b95818d528383528c6fffffffffffffffffffffffffffffffff988991205416948515614400575b506143ba575b868411612119578b525283878a2091166fffffffffffffffffffffffffffffffff19825416179055828211611d9957828689209216908254901c019182116143a8579161439c6143a1928b9594906fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b613f8a565b909161428e565b8787601188634e487b7160e01b835252fd5b92670de0b6b3a76400008087029087820414871517156143ee57906143e28f6143e8936150a9565b906140a4565b9261431d565b8d8d60118e634e487b7160e01b835252fd5b94508f614317565b614293565b614428903d8086833e6144208183613a16565b81019061543e565b5038614285565b82513d86823e3d90fd5b61444c903d8086833e6144208183613a16565b5038614225565b3d8085833e6144628183613a16565b81019082818303126104825760208101519067ffffffffffffffff821161047e5761448e9291016153e0565b50386141c5565b90565b909291926001600160a01b03808316928315158061468e575b15614678576144d4906001600160a01b0316600052600060205260406000205490565b9160005b815181101561466f57826144ec8284613fd2565b5116906144f98189613fd2565b51826000526039906020908282526040806000208a60005283526fffffffffffffffffffffffffffffffff9182826000205416801561462d5781811461461d57670de0b6b3a76400006145586145526145779385614097565b8d615096565b0488600052868652836000208d6000528652836000205460801c6140a4565b9183821161383257838311613832578051948186019686881067ffffffffffffffff89111761398f576146189986809561439c9a86521688528483890196168652600052815281600020908d600052526000209351166fffffffffffffffffffffffffffffffff1984541617835551166fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b6144d8565b5050505050506146189150613f8a565b5093828594929394116138325761461896600052815281600020908a6000525260002091166fffffffffffffffffffffffffffffffff19825416179055613f8a565b50505050509050565b634e487b7160e01b600052600160045260246000fd5b50308414156144b1565b6146a0615464565b906146ab8251613f59565b91600090815b815181101561402a57806001600160a01b036146cf60019385613fd2565b51168452603b6020526fffffffffffffffffffffffffffffffff6040852054166146f98288613fd2565b52016146b1565b9190826040910312613832576020825192015190565b6040519060a0820182811067ffffffffffffffff82111761398f5760405260006080838281528260208201528260408201528260608201520152565b6040519061475f826139a5565b81604080519161476e836139c1565b60009283815283602082015283838201528360608201528360808201528360a08201528360c08201528360e08201528361010082015281528260208201520152565b6040908151916147bf836139a5565b6147c7614716565b8352602083016147d5614752565b81528184019082516147e681613973565b6000808252806020830152808583015280606083015280608083015260a0820152825284614812614cb9565b905261481c61486b565b905281519161482a83613973565b603c548352603d546020840152603e5481840152603f54606084015254608083015260415460a083015252565b51906001600160a01b038216820361383257565b614873614752565b90604080517f794052f30000000000000000000000000000000000000000000000000000000081526001600160a01b03600491817f000000000000000000000000000000000000000000000000000000000000000016838201526101208082602481867f0000000000000000000000000000000000000000000000000000000000000000165afa908115614c9657600091614c05575b5086525082517fafd27bf5000000000000000000000000000000000000000000000000000000008152602092907f000000000000000000000000000000000000000000000000000000000000000083169084818481855afa908115614bfa57600091614bc5575b508551927fd2a3584e00000000000000000000000000000000000000000000000000000000845285848281865afa938415614bba57600094614b8b575b5086517f516399df00000000000000000000000000000000000000000000000000000000815260009387828481845afa918215614b81579088949392918692614b52575b5081614a9e575b5015614a1057505050509050905b8401524290830152565b8751809681937f3ba0b9a9000000000000000000000000000000000000000000000000000000008352165afa928315614a92578193614a63575b505080821115614a5c57505b90614a06565b9050614a56565b9092508381813d8311614a8b575b614a7b8183613a16565b8101031261048657519138614a4a565b503d614a71565b508451903d90823e3d90fd5b82939491508951928380927f60e0a9e10000000000000000000000000000000000000000000000000000000082525afa908115614b485790879392918591614afc575b506fffffffffffffffffffffffffffffffff164314386149f8565b848193949592503d8311614b41575b614b158183613a16565b8101031261043457516fffffffffffffffffffffffffffffffff81168103610434579086929138614ae1565b503d614b0b565b88513d86823e3d90fd5b614b73919250853d8711614b7a575b614b6b8183613a16565b810190614ca1565b90386149f1565b503d614b61565b89513d87823e3d90fd5b90938682813d8311614bb3575b614ba28183613a16565b810103126110f157505192386149ad565b503d614b98565b87513d6000823e3d90fd5b908582813d8311614bf3575b614bdb8183613a16565b810103126110f15750614bed90614857565b38614970565b503d614bd1565b86513d6000823e3d90fd5b82813d8311614c8f575b614c198183613a16565b810103126110f15750835190614c2e826139c1565b80518252602081015160208301528481015185830152614c5060608201614857565b60608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151908201528038614909565b503d614c0f565b85513d6000823e3d90fd5b90816020910312613832575180151581036138325790565b614cc1614716565b90614ceb7f0000000000000000000000000000000000000000000000000000000000000000615f10565b8252614d167f0000000000000000000000000000000000000000000000000000000000000000615f10565b6060830152614d447f0000000000000000000000000000000000000000000000000000000000000000615f10565b6020830152614d727f0000000000000000000000000000000000000000000000000000000000000000615f10565b60408301526042546080830152565b614d896147b0565b614dbd604051917fa76541e50000000000000000000000000000000000000000000000000000000083526004830190613b48565b6020816102c4816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa908115614e7f57600091614e4e575b506042547f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116138325760008282019283129112908015821691151617613f99576000811261383257604255565b906020823d8211614e77575b81614e6760209383613a16565b810103126110f157505138614dff565b3d9150614e5a565b6040513d6000823e3d90fd5b91602061401d9294936001600160a01b0360c0820196168152019060808091805184526020810151602085015260408101516040850152606081015160608501520151910152565b90929160406101e091614f138461020081019760808091805184526020810151602085015260408101516040850152606081015160608501520151910152565b614f7b60a0850182518051825260208101516020830152604081015160408301526001600160a01b0360608201511660608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60208101516101c08501520151910152565b1561503557614fdc6020614f9f614cb9565b614fa761486b565b9060405193849283927fb1ef9e5000000000000000000000000000000000000000000000000000000000845260048401614ed3565b038173__$a7098bf20e819a81ac73f4e6e6693165f6$__5af4908115614e7f57600091615007575090565b906020823d821161502d575b8161502060209383613a16565b810103126110f157505190565b3d9150615013565b614fdc6020615042614cb9565b604051809381927fe2102e670000000000000000000000000000000000000000000000000000000083527f000000000000000000000000000000000000000000000000000000000000000060048401614e8b565b81810292918115918404141715613f9957565b81156150b3570490565b634e487b7160e01b600052601260045260246000fd5b6150d1614cb9565b906150da61486b565b6001600160f81b03928360025416156152585773__$a7098bf20e819a81ac73f4e6e6693165f6$__91604051927fe2102e6700000000000000000000000000000000000000000000000000000000845260209283858061515e847f000000000000000000000000000000000000000000000000000000000000000060048401614e8b565b0381855af4948515614e7f57600095615229575b509183916151af936040518095819482937fb1ef9e5000000000000000000000000000000000000000000000000000000000845260048401614ed3565b03915af4918215614e7f576000926151f6575b5050916151e8611c579261449595948082116000146151ee5750935b6002541682615096565b92614097565b9050936151de565b81819392933d8311615222575b61520d8183613a16565b810103126110f15750516151e8611c576151c2565b503d615203565b90948482813d8311615251575b6152408183613a16565b810103126110f15750519383615172565b503d615236565b5050905090565b6001600160f81b036002541680156153dc57615279614cb9565b61528161486b565b9073__$a7098bf20e819a81ac73f4e6e6693165f6$__91604051927fe2102e670000000000000000000000000000000000000000000000000000000084526020928385806152f3847f000000000000000000000000000000000000000000000000000000000000000060048401614e8b565b0381855af4948515614e7f576000956153ad575b50918391615344936040518095819482937fb1ef9e5000000000000000000000000000000000000000000000000000000000845260048401614ed3565b03915af4918215614e7f5760009261537c575b5050916135e2916144959493808211600014615374575092615096565b905092615096565b81819392933d83116153a6575b6153938183613a16565b810103126110f157505181614495615357565b503d615389565b90948482813d83116153d5575b6153c48183613a16565b810103126110f15750519383615307565b503d6153ba565b5090565b81601f82011215613832578051916153f783613f41565b926154056040519485613a16565b808452602092838086019260051b820101928311613832578301905b82821061542f575050505090565b81518152908301908301615421565b9060208282031261383257815167ffffffffffffffff81116138325761449592016153e0565b60405190615471826139de565b600182526020368184013761548582613faf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169052565b90916001600160a01b03918281169283156156645784169384156155fa578484146155b6576154e9916154e4613ef1565b61402f565b60008281528060205260408120549180831061554c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206155418282546140a4565b9055604051908152a3565b608460405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b606460405162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e7366657220746f2073656c660000000000000000006044820152fd5b608460405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b6001600160a01b038116908115615807576156eb906131f9613ef1565b60009181835282602052604083205481811061579d578190838552846020520360408420556001600160f81b0380821161043457600254908083168183160381811161578957917fff000000000000000000000000000000000000000000000000000000000000007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef949260209416911617600255604051908152a3565b602486634e487b7160e01b81526011600452fd5b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b6001600160a01b0380911691821561593c57169182156158d25760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b608460405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b6005811015615b3357806159b65750565b60018103615a0257606460405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103615a4e57606460405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b60038103615ac057608460405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b600414615ac957565b608460405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311615bf25760ff16601b81141580615be7575b615bdb579160809493916020936040519384528484015260408301526060820152600093849182805260015afa15615bce5781516001600160a01b03811615615bc8579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600490565b50601c811415615b81565b50505050600090600390565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480615cef575b15615c59577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f000000000000000000000000000000000000000000000000000000000000000082527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152615ce981613973565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614615c30565b6001600160a01b03169060405190615d2f826139de565b6020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656484840152803b15615e0a5760008281928287615d7b9796519301915af16124fd613de7565b80519081615d8857505050565b8280615d98938301019101614ca1565b15615da05750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6064846040519062461bcd60e51b82526004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b821561402a576001600160a01b039081169081615ec4575050600080809381935af1615e78613de7565b5015615e8057565b606460405162461bcd60e51b815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b9261401d93604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252615f0b826139fa565b615d18565b6000906001600160a01b031680615f275750504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215615f8a578092615f7057505090565b9091506020823d821161502d578161502060209383613a16565b604051903d90823e3d90fd5b906001600160a01b0391828116908115614091576040918251809581957fdd62ed3e0000000000000000000000000000000000000000000000000000000083523060048401521691826024830152602096879160449788915afa80156161de576000906161a5575b6b7fffffffffffffffffffffff91501061601a575b5050505050565b8251906000808784017f095ea7b30000000000000000000000000000000000000000000000000000000094858252846024820152828982015288815261605f816139fa565b519082875af161606d613de7565b81616175575b50156161335791600092918380938651908982019384526024820152600019888201528781526160a2816139fa565b51925af16160ae613de7565b81616103575b50156160c1578080616013565b606492917f5361666520417070726f7665000000000000000000000000000000000000000091519262461bcd60e51b84526004840152600c6024840152820152fd5b8051801592508590831561611b575b505050386160b4565b61612b9350820181019101614ca1565b388481616112565b6064867f5361666520417070726f766500000000000000000000000000000000000000008787519262461bcd60e51b84526004840152600c6024840152820152fd5b8051801592508890831561618d575b50505038616073565b61619d9350820181019101614ca1565b388781616184565b8682813d83116161d7575b6161ba8183613a16565b810103126110f157506b7fffffffffffffffffffffff9051615ffe565b503d6161b0565b84513d6000823e3d90fdfea264697066735822122075dab21fce305f6f672441b100304e8710d3917c34d0e0299e558ea451d2fef864736f6c63430008110033",
2216
+ "linkReferences": {
2217
+ "contracts/core/TradingBot/libraries/LongYieldActionLib.sol": {
2218
+ "LongYieldActionLib": [
2219
+ {
2220
+ "length": 20,
2221
+ "start": 3472
2222
+ },
2223
+ {
2224
+ "length": 20,
2225
+ "start": 4993
2226
+ },
2227
+ {
2228
+ "length": 20,
2229
+ "start": 5689
2230
+ },
2231
+ {
2232
+ "length": 20,
2233
+ "start": 8257
2234
+ },
2235
+ {
2236
+ "length": 20,
2237
+ "start": 8991
2238
+ }
2239
+ ]
2240
+ },
2241
+ "contracts/core/TradingBot/libraries/TvlLib.sol": {
2242
+ "TvlLib": [
2243
+ {
2244
+ "length": 20,
2245
+ "start": 6796
2246
+ },
2247
+ {
2248
+ "length": 20,
2249
+ "start": 9768
2250
+ },
2251
+ {
2252
+ "length": 20,
2253
+ "start": 12916
2254
+ },
2255
+ {
2256
+ "length": 20,
2257
+ "start": 16277
2258
+ },
2259
+ {
2260
+ "length": 20,
2261
+ "start": 23035
2262
+ },
2263
+ {
2264
+ "length": 20,
2265
+ "start": 23306
2266
+ },
2267
+ {
2268
+ "length": 20,
2269
+ "start": 23711
2270
+ }
2271
+ ]
2272
+ }
2273
+ },
2274
+ "deployedLinkReferences": {
2275
+ "contracts/core/TradingBot/libraries/LongYieldActionLib.sol": {
2276
+ "LongYieldActionLib": [
2277
+ {
2278
+ "length": 20,
2279
+ "start": 885
2280
+ },
2281
+ {
2282
+ "length": 20,
2283
+ "start": 2406
2284
+ },
2285
+ {
2286
+ "length": 20,
2287
+ "start": 3102
2288
+ },
2289
+ {
2290
+ "length": 20,
2291
+ "start": 5670
2292
+ },
2293
+ {
2294
+ "length": 20,
2295
+ "start": 6404
2296
+ }
2297
+ ]
2298
+ },
2299
+ "contracts/core/TradingBot/libraries/TvlLib.sol": {
2300
+ "TvlLib": [
2301
+ {
2302
+ "length": 20,
2303
+ "start": 4209
2304
+ },
2305
+ {
2306
+ "length": 20,
2307
+ "start": 7181
2308
+ },
2309
+ {
2310
+ "length": 20,
2311
+ "start": 10329
2312
+ },
2313
+ {
2314
+ "length": 20,
2315
+ "start": 13690
2316
+ },
2317
+ {
2318
+ "length": 20,
2319
+ "start": 20448
2320
+ },
2321
+ {
2322
+ "length": 20,
2323
+ "start": 20719
2324
+ },
2325
+ {
2326
+ "length": 20,
2327
+ "start": 21124
2328
+ }
2329
+ ]
2330
+ }
2331
+ }
2332
+ }