@pendle/core-v2 2.9.0-mainnet → 2.10.0-mainnet

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 (243) hide show
  1. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  4. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  8. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  13. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  22. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  24. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  26. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  28. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  31. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  33. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  37. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Chronos/BaseContracts/PendleChronosNFTManager.sol/PendleChronosNFTManager.dbg.json +4 -0
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Chronos/BaseContracts/PendleChronosNFTManager.sol/PendleChronosNFTManager.json +142 -0
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Chronos/BaseContracts/PendleChronosVolatilePairBase.sol/PendleChronosVolatilePairBase.dbg.json +4 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Chronos/BaseContracts/PendleChronosVolatilePairBase.sol/PendleChronosVolatilePairBase.json +76 -0
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Chronos/PendleChronosChrEthSY.sol/PendleChronosChrEthSY.dbg.json +4 -0
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Chronos/PendleChronosChrEthSY.sol/PendleChronosChrEthSY.json +1238 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  81. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  84. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  86. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  89. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  91. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  93. package/build/artifacts/contracts/interfaces/Chronos/IChronosFactory.sol/IChronosFactory.dbg.json +4 -0
  94. package/build/artifacts/contracts/interfaces/Chronos/IChronosFactory.sol/IChronosFactory.json +152 -0
  95. package/build/artifacts/contracts/interfaces/Chronos/IChronosPair.sol/IChronosPair.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/Chronos/IChronosPair.sol/IChronosPair.json +461 -0
  97. package/build/artifacts/contracts/interfaces/Chronos/IChronosRouter.sol/IChronosRouter.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/Chronos/IChronosRouter.sol/IChronosRouter.json +195 -0
  99. package/build/artifacts/contracts/interfaces/Chronos/IMaGauge.sol/IMaGauge.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/Chronos/IMaGauge.sol/IMaGauge.json +728 -0
  101. package/build/artifacts/contracts/interfaces/Chronos/IMaLPNFT.sol/IMaLPNFT.dbg.json +4 -0
  102. package/build/artifacts/contracts/interfaces/Chronos/IMaLPNFT.sol/IMaLPNFT.json +690 -0
  103. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  116. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  117. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  118. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  119. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  120. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  121. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +4 -0
  122. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.json +200 -0
  123. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  124. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  125. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  126. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  127. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  128. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  129. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  130. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  131. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  132. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  133. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  134. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  135. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  136. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  137. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  138. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  139. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  140. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  141. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  142. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  143. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  144. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  145. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.json +2 -2
  146. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  147. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  148. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  150. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  151. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  152. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  153. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  154. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  156. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  158. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  159. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  160. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  161. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  162. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  163. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  164. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol +166 -0
  165. package/contracts/core/libraries/Errors.sol +1 -0
  166. package/contracts/interfaces/IPFeeDistributor.sol +3 -4
  167. package/contracts/interfaces/IPFeeDistributorV2.sol +46 -0
  168. package/contracts/offchain-helpers/EmptyUUPS.sol +16 -0
  169. package/contracts/oracles/samples/PendlePtGlpOracle.sol +1 -1
  170. package/deployments/1-core.json +2 -1
  171. package/package.json +1 -1
  172. package/typechain-types/EmptyUUPS.ts +352 -0
  173. package/typechain-types/IChronosFactory.ts +245 -0
  174. package/typechain-types/IChronosPair.ts +631 -0
  175. package/typechain-types/IChronosRouter.ts +311 -0
  176. package/typechain-types/IERC721Receiver.ts +120 -0
  177. package/typechain-types/IMaGauge.ts +1246 -0
  178. package/typechain-types/IMaLPNFT.ts +1146 -0
  179. package/typechain-types/IPair.ts +553 -0
  180. package/typechain-types/IPairFactory.ts +245 -0
  181. package/typechain-types/PendleChronosChrEthSY.ts +1520 -0
  182. package/typechain-types/PendleChronosNFTManager.ts +217 -0
  183. package/typechain-types/PendleChronosVolatilePairBase.ts +134 -0
  184. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  185. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  186. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  187. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  188. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  189. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  190. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  191. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  192. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  193. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  194. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  195. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  196. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  197. package/typechain-types/factories/EmptyUUPS__factory.ts +250 -0
  198. package/typechain-types/factories/IChronosFactory__factory.ts +167 -0
  199. package/typechain-types/factories/IChronosPair__factory.ts +473 -0
  200. package/typechain-types/factories/IChronosRouter__factory.ts +210 -0
  201. package/typechain-types/factories/IERC721Receiver__factory.ts +60 -0
  202. package/typechain-types/factories/IMaGauge__factory.ts +740 -0
  203. package/typechain-types/factories/IMaLPNFT__factory.ts +702 -0
  204. package/typechain-types/factories/IPairFactory__factory.ts +164 -0
  205. package/typechain-types/factories/IPair__factory.ts +392 -0
  206. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  207. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  208. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  209. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  210. package/typechain-types/factories/PendleChronosChrEthSY__factory.ts +1323 -0
  211. package/typechain-types/factories/PendleChronosNFTManager__factory.ts +161 -0
  212. package/typechain-types/factories/PendleChronosVolatilePairBase__factory.ts +95 -0
  213. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  214. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  215. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  216. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  217. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  218. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  219. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  220. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  221. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  222. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  223. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  224. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  225. package/typechain-types/factories/PendlePtUsdChainlinkOracle__factory.ts +1 -1
  226. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  227. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  228. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  229. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  230. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  231. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  232. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  233. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  234. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  235. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  236. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  237. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  238. package/typechain-types/factories/SAPE__factory.ts +1 -1
  239. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  240. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  241. package/typechain-types/hardhat.d.ts +84 -30
  242. package/typechain-types/index.ts +20 -8
  243. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +0 -219
@@ -0,0 +1,1238 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleChronosChrEthSY",
4
+ "sourceName": "contracts/core/StandardizedYield/implementations/Chronos/PendleChronosChrEthSY.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": "_pair",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_factory",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address",
30
+ "name": "_router",
31
+ "type": "address"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "_maGauge",
36
+ "type": "address"
37
+ }
38
+ ],
39
+ "stateMutability": "nonpayable",
40
+ "type": "constructor"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "actualSharesOut",
47
+ "type": "uint256"
48
+ },
49
+ {
50
+ "internalType": "uint256",
51
+ "name": "requiredSharesOut",
52
+ "type": "uint256"
53
+ }
54
+ ],
55
+ "name": "SYInsufficientSharesOut",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [
60
+ {
61
+ "internalType": "uint256",
62
+ "name": "actualTokenOut",
63
+ "type": "uint256"
64
+ },
65
+ {
66
+ "internalType": "uint256",
67
+ "name": "requiredTokenOut",
68
+ "type": "uint256"
69
+ }
70
+ ],
71
+ "name": "SYInsufficientTokenOut",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [
76
+ {
77
+ "internalType": "address",
78
+ "name": "token",
79
+ "type": "address"
80
+ }
81
+ ],
82
+ "name": "SYInvalidTokenIn",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [
87
+ {
88
+ "internalType": "address",
89
+ "name": "token",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "SYInvalidTokenOut",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "SYZeroDeposit",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "SYZeroRedeem",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "anonymous": false,
108
+ "inputs": [
109
+ {
110
+ "indexed": true,
111
+ "internalType": "address",
112
+ "name": "owner",
113
+ "type": "address"
114
+ },
115
+ {
116
+ "indexed": true,
117
+ "internalType": "address",
118
+ "name": "spender",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "indexed": false,
123
+ "internalType": "uint256",
124
+ "name": "value",
125
+ "type": "uint256"
126
+ }
127
+ ],
128
+ "name": "Approval",
129
+ "type": "event"
130
+ },
131
+ {
132
+ "anonymous": false,
133
+ "inputs": [
134
+ {
135
+ "indexed": true,
136
+ "internalType": "address",
137
+ "name": "user",
138
+ "type": "address"
139
+ },
140
+ {
141
+ "indexed": false,
142
+ "internalType": "address[]",
143
+ "name": "rewardTokens",
144
+ "type": "address[]"
145
+ },
146
+ {
147
+ "indexed": false,
148
+ "internalType": "uint256[]",
149
+ "name": "rewardAmounts",
150
+ "type": "uint256[]"
151
+ }
152
+ ],
153
+ "name": "ClaimRewards",
154
+ "type": "event"
155
+ },
156
+ {
157
+ "anonymous": false,
158
+ "inputs": [
159
+ {
160
+ "indexed": true,
161
+ "internalType": "address",
162
+ "name": "caller",
163
+ "type": "address"
164
+ },
165
+ {
166
+ "indexed": true,
167
+ "internalType": "address",
168
+ "name": "receiver",
169
+ "type": "address"
170
+ },
171
+ {
172
+ "indexed": true,
173
+ "internalType": "address",
174
+ "name": "tokenIn",
175
+ "type": "address"
176
+ },
177
+ {
178
+ "indexed": false,
179
+ "internalType": "uint256",
180
+ "name": "amountDeposited",
181
+ "type": "uint256"
182
+ },
183
+ {
184
+ "indexed": false,
185
+ "internalType": "uint256",
186
+ "name": "amountSyOut",
187
+ "type": "uint256"
188
+ }
189
+ ],
190
+ "name": "Deposit",
191
+ "type": "event"
192
+ },
193
+ {
194
+ "anonymous": false,
195
+ "inputs": [
196
+ {
197
+ "indexed": false,
198
+ "internalType": "uint8",
199
+ "name": "version",
200
+ "type": "uint8"
201
+ }
202
+ ],
203
+ "name": "Initialized",
204
+ "type": "event"
205
+ },
206
+ {
207
+ "anonymous": false,
208
+ "inputs": [
209
+ {
210
+ "indexed": true,
211
+ "internalType": "address",
212
+ "name": "previousOwner",
213
+ "type": "address"
214
+ },
215
+ {
216
+ "indexed": true,
217
+ "internalType": "address",
218
+ "name": "newOwner",
219
+ "type": "address"
220
+ }
221
+ ],
222
+ "name": "OwnershipTransferred",
223
+ "type": "event"
224
+ },
225
+ {
226
+ "anonymous": false,
227
+ "inputs": [
228
+ {
229
+ "indexed": false,
230
+ "internalType": "address",
231
+ "name": "account",
232
+ "type": "address"
233
+ }
234
+ ],
235
+ "name": "Paused",
236
+ "type": "event"
237
+ },
238
+ {
239
+ "anonymous": false,
240
+ "inputs": [
241
+ {
242
+ "indexed": true,
243
+ "internalType": "address",
244
+ "name": "caller",
245
+ "type": "address"
246
+ },
247
+ {
248
+ "indexed": true,
249
+ "internalType": "address",
250
+ "name": "receiver",
251
+ "type": "address"
252
+ },
253
+ {
254
+ "indexed": true,
255
+ "internalType": "address",
256
+ "name": "tokenOut",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "indexed": false,
261
+ "internalType": "uint256",
262
+ "name": "amountSyToRedeem",
263
+ "type": "uint256"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "uint256",
268
+ "name": "amountTokenOut",
269
+ "type": "uint256"
270
+ }
271
+ ],
272
+ "name": "Redeem",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": true,
280
+ "internalType": "address",
281
+ "name": "from",
282
+ "type": "address"
283
+ },
284
+ {
285
+ "indexed": true,
286
+ "internalType": "address",
287
+ "name": "to",
288
+ "type": "address"
289
+ },
290
+ {
291
+ "indexed": false,
292
+ "internalType": "uint256",
293
+ "name": "value",
294
+ "type": "uint256"
295
+ }
296
+ ],
297
+ "name": "Transfer",
298
+ "type": "event"
299
+ },
300
+ {
301
+ "anonymous": false,
302
+ "inputs": [
303
+ {
304
+ "indexed": false,
305
+ "internalType": "address",
306
+ "name": "account",
307
+ "type": "address"
308
+ }
309
+ ],
310
+ "name": "Unpaused",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "inputs": [],
315
+ "name": "CHR",
316
+ "outputs": [
317
+ {
318
+ "internalType": "address",
319
+ "name": "",
320
+ "type": "address"
321
+ }
322
+ ],
323
+ "stateMutability": "view",
324
+ "type": "function"
325
+ },
326
+ {
327
+ "inputs": [],
328
+ "name": "DOMAIN_SEPARATOR",
329
+ "outputs": [
330
+ {
331
+ "internalType": "bytes32",
332
+ "name": "",
333
+ "type": "bytes32"
334
+ }
335
+ ],
336
+ "stateMutability": "view",
337
+ "type": "function"
338
+ },
339
+ {
340
+ "inputs": [],
341
+ "name": "INF",
342
+ "outputs": [
343
+ {
344
+ "internalType": "uint256",
345
+ "name": "",
346
+ "type": "uint256"
347
+ }
348
+ ],
349
+ "stateMutability": "view",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [],
354
+ "name": "NO_NFT",
355
+ "outputs": [
356
+ {
357
+ "internalType": "uint256",
358
+ "name": "",
359
+ "type": "uint256"
360
+ }
361
+ ],
362
+ "stateMutability": "view",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "inputs": [],
367
+ "name": "N_MATURITY",
368
+ "outputs": [
369
+ {
370
+ "internalType": "uint256",
371
+ "name": "",
372
+ "type": "uint256"
373
+ }
374
+ ],
375
+ "stateMutability": "view",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [],
380
+ "name": "WEEK",
381
+ "outputs": [
382
+ {
383
+ "internalType": "uint256",
384
+ "name": "",
385
+ "type": "uint256"
386
+ }
387
+ ],
388
+ "stateMutability": "view",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "address",
395
+ "name": "user",
396
+ "type": "address"
397
+ }
398
+ ],
399
+ "name": "accruedRewards",
400
+ "outputs": [
401
+ {
402
+ "internalType": "uint256[]",
403
+ "name": "rewardAmounts",
404
+ "type": "uint256[]"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [
412
+ {
413
+ "internalType": "address",
414
+ "name": "owner",
415
+ "type": "address"
416
+ },
417
+ {
418
+ "internalType": "address",
419
+ "name": "spender",
420
+ "type": "address"
421
+ }
422
+ ],
423
+ "name": "allowance",
424
+ "outputs": [
425
+ {
426
+ "internalType": "uint256",
427
+ "name": "",
428
+ "type": "uint256"
429
+ }
430
+ ],
431
+ "stateMutability": "view",
432
+ "type": "function"
433
+ },
434
+ {
435
+ "inputs": [
436
+ {
437
+ "internalType": "address",
438
+ "name": "spender",
439
+ "type": "address"
440
+ },
441
+ {
442
+ "internalType": "uint256",
443
+ "name": "amount",
444
+ "type": "uint256"
445
+ }
446
+ ],
447
+ "name": "approve",
448
+ "outputs": [
449
+ {
450
+ "internalType": "bool",
451
+ "name": "",
452
+ "type": "bool"
453
+ }
454
+ ],
455
+ "stateMutability": "nonpayable",
456
+ "type": "function"
457
+ },
458
+ {
459
+ "inputs": [],
460
+ "name": "assetInfo",
461
+ "outputs": [
462
+ {
463
+ "internalType": "enum IStandardizedYield.AssetType",
464
+ "name": "assetType",
465
+ "type": "uint8"
466
+ },
467
+ {
468
+ "internalType": "address",
469
+ "name": "assetAddress",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "internalType": "uint8",
474
+ "name": "assetDecimals",
475
+ "type": "uint8"
476
+ }
477
+ ],
478
+ "stateMutability": "view",
479
+ "type": "function"
480
+ },
481
+ {
482
+ "inputs": [
483
+ {
484
+ "internalType": "address",
485
+ "name": "account",
486
+ "type": "address"
487
+ }
488
+ ],
489
+ "name": "balanceOf",
490
+ "outputs": [
491
+ {
492
+ "internalType": "uint256",
493
+ "name": "",
494
+ "type": "uint256"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [],
502
+ "name": "claimOwnership",
503
+ "outputs": [],
504
+ "stateMutability": "nonpayable",
505
+ "type": "function"
506
+ },
507
+ {
508
+ "inputs": [
509
+ {
510
+ "internalType": "address",
511
+ "name": "user",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "name": "claimRewards",
516
+ "outputs": [
517
+ {
518
+ "internalType": "uint256[]",
519
+ "name": "rewardAmounts",
520
+ "type": "uint256[]"
521
+ }
522
+ ],
523
+ "stateMutability": "nonpayable",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [],
528
+ "name": "decimals",
529
+ "outputs": [
530
+ {
531
+ "internalType": "uint8",
532
+ "name": "",
533
+ "type": "uint8"
534
+ }
535
+ ],
536
+ "stateMutability": "view",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [
541
+ {
542
+ "internalType": "address",
543
+ "name": "receiver",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "address",
548
+ "name": "tokenIn",
549
+ "type": "address"
550
+ },
551
+ {
552
+ "internalType": "uint256",
553
+ "name": "amountTokenToDeposit",
554
+ "type": "uint256"
555
+ },
556
+ {
557
+ "internalType": "uint256",
558
+ "name": "minSharesOut",
559
+ "type": "uint256"
560
+ }
561
+ ],
562
+ "name": "deposit",
563
+ "outputs": [
564
+ {
565
+ "internalType": "uint256",
566
+ "name": "amountSharesOut",
567
+ "type": "uint256"
568
+ }
569
+ ],
570
+ "stateMutability": "payable",
571
+ "type": "function"
572
+ },
573
+ {
574
+ "inputs": [],
575
+ "name": "exchangeRate",
576
+ "outputs": [
577
+ {
578
+ "internalType": "uint256",
579
+ "name": "",
580
+ "type": "uint256"
581
+ }
582
+ ],
583
+ "stateMutability": "view",
584
+ "type": "function"
585
+ },
586
+ {
587
+ "inputs": [],
588
+ "name": "factory",
589
+ "outputs": [
590
+ {
591
+ "internalType": "address",
592
+ "name": "",
593
+ "type": "address"
594
+ }
595
+ ],
596
+ "stateMutability": "view",
597
+ "type": "function"
598
+ },
599
+ {
600
+ "inputs": [],
601
+ "name": "getRewardTokens",
602
+ "outputs": [
603
+ {
604
+ "internalType": "address[]",
605
+ "name": "rewardTokens",
606
+ "type": "address[]"
607
+ }
608
+ ],
609
+ "stateMutability": "view",
610
+ "type": "function"
611
+ },
612
+ {
613
+ "inputs": [],
614
+ "name": "getTokensIn",
615
+ "outputs": [
616
+ {
617
+ "internalType": "address[]",
618
+ "name": "res",
619
+ "type": "address[]"
620
+ }
621
+ ],
622
+ "stateMutability": "view",
623
+ "type": "function"
624
+ },
625
+ {
626
+ "inputs": [],
627
+ "name": "getTokensOut",
628
+ "outputs": [
629
+ {
630
+ "internalType": "address[]",
631
+ "name": "res",
632
+ "type": "address[]"
633
+ }
634
+ ],
635
+ "stateMutability": "view",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [
640
+ {
641
+ "internalType": "address",
642
+ "name": "token",
643
+ "type": "address"
644
+ }
645
+ ],
646
+ "name": "isValidTokenIn",
647
+ "outputs": [
648
+ {
649
+ "internalType": "bool",
650
+ "name": "",
651
+ "type": "bool"
652
+ }
653
+ ],
654
+ "stateMutability": "view",
655
+ "type": "function"
656
+ },
657
+ {
658
+ "inputs": [
659
+ {
660
+ "internalType": "address",
661
+ "name": "token",
662
+ "type": "address"
663
+ }
664
+ ],
665
+ "name": "isValidTokenOut",
666
+ "outputs": [
667
+ {
668
+ "internalType": "bool",
669
+ "name": "",
670
+ "type": "bool"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [],
678
+ "name": "lastRewardBlock",
679
+ "outputs": [
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "",
683
+ "type": "uint256"
684
+ }
685
+ ],
686
+ "stateMutability": "view",
687
+ "type": "function"
688
+ },
689
+ {
690
+ "inputs": [],
691
+ "name": "maGauge",
692
+ "outputs": [
693
+ {
694
+ "internalType": "address",
695
+ "name": "",
696
+ "type": "address"
697
+ }
698
+ ],
699
+ "stateMutability": "view",
700
+ "type": "function"
701
+ },
702
+ {
703
+ "inputs": [],
704
+ "name": "maNft",
705
+ "outputs": [
706
+ {
707
+ "internalType": "address",
708
+ "name": "",
709
+ "type": "address"
710
+ }
711
+ ],
712
+ "stateMutability": "view",
713
+ "type": "function"
714
+ },
715
+ {
716
+ "inputs": [],
717
+ "name": "name",
718
+ "outputs": [
719
+ {
720
+ "internalType": "string",
721
+ "name": "",
722
+ "type": "string"
723
+ }
724
+ ],
725
+ "stateMutability": "view",
726
+ "type": "function"
727
+ },
728
+ {
729
+ "inputs": [
730
+ {
731
+ "internalType": "uint256",
732
+ "name": "",
733
+ "type": "uint256"
734
+ }
735
+ ],
736
+ "name": "nfts",
737
+ "outputs": [
738
+ {
739
+ "internalType": "uint256",
740
+ "name": "",
741
+ "type": "uint256"
742
+ }
743
+ ],
744
+ "stateMutability": "view",
745
+ "type": "function"
746
+ },
747
+ {
748
+ "inputs": [
749
+ {
750
+ "internalType": "address",
751
+ "name": "owner",
752
+ "type": "address"
753
+ }
754
+ ],
755
+ "name": "nonces",
756
+ "outputs": [
757
+ {
758
+ "internalType": "uint256",
759
+ "name": "",
760
+ "type": "uint256"
761
+ }
762
+ ],
763
+ "stateMutability": "view",
764
+ "type": "function"
765
+ },
766
+ {
767
+ "inputs": [
768
+ {
769
+ "internalType": "address",
770
+ "name": "",
771
+ "type": "address"
772
+ },
773
+ {
774
+ "internalType": "address",
775
+ "name": "",
776
+ "type": "address"
777
+ },
778
+ {
779
+ "internalType": "uint256",
780
+ "name": "tokenId",
781
+ "type": "uint256"
782
+ },
783
+ {
784
+ "internalType": "bytes",
785
+ "name": "",
786
+ "type": "bytes"
787
+ }
788
+ ],
789
+ "name": "onERC721Received",
790
+ "outputs": [
791
+ {
792
+ "internalType": "bytes4",
793
+ "name": "",
794
+ "type": "bytes4"
795
+ }
796
+ ],
797
+ "stateMutability": "nonpayable",
798
+ "type": "function"
799
+ },
800
+ {
801
+ "inputs": [],
802
+ "name": "owner",
803
+ "outputs": [
804
+ {
805
+ "internalType": "address",
806
+ "name": "",
807
+ "type": "address"
808
+ }
809
+ ],
810
+ "stateMutability": "view",
811
+ "type": "function"
812
+ },
813
+ {
814
+ "inputs": [],
815
+ "name": "pair",
816
+ "outputs": [
817
+ {
818
+ "internalType": "address",
819
+ "name": "",
820
+ "type": "address"
821
+ }
822
+ ],
823
+ "stateMutability": "view",
824
+ "type": "function"
825
+ },
826
+ {
827
+ "inputs": [],
828
+ "name": "pause",
829
+ "outputs": [],
830
+ "stateMutability": "nonpayable",
831
+ "type": "function"
832
+ },
833
+ {
834
+ "inputs": [],
835
+ "name": "paused",
836
+ "outputs": [
837
+ {
838
+ "internalType": "bool",
839
+ "name": "",
840
+ "type": "bool"
841
+ }
842
+ ],
843
+ "stateMutability": "view",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [],
848
+ "name": "pendingOwner",
849
+ "outputs": [
850
+ {
851
+ "internalType": "address",
852
+ "name": "",
853
+ "type": "address"
854
+ }
855
+ ],
856
+ "stateMutability": "view",
857
+ "type": "function"
858
+ },
859
+ {
860
+ "inputs": [
861
+ {
862
+ "internalType": "address",
863
+ "name": "owner",
864
+ "type": "address"
865
+ },
866
+ {
867
+ "internalType": "address",
868
+ "name": "spender",
869
+ "type": "address"
870
+ },
871
+ {
872
+ "internalType": "uint256",
873
+ "name": "value",
874
+ "type": "uint256"
875
+ },
876
+ {
877
+ "internalType": "uint256",
878
+ "name": "deadline",
879
+ "type": "uint256"
880
+ },
881
+ {
882
+ "internalType": "uint8",
883
+ "name": "v",
884
+ "type": "uint8"
885
+ },
886
+ {
887
+ "internalType": "bytes32",
888
+ "name": "r",
889
+ "type": "bytes32"
890
+ },
891
+ {
892
+ "internalType": "bytes32",
893
+ "name": "s",
894
+ "type": "bytes32"
895
+ }
896
+ ],
897
+ "name": "permit",
898
+ "outputs": [],
899
+ "stateMutability": "nonpayable",
900
+ "type": "function"
901
+ },
902
+ {
903
+ "inputs": [
904
+ {
905
+ "internalType": "address",
906
+ "name": "tokenIn",
907
+ "type": "address"
908
+ },
909
+ {
910
+ "internalType": "uint256",
911
+ "name": "amountTokenToDeposit",
912
+ "type": "uint256"
913
+ }
914
+ ],
915
+ "name": "previewDeposit",
916
+ "outputs": [
917
+ {
918
+ "internalType": "uint256",
919
+ "name": "amountSharesOut",
920
+ "type": "uint256"
921
+ }
922
+ ],
923
+ "stateMutability": "view",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "address",
930
+ "name": "tokenOut",
931
+ "type": "address"
932
+ },
933
+ {
934
+ "internalType": "uint256",
935
+ "name": "amountSharesToRedeem",
936
+ "type": "uint256"
937
+ }
938
+ ],
939
+ "name": "previewRedeem",
940
+ "outputs": [
941
+ {
942
+ "internalType": "uint256",
943
+ "name": "amountTokenOut",
944
+ "type": "uint256"
945
+ }
946
+ ],
947
+ "stateMutability": "view",
948
+ "type": "function"
949
+ },
950
+ {
951
+ "inputs": [
952
+ {
953
+ "internalType": "address",
954
+ "name": "receiver",
955
+ "type": "address"
956
+ },
957
+ {
958
+ "internalType": "uint256",
959
+ "name": "amountSharesToRedeem",
960
+ "type": "uint256"
961
+ },
962
+ {
963
+ "internalType": "address",
964
+ "name": "tokenOut",
965
+ "type": "address"
966
+ },
967
+ {
968
+ "internalType": "uint256",
969
+ "name": "minTokenOut",
970
+ "type": "uint256"
971
+ },
972
+ {
973
+ "internalType": "bool",
974
+ "name": "burnFromInternalBalance",
975
+ "type": "bool"
976
+ }
977
+ ],
978
+ "name": "redeem",
979
+ "outputs": [
980
+ {
981
+ "internalType": "uint256",
982
+ "name": "amountTokenOut",
983
+ "type": "uint256"
984
+ }
985
+ ],
986
+ "stateMutability": "nonpayable",
987
+ "type": "function"
988
+ },
989
+ {
990
+ "inputs": [],
991
+ "name": "rewardIndexesCurrent",
992
+ "outputs": [
993
+ {
994
+ "internalType": "uint256[]",
995
+ "name": "indexes",
996
+ "type": "uint256[]"
997
+ }
998
+ ],
999
+ "stateMutability": "nonpayable",
1000
+ "type": "function"
1001
+ },
1002
+ {
1003
+ "inputs": [],
1004
+ "name": "rewardIndexesStored",
1005
+ "outputs": [
1006
+ {
1007
+ "internalType": "uint256[]",
1008
+ "name": "indexes",
1009
+ "type": "uint256[]"
1010
+ }
1011
+ ],
1012
+ "stateMutability": "view",
1013
+ "type": "function"
1014
+ },
1015
+ {
1016
+ "inputs": [
1017
+ {
1018
+ "internalType": "address",
1019
+ "name": "",
1020
+ "type": "address"
1021
+ }
1022
+ ],
1023
+ "name": "rewardState",
1024
+ "outputs": [
1025
+ {
1026
+ "internalType": "uint128",
1027
+ "name": "index",
1028
+ "type": "uint128"
1029
+ },
1030
+ {
1031
+ "internalType": "uint128",
1032
+ "name": "lastBalance",
1033
+ "type": "uint128"
1034
+ }
1035
+ ],
1036
+ "stateMutability": "view",
1037
+ "type": "function"
1038
+ },
1039
+ {
1040
+ "inputs": [],
1041
+ "name": "router",
1042
+ "outputs": [
1043
+ {
1044
+ "internalType": "address",
1045
+ "name": "",
1046
+ "type": "address"
1047
+ }
1048
+ ],
1049
+ "stateMutability": "view",
1050
+ "type": "function"
1051
+ },
1052
+ {
1053
+ "inputs": [],
1054
+ "name": "symbol",
1055
+ "outputs": [
1056
+ {
1057
+ "internalType": "string",
1058
+ "name": "",
1059
+ "type": "string"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "view",
1063
+ "type": "function"
1064
+ },
1065
+ {
1066
+ "inputs": [],
1067
+ "name": "token0",
1068
+ "outputs": [
1069
+ {
1070
+ "internalType": "address",
1071
+ "name": "",
1072
+ "type": "address"
1073
+ }
1074
+ ],
1075
+ "stateMutability": "view",
1076
+ "type": "function"
1077
+ },
1078
+ {
1079
+ "inputs": [],
1080
+ "name": "token1",
1081
+ "outputs": [
1082
+ {
1083
+ "internalType": "address",
1084
+ "name": "",
1085
+ "type": "address"
1086
+ }
1087
+ ],
1088
+ "stateMutability": "view",
1089
+ "type": "function"
1090
+ },
1091
+ {
1092
+ "inputs": [],
1093
+ "name": "totalSupply",
1094
+ "outputs": [
1095
+ {
1096
+ "internalType": "uint256",
1097
+ "name": "",
1098
+ "type": "uint256"
1099
+ }
1100
+ ],
1101
+ "stateMutability": "view",
1102
+ "type": "function"
1103
+ },
1104
+ {
1105
+ "inputs": [
1106
+ {
1107
+ "internalType": "address",
1108
+ "name": "to",
1109
+ "type": "address"
1110
+ },
1111
+ {
1112
+ "internalType": "uint256",
1113
+ "name": "amount",
1114
+ "type": "uint256"
1115
+ }
1116
+ ],
1117
+ "name": "transfer",
1118
+ "outputs": [
1119
+ {
1120
+ "internalType": "bool",
1121
+ "name": "",
1122
+ "type": "bool"
1123
+ }
1124
+ ],
1125
+ "stateMutability": "nonpayable",
1126
+ "type": "function"
1127
+ },
1128
+ {
1129
+ "inputs": [
1130
+ {
1131
+ "internalType": "address",
1132
+ "name": "from",
1133
+ "type": "address"
1134
+ },
1135
+ {
1136
+ "internalType": "address",
1137
+ "name": "to",
1138
+ "type": "address"
1139
+ },
1140
+ {
1141
+ "internalType": "uint256",
1142
+ "name": "amount",
1143
+ "type": "uint256"
1144
+ }
1145
+ ],
1146
+ "name": "transferFrom",
1147
+ "outputs": [
1148
+ {
1149
+ "internalType": "bool",
1150
+ "name": "",
1151
+ "type": "bool"
1152
+ }
1153
+ ],
1154
+ "stateMutability": "nonpayable",
1155
+ "type": "function"
1156
+ },
1157
+ {
1158
+ "inputs": [
1159
+ {
1160
+ "internalType": "address",
1161
+ "name": "newOwner",
1162
+ "type": "address"
1163
+ },
1164
+ {
1165
+ "internalType": "bool",
1166
+ "name": "direct",
1167
+ "type": "bool"
1168
+ },
1169
+ {
1170
+ "internalType": "bool",
1171
+ "name": "renounce",
1172
+ "type": "bool"
1173
+ }
1174
+ ],
1175
+ "name": "transferOwnership",
1176
+ "outputs": [],
1177
+ "stateMutability": "nonpayable",
1178
+ "type": "function"
1179
+ },
1180
+ {
1181
+ "inputs": [],
1182
+ "name": "unpause",
1183
+ "outputs": [],
1184
+ "stateMutability": "nonpayable",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "internalType": "address",
1191
+ "name": "",
1192
+ "type": "address"
1193
+ },
1194
+ {
1195
+ "internalType": "address",
1196
+ "name": "",
1197
+ "type": "address"
1198
+ }
1199
+ ],
1200
+ "name": "userReward",
1201
+ "outputs": [
1202
+ {
1203
+ "internalType": "uint128",
1204
+ "name": "index",
1205
+ "type": "uint128"
1206
+ },
1207
+ {
1208
+ "internalType": "uint128",
1209
+ "name": "accrued",
1210
+ "type": "uint128"
1211
+ }
1212
+ ],
1213
+ "stateMutability": "view",
1214
+ "type": "function"
1215
+ },
1216
+ {
1217
+ "inputs": [],
1218
+ "name": "yieldToken",
1219
+ "outputs": [
1220
+ {
1221
+ "internalType": "address",
1222
+ "name": "",
1223
+ "type": "address"
1224
+ }
1225
+ ],
1226
+ "stateMutability": "view",
1227
+ "type": "function"
1228
+ },
1229
+ {
1230
+ "stateMutability": "payable",
1231
+ "type": "receive"
1232
+ }
1233
+ ],
1234
+ "bytecode": "0x6102606040523480156200001257600080fd5b506040516200623c3803806200623c8339810160408190526200003591620008b5565b858585828282898989898d8787876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000081573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a7919062000968565b6040805180820190915260018152603160f81b602082015283908184846003620000d2848262000a23565b506004620000e1838262000a23565b5060ff166080525050600280546001600160f81b0316600160f81b17905581516020808401919091208251918301919091206101008290526101208190524660c0527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001948184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b60a0523060e05261014052505050506001600160a01b038516610160819052604080516330bd46cf60e11b8152905191945063617a8d9e935060048082019350602092918290030181865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000218919062000aef565b6001600160a01b0316610180526200022f62000512565b6200024481610160516200055660201b60201c565b50506001600160a01b038084166101e0819052838216610200529082166102205260408051630dfe168160e01b81529051630dfe1681916004808201926020929091908290030181865afa158015620002a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c7919062000aef565b6001600160a01b03166101a0816001600160a01b0316815250506101e0516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062000aef565b6001600160a01b03166101c0526101a051610220516200036a919062000556565b620003826101c051610220516200055660201b60201c565b6200039a6101e051610220516200055660201b60201c565b50506042805460ff1916905550601154600160a81b900460ff1615808015620003d057506011546001600160a01b90910460ff16105b80620004075750620003ed306200062560201b6200197d1760201c565b158015620004075750601154600160a01b900460ff166001145b620004705760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6011805460ff60a01b1916600160a01b17905580156200049e576011805460ff60a81b1916600160a81b1790555b6001600160a01b03821661024052620004b662000634565b8015620004ff576011805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050505062000bdc565b60005b60068110156200054d576000196006826006811062000538576200053862000b0d565b0155620005458162000b23565b905062000515565b50600019600d55565b6001600160a01b03821662000569575050565b6200057d60026001600160601b0362000b4b565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015620005d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005fd919062000b80565b101562000621576200061282826000620006b7565b620006218282600019620006b7565b5050565b6001600160a01b03163b151590565b601154600160a81b900460ff16620006a35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000467565b601080546001600160a01b03191633179055565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169162000715919062000b9a565b6000604051808303816000865af19150503d806000811462000754576040519150601f19603f3d011682016040523d82523d6000602084013e62000759565b606091505b5091509150818015620007875750805115806200078757508080602001905181019062000787919062000bb8565b620007c45760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640162000467565b5050505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620007fe578181015183820152602001620007e4565b50506000910152565b600082601f8301126200081957600080fd5b81516001600160401b0380821115620008365762000836620007cb565b604051601f8301601f19908116603f01168101908282118183101715620008615762000861620007cb565b816040528381528660208588010111156200087b57600080fd5b6200088e846020830160208901620007e1565b9695505050505050565b80516001600160a01b0381168114620008b057600080fd5b919050565b60008060008060008060c08789031215620008cf57600080fd5b86516001600160401b0380821115620008e757600080fd5b620008f58a838b0162000807565b975060208901519150808211156200090c57600080fd5b506200091b89828a0162000807565b9550506200092c6040880162000898565b93506200093c6060880162000898565b92506200094c6080880162000898565b91506200095c60a0880162000898565b90509295509295509295565b6000602082840312156200097b57600080fd5b815160ff811681146200098d57600080fd5b9392505050565b600181811c90821680620009a957607f821691505b602082108103620009ca57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a1e57600081815260208120601f850160051c81016020861015620009f95750805b601f850160051c820191505b8181101562000a1a5782815560010162000a05565b5050505b505050565b81516001600160401b0381111562000a3f5762000a3f620007cb565b62000a578162000a50845462000994565b84620009d0565b602080601f83116001811462000a8f576000841562000a765750858301515b600019600386901b1c1916600185901b17855562000a1a565b600085815260208120601f198616915b8281101562000ac05788860151825594840194600190910190840162000a9f565b508582101562000adf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000b0257600080fd5b6200098d8262000898565b634e487b7160e01b600052603260045260246000fd5b60006001820162000b4457634e487b7160e01b600052601160045260246000fd5b5060010190565b60006001600160601b038381168062000b7457634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121562000b9357600080fd5b5051919050565b6000825162000bae818460208701620007e1565b9190910192915050565b60006020828403121562000bcb57600080fd5b815180151581146200098d57600080fd5b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161543a62000e0260003960006105e60152600081816109380152818161386d01528181613c840152613e3b01526000818161077a0152818161368d0152613fd30152600081816106f001528181610acd01528181610f9c0152818161102501528181611396015281816114370152818161145801528181611b670152818161230d015281816123a4015281816123f701528181612f70015281816135e601528181613f350152818161420b015281816142bb015261432401526000818161081701528181610a790152818161135a01528181612ca5015281816130b8015281816137940152818161381201528181613c2f01528181613d5e015261428e01526000818161034501528181610a250152818161131f01528181612c6901528181612ce201528181612e2c0152818161307c0152818161310e015281816136fc01528181613753015281816137ea01528181613c0701528181613cff01528181613d380152818161416a01526141de015260006107e301526000818161049a01528181612ae60152818161394c01528181613a1701528181613abc01528181613b82015281816146a3015281816147ae01526148ce01526000611fff0152600061204e0152600061202901526000611f8201526000611fac01526000611fd601526000610454015261543a6000f3fe6080604052600436106102535760003560e01c806303da28a41461025f57806305cc075b1461028757806306fdde031461029d578063071bc3c9146102bf578063078dfbe7146102e1578063095ea7b3146103035780630dfe168114610333578063128fced114610374578063150b7a02146103a157806318160ddd146103da57806320e8c565146103ef578063213cae63146102bf57806323b872dd14610402578063265aa62114610422578063313ce5671461044257806333d891fd146104885780633644e515146104bc5780633ba0b9a9146104d15780633f4ba83a146104e65780634e71e0c8146104fb5780635c975abb146105105780635cbadbe41461052857806370a0823114610594578063769f8e5d146105b457806376d5de85146105d4578063773fe9c714610608578063784367d6146106305780637ecebe00146106505780638456cb59146106705780638da5cb5b1461068557806395d89b41146106a55780639d2a679f14610287578063a40bee50146106ba578063a8aa1b31146106de578063a9059cbb14610712578063a9f8d18114610732578063b8f82b2614610748578063c45a015514610768578063c4f59f9b1461079c578063cbe52ae3146107b1578063cf2d3f99146107d1578063d21220a714610805578063d505accf14610839578063da88ecb414610859578063dd62ed3e1461086e578063e30c39781461088e578063ea64a820146108ae578063ef5cfb8c146108ef578063f4359ce51461090f578063f887ea4014610926578063f8b2f9911461095a578063fa5a4f061461063057600080fd5b3661025a57005b600080fd5b34801561026b57600080fd5b50610274600681565b6040519081526020015b60405180910390f35b34801561029357600080fd5b5061027460001981565b3480156102a957600080fd5b506102b261096f565b60405161027e9190614b18565b3480156102cb57600080fd5b506102d4610a01565b60405161027e9190614b8f565b3480156102ed57600080fd5b506103016102fc366004614bc7565b610b22565b005b34801561030f57600080fd5b5061032361031e366004614c10565b610c28565b604051901515815260200161027e565b34801561033f57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b60405161027e9190614c3a565b34801561038057600080fd5b5061039461038f366004614c4e565b610c42565b60405161027e9190614c99565b3480156103ad57600080fd5b506103c16103bc366004614cac565b610d4e565b6040516001600160e01b0319909116815260200161027e565b3480156103e657600080fd5b50610274610d99565b6102746103fd366004614d46565b610da8565b34801561040e57600080fd5b5061032361041d366004614d88565b610ef1565b34801561042e57600080fd5b5061027461043d366004614dc4565b610f6f565b34801561044e57600080fd5b506104767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027e565b34801561049457600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c857600080fd5b50610274610f86565b3480156104dd57600080fd5b50610274610f95565b3480156104f257600080fd5b506103016110cb565b34801561050757600080fd5b506103016110ff565b34801561051c57600080fd5b5060425460ff16610323565b34801561053457600080fd5b50610574610543366004614ddd565b60436020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161027e565b3480156105a057600080fd5b506102746105af366004614c4e565b6111ab565b3480156105c057600080fd5b506102746105cf366004614e10565b6111c6565b3480156105e057600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561061457600080fd5b506103677315b2fb8f08e4ac1ce019eadae02ee92aedf0685181565b34801561063c57600080fd5b5061032361064b366004614c4e565b61131b565b34801561065c57600080fd5b5061027461066b366004614c4e565b6113cf565b34801561067c57600080fd5b506103016113ed565b34801561069157600080fd5b50601054610367906001600160a01b031681565b3480156106b157600080fd5b506102b261141f565b3480156106c657600080fd5b506106cf61142e565b60405161027e93929190614e81565b3480156106ea57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561071e57600080fd5b5061032361072d366004614c10565b6114e3565b34801561073e57600080fd5b5061027460445481565b34801561075457600080fd5b50610274610763366004614c10565b611555565b34801561077457600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b3480156107a857600080fd5b506102d4611590565b3480156107bd57600080fd5b506102746107cc366004614c10565b61159a565b3480156107dd57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561081157600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561084557600080fd5b50610301610854366004614ed2565b6115ce565b34801561086557600080fd5b50610394611750565b34801561087a57600080fd5b50610274610889366004614ddd565b611821565b34801561089a57600080fd5b50601154610367906001600160a01b031681565b3480156108ba57600080fd5b506105746108c9366004614c4e565b6045602052600090815260409020546001600160801b0380821691600160801b90041682565b3480156108fb57600080fd5b5061039461090a366004614c4e565b61184c565b34801561091b57600080fd5b5061027462093a8081565b34801561093257600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561096657600080fd5b5061039461190b565b60606003805461097e90614f3f565b80601f01602080910402602001604051908101604052809291908181526020018280546109aa90614f3f565b80156109f75780601f106109cc576101008083540402835291602001916109f7565b820191906000526020600020905b8154815290600101906020018083116109da57829003601f168201915b5050505050905090565b604080516003808252608082019092526060916020820183803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610a5757610a57614f89565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610aab57610aab614f89565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110610aff57610aff614f89565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6010546001600160a01b03163314610b555760405162461bcd60e51b8152600401610b4c90614f9f565b60405180910390fd5b8115610c07576001600160a01b038316151580610b6f5750805b610bb35760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610b4c565b6010546040516001600160a01b038086169216906000805160206153c583398151915290600090a3601080546001600160a01b0385166001600160a01b031991821617909155601180549091169055505050565b601180546001600160a01b0319166001600160a01b0385161790555b505050565b600033610c3681858561198c565b60019150505b92915050565b60606000610c4e611ab1565b905080516001600160401b03811115610c6957610c69614f73565b604051908082528060200260200182016040528015610c92578160200160208202803683370190505b50915060005b8151811015610d475760436000838381518110610cb757610cb7614f89565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110610d3457610d34614f89565b6020908102919091010152600101610c98565b5050919050565b6000600019600d5414610d8757600d80548591600e91906000610d7083614fea565b9190505560028110610d8457610d84614f89565b01555b50630a85bd0160e11b95945050505050565b6002546001600160f81b031690565b600254600090600119600160f81b90910460ff1601610dd95760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b179055610df78461131b565b610e1657836040516315d57ce360e31b8152600401610b4c9190614c3a565b82600003610e3757604051630a907f2f60e41b815260040160405180910390fd5b610e42843385611afb565b610e4c8484611b62565b905081811015610e73578082604051635e38f95d60e11b8152600401610b4c92919061503a565b610e7d8582611bc2565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610ecc92919061503a565b60405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff1601610f225760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905533610f43858285611cd9565b610f4e858585611d53565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b60068160068110610f7f57600080fd5b0154905081565b6000610f90611f75565b905090565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c9190615048565b509150915060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a59190615076565b90506110c3816110bd6110b8858761508f565b61209c565b9061210c565b935050505090565b6010546001600160a01b031633146110f55760405162461bcd60e51b8152600401610b4c90614f9f565b6110fd61213b565b565b6011546001600160a01b031633811461115a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610b4c565b6010546040516001600160a01b038084169216906000805160206153c583398151915290600090a3601080546001600160a01b039092166001600160a01b0319928316179055601180549091169055565b6001600160a01b031660009081526020819052604090205490565b600254600090600119600160f81b90910460ff16016111f75760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b1790556112158461131b565b61123457836040516388a5056160e01b8152600401610b4c9190614c3a565b846000036112555760405163c3d83b0760e01b815260040160405180910390fd5b811561126a576112653086612187565b611274565b6112743386612187565b61127f868587612300565b9050828110156112a65780836040516305ff726560e51b8152600401610b4c92919061503a565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c88856040516112f592919061503a565b60405180910390a4600280546001600160f81b0316600160f81b17905595945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061138e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b80610c3c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6001600160a01b038116600090815260056020526040812054610c3c565b6010546001600160a01b031633146114175760405162461bcd60e51b8152600401610b4c90614f9f565b6110fd612363565b60606004805461097e90614f3f565b600080600060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d891906150a6565b925092509250909192565b600254600090600119600160f81b90910460ff16016115145760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905533611535818585611d53565b6001915050600280546001600160f81b0316600160f81b17905592915050565b60006115608361131b565b61157f57826040516315d57ce360e31b8152600401610b4c9190614c3a565b61158983836123a0565b9392505050565b6060610f90611ab1565b60006115a58361131b565b6115c457826040516388a5056160e01b8152600401610b4c9190614c3a565b61158983836123f3565b8342111561161e5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610b4c565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861166b8c6001600160a01b0316600090815260056020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006116c68261243f565b905060006116d68287878761248d565b9050896001600160a01b0316816001600160a01b0316146117395760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610b4c565b6117448a8a8a61198c565b50505050505050505050565b6060600061175c611ab1565b905080516001600160401b0381111561177757611777614f73565b6040519080825280602002602001820160405280156117a0578160200160208202803683370190505b50915060005b815181101561181c57604560008383815181106117c5576117c5614f89565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061180957611809614f89565b60209081029190910101526001016117a6565b505090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254606090600119600160f81b90910460ff160161187d5760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905561189b826124b5565b6118a582836124c3565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6118da611ab1565b836040516118e99291906150c3565b60405180910390a2600280546001600160f81b0316600160f81b179055919050565b600254606090600119600160f81b90910460ff160161193c5760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905561195961276b565b5050611963611750565b9050600280546001600160f81b0316600160f81b17905590565b6001600160a01b03163b151590565b6001600160a01b0383166119ee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b4c565b6001600160a01b038216611a4f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b4c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507315b2fb8f08e4ac1ce019eadae02ee92aedf0685181600081518110610aff57610aff614f89565b6001600160a01b038316611b4757803414610c235760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610b4c565b8015610c2357610c236001600160a01b038416833084612a06565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611ba5575081611bb2565b611baf8484612a71565b90505b611bbb81612a97565b5092915050565b6001600160a01b038216611c185760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b4c565b611c2460008383612b54565b611c2d81612b66565b60028054600090611c489084906001600160f81b03166150e8565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b031681526020019081526020016000206000828254611ca09190615108565b90915550506040518181526001600160a01b038316906000906000805160206153e58339815191529060200160405180910390a35b5050565b6000611ce58484611821565b90506000198114611d4d5781811015611d405760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b4c565b611d4d848484840361198c565b50505050565b6001600160a01b038316611db75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b4c565b6001600160a01b038216611e195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b4c565b816001600160a01b0316836001600160a01b031603611e745760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610b4c565b611e7f838383612b54565b6001600160a01b03831660009081526020819052604090205481811015611ef75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b4c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611f2e908490615108565b92505081905550826001600160a01b0316846001600160a01b03166000805160206153e583398151915284604051611f6891815260200190565b60405180910390a3611d4d565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611fce57507f000000000000000000000000000000000000000000000000000000000000000046145b15611ff857507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600060038211156120fd57508060006120b6600283615131565b6120c1906001615108565b90505b818110156120f7579050806002816120dc8186615131565b6120e69190615108565b6120f09190615131565b90506120c4565b50919050565b8115612107575060015b919050565b600080612121670de0b6b3a76400008561508f565b90508281816121325761213261511b565b04949350505050565b612143612b80565b6042805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161217d9190614c3a565b60405180910390a1565b6001600160a01b0382166121e75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b4c565b6121f382600083612b54565b6001600160a01b038216600090815260208190526040902054818110156122675760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b4c565b6001600160a01b0383166000908152602081905260409020828203905561228d82612b66565b600280546000906122a89084906001600160f81b0316615153565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b03166000805160206153e583398151915284604051611aa491815260200190565b600061230b82612bc9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361234b575080612358565b6123558383612c55565b90505b611589838583612d11565b61236b612dd5565b6042805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121703390565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036123e2575080610c3c565b6123ec8383612e1b565b9050610c3c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612435575080610c3c565b6123ec8383612f5f565b6000610c3c61244c611f75565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061249e87878787613146565b915091506124ab81613229565b5095945050505050565b6124c08160006133da565b50565b606060006124cf611ab1565b905080516001600160401b038111156124ea576124ea614f73565b604051908082528060200260200182016040528015612513578160200160208202803683370190505b50915060005b8151811015612763576043600083838151811061253857612538614f89565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b03168382815181106125b5576125b5614f89565b6020026020010181815250508281815181106125d3576125d3614f89565b6020026020010151600014612751576000604360008484815181106125fa576125fa614f89565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b0316021790555061268e83828151811061268157612681614f89565b602002602001015161345a565b604560008484815181106126a4576126a4614f89565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b03166126f09190615173565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061275182828151811061272957612729614f89565b60200260200101518585848151811061274457612744614f89565b6020026020010151612d11565b8061275b81614fea565b915050612519565b505092915050565b606080612776611ab1565b915081516001600160401b0381111561279157612791614f73565b6040519080825280602002602001820160405280156127ba578160200160208202803683370190505b50905081516000036127ca579091565b436044541461297e574360445560006127e1613470565b90506127eb61347a565b60005b835181101561297b57600084828151811061280b5761280b614f89565b6020908102919091018101516001600160a01b0381166000908152604590925260408220548751919350600160801b90046001600160801b0316906128699088908690811061285c5761285c614f89565b6020026020010151613482565b6128739190615193565b6001600160a01b0383166000908152604560205260408120549192506001600160801b03909116908190036128a6575060015b84156128c3576128b6828661210c565b6128c09082615108565b90505b6128cc8161345a565b6001600160a01b038416600090815260456020526040902080546001600160801b0319166001600160801b039290921691909117905561290b8261345a565b6001600160a01b03841660009081526045602052604090208054601090612943908490600160801b90046001600160801b03166151a6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505050508061297490614fea565b90506127ee565b50505b60005b8251811015612a0157604560008483815181106129a0576129a0614f89565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106129e4576129e4614f89565b6020908102919091010152806129f981614fea565b915050612981565b509091565b6040516001600160a01b0380851660248301528316604482015260648101829052611d4d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261350c565b6000806000612a8085856135de565b91509150612a8e82826137d3565b95945050505050565b60008111612aa757612aa76151c6565b612aaf6138dd565b6006546000612abd836139fe565b90506000198203612acf576006555050565b60405163a4ce79e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a4ce79e190612b1d908490869060040161503a565b600060405180830381600087803b158015612b3757600080fd5b505af1158015612b4b573d6000803e3d6000fd5b50505050505050565b612b5c612dd5565b610c2383836133da565b60006001600160f81b03821115612b7c57600080fd5b5090565b60425460ff166110fd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b4c565b60008111612bd957612bd96151c6565b612be16138dd565b60005b6006811015611cd557600080612c0e60068460068110612c0657612c06614f89565b015485613a8c565b915091508060068460068110612c2657612c26614f89565b0155612c328285615193565b935083600003612c425750505050565b505080612c4e90614fea565b9050612be4565b6000806000612c6384613bf0565b915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603612cdd57612cca7f000000000000000000000000000000000000000000000000000000000000000082613cfa565b612cd49083615108565b92505050610c3c565b612d077f000000000000000000000000000000000000000000000000000000000000000083613cfa565b612cd49082615108565b80600003612d1e57505050565b6001600160a01b038316612dc1576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612d79576040519150601f19603f3d011682016040523d82523d6000602084013e612d7e565b606091505b5050905080611d4d5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610b4c565b610c236001600160a01b0384168383613edf565b60425460ff16156110fd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610b4c565b600080612e26613f0f565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316149050600081612e8057612e7b858460200151856040015161404e565b612e93565b612e93858460000151856040015161404e565b90506000612ea5828560400151614140565b90506000612ebd828987600001518860200151614163565b90506000808515612f095783612ed16141c4565b612edb9190615108565b875282612ee6614274565b612ef09190615193565b6020880152612eff858a615193565b9150829050612f46565b82612f126141c4565b612f1c9190615193565b875283612f27614274565b612f319190615108565b6020880152829150612f43858a615193565b90505b612f518783836142e3565b9a9950505050505050505050565b600080612f6a613f0f565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff09190615076565b9050612ffa6141c4565b8252613004614274565b60208301528151600090829061301b90879061508f565b6130259190615131565b905060008286856020015161303a919061508f565b6130449190615131565b905081846000018181516130589190615193565b90525060208401805182919061306f908390615193565b9052506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908816036130fb576130e66130b6828660400151614140565b7f000000000000000000000000000000000000000000000000000000000000000086600001518760200151614163565b6130f09083615108565b945050505050610c3c565b61313c61310c838660400151614140565b7f000000000000000000000000000000000000000000000000000000000000000086600001518760200151614163565b6130f09082615108565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156131735750600090506003613220565b8460ff16601b1415801561318b57508460ff16601c14155b1561319c5750600090506004613220565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156131f0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661321957600060019250925050613220565b9150600090505b94509492505050565b600081600481111561323d5761323d614e6b565b036132455750565b600181600481111561325957613259614e6b565b036132a15760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610b4c565b60028160048111156132b5576132b5614e6b565b036133025760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b4c565b600381600481111561331657613316614e6b565b0361336e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b4c565b600481600481111561338257613382614e6b565b036124c05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b4c565b6000806133e561276b565b9150915081516000036133f85750505050565b6001600160a01b0384161580159061341957506001600160a01b0384163014155b15613429576134298483836143df565b6001600160a01b0383161580159061344a57506001600160a01b0383163014155b15611d4d57611d4d8383836143df565b60006001600160801b03821115612b7c57600080fd5b6000610f90610d99565b6110fd61465f565b60006001600160a01b03821615613505576040516370a0823160e01b81526001600160a01b038316906370a08231906134bf903090600401614c3a565b602060405180830381865afa1580156134dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135009190615076565b610c3c565b4792915050565b6000613561826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166147199092919063ffffffff16565b805190915015610c23578080602001905181019061357f91906151dc565b610c235760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b4c565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136669190615048565b50604051632895a2f560e11b81526000600482018190529294509092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063512b45ea90602401602060405180830381865afa1580156136d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f89190615076565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03160361378057600061374087858461404e565b905061374c8188615193565b95506137787f000000000000000000000000000000000000000000000000000000000000000082613cfa565b9450506137c9565b600061378d87848461404e565b90506137b97f000000000000000000000000000000000000000000000000000000000000000082613cfa565b95506137c58188615193565b9450505b5050509250929050565b604051635a47ddc360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152600060448301819052606483018590526084830184905260a4830181905260c483018190523060e484015242610104840152917f000000000000000000000000000000000000000000000000000000000000000090911690635a47ddc390610124016060604051808303816000875af11580156138b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8e9190615048565b60006138ec62093a8042615131565b9050600c5481036138fa5750565b600061390860026006615193565b90505b60006006826006811061392057613920614f89565b01549050600019810361393357506139ee565b60405163327d177d60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063327d177d90602401602060405180830381865afa15801561399b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139bf9190615076565b90508281146139eb576139d28382614730565b600019600684600681106139e8576139e8614f89565b01555b50505b6139f7816151f9565b905061390b565b60405163b6b55f2560e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6b55f25906024016020604051808303816000875af1158015613a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190615076565b6000806000198403613aa357506000905080613be9565b6040516377e9934960e11b8152600481018590526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063efd3269290602401602060405180830381865afa158015613b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2f9190615076565b9050613b3b8185614836565b9250600082851015613b6457613b5b8686613b568186615193565b61484c565b93509050613b6c565b506000199150845b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015613bce57600080fd5b505af1158015613be2573d6000803e3d6000fd5b5050505050505b9250929050565b60405163037b79b160e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152600060448301819052606483018490526084830181905260a483018190523060c48401524260e48401529182917f00000000000000000000000000000000000000000000000000000000000000001690630dede6c4906101040160408051808303816000875af1158015613ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cf19190615210565b91509150915091565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614613d5c577f0000000000000000000000000000000000000000000000000000000000000000613d7e565b7f00000000000000000000000000000000000000000000000000000000000000005b60408051600180825281830190925291925060009190816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181613d995790505090506040518060600160405280866001600160a01b03168152602001836001600160a01b031681526020016000151581525081600081518110613e0b57613e0b614f89565b60200260200101819052506000613e2183613482565b604051631e82ecdb60e31b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f41766d890613e79908890600090879030904290600401615234565b6000604051808303816000875af1158015613e98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ec091908101906152c9565b5080613ecb84613482565b613ed59190615193565b9695505050505050565b6040516001600160a01b038316602482015260448101829052610c2390849063a9059cbb60e01b90606401612a3a565b613f3360405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb59190615048565b5060208301528152604051632895a2f560e11b8152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063512b45ea90602401602060405180830381865afa158015614022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140469190615076565b604082015290565b600080838561407385614064612710600161508f565b61406e9190615193565b614950565b614080612710600461508f565b61408a919061508f565b614094919061508f565b61409e919061508f565b6140c485856140b0612710600261508f565b6140ba9190615193565b61406e919061508f565b6140ce9190615108565b90506000836140e0612710600261508f565b6140ea9190615193565b6140f4908661508f565b9050600061410985614064612710600161508f565b61411490600261508f565b905080826141218561209c565b61412b9190615193565b6141359190615131565b979650505050505050565b600061271061414f8382615193565b614159908561508f565b6115899190615131565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316146141a85783856141ab565b84845b90925090506141ba8783615108565b61412b828961508f565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190614233907f000000000000000000000000000000000000000000000000000000000000000090600401614c3a565b602060405180830381865afa158015614250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190615076565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190614233907f000000000000000000000000000000000000000000000000000000000000000090600401614c3a565b6000806142f9848660000151876020015161495c565b905082811161430a57809250614320565b61431d838660200151876000015161495c565b93505b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143a49190615076565b8651909150613ed5906143b7838861508f565b6143c19190615131565b60208801516143d0848861508f565b6143da9190615131565b614836565b6001600160a01b0383161580159061440057506001600160a01b0383163014155b61440c5761440c6151c6565b600061441784614973565b905060005b835181101561465857600084828151811061443957614439614f89565b60200260200101519050600084838151811061445757614457614f89565b6020908102919091018101516001600160a01b038085166000908152604384526040808220928c168252919093528220549092506001600160801b0316908190036144f3576144a58261345a565b6001600160a01b039384166000908152604360209081526040808320968c1683529590529390932080546001600160801b0319166001600160801b0390941693909317909255506146489050565b81810361450257505050614648565b600061450e8284615193565b9050600061451c878361497e565b6001600160a01b038681166000908152604360209081526040808320938f1683529290529081205491925090614563908390600160801b90046001600160801b0316615108565b905060405180604001604052806145798761345a565b6001600160801b031681526020016145908361345a565b6001600160801b031681525060436000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b61465181614fea565b905061441c565b5050505050565b60005b60068110156124c05760006006826006811061468057614680614f89565b01549050600019811461470857604051631c4b774b60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631c4b774b90602401600060405180830381600087803b1580156146ef57600080fd5b505af1158015614703573d6000803e3d6000fd5b505050505b5061471281614fea565b9050614662565b6060614728848460008561499c565b949350505050565b60006006836006811061474557614745614f89565b01549050600019830361475a5761475a6151c6565b60006006836006811061476f5761476f614f89565b01549050600019810361479757816006846006811061479057614790614f89565b0155614818565b60405163a4ce79e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a4ce79e1906147e5908590859060040161503a565b600060405180830381600087803b1580156147ff57600080fd5b505af1158015614813573d6000803e3d6000fd5b505050505b6000196006856006811061482e5761482e614f89565b015550505050565b60008183106148455781611589565b5090919050565b604080516002808252606082018352600092839283929091602083019080368337019050509050848160008151811061488757614887614f89565b60200260200101818152505083816001815181106148a7576148a7614f89565b60209081029190910101526000600d556040516349b8978f60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906393712f1e906149059084908a90600401615386565b600060405180830381600087803b15801561491f57600080fd5b505af1158015614933573d6000803e3d6000fd5b5050600019600d555050600e54600f549097909650945050505050565b6000610c3c828061508f565b600082614969838661508f565b6147289190615131565b6000610c3c826111ab565b60008061498b838561508f565b9050670de0b6b3a764000081612132565b6060824710156149fd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b4c565b614a068561197d565b614a525760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b4c565b600080866001600160a01b03168587604051614a6e91906153a8565b60006040518083038185875af1925050503d8060008114614aab576040519150601f19603f3d011682016040523d82523d6000602084013e614ab0565b606091505b509150915061413582828660608315614aca575081611589565b825115614ada5782518084602001fd5b8160405162461bcd60e51b8152600401610b4c9190614b18565b60005b83811015614b0f578181015183820152602001614af7565b50506000910152565b6020815260008251806020840152614b37816040850160208701614af4565b601f01601f19169190910160400192915050565b600081518084526020808501945080840160005b83811015614b845781516001600160a01b031687529582019590820190600101614b5f565b509495945050505050565b6020815260006115896020830184614b4b565b80356001600160a01b038116811461210757600080fd5b80151581146124c057600080fd5b600080600060608486031215614bdc57600080fd5b614be584614ba2565b92506020840135614bf581614bb9565b91506040840135614c0581614bb9565b809150509250925092565b60008060408385031215614c2357600080fd5b614c2c83614ba2565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215614c6057600080fd5b61158982614ba2565b600081518084526020808501945080840160005b83811015614b8457815187529582019590820190600101614c7d565b6020815260006115896020830184614c69565b600080600080600060808688031215614cc457600080fd5b614ccd86614ba2565b9450614cdb60208701614ba2565b93506040860135925060608601356001600160401b0380821115614cfe57600080fd5b818801915088601f830112614d1257600080fd5b813581811115614d2157600080fd5b896020828501011115614d3357600080fd5b9699959850939650602001949392505050565b60008060008060808587031215614d5c57600080fd5b614d6585614ba2565b9350614d7360208601614ba2565b93969395505050506040820135916060013590565b600080600060608486031215614d9d57600080fd5b614da684614ba2565b9250614db460208501614ba2565b9150604084013590509250925092565b600060208284031215614dd657600080fd5b5035919050565b60008060408385031215614df057600080fd5b614df983614ba2565b9150614e0760208401614ba2565b90509250929050565b600080600080600060a08688031215614e2857600080fd5b614e3186614ba2565b945060208601359350614e4660408701614ba2565b9250606086013591506080860135614e5d81614bb9565b809150509295509295909350565b634e487b7160e01b600052602160045260246000fd5b6060810160028510614ea357634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff811681146124c057600080fd5b600080600080600080600060e0888a031215614eed57600080fd5b614ef688614ba2565b9650614f0460208901614ba2565b955060408801359450606088013593506080880135614f2281614ec3565b9699959850939692959460a0840135945060c09093013592915050565b600181811c90821680614f5357607f821691505b6020821081036120f757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201614ffc57614ffc614fd4565b5060010190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b60008060006060848603121561505d57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561508857600080fd5b5051919050565b8082028115828204841417610c3c57610c3c614fd4565b6000602082840312156150b857600080fd5b815161158981614ec3565b6040815260006150d66040830185614b4b565b8281036020840152612a8e8185614c69565b6001600160f81b03818116838216019080821115611bbb57611bbb614fd4565b80820180821115610c3c57610c3c614fd4565b634e487b7160e01b600052601260045260246000fd5b60008261514e57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160f81b03828116828216039080821115611bbb57611bbb614fd4565b6001600160801b03828116828216039080821115611bbb57611bbb614fd4565b81810381811115610c3c57610c3c614fd4565b6001600160801b03818116838216019080821115611bbb57611bbb614fd4565b634e487b7160e01b600052600160045260246000fd5b6000602082840312156151ee57600080fd5b815161158981614bb9565b60008161520857615208614fd4565b506000190190565b6000806040838503121561522357600080fd5b505080516020909101519092909150565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b8181101561529d57855180516001600160a01b03908116855286820151168685015284015115158484015294840194606090920191600101615260565b50506001600160a01b038816606087015293506152b992505050565b8260808301529695505050505050565b600060208083850312156152dc57600080fd5b82516001600160401b03808211156152f357600080fd5b818501915085601f83011261530757600080fd5b81518181111561531957615319614f73565b8060051b604051601f19603f8301168101818110858211171561533e5761533e614f73565b60405291825284820192508381018501918883111561535c57600080fd5b938501935b8285101561537a57845184529385019392850192615361565b98975050505050505050565b6040815260006153996040830185614c69565b90508260208301529392505050565b600082516153ba818460208701614af4565b919091019291505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205bc1afdc61d58968f3c512010efe8fb5c2d550e8b7c7af815d600f72d6c11ebe64736f6c63430008110033",
1235
+ "deployedBytecode": "0x6080604052600436106102535760003560e01c806303da28a41461025f57806305cc075b1461028757806306fdde031461029d578063071bc3c9146102bf578063078dfbe7146102e1578063095ea7b3146103035780630dfe168114610333578063128fced114610374578063150b7a02146103a157806318160ddd146103da57806320e8c565146103ef578063213cae63146102bf57806323b872dd14610402578063265aa62114610422578063313ce5671461044257806333d891fd146104885780633644e515146104bc5780633ba0b9a9146104d15780633f4ba83a146104e65780634e71e0c8146104fb5780635c975abb146105105780635cbadbe41461052857806370a0823114610594578063769f8e5d146105b457806376d5de85146105d4578063773fe9c714610608578063784367d6146106305780637ecebe00146106505780638456cb59146106705780638da5cb5b1461068557806395d89b41146106a55780639d2a679f14610287578063a40bee50146106ba578063a8aa1b31146106de578063a9059cbb14610712578063a9f8d18114610732578063b8f82b2614610748578063c45a015514610768578063c4f59f9b1461079c578063cbe52ae3146107b1578063cf2d3f99146107d1578063d21220a714610805578063d505accf14610839578063da88ecb414610859578063dd62ed3e1461086e578063e30c39781461088e578063ea64a820146108ae578063ef5cfb8c146108ef578063f4359ce51461090f578063f887ea4014610926578063f8b2f9911461095a578063fa5a4f061461063057600080fd5b3661025a57005b600080fd5b34801561026b57600080fd5b50610274600681565b6040519081526020015b60405180910390f35b34801561029357600080fd5b5061027460001981565b3480156102a957600080fd5b506102b261096f565b60405161027e9190614b18565b3480156102cb57600080fd5b506102d4610a01565b60405161027e9190614b8f565b3480156102ed57600080fd5b506103016102fc366004614bc7565b610b22565b005b34801561030f57600080fd5b5061032361031e366004614c10565b610c28565b604051901515815260200161027e565b34801561033f57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b60405161027e9190614c3a565b34801561038057600080fd5b5061039461038f366004614c4e565b610c42565b60405161027e9190614c99565b3480156103ad57600080fd5b506103c16103bc366004614cac565b610d4e565b6040516001600160e01b0319909116815260200161027e565b3480156103e657600080fd5b50610274610d99565b6102746103fd366004614d46565b610da8565b34801561040e57600080fd5b5061032361041d366004614d88565b610ef1565b34801561042e57600080fd5b5061027461043d366004614dc4565b610f6f565b34801561044e57600080fd5b506104767f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027e565b34801561049457600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c857600080fd5b50610274610f86565b3480156104dd57600080fd5b50610274610f95565b3480156104f257600080fd5b506103016110cb565b34801561050757600080fd5b506103016110ff565b34801561051c57600080fd5b5060425460ff16610323565b34801561053457600080fd5b50610574610543366004614ddd565b60436020908152600092835260408084209091529082529020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161027e565b3480156105a057600080fd5b506102746105af366004614c4e565b6111ab565b3480156105c057600080fd5b506102746105cf366004614e10565b6111c6565b3480156105e057600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561061457600080fd5b506103677315b2fb8f08e4ac1ce019eadae02ee92aedf0685181565b34801561063c57600080fd5b5061032361064b366004614c4e565b61131b565b34801561065c57600080fd5b5061027461066b366004614c4e565b6113cf565b34801561067c57600080fd5b506103016113ed565b34801561069157600080fd5b50601054610367906001600160a01b031681565b3480156106b157600080fd5b506102b261141f565b3480156106c657600080fd5b506106cf61142e565b60405161027e93929190614e81565b3480156106ea57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561071e57600080fd5b5061032361072d366004614c10565b6114e3565b34801561073e57600080fd5b5061027460445481565b34801561075457600080fd5b50610274610763366004614c10565b611555565b34801561077457600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b3480156107a857600080fd5b506102d4611590565b3480156107bd57600080fd5b506102746107cc366004614c10565b61159a565b3480156107dd57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561081157600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561084557600080fd5b50610301610854366004614ed2565b6115ce565b34801561086557600080fd5b50610394611750565b34801561087a57600080fd5b50610274610889366004614ddd565b611821565b34801561089a57600080fd5b50601154610367906001600160a01b031681565b3480156108ba57600080fd5b506105746108c9366004614c4e565b6045602052600090815260409020546001600160801b0380821691600160801b90041682565b3480156108fb57600080fd5b5061039461090a366004614c4e565b61184c565b34801561091b57600080fd5b5061027462093a8081565b34801561093257600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561096657600080fd5b5061039461190b565b60606003805461097e90614f3f565b80601f01602080910402602001604051908101604052809291908181526020018280546109aa90614f3f565b80156109f75780601f106109cc576101008083540402835291602001916109f7565b820191906000526020600020905b8154815290600101906020018083116109da57829003601f168201915b5050505050905090565b604080516003808252608082019092526060916020820183803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610a5757610a57614f89565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610aab57610aab614f89565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110610aff57610aff614f89565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6010546001600160a01b03163314610b555760405162461bcd60e51b8152600401610b4c90614f9f565b60405180910390fd5b8115610c07576001600160a01b038316151580610b6f5750805b610bb35760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610b4c565b6010546040516001600160a01b038086169216906000805160206153c583398151915290600090a3601080546001600160a01b0385166001600160a01b031991821617909155601180549091169055505050565b601180546001600160a01b0319166001600160a01b0385161790555b505050565b600033610c3681858561198c565b60019150505b92915050565b60606000610c4e611ab1565b905080516001600160401b03811115610c6957610c69614f73565b604051908082528060200260200182016040528015610c92578160200160208202803683370190505b50915060005b8151811015610d475760436000838381518110610cb757610cb7614f89565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000856001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316838281518110610d3457610d34614f89565b6020908102919091010152600101610c98565b5050919050565b6000600019600d5414610d8757600d80548591600e91906000610d7083614fea565b9190505560028110610d8457610d84614f89565b01555b50630a85bd0160e11b95945050505050565b6002546001600160f81b031690565b600254600090600119600160f81b90910460ff1601610dd95760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b179055610df78461131b565b610e1657836040516315d57ce360e31b8152600401610b4c9190614c3a565b82600003610e3757604051630a907f2f60e41b815260040160405180910390fd5b610e42843385611afb565b610e4c8484611b62565b905081811015610e73578082604051635e38f95d60e11b8152600401610b4c92919061503a565b610e7d8582611bc2565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598685604051610ecc92919061503a565b60405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff1601610f225760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905533610f43858285611cd9565b610f4e858585611d53565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b60068160068110610f7f57600080fd5b0154905081565b6000610f90611f75565b905090565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c9190615048565b509150915060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a59190615076565b90506110c3816110bd6110b8858761508f565b61209c565b9061210c565b935050505090565b6010546001600160a01b031633146110f55760405162461bcd60e51b8152600401610b4c90614f9f565b6110fd61213b565b565b6011546001600160a01b031633811461115a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610b4c565b6010546040516001600160a01b038084169216906000805160206153c583398151915290600090a3601080546001600160a01b039092166001600160a01b0319928316179055601180549091169055565b6001600160a01b031660009081526020819052604090205490565b600254600090600119600160f81b90910460ff16016111f75760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b1790556112158461131b565b61123457836040516388a5056160e01b8152600401610b4c9190614c3a565b846000036112555760405163c3d83b0760e01b815260040160405180910390fd5b811561126a576112653086612187565b611274565b6112743386612187565b61127f868587612300565b9050828110156112a65780836040516305ff726560e51b8152600401610b4c92919061503a565b836001600160a01b0316866001600160a01b0316336001600160a01b03167faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c88856040516112f592919061503a565b60405180910390a4600280546001600160f81b0316600160f81b17905595945050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061138e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b80610c3c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6001600160a01b038116600090815260056020526040812054610c3c565b6010546001600160a01b031633146114175760405162461bcd60e51b8152600401610b4c90614f9f565b6110fd612363565b60606004805461097e90614f3f565b600080600060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d891906150a6565b925092509250909192565b600254600090600119600160f81b90910460ff16016115145760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905533611535818585611d53565b6001915050600280546001600160f81b0316600160f81b17905592915050565b60006115608361131b565b61157f57826040516315d57ce360e31b8152600401610b4c9190614c3a565b61158983836123a0565b9392505050565b6060610f90611ab1565b60006115a58361131b565b6115c457826040516388a5056160e01b8152600401610b4c9190614c3a565b61158983836123f3565b8342111561161e5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610b4c565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861166b8c6001600160a01b0316600090815260056020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006116c68261243f565b905060006116d68287878761248d565b9050896001600160a01b0316816001600160a01b0316146117395760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610b4c565b6117448a8a8a61198c565b50505050505050505050565b6060600061175c611ab1565b905080516001600160401b0381111561177757611777614f73565b6040519080825280602002602001820160405280156117a0578160200160208202803683370190505b50915060005b815181101561181c57604560008383815181106117c5576117c5614f89565b6020908102919091018101516001600160a01b031682528101919091526040016000205483516001600160801b039091169084908390811061180957611809614f89565b60209081029190910101526001016117a6565b505090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254606090600119600160f81b90910460ff160161187d5760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905561189b826124b5565b6118a582836124c3565b9050816001600160a01b03167f2193aa20a3717f5f4ac79482f4f553e5f0afe8f4e6ec3e3d1aa2e138adc4763f6118da611ab1565b836040516118e99291906150c3565b60405180910390a2600280546001600160f81b0316600160f81b179055919050565b600254606090600119600160f81b90910460ff160161193c5760405162461bcd60e51b8152600401610b4c90615003565b600280546001600160f81b0316600160f91b17905561195961276b565b5050611963611750565b9050600280546001600160f81b0316600160f81b17905590565b6001600160a01b03163b151590565b6001600160a01b0383166119ee5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b4c565b6001600160a01b038216611a4f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b4c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001808252818301909252606091602080830190803683370190505090507315b2fb8f08e4ac1ce019eadae02ee92aedf0685181600081518110610aff57610aff614f89565b6001600160a01b038316611b4757803414610c235760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610b4c565b8015610c2357610c236001600160a01b038416833084612a06565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611ba5575081611bb2565b611baf8484612a71565b90505b611bbb81612a97565b5092915050565b6001600160a01b038216611c185760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b4c565b611c2460008383612b54565b611c2d81612b66565b60028054600090611c489084906001600160f81b03166150e8565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b031681526020019081526020016000206000828254611ca09190615108565b90915550506040518181526001600160a01b038316906000906000805160206153e58339815191529060200160405180910390a35b5050565b6000611ce58484611821565b90506000198114611d4d5781811015611d405760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b4c565b611d4d848484840361198c565b50505050565b6001600160a01b038316611db75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b4c565b6001600160a01b038216611e195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b4c565b816001600160a01b0316836001600160a01b031603611e745760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610b4c565b611e7f838383612b54565b6001600160a01b03831660009081526020819052604090205481811015611ef75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b4c565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611f2e908490615108565b92505081905550826001600160a01b0316846001600160a01b03166000805160206153e583398151915284604051611f6891815260200190565b60405180910390a3611d4d565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611fce57507f000000000000000000000000000000000000000000000000000000000000000046145b15611ff857507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600060038211156120fd57508060006120b6600283615131565b6120c1906001615108565b90505b818110156120f7579050806002816120dc8186615131565b6120e69190615108565b6120f09190615131565b90506120c4565b50919050565b8115612107575060015b919050565b600080612121670de0b6b3a76400008561508f565b90508281816121325761213261511b565b04949350505050565b612143612b80565b6042805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161217d9190614c3a565b60405180910390a1565b6001600160a01b0382166121e75760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b4c565b6121f382600083612b54565b6001600160a01b038216600090815260208190526040902054818110156122675760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b4c565b6001600160a01b0383166000908152602081905260409020828203905561228d82612b66565b600280546000906122a89084906001600160f81b0316615153565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b03166000805160206153e583398151915284604051611aa491815260200190565b600061230b82612bc9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361234b575080612358565b6123558383612c55565b90505b611589838583612d11565b61236b612dd5565b6042805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121703390565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036123e2575080610c3c565b6123ec8383612e1b565b9050610c3c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603612435575080610c3c565b6123ec8383612f5f565b6000610c3c61244c611f75565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061249e87878787613146565b915091506124ab81613229565b5095945050505050565b6124c08160006133da565b50565b606060006124cf611ab1565b905080516001600160401b038111156124ea576124ea614f73565b604051908082528060200260200182016040528015612513578160200160208202803683370190505b50915060005b8151811015612763576043600083838151811061253857612538614f89565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b03168382815181106125b5576125b5614f89565b6020026020010181815250508281815181106125d3576125d3614f89565b6020026020010151600014612751576000604360008484815181106125fa576125fa614f89565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160106101000a8154816001600160801b0302191690836001600160801b0316021790555061268e83828151811061268157612681614f89565b602002602001015161345a565b604560008484815181106126a4576126a4614f89565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160108282829054906101000a90046001600160801b03166126f09190615173565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061275182828151811061272957612729614f89565b60200260200101518585848151811061274457612744614f89565b6020026020010151612d11565b8061275b81614fea565b915050612519565b505092915050565b606080612776611ab1565b915081516001600160401b0381111561279157612791614f73565b6040519080825280602002602001820160405280156127ba578160200160208202803683370190505b50905081516000036127ca579091565b436044541461297e574360445560006127e1613470565b90506127eb61347a565b60005b835181101561297b57600084828151811061280b5761280b614f89565b6020908102919091018101516001600160a01b0381166000908152604590925260408220548751919350600160801b90046001600160801b0316906128699088908690811061285c5761285c614f89565b6020026020010151613482565b6128739190615193565b6001600160a01b0383166000908152604560205260408120549192506001600160801b03909116908190036128a6575060015b84156128c3576128b6828661210c565b6128c09082615108565b90505b6128cc8161345a565b6001600160a01b038416600090815260456020526040902080546001600160801b0319166001600160801b039290921691909117905561290b8261345a565b6001600160a01b03841660009081526045602052604090208054601090612943908490600160801b90046001600160801b03166151a6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505050508061297490614fea565b90506127ee565b50505b60005b8251811015612a0157604560008483815181106129a0576129a0614f89565b6020908102919091018101516001600160a01b031682528101919091526040016000205482516001600160801b03909116908390839081106129e4576129e4614f89565b6020908102919091010152806129f981614fea565b915050612981565b509091565b6040516001600160a01b0380851660248301528316604482015260648101829052611d4d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261350c565b6000806000612a8085856135de565b91509150612a8e82826137d3565b95945050505050565b60008111612aa757612aa76151c6565b612aaf6138dd565b6006546000612abd836139fe565b90506000198203612acf576006555050565b60405163a4ce79e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a4ce79e190612b1d908490869060040161503a565b600060405180830381600087803b158015612b3757600080fd5b505af1158015612b4b573d6000803e3d6000fd5b50505050505050565b612b5c612dd5565b610c2383836133da565b60006001600160f81b03821115612b7c57600080fd5b5090565b60425460ff166110fd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b4c565b60008111612bd957612bd96151c6565b612be16138dd565b60005b6006811015611cd557600080612c0e60068460068110612c0657612c06614f89565b015485613a8c565b915091508060068460068110612c2657612c26614f89565b0155612c328285615193565b935083600003612c425750505050565b505080612c4e90614fea565b9050612be4565b6000806000612c6384613bf0565b915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603612cdd57612cca7f000000000000000000000000000000000000000000000000000000000000000082613cfa565b612cd49083615108565b92505050610c3c565b612d077f000000000000000000000000000000000000000000000000000000000000000083613cfa565b612cd49082615108565b80600003612d1e57505050565b6001600160a01b038316612dc1576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612d79576040519150601f19603f3d011682016040523d82523d6000602084013e612d7e565b606091505b5050905080611d4d5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610b4c565b610c236001600160a01b0384168383613edf565b60425460ff16156110fd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610b4c565b600080612e26613f0f565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316149050600081612e8057612e7b858460200151856040015161404e565b612e93565b612e93858460000151856040015161404e565b90506000612ea5828560400151614140565b90506000612ebd828987600001518860200151614163565b90506000808515612f095783612ed16141c4565b612edb9190615108565b875282612ee6614274565b612ef09190615193565b6020880152612eff858a615193565b9150829050612f46565b82612f126141c4565b612f1c9190615193565b875283612f27614274565b612f319190615108565b6020880152829150612f43858a615193565b90505b612f518783836142e3565b9a9950505050505050505050565b600080612f6a613f0f565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff09190615076565b9050612ffa6141c4565b8252613004614274565b60208301528151600090829061301b90879061508f565b6130259190615131565b905060008286856020015161303a919061508f565b6130449190615131565b905081846000018181516130589190615193565b90525060208401805182919061306f908390615193565b9052506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908816036130fb576130e66130b6828660400151614140565b7f000000000000000000000000000000000000000000000000000000000000000086600001518760200151614163565b6130f09083615108565b945050505050610c3c565b61313c61310c838660400151614140565b7f000000000000000000000000000000000000000000000000000000000000000086600001518760200151614163565b6130f09082615108565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156131735750600090506003613220565b8460ff16601b1415801561318b57508460ff16601c14155b1561319c5750600090506004613220565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156131f0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661321957600060019250925050613220565b9150600090505b94509492505050565b600081600481111561323d5761323d614e6b565b036132455750565b600181600481111561325957613259614e6b565b036132a15760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610b4c565b60028160048111156132b5576132b5614e6b565b036133025760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610b4c565b600381600481111561331657613316614e6b565b0361336e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610b4c565b600481600481111561338257613382614e6b565b036124c05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610b4c565b6000806133e561276b565b9150915081516000036133f85750505050565b6001600160a01b0384161580159061341957506001600160a01b0384163014155b15613429576134298483836143df565b6001600160a01b0383161580159061344a57506001600160a01b0383163014155b15611d4d57611d4d8383836143df565b60006001600160801b03821115612b7c57600080fd5b6000610f90610d99565b6110fd61465f565b60006001600160a01b03821615613505576040516370a0823160e01b81526001600160a01b038316906370a08231906134bf903090600401614c3a565b602060405180830381865afa1580156134dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135009190615076565b610c3c565b4792915050565b6000613561826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166147199092919063ffffffff16565b805190915015610c23578080602001905181019061357f91906151dc565b610c235760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b4c565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136669190615048565b50604051632895a2f560e11b81526000600482018190529294509092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063512b45ea90602401602060405180830381865afa1580156136d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f89190615076565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03160361378057600061374087858461404e565b905061374c8188615193565b95506137787f000000000000000000000000000000000000000000000000000000000000000082613cfa565b9450506137c9565b600061378d87848461404e565b90506137b97f000000000000000000000000000000000000000000000000000000000000000082613cfa565b95506137c58188615193565b9450505b5050509250929050565b604051635a47ddc360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152600060448301819052606483018590526084830184905260a4830181905260c483018190523060e484015242610104840152917f000000000000000000000000000000000000000000000000000000000000000090911690635a47ddc390610124016060604051808303816000875af11580156138b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8e9190615048565b60006138ec62093a8042615131565b9050600c5481036138fa5750565b600061390860026006615193565b90505b60006006826006811061392057613920614f89565b01549050600019810361393357506139ee565b60405163327d177d60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063327d177d90602401602060405180830381865afa15801561399b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139bf9190615076565b90508281146139eb576139d28382614730565b600019600684600681106139e8576139e8614f89565b01555b50505b6139f7816151f9565b905061390b565b60405163b6b55f2560e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6b55f25906024016020604051808303816000875af1158015613a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190615076565b6000806000198403613aa357506000905080613be9565b6040516377e9934960e11b8152600481018590526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063efd3269290602401602060405180830381865afa158015613b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2f9190615076565b9050613b3b8185614836565b9250600082851015613b6457613b5b8686613b568186615193565b61484c565b93509050613b6c565b506000199150845b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015613bce57600080fd5b505af1158015613be2573d6000803e3d6000fd5b5050505050505b9250929050565b60405163037b79b160e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152600060448301819052606483018490526084830181905260a483018190523060c48401524260e48401529182917f00000000000000000000000000000000000000000000000000000000000000001690630dede6c4906101040160408051808303816000875af1158015613ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cf19190615210565b91509150915091565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614613d5c577f0000000000000000000000000000000000000000000000000000000000000000613d7e565b7f00000000000000000000000000000000000000000000000000000000000000005b60408051600180825281830190925291925060009190816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181613d995790505090506040518060600160405280866001600160a01b03168152602001836001600160a01b031681526020016000151581525081600081518110613e0b57613e0b614f89565b60200260200101819052506000613e2183613482565b604051631e82ecdb60e31b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f41766d890613e79908890600090879030904290600401615234565b6000604051808303816000875af1158015613e98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ec091908101906152c9565b5080613ecb84613482565b613ed59190615193565b9695505050505050565b6040516001600160a01b038316602482015260448101829052610c2390849063a9059cbb60e01b90606401612a3a565b613f3360405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb59190615048565b5060208301528152604051632895a2f560e11b8152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063512b45ea90602401602060405180830381865afa158015614022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140469190615076565b604082015290565b600080838561407385614064612710600161508f565b61406e9190615193565b614950565b614080612710600461508f565b61408a919061508f565b614094919061508f565b61409e919061508f565b6140c485856140b0612710600261508f565b6140ba9190615193565b61406e919061508f565b6140ce9190615108565b90506000836140e0612710600261508f565b6140ea9190615193565b6140f4908661508f565b9050600061410985614064612710600161508f565b61411490600261508f565b905080826141218561209c565b61412b9190615193565b6141359190615131565b979650505050505050565b600061271061414f8382615193565b614159908561508f565b6115899190615131565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316146141a85783856141ab565b84845b90925090506141ba8783615108565b61412b828961508f565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190614233907f000000000000000000000000000000000000000000000000000000000000000090600401614c3a565b602060405180830381865afa158015614250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190615076565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190614233907f000000000000000000000000000000000000000000000000000000000000000090600401614c3a565b6000806142f9848660000151876020015161495c565b905082811161430a57809250614320565b61431d838660200151876000015161495c565b93505b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143a49190615076565b8651909150613ed5906143b7838861508f565b6143c19190615131565b60208801516143d0848861508f565b6143da9190615131565b614836565b6001600160a01b0383161580159061440057506001600160a01b0383163014155b61440c5761440c6151c6565b600061441784614973565b905060005b835181101561465857600084828151811061443957614439614f89565b60200260200101519050600084838151811061445757614457614f89565b6020908102919091018101516001600160a01b038085166000908152604384526040808220928c168252919093528220549092506001600160801b0316908190036144f3576144a58261345a565b6001600160a01b039384166000908152604360209081526040808320968c1683529590529390932080546001600160801b0319166001600160801b0390941693909317909255506146489050565b81810361450257505050614648565b600061450e8284615193565b9050600061451c878361497e565b6001600160a01b038681166000908152604360209081526040808320938f1683529290529081205491925090614563908390600160801b90046001600160801b0316615108565b905060405180604001604052806145798761345a565b6001600160801b031681526020016145908361345a565b6001600160801b031681525060436000886001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b031602179055509050505050505050505b61465181614fea565b905061441c565b5050505050565b60005b60068110156124c05760006006826006811061468057614680614f89565b01549050600019811461470857604051631c4b774b60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631c4b774b90602401600060405180830381600087803b1580156146ef57600080fd5b505af1158015614703573d6000803e3d6000fd5b505050505b5061471281614fea565b9050614662565b6060614728848460008561499c565b949350505050565b60006006836006811061474557614745614f89565b01549050600019830361475a5761475a6151c6565b60006006836006811061476f5761476f614f89565b01549050600019810361479757816006846006811061479057614790614f89565b0155614818565b60405163a4ce79e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a4ce79e1906147e5908590859060040161503a565b600060405180830381600087803b1580156147ff57600080fd5b505af1158015614813573d6000803e3d6000fd5b505050505b6000196006856006811061482e5761482e614f89565b015550505050565b60008183106148455781611589565b5090919050565b604080516002808252606082018352600092839283929091602083019080368337019050509050848160008151811061488757614887614f89565b60200260200101818152505083816001815181106148a7576148a7614f89565b60209081029190910101526000600d556040516349b8978f60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906393712f1e906149059084908a90600401615386565b600060405180830381600087803b15801561491f57600080fd5b505af1158015614933573d6000803e3d6000fd5b5050600019600d555050600e54600f549097909650945050505050565b6000610c3c828061508f565b600082614969838661508f565b6147289190615131565b6000610c3c826111ab565b60008061498b838561508f565b9050670de0b6b3a764000081612132565b6060824710156149fd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b4c565b614a068561197d565b614a525760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b4c565b600080866001600160a01b03168587604051614a6e91906153a8565b60006040518083038185875af1925050503d8060008114614aab576040519150601f19603f3d011682016040523d82523d6000602084013e614ab0565b606091505b509150915061413582828660608315614aca575081611589565b825115614ada5782518084602001fd5b8160405162461bcd60e51b8152600401610b4c9190614b18565b60005b83811015614b0f578181015183820152602001614af7565b50506000910152565b6020815260008251806020840152614b37816040850160208701614af4565b601f01601f19169190910160400192915050565b600081518084526020808501945080840160005b83811015614b845781516001600160a01b031687529582019590820190600101614b5f565b509495945050505050565b6020815260006115896020830184614b4b565b80356001600160a01b038116811461210757600080fd5b80151581146124c057600080fd5b600080600060608486031215614bdc57600080fd5b614be584614ba2565b92506020840135614bf581614bb9565b91506040840135614c0581614bb9565b809150509250925092565b60008060408385031215614c2357600080fd5b614c2c83614ba2565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215614c6057600080fd5b61158982614ba2565b600081518084526020808501945080840160005b83811015614b8457815187529582019590820190600101614c7d565b6020815260006115896020830184614c69565b600080600080600060808688031215614cc457600080fd5b614ccd86614ba2565b9450614cdb60208701614ba2565b93506040860135925060608601356001600160401b0380821115614cfe57600080fd5b818801915088601f830112614d1257600080fd5b813581811115614d2157600080fd5b896020828501011115614d3357600080fd5b9699959850939650602001949392505050565b60008060008060808587031215614d5c57600080fd5b614d6585614ba2565b9350614d7360208601614ba2565b93969395505050506040820135916060013590565b600080600060608486031215614d9d57600080fd5b614da684614ba2565b9250614db460208501614ba2565b9150604084013590509250925092565b600060208284031215614dd657600080fd5b5035919050565b60008060408385031215614df057600080fd5b614df983614ba2565b9150614e0760208401614ba2565b90509250929050565b600080600080600060a08688031215614e2857600080fd5b614e3186614ba2565b945060208601359350614e4660408701614ba2565b9250606086013591506080860135614e5d81614bb9565b809150509295509295909350565b634e487b7160e01b600052602160045260246000fd5b6060810160028510614ea357634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b60ff811681146124c057600080fd5b600080600080600080600060e0888a031215614eed57600080fd5b614ef688614ba2565b9650614f0460208901614ba2565b955060408801359450606088013593506080880135614f2281614ec3565b9699959850939692959460a0840135945060c09093013592915050565b600181811c90821680614f5357607f821691505b6020821081036120f757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201614ffc57614ffc614fd4565b5060010190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b918252602082015260400190565b60008060006060848603121561505d57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561508857600080fd5b5051919050565b8082028115828204841417610c3c57610c3c614fd4565b6000602082840312156150b857600080fd5b815161158981614ec3565b6040815260006150d66040830185614b4b565b8281036020840152612a8e8185614c69565b6001600160f81b03818116838216019080821115611bbb57611bbb614fd4565b80820180821115610c3c57610c3c614fd4565b634e487b7160e01b600052601260045260246000fd5b60008261514e57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160f81b03828116828216039080821115611bbb57611bbb614fd4565b6001600160801b03828116828216039080821115611bbb57611bbb614fd4565b81810381811115610c3c57610c3c614fd4565b6001600160801b03818116838216019080821115611bbb57611bbb614fd4565b634e487b7160e01b600052600160045260246000fd5b6000602082840312156151ee57600080fd5b815161158981614bb9565b60008161520857615208614fd4565b506000190190565b6000806040838503121561522357600080fd5b505080516020909101519092909150565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b8181101561529d57855180516001600160a01b03908116855286820151168685015284015115158484015294840194606090920191600101615260565b50506001600160a01b038816606087015293506152b992505050565b8260808301529695505050505050565b600060208083850312156152dc57600080fd5b82516001600160401b03808211156152f357600080fd5b818501915085601f83011261530757600080fd5b81518181111561531957615319614f73565b8060051b604051601f19603f8301168101818110858211171561533e5761533e614f73565b60405291825284820192508381018501918883111561535c57600080fd5b938501935b8285101561537a57845184529385019392850192615361565b98975050505050505050565b6040815260006153996040830185614c69565b90508260208301529392505050565b600082516153ba818460208701614af4565b919091019291505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205bc1afdc61d58968f3c512010efe8fb5c2d550e8b7c7af815d600f72d6c11ebe64736f6c63430008110033",
1236
+ "linkReferences": {},
1237
+ "deployedLinkReferences": {}
1238
+ }