@pendle/core-v2 5.0.7-beta → 5.0.7

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 (255) hide show
  1. package/build/artifacts/contracts/core/StandardizedYield/SYBaseUpg.sol/SYBaseUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewardsUpg.sol/SYBaseWithRewardsUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.json +2 -2
  5. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV3Upg.sol/PendleAuraBalancerStableLPSYV3Upg.dbg.json +1 -1
  6. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol/PendleCornBaseSY.dbg.json +4 -0
  7. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol/PendleCornBaseSY.json +1070 -0
  8. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol/PendleCornBaseSYUpg.dbg.json +4 -0
  9. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol/PendleCornBaseSYUpg.json +1054 -0
  10. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol/PendleCornLBTCSY.dbg.json +4 -0
  11. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol/PendleCornLBTCSY.json +1107 -0
  12. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol/PendleCornPumpBTCSY.dbg.json +4 -0
  13. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol/PendleCornPumpBTCSY.json +1101 -0
  14. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol/PendleCornSolvBTCBBNSYUpg.dbg.json +4 -0
  15. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol/PendleCornSolvBTCBBNSYUpg.json +1111 -0
  16. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol/PendleCornUniBTCSYUpg.dbg.json +4 -0
  17. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol/PendleCornUniBTCSYUpg.json +1124 -0
  18. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.json +2 -2
  20. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.json +2 -2
  22. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.json +15 -2
  24. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.json +2 -2
  26. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.json +2 -2
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.json +2 -2
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.json +2 -2
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.json +2 -2
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.json +2 -2
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol/PendleKarakVaultSYBaseUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.json +2 -2
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.json +2 -2
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.json +2 -2
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol/PendleLBTCSY.dbg.json +4 -0
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol/PendleLBTCSY.json +1068 -0
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC20SYUpg.sol/PendleMellowVaultERC20SYUpg.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC20SYUpg.sol/PendleMellowVaultERC20SYUpg.json +2 -2
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.json +2 -2
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultSYBaseUpg.sol/PendleMellowVaultSYBaseUpg.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultSYBaseUpg.sol/PendleMellowVaultSYBaseUpg.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultWstETHSYUpg.sol/PendleMellowVaultWstETHSYUpg.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultWstETHSYUpg.sol/PendleMellowVaultWstETHSYUpg.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol/PendlePumpHelperLib.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol/PendlePumpHelperLib.json +10 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol/PendleSolvBTCBBNSYUpg.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol/PendleSolvBTCBBNSYUpg.json +1072 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol/PendleSolvHelper.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol/PendleSolvHelper.json +115 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeERC20SY.sol/PendleZtakeERC20SY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeERC20SY.sol/PendleZtakeERC20SY.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeEzETHSY.sol/PendleZtakeEzETHSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeEzETHSY.sol/PendleZtakeEzETHSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeRsETHSY.sol/PendleZtakeRsETHSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeRsETHSY.sol/PendleZtakeRsETHSY.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeUSDESY.sol/PendleZtakeUSDESY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeUSDESY.sol/PendleZtakeUSDESY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeWeETHSY.sol/PendleZtakeWeETHSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeWeETHSY.sol/PendleZtakeWeETHSY.json +2 -2
  81. package/build/artifacts/contracts/interfaces/Corn/ICornSilo.sol/ICornSilo.dbg.json +4 -0
  82. package/build/artifacts/contracts/interfaces/Corn/ICornSilo.sol/ICornSilo.json +59 -0
  83. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +0 -188
  86. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +0 -188
  90. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/Pump/IPumpStaking.sol/IPumpStaking.dbg.json +4 -0
  92. package/build/artifacts/contracts/interfaces/Pump/IPumpStaking.sol/IPumpStaking.json +76 -0
  93. package/build/artifacts/contracts/interfaces/Solv/ISolvERC3525.sol/ISolvERC3525.dbg.json +4 -0
  94. package/build/artifacts/contracts/interfaces/Solv/ISolvERC3525.sol/ISolvERC3525.json +24 -0
  95. package/build/artifacts/contracts/interfaces/Solv/ISolvOpenFundMarket.sol/ISolvOpenFundMarket.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/Solv/ISolvOpenFundMarket.sol/ISolvOpenFundMarket.json +165 -0
  97. package/build/artifacts/contracts/interfaces/Solv/ISolvOracle.sol/ISolvOracle.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/Solv/ISolvOracle.sol/ISolvOracle.json +100 -0
  99. package/build/artifacts/contracts/interfaces/Solv/ISolvRouter.sol/ISolvRouter.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/Solv/ISolvRouter.sol/ISolvRouter.json +35 -0
  101. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  102. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  103. package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +4 -0
  104. package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.json +24 -0
  105. package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +4 -0
  106. package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.json +24 -0
  107. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  108. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  109. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -190
  111. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  113. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  115. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  117. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  119. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +4 -0
  120. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.json +40 -0
  121. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
  122. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +73 -0
  123. package/contracts/core/StandardizedYield/SYBaseUpg.sol +1 -0
  124. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol +105 -0
  125. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol +112 -0
  126. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol +15 -0
  127. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol +80 -0
  128. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol +47 -0
  129. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol +48 -0
  130. package/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol +6 -4
  131. package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol +92 -0
  132. package/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol +32 -0
  133. package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol +103 -0
  134. package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol +47 -0
  135. package/contracts/interfaces/Corn/ICornSilo.sol +8 -0
  136. package/contracts/interfaces/IPActionMiscV3.sol +0 -24
  137. package/contracts/interfaces/Pump/IPumpStaking.sol +14 -0
  138. package/contracts/interfaces/Solv/ISolvERC3525.sol +13 -0
  139. package/contracts/interfaces/Solv/ISolvOpenFundMarket.sol +46 -0
  140. package/contracts/interfaces/Solv/ISolvOracle.sol +10 -0
  141. package/contracts/interfaces/Solv/ISolvRouter.sol +6 -0
  142. package/contracts/oracles/PendleBoringOneracle.sol +11 -0
  143. package/contracts/oracles/PendleBoringSolvBTCOneracle.sol +11 -0
  144. package/contracts/router/ActionMiscV3.sol +2 -140
  145. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +0 -7
  146. package/contracts/router/swap-aggregator/PendleSwap.sol +16 -24
  147. package/deployments/1-core.json +3 -3
  148. package/deployments/1-markets/CORN-LBTC-MAINNET-DEC2024.json +14 -0
  149. package/deployments/1-markets/CORN-PUMPBTC-MAINNET-DEC2024.json +14 -0
  150. package/deployments/1-markets/CORN-SOLVBTCBBN-MAINNET-DEC2024.json +14 -0
  151. package/deployments/1-markets/CORN-UNIBTC-MAINNET-DEC2024.json +14 -0
  152. package/deployments/1-markets/KARAK-SUSDE-MAINNET-JAN2025.json +14 -0
  153. package/deployments/1-markets/KARAK-USDE-MAINNET-JAN2025.json +14 -0
  154. package/deployments/1-markets/KARAK-WEETH-MAINNET-DEC2024.json +14 -0
  155. package/deployments/1-markets/MELLOW-ENA-MAINNET-MAR2025.json +14 -0
  156. package/deployments/1-markets/MELLOW-SUSDE-MAINNET-MAR2025.json +14 -0
  157. package/deployments/1-markets/PUFETH-MAINNET-DEC2024.json +14 -0
  158. package/deployments/1-markets/RSWETH-MAINNET-DEC2024.json +14 -0
  159. package/deployments/1-markets/SUSDE-MAINNET-MAR2025.json +14 -0
  160. package/deployments/1-markets/UNIETH-MAINNET-DEC2024.json +14 -0
  161. package/deployments/1-markets/USDE-MAINNET-MAR2025.json +14 -0
  162. package/deployments/1-markets/WEETHK-MAINNET-DEC2024.json +14 -0
  163. package/deployments/10-core.json +2 -2
  164. package/deployments/42161-core.json +2 -2
  165. package/deployments/5000-core.json +2 -2
  166. package/deployments/56-core.json +2 -2
  167. package/deployments/merkle-distribution/2024-08-29.json +21525 -0
  168. package/package.json +1 -1
  169. package/typechain-types/ActionMiscV3.ts +0 -150
  170. package/typechain-types/ICornSilo.ts +146 -0
  171. package/typechain-types/IKyberScalingHelper.ts +108 -0
  172. package/typechain-types/IPActionMiscV3.ts +0 -150
  173. package/typechain-types/IPAllActionV3.ts +0 -150
  174. package/typechain-types/IPumpStaking.ts +189 -0
  175. package/typechain-types/ISolvERC3525.ts +87 -0
  176. package/typechain-types/ISolvOpenFundMarket.ts +201 -0
  177. package/typechain-types/ISolvOracle.ts +231 -0
  178. package/typechain-types/ISolvRouter.ts +110 -0
  179. package/typechain-types/PendleBoringOneracle.ts +87 -0
  180. package/typechain-types/PendleBoringSolvBTCOneracle.ts +87 -0
  181. package/typechain-types/PendleCornBaseSY.ts +1384 -0
  182. package/typechain-types/PendleCornBaseSYUpg.ts +1384 -0
  183. package/typechain-types/PendleCornLBTCSY.ts +1410 -0
  184. package/typechain-types/PendleCornPumpBTCSY.ts +1410 -0
  185. package/typechain-types/PendleCornSolvBTCBBNSYUpg.ts +1457 -0
  186. package/typechain-types/PendleCornUniBTCSYUpg.ts +1464 -0
  187. package/typechain-types/PendleEBTCSY.ts +13 -0
  188. package/typechain-types/PendleLBTCSY.ts +1362 -0
  189. package/typechain-types/PendleSolvBTCBBNSYUpg.ts +1409 -0
  190. package/typechain-types/PendleSolvHelper.ts +220 -0
  191. package/typechain-types/PendleSwap.ts +21 -0
  192. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  193. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -189
  194. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  195. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  196. package/typechain-types/factories/AuraWethVethSYUpg__factory.ts +1 -1
  197. package/typechain-types/factories/ICornSilo__factory.ts +71 -0
  198. package/typechain-types/factories/IKyberScalingHelper__factory.ts +55 -0
  199. package/typechain-types/factories/IPActionMiscV3__factory.ts +0 -188
  200. package/typechain-types/factories/IPAllActionV3__factory.ts +0 -188
  201. package/typechain-types/factories/IPumpStaking__factory.ts +88 -0
  202. package/typechain-types/factories/ISolvERC3525__factory.ts +36 -0
  203. package/typechain-types/factories/ISolvOpenFundMarket__factory.ts +180 -0
  204. package/typechain-types/factories/ISolvOracle__factory.ts +112 -0
  205. package/typechain-types/factories/ISolvRouter__factory.ts +47 -0
  206. package/typechain-types/factories/PendleBoringOneracle__factory.ts +81 -0
  207. package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +83 -0
  208. package/typechain-types/factories/PendleCornBaseSYUpg__factory.ts +1069 -0
  209. package/typechain-types/factories/PendleCornBaseSY__factory.ts +1085 -0
  210. package/typechain-types/factories/PendleCornLBTCSY__factory.ts +1168 -0
  211. package/typechain-types/factories/PendleCornPumpBTCSY__factory.ts +1154 -0
  212. package/typechain-types/factories/PendleCornSolvBTCBBNSYUpg__factory.ts +1168 -0
  213. package/typechain-types/factories/PendleCornUniBTCSYUpg__factory.ts +1181 -0
  214. package/typechain-types/factories/PendleEBTCSY__factory.ts +14 -1
  215. package/typechain-types/factories/PendleERC20SYUpg__factory.ts +1 -1
  216. package/typechain-types/factories/PendleERC4626SYUpg__factory.ts +1 -1
  217. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  218. package/typechain-types/factories/PendleHlpSY__factory.ts +1 -1
  219. package/typechain-types/factories/PendleKarakVaultERC20SY__factory.ts +1 -1
  220. package/typechain-types/factories/PendleKarakVaultEzETHSY__factory.ts +1 -1
  221. package/typechain-types/factories/PendleKarakVaultSUSDESY__factory.ts +1 -1
  222. package/typechain-types/factories/PendleKarakVaultUSDESY__factory.ts +1 -1
  223. package/typechain-types/factories/PendleKarakVaultWEETHSY__factory.ts +1 -1
  224. package/typechain-types/factories/PendleKyberElasticSYUpg__factory.ts +1 -1
  225. package/typechain-types/factories/PendleLBTCSY__factory.ts +1126 -0
  226. package/typechain-types/factories/PendleMellowVaultERC20SYUpg__factory.ts +1 -1
  227. package/typechain-types/factories/PendleMellowVaultERC4626SYUpg__factory.ts +1 -1
  228. package/typechain-types/factories/PendleMellowVaultSYBaseUpg__factory.ts +1 -1
  229. package/typechain-types/factories/PendleMellowVaultWstETHSYUpg__factory.ts +1 -1
  230. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  231. package/typechain-types/factories/PendlePufStETHSY__factory.ts +1 -1
  232. package/typechain-types/factories/PendlePufWETHSY__factory.ts +1 -1
  233. package/typechain-types/factories/PendleSUSDEMantleSY__factory.ts +1 -1
  234. package/typechain-types/factories/PendleSolvBTCBBNSYUpg__factory.ts +1129 -0
  235. package/typechain-types/factories/PendleSolvHelper__factory.ts +168 -0
  236. package/typechain-types/factories/PendleStTAOSY__factory.ts +1 -1
  237. package/typechain-types/factories/PendleSwap__factory.ts +9 -12
  238. package/typechain-types/factories/PendleUSDEL2SY__factory.ts +1 -1
  239. package/typechain-types/factories/PendleWEEthkSY__factory.ts +1 -1
  240. package/typechain-types/factories/PendleWEEthsSY__factory.ts +1 -1
  241. package/typechain-types/factories/PendleZtakeERC20SY__factory.ts +1 -1
  242. package/typechain-types/factories/PendleZtakeEzETHSY__factory.ts +1 -1
  243. package/typechain-types/factories/PendleZtakeRsETHSY__factory.ts +1 -1
  244. package/typechain-types/factories/PendleZtakeUSDESY__factory.ts +1 -1
  245. package/typechain-types/factories/PendleZtakeWeETHSY__factory.ts +1 -1
  246. package/typechain-types/factories/Reflector__factory.ts +1 -1
  247. package/typechain-types/hardhat.d.ts +166 -13
  248. package/typechain-types/index.ts +38 -4
  249. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.dbg.json +0 -4
  250. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.json +0 -60
  251. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.dbg.json +0 -4
  252. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.json +0 -60
  253. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.dbg.json +0 -4
  254. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.json +0 -60
  255. /package/deployments/5000-markets/{MNT-MANTLE-SEP2024.json → MNT-MANTLE-OCT2024.json} +0 -0
@@ -0,0 +1,220 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ BaseContract,
6
+ BigNumber,
7
+ BytesLike,
8
+ CallOverrides,
9
+ PopulatedTransaction,
10
+ Signer,
11
+ utils,
12
+ } from "ethers";
13
+ import { FunctionFragment, Result } from "@ethersproject/abi";
14
+ import { Listener, Provider } from "@ethersproject/providers";
15
+ import type {
16
+ TypedEventFilter,
17
+ TypedEvent,
18
+ TypedListener,
19
+ OnEvent,
20
+ } from "./common";
21
+
22
+ export interface PendleSolvHelperInterface extends utils.Interface {
23
+ contractName: "PendleSolvHelper";
24
+ functions: {
25
+ "SOLV_BTCBBN_POOLID()": FunctionFragment;
26
+ "SOLV_BTCBBN_ROUTER()": FunctionFragment;
27
+ "SOLV_BTCBBN_TOKEN()": FunctionFragment;
28
+ "SOLV_BTC_POOLID()": FunctionFragment;
29
+ "SOLV_BTC_ROUTER()": FunctionFragment;
30
+ "SOLV_BTC_TOKEN()": FunctionFragment;
31
+ "SOLV_OPEN_FUND_MARKET()": FunctionFragment;
32
+ "WBTC()": FunctionFragment;
33
+ };
34
+
35
+ encodeFunctionData(
36
+ functionFragment: "SOLV_BTCBBN_POOLID",
37
+ values?: undefined
38
+ ): string;
39
+ encodeFunctionData(
40
+ functionFragment: "SOLV_BTCBBN_ROUTER",
41
+ values?: undefined
42
+ ): string;
43
+ encodeFunctionData(
44
+ functionFragment: "SOLV_BTCBBN_TOKEN",
45
+ values?: undefined
46
+ ): string;
47
+ encodeFunctionData(
48
+ functionFragment: "SOLV_BTC_POOLID",
49
+ values?: undefined
50
+ ): string;
51
+ encodeFunctionData(
52
+ functionFragment: "SOLV_BTC_ROUTER",
53
+ values?: undefined
54
+ ): string;
55
+ encodeFunctionData(
56
+ functionFragment: "SOLV_BTC_TOKEN",
57
+ values?: undefined
58
+ ): string;
59
+ encodeFunctionData(
60
+ functionFragment: "SOLV_OPEN_FUND_MARKET",
61
+ values?: undefined
62
+ ): string;
63
+ encodeFunctionData(functionFragment: "WBTC", values?: undefined): string;
64
+
65
+ decodeFunctionResult(
66
+ functionFragment: "SOLV_BTCBBN_POOLID",
67
+ data: BytesLike
68
+ ): Result;
69
+ decodeFunctionResult(
70
+ functionFragment: "SOLV_BTCBBN_ROUTER",
71
+ data: BytesLike
72
+ ): Result;
73
+ decodeFunctionResult(
74
+ functionFragment: "SOLV_BTCBBN_TOKEN",
75
+ data: BytesLike
76
+ ): Result;
77
+ decodeFunctionResult(
78
+ functionFragment: "SOLV_BTC_POOLID",
79
+ data: BytesLike
80
+ ): Result;
81
+ decodeFunctionResult(
82
+ functionFragment: "SOLV_BTC_ROUTER",
83
+ data: BytesLike
84
+ ): Result;
85
+ decodeFunctionResult(
86
+ functionFragment: "SOLV_BTC_TOKEN",
87
+ data: BytesLike
88
+ ): Result;
89
+ decodeFunctionResult(
90
+ functionFragment: "SOLV_OPEN_FUND_MARKET",
91
+ data: BytesLike
92
+ ): Result;
93
+ decodeFunctionResult(functionFragment: "WBTC", data: BytesLike): Result;
94
+
95
+ events: {};
96
+ }
97
+
98
+ export interface PendleSolvHelper extends BaseContract {
99
+ contractName: "PendleSolvHelper";
100
+ connect(signerOrProvider: Signer | Provider | string): this;
101
+ attach(addressOrName: string): this;
102
+ deployed(): Promise<this>;
103
+
104
+ interface: PendleSolvHelperInterface;
105
+
106
+ queryFilter<TEvent extends TypedEvent>(
107
+ event: TypedEventFilter<TEvent>,
108
+ fromBlockOrBlockhash?: string | number | undefined,
109
+ toBlock?: string | number | undefined
110
+ ): Promise<Array<TEvent>>;
111
+
112
+ listeners<TEvent extends TypedEvent>(
113
+ eventFilter?: TypedEventFilter<TEvent>
114
+ ): Array<TypedListener<TEvent>>;
115
+ listeners(eventName?: string): Array<Listener>;
116
+ removeAllListeners<TEvent extends TypedEvent>(
117
+ eventFilter: TypedEventFilter<TEvent>
118
+ ): this;
119
+ removeAllListeners(eventName?: string): this;
120
+ off: OnEvent<this>;
121
+ on: OnEvent<this>;
122
+ once: OnEvent<this>;
123
+ removeListener: OnEvent<this>;
124
+
125
+ functions: {
126
+ SOLV_BTCBBN_POOLID(overrides?: CallOverrides): Promise<[string]>;
127
+
128
+ SOLV_BTCBBN_ROUTER(overrides?: CallOverrides): Promise<[string]>;
129
+
130
+ SOLV_BTCBBN_TOKEN(overrides?: CallOverrides): Promise<[string]>;
131
+
132
+ SOLV_BTC_POOLID(overrides?: CallOverrides): Promise<[string]>;
133
+
134
+ SOLV_BTC_ROUTER(overrides?: CallOverrides): Promise<[string]>;
135
+
136
+ SOLV_BTC_TOKEN(overrides?: CallOverrides): Promise<[string]>;
137
+
138
+ SOLV_OPEN_FUND_MARKET(overrides?: CallOverrides): Promise<[string]>;
139
+
140
+ WBTC(overrides?: CallOverrides): Promise<[string]>;
141
+ };
142
+
143
+ SOLV_BTCBBN_POOLID(overrides?: CallOverrides): Promise<string>;
144
+
145
+ SOLV_BTCBBN_ROUTER(overrides?: CallOverrides): Promise<string>;
146
+
147
+ SOLV_BTCBBN_TOKEN(overrides?: CallOverrides): Promise<string>;
148
+
149
+ SOLV_BTC_POOLID(overrides?: CallOverrides): Promise<string>;
150
+
151
+ SOLV_BTC_ROUTER(overrides?: CallOverrides): Promise<string>;
152
+
153
+ SOLV_BTC_TOKEN(overrides?: CallOverrides): Promise<string>;
154
+
155
+ SOLV_OPEN_FUND_MARKET(overrides?: CallOverrides): Promise<string>;
156
+
157
+ WBTC(overrides?: CallOverrides): Promise<string>;
158
+
159
+ callStatic: {
160
+ SOLV_BTCBBN_POOLID(overrides?: CallOverrides): Promise<string>;
161
+
162
+ SOLV_BTCBBN_ROUTER(overrides?: CallOverrides): Promise<string>;
163
+
164
+ SOLV_BTCBBN_TOKEN(overrides?: CallOverrides): Promise<string>;
165
+
166
+ SOLV_BTC_POOLID(overrides?: CallOverrides): Promise<string>;
167
+
168
+ SOLV_BTC_ROUTER(overrides?: CallOverrides): Promise<string>;
169
+
170
+ SOLV_BTC_TOKEN(overrides?: CallOverrides): Promise<string>;
171
+
172
+ SOLV_OPEN_FUND_MARKET(overrides?: CallOverrides): Promise<string>;
173
+
174
+ WBTC(overrides?: CallOverrides): Promise<string>;
175
+ };
176
+
177
+ filters: {};
178
+
179
+ estimateGas: {
180
+ SOLV_BTCBBN_POOLID(overrides?: CallOverrides): Promise<BigNumber>;
181
+
182
+ SOLV_BTCBBN_ROUTER(overrides?: CallOverrides): Promise<BigNumber>;
183
+
184
+ SOLV_BTCBBN_TOKEN(overrides?: CallOverrides): Promise<BigNumber>;
185
+
186
+ SOLV_BTC_POOLID(overrides?: CallOverrides): Promise<BigNumber>;
187
+
188
+ SOLV_BTC_ROUTER(overrides?: CallOverrides): Promise<BigNumber>;
189
+
190
+ SOLV_BTC_TOKEN(overrides?: CallOverrides): Promise<BigNumber>;
191
+
192
+ SOLV_OPEN_FUND_MARKET(overrides?: CallOverrides): Promise<BigNumber>;
193
+
194
+ WBTC(overrides?: CallOverrides): Promise<BigNumber>;
195
+ };
196
+
197
+ populateTransaction: {
198
+ SOLV_BTCBBN_POOLID(
199
+ overrides?: CallOverrides
200
+ ): Promise<PopulatedTransaction>;
201
+
202
+ SOLV_BTCBBN_ROUTER(
203
+ overrides?: CallOverrides
204
+ ): Promise<PopulatedTransaction>;
205
+
206
+ SOLV_BTCBBN_TOKEN(overrides?: CallOverrides): Promise<PopulatedTransaction>;
207
+
208
+ SOLV_BTC_POOLID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
209
+
210
+ SOLV_BTC_ROUTER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
211
+
212
+ SOLV_BTC_TOKEN(overrides?: CallOverrides): Promise<PopulatedTransaction>;
213
+
214
+ SOLV_OPEN_FUND_MARKET(
215
+ overrides?: CallOverrides
216
+ ): Promise<PopulatedTransaction>;
217
+
218
+ WBTC(overrides?: CallOverrides): Promise<PopulatedTransaction>;
219
+ };
220
+ }
@@ -39,14 +39,23 @@ export type SwapDataStructOutput = [number, string, string, boolean] & {
39
39
  export interface PendleSwapInterface extends utils.Interface {
40
40
  contractName: "PendleSwap";
41
41
  functions: {
42
+ "KYBER_SCALING_HELPER()": FunctionFragment;
42
43
  "swap(address,uint256,(uint8,address,bytes,bool))": FunctionFragment;
43
44
  };
44
45
 
46
+ encodeFunctionData(
47
+ functionFragment: "KYBER_SCALING_HELPER",
48
+ values?: undefined
49
+ ): string;
45
50
  encodeFunctionData(
46
51
  functionFragment: "swap",
47
52
  values: [string, BigNumberish, SwapDataStruct]
48
53
  ): string;
49
54
 
55
+ decodeFunctionResult(
56
+ functionFragment: "KYBER_SCALING_HELPER",
57
+ data: BytesLike
58
+ ): Result;
50
59
  decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result;
51
60
 
52
61
  events: {};
@@ -80,6 +89,8 @@ export interface PendleSwap extends BaseContract {
80
89
  removeListener: OnEvent<this>;
81
90
 
82
91
  functions: {
92
+ KYBER_SCALING_HELPER(overrides?: CallOverrides): Promise<[string]>;
93
+
83
94
  swap(
84
95
  tokenIn: string,
85
96
  amountIn: BigNumberish,
@@ -88,6 +99,8 @@ export interface PendleSwap extends BaseContract {
88
99
  ): Promise<ContractTransaction>;
89
100
  };
90
101
 
102
+ KYBER_SCALING_HELPER(overrides?: CallOverrides): Promise<string>;
103
+
91
104
  swap(
92
105
  tokenIn: string,
93
106
  amountIn: BigNumberish,
@@ -96,6 +109,8 @@ export interface PendleSwap extends BaseContract {
96
109
  ): Promise<ContractTransaction>;
97
110
 
98
111
  callStatic: {
112
+ KYBER_SCALING_HELPER(overrides?: CallOverrides): Promise<string>;
113
+
99
114
  swap(
100
115
  tokenIn: string,
101
116
  amountIn: BigNumberish,
@@ -107,6 +122,8 @@ export interface PendleSwap extends BaseContract {
107
122
  filters: {};
108
123
 
109
124
  estimateGas: {
125
+ KYBER_SCALING_HELPER(overrides?: CallOverrides): Promise<BigNumber>;
126
+
110
127
  swap(
111
128
  tokenIn: string,
112
129
  amountIn: BigNumberish,
@@ -116,6 +133,10 @@ export interface PendleSwap extends BaseContract {
116
133
  };
117
134
 
118
135
  populateTransaction: {
136
+ KYBER_SCALING_HELPER(
137
+ overrides?: CallOverrides
138
+ ): Promise<PopulatedTransaction>;
139
+
119
140
  swap(
120
141
  tokenIn: string,
121
142
  amountIn: BigNumberish,
@@ -2689,7 +2689,7 @@ const _abi = [
2689
2689
  ];
2690
2690
 
2691
2691
  const _bytecode =
2692
- "0x6080806040523461001757615a9190816200001d8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816312599ac614611c7c575080632756ce0614611a395780633dbe1c55146119225780634e390267146116bb57806358bda475146113fe57806360da086014610ea45780636b77ac9e14610c11578063844384aa14610b2b57806397ee279e14610935578063b00f09d714610737578063b7d75b8b146105cd5763d13b4fdc146100a357600080fd5b346102e2576100b136612048565b91809391936105b3575b6000926040517f2f13b60c0000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b0388165afa9081156102ef57600091610584575b50156103625750604051630b2339af60e21b81526060816004816001600160a01b0387165afa80156102ef576001600160a01b0391600091610330575b5016604051907ff6b911bc0000000000000000000000000000000000000000000000000000000082526040828061019c86858c600485016040919493929460608201956001600160a01b0380921683521660208201520152565b038160006001600160a01b0389165af19081156102ef5760009283926102fb575b506020906024604051809581937fbcb7ea5d0000000000000000000000000000000000000000000000000000000083526001600160a01b038d1660048401525af19081156102ef576000916102b4575b61021792506123ea565b935b841061026b576001600160a01b03806040968751938452866020850152169216907fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761863392a482519182526020820152f35b60405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f53595f4f55540000006044820152606490fd5b0390fd5b90506020823d6020116102e7575b816102cf602093836121f3565b810103126102e25761021791519061020d565b600080fd5b3d91506102c2565b6040513d6000823e3d90fd5b60209192506103219060403d604011610329575b61031981836121f3565b8101906122fb565b5091906101bd565b503d61030f565b610352915060603d60601161035b575b61034a81836121f3565b810190612234565b91505038610142565b503d610340565b6103c5935060408261037483866123f7565b82517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b03808b1660048301529091166024820152604481019190915294859081906064820190565b038160006001600160a01b0388165af19384156102ef57600090600095610560575b5060009160009560405190630b2339af60e21b82526060826004816001600160a01b038b165afa9182156102ef5760009261053c575b50809260019261042c82612e85565b156104fe575b50505061044b575b5090610445916123ea565b93610219565b604080516000815292969261049792610463826121bb565b825193849283927f29910b110000000000000000000000000000000000000000000000000000000084528d60048501612377565b038160006001600160a01b038a165af19283156102ef57610445936104d2926000906000926104da575b506104cc91926123ea565b926123ea565b94909161043a565b6104cc92506104f8915060403d6040116103295761031981836121f3565b916104c1565b919550925061051c9397506001600160a01b039150169283896130da565b90969193919291828783156104325761053492613885565b388087610432565b61055691925060603d60601161035b5761034a81836121f3565b509050903861041d565b905061057c91945060403d6040116103295761031981836121f3565b9390386103e7565b6105a6915060203d6020116105ac575b61059e81836121f3565b810190613d37565b38610105565b503d610594565b6105c88183336001600160a01b03821661439f565b6100bb565b346102e2576105db36612131565b926001600160a01b03949192858216918180610725575b5050604080517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482018190526024820152604481018390529590866064816000875af19485156102ef576000966000966106fe575b50861061026b5784106106b9577fd9f35a37b64d95edfd8f26adf130ce45f3e9ddf3c7ab8c1fb7224727a339a98e6040968751941693806106aa88883396846040919493926060820195825260208201520152565b0390a482519182526020820152f35b60405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f50545f4f55540000006044820152606490fd5b90955061071b91965060403d6040116103295761031981836121f3565b9590959488610655565b61073091338561439f565b86816105f2565b346102e25760031960a0813601126102e257610751612008565b9061075a61201e565b604435926064359267ffffffffffffffff84116102e25760a0908460040194360301126102e2576001600160a01b03938483169260405190630b2339af60e21b8252606082600481885afa9081156102ef578792600092610912575b508380610900575b50501692604051927ff6b911bc0000000000000000000000000000000000000000000000000000000084526040848061081a86858a600485016040919493929460608201956001600160a01b0380921683521660208201520152565b03816000865af19687156102ef576000946000986108d9575b5060843588106106b957877f5349e52482e38bcf6018163f5f871bbae5e00e667aa8e7c531b74c07d5397f92916108786108728a896108d59b88613dcc565b99612275565b16946108b5878a604051948594339886919260809396959491966001600160a01b0360a08501981684526020840152604083015260608201520152565b0390a4604051938493846040919493926060820195825260208201520152565b0390f35b9097506108f691945060403d6040116103295761031981836121f3565b9390939688610833565b61090b91338861439f565b87836107be565b61092c91925060603d60601161035b5761034a81836121f3565b505090886107b6565b346102e25761094336612131565b919290936001600160a01b03928383169060405196630b2339af60e21b88526060968789600481875afa9182156102ef57600099600093610b01575b50906109969161098e88612778565b9142926128c1565b979150998792508a8281610aec575b50505081610ad7575b50506040517f156e29f60000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810189905260448101869052905086816064816000875af19687156102ef57600097610aa6575b50508510610a61576108d5936040519216917f9334566f6358cd68e33d423fb1c9119c6837e3a2a7a8affaaa5020ed06aec0693391806108b589888c846040919493926060820195825260208201520152565b60405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f4c505f4f55540000006044820152606490fd5b610ac6929750803d10610ad0575b610abe81836121f3565b810190612289565b5050948780610a0e565b503d610ab4565b610ae4928833911661439f565b8784816109ae565b610af9928b33911661439f565b8a8a826109a5565b610996929a50610b1f919350893d8b1161035b5761034a81836121f3565b5099909992909161097f565b346102e257610b3936612131565b936001600160a01b03929192948585169060405190630b2339af60e21b8252606082600481865afa9586156102ef57856108d597610bb5947f890839d8cbce575f9d1ee3d55bc4d466623de60742c7ad665958f8a9916a54a59a838d600093600095610be6575b5090610baf9133908516613f6f565b88612bb3565b9491969097604051941693806108b58a8a893397859094939260609260808301968352602083015260408201520152565b610c06919550610baf92945060603d60601161035b5761034a81836121f3565b959194929050610ba0565b346102e257610c1f366120a5565b6001600160a01b039493929490838286169381610e93575b604089610c44858a6123f7565b82517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911660248201526044810193909352826064816000895af19182156102ef57600090600093610e6f575b50600093600098604051630b2339af60e21b81526060816004818c5afa9384156102ef57600091600095610e4a575b508093600192610ce182612e85565b15610e17575b505050610d45575b5050505090610cfd916123ea565b9485106106b957604095865193845285602085015216917fac97b87f5422fa3beec99bff8f336310d8ebc7d33d909b7d534cd7c72f61e871863392a482519182526020820152f35b90610d6b610d63610d5d610d739695949c979c612778565b9361394e565b9336906122a4565b924292614ace565b50916040519060008252610d86826121bb565b6040848b610dc0835195869384937f5b709f1700000000000000000000000000000000000000000000000000000000855260048501612377565b038160008a5af180156102ef57610cfd94610de793600092610df257506104cc91926123ea565b959091898080610cef565b6104cc9250610e0f9060403d6040116103295761031981836121f3565b9050916104c1565b8a169c50929750610e2c935090508a8d6130da565b909a91969183838315610ce757610e4292613885565b8d8083610ce7565b909450610e66915060603d60601161035b5761034a81836121f3565b9490508e610cd2565b9050610e8b91925060403d6040116103295761031981836121f3565b91908a610ca3565b610e9f8288338861439f565b610c37565b346102e25760031960a0813601126102e257610ebe612008565b610ec661201e565b906064359167ffffffffffffffff938484116102e25760a08185360301126102e2576084359485116102e25760a09085360301126102e25760405191630b2339af60e21b83526060836004816001600160a01b0386165afa9283156102ef576000936113db575b506044356113bf575b6040517f2f13b60c00000000000000000000000000000000000000000000000000000000815260009560209182816004816001600160a01b0389165afa9081156102ef576000916113a2575b50156111925750604051630b2339af60e21b81526060816004816001600160a01b0388165afa80156102ef576001600160a01b0391600091611170575b50604080517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015293909216808416602484015260448035908401529392829060649082906000908a165af19081156102ef576000938391859361114e575b506024604051809681937fbcb7ea5d0000000000000000000000000000000000000000000000000000000083526001600160a01b038c1660048401525af19182156102ef5760009261111c575b5061108692506123ea565b915b6001831061026b576001600160a01b036110b96110b06108d59686848a600401921687613dcc565b96600401612275565b16917f5258a3c624debb1cc84b0f5f66c73eef048832eeebe7178e63e95a53cf28dc946001600160a01b03604051931692806108b5878a33966044359085909493926060926001600160a01b036080840197168352602083015260408201520152565b90915082813d8311611147575b61113381836121f3565b810103126102e2576110869151908861107b565b503d611129565b61116891935060403d6040116103295761031981836121f3565b50918a61102e565b611189915060603d60601161035b5761034a81836121f3565b91505088610fbf565b9550506111f860406111a787600401856123f7565b81517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301529091166024820152604480359082015291829081906064820190565b038160006001600160a01b0388165af19081156102ef57600090600092611380575b5060009160009760405190630b2339af60e21b82526060826004816001600160a01b038b165afa9182156102ef5760009261135c575b508260019261126183600401612e85565b15611311575b505050611280575b509061127a916123ea565b91611088565b60408051600081529298926112d592611298826121bb565b825193849283927f29910b110000000000000000000000000000000000000000000000000000000084526001600160a01b038c1660048501612377565b038160006001600160a01b038a165af19283156102ef5761127a93611309926000906000926104da57506104cc91926123ea565b96909161126f565b919550925061133c9399506001600160a01b039150169260040190836001600160a01b0388166130da565b90989193919291828783156112675761135492613885565b898087611267565b61137691925060603d60601161035b5761034a81836121f3565b509050908a611250565b905061139b915060403d6040116103295761031981836121f3565b908761121a565b6113b99150833d85116105ac5761059e81836121f3565b88610f82565b6113d660443583336001600160a01b03821661439f565b610f36565b6113f591935060603d60601161035b5761034a81836121f3565b50509185610f2d565b346102e25761140c366120a5565b9290939160405194630b2339af60e21b86526060866004816001600160a01b0388165afa9081156102ef57600096600092611695575b5061144d86866123f7565b848061167a575b5050600091849760009761146781612e85565b15611637575b50509061149b91878961149361148b6114858b612778565b9461394e565b9436906122a4565b9342936140e3565b5050906114e660408051600081526114b2816121bb565b8151809381927f5b709f17000000000000000000000000000000000000000000000000000000008352878b60048501612377565b038160006001600160a01b038b165af19788156102ef57611578986060946115289360009060009361160d575b50611522906104cc93946123dd565b996123ea565b9560405197889283927f156e29f60000000000000000000000000000000000000000000000000000000084528b600485016040919493926001600160a01b03606083019616825260208201520152565b038160006001600160a01b0388165af19485156102ef576000956115ea575b508410610a61576001600160a01b03806040968751938452866020850152169216907fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa5863392a482519182526020820152f35b61160491955060603d606011610ad057610abe81836121f3565b50509386611597565b6104cc9350611522915061162f9060403d6040116103295761031981836121f3565b935090611513565b81995061149b939298506116729450866001600160a01b0361165a9316896130da565b50989198949098886001600160a01b03829c16613885565b90918a61146d565b61168e91336001600160a01b038b1661439f565b8884611454565b9096506116b1915060603d60601161035b5761034a81836121f3565b9196905088611442565b346102e2576116c9366120a5565b9290939160009360405190630b2339af60e21b82526060826004816001600160a01b0389165afa9687156102ef57611795976000936000916118fc575b5061171183886123f7565b86806118e1575b90509360009361172781612e85565b1561189f575b50509061174d91838561174561148b6114858c612778565b9342936139e8565b5050916040805160008152611761816121bb565b8151809a81927f29910b11000000000000000000000000000000000000000000000000000000008352878b60048501612377565b038160006001600160a01b038b165af180156102ef576117dc9860609461152893600092600094611871575b506117d692916117d0916123dd565b946123ea565b976123ea565b038160006001600160a01b0388165af19485156102ef5760009561184e575b508410610a61576001600160a01b03806040968751938452866020850152169216907fc87b85efc5055ef177e0092af0d4e624fff4b1d57db748857f65e4b7e4a28a36863392a482519182526020820152f35b61186891955060603d606011610ad057610abe81836121f3565b505093866117fb565b6117d09194506117d693506118949060403d6040116103295761031981836121f3565b9490939091506117c1565b61174d939299508195506118d99450876001600160a01b036118c293168a6130da565b509991949094896001600160a01b03829816613885565b90918b61172d565b6118f591336001600160a01b03881661439f565b8a86611718565b905061191891935060603d60601161035b5761034a81836121f3565b939150928a611706565b61192b36612048565b939291906001600160a01b03938484169160405193630b2339af60e21b8552606085600481875afa9586156102ef576108d596600096600091611a0a575b509061198793929161197e8b8b8a1630612476565b97889287612bb3565b9391969097602061199782612275565b918360405196168652013560208501528760408501528860608501528460808501528560a085015216917fa9b749795680682fbc5a34071e19282bbb23496a8cf9bbd99bf941359bbe65bf60c03392a4604051948594859094939260609260808301968352602083015260408201520152565b6119879493929750611a2b915060603d60601161035b5761034a81836121f3565b979190509690919293611969565b60031960a0813601126102e257611a4e612008565b90611a5761201e565b916044359267ffffffffffffffff84116102e25760a0846004019385360301126102e2576001600160a01b039182821660405195630b2339af60e21b87526060958688600481865afa9788156102ef57600090600099611c53575b508187611ac0921687612476565b94611ad9611acd82612778565b429088606435916128c1565b9b9250809391508803611c0f57611b47928a928c809381611bfa575b50505060405193849283927f156e29f60000000000000000000000000000000000000000000000000000000084528a600485016040919493926001600160a01b03606083019616825260208201520152565b03816000885af19788156102ef57600098611bd9575b50506084358710610a61576108d595611b967f8969c3e485cb9f3b23622228064bc63e7350f6cf343dd86ab86169041a91eaae92612275565b6108b5878a8c60405195869516996024339901359086919260809396959491966001600160a01b0360a08501981684526020840152604083015260608201520152565b611bf0929850803d10610ad057610abe81836121f3565b5050958880611b5d565b611c07928d33911661439f565b8c8281611af5565b606460405162461bcd60e51b815260206004820152601960248201527f536c6970706167653a204e4f545f414c4c5f53595f55534544000000000000006044820152fd5b879950611ac09150611c7283918a3d8c1161035b5761034a81836121f3565b509a509150611ab2565b60031990610140823601126102e257611c93612008565b611c9b61201e565b60a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126102e25767ffffffffffffffff908161010435116102e25760a08561010435360301126102e25761012435948286116102e25760a0908660040196360301126102e2576001600160a01b03630b2339af60e21b85526060856004818486165afa9283156102ef57600095600094611fdf575b50611d5382611d4289866123f7565b971696876101043560040191612476565b936000918597600099611d6581612e85565b15611fb3575b5050611d7f611d7986612778565b9261394e565b91604051918260a08101109060a084011117611f84578989611dce9460a085016040526064358552608435602086015260a435604086015260c435606086015260e435608086015242936140e3565b505090611e196040805160008152611de5816121bb565b8151809381927f5b709f17000000000000000000000000000000000000000000000000000000008352878a60048501612377565b03816000888a165af19788156102ef57611ea498606094611e5493600090600093611f5a575b50611e4e906104cc93946123dd565b9b6123ea565b9760405197889283927f156e29f600000000000000000000000000000000000000000000000000000000845289600485016040919493926001600160a01b03606083019616825260208201520152565b038160008587165af19485156102ef57600095611f37575b506044358510610a61576108d5937f387bf301bf673df0120e2d57e639f0e05e5e03d5336577c4cd83c1bff96e8dee611efa61010435600401612275565b604080516001600160a01b0390941684526101043560240135602085015283018890526060830186905283169390921691339180608081016108b5565b611f5191955060603d606011610ad057610abe81836121f3565b50509386611ebc565b6104cc9350611e4e9150611f7c9060403d6040116103295761031981836121f3565b935090611e3f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b909850611fc9919950611fd893508689876130da565b5099919993909986819a613885565b8980611d6b565b909350611ffc91955060603d60601161035b5761034a81836121f3565b95919050949287611d33565b600435906001600160a01b03821682036102e257565b602435906001600160a01b03821682036102e257565b35906001600160a01b03821682036102e257565b9060031960a0818401126102e2576001600160a01b039260043584811681036102e2579360243590811681036102e2579260443592606435926084359167ffffffffffffffff83116102e2578260a0920301126102e25760040190565b60031991610140838301126102e2576001600160a01b039260043584811681036102e2579360243590811681036102e25792604435926064359260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c8401126102e257608492610124359167ffffffffffffffff83116102e2578260a0920301126102e25760040190565b60031960a09101126102e2576001600160a01b039060043582811681036102e2579160243590811681036102e25790604435906064359060843590565b67ffffffffffffffff8111611f8457604052565b610120810190811067ffffffffffffffff821117611f8457604052565b60c0810190811067ffffffffffffffff821117611f8457604052565b6020810190811067ffffffffffffffff821117611f8457604052565b6080810190811067ffffffffffffffff821117611f8457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611f8457604052565b908160609103126102e2578051916001600160a01b039283811681036102e25792602083015181811681036102e25760409093015190811681036102e25790565b356001600160a01b03811681036102e25790565b908160609103126102e2578051916040602083015192015190565b91908260a09103126102e25760405160a0810181811067ffffffffffffffff821117611f84576040526080808294803584526020810135602085015260408101356040850152606081013560608501520135910152565b91908260409103126102e2576020825192015190565b60005b8381106123245750506000910152565b8181015183820152602001612314565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361237081518092818752878088019101612311565b0116010190565b61239c93926001600160a01b0360609316825260208201528160408201520190612334565b90565b9060001982019182116123ae57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082039182116123ae57565b919082018092116123ae57565b9061240190612e85565b61239c57503090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81813603018212156102e2570190565b6004111561244757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91906080820192612487848461240a565b936000943560048110156127745761249e8161243d565b8061259c57505090608460209260406124b686612275565b6124c68688013580923390613f6f565b955b016001600160a01b038094816124dd84612275565b16612592576124ff88935b6124fa836124f583612275565b6143fc565b612275565b9782604051998a9889977f20e8c565000000000000000000000000000000000000000000000000000000008952166004880152166024860152604485015260016064850152165af19182156125865791612557575090565b90506020813d60201161257e575b81612572602093836121f3565b810103126102e2575190565b3d9150612565565b604051903d90823e3d90fd5b6124ff89936124e8565b806125a860039261243d565b036125f3575090608460209260406125bf86612275565b6125cf8688013580923390613f6f565b6125ed816125dc89612275565b6125e7858b01612275565b90614031565b956124c8565b6001600160a01b038061260586612275565b1661273657602085013534036126f2575b8061262360608701612275565b169061262e86612275565b166126eb576020850135915b61264d61264687612275565b918761240a565b92823b156126e75791612698939188936040518096819582947f2bdb823c00000000000000000000000000000000000000000000000000000000845260208d01359060048501613d4f565b03925af180156126dc576126c3575b5090608460209260406125ed6126be828801612275565b613fa0565b60209291946126d360849261216e565b949192506126a7565b6040513d87823e3d90fd5b8780fd5b859161263a565b606460405162461bcd60e51b815260206004820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b8061274086612275565b1661274d60608701612275565b60208701359081612761575b505050612616565b61276c92339061439f565b388080612759565b8580fd5b6040805161278581612182565b60009283825283602083015283838301528360608301528360808301528360a08301528360c08301528360e083015283610100809301526001600160a01b0380948451927f794052f300000000000000000000000000000000000000000000000000000000845230600485015283602481610120998a94165afa9586156128b5578196612816575b50505050505090565b9091928094959650813d83116128ae575b61283181836121f3565b810103126128ab5784519461284586612182565b83518652602084015160208701528084015190860152606083015191821682036128ab575090829160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015201519082015238808080808061280d565b80fd5b503d612827565b508451903d90823e3d90fd5b919293907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082116102e2578085116102e25760009582158015612b5f575b612b355760a08501511115612b0b57604084019586518015600014612a7c57505061292b85836142bf565b90600082126102e25760006003831115612a6d5750816001908060011c600181018091116123ae5791905b848310612a4d575050505b81116102e2577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1881019081136001166123ae57946103e89194935b60008713801590612a42575b8015612a37575b612a0d57602081016129c2878251614383565b90526129cf858251614383565b90526129e56129de8388614383565b8251614383565b9052600081126102e25793600081126102e25792600081126102e25791600081126102e25790565b60046040517fccbf5468000000000000000000000000000000000000000000000000000000008152fd5b5060008513156129af565b5060008613156129a8565b90919350612a6484612a5f8184612b7a565b6123ea565b821c9190612956565b91156129615760019150612961565b86979250612a9090612a98929496976142bf565b8651906142fe565b612aa38251866142bf565b94612ab460208801968751906142fe565b80831215612aed575050612ace81612ae7929896516142bf565b612ae2612add84518093614383565b614335565b6142fe565b9461299c565b612ace91985080979650612b059250979686516142bf565b9361299c565b60046040517fb2094b59000000000000000000000000000000000000000000000000000000008152fd5b60046040517f25daaec3000000000000000000000000000000000000000000000000000000008152fd5b508515612900565b818102929181159184041417156123ae57565b8115612b84570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b959096939492612bc288612778565b93612bcc8261394e565b9885519260009a848c80961261277457612be6908b612b67565b96885191868312612e2d576020809a0151908782126126e7578d998894612c0f88938e95612b67565b670de0b6b3a76400009004612c23916123ea565b612c2c91612b7a565b612c38819e82906123dd565b9586836001600160a01b0380809816931693612c55908585613885565b612c5e92613885565b604080517fdb74aa150000000000000000000000000000000000000000000000000000000081526001600160a01b0393841660048201529b90921660248c0152909997889160449183915af1958615612e23578296612deb575b50926060928692612d1495849e8b51978896879586937f156e29f6000000000000000000000000000000000000000000000000000000008552600485016040919493926001600160a01b03606083019616825260208201520152565b0393165af1998a15612de05799612dbd575b508810612d795710612d36575050565b60649250519062461bcd60e51b82526004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f59545f4f55540000006044820152fd5b825162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f4c505f4f55540000006044820152606490fd5b612dd791995060603d606011610ad057610abe81836121f3565b50509738612d26565b8551903d90823e3d90fd5b9293909195508883813d8311612e1c575b612e0681836121f3565b8101031261277457915194919291906060612cb8565b503d612dfc565b88513d84823e3d90fd5b8680fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156102e2570180359067ffffffffffffffff82116102e257602001918160051b360383136102e257565b612e926040820182612e31565b9050159081612e9f575090565b612eae91506060810190612e31565b90501590565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156102e2570180359067ffffffffffffffff82116102e2576020019181360383136102e257565b67ffffffffffffffff8111611f8457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6080818303126102e25780519260208201519260408301519260608101519067ffffffffffffffff82116102e2570181601f820112156102e2578051612f8481612f05565b92612f9260405194856121f3565b818452602082840101116102e25761239c9160208085019101612311565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156102e257016020813591019167ffffffffffffffff82116102e25781360383136102e257565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9015613078578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156102e2570190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9035907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81813603018212156102e2570190565b919390936000936000936001600160a01b036130f583612275565b1690839760408401906131088286612e31565b9050613577575b505060608301916131208385612e31565b9050613148575b505050670de0b6b3a764000091602061314292013590612b67565b04841190565b61317560a061316f61316961316387899c9e9d9a9899612e31565b9061303f565b806130a7565b01612275565b6060613187613169613163888c612e31565b01359460048610156102e2576131a56001600160a01b03918a612e31565b92906131b460808c018c612eb4565b939096604051996131c48161243d565b60208b015281841660408b01528d60608b0152166080890152608088528760a081011067ffffffffffffffff60a08a011117611f845760a088016040527f6122b1730000000000000000000000000000000000000000000000000000000060a089015283610144890160a060a48b015252610164808901908560051b8a010194826000905b828210613382575050505050916132a7916001600160a01b0360009695941660c489015260001960e48901527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c9485898403016101048a0152613000565b91858303016101248601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60856132e260a082019482612334565b0301908360a08701915af19182156102ef5761333a61314293602092670de0b6b3a764000096600091600093613344575b5061333461332d84878061152296975183010191016122fb565b90926123ea565b9a6123dd565b9592829450613127565b61332d935061152292506133766133349160a0803d8060008386013e61336c818386016121f3565b8301019101612f3f565b96509450613313915050565b90919293967ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9c8c820301855287357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112156102e2577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe818382013603018382013512156102e257606080835281840180350180358483015260208101356080850152604081013560a0850152600491013510156102e25760019160209182916040808761356361354760c06134638489018035016060013561243d565b8784018035016060810135888301526135349061348290608001612034565b6001600160a01b031660e089810191909152916134ec6134cc6134ac888d0180350160a001612034565b6001600160a01b03166101008c81019190915292888d0180350101612034565b936001600160a01b036101209516858c0152878c01888d01350101612034565b6001600160a01b03166101408a8101919091528a870180350191820135610160808c019190915293820135610180808c0191909152908201356101a08b015292810190612fb0565b90916101c08901526101e0880191613000565b613556878401808a0190612fb0565b908783038a890152613000565b940101359101529901950193920190613249565b9092985083975061359f9196506001600160a01b036135986135a595612275565b91166143fc565b85612e31565b6135b460808793970183612eb4565b96909160405190600082526135c8826121bb565b6040519889937f6122b1730000000000000000000000000000000000000000000000000000000085528260a4860160a060048801525260c4850160c48460051b87010193826000905b8282106136bf575050505050938392613652613661936000976001600160a01b038d1660248801528a60448801526003199485888403016064890152613000565b91848303016084850152612334565b0381838a5af19586156102ef576000809660009861368f575b506136869096846123dd565b9694388061310f565b905061368697506136b49196503d806000833e6136ac81836121f3565b810190612f3f565b50979096919061367a565b919396977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c9087929496970301855286357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112156102e2577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe818382013603018382013512156102e25782810183820135016060835280356060840152602091828201356080850152604082013560a085015260608201359360048510156102e2576040808761383c6135476001600160a01b036135348a99826138046137eb60019f8c9060c080926137b58361243d565b01528c6137c460808701612034565b60e0988991169101528c6137da60a08701612034565b610100958691169101528401612034565b946001600160a01b036101209616868d01528301612034565b6001600160a01b036101409116818c015261016091830135828c015261018094830135858c01528201356101a08b0152810190612fb0565b940101359101529801950192018d979695949391613611565b3d15613880573d9061386682612f05565b9161387460405193846121f3565b82523d6000602084013e565b606090565b8215613949576001600160a01b0390811690816138fb575050600080809381935af16138af613855565b50156138b757565b606460405162461bcd60e51b815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b9261394793604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252613942826121d7565b614c81565b565b505050565b60206001600160a01b03600460009360405194859384927f1d52edc4000000000000000000000000000000000000000000000000000000008452165af19081156102ef57600091612557575090565b156139a457565b606460405162461bcd60e51b815260206004820152600e60248201527f6e6f206578697374696e67206c700000000000000000000000000000000000006044820152fd5b9495929190613a2a604051956139fd8761219f565b878752602087019280845260408801948552606098606089019687528260808a01528a60a08a0152614662565b94604088015115613b56575b60005b87890151811015613b115786908986613ab0613aa9613ac56080613abb8b858b613ab58e613a85613a6a8e8e614975565b9e8f9451925196519c5196613a7e86614c54565b91846151d8565b613aa4836020949e94613a9c949e948988516123ea565b9601516123dd565b6123dd565b958b6123ea565b612b67565b986123dd565b95015185856149f7565b613b0057505011613ae757600182018092116123ae576001918a525b01613a39565b60001982019182116123ae5760019160208b0152613ae1565b949c509a5092985050505050505050565b60405162461bcd60e51b815260206004820152601a60248201527f536c6970706167653a20415050524f585f4558484155535445440000000000006044820152606490fd5b602088018051825160009060208a01613b6f815161239f565b808403613c0f575081519051613b8491614383565b670d529ae9e860000090808202918205036123ae57670de0b6b3a7640000613bae9251910561436a565b600081126102e25780821015613c0857505b80821015613c0157505b808252845180821015613bf95750905b52613be488614904565b613bf4604082510151151561399d565b613a36565b905090613bda565b9050613bca565b9050613bc0565b613c1981856123ea565b60018082018092116123ae571c908351613c3483855161436a565b613c3e8285614383565b6000821380613d2d575b15613ce9578f613cc5670de0b6b3a764000091613cc0613cab613ca6613ccc97613c9b613ca0613c888f8f9060009e613c82915190614383565b906142bf565b613c9b613c95858d6142bf565b9161428b565b614da6565b9861428b565b6154cd565b6040613cb78451614d8c565b9301519561436a565b6142bf565b059061436a565b1215613ce15750613cdc9061239f565b613b6f565b935092613b6f565b606460405162461bcd60e51b815260206004820152601260248201527f696e76616c6964207074546f4d61726b657400000000000000000000000000006044820152fd5b5060008113613c48565b908160209103126102e2575180151581036102e25790565b916001600160a01b038092168352602083015260606040830152823560048110156102e257613d7d8161243d565b6060830152613d8e60208401612034565b1660808201526060613db7613da66040850185612fb0565b608060a086015260e0850191613000565b920135908115158092036102e25760c0015290565b93929360808501613ddd818761240a565b3560048110156102e257613df08161243d565b80613e55575050602092613e05928692614a4c565b925b01358210613e1157565b606460405162461bcd60e51b815260206004820152602060248201527f536c6970706167653a20494e53554646494349454e545f544f4b454e5f4f55546044820152fd5b80613e66600392989596949861243d565b03613eab5750613e7d82613ea69260209530614a4c565b8095613e9882613e8f60408701612275565b6125e787612275565b613ea184612275565b613885565b613e07565b90613ed5613ecf846001600160a01b03936060820197613eca89612275565b614a4c565b94612275565b16613eec613ee560408501612275565b928461240a565b90803b156102e257613f329460008094604051978895869485937f2bdb823c00000000000000000000000000000000000000000000000000000000855260048501613d4f565b03925af19182156102ef57602092613f60575b50613ea6613f556126be83612275565b8095613ea184612275565b613f699061216e565b38613f45565b9091906001600160a01b031680613f8b5750905034036126f257565b81613f9557505050565b61394792309161439f565b6000906001600160a01b031680613fb75750504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa91821561258657809261400057505090565b9091506020823d602011614029575b8161401c602093836121f3565b810103126128ab57505190565b3d915061400f565b6001600160a01b039190821680614092575016803b156102e2576000906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af180156102ef576140895750565b6139479061216e565b92915050813b156102e2576000916024839260405194859384927f2e1a7d4d00000000000000000000000000000000000000000000000000000000845260048401525af180156102ef576140895750565b919095929495604051906140f68261219f565b83825260209461412c8684019783895260408501958652606093606086019a8b5260809782608088015260a087019c8d52614662565b868a51604081015115614246575b505060005b8a519084820151811015613b11578b878761417e8c8f8f97906141748f928961416791614975565b809a8c88519151916151d8565b9691959095614c54565b958a88518811614223576141c06141c794613ab0836141b8613ab096613aa48e6141d29d6141af829a8d51516123dd565b9b5101516123ea565b9251906123ea565b98516123dd565b9551015185856149f7565b61420e575050116141f557600182018092116123ae576001918c51525b0161413f565b60001982019182116123ae57600191898d5101526141ef565b9d509d50505050965050955050505050929190565b9750505050505050506000199150019182116123ae57600191898d5101526141ef565b015161425485515183614bca565b8082101561428457505b878b51015261426d8a51614904565b61427d604085510151151561399d565b863861413a565b905061425e565b90670de0b6b3a7640000918281029281840514901517156123ae57565b90816000039180830560001914901517156123ae57565b8181029291600082127f80000000000000000000000000000000000000000000000000000000000000008214166123ae5781840514901517156123ae57565b8115612b845760001982147f80000000000000000000000000000000000000000000000000000000000000008214166123ae570590565b9060001982019182136001166123ae57565b90670de0b6b3a7640000600083820393128184128116918413901516176123ae57565b818103929160001380158285131691841216176123ae57565b919091600083820193841291129080158216911516176123ae57565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000060208201526001600160a01b039283166024820152929091166044830152606480830193909352918152613947916139426084836121f3565b906001600160a01b039081831692831561465c57604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03841660248201526020959193918690829060449082905afa801561465157600090614618575b6b7fffffffffffffffffffffff915010614487575b5050505050565b825193600080878701927f095ea7b30000000000000000000000000000000000000000000000000000000094858552169283602489015260449782898201528881526144d2816121d7565b519082875af16144e0613855565b816145e8575b50156145a6579160009291838093865190898201938452602482015260001988820152878152614515816121d7565b51925af1614521613855565b81614576575b5015614534578080614480565b606492917f5361666520417070726f7665000000000000000000000000000000000000000091519262461bcd60e51b84526004840152600c6024840152820152fd5b8051801592508590831561458e575b50505038614527565b61459e9350820181019101613d37565b388481614585565b6064867f5361666520417070726f766500000000000000000000000000000000000000008787519262461bcd60e51b84526004840152600c6024840152820152fd5b80518015925088908315614600575b505050386144e6565b6146109350820181019101613d37565b3887816145f7565b508581813d831161464a575b61462e81836121f3565b810103126102e2576b7fffffffffffffffffffffff905161446b565b503d614624565b84513d6000823e3d90fd5b50505050565b92919260409081516080810181811067ffffffffffffffff821117611f8457835260009182825260208201908382528483018481526060840196858852849960a0840181815111156148db57906146b991516123dd565b936080840151976301e1338096878a0299808b058914901517156148ae577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff998a88116148aa578761470a916142fe565b8981131561487a57815260208601518981121561487257600019905b8a811315614864575b614743670de0b6b3a7640000968792612b67565b04908b82116148225790614756916142bf565b8084528651908115801561485c575b61482657505085519188614783896101008a01519651945196612b67565b048b81116148225761479490614dfb565b9485126147f25750926147cd60c09593613c9b6147c86147c386613c9b613c956147dc9e9d9b6147d39a614383565b615481565b61428b565b9061436a565b90520151612b67565b049182116128ab57506147ee90614dfb565b9052565b8460249151907fca78c8a40000000000000000000000000000000000000000000000000000000082526004820152fd5b8a80fd5b604492508351917fb1c4aefb00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b508015614765565b61486d90614c54565b61472f565b600190614726565b6024908351907f1ca418760000000000000000000000000000000000000000000000000000000082526004820152fd5b8980fd5b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b600489517fb2094b59000000000000000000000000000000000000000000000000000000008152fd5b805160208201511090811561495f575b5061491b57565b606460405162461bcd60e51b815260206004820152601f60248201527f496e7465726e616c3a20494e56414c49445f415050524f585f504152414d53006044820152fd5b670de0b6b3a76400009150608001511138614914565b9015806149ea575b6149e35760208151910151808211156149d457606460405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a2067756573734d696e203e2067756573734d61780000006044820152fd5b6149dd916123ea565b60011c90565b6040015190565b506040810151151561497d565b90670de0b6b3a7640000908382038281116123ae5782614a18859284612b67565b0411159384614a29575b5050505090565b909180939450018083116123ae57614a4091612b67565b04101538808080614a22565b60a4604091602093614a6b966001600160a01b03978895869201612275565b60405197889687957f769f8e5d0000000000000000000000000000000000000000000000000000000087521660048601526024850152166044830152600096879182606485015260016084850152165af191821561258657809261400057505090565b9490939192614ade908587614662565b92604083015115614b97575b60005b6060840151811015613b1157614b038185614975565b614b1a614b128289898c6151d8565b509190614c54565b84811180159190614b7a57608088015182614b50575b5050614b43575084526001905b01614aed565b9750945050509250509190565b909150670de0b6b3a76400009081038181116123ae57614b709087612b67565b0411153880614b30565b5050509060001982019182116123ae576001916020860152614b3d565b602083018051614ba8885187614bca565b80821015614bc25750905b52614bbd83614904565b614aea565b905090614bb3565b90614bf8614bfe614be4606085015160408601519061436a565b670de0b6b3a76400009283918651906142bf565b05614dfb565b9281840190828212600086129080158216911516176123ae57613c826020614c2f613cc594613c9b614c389961428b565b92015185614383565b6103e7908181029181830414901517156123ae576103e8900490565b7f800000000000000000000000000000000000000000000000000000000000000081146123ae5760000390565b6001600160a01b0316604051604081019181831067ffffffffffffffff841117611f8457614cf1926040526000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614ceb613855565b916159c3565b805190828215928315614d74575b50505015614d0a5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b614d849350820181019101613d37565b388281614cff565b8015612b84576ec097ce7bc90715b34b9f10000000000590565b8115612b84570590565b15614db757565b606460405162461bcd60e51b815260206004820152601060248201527f496e76616c6964206578706f6e656e74000000000000000000000000000000006044820152fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc0000811215806151c5575b614e2e90614db0565b600081126151b0576064906806f05b59d3b2000000811261514d577ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e0000000168056bc75e2d6310000082770195e54c5dd42177f53a27172fa9ec630262827000000000925b02819068ad78ebc5ac62000000811215615114575b806856bc75e2d631000000849212156150da575b682b5e3af16b188000008112156150a2575b6815af1d78b58c40000081121561506a575b680ad78ebc5ac6200000811215615033575b81811215614ffc575b6802b5e3af16b1880000811215614fc5575b68015af1d78b58c40000811215614f8e575b60028282800205056003838383020505600484848302050560058585830205056006868683020505600787878302050590600888888402050592600989898602050594600a8a8a8802050596600b8b8b8a02050598600c8c8c8c0205059a0101010101010101010101010205020590565b6806f5f17757889379377ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000083920193020591614f1d565b6808f00f760a4b2db55d7ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000083920193020591614f0b565b680ebc5fb417461211107ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000083920193020591614ef9565b68280e60114edb805d037ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000083920193020591614ef0565b690127fa27722cc06cc5e27fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c0000083920193020591614ede565b693f1fce3da636ea5cf8507fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e780000083920193020591614ecc565b6b02df0ab5a80a22c61ab5a7007fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf00000083920193020591614eba565b6e01855144814a7ff805980ff008400091507fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e00000001614ea6565b6803782dace9d9000000811261519d577ffffffffffffffffffffffffffffffffffffffffffffffffc87d25316270000000168056bc75e2d63100000826b1425982cf597cd205cef738092614e91565b68056bc75e2d6310000082600192614e91565b6151bc90600003614dfb565b61239c90614d8c565b5068070c1cc73b00c80000811315614e25565b9391928451602083015183519060408501519284811261543d57613c9b613c9561520c93615206888561436a565b93614383565b670d529ae9e860000080821361540657506152369291613c9b6147c861523193615481565b614383565b670de0b6b3a7640000908181126153b357606061525e61525983613c9b8761428b565b6142a8565b9401519060008094136000146153e45781613c9b61527b9261428b565b8281126153b357508161529861529260e093614347565b866142bf565b05965b0151917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff928381116153af578760646152d76152de93836142bf565b059561436a565b918183128015615394571561538c57600019925b8281131561537e575b8181029181830414901517156153515786615315916123ea565b6000198101908111615351578661532b91612b7a565b9283116128ab575061534461239c939261534b926142bf565b95856155f4565b936155f4565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61538790614c54565b6152fb565b6001926152f2565b50505061239c9291506153aa61534b91866155f4565b615344565b5080fd5b602490604051907fca78c8a40000000000000000000000000000000000000000000000000000000082526004820152fd5b5061540061525982612ae26153fa60e095614347565b886142bf565b9661529b565b60449250604051917ffc68d09e00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b606460405162461bcd60e51b815260206004820152600860248201527f6e656761746976650000000000000000000000000000000000000000000000006044820152fd5b670de0b6b3a764000081146154a357613ca681613c9b613c9561239c94614347565b60046040517fa9c8b14d000000000000000000000000000000000000000000000000000000008152fd5b60008113156155b05780670c7d713b49da0000128061559f575b1561559657670de0b6b3a7640000906ec097ce7bc90715b34b9f10000000009061553a908302828101907fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f000000000018302614da6565b9080828002059181838202058284820205838582020591848684020593858786020595808888020597880205600f900596600d900595600b900594600990059360079005926005900591600390050101010101010160011b0590565b61239c90615677565b50670f43fc2c04ee000081126154e7565b606460405162461bcd60e51b815260206004820152600d60248201527f6f7574206f6620626f756e6473000000000000000000000000000000000000006044820152fd5b600082121561566f57600019915b600081131561566057905b670de0b6b3a7640000918281029281840414901517156123ae5761563091612b7a565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116102e25761239c916142bf565b61566990614c54565b9061560d565b600191615602565b670de0b6b3a764000081126159ac5760649060007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c0000000000000821215615981575b73011798004d755d3c8bc8e03204cf44619e000000821215615960575b820290808302906e01855144814a7ff805980ff0084000908183121561593d575b50506b02df0ab5a80a22c61ab5a7008082121561591d575b50693f1fce3da636ea5cf850808212156158fd575b50690127fa27722cc06cc5e2808212156158dd575b5068280e60114edb805d03808212156158bd575b50680ebc5fb41746121110808212156158a6575b506808f00f760a4b2db55d80821215615886575b506806f5f177578893793780821215615866575b506806248f33704b28660380821215615847575b506805c548670b9510e7ac80821215615828575b506157e768056bc75e2d6310000091827ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf00000818301920102614da6565b9080828002059181838202058284820205916003600560076009600b888a89020598808b8b02059a8b0205059805960594059205010101010160011b010590565b68056bc75e2d631000006756bc75e2d6310000920205910190386157ab565b68056bc75e2d6310000067ad78ebc5ac62000092020591019038615797565b68056bc75e2d6310000068015af1d78b58c4000092020591019038615783565b68056bc75e2d631000006802b5e3af16b18800009202059101903861576f565b68056bc75e2d63100000809202059101903861575b565b68056bc75e2d63100000680ad78ebc5ac620000092020591019038615747565b68056bc75e2d631000006815af1d78b58c40000092020591019038615733565b68056bc75e2d63100000682b5e3af16b188000009202059101903861571e565b68056bc75e2d631000006856bc75e2d63100000092020591019038615709565b68ad78ebc5ac62000000925069021e19e0c9bab2400000020591019038806156f1565b906b1425982cf597cd205cef73806803782dace9d9000000910591016156d0565b50770195e54c5dd42177f53a27172fa9ec63026282700000000090056806f05b59d3b20000006156b3565b6159b86159bd91614d8c565b615677565b60000390565b91929015615a2457508151156159d7575090565b3b156159e05790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015615a375750805190602001fd5b6102b09060405191829162461bcd60e51b835260206004840152602483019061233456fea26469706673582212205ce7095dca39280edccaf4270617720bcbba5281eb286611cda649fc75f9389964736f6c63430008170033";
2692
+ "0x6080806040523461001757615a9190816200001d8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816312599ac614611c7c575080632756ce0614611a395780633dbe1c55146119225780634e390267146116bb57806358bda475146113fe57806360da086014610ea45780636b77ac9e14610c11578063844384aa14610b2b57806397ee279e14610935578063b00f09d714610737578063b7d75b8b146105cd5763d13b4fdc146100a357600080fd5b346102e2576100b136612048565b91809391936105b3575b6000926040517f2f13b60c0000000000000000000000000000000000000000000000000000000081526020816004816001600160a01b0388165afa9081156102ef57600091610584575b50156103625750604051630b2339af60e21b81526060816004816001600160a01b0387165afa80156102ef576001600160a01b0391600091610330575b5016604051907ff6b911bc0000000000000000000000000000000000000000000000000000000082526040828061019c86858c600485016040919493929460608201956001600160a01b0380921683521660208201520152565b038160006001600160a01b0389165af19081156102ef5760009283926102fb575b506020906024604051809581937fbcb7ea5d0000000000000000000000000000000000000000000000000000000083526001600160a01b038d1660048401525af19081156102ef576000916102b4575b61021792506123ea565b935b841061026b576001600160a01b03806040968751938452866020850152169216907fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761863392a482519182526020820152f35b60405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f53595f4f55540000006044820152606490fd5b0390fd5b90506020823d6020116102e7575b816102cf602093836121f3565b810103126102e25761021791519061020d565b600080fd5b3d91506102c2565b6040513d6000823e3d90fd5b60209192506103219060403d604011610329575b61031981836121f3565b8101906122fb565b5091906101bd565b503d61030f565b610352915060603d60601161035b575b61034a81836121f3565b810190612234565b91505038610142565b503d610340565b6103c5935060408261037483866123f7565b82517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b03808b1660048301529091166024820152604481019190915294859081906064820190565b038160006001600160a01b0388165af19384156102ef57600090600095610560575b5060009160009560405190630b2339af60e21b82526060826004816001600160a01b038b165afa9182156102ef5760009261053c575b50809260019261042c82612e85565b156104fe575b50505061044b575b5090610445916123ea565b93610219565b604080516000815292969261049792610463826121bb565b825193849283927f29910b110000000000000000000000000000000000000000000000000000000084528d60048501612377565b038160006001600160a01b038a165af19283156102ef57610445936104d2926000906000926104da575b506104cc91926123ea565b926123ea565b94909161043a565b6104cc92506104f8915060403d6040116103295761031981836121f3565b916104c1565b919550925061051c9397506001600160a01b039150169283896130da565b90969193919291828783156104325761053492613885565b388087610432565b61055691925060603d60601161035b5761034a81836121f3565b509050903861041d565b905061057c91945060403d6040116103295761031981836121f3565b9390386103e7565b6105a6915060203d6020116105ac575b61059e81836121f3565b810190613d37565b38610105565b503d610594565b6105c88183336001600160a01b03821661439f565b6100bb565b346102e2576105db36612131565b926001600160a01b03949192858216918180610725575b5050604080517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482018190526024820152604481018390529590866064816000875af19485156102ef576000966000966106fe575b50861061026b5784106106b9577fd9f35a37b64d95edfd8f26adf130ce45f3e9ddf3c7ab8c1fb7224727a339a98e6040968751941693806106aa88883396846040919493926060820195825260208201520152565b0390a482519182526020820152f35b60405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f50545f4f55540000006044820152606490fd5b90955061071b91965060403d6040116103295761031981836121f3565b9590959488610655565b61073091338561439f565b86816105f2565b346102e25760031960a0813601126102e257610751612008565b9061075a61201e565b604435926064359267ffffffffffffffff84116102e25760a0908460040194360301126102e2576001600160a01b03938483169260405190630b2339af60e21b8252606082600481885afa9081156102ef578792600092610912575b508380610900575b50501692604051927ff6b911bc0000000000000000000000000000000000000000000000000000000084526040848061081a86858a600485016040919493929460608201956001600160a01b0380921683521660208201520152565b03816000865af19687156102ef576000946000986108d9575b5060843588106106b957877f5349e52482e38bcf6018163f5f871bbae5e00e667aa8e7c531b74c07d5397f92916108786108728a896108d59b88613dcc565b99612275565b16946108b5878a604051948594339886919260809396959491966001600160a01b0360a08501981684526020840152604083015260608201520152565b0390a4604051938493846040919493926060820195825260208201520152565b0390f35b9097506108f691945060403d6040116103295761031981836121f3565b9390939688610833565b61090b91338861439f565b87836107be565b61092c91925060603d60601161035b5761034a81836121f3565b505090886107b6565b346102e25761094336612131565b919290936001600160a01b03928383169060405196630b2339af60e21b88526060968789600481875afa9182156102ef57600099600093610b01575b50906109969161098e88612778565b9142926128c1565b979150998792508a8281610aec575b50505081610ad7575b50506040517f156e29f60000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810189905260448101869052905086816064816000875af19687156102ef57600097610aa6575b50508510610a61576108d5936040519216917f9334566f6358cd68e33d423fb1c9119c6837e3a2a7a8affaaa5020ed06aec0693391806108b589888c846040919493926060820195825260208201520152565b60405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f4c505f4f55540000006044820152606490fd5b610ac6929750803d10610ad0575b610abe81836121f3565b810190612289565b5050948780610a0e565b503d610ab4565b610ae4928833911661439f565b8784816109ae565b610af9928b33911661439f565b8a8a826109a5565b610996929a50610b1f919350893d8b1161035b5761034a81836121f3565b5099909992909161097f565b346102e257610b3936612131565b936001600160a01b03929192948585169060405190630b2339af60e21b8252606082600481865afa9586156102ef57856108d597610bb5947f890839d8cbce575f9d1ee3d55bc4d466623de60742c7ad665958f8a9916a54a59a838d600093600095610be6575b5090610baf9133908516613f6f565b88612bb3565b9491969097604051941693806108b58a8a893397859094939260609260808301968352602083015260408201520152565b610c06919550610baf92945060603d60601161035b5761034a81836121f3565b959194929050610ba0565b346102e257610c1f366120a5565b6001600160a01b039493929490838286169381610e93575b604089610c44858a6123f7565b82517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911660248201526044810193909352826064816000895af19182156102ef57600090600093610e6f575b50600093600098604051630b2339af60e21b81526060816004818c5afa9384156102ef57600091600095610e4a575b508093600192610ce182612e85565b15610e17575b505050610d45575b5050505090610cfd916123ea565b9485106106b957604095865193845285602085015216917fac97b87f5422fa3beec99bff8f336310d8ebc7d33d909b7d534cd7c72f61e871863392a482519182526020820152f35b90610d6b610d63610d5d610d739695949c979c612778565b9361394e565b9336906122a4565b924292614ace565b50916040519060008252610d86826121bb565b6040848b610dc0835195869384937f5b709f1700000000000000000000000000000000000000000000000000000000855260048501612377565b038160008a5af180156102ef57610cfd94610de793600092610df257506104cc91926123ea565b959091898080610cef565b6104cc9250610e0f9060403d6040116103295761031981836121f3565b9050916104c1565b8a169c50929750610e2c935090508a8d6130da565b909a91969183838315610ce757610e4292613885565b8d8083610ce7565b909450610e66915060603d60601161035b5761034a81836121f3565b9490508e610cd2565b9050610e8b91925060403d6040116103295761031981836121f3565b91908a610ca3565b610e9f8288338861439f565b610c37565b346102e25760031960a0813601126102e257610ebe612008565b610ec661201e565b906064359167ffffffffffffffff938484116102e25760a08185360301126102e2576084359485116102e25760a09085360301126102e25760405191630b2339af60e21b83526060836004816001600160a01b0386165afa9283156102ef576000936113db575b506044356113bf575b6040517f2f13b60c00000000000000000000000000000000000000000000000000000000815260009560209182816004816001600160a01b0389165afa9081156102ef576000916113a2575b50156111925750604051630b2339af60e21b81526060816004816001600160a01b0388165afa80156102ef576001600160a01b0391600091611170575b50604080517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015293909216808416602484015260448035908401529392829060649082906000908a165af19081156102ef576000938391859361114e575b506024604051809681937fbcb7ea5d0000000000000000000000000000000000000000000000000000000083526001600160a01b038c1660048401525af19182156102ef5760009261111c575b5061108692506123ea565b915b6001831061026b576001600160a01b036110b96110b06108d59686848a600401921687613dcc565b96600401612275565b16917f5258a3c624debb1cc84b0f5f66c73eef048832eeebe7178e63e95a53cf28dc946001600160a01b03604051931692806108b5878a33966044359085909493926060926001600160a01b036080840197168352602083015260408201520152565b90915082813d8311611147575b61113381836121f3565b810103126102e2576110869151908861107b565b503d611129565b61116891935060403d6040116103295761031981836121f3565b50918a61102e565b611189915060603d60601161035b5761034a81836121f3565b91505088610fbf565b9550506111f860406111a787600401856123f7565b81517ff6b911bc0000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301529091166024820152604480359082015291829081906064820190565b038160006001600160a01b0388165af19081156102ef57600090600092611380575b5060009160009760405190630b2339af60e21b82526060826004816001600160a01b038b165afa9182156102ef5760009261135c575b508260019261126183600401612e85565b15611311575b505050611280575b509061127a916123ea565b91611088565b60408051600081529298926112d592611298826121bb565b825193849283927f29910b110000000000000000000000000000000000000000000000000000000084526001600160a01b038c1660048501612377565b038160006001600160a01b038a165af19283156102ef5761127a93611309926000906000926104da57506104cc91926123ea565b96909161126f565b919550925061133c9399506001600160a01b039150169260040190836001600160a01b0388166130da565b90989193919291828783156112675761135492613885565b898087611267565b61137691925060603d60601161035b5761034a81836121f3565b509050908a611250565b905061139b915060403d6040116103295761031981836121f3565b908761121a565b6113b99150833d85116105ac5761059e81836121f3565b88610f82565b6113d660443583336001600160a01b03821661439f565b610f36565b6113f591935060603d60601161035b5761034a81836121f3565b50509185610f2d565b346102e25761140c366120a5565b9290939160405194630b2339af60e21b86526060866004816001600160a01b0388165afa9081156102ef57600096600092611695575b5061144d86866123f7565b848061167a575b5050600091849760009761146781612e85565b15611637575b50509061149b91878961149361148b6114858b612778565b9461394e565b9436906122a4565b9342936140e3565b5050906114e660408051600081526114b2816121bb565b8151809381927f5b709f17000000000000000000000000000000000000000000000000000000008352878b60048501612377565b038160006001600160a01b038b165af19788156102ef57611578986060946115289360009060009361160d575b50611522906104cc93946123dd565b996123ea565b9560405197889283927f156e29f60000000000000000000000000000000000000000000000000000000084528b600485016040919493926001600160a01b03606083019616825260208201520152565b038160006001600160a01b0388165af19485156102ef576000956115ea575b508410610a61576001600160a01b03806040968751938452866020850152169216907fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa5863392a482519182526020820152f35b61160491955060603d606011610ad057610abe81836121f3565b50509386611597565b6104cc9350611522915061162f9060403d6040116103295761031981836121f3565b935090611513565b81995061149b939298506116729450866001600160a01b0361165a9316896130da565b50989198949098886001600160a01b03829c16613885565b90918a61146d565b61168e91336001600160a01b038b1661439f565b8884611454565b9096506116b1915060603d60601161035b5761034a81836121f3565b9196905088611442565b346102e2576116c9366120a5565b9290939160009360405190630b2339af60e21b82526060826004816001600160a01b0389165afa9687156102ef57611795976000936000916118fc575b5061171183886123f7565b86806118e1575b90509360009361172781612e85565b1561189f575b50509061174d91838561174561148b6114858c612778565b9342936139e8565b5050916040805160008152611761816121bb565b8151809a81927f29910b11000000000000000000000000000000000000000000000000000000008352878b60048501612377565b038160006001600160a01b038b165af180156102ef576117dc9860609461152893600092600094611871575b506117d692916117d0916123dd565b946123ea565b976123ea565b038160006001600160a01b0388165af19485156102ef5760009561184e575b508410610a61576001600160a01b03806040968751938452866020850152169216907fc87b85efc5055ef177e0092af0d4e624fff4b1d57db748857f65e4b7e4a28a36863392a482519182526020820152f35b61186891955060603d606011610ad057610abe81836121f3565b505093866117fb565b6117d09194506117d693506118949060403d6040116103295761031981836121f3565b9490939091506117c1565b61174d939299508195506118d99450876001600160a01b036118c293168a6130da565b509991949094896001600160a01b03829816613885565b90918b61172d565b6118f591336001600160a01b03881661439f565b8a86611718565b905061191891935060603d60601161035b5761034a81836121f3565b939150928a611706565b61192b36612048565b939291906001600160a01b03938484169160405193630b2339af60e21b8552606085600481875afa9586156102ef576108d596600096600091611a0a575b509061198793929161197e8b8b8a1630612476565b97889287612bb3565b9391969097602061199782612275565b918360405196168652013560208501528760408501528860608501528460808501528560a085015216917fa9b749795680682fbc5a34071e19282bbb23496a8cf9bbd99bf941359bbe65bf60c03392a4604051948594859094939260609260808301968352602083015260408201520152565b6119879493929750611a2b915060603d60601161035b5761034a81836121f3565b979190509690919293611969565b60031960a0813601126102e257611a4e612008565b90611a5761201e565b916044359267ffffffffffffffff84116102e25760a0846004019385360301126102e2576001600160a01b039182821660405195630b2339af60e21b87526060958688600481865afa9788156102ef57600090600099611c53575b508187611ac0921687612476565b94611ad9611acd82612778565b429088606435916128c1565b9b9250809391508803611c0f57611b47928a928c809381611bfa575b50505060405193849283927f156e29f60000000000000000000000000000000000000000000000000000000084528a600485016040919493926001600160a01b03606083019616825260208201520152565b03816000885af19788156102ef57600098611bd9575b50506084358710610a61576108d595611b967f8969c3e485cb9f3b23622228064bc63e7350f6cf343dd86ab86169041a91eaae92612275565b6108b5878a8c60405195869516996024339901359086919260809396959491966001600160a01b0360a08501981684526020840152604083015260608201520152565b611bf0929850803d10610ad057610abe81836121f3565b5050958880611b5d565b611c07928d33911661439f565b8c8281611af5565b606460405162461bcd60e51b815260206004820152601960248201527f536c6970706167653a204e4f545f414c4c5f53595f55534544000000000000006044820152fd5b879950611ac09150611c7283918a3d8c1161035b5761034a81836121f3565b509a509150611ab2565b60031990610140823601126102e257611c93612008565b611c9b61201e565b60a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c3601126102e25767ffffffffffffffff908161010435116102e25760a08561010435360301126102e25761012435948286116102e25760a0908660040196360301126102e2576001600160a01b03630b2339af60e21b85526060856004818486165afa9283156102ef57600095600094611fdf575b50611d5382611d4289866123f7565b971696876101043560040191612476565b936000918597600099611d6581612e85565b15611fb3575b5050611d7f611d7986612778565b9261394e565b91604051918260a08101109060a084011117611f84578989611dce9460a085016040526064358552608435602086015260a435604086015260c435606086015260e435608086015242936140e3565b505090611e196040805160008152611de5816121bb565b8151809381927f5b709f17000000000000000000000000000000000000000000000000000000008352878a60048501612377565b03816000888a165af19788156102ef57611ea498606094611e5493600090600093611f5a575b50611e4e906104cc93946123dd565b9b6123ea565b9760405197889283927f156e29f600000000000000000000000000000000000000000000000000000000845289600485016040919493926001600160a01b03606083019616825260208201520152565b038160008587165af19485156102ef57600095611f37575b506044358510610a61576108d5937f387bf301bf673df0120e2d57e639f0e05e5e03d5336577c4cd83c1bff96e8dee611efa61010435600401612275565b604080516001600160a01b0390941684526101043560240135602085015283018890526060830186905283169390921691339180608081016108b5565b611f5191955060603d606011610ad057610abe81836121f3565b50509386611ebc565b6104cc9350611e4e9150611f7c9060403d6040116103295761031981836121f3565b935090611e3f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b909850611fc9919950611fd893508689876130da565b5099919993909986819a613885565b8980611d6b565b909350611ffc91955060603d60601161035b5761034a81836121f3565b95919050949287611d33565b600435906001600160a01b03821682036102e257565b602435906001600160a01b03821682036102e257565b35906001600160a01b03821682036102e257565b9060031960a0818401126102e2576001600160a01b039260043584811681036102e2579360243590811681036102e2579260443592606435926084359167ffffffffffffffff83116102e2578260a0920301126102e25760040190565b60031991610140838301126102e2576001600160a01b039260043584811681036102e2579360243590811681036102e25792604435926064359260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c8401126102e257608492610124359167ffffffffffffffff83116102e2578260a0920301126102e25760040190565b60031960a09101126102e2576001600160a01b039060043582811681036102e2579160243590811681036102e25790604435906064359060843590565b67ffffffffffffffff8111611f8457604052565b610120810190811067ffffffffffffffff821117611f8457604052565b60c0810190811067ffffffffffffffff821117611f8457604052565b6020810190811067ffffffffffffffff821117611f8457604052565b6080810190811067ffffffffffffffff821117611f8457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611f8457604052565b908160609103126102e2578051916001600160a01b039283811681036102e25792602083015181811681036102e25760409093015190811681036102e25790565b356001600160a01b03811681036102e25790565b908160609103126102e2578051916040602083015192015190565b91908260a09103126102e25760405160a0810181811067ffffffffffffffff821117611f84576040526080808294803584526020810135602085015260408101356040850152606081013560608501520135910152565b91908260409103126102e2576020825192015190565b60005b8381106123245750506000910152565b8181015183820152602001612314565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361237081518092818752878088019101612311565b0116010190565b61239c93926001600160a01b0360609316825260208201528160408201520190612334565b90565b9060001982019182116123ae57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082039182116123ae57565b919082018092116123ae57565b9061240190612e85565b61239c57503090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81813603018212156102e2570190565b6004111561244757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91906080820192612487848461240a565b936000943560048110156127745761249e8161243d565b8061259c57505090608460209260406124b686612275565b6124c68688013580923390613f6f565b955b016001600160a01b038094816124dd84612275565b16612592576124ff88935b6124fa836124f583612275565b6143fc565b612275565b9782604051998a9889977f20e8c565000000000000000000000000000000000000000000000000000000008952166004880152166024860152604485015260016064850152165af19182156125865791612557575090565b90506020813d60201161257e575b81612572602093836121f3565b810103126102e2575190565b3d9150612565565b604051903d90823e3d90fd5b6124ff89936124e8565b806125a860039261243d565b036125f3575090608460209260406125bf86612275565b6125cf8688013580923390613f6f565b6125ed816125dc89612275565b6125e7858b01612275565b90614031565b956124c8565b6001600160a01b038061260586612275565b1661273657602085013534036126f2575b8061262360608701612275565b169061262e86612275565b166126eb576020850135915b61264d61264687612275565b918761240a565b92823b156126e75791612698939188936040518096819582947f2bdb823c00000000000000000000000000000000000000000000000000000000845260208d01359060048501613d4f565b03925af180156126dc576126c3575b5090608460209260406125ed6126be828801612275565b613fa0565b60209291946126d360849261216e565b949192506126a7565b6040513d87823e3d90fd5b8780fd5b859161263a565b606460405162461bcd60e51b815260206004820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b8061274086612275565b1661274d60608701612275565b60208701359081612761575b505050612616565b61276c92339061439f565b388080612759565b8580fd5b6040805161278581612182565b60009283825283602083015283838301528360608301528360808301528360a08301528360c08301528360e083015283610100809301526001600160a01b0380948451927f794052f300000000000000000000000000000000000000000000000000000000845230600485015283602481610120998a94165afa9586156128b5578196612816575b50505050505090565b9091928094959650813d83116128ae575b61283181836121f3565b810103126128ab5784519461284586612182565b83518652602084015160208701528084015190860152606083015191821682036128ab575090829160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015201519082015238808080808061280d565b80fd5b503d612827565b508451903d90823e3d90fd5b919293907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082116102e2578085116102e25760009582158015612b5f575b612b355760a08501511115612b0b57604084019586518015600014612a7c57505061292b85836142bf565b90600082126102e25760006003831115612a6d5750816001908060011c600181018091116123ae5791905b848310612a4d575050505b81116102e2577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1881019081136001166123ae57946103e89194935b60008713801590612a42575b8015612a37575b612a0d57602081016129c2878251614383565b90526129cf858251614383565b90526129e56129de8388614383565b8251614383565b9052600081126102e25793600081126102e25792600081126102e25791600081126102e25790565b60046040517fccbf5468000000000000000000000000000000000000000000000000000000008152fd5b5060008513156129af565b5060008613156129a8565b90919350612a6484612a5f8184612b7a565b6123ea565b821c9190612956565b91156129615760019150612961565b86979250612a9090612a98929496976142bf565b8651906142fe565b612aa38251866142bf565b94612ab460208801968751906142fe565b80831215612aed575050612ace81612ae7929896516142bf565b612ae2612add84518093614383565b614335565b6142fe565b9461299c565b612ace91985080979650612b059250979686516142bf565b9361299c565b60046040517fb2094b59000000000000000000000000000000000000000000000000000000008152fd5b60046040517f25daaec3000000000000000000000000000000000000000000000000000000008152fd5b508515612900565b818102929181159184041417156123ae57565b8115612b84570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b959096939492612bc288612778565b93612bcc8261394e565b9885519260009a848c80961261277457612be6908b612b67565b96885191868312612e2d576020809a0151908782126126e7578d998894612c0f88938e95612b67565b670de0b6b3a76400009004612c23916123ea565b612c2c91612b7a565b612c38819e82906123dd565b9586836001600160a01b0380809816931693612c55908585613885565b612c5e92613885565b604080517fdb74aa150000000000000000000000000000000000000000000000000000000081526001600160a01b0393841660048201529b90921660248c0152909997889160449183915af1958615612e23578296612deb575b50926060928692612d1495849e8b51978896879586937f156e29f6000000000000000000000000000000000000000000000000000000008552600485016040919493926001600160a01b03606083019616825260208201520152565b0393165af1998a15612de05799612dbd575b508810612d795710612d36575050565b60649250519062461bcd60e51b82526004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f59545f4f55540000006044820152fd5b825162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a20494e53554646494349454e545f4c505f4f55540000006044820152606490fd5b612dd791995060603d606011610ad057610abe81836121f3565b50509738612d26565b8551903d90823e3d90fd5b9293909195508883813d8311612e1c575b612e0681836121f3565b8101031261277457915194919291906060612cb8565b503d612dfc565b88513d84823e3d90fd5b8680fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156102e2570180359067ffffffffffffffff82116102e257602001918160051b360383136102e257565b612e926040820182612e31565b9050159081612e9f575090565b612eae91506060810190612e31565b90501590565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156102e2570180359067ffffffffffffffff82116102e2576020019181360383136102e257565b67ffffffffffffffff8111611f8457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6080818303126102e25780519260208201519260408301519260608101519067ffffffffffffffff82116102e2570181601f820112156102e2578051612f8481612f05565b92612f9260405194856121f3565b818452602082840101116102e25761239c9160208085019101612311565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156102e257016020813591019167ffffffffffffffff82116102e25781360383136102e257565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9015613078578035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156102e2570190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9035907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81813603018212156102e2570190565b919390936000936000936001600160a01b036130f583612275565b1690839760408401906131088286612e31565b9050613577575b505060608301916131208385612e31565b9050613148575b505050670de0b6b3a764000091602061314292013590612b67565b04841190565b61317560a061316f61316961316387899c9e9d9a9899612e31565b9061303f565b806130a7565b01612275565b6060613187613169613163888c612e31565b01359460048610156102e2576131a56001600160a01b03918a612e31565b92906131b460808c018c612eb4565b939096604051996131c48161243d565b60208b015281841660408b01528d60608b0152166080890152608088528760a081011067ffffffffffffffff60a08a011117611f845760a088016040527f6122b1730000000000000000000000000000000000000000000000000000000060a089015283610144890160a060a48b015252610164808901908560051b8a010194826000905b828210613382575050505050916132a7916001600160a01b0360009695941660c489015260001960e48901527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c9485898403016101048a0152613000565b91858303016101248601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60856132e260a082019482612334565b0301908360a08701915af19182156102ef5761333a61314293602092670de0b6b3a764000096600091600093613344575b5061333461332d84878061152296975183010191016122fb565b90926123ea565b9a6123dd565b9592829450613127565b61332d935061152292506133766133349160a0803d8060008386013e61336c818386016121f3565b8301019101612f3f565b96509450613313915050565b90919293967ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9c8c820301855287357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112156102e2577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe818382013603018382013512156102e257606080835281840180350180358483015260208101356080850152604081013560a0850152600491013510156102e25760019160209182916040808761356361354760c06134638489018035016060013561243d565b8784018035016060810135888301526135349061348290608001612034565b6001600160a01b031660e089810191909152916134ec6134cc6134ac888d0180350160a001612034565b6001600160a01b03166101008c81019190915292888d0180350101612034565b936001600160a01b036101209516858c0152878c01888d01350101612034565b6001600160a01b03166101408a8101919091528a870180350191820135610160808c019190915293820135610180808c0191909152908201356101a08b015292810190612fb0565b90916101c08901526101e0880191613000565b613556878401808a0190612fb0565b908783038a890152613000565b940101359101529901950193920190613249565b9092985083975061359f9196506001600160a01b036135986135a595612275565b91166143fc565b85612e31565b6135b460808793970183612eb4565b96909160405190600082526135c8826121bb565b6040519889937f6122b1730000000000000000000000000000000000000000000000000000000085528260a4860160a060048801525260c4850160c48460051b87010193826000905b8282106136bf575050505050938392613652613661936000976001600160a01b038d1660248801528a60448801526003199485888403016064890152613000565b91848303016084850152612334565b0381838a5af19586156102ef576000809660009861368f575b506136869096846123dd565b9694388061310f565b905061368697506136b49196503d806000833e6136ac81836121f3565b810190612f3f565b50979096919061367a565b919396977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c9087929496970301855286357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112156102e2577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe818382013603018382013512156102e25782810183820135016060835280356060840152602091828201356080850152604082013560a085015260608201359360048510156102e2576040808761383c6135476001600160a01b036135348a99826138046137eb60019f8c9060c080926137b58361243d565b01528c6137c460808701612034565b60e0988991169101528c6137da60a08701612034565b610100958691169101528401612034565b946001600160a01b036101209616868d01528301612034565b6001600160a01b036101409116818c015261016091830135828c015261018094830135858c01528201356101a08b0152810190612fb0565b940101359101529801950192018d979695949391613611565b3d15613880573d9061386682612f05565b9161387460405193846121f3565b82523d6000602084013e565b606090565b8215613949576001600160a01b0390811690816138fb575050600080809381935af16138af613855565b50156138b757565b606460405162461bcd60e51b815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b9261394793604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252613942826121d7565b614c81565b565b505050565b60206001600160a01b03600460009360405194859384927f1d52edc4000000000000000000000000000000000000000000000000000000008452165af19081156102ef57600091612557575090565b156139a457565b606460405162461bcd60e51b815260206004820152600e60248201527f6e6f206578697374696e67206c700000000000000000000000000000000000006044820152fd5b9495929190613a2a604051956139fd8761219f565b878752602087019280845260408801948552606098606089019687528260808a01528a60a08a0152614662565b94604088015115613b56575b60005b87890151811015613b115786908986613ab0613aa9613ac56080613abb8b858b613ab58e613a85613a6a8e8e614975565b9e8f9451925196519c5196613a7e86614c54565b91846151d8565b613aa4836020949e94613a9c949e948988516123ea565b9601516123dd565b6123dd565b958b6123ea565b612b67565b986123dd565b95015185856149f7565b613b0057505011613ae757600182018092116123ae576001918a525b01613a39565b60001982019182116123ae5760019160208b0152613ae1565b949c509a5092985050505050505050565b60405162461bcd60e51b815260206004820152601a60248201527f536c6970706167653a20415050524f585f4558484155535445440000000000006044820152606490fd5b602088018051825160009060208a01613b6f815161239f565b808403613c0f575081519051613b8491614383565b670d529ae9e860000090808202918205036123ae57670de0b6b3a7640000613bae9251910561436a565b600081126102e25780821015613c0857505b80821015613c0157505b808252845180821015613bf95750905b52613be488614904565b613bf4604082510151151561399d565b613a36565b905090613bda565b9050613bca565b9050613bc0565b613c1981856123ea565b60018082018092116123ae571c908351613c3483855161436a565b613c3e8285614383565b6000821380613d2d575b15613ce9578f613cc5670de0b6b3a764000091613cc0613cab613ca6613ccc97613c9b613ca0613c888f8f9060009e613c82915190614383565b906142bf565b613c9b613c95858d6142bf565b9161428b565b614da6565b9861428b565b6154cd565b6040613cb78451614d8c565b9301519561436a565b6142bf565b059061436a565b1215613ce15750613cdc9061239f565b613b6f565b935092613b6f565b606460405162461bcd60e51b815260206004820152601260248201527f696e76616c6964207074546f4d61726b657400000000000000000000000000006044820152fd5b5060008113613c48565b908160209103126102e2575180151581036102e25790565b916001600160a01b038092168352602083015260606040830152823560048110156102e257613d7d8161243d565b6060830152613d8e60208401612034565b1660808201526060613db7613da66040850185612fb0565b608060a086015260e0850191613000565b920135908115158092036102e25760c0015290565b93929360808501613ddd818761240a565b3560048110156102e257613df08161243d565b80613e55575050602092613e05928692614a4c565b925b01358210613e1157565b606460405162461bcd60e51b815260206004820152602060248201527f536c6970706167653a20494e53554646494349454e545f544f4b454e5f4f55546044820152fd5b80613e66600392989596949861243d565b03613eab5750613e7d82613ea69260209530614a4c565b8095613e9882613e8f60408701612275565b6125e787612275565b613ea184612275565b613885565b613e07565b90613ed5613ecf846001600160a01b03936060820197613eca89612275565b614a4c565b94612275565b16613eec613ee560408501612275565b928461240a565b90803b156102e257613f329460008094604051978895869485937f2bdb823c00000000000000000000000000000000000000000000000000000000855260048501613d4f565b03925af19182156102ef57602092613f60575b50613ea6613f556126be83612275565b8095613ea184612275565b613f699061216e565b38613f45565b9091906001600160a01b031680613f8b5750905034036126f257565b81613f9557505050565b61394792309161439f565b6000906001600160a01b031680613fb75750504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa91821561258657809261400057505090565b9091506020823d602011614029575b8161401c602093836121f3565b810103126128ab57505190565b3d915061400f565b6001600160a01b039190821680614092575016803b156102e2576000906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af180156102ef576140895750565b6139479061216e565b92915050813b156102e2576000916024839260405194859384927f2e1a7d4d00000000000000000000000000000000000000000000000000000000845260048401525af180156102ef576140895750565b919095929495604051906140f68261219f565b83825260209461412c8684019783895260408501958652606093606086019a8b5260809782608088015260a087019c8d52614662565b868a51604081015115614246575b505060005b8a519084820151811015613b11578b878761417e8c8f8f97906141748f928961416791614975565b809a8c88519151916151d8565b9691959095614c54565b958a88518811614223576141c06141c794613ab0836141b8613ab096613aa48e6141d29d6141af829a8d51516123dd565b9b5101516123ea565b9251906123ea565b98516123dd565b9551015185856149f7565b61420e575050116141f557600182018092116123ae576001918c51525b0161413f565b60001982019182116123ae57600191898d5101526141ef565b9d509d50505050965050955050505050929190565b9750505050505050506000199150019182116123ae57600191898d5101526141ef565b015161425485515183614bca565b8082101561428457505b878b51015261426d8a51614904565b61427d604085510151151561399d565b863861413a565b905061425e565b90670de0b6b3a7640000918281029281840514901517156123ae57565b90816000039180830560001914901517156123ae57565b8181029291600082127f80000000000000000000000000000000000000000000000000000000000000008214166123ae5781840514901517156123ae57565b8115612b845760001982147f80000000000000000000000000000000000000000000000000000000000000008214166123ae570590565b9060001982019182136001166123ae57565b90670de0b6b3a7640000600083820393128184128116918413901516176123ae57565b818103929160001380158285131691841216176123ae57565b919091600083820193841291129080158216911516176123ae57565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000060208201526001600160a01b039283166024820152929091166044830152606480830193909352918152613947916139426084836121f3565b906001600160a01b039081831692831561465c57604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03841660248201526020959193918690829060449082905afa801561465157600090614618575b6b7fffffffffffffffffffffff915010614487575b5050505050565b825193600080878701927f095ea7b30000000000000000000000000000000000000000000000000000000094858552169283602489015260449782898201528881526144d2816121d7565b519082875af16144e0613855565b816145e8575b50156145a6579160009291838093865190898201938452602482015260001988820152878152614515816121d7565b51925af1614521613855565b81614576575b5015614534578080614480565b606492917f5361666520417070726f7665000000000000000000000000000000000000000091519262461bcd60e51b84526004840152600c6024840152820152fd5b8051801592508590831561458e575b50505038614527565b61459e9350820181019101613d37565b388481614585565b6064867f5361666520417070726f766500000000000000000000000000000000000000008787519262461bcd60e51b84526004840152600c6024840152820152fd5b80518015925088908315614600575b505050386144e6565b6146109350820181019101613d37565b3887816145f7565b508581813d831161464a575b61462e81836121f3565b810103126102e2576b7fffffffffffffffffffffff905161446b565b503d614624565b84513d6000823e3d90fd5b50505050565b92919260409081516080810181811067ffffffffffffffff821117611f8457835260009182825260208201908382528483018481526060840196858852849960a0840181815111156148db57906146b991516123dd565b936080840151976301e1338096878a0299808b058914901517156148ae577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff998a88116148aa578761470a916142fe565b8981131561487a57815260208601518981121561487257600019905b8a811315614864575b614743670de0b6b3a7640000968792612b67565b04908b82116148225790614756916142bf565b8084528651908115801561485c575b61482657505085519188614783896101008a01519651945196612b67565b048b81116148225761479490614dfb565b9485126147f25750926147cd60c09593613c9b6147c86147c386613c9b613c956147dc9e9d9b6147d39a614383565b615481565b61428b565b9061436a565b90520151612b67565b049182116128ab57506147ee90614dfb565b9052565b8460249151907fca78c8a40000000000000000000000000000000000000000000000000000000082526004820152fd5b8a80fd5b604492508351917fb1c4aefb00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b508015614765565b61486d90614c54565b61472f565b600190614726565b6024908351907f1ca418760000000000000000000000000000000000000000000000000000000082526004820152fd5b8980fd5b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b600489517fb2094b59000000000000000000000000000000000000000000000000000000008152fd5b805160208201511090811561495f575b5061491b57565b606460405162461bcd60e51b815260206004820152601f60248201527f496e7465726e616c3a20494e56414c49445f415050524f585f504152414d53006044820152fd5b670de0b6b3a76400009150608001511138614914565b9015806149ea575b6149e35760208151910151808211156149d457606460405162461bcd60e51b815260206004820152601d60248201527f536c6970706167653a2067756573734d696e203e2067756573734d61780000006044820152fd5b6149dd916123ea565b60011c90565b6040015190565b506040810151151561497d565b90670de0b6b3a7640000908382038281116123ae5782614a18859284612b67565b0411159384614a29575b5050505090565b909180939450018083116123ae57614a4091612b67565b04101538808080614a22565b60a4604091602093614a6b966001600160a01b03978895869201612275565b60405197889687957f769f8e5d0000000000000000000000000000000000000000000000000000000087521660048601526024850152166044830152600096879182606485015260016084850152165af191821561258657809261400057505090565b9490939192614ade908587614662565b92604083015115614b97575b60005b6060840151811015613b1157614b038185614975565b614b1a614b128289898c6151d8565b509190614c54565b84811180159190614b7a57608088015182614b50575b5050614b43575084526001905b01614aed565b9750945050509250509190565b909150670de0b6b3a76400009081038181116123ae57614b709087612b67565b0411153880614b30565b5050509060001982019182116123ae576001916020860152614b3d565b602083018051614ba8885187614bca565b80821015614bc25750905b52614bbd83614904565b614aea565b905090614bb3565b90614bf8614bfe614be4606085015160408601519061436a565b670de0b6b3a76400009283918651906142bf565b05614dfb565b9281840190828212600086129080158216911516176123ae57613c826020614c2f613cc594613c9b614c389961428b565b92015185614383565b6103e7908181029181830414901517156123ae576103e8900490565b7f800000000000000000000000000000000000000000000000000000000000000081146123ae5760000390565b6001600160a01b0316604051604081019181831067ffffffffffffffff841117611f8457614cf1926040526000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614ceb613855565b916159c3565b805190828215928315614d74575b50505015614d0a5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b614d849350820181019101613d37565b388281614cff565b8015612b84576ec097ce7bc90715b34b9f10000000000590565b8115612b84570590565b15614db757565b606460405162461bcd60e51b815260206004820152601060248201527f496e76616c6964206578706f6e656e74000000000000000000000000000000006044820152fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffdc702bd3a30fc0000811215806151c5575b614e2e90614db0565b600081126151b0576064906806f05b59d3b2000000811261514d577ffffffffffffffffffffffffffffffffffffffffffffffff90fa4a62c4e0000000168056bc75e2d6310000082770195e54c5dd42177f53a27172fa9ec630262827000000000925b02819068ad78ebc5ac62000000811215615114575b806856bc75e2d631000000849212156150da575b682b5e3af16b188000008112156150a2575b6815af1d78b58c40000081121561506a575b680ad78ebc5ac6200000811215615033575b81811215614ffc575b6802b5e3af16b1880000811215614fc5575b68015af1d78b58c40000811215614f8e575b60028282800205056003838383020505600484848302050560058585830205056006868683020505600787878302050590600888888402050592600989898602050594600a8a8a8802050596600b8b8b8a02050598600c8c8c8c0205059a0101010101010101010101010205020590565b6806f5f17757889379377ffffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c000083920193020591614f1d565b6808f00f760a4b2db55d7ffffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e78000083920193020591614f0b565b680ebc5fb417461211107ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf0000083920193020591614ef9565b68280e60114edb805d037ffffffffffffffffffffffffffffffffffffffffffffffff5287143a539e0000083920193020591614ef0565b690127fa27722cc06cc5e27fffffffffffffffffffffffffffffffffffffffffffffffea50e2874a73c0000083920193020591614ede565b693f1fce3da636ea5cf8507fffffffffffffffffffffffffffffffffffffffffffffffd4a1c50e94e780000083920193020591614ecc565b6b02df0ab5a80a22c61ab5a7007fffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf00000083920193020591614eba565b6e01855144814a7ff805980ff008400091507fffffffffffffffffffffffffffffffffffffffffffffff5287143a539e00000001614ea6565b6803782dace9d9000000811261519d577ffffffffffffffffffffffffffffffffffffffffffffffffc87d25316270000000168056bc75e2d63100000826b1425982cf597cd205cef738092614e91565b68056bc75e2d6310000082600192614e91565b6151bc90600003614dfb565b61239c90614d8c565b5068070c1cc73b00c80000811315614e25565b9391928451602083015183519060408501519284811261543d57613c9b613c9561520c93615206888561436a565b93614383565b670d529ae9e860000080821361540657506152369291613c9b6147c861523193615481565b614383565b670de0b6b3a7640000908181126153b357606061525e61525983613c9b8761428b565b6142a8565b9401519060008094136000146153e45781613c9b61527b9261428b565b8281126153b357508161529861529260e093614347565b866142bf565b05965b0151917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff928381116153af578760646152d76152de93836142bf565b059561436a565b918183128015615394571561538c57600019925b8281131561537e575b8181029181830414901517156153515786615315916123ea565b6000198101908111615351578661532b91612b7a565b9283116128ab575061534461239c939261534b926142bf565b95856155f4565b936155f4565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61538790614c54565b6152fb565b6001926152f2565b50505061239c9291506153aa61534b91866155f4565b615344565b5080fd5b602490604051907fca78c8a40000000000000000000000000000000000000000000000000000000082526004820152fd5b5061540061525982612ae26153fa60e095614347565b886142bf565b9661529b565b60449250604051917ffc68d09e00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b606460405162461bcd60e51b815260206004820152600860248201527f6e656761746976650000000000000000000000000000000000000000000000006044820152fd5b670de0b6b3a764000081146154a357613ca681613c9b613c9561239c94614347565b60046040517fa9c8b14d000000000000000000000000000000000000000000000000000000008152fd5b60008113156155b05780670c7d713b49da0000128061559f575b1561559657670de0b6b3a7640000906ec097ce7bc90715b34b9f10000000009061553a908302828101907fffffffffffffffffffffffffffffffffff3f68318436f8ea4cb460f000000000018302614da6565b9080828002059181838202058284820205838582020591848684020593858786020595808888020597880205600f900596600d900595600b900594600990059360079005926005900591600390050101010101010160011b0590565b61239c90615677565b50670f43fc2c04ee000081126154e7565b606460405162461bcd60e51b815260206004820152600d60248201527f6f7574206f6620626f756e6473000000000000000000000000000000000000006044820152fd5b600082121561566f57600019915b600081131561566057905b670de0b6b3a7640000918281029281840414901517156123ae5761563091612b7a565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116102e25761239c916142bf565b61566990614c54565b9061560d565b600191615602565b670de0b6b3a764000081126159ac5760649060007e1600ef3172e58d2e933ec884fde10064c63b5372d805e203c0000000000000821215615981575b73011798004d755d3c8bc8e03204cf44619e000000821215615960575b820290808302906e01855144814a7ff805980ff0084000908183121561593d575b50506b02df0ab5a80a22c61ab5a7008082121561591d575b50693f1fce3da636ea5cf850808212156158fd575b50690127fa27722cc06cc5e2808212156158dd575b5068280e60114edb805d03808212156158bd575b50680ebc5fb41746121110808212156158a6575b506808f00f760a4b2db55d80821215615886575b506806f5f177578893793780821215615866575b506806248f33704b28660380821215615847575b506805c548670b9510e7ac80821215615828575b506157e768056bc75e2d6310000091827ffffffffffffffffffffffffffffffffffffffffffffffffa9438a1d29cf00000818301920102614da6565b9080828002059181838202058284820205916003600560076009600b888a89020598808b8b02059a8b0205059805960594059205010101010160011b010590565b68056bc75e2d631000006756bc75e2d6310000920205910190386157ab565b68056bc75e2d6310000067ad78ebc5ac62000092020591019038615797565b68056bc75e2d6310000068015af1d78b58c4000092020591019038615783565b68056bc75e2d631000006802b5e3af16b18800009202059101903861576f565b68056bc75e2d63100000809202059101903861575b565b68056bc75e2d63100000680ad78ebc5ac620000092020591019038615747565b68056bc75e2d631000006815af1d78b58c40000092020591019038615733565b68056bc75e2d63100000682b5e3af16b188000009202059101903861571e565b68056bc75e2d631000006856bc75e2d63100000092020591019038615709565b68ad78ebc5ac62000000925069021e19e0c9bab2400000020591019038806156f1565b906b1425982cf597cd205cef73806803782dace9d9000000910591016156d0565b50770195e54c5dd42177f53a27172fa9ec63026282700000000090056806f05b59d3b20000006156b3565b6159b86159bd91614d8c565b615677565b60000390565b91929015615a2457508151156159d7575090565b3b156159e05790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015615a375750805190602001fd5b6102b09060405191829162461bcd60e51b835260206004840152602483019061233456fea2646970667358221220a4c537f505b1128562e68a3e3e6e2a7ee6700a4dd57da1fe5b1ce3b27c18f8bd64736f6c63430008170033";
2693
2693
 
2694
2694
  type ActionAddRemoveLiqV3ConstructorParams =
2695
2695
  | [signer?: Signer]