@pendle/core-v2 0.9.3-beta → 0.10.1-beta

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 (360) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +7 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultSCY.sol/PendleYearnVaultSCY.dbg.json +4 -0
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol}/PendleYearnVaultSCY.json +3 -3
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
  23. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.json +67 -5
  27. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +63 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +65 -3
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +74 -10
  33. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +79 -15
  35. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +204 -123
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +127 -73
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +93 -34
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +90 -14
  44. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +14 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +139 -37
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +84 -56
  50. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +122 -11
  53. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  56. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +96 -40
  58. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  60. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
  61. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1025 -0
  62. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  64. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
  65. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +622 -0
  66. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +4 -0
  67. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +35 -0
  68. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
  69. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +459 -0
  70. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
  71. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +459 -0
  72. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/actions/base/{ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json → ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json} +2 -2
  74. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.json +24 -0
  80. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +4 -0
  87. package/build/artifacts/contracts/interfaces/{IPActionCore.sol/IPActionCore.json → IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json} +154 -909
  88. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +4 -0
  89. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +598 -0
  90. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +4 -0
  91. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +35 -0
  92. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +4 -0
  93. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +435 -0
  94. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +4 -0
  95. package/build/artifacts/contracts/interfaces/{IPActionYT.sol/IPActionYT.json → IPActionSwapYT.sol/IPActionSwapYT.json} +23 -11
  96. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +349 -57
  98. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +4 -0
  99. package/build/artifacts/contracts/{core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json → interfaces/IPGauge.sol/IPGauge.json} +5 -5
  100. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +72 -29
  106. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +0 -11
  108. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +0 -37
  115. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.json +1 -1
  125. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +4 -0
  138. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.json +74 -0
  139. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  140. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  143. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  144. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  148. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
  149. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  150. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  151. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  152. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  153. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  154. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  155. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  156. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  157. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  158. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  159. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  160. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +4 -0
  161. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +93 -0
  162. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  163. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +447 -49
  164. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
  165. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +86 -0
  166. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
  167. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +37 -0
  168. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  169. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  170. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +8 -0
  171. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +1 -1
  172. package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +11 -5
  173. package/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol +0 -1
  174. package/contracts/SuperComposableYield/SCY-implementations/{PendleYearnVaultScy.sol → PendleYearnVaultSCY.sol} +0 -0
  175. package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +1 -0
  176. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +1 -1
  177. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -1
  178. package/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol +7 -7
  179. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +7 -6
  180. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +4 -5
  181. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -3
  182. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +6 -3
  183. package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
  184. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +22 -28
  185. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +71 -13
  186. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +7 -4
  187. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +6 -2
  188. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +4 -3
  189. package/contracts/core/Market/PendleMarket.sol +91 -55
  190. package/contracts/core/Market/PendleMarketFactory.sol +18 -33
  191. package/contracts/core/PendleRouter.sol +60 -52
  192. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +12 -12
  193. package/contracts/core/YieldContracts/PendleYieldToken.sol +1 -1
  194. package/contracts/core/actions/ActionAddRemoveLiq.sol +366 -0
  195. package/contracts/core/actions/ActionCallback.sol +6 -6
  196. package/contracts/core/actions/ActionMintRedeem.sol +124 -0
  197. package/contracts/core/actions/ActionMisc.sol +24 -0
  198. package/contracts/core/actions/ActionSwapPT.sol +199 -0
  199. package/contracts/core/actions/{base/ActionSCYAndYTBase.sol → ActionSwapYT.sol} +109 -74
  200. package/contracts/core/actions/base/{ActionSCYAndPYBase.sol → ActionBaseMintRedeem.sol} +9 -8
  201. package/contracts/interfaces/IBenQiComptroller.sol +2 -0
  202. package/contracts/interfaces/IPActionAddRemoveLiq.sol +188 -0
  203. package/contracts/interfaces/IPActionMintRedeem.sol +115 -0
  204. package/contracts/interfaces/IPActionMisc.sol +9 -0
  205. package/contracts/interfaces/IPActionSwapPT.sol +69 -0
  206. package/contracts/interfaces/{IPActionYT.sol → IPActionSwapYT.sol} +12 -10
  207. package/contracts/interfaces/IPAllAction.sol +12 -3
  208. package/contracts/interfaces/IPGauge.sol +6 -0
  209. package/contracts/interfaces/IPGaugeController.sol +0 -2
  210. package/contracts/interfaces/IPMarket.sol +28 -10
  211. package/contracts/interfaces/IPMarketFactory.sol +1 -7
  212. package/contracts/interfaces/IPVeToken.sol +1 -1
  213. package/contracts/interfaces/IPVotingController.sol +0 -2
  214. package/contracts/interfaces/IRewardManager.sol +1 -1
  215. package/contracts/libraries/OracleLib.sol +214 -0
  216. package/contracts/libraries/RewardManagerAbstract.sol +1 -1
  217. package/contracts/libraries/math/MarketApproxLib.sol +227 -14
  218. package/contracts/libraries/math/MarketMathCore.sol +0 -33
  219. package/contracts/offchain-helpers/MarketMathStatic.sol +565 -0
  220. package/contracts/offchain-helpers/RouterStatic.sol +196 -262
  221. package/contracts/periphery/BoringOwnableUpgradeable.sol +62 -0
  222. package/deployments/43113-benqi.json +2 -2
  223. package/deployments/43113-core.json +7 -8
  224. package/deployments/43113-markets/benqi-market-6440d6.json +8 -0
  225. package/deployments/43113-markets/benqi-market-Dc7592.json +8 -0
  226. package/deployments/80001-core.json +6 -7
  227. package/deployments/80001-markets/benqi-market-1542e0.json +8 -0
  228. package/deployments/80001-markets/benqi-market-2b6D02.json +8 -0
  229. package/package.json +11 -11
  230. package/typechain-types/ActionAddRemoveLiq.ts +1037 -0
  231. package/typechain-types/ActionBaseMintRedeem.ts +87 -0
  232. package/typechain-types/ActionCore.ts +116 -104
  233. package/typechain-types/ActionMintRedeem.ts +665 -0
  234. package/typechain-types/ActionMisc.ts +105 -0
  235. package/typechain-types/ActionSwapPT.ts +515 -0
  236. package/typechain-types/ActionSwapYT.ts +515 -0
  237. package/typechain-types/ActionYT.ts +5 -4
  238. package/typechain-types/BoringOwnable.ts +194 -0
  239. package/typechain-types/BoringOwnableData.ts +100 -0
  240. package/typechain-types/BoringOwnableUpgradeable.ts +194 -0
  241. package/typechain-types/BoringOwnableUpgradeableData.ts +100 -0
  242. package/typechain-types/CelerReceiverUpg.ts +124 -19
  243. package/typechain-types/CelerSenderUpg.ts +116 -11
  244. package/typechain-types/IBenQiComptroller.ts +39 -0
  245. package/typechain-types/IPActionAddRemoveLiq.ts +1018 -0
  246. package/typechain-types/IPActionCore.ts +116 -104
  247. package/typechain-types/IPActionMintRedeem.ts +646 -0
  248. package/typechain-types/IPActionMisc.ts +105 -0
  249. package/typechain-types/IPActionSwapPT.ts +496 -0
  250. package/typechain-types/IPActionSwapYT.ts +496 -0
  251. package/typechain-types/IPActionYT.ts +5 -4
  252. package/typechain-types/IPAllAction.ts +499 -250
  253. package/typechain-types/IPGauge.ts +87 -0
  254. package/typechain-types/IPMarket.ts +133 -50
  255. package/typechain-types/IPMarketFactory.ts +7 -17
  256. package/typechain-types/IPVeToken.ts +8 -8
  257. package/typechain-types/IPVotingController.ts +0 -20
  258. package/typechain-types/IPYieldToken.ts +3 -3
  259. package/typechain-types/IRewardManager.ts +3 -3
  260. package/typechain-types/MarketMathStatic.ts +198 -0
  261. package/typechain-types/OracleLib.ts +124 -0
  262. package/typechain-types/PendleGaugeControllerBaseUpg.ts +118 -15
  263. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +136 -9
  264. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +138 -11
  265. package/typechain-types/PendleMarket.ts +178 -59
  266. package/typechain-types/PendleMarketFactory.ts +135 -61
  267. package/typechain-types/PendleRouter.ts +201 -31
  268. package/typechain-types/PendleVotingControllerUpg.ts +325 -149
  269. package/typechain-types/PendleYieldContractFactory.ts +144 -21
  270. package/typechain-types/RouterStatic.ts +404 -114
  271. package/typechain-types/VotingControllerStorageUpg.ts +182 -113
  272. package/typechain-types/VotingEscrowPendleMainchain.ts +170 -63
  273. package/typechain-types/VotingEscrowPendleSidechain.ts +163 -17
  274. package/typechain-types/VotingEscrowTokenBase.ts +27 -8
  275. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1083 -0
  276. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +43 -0
  277. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  278. package/typechain-types/factories/ActionCore__factory.ts +39 -23
  279. package/typechain-types/factories/ActionMintRedeem__factory.ts +680 -0
  280. package/typechain-types/factories/ActionMisc__factory.ts +85 -0
  281. package/typechain-types/factories/ActionSwapPT__factory.ts +514 -0
  282. package/typechain-types/factories/ActionSwapYT__factory.ts +514 -0
  283. package/typechain-types/factories/ActionYT__factory.ts +2 -2
  284. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  285. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +96 -0
  286. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +143 -0
  287. package/typechain-types/factories/BoringOwnable__factory.ts +141 -0
  288. package/typechain-types/factories/CelerReceiverUpg__factory.ts +67 -5
  289. package/typechain-types/factories/CelerSenderUpg__factory.ts +63 -1
  290. package/typechain-types/factories/IBenQiComptroller__factory.ts +24 -0
  291. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +1020 -0
  292. package/typechain-types/factories/IPActionCore__factory.ts +38 -22
  293. package/typechain-types/factories/IPActionMintRedeem__factory.ts +613 -0
  294. package/typechain-types/factories/IPActionMisc__factory.ts +47 -0
  295. package/typechain-types/factories/IPActionSwapPT__factory.ts +450 -0
  296. package/typechain-types/factories/IPActionSwapYT__factory.ts +450 -0
  297. package/typechain-types/factories/IPActionYT__factory.ts +1 -1
  298. package/typechain-types/factories/IPAllAction__factory.ts +349 -57
  299. package/typechain-types/factories/IPGauge__factory.ts +36 -0
  300. package/typechain-types/factories/IPMarketFactory__factory.ts +0 -11
  301. package/typechain-types/factories/IPMarket__factory.ts +72 -29
  302. package/typechain-types/factories/IPVeToken__factory.ts +1 -1
  303. package/typechain-types/factories/IPVotingController__factory.ts +0 -37
  304. package/typechain-types/factories/IPYieldToken__factory.ts +1 -1
  305. package/typechain-types/factories/IRewardManager__factory.ts +1 -1
  306. package/typechain-types/factories/MarketMathStatic__factory.ts +146 -0
  307. package/typechain-types/factories/OracleLib__factory.ts +124 -0
  308. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  309. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  310. package/typechain-types/factories/PendleEulerSCY__factory.ts +10 -1
  311. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +65 -3
  312. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +73 -13
  313. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +79 -23
  314. package/typechain-types/factories/PendleMarketFactory__factory.ts +84 -86
  315. package/typechain-types/factories/PendleMarket__factory.ts +131 -37
  316. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  317. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
  318. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  319. package/typechain-types/factories/PendleRouter__factory.ts +141 -22
  320. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
  321. package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
  322. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  323. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +203 -129
  324. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  325. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +1 -1
  326. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +97 -72
  327. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  328. package/typechain-types/factories/RouterStatic__factory.ts +253 -49
  329. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +126 -72
  330. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +93 -41
  331. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +90 -17
  332. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +14 -1
  333. package/typechain-types/hardhat.d.ts +162 -0
  334. package/typechain-types/index.ts +36 -0
  335. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +0 -4
  336. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +0 -4
  337. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +0 -1785
  338. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +0 -4
  339. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +0 -447
  340. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +0 -4
  341. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +0 -4
  342. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +0 -4
  343. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +0 -24
  344. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +0 -4
  345. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +0 -4
  346. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +0 -4
  347. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -874
  348. package/contracts/core/actions/ActionCore.sol +0 -377
  349. package/contracts/core/actions/ActionYT.sol +0 -93
  350. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +0 -303
  351. package/contracts/interfaces/IPActionCore.sol +0 -305
  352. package/contracts/interfaces/IPRouterStatic.sol +0 -152
  353. package/deployments/43113-markets/benqi-market-599408.json +0 -7
  354. package/deployments/43113-markets/benqi-market-93bbf0.json +0 -7
  355. package/deployments/80001-markets/benqi-market-007811.json +0 -7
  356. package/deployments/80001-markets/benqi-market-3fe528.json +0 -7
  357. package/typechain-types/FeeDistributorAbstract.ts +0 -164
  358. package/typechain-types/IPVotingControllerStorage.ts +0 -169
  359. package/typechain-types/factories/FeeDistributorAbstract__factory.ts +0 -90
  360. package/typechain-types/factories/IPVotingControllerStorage__factory.ts +0 -107
@@ -872,7 +872,7 @@ const _abi = [
872
872
  ];
873
873
 
874
874
  const _bytecode =
875
- "0x6101a06040523480156200001257600080fd5b5060405162003d7738038062003d77833981016040819052620000359162000563565b8585828282828282826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200007c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a291906200060d565b6003620000b08482620006c8565b506004620000bf8382620006c8565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390811660a05289811660c05260408051631f06e1a760e11b815290519188169650633e0dc34e955060048082019550602094509192508290030181865afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b919062000794565b61ffff1660e0526001600160a01b038084166101008190526101208490529082166101605260408051633604cef760e11b81529051636c099dee916004808201926020929091908290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e29190620007ae565b6001600160a01b0316610180816001600160a01b031681525050610160516001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002649190620007ae565b6001600160a01b0390811661014052604051631526fe2760e01b81526004810184905282821691851690631526fe2790602401608060405180830381865afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620007cc565b516001600160a01b031614620003265760405162461bcd60e51b815260206004820152600b60248201526a1a5b9d985b1a59081c1a5960aa1b60448201526064015b60405180910390fd5b6101405162000339908560001962000358565b610160516200034c908460001962000358565b5050505050506200087e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620003b691906200083c565b6000604051808303816000865af19150503d8060008114620003f5576040519150601f19603f3d011682016040523d82523d6000602084013e620003fa565b606091505b509150915081801562000428575080511580620004285750808060200190518101906200042891906200085a565b620004655760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016200031d565b5050505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200049f57818101518382015260200162000485565b83811115620004af576000848401525b50505050565b600082601f830112620004c757600080fd5b81516001600160401b0380821115620004e457620004e46200046c565b604051601f8301601f19908116603f011681019082821181831017156200050f576200050f6200046c565b816040528381528660208588010111156200052957600080fd5b6200053c84602083016020890162000482565b9695505050505050565b80516001600160a01b03811681146200055e57600080fd5b919050565b60008060008060008060c087890312156200057d57600080fd5b86516001600160401b03808211156200059557600080fd5b620005a38a838b01620004b5565b97506020890151915080821115620005ba57600080fd5b50620005c989828a01620004b5565b955050620005da6040880162000546565b9350620005ea6060880162000546565b9250608087015191506200060160a0880162000546565b90509295509295509295565b6000602082840312156200062057600080fd5b815160ff811681146200063257600080fd5b9392505050565b600181811c908216806200064e57607f821691505b6020821081036200066f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006c357600081815260208120601f850160051c810160208610156200069e5750805b601f850160051c820191505b81811015620006bf57828155600101620006aa565b5050505b505050565b81516001600160401b03811115620006e457620006e46200046c565b620006fc81620006f5845462000639565b8462000675565b602080601f8311600181146200073457600084156200071b5750858301515b600019600386901b1c1916600185901b178555620006bf565b600085815260208120601f198616915b82811015620007655788860151825594840194600190910190840162000744565b5085821015620007845787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007a757600080fd5b5051919050565b600060208284031215620007c157600080fd5b620006328262000546565b600060808284031215620007df57600080fd5b604051608081016001600160401b03811182821017156200080457620008046200046c565b604052620008128362000546565b81526020830151602082015260408301516040820152606083015160608201528091505092915050565b600082516200085081846020870162000482565b9190910192915050565b6000602082840312156200086d57600080fd5b815180151581146200063257600080fd5b60805160a05160c05160e05161010051610120516101405161016051610180516133d2620009a56000396000818161049901526112fd015260008181610639015281816107d901528181610c2801528181610cbf01528181610dd101528181610df20152818161139f015281816113e4015281816114b301528181611c0a01528181611c70015281816123d80152818161243001526125620152600081816103cf0152818161082d0152610cfa0152600081816106ce015281816115290152818161237a01526127ee0152600081816104ed015281816114fc0152818161234d01526127c10152600081816103880152818161144f01526124ed01526000818161057b0152818161142201526124c001526000610430015260006102c101526133d26000f3fe6080604052600436106101a35760003560e01c806306fdde03146101af578063071bc3c9146101da578063095ea7b3146101fc578063128fced11461022c57806318160ddd1461025957806320e8c5651461027c578063213cae63146101da57806323b872dd1461028f578063313ce567146102af5780633ba0b9a9146102f55780635cbadbe41461030a5780636c9dea8c146103765780636f307dc3146103bd57806370a08231146103fe57806376d5de851461041e578063784367d61461045257806395d89b41146104725780639afb25de14610487578063a2bbcf13146104bb578063a380237e146104db578063a40bee501461050f578063a9059cbb14610533578063a9f8d18114610553578063b298e8e914610569578063b8f82b261461059d578063c4f59f9b146105bd578063cbe52ae3146105d2578063da88ecb4146105f2578063dd62ed3e14610607578063df47be4514610627578063ea64a8201461065b578063ef5cfb8c1461069c578063f1068454146106bc578063f3f094a1146106f0578063f8b2f99114610710578063fa5a4f061461045257600080fd5b366101aa57005b600080fd5b3480156101bb57600080fd5b506101c4610725565b6040516101d19190612dce565b60405180910390f35b3480156101e657600080fd5b506101ef6107b7565b6040516101d19190612e45565b34801561020857600080fd5b5061021c610217366004612e74565b610882565b60405190151581526020016101d1565b34801561023857600080fd5b5061024c610247366004612e9e565b61089c565b6040516101d19190612ee9565b34801561026557600080fd5b5061026e61099e565b6040519081526020016101d1565b61026e61028a366004612efc565b6109ad565b34801561029b57600080fd5b5061021c6102aa366004612f3e565b610b8a565b3480156102bb57600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101d1565b34801561030157600080fd5b5061026e610c08565b34801561031657600080fd5b50610356610325366004612f7a565b60056020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101d1565b34801561038257600080fd5b506103aa7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff90911681526020016101d1565b3480156103c957600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b6040516101d19190612fad565b34801561040a57600080fd5b5061026e610419366004612e9e565b610ca0565b34801561042a57600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561045e57600080fd5b5061021c61046d366004612e9e565b610cbb565b34801561047e57600080fd5b506101c4610d33565b34801561049357600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c757600080fd5b5061026e6104d6366004612f3e565b610d42565b3480156104e757600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561051b57600080fd5b50610524610dc9565b6040516101d193929190612fc1565b34801561053f57600080fd5b5061021c61054e366004612e74565b610e7d565b34801561055f57600080fd5b5061026e60065481565b34801561057557600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a957600080fd5b5061026e6105b8366004612e74565b610eef565b3480156105c957600080fd5b506101ef610f27565b3480156105de57600080fd5b5061026e6105ed366004612e74565b610f31565b3480156105fe57600080fd5b5061024c610f8a565b34801561061357600080fd5b5061026e610622366004612f7a565b61105b565b34801561063357600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561066757600080fd5b50610356610676366004612e9e565b6007602052600090815260409020546001600160801b0380821691600160801b90041682565b3480156106a857600080fd5b5061024c6106b7366004612e9e565b611086565b3480156106c857600080fd5b5061026e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106fc57600080fd5b5061026e61070b366004613003565b611145565b34801561071c57600080fd5b5061024c6111a1565b60606003805461073490613047565b80601f016020809104026020016040519081016040528092919081815260200182805461076090613047565b80156107ad5780601f10610782576101008083540402835291602001916107ad565b820191906000526020600020905b81548152906001019060200180831161079057829003601f168201915b5050505050905090565b60408051600280825260608083018452926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061080b5761080b613097565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061085f5761085f613097565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6000336108908185856111b5565b60019150505b92915050565b606060006108a86112d9565b905080516001600160401b038111156108c3576108c3613081565b6040519080825280602002602001820160405280156108ec578160200160208202803683370190505b50915060005b8151811015610997576001600160a01b0384166000908152600560205260408120835190919084908490811061092a5761092a613097565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b031683828151811061098457610984613097565b60209081029190910101526001016108f2565b5050919050565b6002546001600160f81b031690565b600254600090600119600160f81b90910460ff16016109e75760405162461bcd60e51b81526004016109de906130ad565b60405180910390fd5b600280546001600160f81b0316600160f91b179055610a0584610cbb565b610a215760405162461bcd60e51b81526004016109de906130e4565b82600003610a7f5760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74546f6b656e546f4465706f7369742063616e6e6f74604482015264020626520360dc1b60648201526084016109de565b6001600160a01b038416610ad557823414610ad05760405162461bcd60e51b81526020600482015260116024820152700a686b27440cae8d040dad2e6dac2e8c6d607b1b60448201526064016109de565b610ae0565b610ae084338561132f565b610aea848461139b565b905081811015610b0c5760405162461bcd60e51b81526004016109de90613112565b610b16858261158b565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610b65929190613141565b60405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff1601610bbb5760405162461bcd60e51b81526004016109de906130ad565b600280546001600160f81b0316600160f91b17905533610bdc8582856116a1565b610be785858561171b565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b604051637b669af760e11b8152670de0b6b3a764000060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f6cd35ee90602401602060405180830381865afa158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b919061314f565b905090565b6001600160a01b031660009081526020819052604090205490565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061089657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b60606004805461073490613047565b600254600090600119600160f81b90910460ff1601610d735760405162461bcd60e51b81526004016109de906130ad565b600280546001600160f81b0316600160f91b1790556000610d9330610ca0565b9050610d9f308261193d565b610dab85828686611ac3565b600280546001600160f81b0316600160f81b17905595945050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e729190613168565b925092509250909192565b600254600090600119600160f81b90910460ff1601610eae5760405162461bcd60e51b81526004016109de906130ad565b600280546001600160f81b0316600160f91b17905533610ecf81858561171b565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6000610efa83610cbb565b610f165760405162461bcd60e51b81526004016109de906130e4565b610f208383611c06565b9392505050565b6060610c9b6112d9565b6000610f3c83610cbb565b610f805760405162461bcd60e51b815260206004820152601560248201527414d0d64e88125b9d985b1a59081d1bdad95b93dd5d605a1b60448201526064016109de565b610f208383611c6c565b60606000610f966112d9565b905080516001600160401b03811115610fb157610fb1613081565b604051908082528060200260200182016040528015610fda578160200160208202803683370190505b50915060005b81518110156110565760076000838381518110610fff57610fff613097565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061104357611043613097565b6020908102919091010152600101610fe0565b505090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254606090600119600160f81b90910460ff16016110b75760405162461bcd60e51b81526004016109de906130ad565b600280546001600160f81b0316600160f91b1790556110d582611cc9565b6110df8283611cd7565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6111146112d9565b8360405161112392919061318b565b60405180910390a2600280546001600160f81b0316600160f81b179055919050565b600254600090600119600160f81b90910460ff16016111765760405162461bcd60e51b81526004016109de906130ad565b600280546001600160f81b0316600160f91b179055611195338561193d565b610dab85858585611ac3565b60606111ab611f7f565b5050610c9b610f8a565b6001600160a01b0383166112175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109de565b6001600160a01b0382166112785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109de565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061085f5761085f613097565b6001600160a01b0383166113805780341461137b5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016109de565b505050565b801561137b5761137b6001600160a01b03841683308461221a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036113dd5750806114e5565b60006114087f0000000000000000000000000000000000000000000000000000000000000000612285565b6040516321ec87bf60e21b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906387b21efc9061147b907f000000000000000000000000000000000000000000000000000000000000000090879030906004016131b9565b600060405180830381600087803b15801561149557600080fd5b505af11580156114a9573d6000803e3d6000fd5b50505050806114d77f0000000000000000000000000000000000000000000000000000000000000000612285565b6114e191906131f4565b9150505b604051631c57762b60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e2bbb15890611553907f0000000000000000000000000000000000000000000000000000000000000000908590600401613141565b600060405180830381600087803b15801561156d57600080fd5b505af1158015611581573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0382166115e15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109de565b6115ed6000838361230f565b6115f681612319565b600280546000906116119084906001600160f81b031661320b565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116699190613236565b90915550506040518181526001600160a01b0383169060009060008051602061337d8339815191529060200160405180910390a35050565b60006116ad848461105b565b9050600019811461171557818110156117085760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109de565b61171584848484036111b5565b50505050565b6001600160a01b03831661177f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109de565b6001600160a01b0382166117e15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109de565b816001600160a01b0316836001600160a01b03160361183c5760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016109de565b61184783838361230f565b6001600160a01b038316600090815260208190526040902054818110156118bf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109de565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906118f6908490613236565b92505081905550826001600160a01b0316846001600160a01b031660008051602061337d8339815191528460405161193091815260200190565b60405180910390a3611715565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109de565b6119a98260008361230f565b6001600160a01b03821660009081526020819052604090205481811015611a1d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109de565b6001600160a01b03831660009081526020819052604090208282039055611a4382612319565b60028054600090611a5e9084906001600160f81b031661324e565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b031660008051602061337d83398151915284604051611ab691815260200190565b60405180910390a3505050565b6000611ace83610cbb565b611b125760405162461bcd60e51b815260206004820152601560248201527414d0d64e881a5b9d985b1a59081d1bdad95b93dd5d605a1b60448201526064016109de565b83600003611b705760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74536861726573546f52656465656d2063616e6e6f74604482015264020626520360dc1b60648201526084016109de565b611b7a8385612333565b905081811015611b9c5760405162461bcd60e51b81526004016109de90613112565b611ba7838683612646565b826001600160a01b0316856001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c8785604051611bf6929190613141565b60405180910390a4949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611c48575080610896565b611c50610c08565b611c62670de0b6b3a764000084613276565b610f2091906132ab565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611cae575080610896565b670de0b6b3a7640000611cbf610c08565b611c629084613276565b611cd481600061270a565b50565b60606000611ce36112d9565b905080516001600160401b03811115611cfe57611cfe613081565b604051908082528060200260200182016040528015611d27578160200160208202803683370190505b50915060005b8151811015611f775760056000838381518110611d4c57611d4c613097565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110611dc957611dc9613097565b602002602001018181525050828181518110611de757611de7613097565b6020026020010151600014611f6557600060056000848481518110611e0e57611e0e613097565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550611ea2838281518110611e9557611e95613097565b602002602001015161278a565b60076000848481518110611eb857611eb8613097565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316611f0491906132cd565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611f65828281518110611f3d57611f3d613097565b602002602001015185858481518110611f5857611f58613097565b6020026020010151612646565b80611f6f816132ed565b915050611d2d565b505092915050565b606080611f8a6112d9565b915081516001600160401b03811115611fa557611fa5613081565b604051908082528060200260200182016040528015611fce578160200160208202803683370190505b5090508151600003611fde579091565b436006541461219257436006556000611ff56127a0565b9050611fff6127aa565b60005b835181101561218f57600084828151811061201f5761201f613097565b6020908102919091018101516001600160a01b0381166000908152600790925260408220548751919350600160801b90046001600160801b03169061207d9088908690811061207057612070613097565b6020026020010151612285565b61208791906131f4565b6001600160a01b0383166000908152600760205260408120549192506001600160801b03909116908190036120ba575060015b84156120d7576120ca8286612847565b6120d49082613236565b90505b6120e08161278a565b6001600160a01b038416600090815260076020526040902080546001600160801b0319166001600160801b039290921691909117905561211f8261278a565b6001600160a01b03841660009081526007602052604090208054601090612157908490600160801b90046001600160801b0316613306565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505080612188906132ed565b9050612002565b50505b60005b825181101561221557600760008483815181106121b4576121b4613097565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106121f8576121f8613097565b60209081029190910101528061220d816132ed565b915050612195565b509091565b6040516001600160a01b03808516602483015283166044820152606481018290526117159085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612876565b60006001600160a01b03821615612308576040516370a0823160e01b81526001600160a01b038316906370a08231906122c2903090600401612fad565b602060405180830381865afa1580156122df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612303919061314f565b610896565b4792915050565b61137b838361270a565b60006001600160f81b0382111561232f57600080fd5b5090565b604051630441a3e760e41b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e70906123a4907f0000000000000000000000000000000000000000000000000000000000000000908690600401613141565b600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612416575080610896565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612465903090600401612fad565b602060405180830381865afa158015612482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a6919061314f565b60405163c4de93a560e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c4de93a590612519907f000000000000000000000000000000000000000000000000000000000000000090879030906004016131b9565b6020604051808303816000875af1158015612538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255c919061314f565b915060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016125ac9190612fad565b602060405180830381865afa1580156125c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ed919061314f565b6125f790836131f4565b9050838114611f775760405162461bcd60e51b815260206004820152601b60248201527a696e73756666696369656e742066756e6420746f2072656465656d60281b60448201526064016109de565b8060000361265357505050565b6001600160a01b0383166126f6576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146126ae576040519150601f19603f3d011682016040523d82523d6000602084013e6126b3565b606091505b50509050806117155760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016109de565b61137b6001600160a01b0384168383612948565b600080612715611f7f565b9150915081516000036127285750505050565b6001600160a01b0384161580159061274957506001600160a01b0384163014155b1561275957612759848383612978565b6001600160a01b0383161580159061277a57506001600160a01b0383163014155b1561171557611715838383612978565b60006001600160801b0382111561232f57600080fd5b6000610c9b61099e565b604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e7090612819907f000000000000000000000000000000000000000000000000000000000000000090600090600401613141565b600060405180830381600087803b15801561283357600080fd5b505af1158015611715573d6000803e3d6000fd5b60008061285c670de0b6b3a764000085613276565b905082818161286d5761286d613295565b04949350505050565b60006128cb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612bf89092919063ffffffff16565b80519091501561137b57808060200190518101906128e99190613328565b61137b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109de565b6040516001600160a01b03831660248201526044810182905261137b90849063a9059cbb60e01b9060640161224e565b6001600160a01b0383161580159061299957506001600160a01b0383163014155b6129a5576129a561334a565b60006129b084612c0f565b905060005b8351811015612bf15760008482815181106129d2576129d2613097565b6020026020010151905060008483815181106129f0576129f0613097565b6020908102919091018101516001600160a01b038085166000908152600584526040808220928c168252919093528220549092506001600160801b031690819003612a8c57612a3e8261278a565b6001600160a01b039384166000908152600560209081526040808320968c1683529590529390932080546001600160801b0319166001600160801b039094169390931790925550612be19050565b818103612a9b57505050612be1565b6000612aa782846131f4565b90506000612ab58783612c1a565b6001600160a01b038681166000908152600560209081526040808320938f1683529290529081205491925090612afc908390600160801b90046001600160801b0316613236565b90506040518060400160405280612b128761278a565b6001600160801b03168152602001612b298361278a565b6001600160801b031681525060056000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b612bea816132ed565b90506129b5565b5050505050565b6060612c078484600085612c38565b949350505050565b600061089682610ca0565b600080612c278385613276565b9050670de0b6b3a76400008161286d565b606082471015612c995760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109de565b6001600160a01b0385163b612cf05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109de565b600080866001600160a01b03168587604051612d0c9190613360565b60006040518083038185875af1925050503d8060008114612d49576040519150601f19603f3d011682016040523d82523d6000602084013e612d4e565b606091505b5091509150612d5e828286612d69565b979650505050505050565b60608315612d78575081610f20565b825115612d885782518084602001fd5b8160405162461bcd60e51b81526004016109de9190612dce565b60005b83811015612dbd578181015183820152602001612da5565b838111156117155750506000910152565b6020815260008251806020840152612ded816040850160208701612da2565b601f01601f19169190910160400192915050565b600081518084526020808501945080840160005b83811015612e3a5781516001600160a01b031687529582019590820190600101612e15565b509495945050505050565b602081526000610f206020830184612e01565b80356001600160a01b0381168114612e6f57600080fd5b919050565b60008060408385031215612e8757600080fd5b612e9083612e58565b946020939093013593505050565b600060208284031215612eb057600080fd5b610f2082612e58565b600081518084526020808501945080840160005b83811015612e3a57815187529582019590820190600101612ecd565b602081526000610f206020830184612eb9565b60008060008060808587031215612f1257600080fd5b612f1b85612e58565b9350612f2960208601612e58565b93969395505050506040820135916060013590565b600080600060608486031215612f5357600080fd5b612f5c84612e58565b9250612f6a60208501612e58565b9150604084013590509250925092565b60008060408385031215612f8d57600080fd5b612f9683612e58565b9150612fa460208401612e58565b90509250929050565b6001600160a01b0391909116815260200190565b6060810160028510612fe357634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b6000806000806080858703121561301957600080fd5b61302285612e58565b93506020850135925061303760408601612e58565b9396929550929360600135925050565b600181811c9082168061305b57607f821691505b60208210810361307b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527329a1ac9d1024b73b30b634b2103a37b5b2b724b760611b604082015260600190565b60208082526015908201527414d0d64e881a5b9cdd59999a58da595b9d081bdd5d605a1b604082015260600190565b918252602082015260400190565b60006020828403121561316157600080fd5b5051919050565b60006020828403121561317a57600080fd5b815160ff81168114610f2057600080fd5b60408152600061319e6040830185612e01565b82810360208401526131b08185612eb9565b95945050505050565b61ffff93909316835260208301919091526001600160a01b0316604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015613206576132066131de565b500390565b60006001600160f81b0382811684821680830382111561322d5761322d6131de565b01949350505050565b60008219821115613249576132496131de565b500190565b60006001600160f81b038381169083168181101561326e5761326e6131de565b039392505050565b6000816000190483118215151615613290576132906131de565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826132c857634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160801b038381169083168181101561326e5761326e6131de565b6000600182016132ff576132ff6131de565b5060010190565b60006001600160801b0382811684821680830382111561322d5761322d6131de565b60006020828403121561333a57600080fd5b81518015158114610f2057600080fd5b634e487b7160e01b600052600160045260246000fd5b60008251613372818460208701612da2565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f1d0c6351da823df79ab26b1c4a8d840d019f1df0bd7ffbe6c4a7ef486c9922064736f6c634300080f0033";
875
+ "0x6101a06040523480156200001257600080fd5b5060405162003d8138038062003d81833981016040819052620000359162000563565b8585828282828282826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200007c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a291906200060d565b6003620000b08482620006c8565b506004620000bf8382620006c8565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390811660a05289811660c05260408051631f06e1a760e11b815290519188169650633e0dc34e955060048082019550602094509192508290030181865afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b919062000794565b61ffff1660e0526001600160a01b038084166101008190526101208490529082166101605260408051633604cef760e11b81529051636c099dee916004808201926020929091908290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e29190620007ae565b6001600160a01b0316610180816001600160a01b031681525050610160516001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002649190620007ae565b6001600160a01b0390811661014052604051631526fe2760e01b81526004810184905282821691851690631526fe2790602401608060405180830381865afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620007cc565b516001600160a01b031614620003265760405162461bcd60e51b815260206004820152600b60248201526a1a5b9d985b1a59081c1a5960aa1b60448201526064015b60405180910390fd5b6101405162000339908560001962000358565b610160516200034c908460001962000358565b5050505050506200087e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620003b691906200083c565b6000604051808303816000865af19150503d8060008114620003f5576040519150601f19603f3d011682016040523d82523d6000602084013e620003fa565b606091505b509150915081801562000428575080511580620004285750808060200190518101906200042891906200085a565b620004655760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064016200031d565b5050505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200049f57818101518382015260200162000485565b83811115620004af576000848401525b50505050565b600082601f830112620004c757600080fd5b81516001600160401b0380821115620004e457620004e46200046c565b604051601f8301601f19908116603f011681019082821181831017156200050f576200050f6200046c565b816040528381528660208588010111156200052957600080fd5b6200053c84602083016020890162000482565b9695505050505050565b80516001600160a01b03811681146200055e57600080fd5b919050565b60008060008060008060c087890312156200057d57600080fd5b86516001600160401b03808211156200059557600080fd5b620005a38a838b01620004b5565b97506020890151915080821115620005ba57600080fd5b50620005c989828a01620004b5565b955050620005da6040880162000546565b9350620005ea6060880162000546565b9250608087015191506200060160a0880162000546565b90509295509295509295565b6000602082840312156200062057600080fd5b815160ff811681146200063257600080fd5b9392505050565b600181811c908216806200064e57607f821691505b6020821081036200066f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006c357600081815260208120601f850160051c810160208610156200069e5750805b601f850160051c820191505b81811015620006bf57828155600101620006aa565b5050505b505050565b81516001600160401b03811115620006e457620006e46200046c565b620006fc81620006f5845462000639565b8462000675565b602080601f8311600181146200073457600084156200071b5750858301515b600019600386901b1c1916600185901b178555620006bf565b600085815260208120601f198616915b82811015620007655788860151825594840194600190910190840162000744565b5085821015620007845787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007a757600080fd5b5051919050565b600060208284031215620007c157600080fd5b620006328262000546565b600060808284031215620007df57600080fd5b604051608081016001600160401b03811182821017156200080457620008046200046c565b604052620008128362000546565b81526020830151602082015260408301516040820152606083015160608201528091505092915050565b600082516200085081846020870162000482565b9190910192915050565b6000602082840312156200086d57600080fd5b815180151581146200063257600080fd5b60805160a05160c05160e05161010051610120516101405161016051610180516133dc620009a5600039600081816104990152611307015260008181610639015281816107d901528181610c3201528181610cc901528181610ddb01528181610dfc015281816113a9015281816113ee015281816114bd01528181611c1401528181611c7a015281816123e20152818161243a015261256c0152600081816103cf0152818161082d0152610d040152600081816106ce015281816115330152818161238401526127f80152600081816104ed015281816115060152818161235701526127cb0152600081816103880152818161145901526124f701526000818161057b0152818161142c01526124ca01526000610430015260006102c101526133dc6000f3fe6080604052600436106101a35760003560e01c806306fdde03146101af578063071bc3c9146101da578063095ea7b3146101fc578063128fced11461022c57806318160ddd1461025957806320e8c5651461027c578063213cae63146101da57806323b872dd1461028f578063313ce567146102af5780633ba0b9a9146102f55780635cbadbe41461030a5780636c9dea8c146103765780636f307dc3146103bd57806370a08231146103fe57806376d5de851461041e578063784367d61461045257806395d89b41146104725780639afb25de14610487578063a2bbcf13146104bb578063a380237e146104db578063a40bee501461050f578063a9059cbb14610533578063a9f8d18114610553578063b298e8e914610569578063b8f82b261461059d578063c4f59f9b146105bd578063cbe52ae3146105d2578063da88ecb4146105f2578063dd62ed3e14610607578063df47be4514610627578063ea64a8201461065b578063ef5cfb8c1461069c578063f1068454146106bc578063f3f094a1146106f0578063f8b2f99114610710578063fa5a4f061461045257600080fd5b366101aa57005b600080fd5b3480156101bb57600080fd5b506101c4610725565b6040516101d19190612dd8565b60405180910390f35b3480156101e657600080fd5b506101ef6107b7565b6040516101d19190612e4f565b34801561020857600080fd5b5061021c610217366004612e7e565b610882565b60405190151581526020016101d1565b34801561023857600080fd5b5061024c610247366004612ea8565b61089c565b6040516101d19190612ef3565b34801561026557600080fd5b5061026e6109a8565b6040519081526020016101d1565b61026e61028a366004612f06565b6109b7565b34801561029b57600080fd5b5061021c6102aa366004612f48565b610b94565b3480156102bb57600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101d1565b34801561030157600080fd5b5061026e610c12565b34801561031657600080fd5b50610356610325366004612f84565b60056020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101d1565b34801561038257600080fd5b506103aa7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff90911681526020016101d1565b3480156103c957600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b6040516101d19190612fb7565b34801561040a57600080fd5b5061026e610419366004612ea8565b610caa565b34801561042a57600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561045e57600080fd5b5061021c61046d366004612ea8565b610cc5565b34801561047e57600080fd5b506101c4610d3d565b34801561049357600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c757600080fd5b5061026e6104d6366004612f48565b610d4c565b3480156104e757600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561051b57600080fd5b50610524610dd3565b6040516101d193929190612fcb565b34801561053f57600080fd5b5061021c61054e366004612e7e565b610e87565b34801561055f57600080fd5b5061026e60065481565b34801561057557600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a957600080fd5b5061026e6105b8366004612e7e565b610ef9565b3480156105c957600080fd5b506101ef610f31565b3480156105de57600080fd5b5061026e6105ed366004612e7e565b610f3b565b3480156105fe57600080fd5b5061024c610f94565b34801561061357600080fd5b5061026e610622366004612f84565b611065565b34801561063357600080fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561066757600080fd5b50610356610676366004612ea8565b6007602052600090815260409020546001600160801b0380821691600160801b90041682565b3480156106a857600080fd5b5061024c6106b7366004612ea8565b611090565b3480156106c857600080fd5b5061026e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106fc57600080fd5b5061026e61070b36600461300d565b61114f565b34801561071c57600080fd5b5061024c6111ab565b60606003805461073490613051565b80601f016020809104026020016040519081016040528092919081815260200182805461076090613051565b80156107ad5780601f10610782576101008083540402835291602001916107ad565b820191906000526020600020905b81548152906001019060200180831161079057829003601f168201915b5050505050905090565b60408051600280825260608083018452926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061080b5761080b6130a1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061085f5761085f6130a1565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6000336108908185856111bf565b60019150505b92915050565b606060006108a86112e3565b905080516001600160401b038111156108c3576108c361308b565b6040519080825280602002602001820160405280156108ec578160200160208202803683370190505b50915060005b81518110156109a15760056000838381518110610911576109116130a1565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b031683828151811061098e5761098e6130a1565b60209081029190910101526001016108f2565b5050919050565b6002546001600160f81b031690565b600254600090600119600160f81b90910460ff16016109f15760405162461bcd60e51b81526004016109e8906130b7565b60405180910390fd5b600280546001600160f81b0316600160f91b179055610a0f84610cc5565b610a2b5760405162461bcd60e51b81526004016109e8906130ee565b82600003610a895760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74546f6b656e546f4465706f7369742063616e6e6f74604482015264020626520360dc1b60648201526084016109e8565b6001600160a01b038416610adf57823414610ada5760405162461bcd60e51b81526020600482015260116024820152700a686b27440cae8d040dad2e6dac2e8c6d607b1b60448201526064016109e8565b610aea565b610aea843385611339565b610af484846113a5565b905081811015610b165760405162461bcd60e51b81526004016109e89061311c565b610b208582611595565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610b6f92919061314b565b60405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff1601610bc55760405162461bcd60e51b81526004016109e8906130b7565b600280546001600160f81b0316600160f91b17905533610be68582856116ab565b610bf1858585611725565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b604051637b669af760e11b8152670de0b6b3a764000060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f6cd35ee90602401602060405180830381865afa158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca59190613159565b905090565b6001600160a01b031660009081526020819052604090205490565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061089657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b60606004805461073490613051565b600254600090600119600160f81b90910460ff1601610d7d5760405162461bcd60e51b81526004016109e8906130b7565b600280546001600160f81b0316600160f91b1790556000610d9d30610caa565b9050610da93082611947565b610db585828686611acd565b600280546001600160f81b0316600160f81b17905595945050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190613172565b925092509250909192565b600254600090600119600160f81b90910460ff1601610eb85760405162461bcd60e51b81526004016109e8906130b7565b600280546001600160f81b0316600160f91b17905533610ed9818585611725565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6000610f0483610cc5565b610f205760405162461bcd60e51b81526004016109e8906130ee565b610f2a8383611c10565b9392505050565b6060610ca56112e3565b6000610f4683610cc5565b610f8a5760405162461bcd60e51b815260206004820152601560248201527414d0d64e88125b9d985b1a59081d1bdad95b93dd5d605a1b60448201526064016109e8565b610f2a8383611c76565b60606000610fa06112e3565b905080516001600160401b03811115610fbb57610fbb61308b565b604051908082528060200260200182016040528015610fe4578160200160208202803683370190505b50915060005b81518110156110605760076000838381518110611009576110096130a1565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061104d5761104d6130a1565b6020908102919091010152600101610fea565b505090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254606090600119600160f81b90910460ff16016110c15760405162461bcd60e51b81526004016109e8906130b7565b600280546001600160f81b0316600160f91b1790556110df82611cd3565b6110e98283611ce1565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f61111e6112e3565b8360405161112d929190613195565b60405180910390a2600280546001600160f81b0316600160f81b179055919050565b600254600090600119600160f81b90910460ff16016111805760405162461bcd60e51b81526004016109e8906130b7565b600280546001600160f81b0316600160f91b17905561119f3385611947565b610db585858585611acd565b60606111b5611f89565b5050610ca5610f94565b6001600160a01b0383166112215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109e8565b6001600160a01b0382166112825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109e8565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061085f5761085f6130a1565b6001600160a01b03831661138a578034146113855760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064016109e8565b505050565b8015611385576113856001600160a01b038416833084612224565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036113e75750806114ef565b60006114127f000000000000000000000000000000000000000000000000000000000000000061228f565b6040516321ec87bf60e21b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906387b21efc90611485907f000000000000000000000000000000000000000000000000000000000000000090879030906004016131c3565b600060405180830381600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b50505050806114e17f000000000000000000000000000000000000000000000000000000000000000061228f565b6114eb91906131fe565b9150505b604051631c57762b60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e2bbb1589061155d907f000000000000000000000000000000000000000000000000000000000000000090859060040161314b565b600060405180830381600087803b15801561157757600080fd5b505af115801561158b573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0382166115eb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109e8565b6115f760008383612319565b61160081612323565b6002805460009061161b9084906001600160f81b0316613215565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116739190613240565b90915550506040518181526001600160a01b038316906000906000805160206133878339815191529060200160405180910390a35050565b60006116b78484611065565b9050600019811461171f57818110156117125760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109e8565b61171f84848484036111bf565b50505050565b6001600160a01b0383166117895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109e8565b6001600160a01b0382166117eb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109e8565b816001600160a01b0316836001600160a01b0316036118465760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016109e8565b611851838383612319565b6001600160a01b038316600090815260208190526040902054818110156118c95760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109e8565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611900908490613240565b92505081905550826001600160a01b0316846001600160a01b03166000805160206133878339815191528460405161193a91815260200190565b60405180910390a361171f565b6001600160a01b0382166119a75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109e8565b6119b382600083612319565b6001600160a01b03821660009081526020819052604090205481811015611a275760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109e8565b6001600160a01b03831660009081526020819052604090208282039055611a4d82612323565b60028054600090611a689084906001600160f81b0316613258565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b031660008051602061338783398151915284604051611ac091815260200190565b60405180910390a3505050565b6000611ad883610cc5565b611b1c5760405162461bcd60e51b815260206004820152601560248201527414d0d64e881a5b9d985b1a59081d1bdad95b93dd5d605a1b60448201526064016109e8565b83600003611b7a5760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74536861726573546f52656465656d2063616e6e6f74604482015264020626520360dc1b60648201526084016109e8565b611b84838561233d565b905081811015611ba65760405162461bcd60e51b81526004016109e89061311c565b611bb1838683612650565b826001600160a01b0316856001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c8785604051611c0092919061314b565b60405180910390a4949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611c52575080610896565b611c5a610c12565b611c6c670de0b6b3a764000084613280565b610f2a91906132b5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611cb8575080610896565b670de0b6b3a7640000611cc9610c12565b611c6c9084613280565b611cde816000612714565b50565b60606000611ced6112e3565b905080516001600160401b03811115611d0857611d0861308b565b604051908082528060200260200182016040528015611d31578160200160208202803683370190505b50915060005b8151811015611f815760056000838381518110611d5657611d566130a1565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110611dd357611dd36130a1565b602002602001018181525050828181518110611df157611df16130a1565b6020026020010151600014611f6f57600060056000848481518110611e1857611e186130a1565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550611eac838281518110611e9f57611e9f6130a1565b6020026020010151612794565b60076000848481518110611ec257611ec26130a1565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316611f0e91906132d7565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611f6f828281518110611f4757611f476130a1565b602002602001015185858481518110611f6257611f626130a1565b6020026020010151612650565b80611f79816132f7565b915050611d37565b505092915050565b606080611f946112e3565b915081516001600160401b03811115611faf57611faf61308b565b604051908082528060200260200182016040528015611fd8578160200160208202803683370190505b5090508151600003611fe8579091565b436006541461219c57436006556000611fff6127aa565b90506120096127b4565b60005b8351811015612199576000848281518110612029576120296130a1565b6020908102919091018101516001600160a01b0381166000908152600790925260408220548751919350600160801b90046001600160801b0316906120879088908690811061207a5761207a6130a1565b602002602001015161228f565b61209191906131fe565b6001600160a01b0383166000908152600760205260408120549192506001600160801b03909116908190036120c4575060015b84156120e1576120d48286612851565b6120de9082613240565b90505b6120ea81612794565b6001600160a01b038416600090815260076020526040902080546001600160801b0319166001600160801b039290921691909117905561212982612794565b6001600160a01b03841660009081526007602052604090208054601090612161908490600160801b90046001600160801b0316613310565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505080612192906132f7565b905061200c565b50505b60005b825181101561221f57600760008483815181106121be576121be6130a1565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b0390911690839083908110612202576122026130a1565b602090810291909101015280612217816132f7565b91505061219f565b509091565b6040516001600160a01b038085166024830152831660448201526064810182905261171f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612880565b60006001600160a01b03821615612312576040516370a0823160e01b81526001600160a01b038316906370a08231906122cc903090600401612fb7565b602060405180830381865afa1580156122e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230d9190613159565b610896565b4792915050565b6113858383612714565b60006001600160f81b0382111561233957600080fd5b5090565b604051630441a3e760e41b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e70906123ae907f000000000000000000000000000000000000000000000000000000000000000090869060040161314b565b600060405180830381600087803b1580156123c857600080fd5b505af11580156123dc573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612420575080610896565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061246f903090600401612fb7565b602060405180830381865afa15801561248c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b09190613159565b60405163c4de93a560e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c4de93a590612523907f000000000000000000000000000000000000000000000000000000000000000090879030906004016131c3565b6020604051808303816000875af1158015612542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125669190613159565b915060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016125b69190612fb7565b602060405180830381865afa1580156125d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f79190613159565b61260190836131fe565b9050838114611f815760405162461bcd60e51b815260206004820152601b60248201527a696e73756666696369656e742066756e6420746f2072656465656d60281b60448201526064016109e8565b8060000361265d57505050565b6001600160a01b038316612700576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146126b8576040519150601f19603f3d011682016040523d82523d6000602084013e6126bd565b606091505b505090508061171f5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016109e8565b6113856001600160a01b0384168383612952565b60008061271f611f89565b9150915081516000036127325750505050565b6001600160a01b0384161580159061275357506001600160a01b0384163014155b1561276357612763848383612982565b6001600160a01b0383161580159061278457506001600160a01b0383163014155b1561171f5761171f838383612982565b60006001600160801b0382111561233957600080fd5b6000610ca56109a8565b604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e7090612823907f00000000000000000000000000000000000000000000000000000000000000009060009060040161314b565b600060405180830381600087803b15801561283d57600080fd5b505af115801561171f573d6000803e3d6000fd5b600080612866670de0b6b3a764000085613280565b90508281816128775761287761329f565b04949350505050565b60006128d5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612c029092919063ffffffff16565b80519091501561138557808060200190518101906128f39190613332565b6113855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109e8565b6040516001600160a01b03831660248201526044810182905261138590849063a9059cbb60e01b90606401612258565b6001600160a01b038316158015906129a357506001600160a01b0383163014155b6129af576129af613354565b60006129ba84612c19565b905060005b8351811015612bfb5760008482815181106129dc576129dc6130a1565b6020026020010151905060008483815181106129fa576129fa6130a1565b6020908102919091018101516001600160a01b038085166000908152600584526040808220928c168252919093528220549092506001600160801b031690819003612a9657612a4882612794565b6001600160a01b039384166000908152600560209081526040808320968c1683529590529390932080546001600160801b0319166001600160801b039094169390931790925550612beb9050565b818103612aa557505050612beb565b6000612ab182846131fe565b90506000612abf8783612c24565b6001600160a01b038681166000908152600560209081526040808320938f1683529290529081205491925090612b06908390600160801b90046001600160801b0316613240565b90506040518060400160405280612b1c87612794565b6001600160801b03168152602001612b3383612794565b6001600160801b031681525060056000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b612bf4816132f7565b90506129bf565b5050505050565b6060612c118484600085612c42565b949350505050565b600061089682610caa565b600080612c318385613280565b9050670de0b6b3a764000081612877565b606082471015612ca35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109e8565b6001600160a01b0385163b612cfa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109e8565b600080866001600160a01b03168587604051612d16919061336a565b60006040518083038185875af1925050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5091509150612d68828286612d73565b979650505050505050565b60608315612d82575081610f2a565b825115612d925782518084602001fd5b8160405162461bcd60e51b81526004016109e89190612dd8565b60005b83811015612dc7578181015183820152602001612daf565b8381111561171f5750506000910152565b6020815260008251806020840152612df7816040850160208701612dac565b601f01601f19169190910160400192915050565b600081518084526020808501945080840160005b83811015612e445781516001600160a01b031687529582019590820190600101612e1f565b509495945050505050565b602081526000610f2a6020830184612e0b565b80356001600160a01b0381168114612e7957600080fd5b919050565b60008060408385031215612e9157600080fd5b612e9a83612e62565b946020939093013593505050565b600060208284031215612eba57600080fd5b610f2a82612e62565b600081518084526020808501945080840160005b83811015612e4457815187529582019590820190600101612ed7565b602081526000610f2a6020830184612ec3565b60008060008060808587031215612f1c57600080fd5b612f2585612e62565b9350612f3360208601612e62565b93969395505050506040820135916060013590565b600080600060608486031215612f5d57600080fd5b612f6684612e62565b9250612f7460208501612e62565b9150604084013590509250925092565b60008060408385031215612f9757600080fd5b612fa083612e62565b9150612fae60208401612e62565b90509250929050565b6001600160a01b0391909116815260200190565b6060810160028510612fed57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b6000806000806080858703121561302357600080fd5b61302c85612e62565b93506020850135925061304160408601612e62565b9396929550929360600135925050565b600181811c9082168061306557607f821691505b60208210810361308557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527329a1ac9d1024b73b30b634b2103a37b5b2b724b760611b604082015260600190565b60208082526015908201527414d0d64e881a5b9cdd59999a58da595b9d081bdd5d605a1b604082015260600190565b918252602082015260400190565b60006020828403121561316b57600080fd5b5051919050565b60006020828403121561318457600080fd5b815160ff81168114610f2a57600080fd5b6040815260006131a86040830185612e0b565b82810360208401526131ba8185612ec3565b95945050505050565b61ffff93909316835260208301919091526001600160a01b0316604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015613210576132106131e8565b500390565b60006001600160f81b03828116848216808303821115613237576132376131e8565b01949350505050565b60008219821115613253576132536131e8565b500190565b60006001600160f81b0383811690831681811015613278576132786131e8565b039392505050565b600081600019048311821515161561329a5761329a6131e8565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826132d257634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160801b0383811690831681811015613278576132786131e8565b600060018201613309576133096131e8565b5060010190565b60006001600160801b03828116848216808303821115613237576132376131e8565b60006020828403121561334457600080fd5b81518015158114610f2a57600080fd5b634e487b7160e01b600052600160045260246000fd5b6000825161337c818460208701612dac565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220aa114e48df845eca97374294862db3d9d211cc67dbd5d1196397674c5234c2c664736f6c634300080f0033";
876
876
 
877
877
  type PendleStargateSCYConstructorParams =
878
878
  | [signer?: Signer]