@pendle/core-v2 0.12.1-testnet → 0.12.2-testnet

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 (129) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +4 -4
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +1 -1
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +2 -2
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  12. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  13. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  14. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  16. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  19. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  23. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +2 -2
  25. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  30. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  32. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  42. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  44. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  46. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  48. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  50. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +25 -4
  52. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  54. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  56. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.json +2 -2
  58. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +25 -4
  60. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.json +23 -2
  62. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +25 -4
  64. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  74. package/build/artifacts/contracts/libraries/Errors.sol/Errors.dbg.json +1 -1
  75. package/build/artifacts/contracts/libraries/Errors.sol/Errors.json +25 -4
  76. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +1 -1
  77. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.json +2 -2
  78. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  79. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  80. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  81. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  82. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  83. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  84. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  85. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  86. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  87. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  88. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  89. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  90. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  91. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +23 -2
  92. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  93. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +2 -2
  94. package/contracts/libraries/Errors.sol +5 -1
  95. package/contracts/libraries/math/MarketApproxLib.sol +13 -12
  96. package/package.json +1 -1
  97. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +22 -1
  98. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  99. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  100. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  101. package/typechain-types/factories/ActionSwapPTYT__factory.ts +22 -1
  102. package/typechain-types/factories/ActionSwapPT__factory.ts +22 -1
  103. package/typechain-types/factories/ActionSwapYT__factory.ts +22 -1
  104. package/typechain-types/factories/Errors__factory.ts +24 -3
  105. package/typechain-types/factories/MarketMathStatic__factory.ts +22 -1
  106. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  107. package/typechain-types/factories/Pendle3CrvAndTokenSCY__factory.ts +1 -1
  108. package/typechain-types/factories/PendleConvexCurveLP2PoolSCY__factory.ts +1 -1
  109. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  110. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  111. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  112. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  113. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  114. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  115. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  116. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  117. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  118. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  119. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +3 -3
  120. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  121. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  122. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  123. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  124. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  125. package/typechain-types/factories/RouterStatic__factory.ts +1 -1
  126. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  127. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  128. package/typechain-types/hardhat.d.ts +0 -414
  129. package/typechain-types/index.ts +36 -36
@@ -17,6 +17,27 @@ const _abi = [
17
17
  stateMutability: "nonpayable",
18
18
  type: "constructor",
19
19
  },
20
+ {
21
+ inputs: [],
22
+ name: "ApproxFail",
23
+ type: "error",
24
+ },
25
+ {
26
+ inputs: [
27
+ {
28
+ internalType: "uint256",
29
+ name: "guessMin",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "uint256",
34
+ name: "guessMax",
35
+ type: "uint256",
36
+ },
37
+ ],
38
+ name: "ApproxGuessRangeInvalid",
39
+ type: "error",
40
+ },
20
41
  {
21
42
  inputs: [
22
43
  {
@@ -652,7 +673,7 @@ const _abi = [
652
673
  ];
653
674
 
654
675
  const _bytecode =
655
- "0x60a06040523480156200001157600080fd5b5060405162003a2138038062003a21833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613980620000a16000396000818160a1015281816112bd015261138a01526139806000f3fe6080604052600436106100605760003560e01c80630c56fc7a146100655780631ef6f3271461008f5780637027acd0146100d057806372d24598146100f0578063d65d45a914610110578063d79ca24014610130578063f615fe1114610150575b600080fd5b6100786100733660046130a1565b610170565b604051610086929190613120565b60405180910390f35b34801561009b57600080fd5b506100c37f000000000000000000000000000000000000000000000000000000000000000081565b604051610086919061312e565b3480156100dc57600080fd5b506100786100eb366004613142565b610275565b3480156100fc57600080fd5b5061007861010b3660046131ad565b6103fb565b34801561011c57600080fd5b5061007861012b3660046131ad565b6105f3565b34801561013c57600080fd5b5061007861014b3660046131f3565b61076d565b34801561015c57600080fd5b5061007861016b3660046131f3565b610857565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d89190613250565b925050915060006101ec8984600189610a82565b90506101fc8a8a84848c8c610c3b565b909550935061020e602087018761329d565b6001600160a01b0316896001600160a01b0316336001600160a01b031660008051602061392b8339815191528d6102448a610d8f565b6102518c60200135610da9565b604051610260939291906132ba565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dd9190613250565b5090925090506102f86001600160a01b038216338989610dc6565b604080516000808252602082019283905263d8e763c160e01b9092526001600160a01b0389169063d8e763c1906103369086908b9060248101613333565b60408051808303816000875af1158015610354573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610378919061335a565b9450905061038a898483896000610e37565b9450610399602087018761329d565b6001600160a01b0316886001600160a01b0316336001600160a01b031660008051602061392b8339815191528c6103cf8c610da9565b6103d88b610d8f565b6040516103e7939291906132ba565b60405180910390a450505094509492505050565b6000806000856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561043f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046391906133c8565b9050600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190613250565b92505091506104ed6104e4826001600160a01b0316611027565b8490894261108d565b5094508585111561051e57848660405163ddd5bdb560e01b8152600401610515929190613120565b60405180910390fd5b6105336001600160a01b038316338a88610dc6565b604080516000815260208101918290526307bb0e7160e41b9091526001600160a01b03891690637bb0e71090610570908c908b9060248101613333565b60408051808303816000875af115801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b2919061335a565b9450506001600160a01b03808a16908916336000805160206138e28339815191526105dc8b610d8f565b6105e58a610da9565b6040516103e7929190613120565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065a9190613250565b50915061067490506001600160a01b038216338888610dc6565b6040805160008152602081019182905263d8e763c160e01b9091526001600160a01b0387169063d8e763c1906106b1908a90899060248101613333565b60408051808303816000875af11580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f3919061335a565b90935091508383101561071d57828460405163cb95352560e01b8152600401610515929190613120565b6001600160a01b03808816908716336000805160206138e283398151915261074489610da9565b61074d88610d8f565b60405161075b929190613120565b60405180910390a45094509492505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190613250565b9193509091506107f290506001600160a01b038316338a8a610dc6565b6108008989838a8a8a610c3b565b90945092506001600160a01b03808a16908916336000805160206138e283398151915261082c88610d8f565b6108358c610da9565b604051610843929190613120565b60405180910390a450509550959350505050565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf91906133c8565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190613250565b925092505061095b610940826001600160a01b0316611027565b8942610951368b90038b018b61344a565b87939291906110d4565b509095505086851115610985578487604051633c0e098d60e11b8152600401610515929190613120565b61099a6001600160a01b038316338b88610dc6565b604080516000808252602082019283905263d8e763c160e01b9092526001600160a01b038b169063d8e763c1906109d8908e908a9060248101613333565b60408051808303816000875af11580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a919061335a565b9550905088811015610a2e57610a2e6134b9565b6001600160a01b03808c16908b16336000805160206138e2833981519152610a558a610da9565b610a5e8e610d8f565b604051610a6c929190613120565b60405180910390a4505050509550959350505050565b6000610a9f610a94602084018461329d565b33846020013561124b565b610aaf606083016040840161329d565b6001600160a01b0316610ac5602084018461329d565b6001600160a01b031614610b2f57610b2f610ae3602084018461329d565b6020840135610af560608601866134cf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112b792505050565b610b48610b42606084016040850161329d565b856113b8565b6000610b62610b5d606085016040860161329d565b611470565b9050600080610b77606086016040870161329d565b6001600160a01b031614610b8c576000610b8e565b815b90506001600160a01b0386166320e8c5658289610bb16060890160408a0161329d565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018690526064810189905260840160206040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c30919061351c565b979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca391906133c8565b9050610cd5610cba886001600160a01b0316611027565b8742610ccb3689900389018961344a565b85939291906114fa565b509093505084831015610cff578285604051634e6ffe4760e11b8152600401610515929190613120565b604080516000815260208101918290526307bb0e7160e41b9091526001600160a01b03891690637bb0e71090610d3c908c90879060248101613333565b60408051808303816000875af1158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7e919061335a565b939a93995092975050505050505050565b60006001600160ff1b03821115610da557600080fd5b5090565b6000610db482610d8f565b610dc09060001961354b565b92915050565b6040516001600160a01b0380851660248301528316604482015260648101829052610e319085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261161f565b50505050565b60008115610e5457610e546001600160a01b038616338787610dc6565b610e61602084018461329d565b6001600160a01b0316610e7a606085016040860161329d565b6001600160a01b031603610f1a576001600160a01b03851663769f8e5d8786610ea9606088016040890161329d565b876020013560016040518663ffffffff1660e01b8152600401610ed09594939291906135d0565b6020604051808303816000875af1158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f13919061351c565b905061101e565b60006001600160a01b03861663769f8e5d3087610f3d6060890160408a0161329d565b6001806040518663ffffffff1660e01b8152600401610f609594939291906135d0565b6020604051808303816000875af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa3919061351c565b9050610fc6610fb8606086016040870161329d565b82610af560608801886134cf565b610fd6610b5d602086018661329d565b915083602001358210156110055781846020013560405163c5b5576d60e01b8152600401610515929190613120565b61101c611015602086018661329d565b88846116f1565b505b95945050505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc0919061351c565b6000806000806110a788886110a189610d8f565b886117b5565b915091506110bc6110b783611875565b611883565b93506110c781611883565b9250505094509492505050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111088a8a89611892565b9050600061111a87836020015161198c565b9050600061113984604001518560200151611a3d90919063ffffffff16565b905060005b826060015181101561120957600080611161858789600001516000015186611a52565b9150915081611175576020850152506111f9565b60008061118789600001518985611abd565b915091508582106111f0578287602001818152505060006111ad83888a60800151611afc565b905080156111ea5760208a015184906111c69085611b32565b60208c01516111d59085611b32565b9c509c509c5050505050505050505050611240565b506111f4565b8287525b505050505b61120281613604565b905061113e565b5060405162461bcd60e51b815260206004820152600b60248201526a185c1c1c9bde0819985a5b60aa1b6044820152606401610515565b955095509592505050565b6001600160a01b03831661129c578034146112975760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610515565b505050565b8015611297576112976001600160a01b038416833084610dc6565b6112e1837f00000000000000000000000000000000000000000000000000000000000000006113b8565b60405163726d379760e11b815260009073__$559d48c320e1446b023c1ea40891219567$__9063e4da6f2e9061131d908590879060040161361d565b600060405180830381865af415801561133a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611362919081019061363f565b90506113b1816001600160a01b0386161561137e576000611380565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611b3e565b5050505050565b6001600160a01b0382166113ca575050565b6113dc60026001600160601b036136f6565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015611435573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611459919061351c565b101561146c5761146c8282600019611b64565b5050565b60006001600160a01b038216156114f3576040516370a0823160e01b81526001600160a01b038316906370a08231906114ad90309060040161312e565b602060405180830381865afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee919061351c565b610dc0565b4792915050565b604080516080810182528681526020810186905290810184905260608101839052600090819081908161152e8a8a89611892565b905060006115458783856000015160000151611c71565b9050600061156484604001518560200151611d1790919063ffffffff16565b905060005b82606001518110156112095760006115818483611d23565b905060008061159588600001518885611d82565b915091508482116115fa5782865260808601516000906115b89084908890611da2565b905080156115f457602089015184906115d19085611b32565b60208b01516115e09085611b32565b9b509b509b50505050505050505050611240565b5061160b565b61160560018461371c565b60208701525b5050508061161890613604565b9050611569565b6000611674826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611dd09092919063ffffffff16565b80519091501561129757808060200190518101906116929190613733565b6112975760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610515565b806000036116fe57505050565b6001600160a01b0383166117a1576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611759576040519150601f19603f3d011682016040523d82523d6000602084013e61175e565b606091505b5050905080610e315760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610515565b6112976001600160a01b0384168383611ddf565b6000806117c68660c0015184101590565b156117e45760405163b2094b5960e01b815260040160405180910390fd5b8551841261180a578551604051632185509b60e21b815261051591908690600401613120565b6000611817878786611892565b9050600080611827898489611dfe565b91509150600082126118425761183d8883611f0e565b61184c565b61184c8883611f4a565b94506118588882611f0e565b935061186989848a8a89898c611f77565b50505094509492505050565b6000610dc08260001961354b565b600080821215610da557600080fd5b6118bd6040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106118e15760405163b2094b5960e01b815260040160405180910390fd5b6000828560c001516118f3919061371c565b90506118ff8582612009565b82526020850151611911908590612065565b60208301528451158061192657506020820151155b1561194d578451602083015160405163b1c4aefb60e01b8152610515929190600401613120565b61196b85600001518661010001518460200151856000015185612092565b604083015260a085015161197f9082612113565b6060830152509392505050565b6119c56040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8251815260208301516119e0906119db8461214c565b612163565b60208201819052604080850151908301526060808501519083015260808085015190830152815111801590611a215750670de0b6b3a7640000816080015111155b610dc05760405162461bcd60e51b815260040161051590613755565b600082611a4a8184612179565b949350505050565b6000806000611a618785611d23565b90508660a001518111611a7957600192509050611ab4565b6000611a8e8787611a8985610d8f565b6121af565b90506000811215611aa55750600092509050611ab4565b5060a087018190526001925090505b94509492505050565b600080600080611ad886611ad087610da9565b899190611dfe565b91509150611ae582611883565b9350611af081611883565b92505050935093915050565b6000828410158015611b285750611b2483611b1f84670de0b6b3a7640000613784565b6122a7565b8411155b90505b9392505050565b6000611b2b83836122c7565b6060611b28848484604051806060016040528060298152602001613902602991396122dc565b600080846001600160a01b031663095ea7b360e01b8585604051602401611b8c92919061379c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611bca91906137b5565b6000604051808303816000865af19150503d8060008114611c07576040519150601f19603f3d011682016040523d82523d6000602084013e611c0c565b606091505b5091509150818015611c36575080511580611c36575080806020019051810190611c369190613733565b6113b15760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610515565b611ca36040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b835181526020840151611cba906119db8585612402565b60208201819052604080860151908301526060808601519083015260808086015190830152815111801590611cfb5750670de0b6b3a7640000816080015111155b611b2b5760405162461bcd60e51b815260040161051590613755565b6000611b2b8383612494565b600081158015611d365750604083015115155b15611d4657506040820151610dc0565b602083015183511115611d5e57506020820151610dc0565b60208301518351600291611d7191613784565b611d7b91906137d1565b9050610dc0565b600080600080611d9586611ad087610d8f565b91509150611ae5826124a9565b6000828411158015611b285750611dc583611b1f84670de0b6b3a764000061371c565b909310159392505050565b6060611b2884846000856122dc565b6112978363a9059cbb60e01b8484604051602401610dfa92919061379c565b6000806000611e208660000151866020015187600001518860400151886124bb565b90506000611e36611e31868461256c565b611875565b60608701519091506000861315611ea5576000611e53848361256c565b9050670de0b6b3a7640000811215611e815760405163329e322960e21b815260048101829052602401610515565b611e9d611e9683670de0b6b3a76400006137e5565b849061259b565b915050611ed2565b611ecf81611ebb81670de0b6b3a76400006137e5565b611ec5908561354b565b611e319190613824565b90505b6064611ee18960e00151610d8f565b611eeb908361354b565b611ef59190613824565b9350611f0181836137e5565b9450505050935093915050565b60008060008312611f20576001611f24565b6000195b9050611f40611f3b85611f36866124a9565b6122c7565b610d8f565b611a4a908261354b565b60008060008312611f5c576001611f60565b6000195b9050611f40611f3b85611f72866124a9565b6125b9565b6000818860c00151611f89919061371c565b8851909150611f9890866125d1565b8852611fb2611fa78486613852565b60208a0151906125d1565b602089018190528851611fd791611fca908990612065565b895160408b015185612618565b6101008901819052600003611fff57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600061201482610d8f565b612026611f3b6201518061016d613893565b8460800151612035919061354b565b61203f9190613824565b905060008113610dc057604051630e520c3b60e11b815260048101829052602401610515565b6000806000831261207757600161207b565b6000195b9050611f40611f3b8561208d866124a9565b612494565b60008061209f8684612113565b9050670de0b6b3a76400008112156120cd5760405163329e322960e21b815260048101829052602401610515565b60006120e36120dc878a613852565b899061256c565b905060006120f08261266b565b90506120fc818761256c565b61210690846137e5565b9998505050505050505050565b6000806121256201518061016d613893565b61212f8486613893565b61213991906137d1565b9050611a4a61214782610d8f565b6126be565b6000600161215983611883565b610dc0919061371c565b60008183106121725781611b2b565b5090919050565b6000670de0b6b3a76400006001816121918686613893565b61219b9190613784565b6121a5919061371c565b611b2b91906137d1565b6000808285602001516121c291906137e5565b905060006121d08585613852565b90506000821380156121e25750600081135b6122235760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610515565b6000612251612232848461354b565b60208901516122419089613852565b61224b908861354b565b9061256c565b90506000612267612262848661256c565b612ad3565b885190915060009061228290670de0b6b3a76400009061256c565b90506122988161229284866137e5565b9061259b565b896040015161210691906137e5565b6000806122b48385613893565b670de0b6b3a76400009004949350505050565b6000826121a5670de0b6b3a764000084613893565b60608247101561233d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610515565b6001600160a01b0385163b6123945760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610515565b600080866001600160a01b031685876040516123b091906137b5565b60006040518083038185875af1925050503d80600081146123ed576040519150601f19603f3d011682016040523d82523d6000602084013e6123f2565b606091505b5091509150610c30828286612b64565b60008061242461214785600001518660400151876060015161229291906137e5565b9050600061244461243d670de0b6b3a764000084613852565b839061256c565b9050600061246286602001518661245b9190613852565b839061259b565b9050600061247082876137e5565b90506103e861247e82611883565b61248a906103e7613893565b610c3091906137d1565b6000670de0b6b3a76400006121a58484613893565b6000808213610da5576114ee826138b2565b6000806124c887846125d1565b905060006124d961243d888a613852565b9050670d529ae9e86000008113156125105780670d529ae9e8600000604051637e34684f60e11b8152600401610515929190613120565b600061251b8261266b565b905085612528828961256c565b6125329190613852565b9350670de0b6b3a76400008412156125605760405163329e322960e21b815260048101859052602401610515565b50505095945050505050565b600080612581670de0b6b3a76400008561354b565b9050828181612592576125926136e0565b05949350505050565b6000806125a8838561354b565b9050670de0b6b3a764000081612592565b600082600181612191670de0b6b3a764000086613893565b60008183121561260e5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610515565b611b2b82846137e5565b6000806126298787878760006124bb565b905060006126396110b783612ad3565b90508361264b6201518061016d613893565b6126559083613893565b61265f91906137d1565b98975050505050505050565b6000670de0b6b3a764000082036126955760405163a9c8b14d60e01b815260040160405180910390fd5b60006126b36126ac84670de0b6b3a76400006137e5565b849061256c565b9050611b2b81612ad3565b6000680238fd42c5cf03ffff1982121580156126e3575068070c1cc73b00c800008213155b6127225760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610515565b600082121561275a57612737826000036126be565b6a0c097ce7bc90715b34b9f160241b81612753576127536136e0565b0592915050565b60006806f05b59d3b2000000831261279857506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6127ce565b6803782dace9d900000083126127ca57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806127ce565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261281e5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261285a576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261289457682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126128ce576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261290757680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126129405768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612979576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126129b25768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000808213612b145760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610515565b670c7d713b49da000082138015612b325750670f43fc2c04ee000082125b15612b5657670de0b6b3a7640000612b4983612b9d565b81612753576127536136e0565b610dc082612cbc565b919050565b60608315612b73575081611b2b565b825115612b835782518084602001fd5b8160405162461bcd60e51b815260040161051591906138ce565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612bde57612bde6136e0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612cfd57612cf4826a0c097ce7bc90715b34b9f160241b81612cee57612cee6136e0565b05612cbc565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612d485772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612d7f576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612dc7576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612e02576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612e3957693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612e7057690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612ea55768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612ed057680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612f05576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612f3a576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612f6e576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612fa2576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612fcb57612fcb6136e0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461307457600080fd5b50565b600060a0828403121561308957600080fd5b50919050565b60006080828403121561308957600080fd5b600080600080600061012086880312156130ba57600080fd5b85356130c58161305f565b945060208601356130d58161305f565b9350604086013592506130eb8760608801613077565b91506101008601356001600160401b0381111561310757600080fd5b6131138882890161308f565b9150509295509295909350565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6000806000806080858703121561315857600080fd5b84356131638161305f565b935060208501356131738161305f565b92506040850135915060608501356001600160401b0381111561319557600080fd5b6131a18782880161308f565b91505092959194509250565b600080600080608085870312156131c357600080fd5b84356131ce8161305f565b935060208501356131de8161305f565b93969395505050506040820135916060013590565b6000806000806000610120868803121561320c57600080fd5b85356132178161305f565b945060208601356132278161305f565b935060408601359250606086013591506132448760808801613077565b90509295509295909350565b60008060006060848603121561326557600080fd5b83516132708161305f565b60208501519093506132818161305f565b60408501519092506132928161305f565b809150509250925092565b6000602082840312156132af57600080fd5b8135611b2b8161305f565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b838110156132f65781810151838201526020016132de565b83811115610e315750506000910152565b6000815180845261331f8160208601602086016132db565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061101e6060830184613307565b6000806040838503121561336d57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156133b7576133b761337e565b60405290565b8051612b5f8161305f565b600061012082840312156133db57600080fd5b6133e3613394565b825181526020830151602082015260408301516040820152613407606084016133bd565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060a0828403121561345c57600080fd5b60405160a081016001600160401b038111828210171561347e5761347e61337e565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b6000808335601e198436030181126134e657600080fd5b8301803591506001600160401b0382111561350057600080fd5b60200191503681900382131561351557600080fd5b9250929050565b60006020828403121561352e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60006001600160ff1b038184138284138082168684048611161561357157613571613535565b600160ff1b600087128281168783058912161561359057613590613535565b600087129250878205871284841616156135ac576135ac613535565b878505871281841616156135c2576135c2613535565b505050929093029392505050565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b60006001820161361657613616613535565b5060010190565b6040815260006136306040830185613307565b90508260208301529392505050565b60006020828403121561365157600080fd5b81516001600160401b038082111561366857600080fd5b818401915084601f83011261367c57600080fd5b81518181111561368e5761368e61337e565b604051601f8201601f19908116603f011681019083821181831017156136b6576136b661337e565b816040528281528760208487010111156136cf57600080fd5b610c308360208301602088016132db565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680613710576137106136e0565b92169190910492915050565b60008282101561372e5761372e613535565b500390565b60006020828403121561374557600080fd5b81518015158114611b2b57600080fd5b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b604082015260600190565b6000821982111561379757613797613535565b500190565b6001600160a01b03929092168252602082015260400190565b600082516137c78184602087016132db565b9190910192915050565b6000826137e0576137e06136e0565b500490565b60008083128015600160ff1b85018412161561380357613803613535565b6001600160ff1b038401831381161561381e5761381e613535565b50500390565b600082613833576138336136e0565b600160ff1b82146000198414161561384d5761384d613535565b500590565b600080821280156001600160ff1b038490038513161561387457613874613535565b600160ff1b839003841281161561388d5761388d613535565b50500190565b60008160001904831182151516156138ad576138ad613535565b500290565b6000600160ff1b82016138c7576138c7613535565b5060000390565b602081526000611b2b602083018461330756fec63e731085b5bdd8931c46f55e56e122352a12d4d2cd895116684fbe1292b127416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656478e08a1e3c7a72f78d2c8ad8254052914bad73f8c681dbdc4267d0bb8ac9423ca264697066735822122020e56f4664b4ac813a2538eac04d944050e779f3cc9c9e00629d048f7a03114564736f6c634300080f0033";
676
+ "0x60a06040523480156200001157600080fd5b5060405162003a1a38038062003a1a833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613979620000a16000396000818160a1015281816112a0015261136d01526139796000f3fe6080604052600436106100605760003560e01c80630c56fc7a146100655780631ef6f3271461008f5780637027acd0146100d057806372d24598146100f0578063d65d45a914610110578063d79ca24014610130578063f615fe1114610150575b600080fd5b61007861007336600461309a565b610170565b604051610086929190613119565b60405180910390f35b34801561009b57600080fd5b506100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100869190613127565b3480156100dc57600080fd5b506100786100eb36600461313b565b610275565b3480156100fc57600080fd5b5061007861010b3660046131a6565b6103fb565b34801561011c57600080fd5b5061007861012b3660046131a6565b6105f3565b34801561013c57600080fd5b5061007861014b3660046131ec565b61076d565b34801561015c57600080fd5b5061007861016b3660046131ec565b610857565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d89190613249565b925050915060006101ec8984600189610a82565b90506101fc8a8a84848c8c610c3b565b909550935061020e6020870187613296565b6001600160a01b0316896001600160a01b0316336001600160a01b03166000805160206139248339815191528d6102448a610d8f565b6102518c60200135610da9565b604051610260939291906132b3565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dd9190613249565b5090925090506102f86001600160a01b038216338989610dc6565b604080516000808252602082019283905263d8e763c160e01b9092526001600160a01b0389169063d8e763c1906103369086908b906024810161332c565b60408051808303816000875af1158015610354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103789190613353565b9450905061038a898483896000610e37565b94506103996020870187613296565b6001600160a01b0316886001600160a01b0316336001600160a01b03166000805160206139248339815191528c6103cf8c610da9565b6103d88b610d8f565b6040516103e7939291906132b3565b60405180910390a450505094509492505050565b6000806000856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561043f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046391906133c1565b9050600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190613249565b92505091506104ed6104e4826001600160a01b0316611027565b8490894261108d565b5094508585111561051e57848660405163ddd5bdb560e01b8152600401610515929190613119565b60405180910390fd5b6105336001600160a01b038316338a88610dc6565b604080516000815260208101918290526307bb0e7160e41b9091526001600160a01b03891690637bb0e71090610570908c908b906024810161332c565b60408051808303816000875af115801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b29190613353565b9450506001600160a01b03808a16908916336000805160206138db8339815191526105dc8b610d8f565b6105e58a610da9565b6040516103e7929190613119565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065a9190613249565b50915061067490506001600160a01b038216338888610dc6565b6040805160008152602081019182905263d8e763c160e01b9091526001600160a01b0387169063d8e763c1906106b1908a9089906024810161332c565b60408051808303816000875af11580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190613353565b90935091508383101561071d57828460405163cb95352560e01b8152600401610515929190613119565b6001600160a01b03808816908716336000805160206138db83398151915261074489610da9565b61074d88610d8f565b60405161075b929190613119565b60405180910390a45094509492505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190613249565b9193509091506107f290506001600160a01b038316338a8a610dc6565b6108008989838a8a8a610c3b565b90945092506001600160a01b03808a16908916336000805160206138db83398151915261082c88610d8f565b6108358c610da9565b604051610843929190613119565b60405180910390a450509550959350505050565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf91906133c1565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190613249565b925092505061095b610940826001600160a01b0316611027565b8942610951368b90038b018b613443565b87939291906110d4565b509095505086851115610985578487604051633c0e098d60e11b8152600401610515929190613119565b61099a6001600160a01b038316338b88610dc6565b604080516000808252602082019283905263d8e763c160e01b9092526001600160a01b038b169063d8e763c1906109d8908e908a906024810161332c565b60408051808303816000875af11580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190613353565b9550905088811015610a2e57610a2e6134b2565b6001600160a01b03808c16908b16336000805160206138db833981519152610a558a610da9565b610a5e8e610d8f565b604051610a6c929190613119565b60405180910390a4505050509550959350505050565b6000610a9f610a946020840184613296565b33846020013561122e565b610aaf6060830160408401613296565b6001600160a01b0316610ac56020840184613296565b6001600160a01b031614610b2f57610b2f610ae36020840184613296565b6020840135610af560608601866134c8565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061129a92505050565b610b48610b426060840160408501613296565b8561139b565b6000610b62610b5d6060850160408601613296565b611453565b9050600080610b776060860160408701613296565b6001600160a01b031614610b8c576000610b8e565b815b90506001600160a01b0386166320e8c5658289610bb16060890160408a01613296565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018690526064810189905260840160206040518083038185885af1158015610c0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c309190613515565b979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca391906133c1565b9050610cd5610cba886001600160a01b0316611027565b8742610ccb36899003890189613443565b85939291906114dd565b509093505084831015610cff578285604051634e6ffe4760e11b8152600401610515929190613119565b604080516000815260208101918290526307bb0e7160e41b9091526001600160a01b03891690637bb0e71090610d3c908c9087906024810161332c565b60408051808303816000875af1158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7e9190613353565b939a93995092975050505050505050565b60006001600160ff1b03821115610da557600080fd5b5090565b6000610db482610d8f565b610dc090600019613544565b92915050565b6040516001600160a01b0380851660248301528316604482015260648101829052610e319085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611602565b50505050565b60008115610e5457610e546001600160a01b038616338787610dc6565b610e616020840184613296565b6001600160a01b0316610e7a6060850160408601613296565b6001600160a01b031603610f1a576001600160a01b03851663769f8e5d8786610ea96060880160408901613296565b876020013560016040518663ffffffff1660e01b8152600401610ed09594939291906135c9565b6020604051808303816000875af1158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190613515565b905061101e565b60006001600160a01b03861663769f8e5d3087610f3d6060890160408a01613296565b6001806040518663ffffffff1660e01b8152600401610f609594939291906135c9565b6020604051808303816000875af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa39190613515565b9050610fc6610fb86060860160408701613296565b82610af560608801886134c8565b610fd6610b5d6020860186613296565b915083602001358210156110055781846020013560405163c5b5576d60e01b8152600401610515929190613119565b61101c6110156020860186613296565b88846116d4565b505b95945050505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc09190613515565b6000806000806110a788886110a189610d8f565b88611798565b915091506110bc6110b783611858565b611866565b93506110c781611866565b9250505094509492505050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111088a8a89611875565b9050600061111a87836020015161196f565b9050600061113984604001518560200151611a2090919063ffffffff16565b905060005b826060015181101561120957600080611161858789600001516000015186611a35565b9150915081611175576020850152506111f9565b60008061118789600001518985611aa0565b915091508582106111f0578287602001818152505060006111ad83888a60800151611adf565b905080156111ea5760208a015184906111c69085611b15565b60208c01516111d59085611b15565b9c509c509c5050505050505050505050611223565b506111f4565b8287525b505050505b611202816135fd565b905061113e565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6001600160a01b03831661127f5780341461127a5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610515565b505050565b801561127a5761127a6001600160a01b038416833084610dc6565b6112c4837f000000000000000000000000000000000000000000000000000000000000000061139b565b60405163726d379760e11b815260009073__$559d48c320e1446b023c1ea40891219567$__9063e4da6f2e906113009085908790600401613616565b600060405180830381865af415801561131d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113459190810190613638565b9050611394816001600160a01b03861615611361576000611363565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611b21565b5050505050565b6001600160a01b0382166113ad575050565b6113bf60026001600160601b036136ef565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015611418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143c9190613515565b101561144f5761144f8282600019611b47565b5050565b60006001600160a01b038216156114d6576040516370a0823160e01b81526001600160a01b038316906370a0823190611490903090600401613127565b602060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d19190613515565b610dc0565b4792915050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816115118a8a89611875565b905060006115288783856000015160000151611c54565b9050600061154784604001518560200151611cfa90919063ffffffff16565b905060005b82606001518110156112095760006115648483611d06565b905060008061157888600001518885611d7b565b915091508482116115dd57828652608086015160009061159b9084908890611d9b565b905080156115d757602089015184906115b49085611b15565b60208b01516115c39085611b15565b9b509b509b50505050505050505050611223565b506115ee565b6115e8600184613715565b60208701525b505050806115fb906135fd565b905061154c565b6000611657826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611dc99092919063ffffffff16565b80519091501561127a5780806020019051810190611675919061372c565b61127a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610515565b806000036116e157505050565b6001600160a01b038316611784576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461173c576040519150601f19603f3d011682016040523d82523d6000602084013e611741565b606091505b5050905080610e315760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610515565b61127a6001600160a01b0384168383611dd8565b6000806117a98660c0015184101590565b156117c75760405163b2094b5960e01b815260040160405180910390fd5b855184126117ed578551604051632185509b60e21b815261051591908690600401613119565b60006117fa878786611875565b905060008061180a898489611df7565b9150915060008212611825576118208883611f07565b61182f565b61182f8883611f43565b945061183b8882611f07565b935061184c89848a8a89898c611f70565b50505094509492505050565b6000610dc082600019613544565b600080821215610da557600080fd5b6118a06040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106118c45760405163b2094b5960e01b815260040160405180910390fd5b6000828560c001516118d69190613715565b90506118e28582612002565b825260208501516118f490859061205e565b60208301528451158061190957506020820151155b15611930578451602083015160405163b1c4aefb60e01b8152610515929190600401613119565b61194e8560000151866101000151846020015185600001518561208b565b604083015260a0850151611962908261210c565b6060830152509392505050565b6119a86040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8251815260208301516119c3906119be84612145565b61215c565b60208201819052604080850151908301526060808501519083015260808085015190830152815111801590611a045750670de0b6b3a7640000816080015111155b610dc05760405162461bcd60e51b81526004016105159061374e565b600082611a2d8184612172565b949350505050565b6000806000611a448785611d06565b90508660a001518111611a5c57600192509050611a97565b6000611a718787611a6c85610d8f565b6121a8565b90506000811215611a885750600092509050611a97565b5060a087018190526001925090505b94509492505050565b600080600080611abb86611ab387610da9565b899190611df7565b91509150611ac882611866565b9350611ad381611866565b92505050935093915050565b6000828410158015611b0b5750611b0783611b0284670de0b6b3a764000061377d565b6122a0565b8411155b90505b9392505050565b6000611b0e83836122c0565b6060611b0b8484846040518060600160405280602981526020016138fb602991396122d5565b600080846001600160a01b031663095ea7b360e01b8585604051602401611b6f929190613795565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611bad91906137ae565b6000604051808303816000865af19150503d8060008114611bea576040519150601f19603f3d011682016040523d82523d6000602084013e611bef565b606091505b5091509150818015611c19575080511580611c19575080806020019051810190611c19919061372c565b6113945760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610515565b611c866040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b835181526020840151611c9d906119be85856123fb565b60208201819052604080860151908301526060808601519083015260808086015190830152815111801590611cde5750670de0b6b3a7640000816080015111155b611b0e5760405162461bcd60e51b81526004016105159061374e565b6000611b0e838361248d565b600081158015611d195750604083015115155b15611d2957506040820151610dc0565b6020830151835111611d595760208301518351600291611d489161377d565b611d5291906137ca565b9050610dc0565b82516020840151604051632d3b201b60e01b8152610515929190600401613119565b600080600080611d8e86611ab387610d8f565b91509150611ac8826124a2565b6000828411158015611b0b5750611dbe83611b0284670de0b6b3a7640000613715565b909310159392505050565b6060611b0b84846000856122d5565b61127a8363a9059cbb60e01b8484604051602401610dfa929190613795565b6000806000611e198660000151866020015187600001518860400151886124b4565b90506000611e2f611e2a8684612565565b611858565b60608701519091506000861315611e9e576000611e4c8483612565565b9050670de0b6b3a7640000811215611e7a5760405163329e322960e21b815260048101829052602401610515565b611e96611e8f83670de0b6b3a76400006137de565b8490612594565b915050611ecb565b611ec881611eb481670de0b6b3a76400006137de565b611ebe9085613544565b611e2a919061381d565b90505b6064611eda8960e00151610d8f565b611ee49083613544565b611eee919061381d565b9350611efa81836137de565b9450505050935093915050565b60008060008312611f19576001611f1d565b6000195b9050611f39611f3485611f2f866124a2565b6122c0565b610d8f565b611a2d9082613544565b60008060008312611f55576001611f59565b6000195b9050611f39611f3485611f6b866124a2565b6125b2565b6000818860c00151611f829190613715565b8851909150611f9190866125ca565b8852611fab611fa0848661384b565b60208a0151906125ca565b602089018190528851611fd091611fc390899061205e565b895160408b015185612611565b6101008901819052600003611ff857604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600061200d82610d8f565b61201f611f346201518061016d61388c565b846080015161202e9190613544565b612038919061381d565b905060008113610dc057604051630e520c3b60e11b815260048101829052602401610515565b60008060008312612070576001612074565b6000195b9050611f39611f3485612086866124a2565b61248d565b600080612098868461210c565b9050670de0b6b3a76400008112156120c65760405163329e322960e21b815260048101829052602401610515565b60006120dc6120d5878a61384b565b8990612565565b905060006120e982612664565b90506120f58187612565565b6120ff90846137de565b9998505050505050505050565b60008061211e6201518061016d61388c565b612128848661388c565b61213291906137ca565b9050611a2d61214082610d8f565b6126b7565b6000600161215283611866565b610dc09190613715565b600081831061216b5781611b0e565b5090919050565b6000670de0b6b3a764000060018161218a868661388c565b612194919061377d565b61219e9190613715565b611b0e91906137ca565b6000808285602001516121bb91906137de565b905060006121c9858561384b565b90506000821380156121db5750600081135b61221c5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610515565b600061224a61222b8484613544565b602089015161223a908961384b565b6122449088613544565b90612565565b9050600061226061225b8486612565565b612acc565b885190915060009061227b90670de0b6b3a764000090612565565b90506122918161228b84866137de565b90612594565b89604001516120ff91906137de565b6000806122ad838561388c565b670de0b6b3a76400009004949350505050565b60008261219e670de0b6b3a76400008461388c565b6060824710156123365760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610515565b6001600160a01b0385163b61238d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610515565b600080866001600160a01b031685876040516123a991906137ae565b60006040518083038185875af1925050503d80600081146123e6576040519150601f19603f3d011682016040523d82523d6000602084013e6123eb565b606091505b5091509150610c30828286612b5d565b60008061241d61214085600001518660400151876060015161228b91906137de565b9050600061243d612436670de0b6b3a76400008461384b565b8390612565565b9050600061245b866020015186612454919061384b565b8390612594565b9050600061246982876137de565b90506103e861247782611866565b612483906103e761388c565b610c3091906137ca565b6000670de0b6b3a764000061219e848461388c565b6000808213610da5576114d1826138ab565b6000806124c187846125ca565b905060006124d2612436888a61384b565b9050670d529ae9e86000008113156125095780670d529ae9e8600000604051637e34684f60e11b8152600401610515929190613119565b600061251482612664565b9050856125218289612565565b61252b919061384b565b9350670de0b6b3a76400008412156125595760405163329e322960e21b815260048101859052602401610515565b50505095945050505050565b60008061257a670de0b6b3a764000085613544565b905082818161258b5761258b6136d9565b05949350505050565b6000806125a18385613544565b9050670de0b6b3a76400008161258b565b60008260018161218a670de0b6b3a76400008661388c565b6000818312156126075760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610515565b611b0e82846137de565b6000806126228787878760006124b4565b905060006126326110b783612acc565b9050836126446201518061016d61388c565b61264e908361388c565b61265891906137ca565b98975050505050505050565b6000670de0b6b3a7640000820361268e5760405163a9c8b14d60e01b815260040160405180910390fd5b60006126ac6126a584670de0b6b3a76400006137de565b8490612565565b9050611b0e81612acc565b6000680238fd42c5cf03ffff1982121580156126dc575068070c1cc73b00c800008213155b61271b5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610515565b600082121561275357612730826000036126b7565b6a0c097ce7bc90715b34b9f160241b8161274c5761274c6136d9565b0592915050565b60006806f05b59d3b2000000831261279157506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6127c7565b6803782dace9d900000083126127c357506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806127c7565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126128175768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612853576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261288d57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126128c7576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261290057680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126129395768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612972576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126129ab5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000808213612b0d5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610515565b670c7d713b49da000082138015612b2b5750670f43fc2c04ee000082125b15612b4f57670de0b6b3a7640000612b4283612b96565b8161274c5761274c6136d9565b610dc082612cb5565b919050565b60608315612b6c575081611b0e565b825115612b7c5782518084602001fd5b8160405162461bcd60e51b815260040161051591906138c7565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612bd757612bd76136d9565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612cf657612ced826a0c097ce7bc90715b34b9f160241b81612ce757612ce76136d9565b05612cb5565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612d415772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612d78576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612dc0576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612dfb576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612e3257693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612e6957690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612e9e5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612ec957680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612efe576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612f33576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612f67576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612f9b576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612fc457612fc46136d9565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461306d57600080fd5b50565b600060a0828403121561308257600080fd5b50919050565b60006080828403121561308257600080fd5b600080600080600061012086880312156130b357600080fd5b85356130be81613058565b945060208601356130ce81613058565b9350604086013592506130e48760608801613070565b91506101008601356001600160401b0381111561310057600080fd5b61310c88828901613088565b9150509295509295909350565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6000806000806080858703121561315157600080fd5b843561315c81613058565b9350602085013561316c81613058565b92506040850135915060608501356001600160401b0381111561318e57600080fd5b61319a87828801613088565b91505092959194509250565b600080600080608085870312156131bc57600080fd5b84356131c781613058565b935060208501356131d781613058565b93969395505050506040820135916060013590565b6000806000806000610120868803121561320557600080fd5b853561321081613058565b9450602086013561322081613058565b9350604086013592506060860135915061323d8760808801613070565b90509295509295909350565b60008060006060848603121561325e57600080fd5b835161326981613058565b602085015190935061327a81613058565b604085015190925061328b81613058565b809150509250925092565b6000602082840312156132a857600080fd5b8135611b0e81613058565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b838110156132ef5781810151838201526020016132d7565b83811115610e315750506000910152565b600081518084526133188160208601602086016132d4565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061101e6060830184613300565b6000806040838503121561336657600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156133b0576133b0613377565b60405290565b8051612b5881613058565b600061012082840312156133d457600080fd5b6133dc61338d565b825181526020830151602082015260408301516040820152613400606084016133b6565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060a0828403121561345557600080fd5b60405160a081016001600160401b038111828210171561347757613477613377565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b6000808335601e198436030181126134df57600080fd5b8301803591506001600160401b038211156134f957600080fd5b60200191503681900382131561350e57600080fd5b9250929050565b60006020828403121561352757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60006001600160ff1b038184138284138082168684048611161561356a5761356a61352e565b600160ff1b60008712828116878305891216156135895761358961352e565b600087129250878205871284841616156135a5576135a561352e565b878505871281841616156135bb576135bb61352e565b505050929093029392505050565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b60006001820161360f5761360f61352e565b5060010190565b6040815260006136296040830185613300565b90508260208301529392505050565b60006020828403121561364a57600080fd5b81516001600160401b038082111561366157600080fd5b818401915084601f83011261367557600080fd5b81518181111561368757613687613377565b604051601f8201601f19908116603f011681019083821181831017156136af576136af613377565b816040528281528760208487010111156136c857600080fd5b610c308360208301602088016132d4565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680613709576137096136d9565b92169190910492915050565b6000828210156137275761372761352e565b500390565b60006020828403121561373e57600080fd5b81518015158114611b0e57600080fd5b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b604082015260600190565b600082198211156137905761379061352e565b500190565b6001600160a01b03929092168252602082015260400190565b600082516137c08184602087016132d4565b9190910192915050565b6000826137d9576137d96136d9565b500490565b60008083128015600160ff1b8501841216156137fc576137fc61352e565b6001600160ff1b03840183138116156138175761381761352e565b50500390565b60008261382c5761382c6136d9565b600160ff1b8214600019841416156138465761384661352e565b500590565b600080821280156001600160ff1b038490038513161561386d5761386d61352e565b600160ff1b83900384128116156138865761388661352e565b50500190565b60008160001904831182151516156138a6576138a661352e565b500290565b6000600160ff1b82016138c0576138c061352e565b5060000390565b602081526000611b0e602083018461330056fec63e731085b5bdd8931c46f55e56e122352a12d4d2cd895116684fbe1292b127416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656478e08a1e3c7a72f78d2c8ad8254052914bad73f8c681dbdc4267d0bb8ac9423ca2646970667358221220473765bbef6d690f8b524aa1aac5068a9e4e8e4c2d167f7f87b9fe6b8fb14a5164736f6c634300080f0033";
656
677
 
657
678
  type ActionSwapPTConstructorParams =
658
679
  | [linkLibraryAddresses: ActionSwapPTLibraryAddresses, signer?: Signer]
@@ -17,6 +17,27 @@ const _abi = [
17
17
  stateMutability: "nonpayable",
18
18
  type: "constructor",
19
19
  },
20
+ {
21
+ inputs: [],
22
+ name: "ApproxFail",
23
+ type: "error",
24
+ },
25
+ {
26
+ inputs: [
27
+ {
28
+ internalType: "uint256",
29
+ name: "guessMin",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "uint256",
34
+ name: "guessMax",
35
+ type: "uint256",
36
+ },
37
+ ],
38
+ name: "ApproxGuessRangeInvalid",
39
+ type: "error",
40
+ },
20
41
  {
21
42
  inputs: [
22
43
  {
@@ -599,7 +620,7 @@ const _abi = [
599
620
  ];
600
621
 
601
622
  const _bytecode =
602
- "0x60a06040523480156200001157600080fd5b50604051620038dd380380620038dd833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b60805161383c620000a16000396000818160a1015281816112f401526113c1015261383c6000f3fe6080604052600436106100605760003560e01c80630edb44b8146100655780631ef6f3271461008f57806321aab859146100d057806353f9e1a3146100f05780637eb6953c1461011057806392126dab14610130578063d8cc26aa14610150575b600080fd5b610078610073366004612fa2565b610170565b604051610086929190613021565b60405180910390f35b34801561009b57600080fd5b506100c37f000000000000000000000000000000000000000000000000000000000000000081565b604051610086919061302f565b3480156100dc57600080fd5b506100786100eb366004613043565b610266565b3480156100fc57600080fd5b5061007861010b366004613089565b61048f565b34801561011c57600080fd5b5061007861012b3660046130f4565b610585565b34801561013c57600080fd5b5061007861014b3660046130f4565b61066f565b34801561015c57600080fd5b5061007861016b366004613043565b610856565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d89190613151565b925050915060006101ec828460018961093f565b90506101fc8a8a84848c8c610af8565b90955093506001600160a01b03808b16908a16336000805160206137e783398151915261022c60208b018b61319e565b6102358a610c37565b6102428c60200135610c51565b604051610251939291906131bb565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce9190613151565b92505091506000826001600160a01b03166370a08231336040518263ffffffff1660e01b8152600401610301919061302f565b602060405180830381865afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034291906131dc565b9050876001600160a01b031663d8e763c18389610360338e8c610c6e565b6040518463ffffffff1660e01b815260040161037e9392919061324d565b60408051808303816000875af115801561039c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c09190613274565b6040516370a0823160e01b81529095506001600160a01b03851691506370a08231906103f090339060040161302f565b602060405180830381865afa15801561040d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043191906131dc565b61043b90826132ae565b94506001600160a01b03808a169089163360008051602061379e8339815191526104648b610c37565b61046d8a610c51565b60405161047b929190613021565b60405180910390a450505094509492505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f79190613151565b91935090915061051490506001600160a01b038216338389610ca1565b6000610525838985858b6001610d12565b94509050610537898483896000610e8c565b94506001600160a01b03808a16908916336000805160206137e783398151915261056460208b018b61319e565b61056d8c610c51565b6105768b610c37565b60405161047b939291906131bb565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156105c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190613151565b91935090915061060a90506001600160a01b03831633838a610ca1565b6106188989838a8a8a610af8565b90945092506001600160a01b03808a169089163360008051602061379e83398151915261064488610c37565b61064d8c610c51565b60405161065b929190613021565b60405180910390a450509550959350505050565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d791906132d0565b90506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073d9190613151565b92505050610760610756826001600160a01b031661107c565b83908942896110e2565b50909450508584111561079357838660405163570cfb8160e01b815260040161078a929190613021565b60405180910390fd5b6107a86001600160a01b038216338387610ca1565b876001600160a01b0316637bb0e71082866107c38d8c611253565b6040518463ffffffff1660e01b81526004016107e19392919061324d565b60408051808303816000875af11580156107ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108239190613274565b9350506001600160a01b03808a169089163360008051602061379e83398151915261084d88610c51565b61064d8c610c37565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be9190613151565b9193509091506108db90506001600160a01b038216338389610ca1565b6108e9888884848a8a610d12565b90945092506001600160a01b038089169088163360008051602061379e8339815191526109158a610c51565b61091e89610c37565b60405161092c929190613021565b60405180910390a4505094509492505050565b600061095c610951602084018461319e565b338460200135611282565b61096c606083016040840161319e565b6001600160a01b0316610982602084018461319e565b6001600160a01b0316146109ec576109ec6109a0602084018461319e565b60208401356109b26060860186613352565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112ee92505050565b610a056109ff606084016040850161319e565b856113ef565b6000610a1f610a1a606085016040860161319e565b6114a7565b9050600080610a34606086016040870161319e565b6001600160a01b031614610a49576000610a4b565b815b90506001600160a01b0386166320e8c5658289610a6e6060890160408a0161319e565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018690526064810189905260840160206040518083038185885af1158015610ac8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aed91906131dc565b979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6091906132d0565b9050610b81610b77886001600160a01b031661107c565b8290884288611531565b509093505084831015610bab57828560405163a59b8c3160e01b815260040161078a929190613021565b876001600160a01b031663d8e763c18885610bc68d8a611686565b6040518463ffffffff1660e01b8152600401610be49392919061324d565b60408051808303816000875af1158015610c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c269190613274565b939a93995092975050505050505050565b60006001600160ff1b03821115610c4d57600080fd5b5090565b6000610c5c82610c37565b610c689060001961339f565b92915050565b60606000848484604051602001610c889493929190613446565b60405160208183030381529060405290505b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610d0c9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261169e565b50505050565b6000806000866001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610d43919061302f565b602060405180830381865afa158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8491906131dc565b9050876001600160a01b0316637bb0e7108787610da18d89611253565b6040518463ffffffff1660e01b8152600401610dbf9392919061324d565b60408051808303816000875af1158015610ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e019190613274565b6040516370a0823160e01b81529093508291506001600160a01b038916906370a0823190610e33908d9060040161302f565b602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7491906131dc565b610e7e91906132ae565b925050965096945050505050565b60008115610ea957610ea96001600160a01b038616338787610ca1565b610eb6602084018461319e565b6001600160a01b0316610ecf606085016040860161319e565b6001600160a01b031603610f6f576001600160a01b03851663769f8e5d8786610efe606088016040890161319e565b876020013560016040518663ffffffff1660e01b8152600401610f2595949392919061347b565b6020604051808303816000875af1158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6891906131dc565b9050611073565b60006001600160a01b03861663769f8e5d3087610f926060890160408a0161319e565b6001806040518663ffffffff1660e01b8152600401610fb595949392919061347b565b6020604051808303816000875af1158015610fd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff891906131dc565b905061101b61100d606086016040870161319e565b826109b26060880188613352565b61102b610a1a602086018661319e565b9150836020013582101561105a5781846020013560405163c5b5576d60e01b815260040161078a929190613021565b61107161106a602086018661319e565b8884611770565b505b95945050505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6891906131dc565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111168a8a89611834565b9050600061112d878385600001516000015161192e565b9050600061114c846040015185602001516119d990919063ffffffff16565b905060005b826060015181101561121157600061116984836119ee565b905060008061117d88600001518885611a4d565b9092509050600061118e83856132ae565b90508581106111ee57838760200181815250506111b081878960800151611a8c565b156111e957602089015184906111c69083611abf565b60208b01516111d59085611abf565b9b509b509b50505050505050505050611248565b6111fc565b6111f98460016134af565b87525b505050508061120a906134c7565b9050611151565b5060405162461bcd60e51b815260206004820152600b60248201526a185c1c1c9bde0819985a5b60aa1b604482015260640161078a565b955095509592505050565b60606002838360405160200161126b939291906134e0565b604051602081830303815290604052905092915050565b6001600160a01b0383166112d3578034146112ce5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b604482015260640161078a565b505050565b80156112ce576112ce6001600160a01b038416833084610ca1565b611318837f00000000000000000000000000000000000000000000000000000000000000006113ef565b60405163726d379760e11b815260009073__$559d48c320e1446b023c1ea40891219567$__9063e4da6f2e906113549085908790600401613508565b600060405180830381865af4158015611371573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611399919081019061352a565b90506113e8816001600160a01b038616156113b55760006113b7565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611acb565b5050505050565b6001600160a01b038216611401575050565b61141360026001600160601b036135e1565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149091906131dc565b10156114a3576114a38282600019611af1565b5050565b60006001600160a01b0382161561152a576040516370a0823160e01b81526001600160a01b038316906370a08231906114e490309060040161302f565b602060405180830381865afa158015611501573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152591906131dc565b610c68565b4792915050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816115658a8a89611834565b90506000611577878360200151611bfe565b9050600061159684604001518560200151611caa90919063ffffffff16565b82519091506000036115a6578082525b60005b8260600151811015611211576000806115cc858789600001516000015186611cb6565b91509150816115e057602085015250611676565b6000806115f289600001518985611d21565b9092509050600061160383856132ae565b90508681116116685783885260808801516000906116249083908a90611d41565b905080156116625760208b0151859061163d9084611abf565b60208d015161164c9086611abf565b9d509d509d505050505050505050505050611248565b50611670565b602088018490525b50505050505b61167f816134c7565b90506115a9565b60606001838360405160200161126b939291906134e0565b60006116f3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d6f9092919063ffffffff16565b8051909150156112ce57808060200190518101906117119190613607565b6112ce5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161078a565b8060000361177d57505050565b6001600160a01b038316611820576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117d8576040519150601f19603f3d011682016040523d82523d6000602084013e6117dd565b606091505b5050905080610d0c5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b604482015260640161078a565b6112ce6001600160a01b0384168383611d7e565b61185f6040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106118835760405163b2094b5960e01b815260040160405180910390fd5b6000828560c0015161189591906132ae565b90506118a18582611d9d565b825260208501516118b3908590611dfe565b6020830152845115806118c857506020820151155b156118ef578451602083015160405163b1c4aefb60e01b815261078a929190600401613021565b61190d85600001518661010001518460200151856000015185611e35565b604083015260a08501516119219082611eb6565b6060830152509392505050565b6119606040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83518152602084015161197c906119778585611eef565b611f87565b602082018190526040808601519083015260608086015190830152608080860151908301528151118015906119bd5750670de0b6b3a7640000816080015111155b610c9a5760405162461bcd60e51b815260040161078a90613629565b6000826119e68184611f9d565b949350505050565b600081158015611a015750604083015115155b15611a1157506040820151610c68565b602083015183511115611a2957506020820151610c68565b60208301518351600291611a3c916134af565b611a469190613658565b9050610c68565b600080600080611a6886611a6087610c37565b899190611fd3565b91509150611a75826120e3565b9350611a80816120f5565b92505050935093915050565b60008284101580156119e65750611ab483611aaf84670de0b6b3a76400006134af565b612104565b841115949350505050565b6000610c9a8383612124565b60606119e68484846040518060600160405280602981526020016137be60299139612139565b600080846001600160a01b031663095ea7b360e01b8585604051602401611b1992919061366c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611b579190613685565b6000604051808303816000865af19150503d8060008114611b94576040519150601f19603f3d011682016040523d82523d6000602084013e611b99565b606091505b5091509150818015611bc3575080511580611bc3575080806020019051810190611bc39190613607565b6113e85760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161078a565b611c376040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b825181526020830151611c4d906119778461225f565b60208201819052604080850151908301526060808501519083015260808085015190830152815111801590611c8e5750670de0b6b3a7640000816080015111155b610c685760405162461bcd60e51b815260040161078a90613629565b6000610c9a8383612276565b6000806000611cc587856119ee565b90508660a001518111611cdd57600192509050611d18565b6000611cf28787611ced85610c37565b61228b565b90506000811215611d095750600092509050611d18565b5060a087018190526001925090505b94509492505050565b600080600080611d3486611a6087610c51565b91509150611a75826120f5565b60008284111580156119e65750611d6483611aaf84670de0b6b3a76400006132ae565b909310159392505050565b60606119e68484600085612139565b6112ce8363a9059cbb60e01b8484604051602401610cd592919061366c565b6000611da882610c37565b611dbf611dba6201518061016d6136a1565b610c37565b8460800151611dce919061339f565b611dd891906136c0565b905060008113610c6857604051630e520c3b60e11b81526004810182905260240161078a565b60008060008312611e10576001611e14565b6000195b9050611e2b611dba85611e26866120e3565b612276565b6119e6908261339f565b600080611e428684611eb6565b9050670de0b6b3a7640000811215611e705760405163329e322960e21b81526004810182905260240161078a565b6000611e86611e7f878a6136ee565b899061237d565b90506000611e93826123ac565b9050611e9f818761237d565b611ea9908461372f565b9998505050505050505050565b600080611ec86201518061016d6136a1565b611ed284866136a1565b611edc9190613658565b90506119e6611eea82610c37565b6123ff565b600080611f17611eea856000015186604001518760600151611f11919061372f565b90612814565b90506000611f37611f30670de0b6b3a7640000846136ee565b839061237d565b90506000611f55866020015186611f4e91906136ee565b8390612814565b90506000611f63828761372f565b90506103e8611f71826120f5565b611f7d906103e76136a1565b610aed9190613658565b6000818310611f965781610c9a565b5090919050565b6000670de0b6b3a7640000600181611fb586866136a1565b611fbf91906134af565b611fc991906132ae565b610c9a9190613658565b6000806000611ff5866000015186602001518760000151886040015188612832565b9050600061200b612006868461237d565b6128e3565b6060870151909150600086131561207a576000612028848361237d565b9050670de0b6b3a76400008112156120565760405163329e322960e21b81526004810182905260240161078a565b61207261206b83670de0b6b3a764000061372f565b8490612814565b9150506120a7565b6120a48161209081670de0b6b3a764000061372f565b61209a908561339f565b61200691906136c0565b90505b60646120b68960e00151610c37565b6120c0908361339f565b6120ca91906136c0565b93506120d6818361372f565b9450505050935093915050565b6000808213610c4d576115258261376e565b600080821215610c4d57600080fd5b60008061211183856136a1565b670de0b6b3a76400009004949350505050565b600082611fc9670de0b6b3a7640000846136a1565b60608247101561219a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161078a565b6001600160a01b0385163b6121f15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161078a565b600080866001600160a01b0316858760405161220d9190613685565b60006040518083038185875af1925050503d806000811461224a576040519150601f19603f3d011682016040523d82523d6000602084013e61224f565b606091505b5091509150610aed8282866128f1565b6000600161226c836120f5565b610c6891906132ae565b6000670de0b6b3a7640000611fc984846136a1565b60008082856020015161229e919061372f565b905060006122ac85856136ee565b90506000821380156122be5750600081135b6122ff5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b604482015260640161078a565b600061232d61230e848461339f565b602089015161231d90896136ee565b612327908861339f565b9061237d565b9050600061234361233e848661237d565b61292a565b885190915060009061235e90670de0b6b3a76400009061237d565b905061236e81611f11848661372f565b8960400151611ea9919061372f565b600080612392670de0b6b3a76400008561339f565b90508281816123a3576123a36135cb565b05949350505050565b6000670de0b6b3a764000082036123d65760405163a9c8b14d60e01b815260040160405180910390fd5b60006123f46123ed84670de0b6b3a764000061372f565b849061237d565b9050610c9a8161292a565b6000680238fd42c5cf03ffff198212158015612424575068070c1cc73b00c800008213155b6124635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161078a565b600082121561249b57612478826000036123ff565b6a0c097ce7bc90715b34b9f160241b81612494576124946135cb565b0592915050565b60006806f05b59d3b200000083126124d957506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61250f565b6803782dace9d9000000831261250b57506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061250f565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261255f5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261259b576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126125d557682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c400000841261260f576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261264857680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126126815768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126126ba576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126f35768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080612821838561339f565b9050670de0b6b3a7640000816123a3565b60008061283f87846129bb565b90506000612850611f30888a6136ee565b9050670d529ae9e86000008113156128875780670d529ae9e8600000604051637e34684f60e11b815260040161078a929190613021565b6000612892826123ac565b90508561289f828961237d565b6128a991906136ee565b9350670de0b6b3a76400008412156128d75760405163329e322960e21b81526004810185905260240161078a565b50505095945050505050565b6000610c688260001961339f565b60608315612900575081610c9a565b8251156129105782518084602001fd5b8160405162461bcd60e51b815260040161078a919061378a565b600080821361296b5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640161078a565b670c7d713b49da0000821380156129895750670f43fc2c04ee000082125b156129ad57670de0b6b3a76400006129a083612a02565b81612494576124946135cb565b610c6882612b21565b919050565b6000818312156129f85760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b604482015260640161078a565b610c9a828461372f565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612a4357612a436135cb565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612b6257612b59826a0c097ce7bc90715b34b9f160241b81612b5357612b536135cb565b05612b21565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612bad5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612be4576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612c2c576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612c67576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612c9e57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612cd557690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612d0a5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612d3557680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612d6a576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612d9f576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612dd3576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612e07576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612e3057612e306135cb565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0381168114612ed957600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715612f1557612f15612edc565b60405290565b600060a08284031215612f2d57600080fd5b60405160a081016001600160401b0381118282101715612f4f57612f4f612edc565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600060808284031215612f9c57600080fd5b50919050565b60008060008060006101208688031215612fbb57600080fd5b8535612fc681612ec4565b94506020860135612fd681612ec4565b935060408601359250612fec8760608801612f1b565b91506101008601356001600160401b0381111561300857600080fd5b61301488828901612f8a565b9150509295509295909350565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6000806000806080858703121561305957600080fd5b843561306481612ec4565b9350602085013561307481612ec4565b93969395505050506040820135916060013590565b6000806000806080858703121561309f57600080fd5b84356130aa81612ec4565b935060208501356130ba81612ec4565b92506040850135915060608501356001600160401b038111156130dc57600080fd5b6130e887828801612f8a565b91505092959194509250565b6000806000806000610120868803121561310d57600080fd5b853561311881612ec4565b9450602086013561312881612ec4565b935060408601359250606086013591506131458760808801612f1b565b90509295509295909350565b60008060006060848603121561316657600080fd5b835161317181612ec4565b602085015190935061318281612ec4565b604085015190925061319381612ec4565b809150509250925092565b6000602082840312156131b057600080fd5b8135610c9a81612ec4565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156131ee57600080fd5b5051919050565b60005b838110156132105781810151838201526020016131f8565b83811115610d0c5750506000910152565b600081518084526132398160208601602086016131f5565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006110736060830184613221565b6000806040838503121561328757600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b6000828210156132c0576132c0613298565b500390565b80516129b681612ec4565b600061012082840312156132e357600080fd5b6132eb612ef2565b82518152602083015160208201526040830151604082015261330f606084016132c5565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000808335601e1984360301811261336957600080fd5b8301803591506001600160401b0382111561338357600080fd5b60200191503681900382131561339857600080fd5b9250929050565b60006001600160ff1b03818413828413808216868404861116156133c5576133c5613298565b600160ff1b60008712828116878305891216156133e4576133e4613298565b6000871292508782058712848416161561340057613400613298565b8785058712818416161561341657613416613298565b505050929093029392505050565b6005811061344257634e487b7160e01b600052602160045260246000fd5b9052565b608081016134548287613424565b6001600160a01b039485166020830152929093166040840152606090920191909152919050565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b600082198211156134c2576134c2613298565b500190565b6000600182016134d9576134d9613298565b5060010190565b606081016134ee8286613424565b6001600160a01b0393909316602082015260400152919050565b60408152600061351b6040830185613221565b90508260208301529392505050565b60006020828403121561353c57600080fd5b81516001600160401b038082111561355357600080fd5b818401915084601f83011261356757600080fd5b81518181111561357957613579612edc565b604051601f8201601f19908116603f011681019083821181831017156135a1576135a1612edc565b816040528281528760208487010111156135ba57600080fd5b610aed8360208301602088016131f5565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b03838116806135fb576135fb6135cb565b92169190910492915050565b60006020828403121561361957600080fd5b81518015158114610c9a57600080fd5b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b604082015260600190565b600082613667576136676135cb565b500490565b6001600160a01b03929092168252602082015260400190565b600082516136978184602087016131f5565b9190910192915050565b60008160001904831182151516156136bb576136bb613298565b500290565b6000826136cf576136cf6135cb565b600160ff1b8214600019841416156136e9576136e9613298565b500590565b600080821280156001600160ff1b038490038513161561371057613710613298565b600160ff1b839003841281161561372957613729613298565b50500190565b60008083128015600160ff1b85018412161561374d5761374d613298565b6001600160ff1b038401831381161561376857613768613298565b50500390565b6000600160ff1b820161378357613783613298565b5060000390565b602081526000610c9a602083018461322156fe7bddf462468a651c54b421a930326bf3558d624d1b4ba9decfa69211a0b1013d416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564c372308269f6e4dd0b4f322160cf0edef154584a3ad62248d654ae846e3eb6e8a264697066735822122034fd851ab7472a7be98e7ed728a5ca3caab255e99ed3605799d235f1d75a8cf364736f6c634300080f0033";
623
+ "0x60a06040523480156200001157600080fd5b50604051620038d6380380620038d6833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613835620000a16000396000818160a1015281816112d701526113a401526138356000f3fe6080604052600436106100605760003560e01c80630edb44b8146100655780631ef6f3271461008f57806321aab859146100d057806353f9e1a3146100f05780637eb6953c1461011057806392126dab14610130578063d8cc26aa14610150575b600080fd5b610078610073366004612f9b565b610170565b60405161008692919061301a565b60405180910390f35b34801561009b57600080fd5b506100c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516100869190613028565b3480156100dc57600080fd5b506100786100eb36600461303c565b610266565b3480156100fc57600080fd5b5061007861010b366004613082565b61048f565b34801561011c57600080fd5b5061007861012b3660046130ed565b610585565b34801561013c57600080fd5b5061007861014b3660046130ed565b61066f565b34801561015c57600080fd5b5061007861016b36600461303c565b610856565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061314a565b925050915060006101ec828460018961093f565b90506101fc8a8a84848c8c610af8565b90955093506001600160a01b03808b16908a16336000805160206137e083398151915261022c60208b018b613197565b6102358a610c37565b6102428c60200135610c51565b604051610251939291906131b4565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce919061314a565b92505091506000826001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016103019190613028565b602060405180830381865afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034291906131d5565b9050876001600160a01b031663d8e763c18389610360338e8c610c6e565b6040518463ffffffff1660e01b815260040161037e93929190613246565b60408051808303816000875af115801561039c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c0919061326d565b6040516370a0823160e01b81529095506001600160a01b03851691506370a08231906103f0903390600401613028565b602060405180830381865afa15801561040d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043191906131d5565b61043b90826132a7565b94506001600160a01b03808a16908916336000805160206137978339815191526104648b610c37565b61046d8a610c51565b60405161047b92919061301a565b60405180910390a450505094509492505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f7919061314a565b91935090915061051490506001600160a01b038216338389610ca1565b6000610525838985858b6001610d12565b94509050610537898483896000610e8c565b94506001600160a01b03808a16908916336000805160206137e083398151915261056460208b018b613197565b61056d8c610c51565b6105768b610c37565b60405161047b939291906131b4565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156105c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed919061314a565b91935090915061060a90506001600160a01b03831633838a610ca1565b6106188989838a8a8a610af8565b90945092506001600160a01b03808a169089163360008051602061379783398151915261064488610c37565b61064d8c610c51565b60405161065b92919061301a565b60405180910390a450509550959350505050565b6000806000866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d791906132c9565b90506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073d919061314a565b92505050610760610756826001600160a01b031661107c565b83908942896110e2565b50909450508584111561079357838660405163570cfb8160e01b815260040161078a92919061301a565b60405180910390fd5b6107a86001600160a01b038216338387610ca1565b876001600160a01b0316637bb0e71082866107c38d8c611236565b6040518463ffffffff1660e01b81526004016107e193929190613246565b60408051808303816000875af11580156107ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610823919061326d565b9350506001600160a01b03808a169089163360008051602061379783398151915261084d88610c51565b61064d8c610c37565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061314a565b9193509091506108db90506001600160a01b038216338389610ca1565b6108e9888884848a8a610d12565b90945092506001600160a01b03808916908816336000805160206137978339815191526109158a610c51565b61091e89610c37565b60405161092c92919061301a565b60405180910390a4505094509492505050565b600061095c6109516020840184613197565b338460200135611265565b61096c6060830160408401613197565b6001600160a01b03166109826020840184613197565b6001600160a01b0316146109ec576109ec6109a06020840184613197565b60208401356109b2606086018661334b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112d192505050565b610a056109ff6060840160408501613197565b856113d2565b6000610a1f610a1a6060850160408601613197565b61148a565b9050600080610a346060860160408701613197565b6001600160a01b031614610a49576000610a4b565b815b90506001600160a01b0386166320e8c5658289610a6e6060890160408a01613197565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018690526064810189905260840160206040518083038185885af1158015610ac8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610aed91906131d5565b979650505050505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6091906132c9565b9050610b81610b77886001600160a01b031661107c565b8290884288611514565b509093505084831015610bab57828560405163a59b8c3160e01b815260040161078a92919061301a565b876001600160a01b031663d8e763c18885610bc68d8a611669565b6040518463ffffffff1660e01b8152600401610be493929190613246565b60408051808303816000875af1158015610c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c26919061326d565b939a93995092975050505050505050565b60006001600160ff1b03821115610c4d57600080fd5b5090565b6000610c5c82610c37565b610c6890600019613398565b92915050565b60606000848484604051602001610c88949392919061343f565b60405160208183030381529060405290505b9392505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610d0c9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611681565b50505050565b6000806000866001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610d439190613028565b602060405180830381865afa158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8491906131d5565b9050876001600160a01b0316637bb0e7108787610da18d89611236565b6040518463ffffffff1660e01b8152600401610dbf93929190613246565b60408051808303816000875af1158015610ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e01919061326d565b6040516370a0823160e01b81529093508291506001600160a01b038916906370a0823190610e33908d90600401613028565b602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7491906131d5565b610e7e91906132a7565b925050965096945050505050565b60008115610ea957610ea96001600160a01b038616338787610ca1565b610eb66020840184613197565b6001600160a01b0316610ecf6060850160408601613197565b6001600160a01b031603610f6f576001600160a01b03851663769f8e5d8786610efe6060880160408901613197565b876020013560016040518663ffffffff1660e01b8152600401610f25959493929190613474565b6020604051808303816000875af1158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6891906131d5565b9050611073565b60006001600160a01b03861663769f8e5d3087610f926060890160408a01613197565b6001806040518663ffffffff1660e01b8152600401610fb5959493929190613474565b6020604051808303816000875af1158015610fd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff891906131d5565b905061101b61100d6060860160408701613197565b826109b2606088018861334b565b61102b610a1a6020860186613197565b9150836020013582101561105a5781846020013560405163c5b5576d60e01b815260040161078a92919061301a565b61107161106a6020860186613197565b8884611753565b505b95945050505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6891906131d5565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111168a8a89611817565b9050600061112d8783856000015160000151611911565b9050600061114c846040015185602001516119bc90919063ffffffff16565b905060005b826060015181101561121157600061116984836119d1565b905060008061117d88600001518885611a46565b9092509050600061118e83856132a7565b90508581106111ee57838760200181815250506111b081878960800151611a85565b156111e957602089015184906111c69083611ab8565b60208b01516111d59085611ab8565b9b509b509b5050505050505050505061122b565b6111fc565b6111f98460016134a8565b87525b505050508061120a906134c0565b9050611151565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b60606002838360405160200161124e939291906134d9565b604051602081830303815290604052905092915050565b6001600160a01b0383166112b6578034146112b15760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b604482015260640161078a565b505050565b80156112b1576112b16001600160a01b038416833084610ca1565b6112fb837f00000000000000000000000000000000000000000000000000000000000000006113d2565b60405163726d379760e11b815260009073__$559d48c320e1446b023c1ea40891219567$__9063e4da6f2e906113379085908790600401613501565b600060405180830381865af4158015611354573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261137c9190810190613523565b90506113cb816001600160a01b0386161561139857600061139a565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611ac4565b5050505050565b6001600160a01b0382166113e4575050565b6113f660026001600160601b036135da565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa15801561144f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147391906131d5565b1015611486576114868282600019611aea565b5050565b60006001600160a01b0382161561150d576040516370a0823160e01b81526001600160a01b038316906370a08231906114c7903090600401613028565b602060405180830381865afa1580156114e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150891906131d5565b610c68565b4792915050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816115488a8a89611817565b9050600061155a878360200151611bf7565b9050600061157984604001518560200151611ca390919063ffffffff16565b8251909150600003611589578082525b60005b8260600151811015611211576000806115af858789600001516000015186611caf565b91509150816115c357602085015250611659565b6000806115d589600001518985611d1a565b909250905060006115e683856132a7565b905086811161164b5783885260808801516000906116079083908a90611d3a565b905080156116455760208b015185906116209084611ab8565b60208d015161162f9086611ab8565b9d509d509d50505050505050505050505061122b565b50611653565b602088018490525b50505050505b611662816134c0565b905061158c565b60606001838360405160200161124e939291906134d9565b60006116d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d689092919063ffffffff16565b8051909150156112b157808060200190518101906116f49190613600565b6112b15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161078a565b8060000361176057505050565b6001600160a01b038316611803576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117bb576040519150601f19603f3d011682016040523d82523d6000602084013e6117c0565b606091505b5050905080610d0c5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b604482015260640161078a565b6112b16001600160a01b0384168383611d77565b6118426040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106118665760405163b2094b5960e01b815260040160405180910390fd5b6000828560c0015161187891906132a7565b90506118848582611d96565b82526020850151611896908590611df7565b6020830152845115806118ab57506020820151155b156118d2578451602083015160405163b1c4aefb60e01b815261078a92919060040161301a565b6118f085600001518661010001518460200151856000015185611e2e565b604083015260a08501516119049082611eaf565b6060830152509392505050565b6119436040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83518152602084015161195f9061195a8585611ee8565b611f80565b602082018190526040808601519083015260608086015190830152608080860151908301528151118015906119a05750670de0b6b3a7640000816080015111155b610c9a5760405162461bcd60e51b815260040161078a90613622565b6000826119c98184611f96565b949350505050565b6000811580156119e45750604083015115155b156119f457506040820151610c68565b6020830151835111611a245760208301518351600291611a13916134a8565b611a1d9190613651565b9050610c68565b82516020840151604051632d3b201b60e01b815261078a92919060040161301a565b600080600080611a6186611a5987610c37565b899190611fcc565b91509150611a6e826120dc565b9350611a79816120ee565b92505050935093915050565b60008284101580156119c95750611aad83611aa884670de0b6b3a76400006134a8565b6120fd565b841115949350505050565b6000610c9a838361211d565b60606119c98484846040518060600160405280602981526020016137b760299139612132565b600080846001600160a01b031663095ea7b360e01b8585604051602401611b12929190613665565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611b50919061367e565b6000604051808303816000865af19150503d8060008114611b8d576040519150601f19603f3d011682016040523d82523d6000602084013e611b92565b606091505b5091509150818015611bbc575080511580611bbc575080806020019051810190611bbc9190613600565b6113cb5760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161078a565b611c306040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b825181526020830151611c469061195a84612258565b60208201819052604080850151908301526060808501519083015260808085015190830152815111801590611c875750670de0b6b3a7640000816080015111155b610c685760405162461bcd60e51b815260040161078a90613622565b6000610c9a838361226f565b6000806000611cbe87856119d1565b90508660a001518111611cd657600192509050611d11565b6000611ceb8787611ce685610c37565b612284565b90506000811215611d025750600092509050611d11565b5060a087018190526001925090505b94509492505050565b600080600080611d2d86611a5987610c51565b91509150611a6e826120ee565b60008284111580156119c95750611d5d83611aa884670de0b6b3a76400006132a7565b909310159392505050565b60606119c98484600085612132565b6112b18363a9059cbb60e01b8484604051602401610cd5929190613665565b6000611da182610c37565b611db8611db36201518061016d61369a565b610c37565b8460800151611dc79190613398565b611dd191906136b9565b905060008113610c6857604051630e520c3b60e11b81526004810182905260240161078a565b60008060008312611e09576001611e0d565b6000195b9050611e24611db385611e1f866120dc565b61226f565b6119c99082613398565b600080611e3b8684611eaf565b9050670de0b6b3a7640000811215611e695760405163329e322960e21b81526004810182905260240161078a565b6000611e7f611e78878a6136e7565b8990612376565b90506000611e8c826123a5565b9050611e988187612376565b611ea29084613728565b9998505050505050505050565b600080611ec16201518061016d61369a565b611ecb848661369a565b611ed59190613651565b90506119c9611ee382610c37565b6123f8565b600080611f10611ee3856000015186604001518760600151611f0a9190613728565b9061280d565b90506000611f30611f29670de0b6b3a7640000846136e7565b8390612376565b90506000611f4e866020015186611f4791906136e7565b839061280d565b90506000611f5c8287613728565b90506103e8611f6a826120ee565b611f76906103e761369a565b610aed9190613651565b6000818310611f8f5781610c9a565b5090919050565b6000670de0b6b3a7640000600181611fae868661369a565b611fb891906134a8565b611fc291906132a7565b610c9a9190613651565b6000806000611fee86600001518660200151876000015188604001518861282b565b90506000612004611fff8684612376565b6128dc565b606087015190915060008613156120735760006120218483612376565b9050670de0b6b3a764000081121561204f5760405163329e322960e21b81526004810182905260240161078a565b61206b61206483670de0b6b3a7640000613728565b849061280d565b9150506120a0565b61209d8161208981670de0b6b3a7640000613728565b6120939085613398565b611fff91906136b9565b90505b60646120af8960e00151610c37565b6120b99083613398565b6120c391906136b9565b93506120cf8183613728565b9450505050935093915050565b6000808213610c4d5761150882613767565b600080821215610c4d57600080fd5b60008061210a838561369a565b670de0b6b3a76400009004949350505050565b600082611fc2670de0b6b3a76400008461369a565b6060824710156121935760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161078a565b6001600160a01b0385163b6121ea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161078a565b600080866001600160a01b03168587604051612206919061367e565b60006040518083038185875af1925050503d8060008114612243576040519150601f19603f3d011682016040523d82523d6000602084013e612248565b606091505b5091509150610aed8282866128ea565b60006001612265836120ee565b610c6891906132a7565b6000670de0b6b3a7640000611fc2848461369a565b6000808285602001516122979190613728565b905060006122a585856136e7565b90506000821380156122b75750600081135b6122f85760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b604482015260640161078a565b60006123266123078484613398565b602089015161231690896136e7565b6123209088613398565b90612376565b9050600061233c6123378486612376565b612923565b885190915060009061235790670de0b6b3a764000090612376565b905061236781611f0a8486613728565b8960400151611ea29190613728565b60008061238b670de0b6b3a764000085613398565b905082818161239c5761239c6135c4565b05949350505050565b6000670de0b6b3a764000082036123cf5760405163a9c8b14d60e01b815260040160405180910390fd5b60006123ed6123e684670de0b6b3a7640000613728565b8490612376565b9050610c9a81612923565b6000680238fd42c5cf03ffff19821215801561241d575068070c1cc73b00c800008213155b61245c5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161078a565b600082121561249457612471826000036123f8565b6a0c097ce7bc90715b34b9f160241b8161248d5761248d6135c4565b0592915050565b60006806f05b59d3b200000083126124d257506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b612508565b6803782dace9d9000000831261250457506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380612508565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126125585768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612594576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126125ce57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612608576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261264157680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d63100000841261267a5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126126b3576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126ec5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061281a8385613398565b9050670de0b6b3a76400008161239c565b60008061283887846129b4565b90506000612849611f29888a6136e7565b9050670d529ae9e86000008113156128805780670d529ae9e8600000604051637e34684f60e11b815260040161078a92919061301a565b600061288b826123a5565b9050856128988289612376565b6128a291906136e7565b9350670de0b6b3a76400008412156128d05760405163329e322960e21b81526004810185905260240161078a565b50505095945050505050565b6000610c6882600019613398565b606083156128f9575081610c9a565b8251156129095782518084602001fd5b8160405162461bcd60e51b815260040161078a9190613783565b60008082136129645760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640161078a565b670c7d713b49da0000821380156129825750670f43fc2c04ee000082125b156129a657670de0b6b3a7640000612999836129fb565b8161248d5761248d6135c4565b610c6882612b1a565b919050565b6000818312156129f15760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b604482015260640161078a565b610c9a8284613728565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612a3c57612a3c6135c4565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612b5b57612b52826a0c097ce7bc90715b34b9f160241b81612b4c57612b4c6135c4565b05612b1a565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612ba65772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612bdd576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612c25576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612c60576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612c9757693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612cce57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612d035768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612d2e57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612d63576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612d98576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612dcc576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612e00576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612e2957612e296135c4565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0381168114612ed257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715612f0e57612f0e612ed5565b60405290565b600060a08284031215612f2657600080fd5b60405160a081016001600160401b0381118282101715612f4857612f48612ed5565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600060808284031215612f9557600080fd5b50919050565b60008060008060006101208688031215612fb457600080fd5b8535612fbf81612ebd565b94506020860135612fcf81612ebd565b935060408601359250612fe58760608801612f14565b91506101008601356001600160401b0381111561300157600080fd5b61300d88828901612f83565b9150509295509295909350565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6000806000806080858703121561305257600080fd5b843561305d81612ebd565b9350602085013561306d81612ebd565b93969395505050506040820135916060013590565b6000806000806080858703121561309857600080fd5b84356130a381612ebd565b935060208501356130b381612ebd565b92506040850135915060608501356001600160401b038111156130d557600080fd5b6130e187828801612f83565b91505092959194509250565b6000806000806000610120868803121561310657600080fd5b853561311181612ebd565b9450602086013561312181612ebd565b9350604086013592506060860135915061313e8760808801612f14565b90509295509295909350565b60008060006060848603121561315f57600080fd5b835161316a81612ebd565b602085015190935061317b81612ebd565b604085015190925061318c81612ebd565b809150509250925092565b6000602082840312156131a957600080fd5b8135610c9a81612ebd565b6001600160a01b039390931683526020830191909152604082015260600190565b6000602082840312156131e757600080fd5b5051919050565b60005b838110156132095781810151838201526020016131f1565b83811115610d0c5750506000910152565b600081518084526132328160208601602086016131ee565b601f01601f19169290920160200192915050565b60018060a01b0384168152826020820152606060408201526000611073606083018461321a565b6000806040838503121561328057600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b6000828210156132b9576132b9613291565b500390565b80516129af81612ebd565b600061012082840312156132dc57600080fd5b6132e4612eeb565b825181526020830151602082015260408301516040820152613308606084016132be565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000808335601e1984360301811261336257600080fd5b8301803591506001600160401b0382111561337c57600080fd5b60200191503681900382131561339157600080fd5b9250929050565b60006001600160ff1b03818413828413808216868404861116156133be576133be613291565b600160ff1b60008712828116878305891216156133dd576133dd613291565b600087129250878205871284841616156133f9576133f9613291565b8785058712818416161561340f5761340f613291565b505050929093029392505050565b6005811061343b57634e487b7160e01b600052602160045260246000fd5b9052565b6080810161344d828761341d565b6001600160a01b039485166020830152929093166040840152606090920191909152919050565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b600082198211156134bb576134bb613291565b500190565b6000600182016134d2576134d2613291565b5060010190565b606081016134e7828661341d565b6001600160a01b0393909316602082015260400152919050565b604081526000613514604083018561321a565b90508260208301529392505050565b60006020828403121561353557600080fd5b81516001600160401b038082111561354c57600080fd5b818401915084601f83011261356057600080fd5b81518181111561357257613572612ed5565b604051601f8201601f19908116603f0116810190838211818310171561359a5761359a612ed5565b816040528281528760208487010111156135b357600080fd5b610aed8360208301602088016131ee565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b03838116806135f4576135f46135c4565b92169190910492915050565b60006020828403121561361257600080fd5b81518015158114610c9a57600080fd5b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b604082015260600190565b600082613660576136606135c4565b500490565b6001600160a01b03929092168252602082015260400190565b600082516136908184602087016131ee565b9190910192915050565b60008160001904831182151516156136b4576136b4613291565b500290565b6000826136c8576136c86135c4565b600160ff1b8214600019841416156136e2576136e2613291565b500590565b600080821280156001600160ff1b038490038513161561370957613709613291565b600160ff1b839003841281161561372257613722613291565b50500190565b60008083128015600160ff1b85018412161561374657613746613291565b6001600160ff1b038401831381161561376157613761613291565b50500390565b6000600160ff1b820161377c5761377c613291565b5060000390565b602081526000610c9a602083018461321a56fe7bddf462468a651c54b421a930326bf3558d624d1b4ba9decfa69211a0b1013d416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564c372308269f6e4dd0b4f322160cf0edef154584a3ad62248d654ae846e3eb6e8a2646970667358221220c90b498ee2fa6ec3ada09874b3d2137b4139c98512b959087886a66cbb939c7064736f6c634300080f0033";
603
624
 
604
625
  type ActionSwapYTConstructorParams =
605
626
  | [linkLibraryAddresses: ActionSwapYTLibraryAddresses, signer?: Signer]
@@ -6,6 +6,27 @@ import { Provider, TransactionRequest } from "@ethersproject/providers";
6
6
  import type { Errors, ErrorsInterface } from "../Errors";
7
7
 
8
8
  const _abi = [
9
+ {
10
+ inputs: [],
11
+ name: "ApproxFail",
12
+ type: "error",
13
+ },
14
+ {
15
+ inputs: [
16
+ {
17
+ internalType: "uint256",
18
+ name: "guessMin",
19
+ type: "uint256",
20
+ },
21
+ {
22
+ internalType: "uint256",
23
+ name: "guessMax",
24
+ type: "uint256",
25
+ },
26
+ ],
27
+ name: "ApproxGuessRangeInvalid",
28
+ type: "error",
29
+ },
9
30
  {
10
31
  inputs: [],
11
32
  name: "ArrayEmpty",
@@ -675,12 +696,12 @@ const _abi = [
675
696
  inputs: [
676
697
  {
677
698
  internalType: "uint256",
678
- name: "rewardAccuredType0",
699
+ name: "rewardAccruedType0",
679
700
  type: "uint256",
680
701
  },
681
702
  {
682
703
  internalType: "uint256",
683
- name: "rewardAccuredType1",
704
+ name: "rewardAccruedType1",
684
705
  type: "uint256",
685
706
  },
686
707
  ],
@@ -884,7 +905,7 @@ const _abi = [
884
905
  ];
885
906
 
886
907
  const _bytecode =
887
- "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eca601b4fae8279e230cd90cc624faedec91fb94f9b818ae23ad21e843b58d8d64736f6c634300080f0033";
908
+ "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203d9238228de7bc783c675db3fa111ee19e7bc7274425841be1ee8dd66d6418ec64736f6c634300080f0033";
888
909
 
889
910
  type ErrorsConstructorParams =
890
911
  | [signer?: Signer]
@@ -9,6 +9,27 @@ import type {
9
9
  } from "../MarketMathStatic";
10
10
 
11
11
  const _abi = [
12
+ {
13
+ inputs: [],
14
+ name: "ApproxFail",
15
+ type: "error",
16
+ },
17
+ {
18
+ inputs: [
19
+ {
20
+ internalType: "uint256",
21
+ name: "guessMin",
22
+ type: "uint256",
23
+ },
24
+ {
25
+ internalType: "uint256",
26
+ name: "guessMax",
27
+ type: "uint256",
28
+ },
29
+ ],
30
+ name: "ApproxGuessRangeInvalid",
31
+ type: "error",
32
+ },
12
33
  {
13
34
  inputs: [
14
35
  {
@@ -272,7 +293,7 @@ const _abi = [
272
293
  ];
273
294
 
274
295
  const _bytecode =
275
- "0x61477d61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101695760003560e01c806303670dba1461016e578063067cbde1146101ae5780630f8cb321146101ce5780631272d863146101fc5780631b9d358d1461021c57806321b7679d1461023c5780632f7707091461025c57806331c6d55c1461026f57806336233bd91461028f5780633c71db3d146102af5780633e32089f146102c257806345324d9c146102e2578063586772c51461030257806362eaf69d14610322578063672b79e41461034357806368d384c014610363578063690a0cbd14610383578063919f9430146103c3578063a4beab18146103e3578063ab52e20f14610403578063af2c797114610423578063b24898f414610436578063c06225e814610456578063c50b5c8b14610476578063c74141f114610496578063cf8a61d6146104a9578063d92f8f09146104c9578063efb7601d146104e9578063fe852a2014610509575b600080fd5b81801561017a57600080fd5b5061018e61018936600461417d565b610529565b604080519384526020840192909252908201526060015b60405180910390f35b8180156101ba57600080fd5b5061018e6101c936600461417d565b6105f0565b8180156101da57600080fd5b506101ee6101e936600461417d565b61068c565b6040519081526020016101a5565b81801561020857600080fd5b5061018e6102173660046141a9565b61083f565b81801561022857600080fd5b506101ee6102373660046141eb565b610940565b81801561024857600080fd5b5061018e6102573660046141a9565b6109c2565b61018e61026a366004614208565b6109d2565b81801561027b57600080fd5b5061018e61028a3660046141a9565b610a5a565b81801561029b57600080fd5b5061018e6102aa36600461417d565b610a6a565b61018e6102bd36600461423d565b610baf565b8180156102ce57600080fd5b5061018e6102dd366004614337565b610d30565b8180156102ee57600080fd5b5061018e6102fd36600461417d565b610e26565b81801561030e57600080fd5b5061018e61031d36600461438a565b610ef3565b61033561033036600461417d565b610f95565b6040516101a59291906143c9565b81801561034f57600080fd5b5061018e61035e366004614337565b611015565b81801561036f57600080fd5b506101ee61037e36600461417d565b6110fa565b81801561038f57600080fd5b506103a361039e366004614337565b61114d565b6040805194855260208501939093529183015260608201526080016101a5565b8180156103cf57600080fd5b506103a36103de36600461438a565b611247565b8180156103ef57600080fd5b506103a36103fe36600461438a565b611389565b81801561040f57600080fd5b5061018e61041e36600461438a565b611427565b6103356104313660046141a9565b6114bd565b81801561044257600080fd5b5061018e61045136600461417d565b61161c565b81801561046257600080fd5b506103a361047136600461438a565b6116ae565b81801561048257600080fd5b506103a361049136600461438a565b6117e4565b6101ee6104a43660046141eb565b6118a7565b8180156104b557600080fd5b506103a36104c436600461438a565b611932565b8180156104d557600080fd5b5061018e6104e436600461438a565b6119d0565b8180156104f557600080fd5b506101ee6105043660046141eb565b611a77565b81801561051557600080fd5b5061018e61052436600461438a565b611a84565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906143e2565b9050600061059f87610940565b905060006105b86105af89610940565b84908942611b1e565b9550905060006105c88389611b5d565b90506105d48183611b69565b96506105e38961037e8a611b80565b9450505050509250925092565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065991906143e2565b905061067061066787610940565b82908742611b1e565b90945092506106828661037e87611b80565b9150509250925092565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190614464565b156107045750670de0b6b3a7640000610839565b60008290506000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e91906143e2565b9050600061078661077e87610940565b839042611b97565b905060006107a7836000015183602001518460000151856040015188611c91565b905060008413156108135760006107cb836060015183611d4990919063ffffffff16565b9050670de0b6b3a76400008112156107fe5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b61080781611d78565b95505050505050610839565b61083261082d836060015183611d8b90919063ffffffff16565b611d78565b9450505050505b92915050565b60008060008061084f8787610a6a565b8094508195508293505050506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf9190614486565b505060405163cbe52ae360e01b81529091506001600160a01b0382169063cbe52ae3906108f290899086906004016144c8565b602060405180830381865afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093391906144e1565b9450505093509350939050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190614486565b925050506109bb816001600160a01b0316611da9565b9392505050565b60008060008061084f8787610e26565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906143e2565b9050610a4981878742611e0f565b919a90995090975095505050505050565b60008060008061084f87876105f0565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad391906143e2565b9050600080610ae28388611e7a565b91509150876001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190614464565b15610b7157610b6081610b5a8a610940565b90611eb5565b610b6a9083614510565b9550610ba5565b6000610b88610b7f8a610940565b85908442611b1e565b96509050610b968184614510565b96506105e38961037e84611b80565b5050509250925092565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190614486565b505090506000816001600160a01b031663b8f82b2689896040518363ffffffff1660e01b8152600401610c4b9291906144c8565b602060405180830381865afa158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c91906144e1565b90506000808a6001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf491906143e2565b9050610d0281848a42611e0f565b9199509096509250610d20905083610d1a848c614528565b90611ec1565b9550505050509450945094915050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190614486565b50509050610e1588826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b8152600401610dce9291906144c8565b602060405180830381865afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906144e1565b87611427565b935093509350509450945094915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f91906143e2565b90506000610e9c87610940565b90506000610eac83838942611ee4565b955090506000610ebc8383611f08565b90506000610eca828a614547565b9050610ed68482611eb5565b9750610ee58a61037e8b611f15565b955050505050509250925092565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5c91906143e2565b9050610f74610f6a88610940565b8290884289611f2b565b919550909350610f8990508761037e86611b80565b91505093509350939050565b6000806000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906143e2565b90506110098185611e7a565b90969095509350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190614486565b50509050610e1588826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b81526004016110b39291906144c8565b602060405180830381865afa1580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f491906144e1565b87611a84565b60008061110684611a77565b90506000611114858561068c565b90506111448261113e61112685611f15565b61112f85611f15565b611139919061455e565b6120a2565b906120b9565b95945050505050565b6000806000806000886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b79190614486565b5050905061123489826001600160a01b031663b8f82b268b8b6040518363ffffffff1660e01b81526004016111ed9291906144c8565b602060405180830381865afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e91906144e1565b88611247565b929c919b50995090975095505050505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b291906143e2565b90506112ca6112c089610940565b829089428a6120e8565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906143e2565b9050600061134d6113448a610940565b83908742611ee4565b9450905061136761135e828a614547565b83908742611e0f565b5090975061137c91508a905061037e87611f15565b9250505093509350935093565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f491906143e2565b9050600061140189610940565b905061141082828a428b6122c3565b929850965090945061137c90508961037e87611b80565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149091906143e2565b90506114a861149e88610940565b829088428961241f565b919550909350610f8990508761037e86611f15565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115249190614486565b50509050600080876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e91906143e2565b905061159a8188611e7a565b60405163cbe52ae360e01b81529095509092506001600160a01b0384169063cbe52ae3906115ce90899086906004016144c8565b602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f91906144e1565b9450505050935093915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168591906143e2565b905061169c61169387610940565b82908742611ee4565b90945092506106828661037e87611f15565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156116f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171991906143e2565b905061173161172789610940565b829089428a612544565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b91906143e2565b905060006117b46117ab8a610940565b83908742611b1e565b945090506117cf816117c6878b614547565b84919042611e0f565b5090975061137c91508a905061037e87611b80565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f91906143e2565b905060008061185e838a611e7a565b9150915061187861186e8b610940565b849084428c61241f565b91975090955061188a90508682614510565b96506118998a61037e88611f15565b935050505093509350935093565b600080826001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d91906143e2565b9050600061191f826101000151611f15565b905061192a81612707565b949350505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d91906143e2565b905060006119aa89610940565b90506119b982828a428b612b1c565b929850965090945061137c90508961037e87611f15565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906143e2565b90506000611a4688610940565b9050611a55828289428a612c81565b919650909450611a6a90508861037e87611f15565b9250505093509350939050565b600061083982600061068c565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed91906143e2565b90506000611afa88610940565b9050611b09828289428a612d8d565b919650909450611a6a90508861037e87611b80565b600080600080611b388888611b3289611b80565b88612ee2565b91509150611b4582611d78565b9350611b5081611d78565b9250505094509492505050565b60006109bb8383612fa2565b600081831015611b7a5760006109bb565b50900390565b6000611b8b82611f15565b6108399060001961459d565b611bc26040518060800160405280600081526020016000815260200160008152602001600081525090565b60c08401518210611be65760405163b2094b5960e01b815260040160405180910390fd5b6000828560c00151611bf89190614547565b9050611c048582612fc4565b82526020850151611c16908590613025565b602083015284511580611c2b57506020820151155b15611c52578451602083015160405163b1c4aefb60e01b81526107f59291906004016143c9565b611c708560000151866101000151846020015185600001518561305c565b604083015260a0850151611c8490826130dd565b6060830152509392505050565b600080611c9e8784613116565b90506000611cb6611caf888a614622565b8390611d49565b9050670d529ae9e8600000811315611ced5780670d529ae9e8600000604051637e34684f60e11b81526004016107f59291906143c9565b6000611cf88261315d565b905085611d058289611d49565b611d0f9190614622565b9350670de0b6b3a7640000841215611d3d5760405163329e322960e21b8152600481018590526024016107f5565b50505095945050505050565b600080611d5e670de0b6b3a76400008561459d565b9050828181611d6f57611d6f614663565b05949350505050565b600080821215611d8757600080fd5b5090565b600080611d98838561459d565b9050670de0b6b3a764000081611d6f565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611deb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906144e1565b600080600080600080600080611e378c611e288d611f15565b611e318d611f15565b8c6131b0565b9350935093509350611e4884611d78565b9750611e5383611d78565b9650611e5e82611d78565b9550611e6981611d78565b945050505050945094509450949050565b600080600080611e9286611e8d87611f15565b61335e565b91509150611e9f82611d78565b9350611eaa81611d78565b925050509250929050565b60006109bb8383613429565b6000816001611ed08286614510565b611eda9190614547565b6109bb9190614679565b600080600080611ef88888611b3289611f15565b91509150611b4561082d8361343e565b60008261192a818461344c565b60006001600160ff1b03821115611d8757600080fd5b6040805160808101825286815260208101869052908101849052606081018390526000908190819081611f5f8a8a89611b97565b90506000611f71878360200151613464565b90506000611f9084604001518560200151611f0890919063ffffffff16565b905060005b826060015181101561206057600080611fb8858789600001516000015186613515565b9150915081611fcc57602085015250612050565b600080611fde89600001518985613580565b915091508582106120475782876020018181525050600061200483888a608001516135bf565b905080156120415760208a0151849061201d9085611eb5565b60208c015161202c9085611eb5565b9c509c509c5050505050505050505050612097565b5061204b565b8287525b505050505b6120598161468d565b9050611f95565b5060405162461bcd60e51b815260206004820152600b60248201526a185c1c1c9bde0819985a5b60aa1b60448201526064016107f5565b955095509592505050565b6000808213611d87576120b4826146a6565b610839565b6000806120ce670de0b6b3a764000085614528565b90508281816120df576120df614663565b04949350505050565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036121395760405162461bcd60e51b81526004016107f5906146c2565b60208101516060820151825160009261215192611b97565b9050600061216887838560000151600001516135f2565b905060006121878460400151856020015161369890919063ffffffff16565b905060005b82606001518110156120605760006121a484836136a4565b90506000806121b888600001518885613703565b91509150848211156121dd576121cf600184614547565b6020870152506122b3915050565b600080806121eb8589614547565b90506000866122018d6000015160000151611d78565b61220b9190614547565b90506000858761221e8e60200151611d78565b6122289190614510565b6122329190614547565b905061223e8189614528565b945061224a8284614528565b935050505061225e82828a60800151613723565b156122835760208a015185906122749086611eb5565b60208c015161202c9086611eb5565b80821161229c57612295856001614510565b88526122ad565b6122a7600186614547565b60208901525b50505050505b6122bc8161468d565b905061218c565b604080516080810182528681526020810186905290810184905260608101839052600090819081908190816122f98b8b8a611b97565b9050600061230b888360200151613464565b905061231f81600001518460400151613741565b815260005b816060015181101561206057600080612347848688600001516000015186613515565b915091508161235b57602084015250612403565b60008061236d88600001518885613580565b9150915060008860400151836123839190614510565b90508084116123ec57838752600061239b8486614547565b90506123b0818b604001518a60800151613757565b156123e6578381866123cf868e60200151611eb590919063ffffffff16565b9d509d509d509d5050505050505050505050612413565b506123fd565b6123f7600185614547565b60208801525b50505050505b61240c8161468d565b9050612324565b95509550955095915050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816124538a8a89611b97565b9050600061246a87838560000151600001516135f2565b905060006124898460400151856020015161369890919063ffffffff16565b905060005b82606001518110156120605760006124a684836136a4565b90506000806124ba88600001518885613703565b9150915084821161251f5782865260808601516000906124dd9084908890613757565b9050801561251957602089015184906124f69085611eb5565b60208b01516125059085611eb5565b9b509b509b50505050505050505050612097565b50612530565b61252a600184614547565b60208701525b5050508061253d9061468d565b905061248e565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036125955760405162461bcd60e51b81526004016107f5906146c2565b6020810151606082015182516000926125ad92611b97565b905060006125bf878360200151613464565b90506125d381602001518460400151613785565b602082015260005b8160600151811015612060576000806125fe848688600001516000015186613515565b9150915081612612576020840152506126f7565b60008061262488600001518885613580565b9150915060008060008561263f8c6000015160000151611d78565b6126499190614510565b90506000868c6040015161265d9190614547565b9050600085876126708e60200151611d78565b61267a9190614547565b6126849190614547565b90506126908388614528565b945061269c8183614528565b93505050506126b082828a60800151613723565b156126c65760208a015185906122749086611eb5565b8082116126df576126d8856001614510565b88526126f0565b6126ea600186614547565b60208901525b5050505050505b6127008161468d565b90506125db565b6000680238fd42c5cf03ffff19821215801561272c575068070c1cc73b00c800008213155b61276b5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016107f5565b60008212156127a35761278082600003612707565b6a0c097ce7bc90715b34b9f160241b8161279c5761279c614663565b0592915050565b60006806f05b59d3b200000083126127e157506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b612817565b6803782dace9d9000000831261281357506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380612817565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126128675768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126128a3576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126128dd57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612917576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261295057680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126129895768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126129c2576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126129fb5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008060008060006040518060a001604052808b81526020018a8152602001898152602001888152602001612b5a8a8c611eb590919063ffffffff16565b9052602081015160608201518251929350600092612b79929091611b97565b90506000612b9088838560000151600001516135f2565b9050612ba481600001518460400151613741565b815260005b8160600151811015612060576000612bc183836136a4565b9050600080612bd587600001518785613703565b915091506000612bf2838960200151611b5d90919063ffffffff16565b905087608001518111612c5b5783865260408801516080870151612c17918591613757565b15612c56576040880151612c2b9085614547565b604089015160208a01518690612c419086611eb5565b9b509b509b509b505050505050505050612413565b612c6c565b612c66600185614547565b60208701525b5050505080612c7a9061468d565b9050612ba9565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612cb58a8a89611b97565b90506000612ccc87838560000151600001516135f2565b90506000612ceb84604001518560200151611f0890919063ffffffff16565b905060005b8260600151811015612060576000612d0884836136a4565b9050600080612d1c88600001518885613703565b90925090506000612d2d8385614547565b9050858110612d6a5783876020018181525050612d4f818789608001516135bf565b15612d6557602089015184906124f69083611eb5565b612d78565b612d75846001614510565b87525b5050505080612d869061468d565b9050612cf0565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612dc18a8a89611b97565b90506000612dd3878360200151613464565b90506000612df28460400151856020015161369890919063ffffffff16565b8251909150600003612e02578082525b60005b826060015181101561206057600080612e28858789600001516000015186613515565b9150915081612e3c57602085015250612ed2565b600080612e4e89600001518985613580565b90925090506000612e5f8385614547565b9050868111612ec4578388526080880151600090612e809083908a90613757565b90508015612ebe5760208b01518590612e999084611eb5565b60208d0151612ea89086611eb5565b9d509d509d505050505050505050505050612097565b50612ecc565b602088018490525b50505050505b612edb8161468d565b9050612e05565b600080612ef38660c0015184101590565b15612f115760405163b2094b5960e01b815260040160405180910390fd5b85518412612f37578551604051632185509b60e21b81526107f5919086906004016143c9565b6000612f44878786611b97565b9050600080612f54898489613794565b9150915060008212612f6f57612f6a8883613897565b612f79565b612f7988836138c4565b9450612f858882613897565b9350612f9689848a8a89898c6138f1565b50505094509492505050565b600082600181612fba670de0b6b3a764000086614528565b611ed09190614510565b6000612fcf82611f15565b612fe6612fe16201518061016d614528565b611f15565b8460800151612ff5919061459d565b612fff91906146ea565b90506000811361083957604051630e520c3b60e11b8152600481018290526024016107f5565b6000806000831261303757600161303b565b6000195b9050613052612fe18561304d866120a2565b613983565b61192a908261459d565b60008061306986846130dd565b9050670de0b6b3a76400008112156130975760405163329e322960e21b8152600481018290526024016107f5565b60006130ad6130a6878a614622565b8990611d49565b905060006130ba8261315d565b90506130c68187611d49565b6130d0908461455e565b9998505050505050505050565b6000806130ef6201518061016d614528565b6130f98486614528565b6131039190614679565b905061192a61311182611f15565b612707565b6000818312156131535760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016107f5565b6109bb828461455e565b6000670de0b6b3a764000082036131875760405163a9c8b14d60e01b815260040160405180910390fd5b60006131a561319e84670de0b6b3a764000061455e565b8490611d49565b90506109bb81613998565b60008080808615806131c0575085155b156131de576040516325daaec360e01b815260040160405180910390fd5b60c088015185106132025760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003613245576103e8613229612fe161322461082d8a8c61459d565b613a29565b613233919061455e565b92506103e893508691508590506132e8565b875160408901516000919061325a908961459d565b61326491906146ea565b9050600089602001518a604001518a61327d919061459d565b61328791906146ea565b9050808212156132bd578194508792508960400151858b602001516132ac919061459d565b6132b691906146ea565b93506132e5565b8094508893508960400151858b600001516132d8919061459d565b6132e291906146ea565b92505b50505b8260000361330957604051631997ea8d60e31b815260040160405180910390fd5b818860200181815161331b9190614622565b90525087518190899061332f908390614622565b90525061333c8484614622565b8860400181815161334d9190614622565b905250929791965094509092509050565b60008082600003613382576040516325daaec360e01b815260040160405180910390fd5b60408401516020850151613396908561459d565b6133a091906146ea565b60408501518551919350906133b5908561459d565b6133bf91906146ea565b90508115806133cc575080155b156133ea57604051631997ea8d60e31b815260040160405180910390fd5b60408401516133f99084613116565b6040850152835161340a9082613116565b8452602084015161341b9083613116565b602090940193909352929050565b600082611eda670de0b6b3a764000084614528565b60006108398260001961459d565b6000670de0b6b3a7640000600181612fba8686614528565b61349d6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8251815260208301516134b8906134b384613a98565b613785565b602082018190526040808501519083015260608085015190830152608080850151908301528151118015906134f95750670de0b6b3a7640000816080015111155b6108395760405162461bcd60e51b81526004016107f590614718565b600080600061352487856136a4565b90508660a00151811161353c57600192509050613577565b6000613551878761354c85611f15565b613aaf565b905060008112156135685750600092509050613577565b5060a087018190526001925090505b94509492505050565b60008060008061359b8661359387611b80565b899190613794565b915091506135a882611d78565b93506135b381611d78565b92505050935093915050565b600082841015801561192a57506135e7836135e284670de0b6b3a7640000614510565b613ba7565b841115949350505050565b6136246040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83518152602084015161363b906134b38585613bc5565b6020820181905260408086015190830152606080860151908301526080808601519083015281511180159061367c5750670de0b6b3a7640000816080015111155b6109bb5760405162461bcd60e51b81526004016107f590614718565b60006109bb8383613983565b6000811580156136b75750604083015115155b156136c757506040820151610839565b6020830151835111156136df57506020820151610839565b602083015183516002916136f291614510565b6136fc9190614679565b9050610839565b6000806000806137168661359387611f15565b915091506135a8826120a2565b60006137308484846135bf565b8061192a575061192a848484613757565b600081831161375057816109bb565b5090919050565b600082841115801561192a575061377a836135e284670de0b6b3a7640000614547565b909310159392505050565b600081831061375057816109bb565b60008060006137b6866000015186602001518760000151886040015188611c91565b905060006137cc6137c78684611d49565b61343e565b6060870151909150600086131561383b5760006137e98483611d49565b9050670de0b6b3a76400008112156138175760405163329e322960e21b8152600481018290526024016107f5565b61383361382c83670de0b6b3a764000061455e565b8490611d8b565b915050613868565b6138658161385181670de0b6b3a764000061455e565b61385b908561459d565b6137c791906146ea565b90505b60646138778960e00151611f15565b613881908361459d565b61388b91906146ea565b935061160f818361455e565b600080600083126138a95760016138ad565b6000195b9050613052612fe1856138bf866120a2565b613429565b600080600083126138d65760016138da565b6000195b9050613052612fe1856138ec866120a2565b612fa2565b6000818860c001516139039190614547565b88519091506139129086613116565b885261392c6139218486614622565b60208a015190613116565b60208901819052885161395191613944908990613025565b895160408b015185613c50565b610100890181905260000361397957604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000670de0b6b3a7640000611eda8484614528565b60008082136139d95760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016107f5565b670c7d713b49da0000821380156139f75750670f43fc2c04ee000082125b15613a1b57670de0b6b3a7640000613a0e83613ca3565b8161279c5761279c614663565b61083982613dc2565b919050565b60006003821115613a8a5750806000613a43600283614679565b613a4e906001614510565b90505b81811015613a8457905080600281613a698186614679565b613a739190614510565b613a7d9190614679565b9050613a51565b50919050565b8115613a2457506001919050565b60006001613aa583611d78565b6108399190614547565b600080828560200151613ac2919061455e565b90506000613ad08585614622565b9050600082138015613ae25750600081135b613b235760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016107f5565b6000613b51613b32848461459d565b6020890151613b419089614622565b613b4b908861459d565b90611d49565b90506000613b67613b628486611d49565b613998565b8851909150600090613b8290670de0b6b3a764000090611d49565b9050613b9881613b92848661455e565b90611d8b565b89604001516130d0919061455e565b600080613bb48385614528565b9050670de0b6b3a7640000816120df565b600080613be7613111856000015186604001518760600151613b92919061455e565b90506000613c00611caf670de0b6b3a764000084614622565b90506000613c1e866020015186613c179190614622565b8390611d8b565b90506000613c2c828761455e565b90506103e8613c3a82611d78565b613c46906103e7614528565b6108329190614679565b600080613c61878787876000611c91565b90506000613c7161082d83613998565b905083613c836201518061016d614528565b613c8d9083614528565b613c979190614679565b98975050505050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281613ce457613ce4614663565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215613e0357613dfa826a0c097ce7bc90715b34b9f160241b81613df457613df4614663565b05613dc2565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312613e4e5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312613e85576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312613ecd576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613f08576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613f3f57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613f7657690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613fab5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613fd657680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d831261400b576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614040576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614074576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126140a8576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816140d1576140d1614663565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461417a57600080fd5b50565b6000806040838503121561419057600080fd5b823561419b81614165565b946020939093013593505050565b6000806000606084860312156141be57600080fd5b83356141c981614165565b92506020840135915060408401356141e081614165565b809150509250925092565b6000602082840312156141fd57600080fd5b81356109bb81614165565b60008060006060848603121561421d57600080fd5b833561422881614165565b95602085013595506040909401359392505050565b6000806000806080858703121561425357600080fd5b843561425e81614165565b9350602085013561426e81614165565b93969395505050506040820135916060013590565b60405161012081016001600160401b03811182821017156142b457634e487b7160e01b600052604160045260246000fd5b60405290565b600060a082840312156142cc57600080fd5b60405160a081016001600160401b03811182821017156142fc57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600080600080610100858703121561434e57600080fd5b843561435981614165565b9350602085013561436981614165565b92506040850135915061437f86606087016142ba565b905092959194509250565b600080600060e0848603121561439f57600080fd5b83356143aa81614165565b9250602084013591506143c085604086016142ba565b90509250925092565b918252602082015260400190565b8051613a2481614165565b600061012082840312156143f557600080fd5b6143fd614283565b825181526020830151602082015260408301516040820152614421606084016143d7565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561447657600080fd5b815180151581146109bb57600080fd5b60008060006060848603121561449b57600080fd5b83516144a681614165565b60208501519093506144b781614165565b60408501519092506141e081614165565b6001600160a01b03929092168252602082015260400190565b6000602082840312156144f357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614523576145236144fa565b500190565b6000816000190483118215151615614542576145426144fa565b500290565b600082821015614559576145596144fa565b500390565b60008083128015600160ff1b85018412161561457c5761457c6144fa565b6001600160ff1b0384018313811615614597576145976144fa565b50500390565b60006001600160ff1b03818413828413808216868404861116156145c3576145c36144fa565b600160ff1b60008712828116878305891216156145e2576145e26144fa565b600087129250878205871284841616156145fe576145fe6144fa565b87850587128184161615614614576146146144fa565b505050929093029392505050565b600080821280156001600160ff1b0384900385131615614644576146446144fa565b600160ff1b839003841281161561465d5761465d6144fa565b50500190565b634e487b7160e01b600052601260045260246000fd5b60008261468857614688614663565b500490565b60006001820161469f5761469f6144fa565b5060010190565b6000600160ff1b82016146bb576146bb6144fa565b5060000390565b6020808252600e908201526d06e6f206578697374696e67206c760941b604082015260600190565b6000826146f9576146f9614663565b600160ff1b821460001984141615614713576147136144fa565b500590565b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b60408201526060019056fea26469706673582212205df31cbaa968143596dffb923224eb550c6503b8338b819c054b23854789b25c64736f6c634300080f0033";
296
+ "0x61477661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101695760003560e01c806303670dba1461016e578063067cbde1146101ae5780630f8cb321146101ce5780631272d863146101fc5780631b9d358d1461021c57806321b7679d1461023c5780632f7707091461025c57806331c6d55c1461026f57806336233bd91461028f5780633c71db3d146102af5780633e32089f146102c257806345324d9c146102e2578063586772c51461030257806362eaf69d14610322578063672b79e41461034357806368d384c014610363578063690a0cbd14610383578063919f9430146103c3578063a4beab18146103e3578063ab52e20f14610403578063af2c797114610423578063b24898f414610436578063c06225e814610456578063c50b5c8b14610476578063c74141f114610496578063cf8a61d6146104a9578063d92f8f09146104c9578063efb7601d146104e9578063fe852a2014610509575b600080fd5b81801561017a57600080fd5b5061018e610189366004614176565b610529565b604080519384526020840192909252908201526060015b60405180910390f35b8180156101ba57600080fd5b5061018e6101c9366004614176565b6105f0565b8180156101da57600080fd5b506101ee6101e9366004614176565b61068c565b6040519081526020016101a5565b81801561020857600080fd5b5061018e6102173660046141a2565b61083f565b81801561022857600080fd5b506101ee6102373660046141e4565b610940565b81801561024857600080fd5b5061018e6102573660046141a2565b6109c2565b61018e61026a366004614201565b6109d2565b81801561027b57600080fd5b5061018e61028a3660046141a2565b610a5a565b81801561029b57600080fd5b5061018e6102aa366004614176565b610a6a565b61018e6102bd366004614236565b610baf565b8180156102ce57600080fd5b5061018e6102dd366004614330565b610d30565b8180156102ee57600080fd5b5061018e6102fd366004614176565b610e26565b81801561030e57600080fd5b5061018e61031d366004614383565b610ef3565b610335610330366004614176565b610f95565b6040516101a59291906143c2565b81801561034f57600080fd5b5061018e61035e366004614330565b611015565b81801561036f57600080fd5b506101ee61037e366004614176565b6110fa565b81801561038f57600080fd5b506103a361039e366004614330565b61114d565b6040805194855260208501939093529183015260608201526080016101a5565b8180156103cf57600080fd5b506103a36103de366004614383565b611247565b8180156103ef57600080fd5b506103a36103fe366004614383565b611389565b81801561040f57600080fd5b5061018e61041e366004614383565b611427565b6103356104313660046141a2565b6114bd565b81801561044257600080fd5b5061018e610451366004614176565b61161c565b81801561046257600080fd5b506103a3610471366004614383565b6116ae565b81801561048257600080fd5b506103a3610491366004614383565b6117e4565b6101ee6104a43660046141e4565b6118a7565b8180156104b557600080fd5b506103a36104c4366004614383565b611932565b8180156104d557600080fd5b5061018e6104e4366004614383565b6119d0565b8180156104f557600080fd5b506101ee6105043660046141e4565b611a77565b81801561051557600080fd5b5061018e610524366004614383565b611a84565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561056e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059291906143db565b9050600061059f87610940565b905060006105b86105af89610940565b84908942611b1e565b9550905060006105c88389611b5d565b90506105d48183611b69565b96506105e38961037e8a611b80565b9450505050509250925092565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065991906143db565b905061067061066787610940565b82908742611b1e565b90945092506106828661037e87611b80565b9150509250925092565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f0919061445d565b156107045750670de0b6b3a7640000610839565b60008290506000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e91906143db565b9050600061078661077e87610940565b839042611b97565b905060006107a7836000015183602001518460000151856040015188611c91565b905060008413156108135760006107cb836060015183611d4990919063ffffffff16565b9050670de0b6b3a76400008112156107fe5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b61080781611d78565b95505050505050610839565b61083261082d836060015183611d8b90919063ffffffff16565b611d78565b9450505050505b92915050565b60008060008061084f8787610a6a565b8094508195508293505050506000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf919061447f565b505060405163cbe52ae360e01b81529091506001600160a01b0382169063cbe52ae3906108f290899086906004016144c1565b602060405180830381865afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093391906144da565b9450505093509350939050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a5919061447f565b925050506109bb816001600160a01b0316611da9565b9392505050565b60008060008061084f8787610e26565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906143db565b9050610a4981878742611e0f565b919a90995090975095505050505050565b60008060008061084f87876105f0565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad391906143db565b9050600080610ae28388611e7a565b91509150876001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b48919061445d565b15610b7157610b6081610b5a8a610940565b90611eb5565b610b6a9083614509565b9550610ba5565b6000610b88610b7f8a610940565b85908442611b1e565b96509050610b968184614509565b96506105e38961037e84611b80565b5050509250925092565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c17919061447f565b505090506000816001600160a01b031663b8f82b2689896040518363ffffffff1660e01b8152600401610c4b9291906144c1565b602060405180830381865afa158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c91906144da565b90506000808a6001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf491906143db565b9050610d0281848a42611e0f565b9199509096509250610d20905083610d1a848c614521565b90611ec1565b9550505050509450945094915050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d98919061447f565b50509050610e1588826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b8152600401610dce9291906144c1565b602060405180830381865afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906144da565b87611427565b935093509350509450945094915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f91906143db565b90506000610e9c87610940565b90506000610eac83838942611ee4565b955090506000610ebc8383611f08565b90506000610eca828a614540565b9050610ed68482611eb5565b9750610ee58a61037e8b611f15565b955050505050509250925092565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5c91906143db565b9050610f74610f6a88610940565b8290884289611f2b565b919550909350610f8990508761037e86611b80565b91505093509350939050565b6000806000846001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906143db565b90506110098185611e7a565b90969095509350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d919061447f565b50509050610e1588826001600160a01b031663b8f82b268a8a6040518363ffffffff1660e01b81526004016110b39291906144c1565b602060405180830381865afa1580156110d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f491906144da565b87611a84565b60008061110684611a77565b90506000611114858561068c565b90506111448261113e61112685611f15565b61112f85611f15565b6111399190614557565b612085565b9061209c565b95945050505050565b6000806000806000886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b7919061447f565b5050905061123489826001600160a01b031663b8f82b268b8b6040518363ffffffff1660e01b81526004016111ed9291906144c1565b602060405180830381865afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e91906144da565b88611247565b929c919b50995090975095505050505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b291906143db565b90506112ca6112c089610940565b829089428a6120cb565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906143db565b9050600061134d6113448a610940565b83908742611ee4565b9450905061136761135e828a614540565b83908742611e0f565b5090975061137c91508a905061037e87611f15565b9250505093509350935093565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f491906143db565b9050600061140189610940565b905061141082828a428b6122a6565b929850965090945061137c90508961037e87611b80565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149091906143db565b90506114a861149e88610940565b8290884289612402565b919550909350610f8990508761037e86611f15565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611524919061447f565b50509050600080876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e91906143db565b905061159a8188611e7a565b60405163cbe52ae360e01b81529095509092506001600160a01b0384169063cbe52ae3906115ce90899086906004016144c1565b602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f91906144da565b9450505050935093915050565b600080600080856001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168591906143db565b905061169c61169387610940565b82908742611ee4565b90945092506106828661037e87611f15565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156116f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171991906143db565b905061173161172789610940565b829089428a612527565b90505080945050876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b91906143db565b905060006117b46117ab8a610940565b83908742611b1e565b945090506117cf816117c6878b614540565b84919042611e0f565b5090975061137c91508a905061037e87611b80565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f91906143db565b905060008061185e838a611e7a565b9150915061187861186e8b610940565b849084428c612402565b91975090955061188a90508682614509565b96506118998a61037e88611f15565b935050505093509350935093565b600080826001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d91906143db565b9050600061191f826101000151611f15565b905061192a816126ea565b949350505050565b6000806000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d91906143db565b905060006119aa89610940565b90506119b982828a428b612aff565b929850965090945061137c90508961037e87611f15565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906143db565b90506000611a4688610940565b9050611a55828289428a612c64565b919650909450611a6a90508861037e87611f15565b9250505093509350939050565b600061083982600061068c565b600080600080866001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed91906143db565b90506000611afa88610940565b9050611b09828289428a612d70565b919650909450611a6a90508861037e87611b80565b600080600080611b388888611b3289611b80565b88612ec5565b91509150611b4582611d78565b9350611b5081611d78565b9250505094509492505050565b60006109bb8383612f85565b600081831015611b7a5760006109bb565b50900390565b6000611b8b82611f15565b61083990600019614596565b611bc26040518060800160405280600081526020016000815260200160008152602001600081525090565b60c08401518210611be65760405163b2094b5960e01b815260040160405180910390fd5b6000828560c00151611bf89190614540565b9050611c048582612fa7565b82526020850151611c16908590613008565b602083015284511580611c2b57506020820151155b15611c52578451602083015160405163b1c4aefb60e01b81526107f59291906004016143c2565b611c708560000151866101000151846020015185600001518561303f565b604083015260a0850151611c8490826130c0565b6060830152509392505050565b600080611c9e87846130f9565b90506000611cb6611caf888a61461b565b8390611d49565b9050670d529ae9e8600000811315611ced5780670d529ae9e8600000604051637e34684f60e11b81526004016107f59291906143c2565b6000611cf882613140565b905085611d058289611d49565b611d0f919061461b565b9350670de0b6b3a7640000841215611d3d5760405163329e322960e21b8152600481018590526024016107f5565b50505095945050505050565b600080611d5e670de0b6b3a764000085614596565b9050828181611d6f57611d6f61465c565b05949350505050565b600080821215611d8757600080fd5b5090565b600080611d988385614596565b9050670de0b6b3a764000081611d6f565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611deb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906144da565b600080600080600080600080611e378c611e288d611f15565b611e318d611f15565b8c613193565b9350935093509350611e4884611d78565b9750611e5383611d78565b9650611e5e82611d78565b9550611e6981611d78565b945050505050945094509450949050565b600080600080611e9286611e8d87611f15565b613341565b91509150611e9f82611d78565b9350611eaa81611d78565b925050509250929050565b60006109bb838361340c565b6000816001611ed08286614509565b611eda9190614540565b6109bb9190614672565b600080600080611ef88888611b3289611f15565b91509150611b4561082d83613421565b60008261192a818461342f565b60006001600160ff1b03821115611d8757600080fd5b6040805160808101825286815260208101869052908101849052606081018390526000908190819081611f5f8a8a89611b97565b90506000611f71878360200151613447565b90506000611f9084604001518560200151611f0890919063ffffffff16565b905060005b826060015181101561206057600080611fb88587896000015160000151866134f8565b9150915081611fcc57602085015250612050565b600080611fde89600001518985613563565b915091508582106120475782876020018181525050600061200483888a608001516135a2565b905080156120415760208a0151849061201d9085611eb5565b60208c015161202c9085611eb5565b9c509c509c505050505050505050505061207a565b5061204b565b8287525b505050505b61205981614686565b9050611f95565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000808213611d87576120978261469f565b610839565b6000806120b1670de0b6b3a764000085614521565b90508281816120c2576120c261465c565b04949350505050565b60008060008060405180608001604052808a815260200189815260200188815260200187815250905080600001516040015160000361211c5760405162461bcd60e51b81526004016107f5906146bb565b60208101516060820151825160009261213492611b97565b9050600061214b87838560000151600001516135d5565b9050600061216a8460400151856020015161367b90919063ffffffff16565b905060005b82606001518110156120605760006121878483613687565b905060008061219b886000015188856136fc565b91509150848211156121c0576121b2600184614540565b602087015250612296915050565b600080806121ce8589614540565b90506000866121e48d6000015160000151611d78565b6121ee9190614540565b9050600085876122018e60200151611d78565b61220b9190614509565b6122159190614540565b90506122218189614521565b945061222d8284614521565b935050505061224182828a6080015161371c565b156122665760208a015185906122579086611eb5565b60208c015161202c9086611eb5565b80821161227f57612278856001614509565b8852612290565b61228a600186614540565b60208901525b50505050505b61229f81614686565b905061216f565b604080516080810182528681526020810186905290810184905260608101839052600090819081908190816122dc8b8b8a611b97565b905060006122ee888360200151613447565b90506123028160000151846040015161373a565b815260005b81606001518110156120605760008061232a8486886000015160000151866134f8565b915091508161233e576020840152506123e6565b60008061235088600001518885613563565b9150915060008860400151836123669190614509565b90508084116123cf57838752600061237e8486614540565b9050612393818b604001518a60800151613750565b156123c9578381866123b2868e60200151611eb590919063ffffffff16565b9d509d509d509d50505050505050505050506123f6565b506123e0565b6123da600185614540565b60208801525b50505050505b6123ef81614686565b9050612307565b95509550955095915050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816124368a8a89611b97565b9050600061244d87838560000151600001516135d5565b9050600061246c8460400151856020015161367b90919063ffffffff16565b905060005b82606001518110156120605760006124898483613687565b905060008061249d886000015188856136fc565b915091508482116125025782865260808601516000906124c09084908890613750565b905080156124fc57602089015184906124d99085611eb5565b60208b01516124e89085611eb5565b9b509b509b5050505050505050505061207a565b50612513565b61250d600184614540565b60208701525b5050508061252090614686565b9050612471565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036125785760405162461bcd60e51b81526004016107f5906146bb565b60208101516060820151825160009261259092611b97565b905060006125a2878360200151613447565b90506125b68160200151846040015161377e565b602082015260005b8160600151811015612060576000806125e18486886000015160000151866134f8565b91509150816125f5576020840152506126da565b60008061260788600001518885613563565b915091506000806000856126228c6000015160000151611d78565b61262c9190614509565b90506000868c604001516126409190614540565b9050600085876126538e60200151611d78565b61265d9190614540565b6126679190614540565b90506126738388614521565b945061267f8183614521565b935050505061269382828a6080015161371c565b156126a95760208a015185906122579086611eb5565b8082116126c2576126bb856001614509565b88526126d3565b6126cd600186614540565b60208901525b5050505050505b6126e381614686565b90506125be565b6000680238fd42c5cf03ffff19821215801561270f575068070c1cc73b00c800008213155b61274e5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016107f5565b600082121561278657612763826000036126ea565b6a0c097ce7bc90715b34b9f160241b8161277f5761277f61465c565b0592915050565b60006806f05b59d3b200000083126127c457506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6127fa565b6803782dace9d900000083126127f657506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806127fa565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261284a5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612886576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126128c057682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126128fa576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261293357680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d63100000841261296c5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126129a5576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126129de5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008060008060006040518060a001604052808b81526020018a8152602001898152602001888152602001612b3d8a8c611eb590919063ffffffff16565b9052602081015160608201518251929350600092612b5c929091611b97565b90506000612b7388838560000151600001516135d5565b9050612b878160000151846040015161373a565b815260005b8160600151811015612060576000612ba48383613687565b9050600080612bb8876000015187856136fc565b915091506000612bd5838960200151611b5d90919063ffffffff16565b905087608001518111612c3e5783865260408801516080870151612bfa918591613750565b15612c39576040880151612c0e9085614540565b604089015160208a01518690612c249086611eb5565b9b509b509b509b5050505050505050506123f6565b612c4f565b612c49600185614540565b60208701525b5050505080612c5d90614686565b9050612b8c565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612c988a8a89611b97565b90506000612caf87838560000151600001516135d5565b90506000612cce84604001518560200151611f0890919063ffffffff16565b905060005b8260600151811015612060576000612ceb8483613687565b9050600080612cff886000015188856136fc565b90925090506000612d108385614540565b9050858110612d4d5783876020018181525050612d32818789608001516135a2565b15612d4857602089015184906124d99083611eb5565b612d5b565b612d58846001614509565b87525b5050505080612d6990614686565b9050612cd3565b6040805160808101825286815260208101869052908101849052606081018390526000908190819081612da48a8a89611b97565b90506000612db6878360200151613447565b90506000612dd58460400151856020015161367b90919063ffffffff16565b8251909150600003612de5578082525b60005b826060015181101561206057600080612e0b8587896000015160000151866134f8565b9150915081612e1f57602085015250612eb5565b600080612e3189600001518985613563565b90925090506000612e428385614540565b9050868111612ea7578388526080880151600090612e639083908a90613750565b90508015612ea15760208b01518590612e7c9084611eb5565b60208d0151612e8b9086611eb5565b9d509d509d50505050505050505050505061207a565b50612eaf565b602088018490525b50505050505b612ebe81614686565b9050612de8565b600080612ed68660c0015184101590565b15612ef45760405163b2094b5960e01b815260040160405180910390fd5b85518412612f1a578551604051632185509b60e21b81526107f5919086906004016143c2565b6000612f27878786611b97565b9050600080612f3789848961378d565b9150915060008212612f5257612f4d8883613890565b612f5c565b612f5c88836138bd565b9450612f688882613890565b9350612f7989848a8a89898c6138ea565b50505094509492505050565b600082600181612f9d670de0b6b3a764000086614521565b611ed09190614509565b6000612fb282611f15565b612fc9612fc46201518061016d614521565b611f15565b8460800151612fd89190614596565b612fe291906146e3565b90506000811361083957604051630e520c3b60e11b8152600481018290526024016107f5565b6000806000831261301a57600161301e565b6000195b9050613035612fc48561303086612085565b61397c565b61192a9082614596565b60008061304c86846130c0565b9050670de0b6b3a764000081121561307a5760405163329e322960e21b8152600481018290526024016107f5565b6000613090613089878a61461b565b8990611d49565b9050600061309d82613140565b90506130a98187611d49565b6130b39084614557565b9998505050505050505050565b6000806130d26201518061016d614521565b6130dc8486614521565b6130e69190614672565b905061192a6130f482611f15565b6126ea565b6000818312156131365760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016107f5565b6109bb8284614557565b6000670de0b6b3a7640000820361316a5760405163a9c8b14d60e01b815260040160405180910390fd5b600061318861318184670de0b6b3a7640000614557565b8490611d49565b90506109bb81613991565b60008080808615806131a3575085155b156131c1576040516325daaec360e01b815260040160405180910390fd5b60c088015185106131e55760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003613228576103e861320c612fc461320761082d8a8c614596565b613a22565b6132169190614557565b92506103e893508691508590506132cb565b875160408901516000919061323d9089614596565b61324791906146e3565b9050600089602001518a604001518a6132609190614596565b61326a91906146e3565b9050808212156132a0578194508792508960400151858b6020015161328f9190614596565b61329991906146e3565b93506132c8565b8094508893508960400151858b600001516132bb9190614596565b6132c591906146e3565b92505b50505b826000036132ec57604051631997ea8d60e31b815260040160405180910390fd5b81886020018181516132fe919061461b565b90525087518190899061331290839061461b565b90525061331f848461461b565b88604001818151613330919061461b565b905250929791965094509092509050565b60008082600003613365576040516325daaec360e01b815260040160405180910390fd5b604084015160208501516133799085614596565b61338391906146e3565b60408501518551919350906133989085614596565b6133a291906146e3565b90508115806133af575080155b156133cd57604051631997ea8d60e31b815260040160405180910390fd5b60408401516133dc90846130f9565b604085015283516133ed90826130f9565b845260208401516133fe90836130f9565b602090940193909352929050565b600082611eda670de0b6b3a764000084614521565b600061083982600019614596565b6000670de0b6b3a7640000600181612f9d8686614521565b6134806040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82518152602083015161349b9061349684613a91565b61377e565b602082018190526040808501519083015260608085015190830152608080850151908301528151118015906134dc5750670de0b6b3a7640000816080015111155b6108395760405162461bcd60e51b81526004016107f590614711565b60008060006135078785613687565b90508660a00151811161351f5760019250905061355a565b6000613534878761352f85611f15565b613aa8565b9050600081121561354b575060009250905061355a565b5060a087018190526001925090505b94509492505050565b60008060008061357e8661357687611b80565b89919061378d565b9150915061358b82611d78565b935061359681611d78565b92505050935093915050565b600082841015801561192a57506135ca836135c584670de0b6b3a7640000614509565b613ba0565b841115949350505050565b6136076040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83518152602084015161361e906134968585613bbe565b6020820181905260408086015190830152606080860151908301526080808601519083015281511180159061365f5750670de0b6b3a7640000816080015111155b6109bb5760405162461bcd60e51b81526004016107f590614711565b60006109bb838361397c565b60008115801561369a5750604083015115155b156136aa57506040820151610839565b60208301518351116136da57602083015183516002916136c991614509565b6136d39190614672565b9050610839565b82516020840151604051632d3b201b60e01b81526107f59291906004016143c2565b60008060008061370f8661357687611f15565b9150915061358b82612085565b60006137298484846135a2565b8061192a575061192a848484613750565b600081831161374957816109bb565b5090919050565b600082841115801561192a5750613773836135c584670de0b6b3a7640000614540565b909310159392505050565b600081831061374957816109bb565b60008060006137af866000015186602001518760000151886040015188611c91565b905060006137c56137c08684611d49565b613421565b606087015190915060008613156138345760006137e28483611d49565b9050670de0b6b3a76400008112156138105760405163329e322960e21b8152600481018290526024016107f5565b61382c61382583670de0b6b3a7640000614557565b8490611d8b565b915050613861565b61385e8161384a81670de0b6b3a7640000614557565b6138549085614596565b6137c091906146e3565b90505b60646138708960e00151611f15565b61387a9083614596565b61388491906146e3565b935061160f8183614557565b600080600083126138a25760016138a6565b6000195b9050613035612fc4856138b886612085565b61340c565b600080600083126138cf5760016138d3565b6000195b9050613035612fc4856138e586612085565b612f85565b6000818860c001516138fc9190614540565b885190915061390b90866130f9565b885261392561391a848661461b565b60208a0151906130f9565b60208901819052885161394a9161393d908990613008565b895160408b015185613c49565b610100890181905260000361397257604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000670de0b6b3a7640000611eda8484614521565b60008082136139d25760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016107f5565b670c7d713b49da0000821380156139f05750670f43fc2c04ee000082125b15613a1457670de0b6b3a7640000613a0783613c9c565b8161277f5761277f61465c565b61083982613dbb565b919050565b60006003821115613a835750806000613a3c600283614672565b613a47906001614509565b90505b81811015613a7d57905080600281613a628186614672565b613a6c9190614509565b613a769190614672565b9050613a4a565b50919050565b8115613a1d57506001919050565b60006001613a9e83611d78565b6108399190614540565b600080828560200151613abb9190614557565b90506000613ac9858561461b565b9050600082138015613adb5750600081135b613b1c5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016107f5565b6000613b4a613b2b8484614596565b6020890151613b3a908961461b565b613b449088614596565b90611d49565b90506000613b60613b5b8486611d49565b613991565b8851909150600090613b7b90670de0b6b3a764000090611d49565b9050613b9181613b8b8486614557565b90611d8b565b89604001516130b39190614557565b600080613bad8385614521565b9050670de0b6b3a7640000816120c2565b600080613be06130f4856000015186604001518760600151613b8b9190614557565b90506000613bf9611caf670de0b6b3a76400008461461b565b90506000613c17866020015186613c10919061461b565b8390611d8b565b90506000613c258287614557565b90506103e8613c3382611d78565b613c3f906103e7614521565b6108329190614672565b600080613c5a878787876000611c91565b90506000613c6a61082d83613991565b905083613c7c6201518061016d614521565b613c869083614521565b613c909190614672565b98975050505050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281613cdd57613cdd61465c565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215613dfc57613df3826a0c097ce7bc90715b34b9f160241b81613ded57613ded61465c565b05613dbb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312613e475772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312613e7e576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312613ec6576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613f01576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613f3857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613f6f57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613fa45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613fcf57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614004576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614039576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b286603831261406d576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126140a1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816140ca576140ca61465c565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b038116811461417357600080fd5b50565b6000806040838503121561418957600080fd5b82356141948161415e565b946020939093013593505050565b6000806000606084860312156141b757600080fd5b83356141c28161415e565b92506020840135915060408401356141d98161415e565b809150509250925092565b6000602082840312156141f657600080fd5b81356109bb8161415e565b60008060006060848603121561421657600080fd5b83356142218161415e565b95602085013595506040909401359392505050565b6000806000806080858703121561424c57600080fd5b84356142578161415e565b935060208501356142678161415e565b93969395505050506040820135916060013590565b60405161012081016001600160401b03811182821017156142ad57634e487b7160e01b600052604160045260246000fd5b60405290565b600060a082840312156142c557600080fd5b60405160a081016001600160401b03811182821017156142f557634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b600080600080610100858703121561434757600080fd5b84356143528161415e565b935060208501356143628161415e565b92506040850135915061437886606087016142b3565b905092959194509250565b600080600060e0848603121561439857600080fd5b83356143a38161415e565b9250602084013591506143b985604086016142b3565b90509250925092565b918252602082015260400190565b8051613a1d8161415e565b600061012082840312156143ee57600080fd5b6143f661427c565b82518152602083015160208201526040830151604082015261441a606084016143d0565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561446f57600080fd5b815180151581146109bb57600080fd5b60008060006060848603121561449457600080fd5b835161449f8161415e565b60208501519093506144b08161415e565b60408501519092506141d98161415e565b6001600160a01b03929092168252602082015260400190565b6000602082840312156144ec57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561451c5761451c6144f3565b500190565b600081600019048311821515161561453b5761453b6144f3565b500290565b600082821015614552576145526144f3565b500390565b60008083128015600160ff1b850184121615614575576145756144f3565b6001600160ff1b0384018313811615614590576145906144f3565b50500390565b60006001600160ff1b03818413828413808216868404861116156145bc576145bc6144f3565b600160ff1b60008712828116878305891216156145db576145db6144f3565b600087129250878205871284841616156145f7576145f76144f3565b8785058712818416161561460d5761460d6144f3565b505050929093029392505050565b600080821280156001600160ff1b038490038513161561463d5761463d6144f3565b600160ff1b8390038412811615614656576146566144f3565b50500190565b634e487b7160e01b600052601260045260246000fd5b6000826146815761468161465c565b500490565b600060018201614698576146986144f3565b5060010190565b6000600160ff1b82016146b4576146b46144f3565b5060000390565b6020808252600e908201526d06e6f206578697374696e67206c760941b604082015260600190565b6000826146f2576146f261465c565b600160ff1b82146000198414161561470c5761470c6144f3565b500590565b602080825260159082015274696e76616c696420617070726f7820706172616d7360581b60408201526060019056fea26469706673582212201d11e389b648df40d0d30cd8ef04a88ea58a26afd829ad5233826c37bbcd74b964736f6c634300080f0033";
276
297
 
277
298
  type MarketMathStaticConstructorParams =
278
299
  | [signer?: Signer]