@gearbox-protocol/sdk 0.0.1

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 (640) hide show
  1. package/.idea/gearbox-sdk.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/vcs.xml +6 -0
  4. package/.prettierrc +10 -0
  5. package/README.md +4 -0
  6. package/lib/config.d.ts +1 -0
  7. package/lib/config.js +4 -0
  8. package/lib/core/constants.d.ts +17 -0
  9. package/lib/core/constants.js +36 -0
  10. package/lib/core/contracts.d.ts +64 -0
  11. package/lib/core/contracts.js +104 -0
  12. package/lib/core/contractsRegister.d.ts +2 -0
  13. package/lib/core/contractsRegister.js +43 -0
  14. package/lib/core/creditAccount.d.ts +35 -0
  15. package/lib/core/creditAccount.js +98 -0
  16. package/lib/core/creditCard.d.ts +13 -0
  17. package/lib/core/creditCard.js +2 -0
  18. package/lib/core/creditManager.d.ts +37 -0
  19. package/lib/core/creditManager.js +118 -0
  20. package/lib/core/creditOperation.d.ts +9 -0
  21. package/lib/core/creditOperation.js +2 -0
  22. package/lib/core/creditSession.d.ts +26 -0
  23. package/lib/core/creditSession.js +44 -0
  24. package/lib/core/errors.d.ts +26 -0
  25. package/lib/core/errors.js +74 -0
  26. package/lib/core/event.d.ts +42 -0
  27. package/lib/core/event.js +2 -0
  28. package/lib/core/eventOrTx.d.ts +36 -0
  29. package/lib/core/eventOrTx.js +97 -0
  30. package/lib/core/events.d.ts +369 -0
  31. package/lib/core/events.js +730 -0
  32. package/lib/core/history.d.ts +42 -0
  33. package/lib/core/history.js +2 -0
  34. package/lib/core/operations.d.ts +22 -0
  35. package/lib/core/operations.js +20 -0
  36. package/lib/core/oracles.d.ts +6 -0
  37. package/lib/core/oracles.js +2 -0
  38. package/lib/core/pool.d.ts +28 -0
  39. package/lib/core/pool.js +32 -0
  40. package/lib/core/swap.d.ts +4 -0
  41. package/lib/core/swap.js +8 -0
  42. package/lib/core/token.d.ts +3 -0
  43. package/lib/core/token.js +229 -0
  44. package/lib/core/tokenData.d.ts +28 -0
  45. package/lib/core/tokenData.js +58 -0
  46. package/lib/core/tokenDistributor.d.ts +12 -0
  47. package/lib/core/tokenDistributor.js +9 -0
  48. package/lib/core/trade.d.ts +35 -0
  49. package/lib/core/trade.js +62 -0
  50. package/lib/core/transactions.d.ts +127 -0
  51. package/lib/core/transactions.js +306 -0
  52. package/lib/index.d.ts +33 -0
  53. package/lib/index.js +47 -0
  54. package/lib/payload/creditAccount.d.ts +26 -0
  55. package/lib/payload/creditAccount.js +2 -0
  56. package/lib/payload/creditManager.d.ts +43 -0
  57. package/lib/payload/creditManager.js +2 -0
  58. package/lib/payload/creditSession.d.ts +23 -0
  59. package/lib/payload/creditSession.js +2 -0
  60. package/lib/payload/graphPayload.d.ts +9 -0
  61. package/lib/payload/graphPayload.js +2 -0
  62. package/lib/payload/pool.d.ts +17 -0
  63. package/lib/payload/pool.js +3 -0
  64. package/lib/payload/token.d.ts +5 -0
  65. package/lib/payload/token.js +2 -0
  66. package/lib/types/ACL.d.ts +491 -0
  67. package/lib/types/ACLTrait.d.ts +148 -0
  68. package/lib/types/ACLTraitTest.d.ts +209 -0
  69. package/lib/types/AbstractAccountMiner.d.ts +143 -0
  70. package/lib/types/AccountFactory.d.ts +716 -0
  71. package/lib/types/AccountMinerAuction.d.ts +391 -0
  72. package/lib/types/AccountMinerMock.d.ts +241 -0
  73. package/lib/types/AccountMinerNonReceivableTest.d.ts +127 -0
  74. package/lib/types/AccountMinerOwnFunds.d.ts +218 -0
  75. package/lib/types/AccountMining.d.ts +222 -0
  76. package/lib/types/AdaptersDeployer.d.ts +262 -0
  77. package/lib/types/AddressProvider.d.ts +912 -0
  78. package/lib/types/AggregatorV3Interface.d.ts +234 -0
  79. package/lib/types/ChainlinkPriceFeedMock.d.ts +215 -0
  80. package/lib/types/ContractsRegister.d.ts +398 -0
  81. package/lib/types/CoreDeployer.d.ts +394 -0
  82. package/lib/types/CreditAccount.d.ts +443 -0
  83. package/lib/types/CreditFilter.d.ts +1609 -0
  84. package/lib/types/CreditFilterMock.d.ts +1687 -0
  85. package/lib/types/CreditManager.d.ts +1285 -0
  86. package/lib/types/CreditManagerMockForFilter.d.ts +605 -0
  87. package/lib/types/CreditManagerMockForPoolTest.d.ts +204 -0
  88. package/lib/types/CurveMock.d.ts +298 -0
  89. package/lib/types/CurveV1Adapter.d.ts +349 -0
  90. package/lib/types/DataCompressor.d.ts +1331 -0
  91. package/lib/types/Deployer.d.ts +224 -0
  92. package/lib/types/DieselToken.d.ts +567 -0
  93. package/lib/types/ERC165.d.ts +116 -0
  94. package/lib/types/ERC20.d.ts +411 -0
  95. package/lib/types/ERC20BlockingMock.d.ts +568 -0
  96. package/lib/types/ERC721.d.ts +625 -0
  97. package/lib/types/Errors.d.ts +1854 -0
  98. package/lib/types/ExecutorMock.d.ts +140 -0
  99. package/lib/types/FlashLoanAttacker.d.ts +170 -0
  100. package/lib/types/FuzzHarness.d.ts +124 -0
  101. package/lib/types/GearBeta.d.ts +745 -0
  102. package/lib/types/GearToken.d.ts +888 -0
  103. package/lib/types/GenesisDeployer.d.ts +282 -0
  104. package/lib/types/IAccountFactory.d.ts +317 -0
  105. package/lib/types/IAccountMiner.d.ts +124 -0
  106. package/lib/types/IAppAddressProvider.d.ts +198 -0
  107. package/lib/types/IAppCreditManager.d.ts +408 -0
  108. package/lib/types/IAppERC20.d.ts +309 -0
  109. package/lib/types/IAppPoolService.d.ts +166 -0
  110. package/lib/types/ICreditAccount.d.ts +430 -0
  111. package/lib/types/ICreditAccountData.d.ts +347 -0
  112. package/lib/types/ICreditFilter.d.ts +1162 -0
  113. package/lib/types/ICreditManager.d.ts +971 -0
  114. package/lib/types/ICurvePool.d.ts +298 -0
  115. package/lib/types/IDataCompressor.d.ts +1231 -0
  116. package/lib/types/IERC165.d.ts +116 -0
  117. package/lib/types/IERC20.d.ts +294 -0
  118. package/lib/types/IERC721.d.ts +472 -0
  119. package/lib/types/IERC721Enumerable.d.ts +564 -0
  120. package/lib/types/IERC721Metadata.d.ts +523 -0
  121. package/lib/types/IERC721Receiver.d.ts +132 -0
  122. package/lib/types/IGearToken.d.ts +527 -0
  123. package/lib/types/IInterestRateModel.d.ts +121 -0
  124. package/lib/types/IMerkleDistributor.d.ts +190 -0
  125. package/lib/types/IPoolService.d.ts +772 -0
  126. package/lib/types/IPriceOracle.d.ts +211 -0
  127. package/lib/types/IQuoter.d.ts +269 -0
  128. package/lib/types/ISwapRouter.d.ts +404 -0
  129. package/lib/types/IUniswapV2Migrator.d.ts +134 -0
  130. package/lib/types/IUniswapV2Router01.d.ts +1119 -0
  131. package/lib/types/IUniswapV2Router02.d.ts +1432 -0
  132. package/lib/types/IUniswapV3SwapCallback.d.ts +127 -0
  133. package/lib/types/IWETH.d.ts +169 -0
  134. package/lib/types/IWETHGateway.d.ts +335 -0
  135. package/lib/types/IYVault.d.ts +558 -0
  136. package/lib/types/LeveragedActions.d.ts +772 -0
  137. package/lib/types/LinearInterestRateModel.d.ts +279 -0
  138. package/lib/types/MockPoolService.d.ts +1271 -0
  139. package/lib/types/Multicall2.d.ts +449 -0
  140. package/lib/types/Ownable.d.ts +169 -0
  141. package/lib/types/PathFinder.d.ts +379 -0
  142. package/lib/types/Pausable.d.ts +105 -0
  143. package/lib/types/PercentageMathTest.d.ts +154 -0
  144. package/lib/types/PoolDeployer.d.ts +282 -0
  145. package/lib/types/PoolService.d.ts +1174 -0
  146. package/lib/types/PriceOracle.d.ts +387 -0
  147. package/lib/types/Proxy.d.ts +78 -0
  148. package/lib/types/StepVesting.d.ts +411 -0
  149. package/lib/types/TestPoolService.d.ts +1294 -0
  150. package/lib/types/TokenDistributor.d.ts +640 -0
  151. package/lib/types/TokenFeeMock.d.ts +544 -0
  152. package/lib/types/TokenMock.d.ts +531 -0
  153. package/lib/types/TreasuryMock.d.ts +86 -0
  154. package/lib/types/UniswapRouterMock.d.ts +1520 -0
  155. package/lib/types/UniswapV2Adapter.d.ts +1463 -0
  156. package/lib/types/UniswapV3Adapter.d.ts +455 -0
  157. package/lib/types/VestingDeployer.d.ts +247 -0
  158. package/lib/types/WETHGateway.d.ts +376 -0
  159. package/lib/types/WETHMock.d.ts +433 -0
  160. package/lib/types/WadRayMathTest.d.ts +316 -0
  161. package/lib/types/YearnAdapter.d.ts +609 -0
  162. package/lib/types/YearnMock.d.ts +795 -0
  163. package/lib/types/YearnPriceFeed.d.ts +399 -0
  164. package/lib/types/commons.d.ts +16 -0
  165. package/lib/types/commons.js +5 -0
  166. package/lib/types/factories/ACLTraitTest__factory.d.ts +52 -0
  167. package/lib/types/factories/ACLTraitTest__factory.js +138 -0
  168. package/lib/types/factories/ACLTrait__factory.d.ts +31 -0
  169. package/lib/types/factories/ACLTrait__factory.js +75 -0
  170. package/lib/types/factories/ACL__factory.d.ts +45 -0
  171. package/lib/types/factories/ACL__factory.js +317 -0
  172. package/lib/types/factories/AbstractAccountMiner__factory.d.ts +30 -0
  173. package/lib/types/factories/AbstractAccountMiner__factory.js +61 -0
  174. package/lib/types/factories/AccountFactory__factory.d.ts +72 -0
  175. package/lib/types/factories/AccountFactory__factory.js +508 -0
  176. package/lib/types/factories/AccountMinerAuction__factory.js +304 -0
  177. package/lib/types/factories/AccountMinerMock__factory.js +196 -0
  178. package/lib/types/factories/AccountMinerNonReceivableTest__factory.js +84 -0
  179. package/lib/types/factories/AccountMinerOwnFunds__factory.js +181 -0
  180. package/lib/types/factories/AccountMining__factory.d.ts +56 -0
  181. package/lib/types/factories/AccountMining__factory.js +192 -0
  182. package/lib/types/factories/AdaptersDeployer__factory.d.ts +85 -0
  183. package/lib/types/factories/AdaptersDeployer__factory.js +202 -0
  184. package/lib/types/factories/AddressProvider__factory.d.ts +52 -0
  185. package/lib/types/factories/AddressProvider__factory.js +582 -0
  186. package/lib/types/factories/AggregatorV3Interface__factory.d.ts +22 -0
  187. package/lib/types/factories/AggregatorV3Interface__factory.js +133 -0
  188. package/lib/types/factories/ChainlinkPriceFeedMock__factory.d.ts +42 -0
  189. package/lib/types/factories/ChainlinkPriceFeedMock__factory.js +193 -0
  190. package/lib/types/factories/ContractsRegister__factory.d.ts +56 -0
  191. package/lib/types/factories/ContractsRegister__factory.js +310 -0
  192. package/lib/types/factories/CoreDeployer__factory.js +331 -0
  193. package/lib/types/factories/CreditAccount__factory.d.ts +32 -0
  194. package/lib/types/factories/CreditAccount__factory.js +262 -0
  195. package/lib/types/factories/CreditFilterMock__factory.d.ts +56 -0
  196. package/lib/types/factories/CreditFilterMock__factory.js +1083 -0
  197. package/lib/types/factories/CreditFilter__factory.d.ts +56 -0
  198. package/lib/types/factories/CreditFilter__factory.js +1047 -0
  199. package/lib/types/factories/CreditManagerMockForFilter__factory.d.ts +38 -0
  200. package/lib/types/factories/CreditManagerMockForFilter__factory.js +324 -0
  201. package/lib/types/factories/CreditManagerMockForPoolTest__factory.d.ts +48 -0
  202. package/lib/types/factories/CreditManagerMockForPoolTest__factory.js +131 -0
  203. package/lib/types/factories/CreditManager__factory.d.ts +77 -0
  204. package/lib/types/factories/CreditManager__factory.js +1030 -0
  205. package/lib/types/factories/CurveMock__factory.d.ts +42 -0
  206. package/lib/types/factories/CurveMock__factory.js +210 -0
  207. package/lib/types/factories/CurveV1Adapter__factory.d.ts +42 -0
  208. package/lib/types/factories/CurveV1Adapter__factory.js +254 -0
  209. package/lib/types/factories/DataCompressor__factory.d.ts +71 -0
  210. package/lib/types/factories/DataCompressor__factory.js +944 -0
  211. package/lib/types/factories/Deployer__factory.js +248 -0
  212. package/lib/types/factories/DieselToken__factory.d.ts +56 -0
  213. package/lib/types/factories/DieselToken__factory.js +432 -0
  214. package/lib/types/factories/ERC165__factory.d.ts +22 -0
  215. package/lib/types/factories/ERC165__factory.js +41 -0
  216. package/lib/types/factories/ERC20BlockingMock__factory.d.ts +56 -0
  217. package/lib/types/factories/ERC20BlockingMock__factory.js +429 -0
  218. package/lib/types/factories/ERC20__factory.d.ts +56 -0
  219. package/lib/types/factories/ERC20__factory.js +339 -0
  220. package/lib/types/factories/ERC721__factory.d.ts +56 -0
  221. package/lib/types/factories/ERC721__factory.js +468 -0
  222. package/lib/types/factories/Errors__factory.d.ts +28 -0
  223. package/lib/types/factories/Errors__factory.js +1015 -0
  224. package/lib/types/factories/ExecutorMock__factory.d.ts +38 -0
  225. package/lib/types/factories/ExecutorMock__factory.js +103 -0
  226. package/lib/types/factories/FlashLoanAttacker__factory.d.ts +48 -0
  227. package/lib/types/factories/FlashLoanAttacker__factory.js +117 -0
  228. package/lib/types/factories/FuzzHarness__factory.d.ts +38 -0
  229. package/lib/types/factories/FuzzHarness__factory.js +92 -0
  230. package/lib/types/factories/GearBeta__factory.d.ts +52 -0
  231. package/lib/types/factories/GearBeta__factory.js +527 -0
  232. package/lib/types/factories/GearToken__factory.d.ts +56 -0
  233. package/lib/types/factories/GearToken__factory.js +708 -0
  234. package/lib/types/factories/GenesisDeployer__factory.d.ts +108 -0
  235. package/lib/types/factories/GenesisDeployer__factory.js +231 -0
  236. package/lib/types/factories/IAccountFactory__factory.d.ts +35 -0
  237. package/lib/types/factories/IAccountFactory__factory.js +226 -0
  238. package/lib/types/factories/IAccountMiner__factory.d.ts +28 -0
  239. package/lib/types/factories/IAccountMiner__factory.js +48 -0
  240. package/lib/types/factories/IAppAddressProvider__factory.d.ts +18 -0
  241. package/lib/types/factories/IAppAddressProvider__factory.js +100 -0
  242. package/lib/types/factories/IAppCreditManager__factory.d.ts +42 -0
  243. package/lib/types/factories/IAppCreditManager__factory.js +204 -0
  244. package/lib/types/factories/IAppERC20__factory.d.ts +22 -0
  245. package/lib/types/factories/IAppERC20__factory.js +194 -0
  246. package/lib/types/factories/IAppPoolService__factory.d.ts +22 -0
  247. package/lib/types/factories/IAppPoolService__factory.js +69 -0
  248. package/lib/types/factories/ICreditAccountData__factory.d.ts +35 -0
  249. package/lib/types/factories/ICreditAccountData__factory.js +216 -0
  250. package/lib/types/factories/ICreditAccount__factory.d.ts +22 -0
  251. package/lib/types/factories/ICreditAccount__factory.js +218 -0
  252. package/lib/types/factories/ICreditFilter__factory.d.ts +35 -0
  253. package/lib/types/factories/ICreditFilter__factory.js +700 -0
  254. package/lib/types/factories/ICreditManager__factory.d.ts +56 -0
  255. package/lib/types/factories/ICreditManager__factory.js +720 -0
  256. package/lib/types/factories/ICurvePool__factory.d.ts +22 -0
  257. package/lib/types/factories/ICurvePool__factory.js +168 -0
  258. package/lib/types/factories/IDataCompressor__factory.d.ts +51 -0
  259. package/lib/types/factories/IDataCompressor__factory.js +826 -0
  260. package/lib/types/factories/IERC165__factory.d.ts +22 -0
  261. package/lib/types/factories/IERC165__factory.js +41 -0
  262. package/lib/types/factories/IERC20__factory.d.ts +35 -0
  263. package/lib/types/factories/IERC20__factory.js +205 -0
  264. package/lib/types/factories/IERC721Enumerable__factory.d.ts +35 -0
  265. package/lib/types/factories/IERC721Enumerable__factory.js +363 -0
  266. package/lib/types/factories/IERC721Metadata__factory.d.ts +35 -0
  267. package/lib/types/factories/IERC721Metadata__factory.js +352 -0
  268. package/lib/types/factories/IERC721Receiver__factory.d.ts +22 -0
  269. package/lib/types/factories/IERC721Receiver__factory.js +56 -0
  270. package/lib/types/factories/IERC721__factory.d.ts +35 -0
  271. package/lib/types/factories/IERC721__factory.js +307 -0
  272. package/lib/types/factories/IGearToken__factory.d.ts +35 -0
  273. package/lib/types/factories/IGearToken__factory.js +342 -0
  274. package/lib/types/factories/IInterestRateModel__factory.d.ts +22 -0
  275. package/lib/types/factories/IInterestRateModel__factory.js +46 -0
  276. package/lib/types/factories/IMerkleDistributor__factory.d.ts +35 -0
  277. package/lib/types/factories/IMerkleDistributor__factory.js +109 -0
  278. package/lib/types/factories/IPoolService__factory.d.ts +35 -0
  279. package/lib/types/factories/IPoolService__factory.js +580 -0
  280. package/lib/types/factories/IPriceOracle__factory.d.ts +35 -0
  281. package/lib/types/factories/IPriceOracle__factory.js +112 -0
  282. package/lib/types/factories/IQuoter__factory.d.ts +22 -0
  283. package/lib/types/factories/IQuoter__factory.js +148 -0
  284. package/lib/types/factories/ISwapRouter__factory.d.ts +27 -0
  285. package/lib/types/factories/ISwapRouter__factory.js +236 -0
  286. package/lib/types/factories/IUniswapV2Migrator__factory.d.ts +18 -0
  287. package/lib/types/factories/IUniswapV2Migrator__factory.js +55 -0
  288. package/lib/types/factories/IUniswapV2Router01__factory.d.ts +22 -0
  289. package/lib/types/factories/IUniswapV2Router01__factory.js +771 -0
  290. package/lib/types/factories/IUniswapV2Router02__factory.d.ts +22 -0
  291. package/lib/types/factories/IUniswapV2Router02__factory.js +973 -0
  292. package/lib/types/factories/IUniswapV3SwapCallback__factory.d.ts +18 -0
  293. package/lib/types/factories/IUniswapV3SwapCallback__factory.js +45 -0
  294. package/lib/types/factories/IWETHGateway__factory.d.ts +18 -0
  295. package/lib/types/factories/IWETHGateway__factory.js +150 -0
  296. package/lib/types/factories/IWETH__factory.d.ts +22 -0
  297. package/lib/types/factories/IWETH__factory.js +66 -0
  298. package/lib/types/factories/IYVault__factory.d.ts +35 -0
  299. package/lib/types/factories/IYVault__factory.js +411 -0
  300. package/lib/types/factories/LeveragedActions__factory.d.ts +84 -0
  301. package/lib/types/factories/LeveragedActions__factory.js +569 -0
  302. package/lib/types/factories/LinearInterestRateModel__factory.d.ts +42 -0
  303. package/lib/types/factories/LinearInterestRateModel__factory.js +209 -0
  304. package/lib/types/factories/MockPoolService__factory.d.ts +56 -0
  305. package/lib/types/factories/MockPoolService__factory.js +889 -0
  306. package/lib/types/factories/Multicall2__factory.d.ts +52 -0
  307. package/lib/types/factories/Multicall2__factory.js +364 -0
  308. package/lib/types/factories/Ownable__factory.d.ts +42 -0
  309. package/lib/types/factories/Ownable__factory.js +74 -0
  310. package/lib/types/factories/PathFinder__factory.d.ts +61 -0
  311. package/lib/types/factories/PathFinder__factory.js +302 -0
  312. package/lib/types/factories/Pausable__factory.d.ts +31 -0
  313. package/lib/types/factories/Pausable__factory.js +61 -0
  314. package/lib/types/factories/PercentageMathTest__factory.d.ts +32 -0
  315. package/lib/types/factories/PercentageMathTest__factory.js +101 -0
  316. package/lib/types/factories/PoolDeployer__factory.d.ts +113 -0
  317. package/lib/types/factories/PoolDeployer__factory.js +257 -0
  318. package/lib/types/factories/PoolService__factory.d.ts +56 -0
  319. package/lib/types/factories/PoolService__factory.js +873 -0
  320. package/lib/types/factories/PriceOracle__factory.d.ts +56 -0
  321. package/lib/types/factories/PriceOracle__factory.js +290 -0
  322. package/lib/types/factories/Proxy__factory.d.ts +13 -0
  323. package/lib/types/factories/Proxy__factory.js +30 -0
  324. package/lib/types/factories/StepVesting__factory.d.ts +52 -0
  325. package/lib/types/factories/StepVesting__factory.js +296 -0
  326. package/lib/types/factories/TestPoolService__factory.d.ts +56 -0
  327. package/lib/types/factories/TestPoolService__factory.js +932 -0
  328. package/lib/types/factories/TokenDistributor__factory.d.ts +82 -0
  329. package/lib/types/factories/TokenDistributor__factory.js +481 -0
  330. package/lib/types/factories/TokenFeeMock__factory.d.ts +56 -0
  331. package/lib/types/factories/TokenFeeMock__factory.js +427 -0
  332. package/lib/types/factories/TokenMock__factory.d.ts +56 -0
  333. package/lib/types/factories/TokenMock__factory.js +409 -0
  334. package/lib/types/factories/TreasuryMock__factory.d.ts +35 -0
  335. package/lib/types/factories/TreasuryMock__factory.js +70 -0
  336. package/lib/types/factories/UniswapRouterMock__factory.d.ts +32 -0
  337. package/lib/types/factories/UniswapRouterMock__factory.js +1046 -0
  338. package/lib/types/factories/UniswapV2Adapter__factory.d.ts +42 -0
  339. package/lib/types/factories/UniswapV2Adapter__factory.js +1059 -0
  340. package/lib/types/factories/UniswapV3Adapter__factory.d.ts +47 -0
  341. package/lib/types/factories/UniswapV3Adapter__factory.js +322 -0
  342. package/lib/types/factories/VestingDeployer__factory.js +216 -0
  343. package/lib/types/factories/WETHGateway__factory.d.ts +70 -0
  344. package/lib/types/factories/WETHGateway__factory.js +241 -0
  345. package/lib/types/factories/WETHMock__factory.d.ts +52 -0
  346. package/lib/types/factories/WETHMock__factory.js +355 -0
  347. package/lib/types/factories/WadRayMathTest__factory.d.ts +32 -0
  348. package/lib/types/factories/WadRayMathTest__factory.js +239 -0
  349. package/lib/types/factories/YearnAdapter__factory.d.ts +56 -0
  350. package/lib/types/factories/YearnAdapter__factory.js +497 -0
  351. package/lib/types/factories/YearnMock__factory.d.ts +56 -0
  352. package/lib/types/factories/YearnMock__factory.js +598 -0
  353. package/lib/types/factories/YearnPriceFeed__factory.d.ts +56 -0
  354. package/lib/types/factories/YearnPriceFeed__factory.js +350 -0
  355. package/lib/types/hardhat.d.ts +343 -0
  356. package/lib/types/index.d.ts +152 -0
  357. package/lib/types/index.js +156 -0
  358. package/lib/utils/events.d.ts +2 -0
  359. package/lib/utils/events.js +13 -0
  360. package/lib/utils/formatter.d.ts +13 -0
  361. package/lib/utils/formatter.js +125 -0
  362. package/lib/utils/loading.d.ts +1 -0
  363. package/lib/utils/loading.js +17 -0
  364. package/lib/utils/math.d.ts +6 -0
  365. package/lib/utils/math.js +44 -0
  366. package/lib/utils/multicall.d.ts +15 -0
  367. package/lib/utils/multicall.js +84 -0
  368. package/lib/utils/repeater.d.ts +1 -0
  369. package/lib/utils/repeater.js +72 -0
  370. package/lib/utils/validate.d.ts +1 -0
  371. package/lib/utils/validate.js +13 -0
  372. package/package.json +27 -0
  373. package/src/abi/adapters/YearnV2.sol/YearnAdapter.dbg.json +4 -0
  374. package/src/abi/adapters/YearnV2.sol/YearnAdapter.json +455 -0
  375. package/src/abi/core/ACL.sol/ACL.dbg.json +4 -0
  376. package/src/abi/core/ACL.sol/ACL.json +262 -0
  377. package/src/abi/core/ACLTrait.sol/ACLTrait.dbg.json +4 -0
  378. package/src/abi/core/ACLTrait.sol/ACLTrait.json +64 -0
  379. package/src/abi/core/AccountMining.sol/AccountMining.dbg.json +4 -0
  380. package/src/abi/core/AccountMining.sol/AccountMining.json +150 -0
  381. package/src/abi/core/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  382. package/src/abi/core/AddressProvider.sol/AddressProvider.json +496 -0
  383. package/src/abi/core/ContractsRegister.sol/ContractsRegister.dbg.json +4 -0
  384. package/src/abi/core/ContractsRegister.sol/ContractsRegister.json +255 -0
  385. package/src/abi/credit/LeverageActions.sol/LeveragedActions.dbg.json +4 -0
  386. package/src/abi/credit/LeverageActions.sol/LeveragedActions.json +514 -0
  387. package/src/abi/deployer/AdaptersDeployer.sol/AdaptersDeployer.dbg.json +4 -0
  388. package/src/abi/deployer/AdaptersDeployer.sol/AdaptersDeployer.json +160 -0
  389. package/src/abi/deployer/GenesisDeployer.sol/GenesisDeployer.dbg.json +4 -0
  390. package/src/abi/deployer/GenesisDeployer.sol/GenesisDeployer.json +189 -0
  391. package/src/abi/deployer/PoolDeployer.sol/PoolDeployer.dbg.json +4 -0
  392. package/src/abi/deployer/PoolDeployer.sol/PoolDeployer.json +215 -0
  393. package/src/abi/fuzzing/FuzzHarness.sol/FuzzHarness.dbg.json +4 -0
  394. package/src/abi/fuzzing/FuzzHarness.sol/FuzzHarness.json +50 -0
  395. package/src/abi/integrations/yearn/IYVault.sol/IYVault.dbg.json +4 -0
  396. package/src/abi/integrations/yearn/IYVault.sol/IYVault.json +400 -0
  397. package/src/abi/interfaces/IGearToken.sol/IGearToken.dbg.json +4 -0
  398. package/src/abi/interfaces/IGearToken.sol/IGearToken.json +331 -0
  399. package/src/abi/interfaces/IMerkleDistributor.sol/IMerkleDistributor.dbg.json +4 -0
  400. package/src/abi/interfaces/IMerkleDistributor.sol/IMerkleDistributor.json +98 -0
  401. package/src/abi/mocks/core/ACLTraitTest.sol/ACLTraitTest.dbg.json +4 -0
  402. package/src/abi/mocks/core/ACLTraitTest.sol/ACLTraitTest.json +96 -0
  403. package/src/abi/mocks/credit/ExecutorMock.sol/ExecutorMock.dbg.json +4 -0
  404. package/src/abi/mocks/credit/ExecutorMock.sol/ExecutorMock.json +61 -0
  405. package/src/abi/mocks/integrations/CurveMock.sol/CurveMock.dbg.json +4 -0
  406. package/src/abi/mocks/integrations/CurveMock.sol/CurveMock.json +168 -0
  407. package/src/abi/mocks/integrations/YearnMock.sol/YearnMock.dbg.json +4 -0
  408. package/src/abi/mocks/integrations/YearnMock.sol/YearnMock.json +556 -0
  409. package/src/abi/mocks/oracles/ChainlinkPriceFeedMock.sol/ChainlinkPriceFeedMock.dbg.json +4 -0
  410. package/src/abi/mocks/oracles/ChainlinkPriceFeedMock.sol/ChainlinkPriceFeedMock.json +151 -0
  411. package/src/abi/mocks/pool/CreditManagerMockForPoolTest.sol/CreditManagerMockForPoolTest.dbg.json +4 -0
  412. package/src/abi/mocks/pool/CreditManagerMockForPoolTest.sol/CreditManagerMockForPoolTest.json +89 -0
  413. package/src/abi/mocks/tokens/ERC20Blocking.sol/ERC20BlockingMock.dbg.json +4 -0
  414. package/src/abi/mocks/tokens/ERC20Blocking.sol/ERC20BlockingMock.json +387 -0
  415. package/src/abi/mocks/tokens/ERC20Fee.sol/TokenFeeMock.dbg.json +4 -0
  416. package/src/abi/mocks/tokens/ERC20Fee.sol/TokenFeeMock.json +385 -0
  417. package/src/abi/oracles/YearnPriceFeed.sol/YearnPriceFeed.dbg.json +4 -0
  418. package/src/abi/oracles/YearnPriceFeed.sol/YearnPriceFeed.json +321 -0
  419. package/src/abi/support/PathFinder.sol/PathFinder.dbg.json +4 -0
  420. package/src/abi/support/PathFinder.sol/PathFinder.json +189 -0
  421. package/src/abi/tokens/GearNFT.sol/GearBeta.dbg.json +4 -0
  422. package/src/abi/tokens/GearNFT.sol/GearBeta.json +485 -0
  423. package/src/abi/tokens/TokenDistributor.sol/TokenDistributor.dbg.json +4 -0
  424. package/src/abi/tokens/TokenDistributor.sol/TokenDistributor.json +439 -0
  425. package/src/abi/tokens/Vesting.sol/StepVesting.dbg.json +4 -0
  426. package/src/abi/tokens/Vesting.sol/StepVesting.json +254 -0
  427. package/src/config.ts +1 -0
  428. package/src/core/constants.ts +44 -0
  429. package/src/core/contracts.ts +151 -0
  430. package/src/core/contractsRegister.ts +51 -0
  431. package/src/core/creditAccount.ts +105 -0
  432. package/src/core/creditCard.ts +15 -0
  433. package/src/core/creditManager.ts +171 -0
  434. package/src/core/creditOperation.ts +9 -0
  435. package/src/core/creditSession.ts +67 -0
  436. package/src/core/errors.ts +45 -0
  437. package/src/core/eventOrTx.ts +94 -0
  438. package/src/core/events.ts +1167 -0
  439. package/src/core/history.ts +55 -0
  440. package/src/core/operations.ts +35 -0
  441. package/src/core/oracles.ts +7 -0
  442. package/src/core/pool.ts +60 -0
  443. package/src/core/swap.ts +4 -0
  444. package/src/core/token.ts +275 -0
  445. package/src/core/tokenData.ts +84 -0
  446. package/src/core/tokenDistributor.ts +14 -0
  447. package/src/core/trade.ts +83 -0
  448. package/src/core/transactions.ts +407 -0
  449. package/src/index.ts +42 -0
  450. package/src/payload/creditAccount.ts +29 -0
  451. package/src/payload/creditManager.ts +46 -0
  452. package/src/payload/creditSession.ts +24 -0
  453. package/src/payload/graphPayload.ts +10 -0
  454. package/src/payload/pool.ts +20 -0
  455. package/src/payload/token.ts +5 -0
  456. package/src/types/ACL.d.ts +491 -0
  457. package/src/types/ACLTrait.d.ts +148 -0
  458. package/src/types/ACLTraitTest.d.ts +209 -0
  459. package/src/types/AccountFactory.d.ts +716 -0
  460. package/src/types/AccountMining.d.ts +222 -0
  461. package/src/types/AddressProvider.d.ts +912 -0
  462. package/src/types/AggregatorV3Interface.d.ts +234 -0
  463. package/src/types/ChainlinkPriceFeedMock.d.ts +215 -0
  464. package/src/types/ContractsRegister.d.ts +398 -0
  465. package/src/types/CreditAccount.d.ts +443 -0
  466. package/src/types/CreditFilter.d.ts +1609 -0
  467. package/src/types/CreditFilterMock.d.ts +1687 -0
  468. package/src/types/CreditManager.d.ts +1285 -0
  469. package/src/types/CreditManagerMockForFilter.d.ts +605 -0
  470. package/src/types/CreditManagerMockForPoolTest.d.ts +204 -0
  471. package/src/types/CurveMock.d.ts +298 -0
  472. package/src/types/CurveV1Adapter.d.ts +349 -0
  473. package/src/types/DataCompressor.d.ts +1331 -0
  474. package/src/types/DieselToken.d.ts +567 -0
  475. package/src/types/ERC165.d.ts +116 -0
  476. package/src/types/ERC20.d.ts +411 -0
  477. package/src/types/ERC20BlockingMock.d.ts +568 -0
  478. package/src/types/ERC721.d.ts +625 -0
  479. package/src/types/Errors.d.ts +1854 -0
  480. package/src/types/ExecutorMock.d.ts +140 -0
  481. package/src/types/FlashLoanAttacker.d.ts +170 -0
  482. package/src/types/FuzzHarness.d.ts +124 -0
  483. package/src/types/GearBeta.d.ts +745 -0
  484. package/src/types/GearToken.d.ts +888 -0
  485. package/src/types/IAccountFactory.d.ts +317 -0
  486. package/src/types/IAccountMiner.d.ts +124 -0
  487. package/src/types/IAppAddressProvider.d.ts +198 -0
  488. package/src/types/IAppCreditManager.d.ts +408 -0
  489. package/src/types/IAppERC20.d.ts +309 -0
  490. package/src/types/IAppPoolService.d.ts +166 -0
  491. package/src/types/ICreditAccount.d.ts +430 -0
  492. package/src/types/ICreditFilter.d.ts +1162 -0
  493. package/src/types/ICreditManager.d.ts +971 -0
  494. package/src/types/ICurvePool.d.ts +298 -0
  495. package/src/types/IDataCompressor.d.ts +1231 -0
  496. package/src/types/IERC165.d.ts +116 -0
  497. package/src/types/IERC20.d.ts +294 -0
  498. package/src/types/IERC721.d.ts +472 -0
  499. package/src/types/IERC721Enumerable.d.ts +564 -0
  500. package/src/types/IERC721Metadata.d.ts +523 -0
  501. package/src/types/IERC721Receiver.d.ts +132 -0
  502. package/src/types/IGearToken.d.ts +527 -0
  503. package/src/types/IInterestRateModel.d.ts +121 -0
  504. package/src/types/IMerkleDistributor.d.ts +190 -0
  505. package/src/types/IPoolService.d.ts +772 -0
  506. package/src/types/IPriceOracle.d.ts +211 -0
  507. package/src/types/IQuoter.d.ts +269 -0
  508. package/src/types/ISwapRouter.d.ts +404 -0
  509. package/src/types/IUniswapV2Migrator.d.ts +134 -0
  510. package/src/types/IUniswapV2Router01.d.ts +1119 -0
  511. package/src/types/IUniswapV2Router02.d.ts +1432 -0
  512. package/src/types/IUniswapV3SwapCallback.d.ts +127 -0
  513. package/src/types/IWETH.d.ts +169 -0
  514. package/src/types/IWETHGateway.d.ts +335 -0
  515. package/src/types/IYVault.d.ts +558 -0
  516. package/src/types/LeveragedActions.d.ts +772 -0
  517. package/src/types/LinearInterestRateModel.d.ts +279 -0
  518. package/src/types/MockPoolService.d.ts +1271 -0
  519. package/src/types/Multicall2.d.ts +449 -0
  520. package/src/types/Ownable.d.ts +169 -0
  521. package/src/types/PathFinder.d.ts +379 -0
  522. package/src/types/Pausable.d.ts +105 -0
  523. package/src/types/PercentageMathTest.d.ts +154 -0
  524. package/src/types/PoolService.d.ts +1174 -0
  525. package/src/types/PriceOracle.d.ts +387 -0
  526. package/src/types/StepVesting.d.ts +411 -0
  527. package/src/types/TestPoolService.d.ts +1294 -0
  528. package/src/types/TokenDistributor.d.ts +640 -0
  529. package/src/types/TokenFeeMock.d.ts +544 -0
  530. package/src/types/TokenMock.d.ts +531 -0
  531. package/src/types/TreasuryMock.d.ts +86 -0
  532. package/src/types/UniswapRouterMock.d.ts +1520 -0
  533. package/src/types/UniswapV2Adapter.d.ts +1463 -0
  534. package/src/types/UniswapV3Adapter.d.ts +455 -0
  535. package/src/types/WETHGateway.d.ts +376 -0
  536. package/src/types/WETHMock.d.ts +433 -0
  537. package/src/types/WadRayMathTest.d.ts +316 -0
  538. package/src/types/YearnAdapter.d.ts +609 -0
  539. package/src/types/YearnMock.d.ts +795 -0
  540. package/src/types/YearnPriceFeed.d.ts +399 -0
  541. package/src/types/commons.d.ts +16 -0
  542. package/src/types/commons.js +5 -0
  543. package/src/types/commons.ts +37 -0
  544. package/src/types/factories/ACLTraitTest__factory.ts +137 -0
  545. package/src/types/factories/ACLTrait__factory.ts +76 -0
  546. package/src/types/factories/ACL__factory.ts +308 -0
  547. package/src/types/factories/AccountFactory__factory.ts +510 -0
  548. package/src/types/factories/AccountMining__factory.ts +214 -0
  549. package/src/types/factories/AddressProvider__factory.ts +579 -0
  550. package/src/types/factories/AggregatorV3Interface__factory.ts +141 -0
  551. package/src/types/factories/ChainlinkPriceFeedMock__factory.ts +209 -0
  552. package/src/types/factories/ContractsRegister__factory.ts +312 -0
  553. package/src/types/factories/CreditAccount__factory.ts +256 -0
  554. package/src/types/factories/CreditFilterMock__factory.ts +1092 -0
  555. package/src/types/factories/CreditFilter__factory.ts +1053 -0
  556. package/src/types/factories/CreditManagerMockForFilter__factory.ts +325 -0
  557. package/src/types/factories/CreditManagerMockForPoolTest__factory.ts +137 -0
  558. package/src/types/factories/CreditManager__factory.ts +1063 -0
  559. package/src/types/factories/CurveMock__factory.ts +206 -0
  560. package/src/types/factories/CurveV1Adapter__factory.ts +263 -0
  561. package/src/types/factories/DataCompressor__factory.ts +946 -0
  562. package/src/types/factories/DieselToken__factory.ts +449 -0
  563. package/src/types/factories/ERC165__factory.ts +39 -0
  564. package/src/types/factories/ERC20BlockingMock__factory.ts +434 -0
  565. package/src/types/factories/ERC20__factory.ts +334 -0
  566. package/src/types/factories/ERC721__factory.ts +463 -0
  567. package/src/types/factories/Errors__factory.ts +1006 -0
  568. package/src/types/factories/ExecutorMock__factory.ts +97 -0
  569. package/src/types/factories/FlashLoanAttacker__factory.ts +119 -0
  570. package/src/types/factories/FuzzHarness__factory.ts +94 -0
  571. package/src/types/factories/GearBeta__factory.ts +521 -0
  572. package/src/types/factories/GearToken__factory.ts +704 -0
  573. package/src/types/factories/IAccountFactory__factory.ts +230 -0
  574. package/src/types/factories/IAccountMiner__factory.ts +49 -0
  575. package/src/types/factories/IAppAddressProvider__factory.ts +104 -0
  576. package/src/types/factories/IAppCreditManager__factory.ts +208 -0
  577. package/src/types/factories/IAppERC20__factory.ts +195 -0
  578. package/src/types/factories/IAppPoolService__factory.ts +73 -0
  579. package/src/types/factories/ICreditAccount__factory.ts +222 -0
  580. package/src/types/factories/ICreditFilter__factory.ts +701 -0
  581. package/src/types/factories/ICreditManager__factory.ts +724 -0
  582. package/src/types/factories/ICurvePool__factory.ts +169 -0
  583. package/src/types/factories/IDataCompressor__factory.ts +830 -0
  584. package/src/types/factories/IERC165__factory.ts +42 -0
  585. package/src/types/factories/IERC20__factory.ts +203 -0
  586. package/src/types/factories/IERC721Enumerable__factory.ts +367 -0
  587. package/src/types/factories/IERC721Metadata__factory.ts +356 -0
  588. package/src/types/factories/IERC721Receiver__factory.ts +60 -0
  589. package/src/types/factories/IERC721__factory.ts +308 -0
  590. package/src/types/factories/IGearToken__factory.ts +343 -0
  591. package/src/types/factories/IInterestRateModel__factory.ts +50 -0
  592. package/src/types/factories/IMerkleDistributor__factory.ts +113 -0
  593. package/src/types/factories/IPoolService__factory.ts +581 -0
  594. package/src/types/factories/IPriceOracle__factory.ts +113 -0
  595. package/src/types/factories/IQuoter__factory.ts +149 -0
  596. package/src/types/factories/ISwapRouter__factory.ts +237 -0
  597. package/src/types/factories/IUniswapV2Migrator__factory.ts +59 -0
  598. package/src/types/factories/IUniswapV2Router01__factory.ts +775 -0
  599. package/src/types/factories/IUniswapV2Router02__factory.ts +977 -0
  600. package/src/types/factories/IUniswapV3SwapCallback__factory.ts +53 -0
  601. package/src/types/factories/IWETHGateway__factory.ts +151 -0
  602. package/src/types/factories/IWETH__factory.ts +64 -0
  603. package/src/types/factories/IYVault__factory.ts +412 -0
  604. package/src/types/factories/LeveragedActions__factory.ts +571 -0
  605. package/src/types/factories/LinearInterestRateModel__factory.ts +237 -0
  606. package/src/types/factories/MockPoolService__factory.ts +891 -0
  607. package/src/types/factories/Multicall2__factory.ts +358 -0
  608. package/src/types/factories/Ownable__factory.ts +75 -0
  609. package/src/types/factories/PathFinder__factory.ts +301 -0
  610. package/src/types/factories/Pausable__factory.ts +62 -0
  611. package/src/types/factories/PercentageMathTest__factory.ts +98 -0
  612. package/src/types/factories/PoolService__factory.ts +898 -0
  613. package/src/types/factories/PriceOracle__factory.ts +289 -0
  614. package/src/types/factories/StepVesting__factory.ts +290 -0
  615. package/src/types/factories/TestPoolService__factory.ts +960 -0
  616. package/src/types/factories/TokenDistributor__factory.ts +483 -0
  617. package/src/types/factories/TokenFeeMock__factory.ts +439 -0
  618. package/src/types/factories/TokenMock__factory.ts +407 -0
  619. package/src/types/factories/TreasuryMock__factory.ts +64 -0
  620. package/src/types/factories/UniswapRouterMock__factory.ts +1043 -0
  621. package/src/types/factories/UniswapV2Adapter__factory.ts +1064 -0
  622. package/src/types/factories/UniswapV3Adapter__factory.ts +327 -0
  623. package/src/types/factories/WETHGateway__factory.ts +240 -0
  624. package/src/types/factories/WETHMock__factory.ts +349 -0
  625. package/src/types/factories/WadRayMathTest__factory.ts +236 -0
  626. package/src/types/factories/YearnAdapter__factory.ts +499 -0
  627. package/src/types/factories/YearnMock__factory.ts +594 -0
  628. package/src/types/factories/YearnPriceFeed__factory.ts +378 -0
  629. package/src/types/hardhat.d.ts +343 -0
  630. package/src/types/index.d.ts +174 -0
  631. package/src/types/index.js +178 -0
  632. package/src/types/index.ts +156 -0
  633. package/src/utils/events.ts +10 -0
  634. package/src/utils/formatter.ts +138 -0
  635. package/src/utils/loading.ts +9 -0
  636. package/src/utils/math.ts +42 -0
  637. package/src/utils/multicall.ts +54 -0
  638. package/src/utils/repeater.ts +18 -0
  639. package/src/utils/validate.ts +8 -0
  640. package/tsconfig.json +62 -0
@@ -0,0 +1,514 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LeveragedActions",
4
+ "sourceName": "contracts/credit/LeverageActions.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_addressProvider",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": true,
22
+ "internalType": "address",
23
+ "name": "tokenIn",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "indexed": true,
28
+ "internalType": "address",
29
+ "name": "collateral",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "indexed": true,
34
+ "internalType": "address",
35
+ "name": "asset",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "indexed": false,
40
+ "internalType": "uint256",
41
+ "name": "amountIn",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "indexed": false,
46
+ "internalType": "address",
47
+ "name": "shortSwapContract",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "indexed": false,
52
+ "internalType": "address",
53
+ "name": "longSwapContract",
54
+ "type": "address"
55
+ },
56
+ {
57
+ "indexed": false,
58
+ "internalType": "address",
59
+ "name": "lpContract",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "indexed": false,
64
+ "internalType": "uint256",
65
+ "name": "referralCode",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "Action",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "inputs": [],
74
+ "name": "contractsRegister",
75
+ "outputs": [
76
+ {
77
+ "internalType": "contract ContractsRegister",
78
+ "name": "",
79
+ "type": "address"
80
+ }
81
+ ],
82
+ "stateMutability": "view",
83
+ "type": "function"
84
+ },
85
+ {
86
+ "inputs": [
87
+ {
88
+ "internalType": "address",
89
+ "name": "creditManager",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "isTransferAllowed",
94
+ "outputs": [
95
+ {
96
+ "internalType": "bool",
97
+ "name": "",
98
+ "type": "bool"
99
+ }
100
+ ],
101
+ "stateMutability": "view",
102
+ "type": "function"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "address",
108
+ "name": "creditManager",
109
+ "type": "address"
110
+ },
111
+ {
112
+ "internalType": "uint256",
113
+ "name": "leverageFactor",
114
+ "type": "uint256"
115
+ },
116
+ {
117
+ "internalType": "uint256",
118
+ "name": "amountIn",
119
+ "type": "uint256"
120
+ },
121
+ {
122
+ "internalType": "uint256",
123
+ "name": "lpInterface",
124
+ "type": "uint256"
125
+ },
126
+ {
127
+ "internalType": "address",
128
+ "name": "lpContract",
129
+ "type": "address"
130
+ },
131
+ {
132
+ "internalType": "uint256",
133
+ "name": "amountOutMin",
134
+ "type": "uint256"
135
+ },
136
+ {
137
+ "internalType": "uint256",
138
+ "name": "referralCode",
139
+ "type": "uint256"
140
+ }
141
+ ],
142
+ "name": "openLP",
143
+ "outputs": [],
144
+ "stateMutability": "payable",
145
+ "type": "function"
146
+ },
147
+ {
148
+ "inputs": [
149
+ {
150
+ "internalType": "uint256",
151
+ "name": "amountIn",
152
+ "type": "uint256"
153
+ },
154
+ {
155
+ "components": [
156
+ {
157
+ "internalType": "address",
158
+ "name": "creditManager",
159
+ "type": "address"
160
+ },
161
+ {
162
+ "internalType": "uint256",
163
+ "name": "leverageFactor",
164
+ "type": "uint256"
165
+ },
166
+ {
167
+ "internalType": "uint256",
168
+ "name": "swapInterface",
169
+ "type": "uint256"
170
+ },
171
+ {
172
+ "internalType": "address",
173
+ "name": "swapContract",
174
+ "type": "address"
175
+ },
176
+ {
177
+ "internalType": "bytes",
178
+ "name": "swapCalldata",
179
+ "type": "bytes"
180
+ },
181
+ {
182
+ "internalType": "uint256",
183
+ "name": "lpInterface",
184
+ "type": "uint256"
185
+ },
186
+ {
187
+ "internalType": "address",
188
+ "name": "lpContract",
189
+ "type": "address"
190
+ },
191
+ {
192
+ "internalType": "uint256",
193
+ "name": "amountOutMin",
194
+ "type": "uint256"
195
+ }
196
+ ],
197
+ "internalType": "struct LeveragedActions.LongParameters",
198
+ "name": "longParams",
199
+ "type": "tuple"
200
+ },
201
+ {
202
+ "internalType": "uint256",
203
+ "name": "referralCode",
204
+ "type": "uint256"
205
+ }
206
+ ],
207
+ "name": "openLong",
208
+ "outputs": [],
209
+ "stateMutability": "payable",
210
+ "type": "function"
211
+ },
212
+ {
213
+ "inputs": [
214
+ {
215
+ "internalType": "address",
216
+ "name": "curvePool",
217
+ "type": "address"
218
+ },
219
+ {
220
+ "internalType": "int128",
221
+ "name": "i",
222
+ "type": "int128"
223
+ },
224
+ {
225
+ "internalType": "int128",
226
+ "name": "j",
227
+ "type": "int128"
228
+ },
229
+ {
230
+ "internalType": "uint256",
231
+ "name": "amountIn",
232
+ "type": "uint256"
233
+ },
234
+ {
235
+ "internalType": "uint256",
236
+ "name": "amountOutMin",
237
+ "type": "uint256"
238
+ },
239
+ {
240
+ "components": [
241
+ {
242
+ "internalType": "address",
243
+ "name": "creditManager",
244
+ "type": "address"
245
+ },
246
+ {
247
+ "internalType": "uint256",
248
+ "name": "leverageFactor",
249
+ "type": "uint256"
250
+ },
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "swapInterface",
254
+ "type": "uint256"
255
+ },
256
+ {
257
+ "internalType": "address",
258
+ "name": "swapContract",
259
+ "type": "address"
260
+ },
261
+ {
262
+ "internalType": "bytes",
263
+ "name": "swapCalldata",
264
+ "type": "bytes"
265
+ },
266
+ {
267
+ "internalType": "uint256",
268
+ "name": "lpInterface",
269
+ "type": "uint256"
270
+ },
271
+ {
272
+ "internalType": "address",
273
+ "name": "lpContract",
274
+ "type": "address"
275
+ },
276
+ {
277
+ "internalType": "uint256",
278
+ "name": "amountOutMin",
279
+ "type": "uint256"
280
+ }
281
+ ],
282
+ "internalType": "struct LeveragedActions.LongParameters",
283
+ "name": "longParams",
284
+ "type": "tuple"
285
+ },
286
+ {
287
+ "internalType": "uint256",
288
+ "name": "referralCode",
289
+ "type": "uint256"
290
+ }
291
+ ],
292
+ "name": "openShortCurve",
293
+ "outputs": [],
294
+ "stateMutability": "payable",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [
299
+ {
300
+ "internalType": "address",
301
+ "name": "router",
302
+ "type": "address"
303
+ },
304
+ {
305
+ "internalType": "uint256",
306
+ "name": "amountIn",
307
+ "type": "uint256"
308
+ },
309
+ {
310
+ "internalType": "uint256",
311
+ "name": "amountOutMin",
312
+ "type": "uint256"
313
+ },
314
+ {
315
+ "internalType": "address[]",
316
+ "name": "path",
317
+ "type": "address[]"
318
+ },
319
+ {
320
+ "internalType": "uint256",
321
+ "name": "deadline",
322
+ "type": "uint256"
323
+ },
324
+ {
325
+ "components": [
326
+ {
327
+ "internalType": "address",
328
+ "name": "creditManager",
329
+ "type": "address"
330
+ },
331
+ {
332
+ "internalType": "uint256",
333
+ "name": "leverageFactor",
334
+ "type": "uint256"
335
+ },
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "swapInterface",
339
+ "type": "uint256"
340
+ },
341
+ {
342
+ "internalType": "address",
343
+ "name": "swapContract",
344
+ "type": "address"
345
+ },
346
+ {
347
+ "internalType": "bytes",
348
+ "name": "swapCalldata",
349
+ "type": "bytes"
350
+ },
351
+ {
352
+ "internalType": "uint256",
353
+ "name": "lpInterface",
354
+ "type": "uint256"
355
+ },
356
+ {
357
+ "internalType": "address",
358
+ "name": "lpContract",
359
+ "type": "address"
360
+ },
361
+ {
362
+ "internalType": "uint256",
363
+ "name": "amountOutMin",
364
+ "type": "uint256"
365
+ }
366
+ ],
367
+ "internalType": "struct LeveragedActions.LongParameters",
368
+ "name": "longParams",
369
+ "type": "tuple"
370
+ },
371
+ {
372
+ "internalType": "uint256",
373
+ "name": "referralCode",
374
+ "type": "uint256"
375
+ }
376
+ ],
377
+ "name": "openShortUniV2",
378
+ "outputs": [],
379
+ "stateMutability": "payable",
380
+ "type": "function"
381
+ },
382
+ {
383
+ "inputs": [
384
+ {
385
+ "internalType": "address",
386
+ "name": "router",
387
+ "type": "address"
388
+ },
389
+ {
390
+ "components": [
391
+ {
392
+ "internalType": "bytes",
393
+ "name": "path",
394
+ "type": "bytes"
395
+ },
396
+ {
397
+ "internalType": "address",
398
+ "name": "recipient",
399
+ "type": "address"
400
+ },
401
+ {
402
+ "internalType": "uint256",
403
+ "name": "deadline",
404
+ "type": "uint256"
405
+ },
406
+ {
407
+ "internalType": "uint256",
408
+ "name": "amountIn",
409
+ "type": "uint256"
410
+ },
411
+ {
412
+ "internalType": "uint256",
413
+ "name": "amountOutMinimum",
414
+ "type": "uint256"
415
+ }
416
+ ],
417
+ "internalType": "struct ISwapRouter.ExactInputParams",
418
+ "name": "paramsV3",
419
+ "type": "tuple"
420
+ },
421
+ {
422
+ "components": [
423
+ {
424
+ "internalType": "address",
425
+ "name": "creditManager",
426
+ "type": "address"
427
+ },
428
+ {
429
+ "internalType": "uint256",
430
+ "name": "leverageFactor",
431
+ "type": "uint256"
432
+ },
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "swapInterface",
436
+ "type": "uint256"
437
+ },
438
+ {
439
+ "internalType": "address",
440
+ "name": "swapContract",
441
+ "type": "address"
442
+ },
443
+ {
444
+ "internalType": "bytes",
445
+ "name": "swapCalldata",
446
+ "type": "bytes"
447
+ },
448
+ {
449
+ "internalType": "uint256",
450
+ "name": "lpInterface",
451
+ "type": "uint256"
452
+ },
453
+ {
454
+ "internalType": "address",
455
+ "name": "lpContract",
456
+ "type": "address"
457
+ },
458
+ {
459
+ "internalType": "uint256",
460
+ "name": "amountOutMin",
461
+ "type": "uint256"
462
+ }
463
+ ],
464
+ "internalType": "struct LeveragedActions.LongParameters",
465
+ "name": "longParams",
466
+ "type": "tuple"
467
+ },
468
+ {
469
+ "internalType": "uint256",
470
+ "name": "referralCode",
471
+ "type": "uint256"
472
+ }
473
+ ],
474
+ "name": "openShortUniV3",
475
+ "outputs": [],
476
+ "stateMutability": "payable",
477
+ "type": "function"
478
+ },
479
+ {
480
+ "inputs": [],
481
+ "name": "wethGateway",
482
+ "outputs": [
483
+ {
484
+ "internalType": "contract IWETHGateway",
485
+ "name": "",
486
+ "type": "address"
487
+ }
488
+ ],
489
+ "stateMutability": "view",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [],
494
+ "name": "wethToken",
495
+ "outputs": [
496
+ {
497
+ "internalType": "address",
498
+ "name": "",
499
+ "type": "address"
500
+ }
501
+ ],
502
+ "stateMutability": "view",
503
+ "type": "function"
504
+ },
505
+ {
506
+ "stateMutability": "payable",
507
+ "type": "receive"
508
+ }
509
+ ],
510
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162004d8338038062004d8383398181016040528101906200003791906200034b565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156040518060400160405280600281526020017f5a3000000000000000000000000000000000000000000000000000000000000081525090620000ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000e19190620003b8565b60405180910390fd5b5060008190508073ffffffffffffffffffffffffffffffffffffffff1663c513c9bb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200013757600080fd5b505afa1580156200014c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017291906200034b565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff166377532ed96040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ef57600080fd5b505afa15801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a91906200034b565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16634c252f916040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b157600080fd5b505afa158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec91906200034b565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200048d565b600081519050620003458162000473565b92915050565b6000602082840312156200035e57600080fd5b60006200036e8482850162000334565b91505092915050565b60006200038482620003dc565b620003908185620003e7565b9350620003a28185602086016200042c565b620003ad8162000462565b840191505092915050565b60006020820190508181036000830152620003d4818462000377565b905092915050565b600081519050919050565b600082825260208201905092915050565b600062000405826200040c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200044c5780820151818401526020810190506200042f565b838111156200045c576000848401525b50505050565b6000601f19601f8301169050919050565b6200047e81620003f8565b81146200048a57600080fd5b50565b60805160601c6148ce620004b560003980610ac55280610c005280611bc952506148ce6000f3fe60806040526004361061008a5760003560e01c80637a0c7b21116100595780637a0c7b21146101155780638822048e14610140578063961126761461017d578063a9f59b7114610199578063c5e10eef146101b557610091565b80631505ddd3146100965780633e04dcb5146100b25780634b57b0be146100ce578063601ee770146100f957610091565b3661009157005b600080fd5b6100b060048036038101906100ab9190613aa8565b6101e0565b005b6100cc60048036038101906100c79190613e07565b610487565b005b3480156100da57600080fd5b506100e3610795565b6040516100f091906140f1565b60405180910390f35b610113600480360381019061010e9190613b3b565b6107bb565b005b34801561012157600080fd5b5061012a610ac3565b6040516101379190614194565b60405180910390f35b34801561014c57600080fd5b50610167600480360381019061016291906139a0565b610ae7565b6040516101749190614179565b60405180910390f35b61019760048036038101906101929190613c09565b610bfd565b005b6101b360048036038101906101ae91906139f2565b61126e565b005b3480156101c157600080fd5b506101ca6115ee565b6040516101d791906141af565b60405180910390f35b60026000541415610259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061027691906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bb57600080fd5b505afa1580156102cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f391906139c9565b90506000806103058660000151611614565b915091508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f4c41360000000000000000000000000000000000000000000000000000000000815250906103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a6919061420f565b60405180910390fd5b5030866020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600063c04b8d5960e01b876040516024016104039190614231565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506104758884896060015187858b8b6116cf565b50505050600160008190555050505050565b60026000541415610500576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061051d91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b15801561056257600080fd5b505afa158015610576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059a91906139c9565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d7919061410c565b60206040518083038186803b1580156105ef57600080fd5b505afa158015610603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106279190613dde565b9050610633828661191c565b60006106da6106d3838573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610675919061410c565b60206040518083038186803b15801561068d57600080fd5b505afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c59190613dde565b611b2f90919063ffffffff16565b8686611bb2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb709cbfc91402c021e4a8c00ac331f0d9c3617c05eb744ec9ee15eb4f2e6c2d58960008a606001602081019061075891906139a0565b8b60c001602081019061076b91906139a0565b8b60405161077d9594939291906142c1565b60405180910390a45050506001600081905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000541415610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061085191906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b15801561089657600080fd5b505afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce91906139c9565b905060018551116040518060400160405280600281526020017f504c0000000000000000000000000000000000000000000000000000000000008152509061094c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610943919061420f565b60405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff168560018751038151811061097457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f4c4136000000000000000000000000000000000000000000000000000000000081525090610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01919061420f565b60405180910390fd5b5060006338ed173960e01b8888883089604051602401610a2e9594939291906143ac565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610ab08987600081518110610a9e57fe5b60200260200101518a858589896116cf565b5050600160008190555050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808273ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3057600080fd5b505afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190613d11565b90508073ffffffffffffffffffffffffffffffffffffffff16635a29be4530336040518363ffffffff1660e01b8152600401610ba5929190614150565b60206040518083038186803b158015610bbd57600080fd5b505afa158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf59190613ce8565b915050919050565b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636fbc6f6b826040518263ffffffff1660e01b8152600401610c5791906140f1565b60206040518083038186803b158015610c6f57600080fd5b505afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190613ce8565b6040518060400160405280600281526020017f435000000000000000000000000000000000000000000000000000000000000081525090610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d15919061420f565b60405180910390fd5b5060026000541415610d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555060008873ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b158015610de857600080fd5b505afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2091906139c9565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e5d919061410c565b60206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613dde565b9050610eb9828961191c565b610ec38a83612661565b8973ffffffffffffffffffffffffffffffffffffffff16635288ba4b610f7a838573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f1c919061410c565b60206040518083038186803b158015610f3457600080fd5b505afa158015610f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6c9190613dde565b611b2f90919063ffffffff16565b308c886040518563ffffffff1660e01b8152600401610f9c9493929190614314565b600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b505050506000610fdb8b898961278f565b9050858173ffffffffffffffffffffffffffffffffffffffff166370a082318d73ffffffffffffffffffffffffffffffffffffffff1663e958b704306040518263ffffffff1660e01b8152600401611033919061410c565b60206040518083038186803b15801561104b57600080fd5b505afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906139c9565b6040518263ffffffff1660e01b815260040161109f91906140f1565b60206040518083038186803b1580156110b757600080fd5b505afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190613dde565b10156040518060400160405280600381526020017f4c4135000000000000000000000000000000000000000000000000000000000081525090611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f919061420f565b60405180910390fd5b508a73ffffffffffffffffffffffffffffffffffffffff16635019e20a336040518263ffffffff1660e01b81526004016111a2919061410c565b600060405180830381600087803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb709cbfc91402c021e4a8c00ac331f0d9c3617c05eb744ec9ee15eb4f2e6c2d58c6000808d8c60405161125195949392919061426e565b60405180910390a450505060016000819055505050505050505050565b600260005414156112e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061130491906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b15801561134957600080fd5b505afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906139c9565b905060008873ffffffffffffffffffffffffffffffffffffffff1663c661065789600f0b6040518263ffffffff1660e01b81526004016113c19190614253565b60206040518083038186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141191906139c9565b905060008973ffffffffffffffffffffffffffffffffffffffff1663c661065789600f0b6040518263ffffffff1660e01b81526004016114519190614253565b60206040518083038186803b15801561146957600080fd5b505afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a191906139c9565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f4c4136000000000000000000000000000000000000000000000000000000000081525090611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540919061420f565b60405180910390fd5b506000633df0212460e01b8a8a8a8a60405160240161156b94939291906141ca565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506115d98b848a87858b8b6116cf565b50505050600160008190555050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806003601460020201835110156040518060400160405280600281526020017f504c0000000000000000000000000000000000000000000000000000000000008152509061169a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611691919061420f565b60405180910390fd5b506116af6000846128aa90919063ffffffff16565b91506116c86014845103846128aa90919063ffffffff16565b9050915091565b6116eb8260000160208101906116e591906139a0565b886129c3565b506116f6868661191c565b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611731919061410c565b60206040518083038186803b15801561174957600080fd5b505afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190613dde565b905061178d8888612661565b6117b6848973ffffffffffffffffffffffffffffffffffffffff16612b8790919063ffffffff16565b50600061185e611857838873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117f9919061410c565b60206040518083038186803b15801561181157600080fd5b505afa158015611825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118499190613dde565b611b2f90919063ffffffff16565b8585611bb2565b905061186988612bd1565b8073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fb709cbfc91402c021e4a8c00ac331f0d9c3617c05eb744ec9ee15eb4f2e6c2d58a8d8960600160208101906118e491906139a0565b8a60c00160208101906118f791906139a0565b8a604051611909959493929190614359565b60405180910390a4505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119795750600034115b15611a81578034146040518060400160405280600381526020017f4c41310000000000000000000000000000000000000000000000000000000000815250906119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef919061420f565b60405180910390fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a6357600080fd5b505af1158015611a77573d6000803e3d6000fd5b5050505050611b2b565b600034146040518060400160405280600381526020017f4c4132000000000000000000000000000000000000000000000000000000000081525090611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af3919061420f565b60405180910390fd5b50611b2a3330838573ffffffffffffffffffffffffffffffffffffffff16612da9909392919063ffffffff16565b5b5050565b600082821115611ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000826000016020810190611bc791906139a0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636fbc6f6b826040518263ffffffff1660e01b8152600401611c2091906140f1565b60206040518083038186803b158015611c3857600080fd5b505afa158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c709190613ce8565b6040518060400160405280600281526020017f435000000000000000000000000000000000000000000000000000000000000081525090611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde919061420f565b60405180910390fd5b506000846000016020810190611cfd91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b158015611d4257600080fd5b505afa158015611d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7a91906139c9565b9050611d98856000016020810190611d9291906139a0565b82612661565b846000016020810190611dab91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16635288ba4b87308860200135886040518563ffffffff1660e01b8152600401611ded9493929190614314565b600060405180830381600087803b158015611e0757600080fd5b505af1158015611e1b573d6000803e3d6000fd5b505050506000856000016020810190611e3491906139a0565b73ffffffffffffffffffffffffffffffffffffffff1663e958b704306040518263ffffffff1660e01b8152600401611e6c919061410c565b60206040518083038186803b158015611e8457600080fd5b505afa158015611e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebc91906139c9565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401611ef991906140f1565b60206040518083038186803b158015611f1157600080fd5b505afa158015611f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f499190613dde565b90506000611f7b886000016020810190611f6391906139a0565b896060016020810190611f7691906139a0565b6129c3565b9050600188604001351415612157576000806000808b8060800190611fa09190614460565b810190611fad9190613e6e565b9450509350935093506000611fdd85611fcf8987612e6a90919063ffffffff16565b612ef090919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff166338ed173988838630876040518663ffffffff1660e01b8152600401612020959493929190614406565b600060405180830381600087803b15801561203a57600080fd5b505af115801561204e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120779190613ca7565b508873ffffffffffffffffffffffffffffffffffffffff168360008151811061209c57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f495000000000000000000000000000000000000000000000000000000000000081525090612132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612129919061420f565b60405180910390fd5b508260018451038151811061214357fe5b60200260200101519a505050505050612454565b60028860400135141561226a5760008880608001906121769190614460565b8101906121839190613d9d565b90506121b281606001516121a4858460800151612e6a90919063ffffffff16565b612ef090919063ffffffff16565b816080018181525050828160600181815250508173ffffffffffffffffffffffffffffffffffffffff1663c04b8d59826040518263ffffffff1660e01b81526004016121fe9190614231565b602060405180830381600087803b15801561221857600080fd5b505af115801561222c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122509190613dde565b5061225e8160000151611614565b90508097505050612453565b6003886040013514156123e0576000806000808b806080019061228d9190614460565b81019061229a9190613d3a565b93509350935093508473ffffffffffffffffffffffffffffffffffffffff16633df021248585896122e6876122d88d89612e6a90919063ffffffff16565b612ef090919063ffffffff16565b6040518563ffffffff1660e01b815260040161230594939291906141ca565b600060405180830381600087803b15801561231f57600080fd5b505af1158015612333573d6000803e3d6000fd5b505050508b606001602081019061234a91906139a0565b73ffffffffffffffffffffffffffffffffffffffff1663c661065784600f0b6040518263ffffffff1660e01b81526004016123859190614253565b60206040518083038186803b15801561239d57600080fd5b505afa1580156123b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d591906139c9565b995050505050612452565b6040518060400160405280600381526020017f4c413300000000000000000000000000000000000000000000000000000000008152506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612449919061420f565b60405180910390fd5b5b5b600073ffffffffffffffffffffffffffffffffffffffff168860c001602081019061247f91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16146124d0576124cd8860000160208101906124b091906139a0565b8960a001358a60c00160208101906124c891906139a0565b61278f565b95505b8760e001358673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b815260040161250e91906140f1565b60206040518083038186803b15801561252657600080fd5b505afa15801561253a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255e9190613dde565b10156040518060400160405280600381526020017f4c41350000000000000000000000000000000000000000000000000000000000815250906125d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ce919061420f565b60405180910390fd5b508760000160208101906125eb91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16635019e20a336040518263ffffffff1660e01b8152600401612623919061410c565b600060405180830381600087803b15801561263d57600080fd5b505af1158015612651573d6000803e3d6000fd5b5050505050505050509392505050565b7f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016126bd929190614127565b60206040518083038186803b1580156126d557600080fd5b505afa1580156126e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270d9190613dde565b101561278b5761273f8260008373ffffffffffffffffffffffffffffffffffffffff16612f799092919063ffffffff16565b61278a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8373ffffffffffffffffffffffffffffffffffffffff16612f799092919063ffffffff16565b5b5050565b60008061279c85846129c3565b90506004841415612831578073ffffffffffffffffffffffffffffffffffffffff1663d0e30db06040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156127ef57600080fd5b505af1158015612803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128279190613dde565b50829150506128a3565b6040518060400160405280600381526020017f4c413400000000000000000000000000000000000000000000000000000000008152506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289a919061420f565b60405180910390fd5b9392505050565b600081601483011015612925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f746f416464726573735f6f766572666c6f77000000000000000000000000000081525060200191505060405180910390fd5b601482018351101561299f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f416464726573735f6f75744f66426f756e6473000000000000000000000081525060200191505060405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0c57600080fd5b505afa158015612a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a449190613d11565b905060008173ffffffffffffffffffffffffffffffffffffffff1663fdd57645856040518263ffffffff1660e01b8152600401612a8191906140f1565b60206040518083038186803b158015612a9957600080fd5b505afa158015612aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad191906139c9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156040518060400160405280600381526020017f434641000000000000000000000000000000000000000000000000000000000081525090612b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b72919061420f565b60405180910390fd5b50809250505092915050565b6060612bc983836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525061313e565b905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612c0c919061410c565b60206040518083038186803b158015612c2457600080fd5b505afa158015612c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5c9190613dde565b90506000811115612da557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d7857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401612d189190614253565b600060405180830381600087803b158015612d3257600080fd5b505af1158015612d46573d6000803e3d6000fd5b50505050612d73813373ffffffffffffffffffffffffffffffffffffffff1661315690919063ffffffff16565b612da4565b612da333828473ffffffffffffffffffffffffffffffffffffffff166132909092919063ffffffff16565b5b5b5050565b612e64846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613332565b50505050565b600080831415612e7d5760009050612eea565b6000828402905082848281612e8e57fe5b0414612ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806148186021913960400191505060405180910390fd5b809150505b92915050565b6000808211612f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381612f7057fe5b04905092915050565b6000811480613047575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561300a57600080fd5b505afa15801561301e573d6000803e3d6000fd5b505050506040513d602081101561303457600080fd5b8101908080519060200190929190505050145b61309c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806148636036913960400191505060405180910390fd5b6131398363095ea7b360e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613332565b505050565b606061314d8484600085613421565b90509392505050565b804710156131cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a20696e73756666696369656e742062616c616e636500000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d806000811461322c576040519150601f19603f3d011682016040523d82523d6000602084013e613231565b606091505b505090508061328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806147b8603a913960400191505060405180910390fd5b505050565b61332d8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613332565b505050565b6000613394826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661313e9092919063ffffffff16565b905060008151111561341c578080602001905160208110156133b557600080fd5b810190808051906020019092919050505061341b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614839602a913960400191505060405180910390fd5b5b505050565b60608247101561347c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806147f26026913960400191505060405180910390fd5b613485856135c9565b6134f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106135465780518252602082019150602081019050602083039250613523565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146135a8576040519150601f19603f3d011682016040523d82523d6000602084013e6135ad565b606091505b50915091506135bd8282866135dc565b92505050949350505050565b600080823b905060008111915050919050565b606083156135ec578290506136a1565b6000835111156135ff5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561366657808201518184015260208101905061364b565b50505050905090810190601f1680156136935780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b60006136bb6136b6846144e8565b6144b7565b905080838252602082019050828560208602820111156136da57600080fd5b60005b8581101561370a57816136f088826137be565b8452602084019350602083019250506001810190506136dd565b5050509392505050565b600061372761372284614514565b6144b7565b9050808382526020820190508285602086028201111561374657600080fd5b60005b85811015613776578161375c888261398b565b845260208401935060208301925050600181019050613749565b5050509392505050565b600061379361378e84614540565b6144b7565b9050828152602081018484840111156137ab57600080fd5b6137b68482856146d8565b509392505050565b6000813590506137cd8161472d565b92915050565b6000815190506137e28161472d565b92915050565b6000813590506137f781614744565b92915050565b600082601f83011261380e57600080fd5b813561381e8482602086016136a8565b91505092915050565b600082601f83011261383857600080fd5b8151613848848260208601613714565b91505092915050565b6000815190506138608161475b565b92915050565b600082601f83011261387757600080fd5b8135613887848260208601613780565b91505092915050565b60008151905061389f81614772565b92915050565b6000813590506138b481614789565b92915050565b600060a082840312156138cc57600080fd5b6138d660a06144b7565b9050600082013567ffffffffffffffff8111156138f257600080fd5b6138fe84828501613866565b6000830152506020613912848285016137be565b602083015250604061392684828501613976565b604083015250606061393a84828501613976565b606083015250608061394e84828501613976565b60808301525092915050565b6000610100828403121561396d57600080fd5b81905092915050565b600081359050613985816147a0565b92915050565b60008151905061399a816147a0565b92915050565b6000602082840312156139b257600080fd5b60006139c0848285016137be565b91505092915050565b6000602082840312156139db57600080fd5b60006139e9848285016137d3565b91505092915050565b600080600080600080600060e0888a031215613a0d57600080fd5b6000613a1b8a828b016137be565b9750506020613a2c8a828b016138a5565b9650506040613a3d8a828b016138a5565b9550506060613a4e8a828b01613976565b9450506080613a5f8a828b01613976565b93505060a088013567ffffffffffffffff811115613a7c57600080fd5b613a888a828b0161395a565b92505060c0613a998a828b01613976565b91505092959891949750929550565b60008060008060808587031215613abe57600080fd5b6000613acc878288016137be565b945050602085013567ffffffffffffffff811115613ae957600080fd5b613af5878288016138ba565b935050604085013567ffffffffffffffff811115613b1257600080fd5b613b1e8782880161395a565b9250506060613b2f87828801613976565b91505092959194509250565b600080600080600080600060e0888a031215613b5657600080fd5b6000613b648a828b016137be565b9750506020613b758a828b01613976565b9650506040613b868a828b01613976565b955050606088013567ffffffffffffffff811115613ba357600080fd5b613baf8a828b016137fd565b9450506080613bc08a828b01613976565b93505060a088013567ffffffffffffffff811115613bdd57600080fd5b613be98a828b0161395a565b92505060c0613bfa8a828b01613976565b91505092959891949750929550565b600080600080600080600060e0888a031215613c2457600080fd5b6000613c328a828b016137be565b9750506020613c438a828b01613976565b9650506040613c548a828b01613976565b9550506060613c658a828b01613976565b9450506080613c768a828b016137be565b93505060a0613c878a828b01613976565b92505060c0613c988a828b01613976565b91505092959891949750929550565b600060208284031215613cb957600080fd5b600082015167ffffffffffffffff811115613cd357600080fd5b613cdf84828501613827565b91505092915050565b600060208284031215613cfa57600080fd5b6000613d0884828501613851565b91505092915050565b600060208284031215613d2357600080fd5b6000613d3184828501613890565b91505092915050565b60008060008060808587031215613d5057600080fd5b6000613d5e878288016138a5565b9450506020613d6f878288016138a5565b9350506040613d8087828801613976565b9250506060613d9187828801613976565b91505092959194509250565b600060208284031215613daf57600080fd5b600082013567ffffffffffffffff811115613dc957600080fd5b613dd5848285016138ba565b91505092915050565b600060208284031215613df057600080fd5b6000613dfe8482850161398b565b91505092915050565b600080600060608486031215613e1c57600080fd5b6000613e2a86828701613976565b935050602084013567ffffffffffffffff811115613e4757600080fd5b613e538682870161395a565b9250506040613e6486828701613976565b9150509250925092565b600080600080600060a08688031215613e8657600080fd5b6000613e9488828901613976565b9550506020613ea588828901613976565b945050604086013567ffffffffffffffff811115613ec257600080fd5b613ece888289016137fd565b9350506060613edf888289016137e8565b9250506080613ef088828901613976565b9150509295509295909350565b6000613f098383613f33565b60208301905092915050565b613f1e8161465a565b82525050565b613f2d816145f3565b82525050565b613f3c816145e1565b82525050565b613f4b816145e1565b82525050565b6000613f5c82614580565b613f6681856145ae565b9350613f7183614570565b8060005b83811015613fa2578151613f898882613efd565b9750613f94836145a1565b925050600181019050613f75565b5085935050505092915050565b613fb881614605565b82525050565b6000613fc98261458b565b613fd381856145bf565b9350613fe38185602086016146e7565b613fec8161471c565b840191505092915050565b6140008161466c565b82525050565b61400f81614690565b82525050565b61401e81614623565b82525050565b600061402f82614596565b61403981856145d0565b93506140498185602086016146e7565b6140528161471c565b840191505092915050565b600060a083016000830151848203600086015261407a8282613fbe565b915050602083015161408f6020860182613f33565b5060408301516140a260408601826140d3565b5060608301516140b560608601826140d3565b5060808301516140c860808601826140d3565b508091505092915050565b6140dc81614650565b82525050565b6140eb81614650565b82525050565b60006020820190506141066000830184613f42565b92915050565b60006020820190506141216000830184613f15565b92915050565b600060408201905061413c6000830185613f15565b6141496020830184613f42565b9392505050565b60006040820190506141656000830185613f15565b6141726020830184613f15565b9392505050565b600060208201905061418e6000830184613faf565b92915050565b60006020820190506141a96000830184613ff7565b92915050565b60006020820190506141c46000830184614006565b92915050565b60006080820190506141df6000830187614015565b6141ec6020830186614015565b6141f960408301856140e2565b61420660608301846140e2565b95945050505050565b600060208201905081810360008301526142298184614024565b905092915050565b6000602082019050818103600083015261424b818461405d565b905092915050565b600060208201905061426860008301846140e2565b92915050565b600060a08201905061428360008301886140e2565b6142906020830187613f15565b61429d6040830186613f15565b6142aa6060830185613f42565b6142b760808301846140e2565b9695505050505050565b600060a0820190506142d660008301886140e2565b6142e36020830187613f15565b6142f06040830186613f42565b6142fd6060830185613f42565b61430a60808301846140e2565b9695505050505050565b600060808201905061432960008301876140e2565b6143366020830186613f15565b61434360408301856140e2565b61435060608301846140e2565b95945050505050565b600060a08201905061436e60008301886140e2565b61437b6020830187613f42565b6143886040830186613f42565b6143956060830185613f42565b6143a260808301846140e2565b9695505050505050565b600060a0820190506143c160008301886140e2565b6143ce60208301876140e2565b81810360408301526143e08186613f51565b90506143ef6060830185613f24565b6143fc60808301846140e2565b9695505050505050565b600060a08201905061441b60008301886140e2565b61442860208301876140e2565b818103604083015261443a8186613f51565b90506144496060830185613f15565b61445660808301846140e2565b9695505050505050565b6000808335600160200384360303811261447957600080fd5b80840192508235915067ffffffffffffffff82111561449757600080fd5b6020830192506001820236038313156144af57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff821117156144de576144dd61471a565b5b8060405250919050565b600067ffffffffffffffff8211156145035761450261471a565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561452f5761452e61471a565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561455b5761455a61471a565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145ec82614630565b9050919050565b60006145fe82614630565b9050919050565b60008115159050919050565b600061461c826145e1565b9050919050565b600081600f0b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000614665826146b4565b9050919050565b60006146778261467e565b9050919050565b600061468982614630565b9050919050565b600061469b826146a2565b9050919050565b60006146ad82614630565b9050919050565b60006146bf826146c6565b9050919050565b60006146d182614630565b9050919050565b82818337600083830152505050565b60005b838110156147055780820151818401526020810190506146ea565b83811115614714576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b614736816145e1565b811461474157600080fd5b50565b61474d816145f3565b811461475857600080fd5b50565b61476481614605565b811461476f57600080fd5b50565b61477b81614611565b811461478657600080fd5b50565b61479281614623565b811461479d57600080fd5b50565b6147a981614650565b81146147b457600080fd5b5056fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220e22417dd1eaac410e2c37e80245849340da3290b2075389d1a1ba7325dc0b3a864736f6c63430007060033",
511
+ "deployedBytecode": "0x60806040526004361061008a5760003560e01c80637a0c7b21116100595780637a0c7b21146101155780638822048e14610140578063961126761461017d578063a9f59b7114610199578063c5e10eef146101b557610091565b80631505ddd3146100965780633e04dcb5146100b25780634b57b0be146100ce578063601ee770146100f957610091565b3661009157005b600080fd5b6100b060048036038101906100ab9190613aa8565b6101e0565b005b6100cc60048036038101906100c79190613e07565b610487565b005b3480156100da57600080fd5b506100e3610795565b6040516100f091906140f1565b60405180910390f35b610113600480360381019061010e9190613b3b565b6107bb565b005b34801561012157600080fd5b5061012a610ac3565b6040516101379190614194565b60405180910390f35b34801561014c57600080fd5b50610167600480360381019061016291906139a0565b610ae7565b6040516101749190614179565b60405180910390f35b61019760048036038101906101929190613c09565b610bfd565b005b6101b360048036038101906101ae91906139f2565b61126e565b005b3480156101c157600080fd5b506101ca6115ee565b6040516101d791906141af565b60405180910390f35b60026000541415610259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061027691906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bb57600080fd5b505afa1580156102cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f391906139c9565b90506000806103058660000151611614565b915091508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f4c41360000000000000000000000000000000000000000000000000000000000815250906103af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a6919061420f565b60405180910390fd5b5030866020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600063c04b8d5960e01b876040516024016104039190614231565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506104758884896060015187858b8b6116cf565b50505050600160008190555050505050565b60026000541415610500576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061051d91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b15801561056257600080fd5b505afa158015610576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059a91906139c9565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d7919061410c565b60206040518083038186803b1580156105ef57600080fd5b505afa158015610603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106279190613dde565b9050610633828661191c565b60006106da6106d3838573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610675919061410c565b60206040518083038186803b15801561068d57600080fd5b505afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c59190613dde565b611b2f90919063ffffffff16565b8686611bb2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb709cbfc91402c021e4a8c00ac331f0d9c3617c05eb744ec9ee15eb4f2e6c2d58960008a606001602081019061075891906139a0565b8b60c001602081019061076b91906139a0565b8b60405161077d9594939291906142c1565b60405180910390a45050506001600081905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000541415610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061085191906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b15801561089657600080fd5b505afa1580156108aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ce91906139c9565b905060018551116040518060400160405280600281526020017f504c0000000000000000000000000000000000000000000000000000000000008152509061094c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610943919061420f565b60405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff168560018751038151811061097457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f4c4136000000000000000000000000000000000000000000000000000000000081525090610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01919061420f565b60405180910390fd5b5060006338ed173960e01b8888883089604051602401610a2e9594939291906143ac565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610ab08987600081518110610a9e57fe5b60200260200101518a858589896116cf565b5050600160008190555050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808273ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3057600080fd5b505afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190613d11565b90508073ffffffffffffffffffffffffffffffffffffffff16635a29be4530336040518363ffffffff1660e01b8152600401610ba5929190614150565b60206040518083038186803b158015610bbd57600080fd5b505afa158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf59190613ce8565b915050919050565b867f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636fbc6f6b826040518263ffffffff1660e01b8152600401610c5791906140f1565b60206040518083038186803b158015610c6f57600080fd5b505afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190613ce8565b6040518060400160405280600281526020017f435000000000000000000000000000000000000000000000000000000000000081525090610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d15919061420f565b60405180910390fd5b5060026000541415610d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555060008873ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b158015610de857600080fd5b505afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2091906139c9565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e5d919061410c565b60206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613dde565b9050610eb9828961191c565b610ec38a83612661565b8973ffffffffffffffffffffffffffffffffffffffff16635288ba4b610f7a838573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f1c919061410c565b60206040518083038186803b158015610f3457600080fd5b505afa158015610f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6c9190613dde565b611b2f90919063ffffffff16565b308c886040518563ffffffff1660e01b8152600401610f9c9493929190614314565b600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b505050506000610fdb8b898961278f565b9050858173ffffffffffffffffffffffffffffffffffffffff166370a082318d73ffffffffffffffffffffffffffffffffffffffff1663e958b704306040518263ffffffff1660e01b8152600401611033919061410c565b60206040518083038186803b15801561104b57600080fd5b505afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906139c9565b6040518263ffffffff1660e01b815260040161109f91906140f1565b60206040518083038186803b1580156110b757600080fd5b505afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190613dde565b10156040518060400160405280600381526020017f4c4135000000000000000000000000000000000000000000000000000000000081525090611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f919061420f565b60405180910390fd5b508a73ffffffffffffffffffffffffffffffffffffffff16635019e20a336040518263ffffffff1660e01b81526004016111a2919061410c565b600060405180830381600087803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fb709cbfc91402c021e4a8c00ac331f0d9c3617c05eb744ec9ee15eb4f2e6c2d58c6000808d8c60405161125195949392919061426e565b60405180910390a450505060016000819055505050505050505050565b600260005414156112e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550600082600001602081019061130491906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b15801561134957600080fd5b505afa15801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906139c9565b905060008873ffffffffffffffffffffffffffffffffffffffff1663c661065789600f0b6040518263ffffffff1660e01b81526004016113c19190614253565b60206040518083038186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141191906139c9565b905060008973ffffffffffffffffffffffffffffffffffffffff1663c661065789600f0b6040518263ffffffff1660e01b81526004016114519190614253565b60206040518083038186803b15801561146957600080fd5b505afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a191906139c9565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600381526020017f4c4136000000000000000000000000000000000000000000000000000000000081525090611549576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611540919061420f565b60405180910390fd5b506000633df0212460e01b8a8a8a8a60405160240161156b94939291906141ca565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506115d98b848a87858b8b6116cf565b50505050600160008190555050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806003601460020201835110156040518060400160405280600281526020017f504c0000000000000000000000000000000000000000000000000000000000008152509061169a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611691919061420f565b60405180910390fd5b506116af6000846128aa90919063ffffffff16565b91506116c86014845103846128aa90919063ffffffff16565b9050915091565b6116eb8260000160208101906116e591906139a0565b886129c3565b506116f6868661191c565b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611731919061410c565b60206040518083038186803b15801561174957600080fd5b505afa15801561175d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117819190613dde565b905061178d8888612661565b6117b6848973ffffffffffffffffffffffffffffffffffffffff16612b8790919063ffffffff16565b50600061185e611857838873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117f9919061410c565b60206040518083038186803b15801561181157600080fd5b505afa158015611825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118499190613dde565b611b2f90919063ffffffff16565b8585611bb2565b905061186988612bd1565b8073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fb709cbfc91402c021e4a8c00ac331f0d9c3617c05eb744ec9ee15eb4f2e6c2d58a8d8960600160208101906118e491906139a0565b8a60c00160208101906118f791906139a0565b8a604051611909959493929190614359565b60405180910390a4505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119795750600034115b15611a81578034146040518060400160405280600381526020017f4c41310000000000000000000000000000000000000000000000000000000000815250906119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef919061420f565b60405180910390fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a6357600080fd5b505af1158015611a77573d6000803e3d6000fd5b5050505050611b2b565b600034146040518060400160405280600381526020017f4c4132000000000000000000000000000000000000000000000000000000000081525090611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af3919061420f565b60405180910390fd5b50611b2a3330838573ffffffffffffffffffffffffffffffffffffffff16612da9909392919063ffffffff16565b5b5050565b600082821115611ba7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b6000826000016020810190611bc791906139a0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636fbc6f6b826040518263ffffffff1660e01b8152600401611c2091906140f1565b60206040518083038186803b158015611c3857600080fd5b505afa158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c709190613ce8565b6040518060400160405280600281526020017f435000000000000000000000000000000000000000000000000000000000000081525090611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde919061420f565b60405180910390fd5b506000846000016020810190611cfd91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16632495a5996040518163ffffffff1660e01b815260040160206040518083038186803b158015611d4257600080fd5b505afa158015611d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7a91906139c9565b9050611d98856000016020810190611d9291906139a0565b82612661565b846000016020810190611dab91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16635288ba4b87308860200135886040518563ffffffff1660e01b8152600401611ded9493929190614314565b600060405180830381600087803b158015611e0757600080fd5b505af1158015611e1b573d6000803e3d6000fd5b505050506000856000016020810190611e3491906139a0565b73ffffffffffffffffffffffffffffffffffffffff1663e958b704306040518263ffffffff1660e01b8152600401611e6c919061410c565b60206040518083038186803b158015611e8457600080fd5b505afa158015611e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebc91906139c9565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401611ef991906140f1565b60206040518083038186803b158015611f1157600080fd5b505afa158015611f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f499190613dde565b90506000611f7b886000016020810190611f6391906139a0565b896060016020810190611f7691906139a0565b6129c3565b9050600188604001351415612157576000806000808b8060800190611fa09190614460565b810190611fad9190613e6e565b9450509350935093506000611fdd85611fcf8987612e6a90919063ffffffff16565b612ef090919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff166338ed173988838630876040518663ffffffff1660e01b8152600401612020959493929190614406565b600060405180830381600087803b15801561203a57600080fd5b505af115801561204e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906120779190613ca7565b508873ffffffffffffffffffffffffffffffffffffffff168360008151811061209c57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f495000000000000000000000000000000000000000000000000000000000000081525090612132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612129919061420f565b60405180910390fd5b508260018451038151811061214357fe5b60200260200101519a505050505050612454565b60028860400135141561226a5760008880608001906121769190614460565b8101906121839190613d9d565b90506121b281606001516121a4858460800151612e6a90919063ffffffff16565b612ef090919063ffffffff16565b816080018181525050828160600181815250508173ffffffffffffffffffffffffffffffffffffffff1663c04b8d59826040518263ffffffff1660e01b81526004016121fe9190614231565b602060405180830381600087803b15801561221857600080fd5b505af115801561222c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122509190613dde565b5061225e8160000151611614565b90508097505050612453565b6003886040013514156123e0576000806000808b806080019061228d9190614460565b81019061229a9190613d3a565b93509350935093508473ffffffffffffffffffffffffffffffffffffffff16633df021248585896122e6876122d88d89612e6a90919063ffffffff16565b612ef090919063ffffffff16565b6040518563ffffffff1660e01b815260040161230594939291906141ca565b600060405180830381600087803b15801561231f57600080fd5b505af1158015612333573d6000803e3d6000fd5b505050508b606001602081019061234a91906139a0565b73ffffffffffffffffffffffffffffffffffffffff1663c661065784600f0b6040518263ffffffff1660e01b81526004016123859190614253565b60206040518083038186803b15801561239d57600080fd5b505afa1580156123b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d591906139c9565b995050505050612452565b6040518060400160405280600381526020017f4c413300000000000000000000000000000000000000000000000000000000008152506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612449919061420f565b60405180910390fd5b5b5b600073ffffffffffffffffffffffffffffffffffffffff168860c001602081019061247f91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16146124d0576124cd8860000160208101906124b091906139a0565b8960a001358a60c00160208101906124c891906139a0565b61278f565b95505b8760e001358673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b815260040161250e91906140f1565b60206040518083038186803b15801561252657600080fd5b505afa15801561253a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255e9190613dde565b10156040518060400160405280600381526020017f4c41350000000000000000000000000000000000000000000000000000000000815250906125d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ce919061420f565b60405180910390fd5b508760000160208101906125eb91906139a0565b73ffffffffffffffffffffffffffffffffffffffff16635019e20a336040518263ffffffff1660e01b8152600401612623919061410c565b600060405180830381600087803b15801561263d57600080fd5b505af1158015612651573d6000803e3d6000fd5b5050505050505050509392505050565b7f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016126bd929190614127565b60206040518083038186803b1580156126d557600080fd5b505afa1580156126e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270d9190613dde565b101561278b5761273f8260008373ffffffffffffffffffffffffffffffffffffffff16612f799092919063ffffffff16565b61278a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8373ffffffffffffffffffffffffffffffffffffffff16612f799092919063ffffffff16565b5b5050565b60008061279c85846129c3565b90506004841415612831578073ffffffffffffffffffffffffffffffffffffffff1663d0e30db06040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156127ef57600080fd5b505af1158015612803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128279190613dde565b50829150506128a3565b6040518060400160405280600381526020017f4c413400000000000000000000000000000000000000000000000000000000008152506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289a919061420f565b60405180910390fd5b9392505050565b600081601483011015612925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f746f416464726573735f6f766572666c6f77000000000000000000000000000081525060200191505060405180910390fd5b601482018351101561299f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f416464726573735f6f75744f66426f756e6473000000000000000000000081525060200191505060405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0c57600080fd5b505afa158015612a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a449190613d11565b905060008173ffffffffffffffffffffffffffffffffffffffff1663fdd57645856040518263ffffffff1660e01b8152600401612a8191906140f1565b60206040518083038186803b158015612a9957600080fd5b505afa158015612aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad191906139c9565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156040518060400160405280600381526020017f434641000000000000000000000000000000000000000000000000000000000081525090612b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b72919061420f565b60405180910390fd5b50809250505092915050565b6060612bc983836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525061313e565b905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612c0c919061410c565b60206040518083038186803b158015612c2457600080fd5b505afa158015612c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5c9190613dde565b90506000811115612da557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d7857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401612d189190614253565b600060405180830381600087803b158015612d3257600080fd5b505af1158015612d46573d6000803e3d6000fd5b50505050612d73813373ffffffffffffffffffffffffffffffffffffffff1661315690919063ffffffff16565b612da4565b612da333828473ffffffffffffffffffffffffffffffffffffffff166132909092919063ffffffff16565b5b5b5050565b612e64846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613332565b50505050565b600080831415612e7d5760009050612eea565b6000828402905082848281612e8e57fe5b0414612ee5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806148186021913960400191505060405180910390fd5b809150505b92915050565b6000808211612f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381612f7057fe5b04905092915050565b6000811480613047575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561300a57600080fd5b505afa15801561301e573d6000803e3d6000fd5b505050506040513d602081101561303457600080fd5b8101908080519060200190929190505050145b61309c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806148636036913960400191505060405180910390fd5b6131398363095ea7b360e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613332565b505050565b606061314d8484600085613421565b90509392505050565b804710156131cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a20696e73756666696369656e742062616c616e636500000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d806000811461322c576040519150601f19603f3d011682016040523d82523d6000602084013e613231565b606091505b505090508061328b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806147b8603a913960400191505060405180910390fd5b505050565b61332d8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613332565b505050565b6000613394826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661313e9092919063ffffffff16565b905060008151111561341c578080602001905160208110156133b557600080fd5b810190808051906020019092919050505061341b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614839602a913960400191505060405180910390fd5b5b505050565b60608247101561347c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806147f26026913960400191505060405180910390fd5b613485856135c9565b6134f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106135465780518252602082019150602081019050602083039250613523565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146135a8576040519150601f19603f3d011682016040523d82523d6000602084013e6135ad565b606091505b50915091506135bd8282866135dc565b92505050949350505050565b600080823b905060008111915050919050565b606083156135ec578290506136a1565b6000835111156135ff5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561366657808201518184015260208101905061364b565b50505050905090810190601f1680156136935780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b60006136bb6136b6846144e8565b6144b7565b905080838252602082019050828560208602820111156136da57600080fd5b60005b8581101561370a57816136f088826137be565b8452602084019350602083019250506001810190506136dd565b5050509392505050565b600061372761372284614514565b6144b7565b9050808382526020820190508285602086028201111561374657600080fd5b60005b85811015613776578161375c888261398b565b845260208401935060208301925050600181019050613749565b5050509392505050565b600061379361378e84614540565b6144b7565b9050828152602081018484840111156137ab57600080fd5b6137b68482856146d8565b509392505050565b6000813590506137cd8161472d565b92915050565b6000815190506137e28161472d565b92915050565b6000813590506137f781614744565b92915050565b600082601f83011261380e57600080fd5b813561381e8482602086016136a8565b91505092915050565b600082601f83011261383857600080fd5b8151613848848260208601613714565b91505092915050565b6000815190506138608161475b565b92915050565b600082601f83011261387757600080fd5b8135613887848260208601613780565b91505092915050565b60008151905061389f81614772565b92915050565b6000813590506138b481614789565b92915050565b600060a082840312156138cc57600080fd5b6138d660a06144b7565b9050600082013567ffffffffffffffff8111156138f257600080fd5b6138fe84828501613866565b6000830152506020613912848285016137be565b602083015250604061392684828501613976565b604083015250606061393a84828501613976565b606083015250608061394e84828501613976565b60808301525092915050565b6000610100828403121561396d57600080fd5b81905092915050565b600081359050613985816147a0565b92915050565b60008151905061399a816147a0565b92915050565b6000602082840312156139b257600080fd5b60006139c0848285016137be565b91505092915050565b6000602082840312156139db57600080fd5b60006139e9848285016137d3565b91505092915050565b600080600080600080600060e0888a031215613a0d57600080fd5b6000613a1b8a828b016137be565b9750506020613a2c8a828b016138a5565b9650506040613a3d8a828b016138a5565b9550506060613a4e8a828b01613976565b9450506080613a5f8a828b01613976565b93505060a088013567ffffffffffffffff811115613a7c57600080fd5b613a888a828b0161395a565b92505060c0613a998a828b01613976565b91505092959891949750929550565b60008060008060808587031215613abe57600080fd5b6000613acc878288016137be565b945050602085013567ffffffffffffffff811115613ae957600080fd5b613af5878288016138ba565b935050604085013567ffffffffffffffff811115613b1257600080fd5b613b1e8782880161395a565b9250506060613b2f87828801613976565b91505092959194509250565b600080600080600080600060e0888a031215613b5657600080fd5b6000613b648a828b016137be565b9750506020613b758a828b01613976565b9650506040613b868a828b01613976565b955050606088013567ffffffffffffffff811115613ba357600080fd5b613baf8a828b016137fd565b9450506080613bc08a828b01613976565b93505060a088013567ffffffffffffffff811115613bdd57600080fd5b613be98a828b0161395a565b92505060c0613bfa8a828b01613976565b91505092959891949750929550565b600080600080600080600060e0888a031215613c2457600080fd5b6000613c328a828b016137be565b9750506020613c438a828b01613976565b9650506040613c548a828b01613976565b9550506060613c658a828b01613976565b9450506080613c768a828b016137be565b93505060a0613c878a828b01613976565b92505060c0613c988a828b01613976565b91505092959891949750929550565b600060208284031215613cb957600080fd5b600082015167ffffffffffffffff811115613cd357600080fd5b613cdf84828501613827565b91505092915050565b600060208284031215613cfa57600080fd5b6000613d0884828501613851565b91505092915050565b600060208284031215613d2357600080fd5b6000613d3184828501613890565b91505092915050565b60008060008060808587031215613d5057600080fd5b6000613d5e878288016138a5565b9450506020613d6f878288016138a5565b9350506040613d8087828801613976565b9250506060613d9187828801613976565b91505092959194509250565b600060208284031215613daf57600080fd5b600082013567ffffffffffffffff811115613dc957600080fd5b613dd5848285016138ba565b91505092915050565b600060208284031215613df057600080fd5b6000613dfe8482850161398b565b91505092915050565b600080600060608486031215613e1c57600080fd5b6000613e2a86828701613976565b935050602084013567ffffffffffffffff811115613e4757600080fd5b613e538682870161395a565b9250506040613e6486828701613976565b9150509250925092565b600080600080600060a08688031215613e8657600080fd5b6000613e9488828901613976565b9550506020613ea588828901613976565b945050604086013567ffffffffffffffff811115613ec257600080fd5b613ece888289016137fd565b9350506060613edf888289016137e8565b9250506080613ef088828901613976565b9150509295509295909350565b6000613f098383613f33565b60208301905092915050565b613f1e8161465a565b82525050565b613f2d816145f3565b82525050565b613f3c816145e1565b82525050565b613f4b816145e1565b82525050565b6000613f5c82614580565b613f6681856145ae565b9350613f7183614570565b8060005b83811015613fa2578151613f898882613efd565b9750613f94836145a1565b925050600181019050613f75565b5085935050505092915050565b613fb881614605565b82525050565b6000613fc98261458b565b613fd381856145bf565b9350613fe38185602086016146e7565b613fec8161471c565b840191505092915050565b6140008161466c565b82525050565b61400f81614690565b82525050565b61401e81614623565b82525050565b600061402f82614596565b61403981856145d0565b93506140498185602086016146e7565b6140528161471c565b840191505092915050565b600060a083016000830151848203600086015261407a8282613fbe565b915050602083015161408f6020860182613f33565b5060408301516140a260408601826140d3565b5060608301516140b560608601826140d3565b5060808301516140c860808601826140d3565b508091505092915050565b6140dc81614650565b82525050565b6140eb81614650565b82525050565b60006020820190506141066000830184613f42565b92915050565b60006020820190506141216000830184613f15565b92915050565b600060408201905061413c6000830185613f15565b6141496020830184613f42565b9392505050565b60006040820190506141656000830185613f15565b6141726020830184613f15565b9392505050565b600060208201905061418e6000830184613faf565b92915050565b60006020820190506141a96000830184613ff7565b92915050565b60006020820190506141c46000830184614006565b92915050565b60006080820190506141df6000830187614015565b6141ec6020830186614015565b6141f960408301856140e2565b61420660608301846140e2565b95945050505050565b600060208201905081810360008301526142298184614024565b905092915050565b6000602082019050818103600083015261424b818461405d565b905092915050565b600060208201905061426860008301846140e2565b92915050565b600060a08201905061428360008301886140e2565b6142906020830187613f15565b61429d6040830186613f15565b6142aa6060830185613f42565b6142b760808301846140e2565b9695505050505050565b600060a0820190506142d660008301886140e2565b6142e36020830187613f15565b6142f06040830186613f42565b6142fd6060830185613f42565b61430a60808301846140e2565b9695505050505050565b600060808201905061432960008301876140e2565b6143366020830186613f15565b61434360408301856140e2565b61435060608301846140e2565b95945050505050565b600060a08201905061436e60008301886140e2565b61437b6020830187613f42565b6143886040830186613f42565b6143956060830185613f42565b6143a260808301846140e2565b9695505050505050565b600060a0820190506143c160008301886140e2565b6143ce60208301876140e2565b81810360408301526143e08186613f51565b90506143ef6060830185613f24565b6143fc60808301846140e2565b9695505050505050565b600060a08201905061441b60008301886140e2565b61442860208301876140e2565b818103604083015261443a8186613f51565b90506144496060830185613f15565b61445660808301846140e2565b9695505050505050565b6000808335600160200384360303811261447957600080fd5b80840192508235915067ffffffffffffffff82111561449757600080fd5b6020830192506001820236038313156144af57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff821117156144de576144dd61471a565b5b8060405250919050565b600067ffffffffffffffff8211156145035761450261471a565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561452f5761452e61471a565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561455b5761455a61471a565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145ec82614630565b9050919050565b60006145fe82614630565b9050919050565b60008115159050919050565b600061461c826145e1565b9050919050565b600081600f0b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000614665826146b4565b9050919050565b60006146778261467e565b9050919050565b600061468982614630565b9050919050565b600061469b826146a2565b9050919050565b60006146ad82614630565b9050919050565b60006146bf826146c6565b9050919050565b60006146d182614630565b9050919050565b82818337600083830152505050565b60005b838110156147055780820151818401526020810190506146ea565b83811115614714576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b614736816145e1565b811461474157600080fd5b50565b61474d816145f3565b811461475857600080fd5b50565b61476481614605565b811461476f57600080fd5b50565b61477b81614611565b811461478657600080fd5b50565b61479281614623565b811461479d57600080fd5b50565b6147a981614650565b81146147b457600080fd5b5056fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220e22417dd1eaac410e2c37e80245849340da3290b2075389d1a1ba7325dc0b3a864736f6c63430007060033",
512
+ "linkReferences": {},
513
+ "deployedLinkReferences": {}
514
+ }