@pendle/core-v2 0.8.1-beta → 0.9.0-gamma-2

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 (308) 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 +4 -0
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +833 -0
  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 +4 -0
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +723 -0
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +4 -0
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +723 -0
  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 +20 -2
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +2 -2
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +4 -0
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +784 -0
  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/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +2 -2
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  33. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +47 -28
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +66 -4
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +26 -2
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +24 -0
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  47. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  50. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -77
  53. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  55. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +21 -96
  57. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  59. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +272 -136
  61. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +75 -41
  63. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json +1 -1
  65. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json +1 -1
  67. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +1 -1
  69. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +4 -0
  79. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +162 -0
  80. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +4 -0
  81. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +87 -0
  82. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +268 -132
  84. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +71 -37
  86. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +339 -169
  88. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +23 -23
  100. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +24 -0
  102. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +27 -27
  107. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +199 -0
  113. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +4 -0
  114. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +168 -0
  115. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +4 -0
  116. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +92 -0
  117. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +4 -0
  122. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +252 -0
  123. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  127. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  128. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  129. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  130. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  131. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  132. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  133. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  134. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +4 -0
  135. package/build/artifacts/contracts/libraries/{SCY/SCYIndex.sol/SCYIndexLib.json → helpers/PYIndex.sol/PYIndexLib.json} +4 -4
  136. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  138. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
  139. package/build/artifacts/contracts/libraries/{traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json → kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json} +3 -3
  140. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  143. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  144. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  145. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  148. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  149. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +39 -39
  150. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  151. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol +242 -0
  152. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +1 -1
  153. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +146 -0
  154. package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +170 -0
  155. package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +33 -6
  156. package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +182 -0
  157. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +19 -10
  158. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -1
  159. package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
  160. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +26 -8
  161. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +0 -4
  162. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +30 -13
  163. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +2 -4
  164. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +5 -1
  165. package/contracts/core/Market/PendleMarket.sol +4 -5
  166. package/contracts/core/Market/PendleMarketFactory.sol +1 -1
  167. package/contracts/core/PendleRouter.sol +10 -10
  168. package/contracts/core/YieldContracts/InterestManagerYT.sol +0 -2
  169. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  170. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +2 -2
  171. package/contracts/core/YieldContracts/PendleYieldToken.sol +24 -25
  172. package/contracts/core/actions/ActionCallback.sol +7 -7
  173. package/contracts/core/actions/ActionCore.sol +54 -81
  174. package/contracts/core/actions/ActionYT.sol +17 -37
  175. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +21 -37
  176. package/contracts/core/actions/base/ActionSCYAndPYBase.sol +39 -51
  177. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +14 -31
  178. package/contracts/interfaces/IEulerEToken.sol +60 -0
  179. package/contracts/interfaces/IEulerMarkets.sol +46 -0
  180. package/contracts/interfaces/IPActionCore.sol +43 -50
  181. package/contracts/interfaces/IPActionYT.sol +11 -12
  182. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  183. package/contracts/interfaces/IPMarket.sol +1 -0
  184. package/contracts/interfaces/IPRouterStatic.sol +2 -7
  185. package/contracts/interfaces/IPVeToken.sol +2 -0
  186. package/contracts/interfaces/IPYieldToken.sol +2 -2
  187. package/contracts/interfaces/ISAvax.sol +61 -0
  188. package/contracts/interfaces/ISJoe.sol +60 -0
  189. package/contracts/interfaces/IStETH.sol +14 -0
  190. package/contracts/interfaces/IWAvax.sol +34 -0
  191. package/contracts/libraries/helpers/PYIndex.sol +69 -0
  192. package/contracts/libraries/helpers/TokenHelper.sol +8 -3
  193. package/contracts/libraries/kyberswap/KyberSwapHelper.sol +61 -0
  194. package/contracts/libraries/math/MarketApproxLib.sol +5 -5
  195. package/contracts/libraries/math/MarketMathCore.sol +10 -10
  196. package/contracts/offchain-helpers/RouterStatic.sol +21 -39
  197. package/deployments/43113-benqi.json +2 -2
  198. package/deployments/43113-core.json +7 -7
  199. package/deployments/43113-markets/benqi-market-599408.json +7 -0
  200. package/deployments/43113-markets/benqi-market-93bbf0.json +7 -0
  201. package/deployments/80001-benqi.json +2 -2
  202. package/deployments/80001-core.json +6 -6
  203. package/deployments/80001-markets/benqi-market-007811.json +7 -0
  204. package/deployments/80001-markets/benqi-market-3fe528.json +7 -0
  205. package/package.json +1 -1
  206. package/typechain-types/ActionCore.ts +330 -356
  207. package/typechain-types/ActionSCYAndPTBase.ts +11 -8
  208. package/typechain-types/ActionSCYAndPYBase.ts +11 -8
  209. package/typechain-types/ActionSCYAndYTBase.ts +11 -8
  210. package/typechain-types/ActionYT.ts +119 -106
  211. package/typechain-types/CelerSenderUpg.ts +16 -16
  212. package/typechain-types/IERC20Upgradeable.ts +300 -0
  213. package/typechain-types/IEulerEToken.ts +320 -0
  214. package/typechain-types/IEulerMarkets.ts +204 -0
  215. package/typechain-types/IPActionCore.ts +320 -349
  216. package/typechain-types/IPActionYT.ts +110 -100
  217. package/typechain-types/IPAllAction.ts +400 -447
  218. package/typechain-types/IPInterestManagerYT.ts +3 -3
  219. package/typechain-types/IPRouterStatic.ts +60 -118
  220. package/typechain-types/IPVeToken.ts +34 -0
  221. package/typechain-types/IPYieldToken.ts +47 -47
  222. package/typechain-types/ISAvax.ts +430 -0
  223. package/typechain-types/ISJoe.ts +340 -0
  224. package/typechain-types/IStETH.ts +201 -0
  225. package/typechain-types/IWAvax.ts +380 -0
  226. package/typechain-types/KyberSwapHelper.ts +87 -0
  227. package/typechain-types/PendleEulerSCY.ts +965 -0
  228. package/typechain-types/PendlePrincipalToken.ts +0 -104
  229. package/typechain-types/PendleQiSAvaxSCY.ts +1098 -0
  230. package/typechain-types/PendleSAvaxSCY.ts +962 -0
  231. package/typechain-types/PendleSJoeSCY.ts +1053 -0
  232. package/typechain-types/PendleVotingControllerUpg.ts +89 -55
  233. package/typechain-types/PendleWstEthSCY.ts +13 -0
  234. package/typechain-types/PendleYieldToken.ts +44 -148
  235. package/typechain-types/RouterStatic.ts +133 -299
  236. package/typechain-types/VotingEscrowPendleMainchain.ts +118 -16
  237. package/typechain-types/VotingEscrowPendleSidechain.ts +34 -0
  238. package/typechain-types/VotingEscrowTokenBase.ts +34 -0
  239. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  240. package/typechain-types/factories/ActionCore__factory.ts +275 -139
  241. package/typechain-types/factories/ActionSCYAndPTBase__factory.ts +1 -1
  242. package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +1 -1
  243. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +1 -1
  244. package/typechain-types/factories/ActionYT__factory.ts +78 -44
  245. package/typechain-types/factories/CelerSenderUpg__factory.ts +2 -2
  246. package/typechain-types/factories/IERC20Upgradeable__factory.ts +209 -0
  247. package/typechain-types/factories/IEulerEToken__factory.ts +174 -0
  248. package/typechain-types/factories/IEulerMarkets__factory.ts +99 -0
  249. package/typechain-types/factories/IPActionCore__factory.ts +268 -132
  250. package/typechain-types/factories/IPActionYT__factory.ts +71 -37
  251. package/typechain-types/factories/IPAllAction__factory.ts +339 -169
  252. package/typechain-types/factories/IPInterestManagerYT__factory.ts +1 -1
  253. package/typechain-types/factories/IPRouterStatic__factory.ts +23 -23
  254. package/typechain-types/factories/IPVeToken__factory.ts +24 -0
  255. package/typechain-types/factories/IPYieldToken__factory.ts +27 -27
  256. package/typechain-types/factories/ISAvax__factory.ts +208 -0
  257. package/typechain-types/factories/ISJoe__factory.ts +177 -0
  258. package/typechain-types/factories/IStETH__factory.ts +101 -0
  259. package/typechain-types/factories/IWAvax__factory.ts +261 -0
  260. package/typechain-types/factories/KyberSwapHelper__factory.ts +39 -0
  261. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  262. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  263. package/typechain-types/factories/PendleEulerSCY__factory.ts +796 -0
  264. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  265. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  266. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  267. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  268. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -76
  269. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +917 -0
  270. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  271. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  272. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +796 -0
  273. package/typechain-types/factories/PendleSJoeSCY__factory.ts +845 -0
  274. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  275. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +45 -26
  276. package/typechain-types/factories/PendleWstEthSCY__factory.ts +29 -2
  277. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +1 -1
  278. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  279. package/typechain-types/factories/PendleYieldToken__factory.ts +19 -94
  280. package/typechain-types/factories/RouterStatic__factory.ts +38 -38
  281. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +65 -3
  282. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +25 -1
  283. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +24 -0
  284. package/typechain-types/hardhat.d.ts +107 -17
  285. package/typechain-types/index.ts +24 -4
  286. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  287. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
  288. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +0 -4
  289. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.json +0 -662
  290. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +0 -4
  291. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.json +0 -760
  292. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +0 -4
  293. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.json +0 -962
  294. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +0 -4
  295. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +0 -4
  296. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +0 -10
  297. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +0 -4
  298. package/contracts/core/PendleERC20Permit.sol +0 -84
  299. package/contracts/interfaces/IJoePair.sol +0 -98
  300. package/contracts/interfaces/IJoeRouter01.sol +0 -162
  301. package/contracts/interfaces/IJoeRouter02.sol +0 -52
  302. package/contracts/libraries/SCY/SCYIndex.sol +0 -72
  303. package/contracts/libraries/traderjoe/JoeLibrary.sol +0 -122
  304. package/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol +0 -80
  305. package/deployments/43113-markets/benqi-market-4Ccb97.json +0 -7
  306. package/deployments/43113-markets/benqi-market-534471.json +0 -7
  307. package/deployments/80001-markets/benqi-market-109acB.json +0 -7
  308. package/deployments/80001-markets/benqi-market-4e470E.json +0 -7
@@ -0,0 +1,784 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleSJoeSCY",
4
+ "sourceName": "contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "string",
10
+ "name": "_name",
11
+ "type": "string"
12
+ },
13
+ {
14
+ "internalType": "string",
15
+ "name": "_symbol",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_sJOE",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "address",
33
+ "name": "owner",
34
+ "type": "address"
35
+ },
36
+ {
37
+ "indexed": true,
38
+ "internalType": "address",
39
+ "name": "spender",
40
+ "type": "address"
41
+ },
42
+ {
43
+ "indexed": false,
44
+ "internalType": "uint256",
45
+ "name": "value",
46
+ "type": "uint256"
47
+ }
48
+ ],
49
+ "name": "Approval",
50
+ "type": "event"
51
+ },
52
+ {
53
+ "anonymous": false,
54
+ "inputs": [
55
+ {
56
+ "indexed": true,
57
+ "internalType": "address",
58
+ "name": "user",
59
+ "type": "address"
60
+ },
61
+ {
62
+ "indexed": false,
63
+ "internalType": "address[]",
64
+ "name": "rewardTokens",
65
+ "type": "address[]"
66
+ },
67
+ {
68
+ "indexed": false,
69
+ "internalType": "uint256[]",
70
+ "name": "rewardAmounts",
71
+ "type": "uint256[]"
72
+ }
73
+ ],
74
+ "name": "ClaimRewards",
75
+ "type": "event"
76
+ },
77
+ {
78
+ "anonymous": false,
79
+ "inputs": [
80
+ {
81
+ "indexed": true,
82
+ "internalType": "address",
83
+ "name": "caller",
84
+ "type": "address"
85
+ },
86
+ {
87
+ "indexed": true,
88
+ "internalType": "address",
89
+ "name": "receiver",
90
+ "type": "address"
91
+ },
92
+ {
93
+ "indexed": true,
94
+ "internalType": "address",
95
+ "name": "tokenIn",
96
+ "type": "address"
97
+ },
98
+ {
99
+ "indexed": false,
100
+ "internalType": "uint256",
101
+ "name": "amountDeposited",
102
+ "type": "uint256"
103
+ },
104
+ {
105
+ "indexed": false,
106
+ "internalType": "uint256",
107
+ "name": "amountScyOut",
108
+ "type": "uint256"
109
+ }
110
+ ],
111
+ "name": "Deposit",
112
+ "type": "event"
113
+ },
114
+ {
115
+ "anonymous": false,
116
+ "inputs": [
117
+ {
118
+ "indexed": true,
119
+ "internalType": "address",
120
+ "name": "caller",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "indexed": true,
125
+ "internalType": "address",
126
+ "name": "receiver",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": true,
131
+ "internalType": "address",
132
+ "name": "tokenOut",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "indexed": false,
137
+ "internalType": "uint256",
138
+ "name": "amountScyToRedeem",
139
+ "type": "uint256"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "uint256",
144
+ "name": "amountTokenOut",
145
+ "type": "uint256"
146
+ }
147
+ ],
148
+ "name": "Redeem",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": true,
156
+ "internalType": "address",
157
+ "name": "from",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "to",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": false,
168
+ "internalType": "uint256",
169
+ "name": "value",
170
+ "type": "uint256"
171
+ }
172
+ ],
173
+ "name": "Transfer",
174
+ "type": "event"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "JOE",
179
+ "outputs": [
180
+ {
181
+ "internalType": "address",
182
+ "name": "",
183
+ "type": "address"
184
+ }
185
+ ],
186
+ "stateMutability": "view",
187
+ "type": "function"
188
+ },
189
+ {
190
+ "inputs": [],
191
+ "name": "SJOE",
192
+ "outputs": [
193
+ {
194
+ "internalType": "address",
195
+ "name": "",
196
+ "type": "address"
197
+ }
198
+ ],
199
+ "stateMutability": "view",
200
+ "type": "function"
201
+ },
202
+ {
203
+ "inputs": [
204
+ {
205
+ "internalType": "address",
206
+ "name": "user",
207
+ "type": "address"
208
+ }
209
+ ],
210
+ "name": "accruedRewards",
211
+ "outputs": [
212
+ {
213
+ "internalType": "uint256[]",
214
+ "name": "rewardAmounts",
215
+ "type": "uint256[]"
216
+ }
217
+ ],
218
+ "stateMutability": "view",
219
+ "type": "function"
220
+ },
221
+ {
222
+ "inputs": [
223
+ {
224
+ "internalType": "address",
225
+ "name": "owner",
226
+ "type": "address"
227
+ },
228
+ {
229
+ "internalType": "address",
230
+ "name": "spender",
231
+ "type": "address"
232
+ }
233
+ ],
234
+ "name": "allowance",
235
+ "outputs": [
236
+ {
237
+ "internalType": "uint256",
238
+ "name": "",
239
+ "type": "uint256"
240
+ }
241
+ ],
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "inputs": [
247
+ {
248
+ "internalType": "address",
249
+ "name": "spender",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "internalType": "uint256",
254
+ "name": "amount",
255
+ "type": "uint256"
256
+ }
257
+ ],
258
+ "name": "approve",
259
+ "outputs": [
260
+ {
261
+ "internalType": "bool",
262
+ "name": "",
263
+ "type": "bool"
264
+ }
265
+ ],
266
+ "stateMutability": "nonpayable",
267
+ "type": "function"
268
+ },
269
+ {
270
+ "inputs": [],
271
+ "name": "assetInfo",
272
+ "outputs": [
273
+ {
274
+ "internalType": "enum ISuperComposableYield.AssetType",
275
+ "name": "assetType",
276
+ "type": "uint8"
277
+ },
278
+ {
279
+ "internalType": "address",
280
+ "name": "assetAddress",
281
+ "type": "address"
282
+ },
283
+ {
284
+ "internalType": "uint8",
285
+ "name": "assetDecimals",
286
+ "type": "uint8"
287
+ }
288
+ ],
289
+ "stateMutability": "view",
290
+ "type": "function"
291
+ },
292
+ {
293
+ "inputs": [
294
+ {
295
+ "internalType": "address",
296
+ "name": "account",
297
+ "type": "address"
298
+ }
299
+ ],
300
+ "name": "balanceOf",
301
+ "outputs": [
302
+ {
303
+ "internalType": "uint256",
304
+ "name": "",
305
+ "type": "uint256"
306
+ }
307
+ ],
308
+ "stateMutability": "view",
309
+ "type": "function"
310
+ },
311
+ {
312
+ "inputs": [
313
+ {
314
+ "internalType": "address",
315
+ "name": "user",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "name": "claimRewards",
320
+ "outputs": [
321
+ {
322
+ "internalType": "uint256[]",
323
+ "name": "rewardAmounts",
324
+ "type": "uint256[]"
325
+ }
326
+ ],
327
+ "stateMutability": "nonpayable",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [],
332
+ "name": "decimals",
333
+ "outputs": [
334
+ {
335
+ "internalType": "uint8",
336
+ "name": "",
337
+ "type": "uint8"
338
+ }
339
+ ],
340
+ "stateMutability": "view",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [
345
+ {
346
+ "internalType": "address",
347
+ "name": "receiver",
348
+ "type": "address"
349
+ },
350
+ {
351
+ "internalType": "address",
352
+ "name": "tokenIn",
353
+ "type": "address"
354
+ },
355
+ {
356
+ "internalType": "uint256",
357
+ "name": "amountTokenToDeposit",
358
+ "type": "uint256"
359
+ },
360
+ {
361
+ "internalType": "uint256",
362
+ "name": "minSharesOut",
363
+ "type": "uint256"
364
+ }
365
+ ],
366
+ "name": "deposit",
367
+ "outputs": [
368
+ {
369
+ "internalType": "uint256",
370
+ "name": "amountSharesOut",
371
+ "type": "uint256"
372
+ }
373
+ ],
374
+ "stateMutability": "payable",
375
+ "type": "function"
376
+ },
377
+ {
378
+ "inputs": [],
379
+ "name": "exchangeRate",
380
+ "outputs": [
381
+ {
382
+ "internalType": "uint256",
383
+ "name": "",
384
+ "type": "uint256"
385
+ }
386
+ ],
387
+ "stateMutability": "pure",
388
+ "type": "function"
389
+ },
390
+ {
391
+ "inputs": [],
392
+ "name": "getRewardTokens",
393
+ "outputs": [
394
+ {
395
+ "internalType": "address[]",
396
+ "name": "rewardTokens",
397
+ "type": "address[]"
398
+ }
399
+ ],
400
+ "stateMutability": "view",
401
+ "type": "function"
402
+ },
403
+ {
404
+ "inputs": [],
405
+ "name": "getTokensIn",
406
+ "outputs": [
407
+ {
408
+ "internalType": "address[]",
409
+ "name": "res",
410
+ "type": "address[]"
411
+ }
412
+ ],
413
+ "stateMutability": "view",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [],
418
+ "name": "getTokensOut",
419
+ "outputs": [
420
+ {
421
+ "internalType": "address[]",
422
+ "name": "res",
423
+ "type": "address[]"
424
+ }
425
+ ],
426
+ "stateMutability": "view",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [
431
+ {
432
+ "internalType": "address",
433
+ "name": "token",
434
+ "type": "address"
435
+ }
436
+ ],
437
+ "name": "isValidTokenIn",
438
+ "outputs": [
439
+ {
440
+ "internalType": "bool",
441
+ "name": "",
442
+ "type": "bool"
443
+ }
444
+ ],
445
+ "stateMutability": "view",
446
+ "type": "function"
447
+ },
448
+ {
449
+ "inputs": [
450
+ {
451
+ "internalType": "address",
452
+ "name": "token",
453
+ "type": "address"
454
+ }
455
+ ],
456
+ "name": "isValidTokenOut",
457
+ "outputs": [
458
+ {
459
+ "internalType": "bool",
460
+ "name": "",
461
+ "type": "bool"
462
+ }
463
+ ],
464
+ "stateMutability": "view",
465
+ "type": "function"
466
+ },
467
+ {
468
+ "inputs": [],
469
+ "name": "lastRewardBlock",
470
+ "outputs": [
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "",
474
+ "type": "uint256"
475
+ }
476
+ ],
477
+ "stateMutability": "view",
478
+ "type": "function"
479
+ },
480
+ {
481
+ "inputs": [],
482
+ "name": "name",
483
+ "outputs": [
484
+ {
485
+ "internalType": "string",
486
+ "name": "",
487
+ "type": "string"
488
+ }
489
+ ],
490
+ "stateMutability": "view",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "internalType": "address",
497
+ "name": "tokenIn",
498
+ "type": "address"
499
+ },
500
+ {
501
+ "internalType": "uint256",
502
+ "name": "amountTokenToDeposit",
503
+ "type": "uint256"
504
+ }
505
+ ],
506
+ "name": "previewDeposit",
507
+ "outputs": [
508
+ {
509
+ "internalType": "uint256",
510
+ "name": "amountSharesOut",
511
+ "type": "uint256"
512
+ }
513
+ ],
514
+ "stateMutability": "view",
515
+ "type": "function"
516
+ },
517
+ {
518
+ "inputs": [
519
+ {
520
+ "internalType": "address",
521
+ "name": "tokenOut",
522
+ "type": "address"
523
+ },
524
+ {
525
+ "internalType": "uint256",
526
+ "name": "amountSharesToRedeem",
527
+ "type": "uint256"
528
+ }
529
+ ],
530
+ "name": "previewRedeem",
531
+ "outputs": [
532
+ {
533
+ "internalType": "uint256",
534
+ "name": "amountTokenOut",
535
+ "type": "uint256"
536
+ }
537
+ ],
538
+ "stateMutability": "view",
539
+ "type": "function"
540
+ },
541
+ {
542
+ "inputs": [
543
+ {
544
+ "internalType": "address",
545
+ "name": "receiver",
546
+ "type": "address"
547
+ },
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "amountSharesToRedeem",
551
+ "type": "uint256"
552
+ },
553
+ {
554
+ "internalType": "address",
555
+ "name": "tokenOut",
556
+ "type": "address"
557
+ },
558
+ {
559
+ "internalType": "uint256",
560
+ "name": "minTokenOut",
561
+ "type": "uint256"
562
+ }
563
+ ],
564
+ "name": "redeem",
565
+ "outputs": [
566
+ {
567
+ "internalType": "uint256",
568
+ "name": "amountTokenOut",
569
+ "type": "uint256"
570
+ }
571
+ ],
572
+ "stateMutability": "nonpayable",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "address",
579
+ "name": "receiver",
580
+ "type": "address"
581
+ },
582
+ {
583
+ "internalType": "address",
584
+ "name": "tokenOut",
585
+ "type": "address"
586
+ },
587
+ {
588
+ "internalType": "uint256",
589
+ "name": "minTokenOut",
590
+ "type": "uint256"
591
+ }
592
+ ],
593
+ "name": "redeemAfterTransfer",
594
+ "outputs": [
595
+ {
596
+ "internalType": "uint256",
597
+ "name": "amountTokenOut",
598
+ "type": "uint256"
599
+ }
600
+ ],
601
+ "stateMutability": "nonpayable",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [],
606
+ "name": "rewardIndexesCurrent",
607
+ "outputs": [
608
+ {
609
+ "internalType": "uint256[]",
610
+ "name": "indexes",
611
+ "type": "uint256[]"
612
+ }
613
+ ],
614
+ "stateMutability": "nonpayable",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [],
619
+ "name": "rewardIndexesStored",
620
+ "outputs": [
621
+ {
622
+ "internalType": "uint256[]",
623
+ "name": "indexes",
624
+ "type": "uint256[]"
625
+ }
626
+ ],
627
+ "stateMutability": "view",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [
632
+ {
633
+ "internalType": "address",
634
+ "name": "",
635
+ "type": "address"
636
+ }
637
+ ],
638
+ "name": "rewardState",
639
+ "outputs": [
640
+ {
641
+ "internalType": "uint128",
642
+ "name": "index",
643
+ "type": "uint128"
644
+ },
645
+ {
646
+ "internalType": "uint128",
647
+ "name": "lastBalance",
648
+ "type": "uint128"
649
+ }
650
+ ],
651
+ "stateMutability": "view",
652
+ "type": "function"
653
+ },
654
+ {
655
+ "inputs": [],
656
+ "name": "symbol",
657
+ "outputs": [
658
+ {
659
+ "internalType": "string",
660
+ "name": "",
661
+ "type": "string"
662
+ }
663
+ ],
664
+ "stateMutability": "view",
665
+ "type": "function"
666
+ },
667
+ {
668
+ "inputs": [],
669
+ "name": "totalSupply",
670
+ "outputs": [
671
+ {
672
+ "internalType": "uint256",
673
+ "name": "",
674
+ "type": "uint256"
675
+ }
676
+ ],
677
+ "stateMutability": "view",
678
+ "type": "function"
679
+ },
680
+ {
681
+ "inputs": [
682
+ {
683
+ "internalType": "address",
684
+ "name": "to",
685
+ "type": "address"
686
+ },
687
+ {
688
+ "internalType": "uint256",
689
+ "name": "amount",
690
+ "type": "uint256"
691
+ }
692
+ ],
693
+ "name": "transfer",
694
+ "outputs": [
695
+ {
696
+ "internalType": "bool",
697
+ "name": "",
698
+ "type": "bool"
699
+ }
700
+ ],
701
+ "stateMutability": "nonpayable",
702
+ "type": "function"
703
+ },
704
+ {
705
+ "inputs": [
706
+ {
707
+ "internalType": "address",
708
+ "name": "from",
709
+ "type": "address"
710
+ },
711
+ {
712
+ "internalType": "address",
713
+ "name": "to",
714
+ "type": "address"
715
+ },
716
+ {
717
+ "internalType": "uint256",
718
+ "name": "amount",
719
+ "type": "uint256"
720
+ }
721
+ ],
722
+ "name": "transferFrom",
723
+ "outputs": [
724
+ {
725
+ "internalType": "bool",
726
+ "name": "",
727
+ "type": "bool"
728
+ }
729
+ ],
730
+ "stateMutability": "nonpayable",
731
+ "type": "function"
732
+ },
733
+ {
734
+ "inputs": [
735
+ {
736
+ "internalType": "address",
737
+ "name": "",
738
+ "type": "address"
739
+ },
740
+ {
741
+ "internalType": "address",
742
+ "name": "",
743
+ "type": "address"
744
+ }
745
+ ],
746
+ "name": "userReward",
747
+ "outputs": [
748
+ {
749
+ "internalType": "uint128",
750
+ "name": "index",
751
+ "type": "uint128"
752
+ },
753
+ {
754
+ "internalType": "uint128",
755
+ "name": "accrued",
756
+ "type": "uint128"
757
+ }
758
+ ],
759
+ "stateMutability": "view",
760
+ "type": "function"
761
+ },
762
+ {
763
+ "inputs": [],
764
+ "name": "yieldToken",
765
+ "outputs": [
766
+ {
767
+ "internalType": "address",
768
+ "name": "",
769
+ "type": "address"
770
+ }
771
+ ],
772
+ "stateMutability": "view",
773
+ "type": "function"
774
+ },
775
+ {
776
+ "stateMutability": "payable",
777
+ "type": "receive"
778
+ }
779
+ ],
780
+ "bytecode": "0x6101006040523480156200001257600080fd5b50604051620035ff380380620035ff8339810160408190526200003591620003d6565b8282826001600160a01b031663b985a3a06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000076573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009c919062000452565b8282828282826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000106919062000477565b60036200011484826200052b565b5060046200012383826200052b565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390811660a052861694506200019993505050505760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b60448201526064015b60405180910390fd5b6001600160a01b0380821660c081905260a05190911660e0819052620001c291600019620001cb565b50505062000639565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620002299190620005f7565b6000604051808303816000865af19150503d806000811462000268576040519150601f19603f3d011682016040523d82523d6000602084013e6200026d565b606091505b50915091508180156200029b5750805115806200029b5750808060200190518101906200029b919062000615565b620002d85760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640162000190565b5050505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101562000312578181015183820152602001620002f8565b8381111562000322576000848401525b50505050565b600082601f8301126200033a57600080fd5b81516001600160401b0380821115620003575762000357620002df565b604051601f8301601f19908116603f01168101908282118183101715620003825762000382620002df565b816040528381528660208588010111156200039c57600080fd5b620003af846020830160208901620002f5565b9695505050505050565b80516001600160a01b0381168114620003d157600080fd5b919050565b600080600060608486031215620003ec57600080fd5b83516001600160401b03808211156200040457600080fd5b620004128783880162000328565b945060208601519150808211156200042957600080fd5b50620004388682870162000328565b9250506200044960408501620003b9565b90509250925092565b6000602082840312156200046557600080fd5b6200047082620003b9565b9392505050565b6000602082840312156200048a57600080fd5b815160ff811681146200047057600080fd5b600181811c90821680620004b157607f821691505b602082108103620004d257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052657600081815260208120601f850160051c81016020861015620005015750805b601f850160051c820191505b8181101562000522578281556001016200050d565b5050505b505050565b81516001600160401b03811115620005475762000547620002df565b6200055f816200055884546200049c565b84620004d8565b602080601f8311600181146200059757600084156200057e5750858301515b600019600386901b1c1916600185901b17855562000522565b600085815260208120601f198616915b82811015620005c857888601518255948401946001909101908401620005a7565b5085821015620005e75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516200060b818460208701620002f5565b9190910192915050565b6000602082840312156200062857600080fd5b815180151581146200047057600080fd5b60805160a05160c05160e051612f3f620006c0600039600081816105bb0152818161069301528181610a7d01528181610b4b0152610b6c0152600081816103ed0152818161105a01528181611242015281816112db0152818161134201528181611a48015281816120f201526122d7015260006103770152600061028a0152612f3f6000f3fe60806040526004361061016c5760003560e01c806306fdde0314610178578063071bc3c9146101a3578063095ea7b3146101c5578063128fced1146101f557806318160ddd1461022257806320e8c56514610245578063213cae63146101a357806323b872dd14610258578063313ce567146102785780633ba0b9a9146102be5780635cbadbe4146102d957806370a082311461034557806376d5de8514610365578063784367d6146103a657806395d89b41146103c657806396de2fa2146103db578063a2bbcf131461040f578063a40bee501461042f578063a9059cbb14610453578063a9f8d18114610473578063b8f82b2614610489578063c4f59f9b146104a9578063cbe52ae3146104be578063da88ecb4146104de578063dd62ed3e146104f3578063ea64a82014610513578063ef5cfb8c14610554578063f3f094a114610574578063f8b2f99114610594578063fa5a4f06146103a6578063ffebad30146105a957600080fd5b3661017357005b600080fd5b34801561018457600080fd5b5061018d6105dd565b60405161019a9190612941565b60405180910390f35b3480156101af57600080fd5b506101b861066f565b60405161019a91906129b8565b3480156101d157600080fd5b506101e56101e03660046129e0565b6106e8565b604051901515815260200161019a565b34801561020157600080fd5b50610215610210366004612a0c565b610700565b60405161019a9190612a59565b34801561022e57600080fd5b50610237610802565b60405190815260200161019a565b610237610253366004612a6c565b610811565b34801561026457600080fd5b506101e5610273366004612ab2565b6109e2565b34801561028457600080fd5b506102ac7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161019a565b3480156102ca57600080fd5b50670de0b6b3a7640000610237565b3480156102e557600080fd5b506103256102f4366004612af3565b60056020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161019a565b34801561035157600080fd5b50610237610360366004612a0c565b610a60565b34801561037157600080fd5b506103997f000000000000000000000000000000000000000000000000000000000000000081565b60405161019a9190612b2c565b3480156103b257600080fd5b506101e56103c1366004612a0c565b610a7b565b3480156103d257600080fd5b5061018d610aad565b3480156103e757600080fd5b506103997f000000000000000000000000000000000000000000000000000000000000000081565b34801561041b57600080fd5b5061023761042a366004612ab2565b610abc565b34801561043b57600080fd5b50610444610b43565b60405161019a93929190612b40565b34801561045f57600080fd5b506101e561046e3660046129e0565b610bf7565b34801561047f57600080fd5b5061023760065481565b34801561049557600080fd5b506102376104a43660046129e0565b610c69565b3480156104b557600080fd5b506101b8610ca1565b3480156104ca57600080fd5b506102376104d93660046129e0565b610cb0565b3480156104ea57600080fd5b50610215610d05565b3480156104ff57600080fd5b5061023761050e366004612af3565b610dd6565b34801561051f57600080fd5b5061032561052e366004612a0c565b6007602052600090815260409020546001600160801b0380821691600160801b90041682565b34801561056057600080fd5b5061021561056f366004612a0c565b610e01565b34801561058057600080fd5b5061023761058f366004612b82565b610ec0565b3480156105a057600080fd5b50610215610f1c565b3480156105b557600080fd5b506103997f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546105ec90612bca565b80601f016020809104026020016040519081016040528092919081815260200182805461061890612bca565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b604080516001808252818301909252606091602080830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106106c5576106c5612c1a565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6000336106f6818585610f30565b5060019392505050565b6060600061070c611054565b905080516001600160401b0381111561072757610727612c04565b604051908082528060200260200182016040528015610750578160200160208202803683370190505b50915060005b81518110156107fb576001600160a01b0384166000908152600560205260408120835190919084908490811061078e5761078e612c1a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b03168382815181106107e8576107e8612c1a565b6020908102919091010152600101610756565b5050919050565b6002546001600160f81b031690565b600254600090600119600160f81b90910460ff160161084b5760405162461bcd60e51b815260040161084290612c30565b60405180910390fd5b600280546001600160f81b0316600160f91b17905561086984610a7b565b6108855760405162461bcd60e51b815260040161084290612c67565b826000036108e35760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74546f6b656e546f4465706f7369742063616e6e6f74604482015264020626520360dc1b6064820152608401610842565b6001600160a01b038416610939578234146109345760405162461bcd60e51b81526020600482015260116024820152700a686b27440cae8d040dad2e6dac2e8c6d607b1b6044820152606401610842565b610944565b6109448433856111d1565b61094e848461123d565b9050818110156109705760405162461bcd60e51b815260040161084290612c95565b61097a85826113d4565b60408051848152602081018390526001600160a01b03808716929088169133917f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59910160405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff1601610a135760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b17905533610a348582856114ea565b610a3f858585611564565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b6001600160a01b031660009081526020819052604090205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6060600480546105ec90612bca565b600254600090600119600160f81b90910460ff1601610aed5760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b1790556000610b0d30610a60565b9050610b193082611786565b610b258582868661190c565b600280546001600160f81b0316600160f81b17905595945050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bec9190612cc4565b925092509250909192565b600254600090600119600160f81b90910460ff1601610c285760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b17905533610c49818585611564565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6000610c7483610a7b565b610c905760405162461bcd60e51b815260040161084290612c67565b610c9a8383611a43565b9392505050565b6060610cab611054565b905090565b6000610cbb83610a7b565b610cff5760405162461bcd60e51b815260206004820152601560248201527414d0d64e88125b9d985b1a59081d1bdad95b93dd5d605a1b6044820152606401610842565b81610c9a565b60606000610d11611054565b905080516001600160401b03811115610d2c57610d2c612c04565b604051908082528060200260200182016040528015610d55578160200160208202803683370190505b50915060005b8151811015610dd15760076000838381518110610d7a57610d7a612c1a565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b0390911690849083908110610dbe57610dbe612c1a565b6020908102919091010152600101610d5b565b505090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254606090600119600160f81b90910460ff1601610e325760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b179055610e5082611af9565b610e5a8283611b07565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f610e8f611054565b83604051610e9e929190612ce7565b60405180910390a2600280546001600160f81b0316600160f81b179055919050565b600254600090600119600160f81b90910460ff1601610ef15760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b179055610f103385611786565b610b258585858561190c565b6060610f26611daf565b5050610cab610d05565b6001600160a01b038316610f925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610842565b6001600160a01b038216610ff35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610842565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b606060007f000000000000000000000000000000000000000000000000000000000000000090506000816001600160a01b031663bf199e626040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df9190612d15565b9050806001600160401b038111156110f9576110f9612c04565b604051908082528060200260200182016040528015611122578160200160208202803683370190505b50925060005b818110156111cb57604051637bb7bed160e01b8152600481018290526001600160a01b03841690637bb7bed190602401602060405180830381865afa158015611175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111999190612d2e565b8482815181106111ab576111ab612c1a565b6001600160a01b0390921660209283029190910190910152600101611128565b50505090565b6001600160a01b0383166112225780341461121d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610842565b505050565b801561121d5761121d6001600160a01b03841683308461204a565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a090a2b46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c29190612d15565b60405163b6b55f2560e01b8152600481018590529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6b55f2590602401600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b50505050807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a090a2b46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c29190612d15565b6113cc9190612d61565b949350505050565b6001600160a01b03821661142a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610842565b611436600083836120b5565b61143f816120bf565b6002805460009061145a9084906001600160f81b0316612d78565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546114b29190612da3565b90915550506040518181526001600160a01b03831690600090600080516020612eea8339815191529060200160405180910390a35050565b60006114f68484610dd6565b9050600019811461155e57818110156115515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610842565b61155e8484848403610f30565b50505050565b6001600160a01b0383166115c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610842565b6001600160a01b03821661162a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610842565b816001600160a01b0316836001600160a01b0316036116855760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610842565b6116908383836120b5565b6001600160a01b038316600090815260208190526040902054818110156117085760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610842565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061173f908490612da3565b92505081905550826001600160a01b0316846001600160a01b0316600080516020612eea8339815191528460405161177991815260200190565b60405180910390a361155e565b6001600160a01b0382166117e65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610842565b6117f2826000836120b5565b6001600160a01b038216600090815260208190526040902054818110156118665760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610842565b6001600160a01b0383166000908152602081905260409020828203905561188c826120bf565b600280546000906118a79084906001600160f81b0316612dbb565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020612eea833981519152846040516118ff91815260200190565b60405180910390a3505050565b600061191783610a7b565b61195b5760405162461bcd60e51b815260206004820152601560248201527414d0d64e881a5b9d985b1a59081d1bdad95b93dd5d605a1b6044820152606401610842565b836000036119b95760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74536861726573546f52656465656d2063616e6e6f74604482015264020626520360dc1b6064820152608401610842565b6119c383856120d9565b9050818110156119e55760405162461bcd60e51b815260040161084290612c95565b6119f083868361215d565b60408051858152602081018390526001600160a01b03808616929088169133917faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c910160405180910390a4949350505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc1252ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac89190612d15565b905082611add670de0b6b3a764000083612df9565b611aef90670de0b6b3a7640000612d61565b6113cc9190612e1b565b611b04816000612221565b50565b60606000611b13611054565b905080516001600160401b03811115611b2e57611b2e612c04565b604051908082528060200260200182016040528015611b57578160200160208202803683370190505b50915060005b8151811015611da75760056000838381518110611b7c57611b7c612c1a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110611bf957611bf9612c1a565b602002602001018181525050828181518110611c1757611c17612c1a565b6020026020010151600014611d9557600060056000848481518110611c3e57611c3e612c1a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550611cd2838281518110611cc557611cc5612c1a565b60200260200101516122a1565b60076000848481518110611ce857611ce8612c1a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316611d349190612e3a565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611d95828281518110611d6d57611d6d612c1a565b602002602001015185858481518110611d8857611d88612c1a565b602002602001015161215d565b80611d9f81612e5a565b915050611b5d565b505092915050565b606080611dba611054565b915081516001600160401b03811115611dd557611dd5612c04565b604051908082528060200260200182016040528015611dfe578160200160208202803683370190505b5090508151600003611e0e579091565b4360065414611fc257436006556000611e256122b7565b9050611e2f6122c1565b60005b8351811015611fbf576000848281518110611e4f57611e4f612c1a565b6020908102919091018101516001600160a01b0381166000908152600790925260408220548751919350600160801b90046001600160801b031690611ead90889086908110611ea057611ea0612c1a565b6020026020010151612337565b611eb79190612d61565b6001600160a01b0383166000908152600760205260408120549192506001600160801b0390911690819003611eea575060015b8415611f0757611efa82866123c2565b611f049082612da3565b90505b611f10816122a1565b6001600160a01b038416600090815260076020526040902080546001600160801b0319166001600160801b0392909216919091179055611f4f826122a1565b6001600160a01b03841660009081526007602052604090208054601090611f87908490600160801b90046001600160801b0316612e73565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505080611fb890612e5a565b9050611e32565b50505b60005b82518110156120455760076000848381518110611fe457611fe4612c1a565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b039091169083908390811061202857612028612c1a565b60209081029190910101528061203d81612e5a565b915050611fc5565b509091565b6040516001600160a01b038085166024830152831660448201526064810182905261155e9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526123f1565b61121d8383612221565b60006001600160f81b038211156120d557600080fd5b5090565b604051632e1a7d4d60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561213e57600080fd5b505af1158015612152573d6000803e3d6000fd5b509395945050505050565b8060000361216a57505050565b6001600160a01b03831661220d576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146121c5576040519150601f19603f3d011682016040523d82523d6000602084013e6121ca565b606091505b505090508061155e5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610842565b61121d6001600160a01b03841683836124c3565b60008061222c611daf565b91509150815160000361223f5750505050565b6001600160a01b0384161580159061226057506001600160a01b0384163014155b15612270576122708483836124f3565b6001600160a01b0383161580159061229157506001600160a01b0383163014155b1561155e5761155e8383836124f3565b60006001600160801b038211156120d557600080fd5b6000610cab610802565b604051632e1a7d4d60e01b8152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561232357600080fd5b505af115801561155e573d6000803e3d6000fd5b60006001600160a01b038216156123ba576040516370a0823160e01b81526001600160a01b038316906370a0823190612374903090600401612b2c565b602060405180830381865afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b59190612d15565b6123bc565b475b92915050565b6000806123d7670de0b6b3a764000085612e1b565b90508281816123e8576123e8612de3565b04949350505050565b6000612446826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127739092919063ffffffff16565b80519091501561121d57808060200190518101906124649190612e95565b61121d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610842565b6040516001600160a01b03831660248201526044810182905261121d90849063a9059cbb60e01b9060640161207e565b6001600160a01b0383161580159061251457506001600160a01b0383163014155b61252057612520612eb7565b600061252b84612782565b905060005b835181101561276c57600084828151811061254d5761254d612c1a565b60200260200101519050600084838151811061256b5761256b612c1a565b6020908102919091018101516001600160a01b038085166000908152600584526040808220928c168252919093528220549092506001600160801b031690819003612607576125b9826122a1565b6001600160a01b039384166000908152600560209081526040808320968c1683529590529390932080546001600160801b0319166001600160801b03909416939093179092555061275c9050565b8181036126165750505061275c565b60006126228284612d61565b90506000612630878361278d565b6001600160a01b038681166000908152600560209081526040808320938f1683529290529081205491925090612677908390600160801b90046001600160801b0316612da3565b9050604051806040016040528061268d876122a1565b6001600160801b031681526020016126a4836122a1565b6001600160801b031681525060056000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b61276581612e5a565b9050612530565b5050505050565b60606113cc84846000856127ab565b60006123bc82610a60565b60008061279a8385612e1b565b9050670de0b6b3a7640000816123e8565b60608247101561280c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610842565b6001600160a01b0385163b6128635760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610842565b600080866001600160a01b0316858760405161287f9190612ecd565b60006040518083038185875af1925050503d80600081146128bc576040519150601f19603f3d011682016040523d82523d6000602084013e6128c1565b606091505b50915091506128d18282866128dc565b979650505050505050565b606083156128eb575081610c9a565b8251156128fb5782518084602001fd5b8160405162461bcd60e51b81526004016108429190612941565b60005b83811015612930578181015183820152602001612918565b8381111561155e5750506000910152565b6020815260008251806020840152612960816040850160208701612915565b601f01601f19169190910160400192915050565b600081518084526020808501945080840160005b838110156129ad5781516001600160a01b031687529582019590820190600101612988565b509495945050505050565b602081526000610c9a6020830184612974565b6001600160a01b0381168114611b0457600080fd5b600080604083850312156129f357600080fd5b82356129fe816129cb565b946020939093013593505050565b600060208284031215612a1e57600080fd5b8135610c9a816129cb565b600081518084526020808501945080840160005b838110156129ad57815187529582019590820190600101612a3d565b602081526000610c9a6020830184612a29565b60008060008060808587031215612a8257600080fd5b8435612a8d816129cb565b93506020850135612a9d816129cb565b93969395505050506040820135916060013590565b600080600060608486031215612ac757600080fd5b8335612ad2816129cb565b92506020840135612ae2816129cb565b929592945050506040919091013590565b60008060408385031215612b0657600080fd5b8235612b11816129cb565b91506020830135612b21816129cb565b809150509250929050565b6001600160a01b0391909116815260200190565b6060810160028510612b6257634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60008060008060808587031215612b9857600080fd5b8435612ba3816129cb565b9350602085013592506040850135612bba816129cb565b9396929550929360600135925050565b600181811c90821680612bde57607f821691505b602082108103612bfe57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527329a1ac9d1024b73b30b634b2103a37b5b2b724b760611b604082015260600190565b60208082526015908201527414d0d64e881a5b9cdd59999a58da595b9d081bdd5d605a1b604082015260600190565b600060208284031215612cd657600080fd5b815160ff81168114610c9a57600080fd5b604081526000612cfa6040830185612974565b8281036020840152612d0c8185612a29565b95945050505050565b600060208284031215612d2757600080fd5b5051919050565b600060208284031215612d4057600080fd5b8151610c9a816129cb565b634e487b7160e01b600052601160045260246000fd5b600082821015612d7357612d73612d4b565b500390565b60006001600160f81b03828116848216808303821115612d9a57612d9a612d4b565b01949350505050565b60008219821115612db657612db6612d4b565b500190565b60006001600160f81b0383811690831681811015612ddb57612ddb612d4b565b039392505050565b634e487b7160e01b600052601260045260246000fd5b600082612e1657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612e3557612e35612d4b565b500290565b60006001600160801b0383811690831681811015612ddb57612ddb612d4b565b600060018201612e6c57612e6c612d4b565b5060010190565b60006001600160801b03828116848216808303821115612d9a57612d9a612d4b565b600060208284031215612ea757600080fd5b81518015158114610c9a57600080fd5b634e487b7160e01b600052600160045260246000fd5b60008251612edf818460208701612915565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122039d44cea7444c533d757fddc4a7f74998841e4709ffa901220b1e0c3c020d1ca64736f6c634300080f0033",
781
+ "deployedBytecode": "0x60806040526004361061016c5760003560e01c806306fdde0314610178578063071bc3c9146101a3578063095ea7b3146101c5578063128fced1146101f557806318160ddd1461022257806320e8c56514610245578063213cae63146101a357806323b872dd14610258578063313ce567146102785780633ba0b9a9146102be5780635cbadbe4146102d957806370a082311461034557806376d5de8514610365578063784367d6146103a657806395d89b41146103c657806396de2fa2146103db578063a2bbcf131461040f578063a40bee501461042f578063a9059cbb14610453578063a9f8d18114610473578063b8f82b2614610489578063c4f59f9b146104a9578063cbe52ae3146104be578063da88ecb4146104de578063dd62ed3e146104f3578063ea64a82014610513578063ef5cfb8c14610554578063f3f094a114610574578063f8b2f99114610594578063fa5a4f06146103a6578063ffebad30146105a957600080fd5b3661017357005b600080fd5b34801561018457600080fd5b5061018d6105dd565b60405161019a9190612941565b60405180910390f35b3480156101af57600080fd5b506101b861066f565b60405161019a91906129b8565b3480156101d157600080fd5b506101e56101e03660046129e0565b6106e8565b604051901515815260200161019a565b34801561020157600080fd5b50610215610210366004612a0c565b610700565b60405161019a9190612a59565b34801561022e57600080fd5b50610237610802565b60405190815260200161019a565b610237610253366004612a6c565b610811565b34801561026457600080fd5b506101e5610273366004612ab2565b6109e2565b34801561028457600080fd5b506102ac7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161019a565b3480156102ca57600080fd5b50670de0b6b3a7640000610237565b3480156102e557600080fd5b506103256102f4366004612af3565b60056020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161019a565b34801561035157600080fd5b50610237610360366004612a0c565b610a60565b34801561037157600080fd5b506103997f000000000000000000000000000000000000000000000000000000000000000081565b60405161019a9190612b2c565b3480156103b257600080fd5b506101e56103c1366004612a0c565b610a7b565b3480156103d257600080fd5b5061018d610aad565b3480156103e757600080fd5b506103997f000000000000000000000000000000000000000000000000000000000000000081565b34801561041b57600080fd5b5061023761042a366004612ab2565b610abc565b34801561043b57600080fd5b50610444610b43565b60405161019a93929190612b40565b34801561045f57600080fd5b506101e561046e3660046129e0565b610bf7565b34801561047f57600080fd5b5061023760065481565b34801561049557600080fd5b506102376104a43660046129e0565b610c69565b3480156104b557600080fd5b506101b8610ca1565b3480156104ca57600080fd5b506102376104d93660046129e0565b610cb0565b3480156104ea57600080fd5b50610215610d05565b3480156104ff57600080fd5b5061023761050e366004612af3565b610dd6565b34801561051f57600080fd5b5061032561052e366004612a0c565b6007602052600090815260409020546001600160801b0380821691600160801b90041682565b34801561056057600080fd5b5061021561056f366004612a0c565b610e01565b34801561058057600080fd5b5061023761058f366004612b82565b610ec0565b3480156105a057600080fd5b50610215610f1c565b3480156105b557600080fd5b506103997f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546105ec90612bca565b80601f016020809104026020016040519081016040528092919081815260200182805461061890612bca565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b604080516001808252818301909252606091602080830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106106c5576106c5612c1a565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6000336106f6818585610f30565b5060019392505050565b6060600061070c611054565b905080516001600160401b0381111561072757610727612c04565b604051908082528060200260200182016040528015610750578160200160208202803683370190505b50915060005b81518110156107fb576001600160a01b0384166000908152600560205260408120835190919084908490811061078e5761078e612c1a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b03168382815181106107e8576107e8612c1a565b6020908102919091010152600101610756565b5050919050565b6002546001600160f81b031690565b600254600090600119600160f81b90910460ff160161084b5760405162461bcd60e51b815260040161084290612c30565b60405180910390fd5b600280546001600160f81b0316600160f91b17905561086984610a7b565b6108855760405162461bcd60e51b815260040161084290612c67565b826000036108e35760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74546f6b656e546f4465706f7369742063616e6e6f74604482015264020626520360dc1b6064820152608401610842565b6001600160a01b038416610939578234146109345760405162461bcd60e51b81526020600482015260116024820152700a686b27440cae8d040dad2e6dac2e8c6d607b1b6044820152606401610842565b610944565b6109448433856111d1565b61094e848461123d565b9050818110156109705760405162461bcd60e51b815260040161084290612c95565b61097a85826113d4565b60408051848152602081018390526001600160a01b03808716929088169133917f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59910160405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff1601610a135760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b17905533610a348582856114ea565b610a3f858585611564565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b6001600160a01b031660009081526020819052604090205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6060600480546105ec90612bca565b600254600090600119600160f81b90910460ff1601610aed5760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b1790556000610b0d30610a60565b9050610b193082611786565b610b258582868661190c565b600280546001600160f81b0316600160f81b17905595945050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bec9190612cc4565b925092509250909192565b600254600090600119600160f81b90910460ff1601610c285760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b17905533610c49818585611564565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6000610c7483610a7b565b610c905760405162461bcd60e51b815260040161084290612c67565b610c9a8383611a43565b9392505050565b6060610cab611054565b905090565b6000610cbb83610a7b565b610cff5760405162461bcd60e51b815260206004820152601560248201527414d0d64e88125b9d985b1a59081d1bdad95b93dd5d605a1b6044820152606401610842565b81610c9a565b60606000610d11611054565b905080516001600160401b03811115610d2c57610d2c612c04565b604051908082528060200260200182016040528015610d55578160200160208202803683370190505b50915060005b8151811015610dd15760076000838381518110610d7a57610d7a612c1a565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b0390911690849083908110610dbe57610dbe612c1a565b6020908102919091010152600101610d5b565b505090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254606090600119600160f81b90910460ff1601610e325760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b179055610e5082611af9565b610e5a8283611b07565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f610e8f611054565b83604051610e9e929190612ce7565b60405180910390a2600280546001600160f81b0316600160f81b179055919050565b600254600090600119600160f81b90910460ff1601610ef15760405162461bcd60e51b815260040161084290612c30565b600280546001600160f81b0316600160f91b179055610f103385611786565b610b258585858561190c565b6060610f26611daf565b5050610cab610d05565b6001600160a01b038316610f925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610842565b6001600160a01b038216610ff35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610842565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b606060007f000000000000000000000000000000000000000000000000000000000000000090506000816001600160a01b031663bf199e626040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df9190612d15565b9050806001600160401b038111156110f9576110f9612c04565b604051908082528060200260200182016040528015611122578160200160208202803683370190505b50925060005b818110156111cb57604051637bb7bed160e01b8152600481018290526001600160a01b03841690637bb7bed190602401602060405180830381865afa158015611175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111999190612d2e565b8482815181106111ab576111ab612c1a565b6001600160a01b0390921660209283029190910190910152600101611128565b50505090565b6001600160a01b0383166112225780341461121d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610842565b505050565b801561121d5761121d6001600160a01b03841683308461204a565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a090a2b46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c29190612d15565b60405163b6b55f2560e01b8152600481018590529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6b55f2590602401600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b50505050807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a090a2b46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c29190612d15565b6113cc9190612d61565b949350505050565b6001600160a01b03821661142a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610842565b611436600083836120b5565b61143f816120bf565b6002805460009061145a9084906001600160f81b0316612d78565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546114b29190612da3565b90915550506040518181526001600160a01b03831690600090600080516020612eea8339815191529060200160405180910390a35050565b60006114f68484610dd6565b9050600019811461155e57818110156115515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610842565b61155e8484848403610f30565b50505050565b6001600160a01b0383166115c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610842565b6001600160a01b03821661162a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610842565b816001600160a01b0316836001600160a01b0316036116855760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610842565b6116908383836120b5565b6001600160a01b038316600090815260208190526040902054818110156117085760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610842565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061173f908490612da3565b92505081905550826001600160a01b0316846001600160a01b0316600080516020612eea8339815191528460405161177991815260200190565b60405180910390a361155e565b6001600160a01b0382166117e65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610842565b6117f2826000836120b5565b6001600160a01b038216600090815260208190526040902054818110156118665760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610842565b6001600160a01b0383166000908152602081905260409020828203905561188c826120bf565b600280546000906118a79084906001600160f81b0316612dbb565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020612eea833981519152846040516118ff91815260200190565b60405180910390a3505050565b600061191783610a7b565b61195b5760405162461bcd60e51b815260206004820152601560248201527414d0d64e881a5b9d985b1a59081d1bdad95b93dd5d605a1b6044820152606401610842565b836000036119b95760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74536861726573546f52656465656d2063616e6e6f74604482015264020626520360dc1b6064820152608401610842565b6119c383856120d9565b9050818110156119e55760405162461bcd60e51b815260040161084290612c95565b6119f083868361215d565b60408051858152602081018390526001600160a01b03808616929088169133917faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c910160405180910390a4949350505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc1252ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac89190612d15565b905082611add670de0b6b3a764000083612df9565b611aef90670de0b6b3a7640000612d61565b6113cc9190612e1b565b611b04816000612221565b50565b60606000611b13611054565b905080516001600160401b03811115611b2e57611b2e612c04565b604051908082528060200260200182016040528015611b57578160200160208202803683370190505b50915060005b8151811015611da75760056000838381518110611b7c57611b7c612c1a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110611bf957611bf9612c1a565b602002602001018181525050828181518110611c1757611c17612c1a565b6020026020010151600014611d9557600060056000848481518110611c3e57611c3e612c1a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b03160217905550611cd2838281518110611cc557611cc5612c1a565b60200260200101516122a1565b60076000848481518110611ce857611ce8612c1a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b0316611d349190612e3a565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611d95828281518110611d6d57611d6d612c1a565b602002602001015185858481518110611d8857611d88612c1a565b602002602001015161215d565b80611d9f81612e5a565b915050611b5d565b505092915050565b606080611dba611054565b915081516001600160401b03811115611dd557611dd5612c04565b604051908082528060200260200182016040528015611dfe578160200160208202803683370190505b5090508151600003611e0e579091565b4360065414611fc257436006556000611e256122b7565b9050611e2f6122c1565b60005b8351811015611fbf576000848281518110611e4f57611e4f612c1a565b6020908102919091018101516001600160a01b0381166000908152600790925260408220548751919350600160801b90046001600160801b031690611ead90889086908110611ea057611ea0612c1a565b6020026020010151612337565b611eb79190612d61565b6001600160a01b0383166000908152600760205260408120549192506001600160801b0390911690819003611eea575060015b8415611f0757611efa82866123c2565b611f049082612da3565b90505b611f10816122a1565b6001600160a01b038416600090815260076020526040902080546001600160801b0319166001600160801b0392909216919091179055611f4f826122a1565b6001600160a01b03841660009081526007602052604090208054601090611f87908490600160801b90046001600160801b0316612e73565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505080611fb890612e5a565b9050611e32565b50505b60005b82518110156120455760076000848381518110611fe457611fe4612c1a565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b039091169083908390811061202857612028612c1a565b60209081029190910101528061203d81612e5a565b915050611fc5565b509091565b6040516001600160a01b038085166024830152831660448201526064810182905261155e9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526123f1565b61121d8383612221565b60006001600160f81b038211156120d557600080fd5b5090565b604051632e1a7d4d60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561213e57600080fd5b505af1158015612152573d6000803e3d6000fd5b509395945050505050565b8060000361216a57505050565b6001600160a01b03831661220d576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146121c5576040519150601f19603f3d011682016040523d82523d6000602084013e6121ca565b606091505b505090508061155e5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610842565b61121d6001600160a01b03841683836124c3565b60008061222c611daf565b91509150815160000361223f5750505050565b6001600160a01b0384161580159061226057506001600160a01b0384163014155b15612270576122708483836124f3565b6001600160a01b0383161580159061229157506001600160a01b0383163014155b1561155e5761155e8383836124f3565b60006001600160801b038211156120d557600080fd5b6000610cab610802565b604051632e1a7d4d60e01b8152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561232357600080fd5b505af115801561155e573d6000803e3d6000fd5b60006001600160a01b038216156123ba576040516370a0823160e01b81526001600160a01b038316906370a0823190612374903090600401612b2c565b602060405180830381865afa158015612391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b59190612d15565b6123bc565b475b92915050565b6000806123d7670de0b6b3a764000085612e1b565b90508281816123e8576123e8612de3565b04949350505050565b6000612446826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127739092919063ffffffff16565b80519091501561121d57808060200190518101906124649190612e95565b61121d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610842565b6040516001600160a01b03831660248201526044810182905261121d90849063a9059cbb60e01b9060640161207e565b6001600160a01b0383161580159061251457506001600160a01b0383163014155b61252057612520612eb7565b600061252b84612782565b905060005b835181101561276c57600084828151811061254d5761254d612c1a565b60200260200101519050600084838151811061256b5761256b612c1a565b6020908102919091018101516001600160a01b038085166000908152600584526040808220928c168252919093528220549092506001600160801b031690819003612607576125b9826122a1565b6001600160a01b039384166000908152600560209081526040808320968c1683529590529390932080546001600160801b0319166001600160801b03909416939093179092555061275c9050565b8181036126165750505061275c565b60006126228284612d61565b90506000612630878361278d565b6001600160a01b038681166000908152600560209081526040808320938f1683529290529081205491925090612677908390600160801b90046001600160801b0316612da3565b9050604051806040016040528061268d876122a1565b6001600160801b031681526020016126a4836122a1565b6001600160801b031681525060056000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b61276581612e5a565b9050612530565b5050505050565b60606113cc84846000856127ab565b60006123bc82610a60565b60008061279a8385612e1b565b9050670de0b6b3a7640000816123e8565b60608247101561280c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610842565b6001600160a01b0385163b6128635760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610842565b600080866001600160a01b0316858760405161287f9190612ecd565b60006040518083038185875af1925050503d80600081146128bc576040519150601f19603f3d011682016040523d82523d6000602084013e6128c1565b606091505b50915091506128d18282866128dc565b979650505050505050565b606083156128eb575081610c9a565b8251156128fb5782518084602001fd5b8160405162461bcd60e51b81526004016108429190612941565b60005b83811015612930578181015183820152602001612918565b8381111561155e5750506000910152565b6020815260008251806020840152612960816040850160208701612915565b601f01601f19169190910160400192915050565b600081518084526020808501945080840160005b838110156129ad5781516001600160a01b031687529582019590820190600101612988565b509495945050505050565b602081526000610c9a6020830184612974565b6001600160a01b0381168114611b0457600080fd5b600080604083850312156129f357600080fd5b82356129fe816129cb565b946020939093013593505050565b600060208284031215612a1e57600080fd5b8135610c9a816129cb565b600081518084526020808501945080840160005b838110156129ad57815187529582019590820190600101612a3d565b602081526000610c9a6020830184612a29565b60008060008060808587031215612a8257600080fd5b8435612a8d816129cb565b93506020850135612a9d816129cb565b93969395505050506040820135916060013590565b600080600060608486031215612ac757600080fd5b8335612ad2816129cb565b92506020840135612ae2816129cb565b929592945050506040919091013590565b60008060408385031215612b0657600080fd5b8235612b11816129cb565b91506020830135612b21816129cb565b809150509250929050565b6001600160a01b0391909116815260200190565b6060810160028510612b6257634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60008060008060808587031215612b9857600080fd5b8435612ba3816129cb565b9350602085013592506040850135612bba816129cb565b9396929550929360600135925050565b600181811c90821680612bde57607f821691505b602082108103612bfe57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527329a1ac9d1024b73b30b634b2103a37b5b2b724b760611b604082015260600190565b60208082526015908201527414d0d64e881a5b9cdd59999a58da595b9d081bdd5d605a1b604082015260600190565b600060208284031215612cd657600080fd5b815160ff81168114610c9a57600080fd5b604081526000612cfa6040830185612974565b8281036020840152612d0c8185612a29565b95945050505050565b600060208284031215612d2757600080fd5b5051919050565b600060208284031215612d4057600080fd5b8151610c9a816129cb565b634e487b7160e01b600052601160045260246000fd5b600082821015612d7357612d73612d4b565b500390565b60006001600160f81b03828116848216808303821115612d9a57612d9a612d4b565b01949350505050565b60008219821115612db657612db6612d4b565b500190565b60006001600160f81b0383811690831681811015612ddb57612ddb612d4b565b039392505050565b634e487b7160e01b600052601260045260246000fd5b600082612e1657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612e3557612e35612d4b565b500290565b60006001600160801b0383811690831681811015612ddb57612ddb612d4b565b600060018201612e6c57612e6c612d4b565b5060010190565b60006001600160801b03828116848216808303821115612d9a57612d9a612d4b565b600060208284031215612ea757600080fd5b81518015158114610c9a57600080fd5b634e487b7160e01b600052600160045260246000fd5b60008251612edf818460208701612915565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122039d44cea7444c533d757fddc4a7f74998841e4709ffa901220b1e0c3c020d1ca64736f6c634300080f0033",
782
+ "linkReferences": {},
783
+ "deployedLinkReferences": {}
784
+ }