@pendle/core-v2 2.17.5-tradingbot → 2.17.7-tradingbot

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +25 -0
  49. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +25 -0
  51. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.json +1070 -0
  53. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +2 -2
  55. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +60 -180
  57. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.json +2 -2
  59. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +25 -0
  61. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  87. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +917 -0
  88. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +425 -161
  90. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +50 -0
  92. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  93. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  94. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  95. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  96. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  97. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  98. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  100. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  101. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  102. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  104. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  105. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  106. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  107. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  108. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  109. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  111. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  113. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  115. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  117. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  119. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  121. package/contracts/core/TradingBot/BotActionCallback.sol +1 -1
  122. package/contracts/core/TradingBot/BotDecisionHelper.sol +306 -0
  123. package/contracts/core/TradingBot/BotSimulationLib.sol +8 -7
  124. package/contracts/core/TradingBot/LongYieldTradingBot.sol +20 -24
  125. package/contracts/core/TradingBot/MarketExtLib.sol +64 -31
  126. package/contracts/core/TradingBot/README.md +27 -25
  127. package/contracts/core/TradingBot/TradingBotBase.sol +36 -16
  128. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +91 -0
  129. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +7 -32
  130. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +6 -4
  131. package/package.json +1 -1
  132. package/typechain-types/BotActionCallback.ts +36 -0
  133. package/typechain-types/BotActionHelper.ts +36 -0
  134. package/typechain-types/BotDecisionHelper.ts +527 -0
  135. package/typechain-types/IBotDecisionHelper.ts +507 -0
  136. package/typechain-types/ILongYieldTradingBot.ts +481 -129
  137. package/typechain-types/ITradingBotBase.ts +76 -0
  138. package/typechain-types/IWBETH.ts +128 -0
  139. package/typechain-types/LongYieldTradingBot.ts +85 -141
  140. package/typechain-types/PendleBinanceEth.ts +1229 -0
  141. package/typechain-types/PtAndLpToAsset.ts +136 -0
  142. package/typechain-types/TradingBotBase.ts +36 -0
  143. package/typechain-types/factories/BotActionCallback__factory.ts +25 -0
  144. package/typechain-types/factories/BotActionHelper__factory.ts +25 -0
  145. package/typechain-types/factories/BotDecisionHelper__factory.ts +1123 -0
  146. package/typechain-types/factories/IBotDecisionHelper__factory.ts +932 -0
  147. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +425 -161
  148. package/typechain-types/factories/ITradingBotBase__factory.ts +50 -0
  149. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  150. package/typechain-types/factories/LongYieldTradingBot__factory.ts +63 -183
  151. package/typechain-types/factories/MarketExtLib__factory.ts +1 -1
  152. package/typechain-types/factories/PendleBinanceEth__factory.ts +1052 -0
  153. package/typechain-types/factories/PtAndLpToAsset__factory.ts +150 -0
  154. package/typechain-types/factories/TradingBotBase__factory.ts +25 -0
  155. package/typechain-types/hardhat.d.ts +49 -13
  156. package/typechain-types/index.ts +12 -4
  157. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.dbg.json +0 -4
  158. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.json +0 -589
  159. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.dbg.json +0 -4
  160. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.json +0 -1075
  161. package/contracts/core/TradingBot/BotDecisionLib.sol +0 -274
  162. package/contracts/core/TradingBot/TradingBotOffchain.sol +0 -141
@@ -0,0 +1,1070 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "BotDecisionHelper",
4
+ "sourceName": "contracts/core/TradingBot/BotDecisionHelper.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "ApproxFail",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "guessMin",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "guessMax",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "uint256",
25
+ "name": "eps",
26
+ "type": "uint256"
27
+ }
28
+ ],
29
+ "name": "ApproxParamsInvalid",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "BotBinarySearchFail",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "action",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "guessMin",
47
+ "type": "uint256"
48
+ }
49
+ ],
50
+ "name": "BotBinarySearchGuessMinInvalid",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "action",
58
+ "type": "uint256"
59
+ },
60
+ {
61
+ "internalType": "uint256",
62
+ "name": "guessMin",
63
+ "type": "uint256"
64
+ },
65
+ {
66
+ "internalType": "uint256",
67
+ "name": "guessMax",
68
+ "type": "uint256"
69
+ }
70
+ ],
71
+ "name": "BotBinarySearchInvalidRange",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [
76
+ {
77
+ "internalType": "int256",
78
+ "name": "exchangeRate",
79
+ "type": "int256"
80
+ }
81
+ ],
82
+ "name": "MarketExchangeRateBelowOne",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "MarketExpired",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "int256",
94
+ "name": "currentAmount",
95
+ "type": "int256"
96
+ },
97
+ {
98
+ "internalType": "int256",
99
+ "name": "requiredAmount",
100
+ "type": "int256"
101
+ }
102
+ ],
103
+ "name": "MarketInsufficientPtForTrade",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "MarketProportionMustNotEqualOne",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [
113
+ {
114
+ "internalType": "int256",
115
+ "name": "proportion",
116
+ "type": "int256"
117
+ },
118
+ {
119
+ "internalType": "int256",
120
+ "name": "maxProportion",
121
+ "type": "int256"
122
+ }
123
+ ],
124
+ "name": "MarketProportionTooHigh",
125
+ "type": "error"
126
+ },
127
+ {
128
+ "inputs": [
129
+ {
130
+ "internalType": "int256",
131
+ "name": "rateScalar",
132
+ "type": "int256"
133
+ }
134
+ ],
135
+ "name": "MarketRateScalarBelowZero",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "MarketZeroLnImpliedRate",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [
145
+ {
146
+ "internalType": "int256",
147
+ "name": "totalPt",
148
+ "type": "int256"
149
+ },
150
+ {
151
+ "internalType": "int256",
152
+ "name": "totalAsset",
153
+ "type": "int256"
154
+ }
155
+ ],
156
+ "name": "MarketZeroTotalPtOrTotalAsset",
157
+ "type": "error"
158
+ },
159
+ {
160
+ "inputs": [
161
+ {
162
+ "components": [
163
+ {
164
+ "internalType": "uint256",
165
+ "name": "lpBalance",
166
+ "type": "uint256"
167
+ },
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "ytBalance",
171
+ "type": "uint256"
172
+ },
173
+ {
174
+ "internalType": "uint256",
175
+ "name": "syBalance",
176
+ "type": "uint256"
177
+ }
178
+ ],
179
+ "internalType": "struct BotState",
180
+ "name": "botState",
181
+ "type": "tuple"
182
+ },
183
+ {
184
+ "components": [
185
+ {
186
+ "internalType": "enum StrategyFlag",
187
+ "name": "iyFlag",
188
+ "type": "uint8"
189
+ },
190
+ {
191
+ "internalType": "enum StrategyFlag",
192
+ "name": "syRatioFlag",
193
+ "type": "uint8"
194
+ }
195
+ ],
196
+ "internalType": "struct StrategyState",
197
+ "name": "currentState",
198
+ "type": "tuple"
199
+ }
200
+ ],
201
+ "name": "actionToTake",
202
+ "outputs": [
203
+ {
204
+ "internalType": "enum ActionType",
205
+ "name": "",
206
+ "type": "uint8"
207
+ }
208
+ ],
209
+ "stateMutability": "pure",
210
+ "type": "function"
211
+ },
212
+ {
213
+ "inputs": [
214
+ {
215
+ "components": [
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "lpBalance",
219
+ "type": "uint256"
220
+ },
221
+ {
222
+ "internalType": "uint256",
223
+ "name": "ytBalance",
224
+ "type": "uint256"
225
+ },
226
+ {
227
+ "internalType": "uint256",
228
+ "name": "syBalance",
229
+ "type": "uint256"
230
+ }
231
+ ],
232
+ "internalType": "struct BotState",
233
+ "name": "bot",
234
+ "type": "tuple"
235
+ },
236
+ {
237
+ "components": [
238
+ {
239
+ "components": [
240
+ {
241
+ "internalType": "int256",
242
+ "name": "totalPt",
243
+ "type": "int256"
244
+ },
245
+ {
246
+ "internalType": "int256",
247
+ "name": "totalSy",
248
+ "type": "int256"
249
+ },
250
+ {
251
+ "internalType": "int256",
252
+ "name": "totalLp",
253
+ "type": "int256"
254
+ },
255
+ {
256
+ "internalType": "address",
257
+ "name": "treasury",
258
+ "type": "address"
259
+ },
260
+ {
261
+ "internalType": "int256",
262
+ "name": "scalarRoot",
263
+ "type": "int256"
264
+ },
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "expiry",
268
+ "type": "uint256"
269
+ },
270
+ {
271
+ "internalType": "uint256",
272
+ "name": "lnFeeRateRoot",
273
+ "type": "uint256"
274
+ },
275
+ {
276
+ "internalType": "uint256",
277
+ "name": "reserveFeePercent",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "internalType": "uint256",
282
+ "name": "lastLnImpliedRate",
283
+ "type": "uint256"
284
+ }
285
+ ],
286
+ "internalType": "struct MarketState",
287
+ "name": "state",
288
+ "type": "tuple"
289
+ },
290
+ {
291
+ "internalType": "PYIndex",
292
+ "name": "index",
293
+ "type": "uint256"
294
+ },
295
+ {
296
+ "internalType": "uint256",
297
+ "name": "blockTime",
298
+ "type": "uint256"
299
+ }
300
+ ],
301
+ "internalType": "struct MarketExtState",
302
+ "name": "marketExt",
303
+ "type": "tuple"
304
+ }
305
+ ],
306
+ "name": "botExtStats",
307
+ "outputs": [
308
+ {
309
+ "internalType": "uint256",
310
+ "name": "tvlInSy",
311
+ "type": "uint256"
312
+ },
313
+ {
314
+ "internalType": "uint256",
315
+ "name": "iy",
316
+ "type": "uint256"
317
+ },
318
+ {
319
+ "internalType": "uint256",
320
+ "name": "currentSyRatio",
321
+ "type": "uint256"
322
+ },
323
+ {
324
+ "internalType": "uint256",
325
+ "name": "currentYtPtRatio",
326
+ "type": "uint256"
327
+ }
328
+ ],
329
+ "stateMutability": "pure",
330
+ "type": "function"
331
+ },
332
+ {
333
+ "inputs": [
334
+ {
335
+ "components": [
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "lpBalance",
339
+ "type": "uint256"
340
+ },
341
+ {
342
+ "internalType": "uint256",
343
+ "name": "ytBalance",
344
+ "type": "uint256"
345
+ },
346
+ {
347
+ "internalType": "uint256",
348
+ "name": "syBalance",
349
+ "type": "uint256"
350
+ }
351
+ ],
352
+ "internalType": "struct BotState",
353
+ "name": "botData",
354
+ "type": "tuple"
355
+ },
356
+ {
357
+ "components": [
358
+ {
359
+ "components": [
360
+ {
361
+ "internalType": "int256",
362
+ "name": "totalPt",
363
+ "type": "int256"
364
+ },
365
+ {
366
+ "internalType": "int256",
367
+ "name": "totalSy",
368
+ "type": "int256"
369
+ },
370
+ {
371
+ "internalType": "int256",
372
+ "name": "totalLp",
373
+ "type": "int256"
374
+ },
375
+ {
376
+ "internalType": "address",
377
+ "name": "treasury",
378
+ "type": "address"
379
+ },
380
+ {
381
+ "internalType": "int256",
382
+ "name": "scalarRoot",
383
+ "type": "int256"
384
+ },
385
+ {
386
+ "internalType": "uint256",
387
+ "name": "expiry",
388
+ "type": "uint256"
389
+ },
390
+ {
391
+ "internalType": "uint256",
392
+ "name": "lnFeeRateRoot",
393
+ "type": "uint256"
394
+ },
395
+ {
396
+ "internalType": "uint256",
397
+ "name": "reserveFeePercent",
398
+ "type": "uint256"
399
+ },
400
+ {
401
+ "internalType": "uint256",
402
+ "name": "lastLnImpliedRate",
403
+ "type": "uint256"
404
+ }
405
+ ],
406
+ "internalType": "struct MarketState",
407
+ "name": "state",
408
+ "type": "tuple"
409
+ },
410
+ {
411
+ "internalType": "PYIndex",
412
+ "name": "index",
413
+ "type": "uint256"
414
+ },
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "blockTime",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "internalType": "struct MarketExtState",
422
+ "name": "marketExtData",
423
+ "type": "tuple"
424
+ },
425
+ {
426
+ "internalType": "enum ActionType",
427
+ "name": "action",
428
+ "type": "uint8"
429
+ },
430
+ {
431
+ "internalType": "uint256",
432
+ "name": "botParam",
433
+ "type": "uint256"
434
+ },
435
+ {
436
+ "components": [
437
+ {
438
+ "internalType": "uint256",
439
+ "name": "guessMin",
440
+ "type": "uint256"
441
+ },
442
+ {
443
+ "internalType": "uint256",
444
+ "name": "guessMax",
445
+ "type": "uint256"
446
+ },
447
+ {
448
+ "internalType": "uint256",
449
+ "name": "guessOffchain",
450
+ "type": "uint256"
451
+ },
452
+ {
453
+ "internalType": "uint256",
454
+ "name": "maxIteration",
455
+ "type": "uint256"
456
+ },
457
+ {
458
+ "internalType": "uint256",
459
+ "name": "eps",
460
+ "type": "uint256"
461
+ }
462
+ ],
463
+ "internalType": "struct ApproxParams",
464
+ "name": "swapApproxParams",
465
+ "type": "tuple"
466
+ }
467
+ ],
468
+ "name": "previewAction",
469
+ "outputs": [
470
+ {
471
+ "internalType": "bool",
472
+ "name": "success",
473
+ "type": "bool"
474
+ },
475
+ {
476
+ "components": [
477
+ {
478
+ "internalType": "uint256",
479
+ "name": "lpBalance",
480
+ "type": "uint256"
481
+ },
482
+ {
483
+ "internalType": "uint256",
484
+ "name": "ytBalance",
485
+ "type": "uint256"
486
+ },
487
+ {
488
+ "internalType": "uint256",
489
+ "name": "syBalance",
490
+ "type": "uint256"
491
+ }
492
+ ],
493
+ "internalType": "struct BotState",
494
+ "name": "bot",
495
+ "type": "tuple"
496
+ },
497
+ {
498
+ "components": [
499
+ {
500
+ "components": [
501
+ {
502
+ "internalType": "int256",
503
+ "name": "totalPt",
504
+ "type": "int256"
505
+ },
506
+ {
507
+ "internalType": "int256",
508
+ "name": "totalSy",
509
+ "type": "int256"
510
+ },
511
+ {
512
+ "internalType": "int256",
513
+ "name": "totalLp",
514
+ "type": "int256"
515
+ },
516
+ {
517
+ "internalType": "address",
518
+ "name": "treasury",
519
+ "type": "address"
520
+ },
521
+ {
522
+ "internalType": "int256",
523
+ "name": "scalarRoot",
524
+ "type": "int256"
525
+ },
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "expiry",
529
+ "type": "uint256"
530
+ },
531
+ {
532
+ "internalType": "uint256",
533
+ "name": "lnFeeRateRoot",
534
+ "type": "uint256"
535
+ },
536
+ {
537
+ "internalType": "uint256",
538
+ "name": "reserveFeePercent",
539
+ "type": "uint256"
540
+ },
541
+ {
542
+ "internalType": "uint256",
543
+ "name": "lastLnImpliedRate",
544
+ "type": "uint256"
545
+ }
546
+ ],
547
+ "internalType": "struct MarketState",
548
+ "name": "state",
549
+ "type": "tuple"
550
+ },
551
+ {
552
+ "internalType": "PYIndex",
553
+ "name": "index",
554
+ "type": "uint256"
555
+ },
556
+ {
557
+ "internalType": "uint256",
558
+ "name": "blockTime",
559
+ "type": "uint256"
560
+ }
561
+ ],
562
+ "internalType": "struct MarketExtState",
563
+ "name": "marketExt",
564
+ "type": "tuple"
565
+ }
566
+ ],
567
+ "stateMutability": "pure",
568
+ "type": "function"
569
+ },
570
+ {
571
+ "inputs": [
572
+ {
573
+ "components": [
574
+ {
575
+ "internalType": "uint256",
576
+ "name": "lpBalance",
577
+ "type": "uint256"
578
+ },
579
+ {
580
+ "internalType": "uint256",
581
+ "name": "ytBalance",
582
+ "type": "uint256"
583
+ },
584
+ {
585
+ "internalType": "uint256",
586
+ "name": "syBalance",
587
+ "type": "uint256"
588
+ }
589
+ ],
590
+ "internalType": "struct BotState",
591
+ "name": "bot",
592
+ "type": "tuple"
593
+ },
594
+ {
595
+ "components": [
596
+ {
597
+ "components": [
598
+ {
599
+ "internalType": "int256",
600
+ "name": "totalPt",
601
+ "type": "int256"
602
+ },
603
+ {
604
+ "internalType": "int256",
605
+ "name": "totalSy",
606
+ "type": "int256"
607
+ },
608
+ {
609
+ "internalType": "int256",
610
+ "name": "totalLp",
611
+ "type": "int256"
612
+ },
613
+ {
614
+ "internalType": "address",
615
+ "name": "treasury",
616
+ "type": "address"
617
+ },
618
+ {
619
+ "internalType": "int256",
620
+ "name": "scalarRoot",
621
+ "type": "int256"
622
+ },
623
+ {
624
+ "internalType": "uint256",
625
+ "name": "expiry",
626
+ "type": "uint256"
627
+ },
628
+ {
629
+ "internalType": "uint256",
630
+ "name": "lnFeeRateRoot",
631
+ "type": "uint256"
632
+ },
633
+ {
634
+ "internalType": "uint256",
635
+ "name": "reserveFeePercent",
636
+ "type": "uint256"
637
+ },
638
+ {
639
+ "internalType": "uint256",
640
+ "name": "lastLnImpliedRate",
641
+ "type": "uint256"
642
+ }
643
+ ],
644
+ "internalType": "struct MarketState",
645
+ "name": "state",
646
+ "type": "tuple"
647
+ },
648
+ {
649
+ "internalType": "PYIndex",
650
+ "name": "index",
651
+ "type": "uint256"
652
+ },
653
+ {
654
+ "internalType": "uint256",
655
+ "name": "blockTime",
656
+ "type": "uint256"
657
+ }
658
+ ],
659
+ "internalType": "struct MarketExtState",
660
+ "name": "marketExt",
661
+ "type": "tuple"
662
+ },
663
+ {
664
+ "components": [
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "lowerIyLimit",
668
+ "type": "uint256"
669
+ },
670
+ {
671
+ "internalType": "uint256",
672
+ "name": "upperIyLimit",
673
+ "type": "uint256"
674
+ },
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "floatingSyRatioLimit",
678
+ "type": "uint256"
679
+ },
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "floatingSyRatioTarget",
683
+ "type": "uint256"
684
+ },
685
+ {
686
+ "internalType": "uint256",
687
+ "name": "ytPtRatioLimit",
688
+ "type": "uint256"
689
+ },
690
+ {
691
+ "internalType": "uint256",
692
+ "name": "ytPtRatioTarget",
693
+ "type": "uint256"
694
+ }
695
+ ],
696
+ "internalType": "struct LongTradingSpecs",
697
+ "name": "specs",
698
+ "type": "tuple"
699
+ },
700
+ {
701
+ "internalType": "enum ActionType",
702
+ "name": "action",
703
+ "type": "uint8"
704
+ },
705
+ {
706
+ "components": [
707
+ {
708
+ "internalType": "uint256",
709
+ "name": "guessMin",
710
+ "type": "uint256"
711
+ },
712
+ {
713
+ "internalType": "uint256",
714
+ "name": "guessMax",
715
+ "type": "uint256"
716
+ },
717
+ {
718
+ "internalType": "uint256",
719
+ "name": "guessOffchain",
720
+ "type": "uint256"
721
+ },
722
+ {
723
+ "internalType": "uint256",
724
+ "name": "maxIteration",
725
+ "type": "uint256"
726
+ },
727
+ {
728
+ "internalType": "uint256",
729
+ "name": "eps",
730
+ "type": "uint256"
731
+ }
732
+ ],
733
+ "internalType": "struct ApproxParams",
734
+ "name": "botParams",
735
+ "type": "tuple"
736
+ },
737
+ {
738
+ "components": [
739
+ {
740
+ "internalType": "uint256",
741
+ "name": "guessMin",
742
+ "type": "uint256"
743
+ },
744
+ {
745
+ "internalType": "uint256",
746
+ "name": "guessMax",
747
+ "type": "uint256"
748
+ },
749
+ {
750
+ "internalType": "uint256",
751
+ "name": "guessOffchain",
752
+ "type": "uint256"
753
+ },
754
+ {
755
+ "internalType": "uint256",
756
+ "name": "maxIteration",
757
+ "type": "uint256"
758
+ },
759
+ {
760
+ "internalType": "uint256",
761
+ "name": "eps",
762
+ "type": "uint256"
763
+ }
764
+ ],
765
+ "internalType": "struct ApproxParams",
766
+ "name": "intParams",
767
+ "type": "tuple"
768
+ }
769
+ ],
770
+ "name": "searchForBotParam",
771
+ "outputs": [
772
+ {
773
+ "internalType": "uint256",
774
+ "name": "",
775
+ "type": "uint256"
776
+ },
777
+ {
778
+ "internalType": "enum IBotDecisionHelper.RebalanceResult",
779
+ "name": "",
780
+ "type": "uint8"
781
+ }
782
+ ],
783
+ "stateMutability": "pure",
784
+ "type": "function"
785
+ },
786
+ {
787
+ "inputs": [
788
+ {
789
+ "components": [
790
+ {
791
+ "components": [
792
+ {
793
+ "internalType": "int256",
794
+ "name": "totalPt",
795
+ "type": "int256"
796
+ },
797
+ {
798
+ "internalType": "int256",
799
+ "name": "totalSy",
800
+ "type": "int256"
801
+ },
802
+ {
803
+ "internalType": "int256",
804
+ "name": "totalLp",
805
+ "type": "int256"
806
+ },
807
+ {
808
+ "internalType": "address",
809
+ "name": "treasury",
810
+ "type": "address"
811
+ },
812
+ {
813
+ "internalType": "int256",
814
+ "name": "scalarRoot",
815
+ "type": "int256"
816
+ },
817
+ {
818
+ "internalType": "uint256",
819
+ "name": "expiry",
820
+ "type": "uint256"
821
+ },
822
+ {
823
+ "internalType": "uint256",
824
+ "name": "lnFeeRateRoot",
825
+ "type": "uint256"
826
+ },
827
+ {
828
+ "internalType": "uint256",
829
+ "name": "reserveFeePercent",
830
+ "type": "uint256"
831
+ },
832
+ {
833
+ "internalType": "uint256",
834
+ "name": "lastLnImpliedRate",
835
+ "type": "uint256"
836
+ }
837
+ ],
838
+ "internalType": "struct MarketState",
839
+ "name": "state",
840
+ "type": "tuple"
841
+ },
842
+ {
843
+ "internalType": "PYIndex",
844
+ "name": "index",
845
+ "type": "uint256"
846
+ },
847
+ {
848
+ "internalType": "uint256",
849
+ "name": "blockTime",
850
+ "type": "uint256"
851
+ }
852
+ ],
853
+ "internalType": "struct MarketExtState",
854
+ "name": "marketExt",
855
+ "type": "tuple"
856
+ },
857
+ {
858
+ "internalType": "enum ActionType",
859
+ "name": "action",
860
+ "type": "uint8"
861
+ },
862
+ {
863
+ "internalType": "uint256",
864
+ "name": "botParam",
865
+ "type": "uint256"
866
+ },
867
+ {
868
+ "components": [
869
+ {
870
+ "internalType": "uint256",
871
+ "name": "guessMin",
872
+ "type": "uint256"
873
+ },
874
+ {
875
+ "internalType": "uint256",
876
+ "name": "guessMax",
877
+ "type": "uint256"
878
+ },
879
+ {
880
+ "internalType": "uint256",
881
+ "name": "guessOffchain",
882
+ "type": "uint256"
883
+ },
884
+ {
885
+ "internalType": "uint256",
886
+ "name": "maxIteration",
887
+ "type": "uint256"
888
+ },
889
+ {
890
+ "internalType": "uint256",
891
+ "name": "eps",
892
+ "type": "uint256"
893
+ }
894
+ ],
895
+ "internalType": "struct ApproxParams",
896
+ "name": "intParams",
897
+ "type": "tuple"
898
+ }
899
+ ],
900
+ "name": "searchForIntParam",
901
+ "outputs": [
902
+ {
903
+ "internalType": "uint256",
904
+ "name": "",
905
+ "type": "uint256"
906
+ }
907
+ ],
908
+ "stateMutability": "pure",
909
+ "type": "function"
910
+ },
911
+ {
912
+ "inputs": [
913
+ {
914
+ "components": [
915
+ {
916
+ "internalType": "uint256",
917
+ "name": "lpBalance",
918
+ "type": "uint256"
919
+ },
920
+ {
921
+ "internalType": "uint256",
922
+ "name": "ytBalance",
923
+ "type": "uint256"
924
+ },
925
+ {
926
+ "internalType": "uint256",
927
+ "name": "syBalance",
928
+ "type": "uint256"
929
+ }
930
+ ],
931
+ "internalType": "struct BotState",
932
+ "name": "bot",
933
+ "type": "tuple"
934
+ },
935
+ {
936
+ "components": [
937
+ {
938
+ "components": [
939
+ {
940
+ "internalType": "int256",
941
+ "name": "totalPt",
942
+ "type": "int256"
943
+ },
944
+ {
945
+ "internalType": "int256",
946
+ "name": "totalSy",
947
+ "type": "int256"
948
+ },
949
+ {
950
+ "internalType": "int256",
951
+ "name": "totalLp",
952
+ "type": "int256"
953
+ },
954
+ {
955
+ "internalType": "address",
956
+ "name": "treasury",
957
+ "type": "address"
958
+ },
959
+ {
960
+ "internalType": "int256",
961
+ "name": "scalarRoot",
962
+ "type": "int256"
963
+ },
964
+ {
965
+ "internalType": "uint256",
966
+ "name": "expiry",
967
+ "type": "uint256"
968
+ },
969
+ {
970
+ "internalType": "uint256",
971
+ "name": "lnFeeRateRoot",
972
+ "type": "uint256"
973
+ },
974
+ {
975
+ "internalType": "uint256",
976
+ "name": "reserveFeePercent",
977
+ "type": "uint256"
978
+ },
979
+ {
980
+ "internalType": "uint256",
981
+ "name": "lastLnImpliedRate",
982
+ "type": "uint256"
983
+ }
984
+ ],
985
+ "internalType": "struct MarketState",
986
+ "name": "state",
987
+ "type": "tuple"
988
+ },
989
+ {
990
+ "internalType": "PYIndex",
991
+ "name": "index",
992
+ "type": "uint256"
993
+ },
994
+ {
995
+ "internalType": "uint256",
996
+ "name": "blockTime",
997
+ "type": "uint256"
998
+ }
999
+ ],
1000
+ "internalType": "struct MarketExtState",
1001
+ "name": "marketExt",
1002
+ "type": "tuple"
1003
+ },
1004
+ {
1005
+ "components": [
1006
+ {
1007
+ "internalType": "uint256",
1008
+ "name": "lowerIyLimit",
1009
+ "type": "uint256"
1010
+ },
1011
+ {
1012
+ "internalType": "uint256",
1013
+ "name": "upperIyLimit",
1014
+ "type": "uint256"
1015
+ },
1016
+ {
1017
+ "internalType": "uint256",
1018
+ "name": "floatingSyRatioLimit",
1019
+ "type": "uint256"
1020
+ },
1021
+ {
1022
+ "internalType": "uint256",
1023
+ "name": "floatingSyRatioTarget",
1024
+ "type": "uint256"
1025
+ },
1026
+ {
1027
+ "internalType": "uint256",
1028
+ "name": "ytPtRatioLimit",
1029
+ "type": "uint256"
1030
+ },
1031
+ {
1032
+ "internalType": "uint256",
1033
+ "name": "ytPtRatioTarget",
1034
+ "type": "uint256"
1035
+ }
1036
+ ],
1037
+ "internalType": "struct LongTradingSpecs",
1038
+ "name": "specs",
1039
+ "type": "tuple"
1040
+ }
1041
+ ],
1042
+ "name": "strategyState",
1043
+ "outputs": [
1044
+ {
1045
+ "components": [
1046
+ {
1047
+ "internalType": "enum StrategyFlag",
1048
+ "name": "iyFlag",
1049
+ "type": "uint8"
1050
+ },
1051
+ {
1052
+ "internalType": "enum StrategyFlag",
1053
+ "name": "syRatioFlag",
1054
+ "type": "uint8"
1055
+ }
1056
+ ],
1057
+ "internalType": "struct StrategyState",
1058
+ "name": "currentState",
1059
+ "type": "tuple"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "pure",
1063
+ "type": "function"
1064
+ }
1065
+ ],
1066
+ "bytecode": "0x608060405234801561001057600080fd5b506135e2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063124fdedb1461006757806333cace2a1461013e578063675ea12b1461015e578063896d88d31461017f578063914185af1461019f578063b3a332eb146101c0575b600080fd5b61007a6100753660046130c5565b6101f3565b6040516101359392919060006101e0820190508415158252835160208301526020840151604083015260408401516060830152825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b60405180910390f35b61015161014c366004613139565b6102e7565b60405161013591906131df565b61017161016c3660046131f9565b610407565b604051908152602001610135565b61019261018d3660046132d3565b61044f565b604051610135919061332b565b6101b26101ad366004613358565b6104f6565b6040516101359291906133d6565b6101d36101ce3660046133f3565b610802565b604080519485526020850193909352918301526060820152608001610135565b60006101fd612e30565b610205612e51565b61020e88610876565b9150610219876108a2565b9050600086600581111561022f5761022f6131c9565b036102465761023f8282876108e0565b92506102dc565b600186600581111561025a5761025a6131c9565b0361026a5761023f82828761093e565b600286600581111561027e5761027e6131c9565b0361028e5761023f8282876109b1565b60038660058111156102a2576102a26131c9565b036102b25761023f828287610a00565b60048660058111156102c6576102c66131c9565b036102d75761023f82828787610a3b565b600092505b955095509592505050565b60006001825160028111156102fe576102fe6131c9565b036103555760028260200151600281111561031b5761031b6131c9565b0361033c57826040015160000361033457506005610401565b506000610401565b825160000361034d57506005610401565b506004610401565b60008251600281111561036a5761036a6131c9565b036103b057600282602001516002811115610387576103876131c9565b036103a85782604001516000036103a057506005610401565b506001610401565b506005610401565b6002826020015160028111156103c8576103c86131c9565b036103e95782604001516000036103e157506005610401565b506002610401565b82602001516000036103fd57506005610401565b5060035b92915050565b6000600484600581111561041d5761041d6131c9565b036104435760006104398484610432896108a2565b9190610a71565b9250610447915050565b5060005b949350505050565b604080518082019091526000808252602082015260008060006104728787610802565b9350935093505084600001518310156104a4578360015b9081600281111561049c5761049c6131c9565b9052506104cc565b8285602001511080156104ba5750846080015181115b156104c757836002610489565b600084525b84604001518211156104e457600260208501526104ec565b600060208501525b5050509392505050565b600080600060405180608001604052808a815260200189815260200188815260200187600581111561052a5761052a6131c9565b90526040860151909150156105c45760006105618660800151670de0b6b3a7640000610556919061343f565b604088015190610b0e565b9050600161057483886040015188610b31565b6002811115610585576105856131c9565b1480156105ad5750600261059a838388610b31565b60028111156105ab576105ab6131c9565b145b156105c25750505050604082015160016107f7565b505b60006105d18a8a89610b99565b905080866020015111156105e757602086018190525b60208601518651111561063257866005811115610606576106066131c9565b8651602088015160405163f25ccea360e01b815261062993929190600401613452565b60405180910390fd5b600261064383886020015188610b31565b6002811115610654576106546131c9565b036106695750505050602082015160026107f7565b50600061067b82876000015187610b31565b90506000816002811115610691576106916131c9565b036106c5578660058111156106a8576106a86131c9565b8651604051630cf4fb5360e31b8152610629929190600401613468565b60018160028111156106d9576106d96131c9565b036106ed57505083519150600190506107f7565b5060005b85606001518110156107dd576000600287600001518860200151610715919061343f565b61071f919061348c565b875161072b91906134a0565b9050600261073a848389610b31565b600281111561074b5761074b6131c9565b0361075857808752610760565b602087018190525b610777876000015188602001518960800151610c54565b156107cc57600061078d84896000015189610b31565b600281111561079e5761079e6131c9565b036107bc5786516107b0848289610b31565b945094505050506107f7565b60208701516107b0848289610b31565b506107d6816134b3565b90506106f1565b5060405163fef33c9d60e01b815260040160405180910390fd5b965096945050505050565b60008080806108118686610c87565b935061081c85610d60565b604087015190935061082e9085610dad565b915060006108498760000151610843886108a2565b90610dd3565b91505080156108665760208701516108619082610dad565b61086a565b6000195b91505092959194509250565b61087e612e30565b50604080516060810182528251815260208084015190820152918101519082015290565b6108aa612e51565b60405180606001604052806108c28460000151610e8a565b81526020018360200151815260200183604001518152509050919050565b6000806108ed8484610f07565b90508460400151811115610905576000915050610937565b8085604001818151610917919061343f565b90525060208501805184919061092e9083906134a0565b90525060019150505b9392505050565b6000836040015182111561095457506000610937565b6000806109618585610f57565b915091508386604001818151610977919061343f565b90525085518290879061098b9083906134a0565b9052506020860180518291906109a29083906134a0565b90525060019695505050505050565b600080806109bf8585610fe3565b9150915085604001518111156109da57600092505050610937565b80866040018181516109ec919061343f565b9052508551829087906109a29083906134a0565b60008080610a0e8585611066565b915091508560200151811115610a2957600092505050610937565b80866020018181516109ec919061343f565b8351600090831115610a4f57506000610447565b6000610a5c858585610a71565b509050838660000181815161098b919061343f565b600080600080610a818787610dd3565b915091506000610a9e83896020015161116a90919063ffffffff16565b90506000610aac82846134a0565b90506000610ad28a60200151838c60400151610ac78c611176565b8e51939291906111ea565b5060208c015160408d01518d51929950929350610af0928990611300565b5050508083610aff91906134a0565b96505050505050935093915050565b600080610b1b83856134cc565b9050670de0b6b3a7640000815b04949350505050565b600080600080610b5087600001518860200151896060015189896101f3565b92509250925082610b675760009350505050610937565b610b7b828289604001518a60600151611351565b15610b8c5760019350505050610937565b5060029695505050505050565b600080826005811115610bae57610bae6131c9565b03610bc357610bbc8361149d565b9050610937565b6001826005811115610bd757610bd76131c9565b03610be757506040830151610937565b6002826005811115610bfb57610bfb6131c9565b03610c0957610bbc836114d8565b6003826005811115610c1d57610c1d6131c9565b03610c2b57610bbc836114d8565b6004826005811115610c3f57610c3f6131c9565b03610c4c57508251610937565b506000610937565b60008284111580156104475750610c7c83610c7784670de0b6b3a764000061343f565b610b0e565b841015949350505050565b600080610c93836108a2565b9050600080610caf866000015184610dd390919063ffffffff16565b915091506000828760400151610cc591906134a0565b905086602001518211610d1357610cdc84836114fe565b610ce690826134a0565b9050610d02828860200151610cfb919061343f565b8590611510565b610d0c90826134a0565b9050610d56565b6020870151610d239085906114fe565b610d2d90826134a0565b9050610d49876020015183610d42919061343f565b859061156b565b610d5390826134a0565b90505b9695505050505050565b6000670de0b6b3a7640000610da3610d948460400151856000015160a00151610d89919061343f565b6301e1338090610dad565b610d9d8561158f565b906115dc565b610401919061343f565b600080610dc2670de0b6b3a7640000856134cc565b9050828181610b2857610b28613476565b6000806000610de184611785565b85516040810151602090910151919250600091610dfe90846134e3565b610e089190613513565b865160408101519051919250600091610e2190856134e3565b610e2b9190613513565b875160400151909150610e3e908461179f565b875160400152865151610e51908261179f565b875152865160200151610e64908361179f565b875160200152610e73826117e6565b610e7c826117e6565b945094505050509250929050565b610e92612e78565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6020820151604083015183516000928392610f259291908690611300565b505090506000610f428486602001516117f590919063ffffffff16565b9050610f4e8183611801565b95945050505050565b6000806000610f7b610f708660000151602001516117e6565b60208701519061116a565b855151610f87906117e6565b610f9191906134a0565b855151610f9d906117e6565b610fa790866134cc565b610fb1919061348c565b6020860151909150610fc3908261116a565b9150610fd985610fd3838761343f565b84611818565b9250509250929050565b600080600061100b856020015185876040015188600001516119ee909392919063ffffffff16565b505085515190915060009061101f906117e6565b86516020015161102e906117e6565b61103890876134cc565b611042919061348c565b905061104f868287611818565b935061105b81836134a0565b925050509250929050565b600080600061108e856020015185876040015188600001516119ee909392919063ffffffff16565b5050602086015190915060006110a482846134cc565b6110b6670de0b6b3a7640000886134cc565b6110c0919061343f565b8751519091506000906110d2906117e6565b836110e48a60000151602001516117e6565b6110ee91906134cc565b6110f8919061348c565b61110a90670de0b6b3a76400006134a0565b90506000611118828461348c565b9050611124818961343f565b9550600061113f878b60200151611a1c90919063ffffffff16565b9050600061114d878361343f565b905061115a8b8285611818565b9850505050505050509250929050565b60006109378383611a28565b6111a86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b60008080806111fa898988611a47565b9050846040015160000361123c5784516112149088611b41565b8552602085015161122e906112298b84611b57565b611bdb565b602086015261123c85611bea565b60005b85606001518110156112e65760006112578783611c38565b90506000806112688d868e86611ca4565b509092509050600061127a8d8461116a565b90506000611288828661343f565b90508c81116112bf576112a0818e8d60800151610c54565b156112b7575097509195509093506102dc92505050565b848b526112d0565b6112ca60018661343f565b60208c01525b5050505050806112df906134b3565b905061123f565b50604051637d388ed960e11b815260040160405180910390fd5b60008060008060008061131d8a8a6113178b611cd5565b8a611cec565b92509250925061132c836117e6565b9550611337826117e6565b9450611342816117e6565b93505050509450945094915050565b60008060028460200151856000015161136a91906134a0565b611374919061348c565b905060008060006113858989610802565b91955093509150600090508660058111156113a2576113a26131c9565b036113c55783831015806113ba575086606001518211155b945050505050610447565b60018660058111156113d9576113d96131c9565b036113f1578660600151821115945050505050610447565b6002866005811115611405576114056131c9565b0361143657838311158061141d575086606001518211155b806113ba57508660a00151811115945050505050610447565b600386600581111561144a5761144a6131c9565b0361146c5783831115806113ba57508660a00151811115945050505050610447565b6004866005811115611480576114806131c9565b0361149057505010159050610447565b6001945050505050610447565b805160208201516040830151600092600a926114c3926114be918391611a47565b611b57565b6114ce9060096134cc565b610401919061348c565b602081015160408201518251600092610401926114f6929190611a47565b835151611d7f565b60208201516000906109379083611a1c565b602082015160408301518351600092839261152e92919086906119ee565b50509050600061154b828660200151611e1e90919063ffffffff16565b90506000611559828661343f565b6020870151909150610d569082611a1c565b602082015160408301518351600092611585928590611300565b5090949350505050565b60208101516040820151825160009283926115ab929190611a47565b905060006115d18460000151600001518360200151846000015185604001516000611e2b565b9050610447816117e6565b6000816000036115f55750670de0b6b3a7640000610401565b8260000361160557506000610401565b600160ff1b831061164a5760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b6044820152606401610629565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f7653283106116a45760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b6044820152606401610629565b826000670c7d713b49da0000831380156116c55750670f43fc2c04ee000083125b156116fc5760006116d584611edc565b9050670de0b6b3a764000080820784020583670de0b6b3a76400008305020191505061170a565b8161170684611ffb565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590611738575068070c1cc73b00c800008113155b61177c5760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b6044820152606401610629565b610d568161239e565b60006001600160ff1b0382111561179b57600080fd5b5090565b6000818312156117dc5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610629565b6109378284613541565b60008082121561179b57600080fd5b600061093783836127b3565b600081831015611812576000610937565b50900390565b825160a001516040840151600091116118725760405162461bcd60e51b815260206004820152601c60248201527b13585c9ad95d115e1d131a588e88195e1c1a5c9959081b585c9ad95d60221b6044820152606401610629565b8351604001516000126118be5760405162461bcd60e51b815260206004820152601460248201527304d61726b65744578744c69623a204c50203c20360641b6044820152606401610629565b60006118c984611785565b905060006118d684611785565b90506000806000808960000151600001518a6000015160400151866118fb91906134e3565b6119059190613513565b8a51602081015160409091015191925060009161192290896134e3565b61192c9190613513565b905080821215611967578a51604081015160209091015192955086945085926119569084906134e3565b6119609190613513565b9250611990565b8a516040810151905191955087935085916119839083906134e3565b61198d9190613513565b93505b828b600001516020018181516119a69190613568565b9052508a5180518591906119bb908390613568565b9052508a5160400180518691906119d3908390613568565b9052506119df856117e6565b9b9a5050505050505050505050565b600080600080600080611a058a8a6113178b611785565b92509250925061132c611a17846127df565b6117e6565b600061093783836127ed565b6000670de0b6b3a7640000611a3d84846134cc565b610937919061348c565b611a726040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210611a965760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151611aa8919061343f565b9050611ab48582612802565b82526020850151611ac6908590612863565b602083015284511580611adb57506020820151155b15611b02578451602083015160405163b1c4aefb60e01b8152610629929190600401613468565b611b208560000151866101000151846020015185600001518561289a565b604083015260c0850151611b34908261291b565b6060830152509392505050565b6000818311611b505781610937565b5090919050565b60008060009050600060018460200151611b71919061343f565b90505b808214611bd35760006002611b8983856134a0565b611b949060016134a0565b611b9e919061348c565b90506000611bb18688600001518461294f565b1215611bc957611bc260018261343f565b9150611bcd565b8092505b50611b74565b509392505050565b6000818310611b505781610937565b602081015181511180611c085750670de0b6b3a76400008160800151115b15611c3557805160208201516080830151604051632cc06bc160e21b815261062993929190600401613452565b50565b600081158015611c4b5750604083015115155b15611c5b57506040820151610401565b6020830151835111611c8b5760208301518351600291611c7a916134a0565b611c84919061348c565b9050610401565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611cc28989611cb98a613590565b8d929190612a41565b919c909b50909950975050505050505050565b6000611ce082611785565b610401906000196134e3565b6000806000611cff8760a0015185101590565b15611d1d5760405163b2094b5960e01b815260040160405180910390fd5b86518512611d43578651604051632185509b60e21b815261062991908790600401613468565b6000611d50888887611a47565b9050611d5e88828989612a41565b91955093509150611d748882898988878b612b95565b509450945094915050565b600080611dac611da7856000015186604001518760600151611da19190613541565b90612c27565b61239e565b90506000611dcc611dc5670de0b6b3a764000084613568565b8390612c4a565b90506000611dea866020015186611de39190613568565b8390612c27565b90506000611df88287613541565b90506103e8611e09826103e76134cc565b611e13919061348c565b979650505050505050565b6000826104478184612c70565b600080611e38878461179f565b90506000611e49611dc5888a613568565b9050670d529ae9e8600000811315611e805780670d529ae9e8600000604051637e34684f60e11b8152600401610629929190613468565b6000611e8b82612c88565b905085611e988289612c4a565b611ea29190613568565b9350670de0b6b3a7640000841215611ed05760405163329e322960e21b815260048101859052602401610629565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611f1d57611f1d613476565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561203c57612033826a0c097ce7bc90715b34b9f160241b8161202d5761202d613476565b05611ffb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126120875772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126120be576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612106576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612141576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261217857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126121af57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126121e45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261220f57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612244576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612279576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126122ad576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126122e1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161230a5761230a613476565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff1982121580156123c3575068070c1cc73b00c800008213155b6124025760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610629565b600082121561243a576124178260000361239e565b6a0c097ce7bc90715b34b9f160241b8161243357612433613476565b0592915050565b60006806f05b59d3b2000000831261247857506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6124ae565b6803782dace9d900000083126124aa57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806124ae565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126124fe5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261253a576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261257457682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126125ae576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126125e757680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126126205768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612659576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126925768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000826001816127cb670de0b6b3a7640000866134cc565b6127d591906134a0565b611a3d919061343f565b6000610401826000196134e3565b600082611a3d670de0b6b3a7640000846134cc565b600061280d82611785565b61282461281f6201518061016d6134cc565b611785565b846080015161283391906134e3565b61283d9190613513565b90506000811361040157604051630e520c3b60e11b815260048101829052602401610629565b60008060008312612875576001612879565b6000195b905061289061281f8561288b86612cdb565b611a28565b61044790826134e3565b6000806128a7868461291b565b9050670de0b6b3a76400008112156128d55760405163329e322960e21b815260048101829052602401610629565b60006128eb6128e4878a613568565b8990612c4a565b905060006128f882612c88565b90506129048187612c4a565b61290e9084613541565b9998505050505050505050565b60008061292d6201518061016d6134cc565b61293784866134cc565b612941919061348c565b9050610447611da782611785565b6000808285602001516129629190613541565b905060006129708585613568565b90506000821380156129825750600081135b6129c35760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610629565b60006129f16129d284846134e3565b60208901516129e19089613568565b6129eb90886134e3565b90612c4a565b90506000612a07612a028486612c4a565b612cf2565b8851909150600090612a2290670de0b6b3a764000090612c4a565b9050612a3281611da18486613541565b896040015161290e9190613541565b600080600080612a648860000151886020015189600001518a6040015189611e2b565b90506000612a7a612a758784612c4a565b6127df565b60608901519091506000871315612ae9576000612a978483612c4a565b9050670de0b6b3a7640000811215612ac55760405163329e322960e21b815260048101829052602401610629565b612ae1612ada83670de0b6b3a7640000613541565b8490612c27565b915050612b16565b612b1381612aff81670de0b6b3a7640000613541565b612b0990856134e3565b612a759190613513565b90505b60006064612b278c60e00151611785565b612b3190846134e3565b612b3b9190613513565b90506000612b498385613541565b905060008112612b6257612b5d8a82612d83565b612b6c565b612b6c8a82612db0565b9750612b788a84612d83565b9650612b848a83612d83565b955050505050509450945094915050565b6000818860a00151612ba7919061343f565b8851909150612bb6908661179f565b8852612bd0612bc58486613568565b60208a01519061179f565b602089018190528851612bf591612be8908990612863565b895160408b015185612ddd565b6101008901819052600003612c1d57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600080612c3483856134e3565b9050670de0b6b3a7640000815b05949350505050565b600080612c5f670de0b6b3a7640000856134e3565b9050828181612c4157612c41613476565b6000670de0b6b3a76400006001816127cb86866134cc565b6000670de0b6b3a76400008203612cb25760405163a9c8b14d60e01b815260040160405180910390fd5b6000612cd0612cc984670de0b6b3a7640000613541565b8490612c4a565b905061093781612cf2565b600080821361179b57612ced82613590565b610401565b6000808213612d335760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610629565b670c7d713b49da000082138015612d515750670f43fc2c04ee000082125b15612d7557670de0b6b3a7640000612d6883611edc565b8161243357612433613476565b61040182611ffb565b919050565b60008060008312612d95576001612d99565b6000195b905061289061281f85612dab86612cdb565b6127ed565b60008060008312612dc2576001612dc6565b6000195b905061289061281f85612dd886612cdb565b6127b3565b600080612dee878787876000611e2b565b90506000612dfe611a1783612cf2565b905083612e106201518061016d6134cc565b612e1a90836134cc565b612e24919061348c565b98975050505050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060600160405280612e64612e78565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b600060608284031215612f4657600080fd5b612f4e612ecd565b905081358152602082013560208201526040820135604082015292915050565b80356001600160a01b0381168114612d7e57600080fd5b6000818303610160811215612f9957600080fd5b612fa1612ecd565b915061012080821215612fb357600080fd5b612fbb612f03565b9150833582526020840135602083015260408401356040830152612fe160608501612f6e565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b803560068110612d7e57600080fd5b600060a0828403121561305a57600080fd5b60405160a081016001600160401b038111828210171561308a57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a086880312156130de57600080fd5b6130e88787612f34565b94506130f78760608801612f85565b93506131066101c08701613039565b92506101e0860135915061311e876102008801613048565b90509295509295909350565b803560038110612d7e57600080fd5b60008082840360a081121561314d57600080fd5b6131578585612f34565b92506040605f198201121561316b57600080fd5b50604080519081016001600160401b038111828210171561319c57634e487b7160e01b600052604160045260246000fd5b6040526131ab6060850161312a565b81526131b96080850161312a565b6020820152809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106131f3576131f36131c9565b91905290565b600080600080610240858703121561321057600080fd5b61321a8686612f85565b93506132296101608601613039565b92506101808501359150613241866101a08701613048565b905092959194509250565b600060c0828403121561325e57600080fd5b60405160c081016001600160401b038111828210171561328e57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600080600061028084860312156132e957600080fd5b6132f38585612f34565b92506133028560608601612f85565b9150613312856101c0860161324c565b90509250925092565b60038110611c3557611c356131c9565b8151604082019061333b8161331b565b8252602083015161334b8161331b565b8060208401525092915050565b6000806000806000806103e0878903121561337257600080fd5b61337c8888612f34565b955061338b8860608901612f85565b945061339b886101c0890161324c565b93506133aa6102808801613039565b92506133ba886102a08901613048565b91506133ca886103408901613048565b90509295509295509295565b828152604081016133e68361331b565b8260208301529392505050565b6000806101c0838503121561340757600080fd5b6134118484612f34565b91506134208460608501612f85565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561040157610401613429565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261349b5761349b613476565b500490565b8082018082111561040157610401613429565b6000600182016134c5576134c5613429565b5060010190565b808202811582820484141761040157610401613429565b80820260008212600160ff1b841416156134ff576134ff613429565b818105831482151761040157610401613429565b60008261352257613522613476565b600160ff1b82146000198414161561353c5761353c613429565b500590565b818103600083128015838313168383128216171561356157613561613429565b5092915050565b808201828112600083128015821682158216171561358857613588613429565b505092915050565b6000600160ff1b82016135a5576135a5613429565b506000039056fea2646970667358221220ac9ca2b8ff0c6b372d5d03bdc3a20671c07c3a53f062c1972d206973a5bf6cb864736f6c63430008110033",
1067
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063124fdedb1461006757806333cace2a1461013e578063675ea12b1461015e578063896d88d31461017f578063914185af1461019f578063b3a332eb146101c0575b600080fd5b61007a6100753660046130c5565b6101f3565b6040516101359392919060006101e0820190508415158252835160208301526020840151604083015260408401516060830152825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b60405180910390f35b61015161014c366004613139565b6102e7565b60405161013591906131df565b61017161016c3660046131f9565b610407565b604051908152602001610135565b61019261018d3660046132d3565b61044f565b604051610135919061332b565b6101b26101ad366004613358565b6104f6565b6040516101359291906133d6565b6101d36101ce3660046133f3565b610802565b604080519485526020850193909352918301526060820152608001610135565b60006101fd612e30565b610205612e51565b61020e88610876565b9150610219876108a2565b9050600086600581111561022f5761022f6131c9565b036102465761023f8282876108e0565b92506102dc565b600186600581111561025a5761025a6131c9565b0361026a5761023f82828761093e565b600286600581111561027e5761027e6131c9565b0361028e5761023f8282876109b1565b60038660058111156102a2576102a26131c9565b036102b25761023f828287610a00565b60048660058111156102c6576102c66131c9565b036102d75761023f82828787610a3b565b600092505b955095509592505050565b60006001825160028111156102fe576102fe6131c9565b036103555760028260200151600281111561031b5761031b6131c9565b0361033c57826040015160000361033457506005610401565b506000610401565b825160000361034d57506005610401565b506004610401565b60008251600281111561036a5761036a6131c9565b036103b057600282602001516002811115610387576103876131c9565b036103a85782604001516000036103a057506005610401565b506001610401565b506005610401565b6002826020015160028111156103c8576103c86131c9565b036103e95782604001516000036103e157506005610401565b506002610401565b82602001516000036103fd57506005610401565b5060035b92915050565b6000600484600581111561041d5761041d6131c9565b036104435760006104398484610432896108a2565b9190610a71565b9250610447915050565b5060005b949350505050565b604080518082019091526000808252602082015260008060006104728787610802565b9350935093505084600001518310156104a4578360015b9081600281111561049c5761049c6131c9565b9052506104cc565b8285602001511080156104ba5750846080015181115b156104c757836002610489565b600084525b84604001518211156104e457600260208501526104ec565b600060208501525b5050509392505050565b600080600060405180608001604052808a815260200189815260200188815260200187600581111561052a5761052a6131c9565b90526040860151909150156105c45760006105618660800151670de0b6b3a7640000610556919061343f565b604088015190610b0e565b9050600161057483886040015188610b31565b6002811115610585576105856131c9565b1480156105ad5750600261059a838388610b31565b60028111156105ab576105ab6131c9565b145b156105c25750505050604082015160016107f7565b505b60006105d18a8a89610b99565b905080866020015111156105e757602086018190525b60208601518651111561063257866005811115610606576106066131c9565b8651602088015160405163f25ccea360e01b815261062993929190600401613452565b60405180910390fd5b600261064383886020015188610b31565b6002811115610654576106546131c9565b036106695750505050602082015160026107f7565b50600061067b82876000015187610b31565b90506000816002811115610691576106916131c9565b036106c5578660058111156106a8576106a86131c9565b8651604051630cf4fb5360e31b8152610629929190600401613468565b60018160028111156106d9576106d96131c9565b036106ed57505083519150600190506107f7565b5060005b85606001518110156107dd576000600287600001518860200151610715919061343f565b61071f919061348c565b875161072b91906134a0565b9050600261073a848389610b31565b600281111561074b5761074b6131c9565b0361075857808752610760565b602087018190525b610777876000015188602001518960800151610c54565b156107cc57600061078d84896000015189610b31565b600281111561079e5761079e6131c9565b036107bc5786516107b0848289610b31565b945094505050506107f7565b60208701516107b0848289610b31565b506107d6816134b3565b90506106f1565b5060405163fef33c9d60e01b815260040160405180910390fd5b965096945050505050565b60008080806108118686610c87565b935061081c85610d60565b604087015190935061082e9085610dad565b915060006108498760000151610843886108a2565b90610dd3565b91505080156108665760208701516108619082610dad565b61086a565b6000195b91505092959194509250565b61087e612e30565b50604080516060810182528251815260208084015190820152918101519082015290565b6108aa612e51565b60405180606001604052806108c28460000151610e8a565b81526020018360200151815260200183604001518152509050919050565b6000806108ed8484610f07565b90508460400151811115610905576000915050610937565b8085604001818151610917919061343f565b90525060208501805184919061092e9083906134a0565b90525060019150505b9392505050565b6000836040015182111561095457506000610937565b6000806109618585610f57565b915091508386604001818151610977919061343f565b90525085518290879061098b9083906134a0565b9052506020860180518291906109a29083906134a0565b90525060019695505050505050565b600080806109bf8585610fe3565b9150915085604001518111156109da57600092505050610937565b80866040018181516109ec919061343f565b9052508551829087906109a29083906134a0565b60008080610a0e8585611066565b915091508560200151811115610a2957600092505050610937565b80866020018181516109ec919061343f565b8351600090831115610a4f57506000610447565b6000610a5c858585610a71565b509050838660000181815161098b919061343f565b600080600080610a818787610dd3565b915091506000610a9e83896020015161116a90919063ffffffff16565b90506000610aac82846134a0565b90506000610ad28a60200151838c60400151610ac78c611176565b8e51939291906111ea565b5060208c015160408d01518d51929950929350610af0928990611300565b5050508083610aff91906134a0565b96505050505050935093915050565b600080610b1b83856134cc565b9050670de0b6b3a7640000815b04949350505050565b600080600080610b5087600001518860200151896060015189896101f3565b92509250925082610b675760009350505050610937565b610b7b828289604001518a60600151611351565b15610b8c5760019350505050610937565b5060029695505050505050565b600080826005811115610bae57610bae6131c9565b03610bc357610bbc8361149d565b9050610937565b6001826005811115610bd757610bd76131c9565b03610be757506040830151610937565b6002826005811115610bfb57610bfb6131c9565b03610c0957610bbc836114d8565b6003826005811115610c1d57610c1d6131c9565b03610c2b57610bbc836114d8565b6004826005811115610c3f57610c3f6131c9565b03610c4c57508251610937565b506000610937565b60008284111580156104475750610c7c83610c7784670de0b6b3a764000061343f565b610b0e565b841015949350505050565b600080610c93836108a2565b9050600080610caf866000015184610dd390919063ffffffff16565b915091506000828760400151610cc591906134a0565b905086602001518211610d1357610cdc84836114fe565b610ce690826134a0565b9050610d02828860200151610cfb919061343f565b8590611510565b610d0c90826134a0565b9050610d56565b6020870151610d239085906114fe565b610d2d90826134a0565b9050610d49876020015183610d42919061343f565b859061156b565b610d5390826134a0565b90505b9695505050505050565b6000670de0b6b3a7640000610da3610d948460400151856000015160a00151610d89919061343f565b6301e1338090610dad565b610d9d8561158f565b906115dc565b610401919061343f565b600080610dc2670de0b6b3a7640000856134cc565b9050828181610b2857610b28613476565b6000806000610de184611785565b85516040810151602090910151919250600091610dfe90846134e3565b610e089190613513565b865160408101519051919250600091610e2190856134e3565b610e2b9190613513565b875160400151909150610e3e908461179f565b875160400152865151610e51908261179f565b875152865160200151610e64908361179f565b875160200152610e73826117e6565b610e7c826117e6565b945094505050509250929050565b610e92612e78565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6020820151604083015183516000928392610f259291908690611300565b505090506000610f428486602001516117f590919063ffffffff16565b9050610f4e8183611801565b95945050505050565b6000806000610f7b610f708660000151602001516117e6565b60208701519061116a565b855151610f87906117e6565b610f9191906134a0565b855151610f9d906117e6565b610fa790866134cc565b610fb1919061348c565b6020860151909150610fc3908261116a565b9150610fd985610fd3838761343f565b84611818565b9250509250929050565b600080600061100b856020015185876040015188600001516119ee909392919063ffffffff16565b505085515190915060009061101f906117e6565b86516020015161102e906117e6565b61103890876134cc565b611042919061348c565b905061104f868287611818565b935061105b81836134a0565b925050509250929050565b600080600061108e856020015185876040015188600001516119ee909392919063ffffffff16565b5050602086015190915060006110a482846134cc565b6110b6670de0b6b3a7640000886134cc565b6110c0919061343f565b8751519091506000906110d2906117e6565b836110e48a60000151602001516117e6565b6110ee91906134cc565b6110f8919061348c565b61110a90670de0b6b3a76400006134a0565b90506000611118828461348c565b9050611124818961343f565b9550600061113f878b60200151611a1c90919063ffffffff16565b9050600061114d878361343f565b905061115a8b8285611818565b9850505050505050509250929050565b60006109378383611a28565b6111a86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b60008080806111fa898988611a47565b9050846040015160000361123c5784516112149088611b41565b8552602085015161122e906112298b84611b57565b611bdb565b602086015261123c85611bea565b60005b85606001518110156112e65760006112578783611c38565b90506000806112688d868e86611ca4565b509092509050600061127a8d8461116a565b90506000611288828661343f565b90508c81116112bf576112a0818e8d60800151610c54565b156112b7575097509195509093506102dc92505050565b848b526112d0565b6112ca60018661343f565b60208c01525b5050505050806112df906134b3565b905061123f565b50604051637d388ed960e11b815260040160405180910390fd5b60008060008060008061131d8a8a6113178b611cd5565b8a611cec565b92509250925061132c836117e6565b9550611337826117e6565b9450611342816117e6565b93505050509450945094915050565b60008060028460200151856000015161136a91906134a0565b611374919061348c565b905060008060006113858989610802565b91955093509150600090508660058111156113a2576113a26131c9565b036113c55783831015806113ba575086606001518211155b945050505050610447565b60018660058111156113d9576113d96131c9565b036113f1578660600151821115945050505050610447565b6002866005811115611405576114056131c9565b0361143657838311158061141d575086606001518211155b806113ba57508660a00151811115945050505050610447565b600386600581111561144a5761144a6131c9565b0361146c5783831115806113ba57508660a00151811115945050505050610447565b6004866005811115611480576114806131c9565b0361149057505010159050610447565b6001945050505050610447565b805160208201516040830151600092600a926114c3926114be918391611a47565b611b57565b6114ce9060096134cc565b610401919061348c565b602081015160408201518251600092610401926114f6929190611a47565b835151611d7f565b60208201516000906109379083611a1c565b602082015160408301518351600092839261152e92919086906119ee565b50509050600061154b828660200151611e1e90919063ffffffff16565b90506000611559828661343f565b6020870151909150610d569082611a1c565b602082015160408301518351600092611585928590611300565b5090949350505050565b60208101516040820151825160009283926115ab929190611a47565b905060006115d18460000151600001518360200151846000015185604001516000611e2b565b9050610447816117e6565b6000816000036115f55750670de0b6b3a7640000610401565b8260000361160557506000610401565b600160ff1b831061164a5760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b6044820152606401610629565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f7653283106116a45760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b6044820152606401610629565b826000670c7d713b49da0000831380156116c55750670f43fc2c04ee000083125b156116fc5760006116d584611edc565b9050670de0b6b3a764000080820784020583670de0b6b3a76400008305020191505061170a565b8161170684611ffb565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590611738575068070c1cc73b00c800008113155b61177c5760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b6044820152606401610629565b610d568161239e565b60006001600160ff1b0382111561179b57600080fd5b5090565b6000818312156117dc5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610629565b6109378284613541565b60008082121561179b57600080fd5b600061093783836127b3565b600081831015611812576000610937565b50900390565b825160a001516040840151600091116118725760405162461bcd60e51b815260206004820152601c60248201527b13585c9ad95d115e1d131a588e88195e1c1a5c9959081b585c9ad95d60221b6044820152606401610629565b8351604001516000126118be5760405162461bcd60e51b815260206004820152601460248201527304d61726b65744578744c69623a204c50203c20360641b6044820152606401610629565b60006118c984611785565b905060006118d684611785565b90506000806000808960000151600001518a6000015160400151866118fb91906134e3565b6119059190613513565b8a51602081015160409091015191925060009161192290896134e3565b61192c9190613513565b905080821215611967578a51604081015160209091015192955086945085926119569084906134e3565b6119609190613513565b9250611990565b8a516040810151905191955087935085916119839083906134e3565b61198d9190613513565b93505b828b600001516020018181516119a69190613568565b9052508a5180518591906119bb908390613568565b9052508a5160400180518691906119d3908390613568565b9052506119df856117e6565b9b9a5050505050505050505050565b600080600080600080611a058a8a6113178b611785565b92509250925061132c611a17846127df565b6117e6565b600061093783836127ed565b6000670de0b6b3a7640000611a3d84846134cc565b610937919061348c565b611a726040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210611a965760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151611aa8919061343f565b9050611ab48582612802565b82526020850151611ac6908590612863565b602083015284511580611adb57506020820151155b15611b02578451602083015160405163b1c4aefb60e01b8152610629929190600401613468565b611b208560000151866101000151846020015185600001518561289a565b604083015260c0850151611b34908261291b565b6060830152509392505050565b6000818311611b505781610937565b5090919050565b60008060009050600060018460200151611b71919061343f565b90505b808214611bd35760006002611b8983856134a0565b611b949060016134a0565b611b9e919061348c565b90506000611bb18688600001518461294f565b1215611bc957611bc260018261343f565b9150611bcd565b8092505b50611b74565b509392505050565b6000818310611b505781610937565b602081015181511180611c085750670de0b6b3a76400008160800151115b15611c3557805160208201516080830151604051632cc06bc160e21b815261062993929190600401613452565b50565b600081158015611c4b5750604083015115155b15611c5b57506040820151610401565b6020830151835111611c8b5760208301518351600291611c7a916134a0565b611c84919061348c565b9050610401565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611cc28989611cb98a613590565b8d929190612a41565b919c909b50909950975050505050505050565b6000611ce082611785565b610401906000196134e3565b6000806000611cff8760a0015185101590565b15611d1d5760405163b2094b5960e01b815260040160405180910390fd5b86518512611d43578651604051632185509b60e21b815261062991908790600401613468565b6000611d50888887611a47565b9050611d5e88828989612a41565b91955093509150611d748882898988878b612b95565b509450945094915050565b600080611dac611da7856000015186604001518760600151611da19190613541565b90612c27565b61239e565b90506000611dcc611dc5670de0b6b3a764000084613568565b8390612c4a565b90506000611dea866020015186611de39190613568565b8390612c27565b90506000611df88287613541565b90506103e8611e09826103e76134cc565b611e13919061348c565b979650505050505050565b6000826104478184612c70565b600080611e38878461179f565b90506000611e49611dc5888a613568565b9050670d529ae9e8600000811315611e805780670d529ae9e8600000604051637e34684f60e11b8152600401610629929190613468565b6000611e8b82612c88565b905085611e988289612c4a565b611ea29190613568565b9350670de0b6b3a7640000841215611ed05760405163329e322960e21b815260048101859052602401610629565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611f1d57611f1d613476565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561203c57612033826a0c097ce7bc90715b34b9f160241b8161202d5761202d613476565b05611ffb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126120875772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126120be576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612106576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612141576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261217857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126121af57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126121e45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261220f57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612244576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612279576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126122ad576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126122e1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161230a5761230a613476565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff1982121580156123c3575068070c1cc73b00c800008213155b6124025760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610629565b600082121561243a576124178260000361239e565b6a0c097ce7bc90715b34b9f160241b8161243357612433613476565b0592915050565b60006806f05b59d3b2000000831261247857506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6124ae565b6803782dace9d900000083126124aa57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806124ae565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126124fe5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261253a576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261257457682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126125ae576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126125e757680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126126205768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612659576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126925768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000826001816127cb670de0b6b3a7640000866134cc565b6127d591906134a0565b611a3d919061343f565b6000610401826000196134e3565b600082611a3d670de0b6b3a7640000846134cc565b600061280d82611785565b61282461281f6201518061016d6134cc565b611785565b846080015161283391906134e3565b61283d9190613513565b90506000811361040157604051630e520c3b60e11b815260048101829052602401610629565b60008060008312612875576001612879565b6000195b905061289061281f8561288b86612cdb565b611a28565b61044790826134e3565b6000806128a7868461291b565b9050670de0b6b3a76400008112156128d55760405163329e322960e21b815260048101829052602401610629565b60006128eb6128e4878a613568565b8990612c4a565b905060006128f882612c88565b90506129048187612c4a565b61290e9084613541565b9998505050505050505050565b60008061292d6201518061016d6134cc565b61293784866134cc565b612941919061348c565b9050610447611da782611785565b6000808285602001516129629190613541565b905060006129708585613568565b90506000821380156129825750600081135b6129c35760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610629565b60006129f16129d284846134e3565b60208901516129e19089613568565b6129eb90886134e3565b90612c4a565b90506000612a07612a028486612c4a565b612cf2565b8851909150600090612a2290670de0b6b3a764000090612c4a565b9050612a3281611da18486613541565b896040015161290e9190613541565b600080600080612a648860000151886020015189600001518a6040015189611e2b565b90506000612a7a612a758784612c4a565b6127df565b60608901519091506000871315612ae9576000612a978483612c4a565b9050670de0b6b3a7640000811215612ac55760405163329e322960e21b815260048101829052602401610629565b612ae1612ada83670de0b6b3a7640000613541565b8490612c27565b915050612b16565b612b1381612aff81670de0b6b3a7640000613541565b612b0990856134e3565b612a759190613513565b90505b60006064612b278c60e00151611785565b612b3190846134e3565b612b3b9190613513565b90506000612b498385613541565b905060008112612b6257612b5d8a82612d83565b612b6c565b612b6c8a82612db0565b9750612b788a84612d83565b9650612b848a83612d83565b955050505050509450945094915050565b6000818860a00151612ba7919061343f565b8851909150612bb6908661179f565b8852612bd0612bc58486613568565b60208a01519061179f565b602089018190528851612bf591612be8908990612863565b895160408b015185612ddd565b6101008901819052600003612c1d57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600080612c3483856134e3565b9050670de0b6b3a7640000815b05949350505050565b600080612c5f670de0b6b3a7640000856134e3565b9050828181612c4157612c41613476565b6000670de0b6b3a76400006001816127cb86866134cc565b6000670de0b6b3a76400008203612cb25760405163a9c8b14d60e01b815260040160405180910390fd5b6000612cd0612cc984670de0b6b3a7640000613541565b8490612c4a565b905061093781612cf2565b600080821361179b57612ced82613590565b610401565b6000808213612d335760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610629565b670c7d713b49da000082138015612d515750670f43fc2c04ee000082125b15612d7557670de0b6b3a7640000612d6883611edc565b8161243357612433613476565b61040182611ffb565b919050565b60008060008312612d95576001612d99565b6000195b905061289061281f85612dab86612cdb565b6127ed565b60008060008312612dc2576001612dc6565b6000195b905061289061281f85612dd886612cdb565b6127b3565b600080612dee878787876000611e2b565b90506000612dfe611a1783612cf2565b905083612e106201518061016d6134cc565b612e1a90836134cc565b612e24919061348c565b98975050505050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060600160405280612e64612e78565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b600060608284031215612f4657600080fd5b612f4e612ecd565b905081358152602082013560208201526040820135604082015292915050565b80356001600160a01b0381168114612d7e57600080fd5b6000818303610160811215612f9957600080fd5b612fa1612ecd565b915061012080821215612fb357600080fd5b612fbb612f03565b9150833582526020840135602083015260408401356040830152612fe160608501612f6e565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b803560068110612d7e57600080fd5b600060a0828403121561305a57600080fd5b60405160a081016001600160401b038111828210171561308a57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a086880312156130de57600080fd5b6130e88787612f34565b94506130f78760608801612f85565b93506131066101c08701613039565b92506101e0860135915061311e876102008801613048565b90509295509295909350565b803560038110612d7e57600080fd5b60008082840360a081121561314d57600080fd5b6131578585612f34565b92506040605f198201121561316b57600080fd5b50604080519081016001600160401b038111828210171561319c57634e487b7160e01b600052604160045260246000fd5b6040526131ab6060850161312a565b81526131b96080850161312a565b6020820152809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106131f3576131f36131c9565b91905290565b600080600080610240858703121561321057600080fd5b61321a8686612f85565b93506132296101608601613039565b92506101808501359150613241866101a08701613048565b905092959194509250565b600060c0828403121561325e57600080fd5b60405160c081016001600160401b038111828210171561328e57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600080600061028084860312156132e957600080fd5b6132f38585612f34565b92506133028560608601612f85565b9150613312856101c0860161324c565b90509250925092565b60038110611c3557611c356131c9565b8151604082019061333b8161331b565b8252602083015161334b8161331b565b8060208401525092915050565b6000806000806000806103e0878903121561337257600080fd5b61337c8888612f34565b955061338b8860608901612f85565b945061339b886101c0890161324c565b93506133aa6102808801613039565b92506133ba886102a08901613048565b91506133ca886103408901613048565b90509295509295509295565b828152604081016133e68361331b565b8260208301529392505050565b6000806101c0838503121561340757600080fd5b6134118484612f34565b91506134208460608501612f85565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561040157610401613429565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261349b5761349b613476565b500490565b8082018082111561040157610401613429565b6000600182016134c5576134c5613429565b5060010190565b808202811582820484141761040157610401613429565b80820260008212600160ff1b841416156134ff576134ff613429565b818105831482151761040157610401613429565b60008261352257613522613476565b600160ff1b82146000198414161561353c5761353c613429565b500590565b818103600083128015838313168383128216171561356157613561613429565b5092915050565b808201828112600083128015821682158216171561358857613588613429565b505092915050565b6000600160ff1b82016135a5576135a5613429565b506000039056fea2646970667358221220ac9ca2b8ff0c6b372d5d03bdc3a20671c07c3a53f062c1972d206973a5bf6cb864736f6c63430008110033",
1068
+ "linkReferences": {},
1069
+ "deployedLinkReferences": {}
1070
+ }