@gearbox-protocol/sdk 0.0.2

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,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/d0fce7b1a0eed0fda407ed2afeba4b69.json"
4
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AdaptersDeployer",
4
+ "sourceName": "contracts/deployer/AdaptersDeployer.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "components": [
10
+ {
11
+ "internalType": "address",
12
+ "name": "addressProvider",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "internalType": "address",
17
+ "name": "creditManager",
18
+ "type": "address"
19
+ },
20
+ {
21
+ "components": [
22
+ {
23
+ "internalType": "address",
24
+ "name": "targetContract",
25
+ "type": "address"
26
+ },
27
+ {
28
+ "internalType": "uint256",
29
+ "name": "adapterType",
30
+ "type": "uint256"
31
+ }
32
+ ],
33
+ "internalType": "struct AdaptersDeployer.AdapterConfig[]",
34
+ "name": "adapters",
35
+ "type": "tuple[]"
36
+ }
37
+ ],
38
+ "internalType": "struct AdaptersDeployer.DeployOpts",
39
+ "name": "opts",
40
+ "type": "tuple"
41
+ }
42
+ ],
43
+ "stateMutability": "nonpayable",
44
+ "type": "constructor"
45
+ },
46
+ {
47
+ "anonymous": false,
48
+ "inputs": [
49
+ {
50
+ "indexed": true,
51
+ "internalType": "address",
52
+ "name": "previousOwner",
53
+ "type": "address"
54
+ },
55
+ {
56
+ "indexed": true,
57
+ "internalType": "address",
58
+ "name": "newOwner",
59
+ "type": "address"
60
+ }
61
+ ],
62
+ "name": "OwnershipTransferred",
63
+ "type": "event"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "",
70
+ "type": "uint256"
71
+ }
72
+ ],
73
+ "name": "adapters",
74
+ "outputs": [
75
+ {
76
+ "internalType": "address",
77
+ "name": "adapter",
78
+ "type": "address"
79
+ },
80
+ {
81
+ "internalType": "address",
82
+ "name": "targetContract",
83
+ "type": "address"
84
+ }
85
+ ],
86
+ "stateMutability": "view",
87
+ "type": "function"
88
+ },
89
+ {
90
+ "inputs": [],
91
+ "name": "addressProvider",
92
+ "outputs": [
93
+ {
94
+ "internalType": "contract AddressProvider",
95
+ "name": "",
96
+ "type": "address"
97
+ }
98
+ ],
99
+ "stateMutability": "view",
100
+ "type": "function"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "connectAdapters",
105
+ "outputs": [],
106
+ "stateMutability": "nonpayable",
107
+ "type": "function"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "creditFilter",
112
+ "outputs": [
113
+ {
114
+ "internalType": "contract ICreditFilter",
115
+ "name": "",
116
+ "type": "address"
117
+ }
118
+ ],
119
+ "stateMutability": "view",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [],
124
+ "name": "owner",
125
+ "outputs": [
126
+ {
127
+ "internalType": "address",
128
+ "name": "",
129
+ "type": "address"
130
+ }
131
+ ],
132
+ "stateMutability": "view",
133
+ "type": "function"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "renounceOwnership",
138
+ "outputs": [],
139
+ "stateMutability": "nonpayable",
140
+ "type": "function"
141
+ },
142
+ {
143
+ "inputs": [
144
+ {
145
+ "internalType": "address",
146
+ "name": "newOwner",
147
+ "type": "address"
148
+ }
149
+ ],
150
+ "name": "transferOwnership",
151
+ "outputs": [],
152
+ "stateMutability": "nonpayable",
153
+ "type": "function"
154
+ }
155
+ ],
156
+ "bytecode": "0x60806040523480156200001157600080fd5b506040516200cb603803806200cb60833981810160405281019062000037919062000787565b6000620000496200055f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060000151600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015173ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017757600080fd5b505afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b291906200075b565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080600090505b82604001515181101562000556576001836040015182815181106200021b57fe5b602002602001015160200151141562000291578260200151836040015182815181106200024457fe5b6020026020010151600001516040516200025e9062000567565b6200026b929190620007dd565b604051809103906000f08015801562000288573d6000803e3d6000fd5b5091506200042a565b600283604001518281518110620002a457fe5b60200260200101516020015114156200031a57826020015183604001518281518110620002cd57fe5b602002602001015160000151604051620002e79062000575565b620002f4929190620007dd565b604051809103906000f08015801562000311573d6000803e3d6000fd5b50915062000429565b6003836040015182815181106200032d57fe5b6020026020010151602001511415620003a3578260200151836040015182815181106200035657fe5b602002602001015160000151604051620003709062000583565b6200037d929190620007dd565b604051809103906000f0801580156200039a573d6000803e3d6000fd5b50915062000428565b600483604001518281518110620003b657fe5b60200260200101516020015114156200042757826020015183604001518281518110620003df57fe5b602002602001015160000151604051620003f99062000591565b62000406929190620007dd565b604051809103906000f08015801562000423573d6000803e3d6000fd5b5091505b5b5b5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001856040015184815181106200046457fe5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168152509050600381908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050508080600101915050620001fa565b5050506200090f565b600033905090565b61410d806200147b83390190565b613218806200558883390190565b61154d80620087a083390190565b612e738062009ced83390190565b6000620005b6620005b0846200083e565b6200080a565b90508083825260208201905082856040860282011115620005d657600080fd5b60005b858110156200060a5781620005ef88826200066f565b845260208401935060408301925050600181019050620005d9565b5050509392505050565b6000815190506200062581620008c1565b92915050565b600082601f8301126200063d57600080fd5b81516200064f8482602086016200059f565b91505092915050565b6000815190506200066981620008db565b92915050565b6000604082840312156200068257600080fd5b6200068e60406200080a565b90506000620006a08482850162000614565b6000830152506020620006b68482850162000744565b60208301525092915050565b600060608284031215620006d557600080fd5b620006e160606200080a565b90506000620006f38482850162000614565b6000830152506020620007098482850162000614565b602083015250604082015167ffffffffffffffff8111156200072a57600080fd5b62000738848285016200062b565b60408301525092915050565b6000815190506200075581620008f5565b92915050565b6000602082840312156200076e57600080fd5b60006200077e8482850162000658565b91505092915050565b6000602082840312156200079a57600080fd5b600082015167ffffffffffffffff811115620007b557600080fd5b620007c384828501620006c2565b91505092915050565b620007d7816200086d565b82525050565b6000604082019050620007f46000830185620007cc565b620008036020830184620007cc565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715620008345762000833620008bf565b5b8060405250919050565b600067ffffffffffffffff8211156200085c576200085b620008bf565b5b602082029050602081019050919050565b60006200087a8262000895565b9050919050565b60006200088e826200086d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565bfe5b620008cc816200086d565b8114620008d857600080fd5b50565b620008e68162000881565b8114620008f257600080fd5b50565b6200090081620008b5565b81146200090c57600080fd5b50565b610b5c806200091f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100db578063bf0de1cf146100f9578063f2fde38b14610103578063f93f515b1461011f5761007d565b80632954018c146100825780634ef501ac146100a0578063715018a6146100d1575b600080fd5b61008a61013d565b60405161009791906109e2565b60405180910390f35b6100ba60048036038101906100b5919061091e565b610163565b6040516100c89291906109b9565b60405180910390f35b6100d96101d7565b005b6100e3610344565b6040516100f09190610983565b60405180910390f35b61010161036d565b005b61011d600480360381019061011891906108cc565b61066d565b005b61012761085f565b60405161013491906109fd565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061017357600080fd5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6101df610885565b73ffffffffffffffffffffffffffffffffffffffff166101fd610344565b73ffffffffffffffffffffffffffffffffffffffff1614610286576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610375610885565b73ffffffffffffffffffffffffffffffffffffffff16610393610344565b73ffffffffffffffffffffffffffffffffffffffff161461041c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663087376956040518163ffffffff1660e01b815260040160206040518083038186803b15801561048657600080fd5b505afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906108f5565b905060005b6003805490508110156105e857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bccacee6003838154811061051b57fe5b906000526020600020906002020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003848154811061055a57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105a99291906109b9565b600060405180830381600087803b1580156105c357600080fd5b505af11580156105d7573d6000803e3d6000fd5b5050505080806001019150506104c3565b508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610622919061099e565b600060405180830381600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16ff5b610675610885565b73ffffffffffffffffffffffffffffffffffffffff16610693610344565b73ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610b016026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008135905061089c81610ad2565b92915050565b6000815190506108b181610ad2565b92915050565b6000813590506108c681610ae9565b92915050565b6000602082840312156108de57600080fd5b60006108ec8482850161088d565b91505092915050565b60006020828403121561090757600080fd5b6000610915848285016108a2565b91505092915050565b60006020828403121561093057600080fd5b600061093e848285016108b7565b91505092915050565b61095081610a54565b82525050565b61095f81610a18565b82525050565b61096e81610a66565b82525050565b61097d81610a8a565b82525050565b60006020820190506109986000830184610956565b92915050565b60006020820190506109b36000830184610947565b92915050565b60006040820190506109ce6000830185610956565b6109db6020830184610956565b9392505050565b60006020820190506109f76000830184610965565b92915050565b6000602082019050610a126000830184610974565b92915050565b6000610a2382610a2a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a5f82610aae565b9050919050565b6000610a7182610a78565b9050919050565b6000610a8382610a2a565b9050919050565b6000610a9582610a9c565b9050919050565b6000610aa782610a2a565b9050919050565b6000610ab982610ac0565b9050919050565b6000610acb82610a2a565b9050919050565b610adb81610a18565b8114610ae657600080fd5b50565b610af281610a4a565b8114610afd57600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220c8a4a99fc8f0eaf93918377d80098e6681f2640893ecd53d32f0812019e46d5664736f6c6343000706003360806040523480156200001157600080fd5b506040516200410d3803806200410d833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050506001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000c55750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a3000000000000000000000000000000000000000000000000000000000000081525090620001a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001695780820151818401526020810190506200014c565b50505050905090810190601f168015620001975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025057600080fd5b505afa15801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050613ded80620003206000396000f3fe60806040526004361061019c5760003560e01c8063ad5c4648116100ec578063d06ca61f1161008a578063f305d71911610064578063f305d719146112cc578063f887ea401461137a578063f93f515b146113bb578063fb3bdb41146113fc5761019c565b8063d06ca61f1461101f578063ded9382a14611104578063e8e33700146111e65761019c565b8063b6f9de95116100c6578063b6f9de9514610e1c578063baa2abde14610ec9578063c12c21c014610f9d578063c45a015514610fde5761019c565b8063ad5c464814610ccb578063ad615dec14610d0c578063af2979eb14610d6f5761019c565b80634a25d94a11610159578063791ac94711610133578063791ac947146109895780637ff36ab514610a4d57806385f8c25914610b4f5780638803dbee14610bb25761019c565b80634a25d94a146106d15780635b0d5984146107ea5780635c11d795146108c55761019c565b806302751cec146101a1578063054d50d41461025557806318cbafe5146102b85780631f00ca74146103d15780632195995c146104b657806338ed1739146105b8575b600080fd5b3480156101ad57600080fd5b50610238600480360360c08110156101c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fe565b604051808381526020018281526020019250505060405180910390f35b34801561026157600080fd5b506102a26004803603606081101561027857600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506115d8565b6040518082815260200191505060405180910390f35b3480156102c457600080fd5b5061037a600480360360a08110156102db57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561030c57600080fd5b82018360208201111561031e57600080fd5b8035906020019184602083028401116401000000008311171561034057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103bd5780820151818401526020810190506103a2565b505050509050019250505060405180910390f35b3480156103dd57600080fd5b5061045f600480360360408110156103f457600080fd5b81019080803590602001909291908035906020019064010000000081111561041b57600080fd5b82018360208201111561042d57600080fd5b8035906020019184602083028401116401000000008311171561044f57600080fd5b909192939192939050505061177a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104a2578082015181840152602081019050610487565b505050509050019250505060405180910390f35b3480156104c257600080fd5b5061059b60048036036101608110156104da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050611904565b604051808381526020018281526020019250505060405180910390f35b3480156105c457600080fd5b5061067a600480360360a08110156105db57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561060c57600080fd5b82018360208201111561061e57600080fd5b8035906020019184602083028401116401000000008311171561064057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106bd5780820151818401526020810190506106a2565b505050509050019250505060405180910390f35b3480156106dd57600080fd5b50610793600480360360a08110156106f457600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561072557600080fd5b82018360208201111561073757600080fd5b8035906020019184602083028401116401000000008311171561075957600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612401565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d65780820151818401526020810190506107bb565b505050509050019250505060405180910390f35b3480156107f657600080fd5b506108af600480360361014081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506124da565b6040518082815260200191505060405180910390f35b3480156108d157600080fd5b50610987600480360360a08110156108e857600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561091957600080fd5b82018360208201111561092b57600080fd5b8035906020019184602083028401116401000000008311171561094d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125b3565b005b34801561099557600080fd5b50610a4b600480360360a08110156109ac57600080fd5b810190808035906020019092919080359060200190929190803590602001906401000000008111156109dd57600080fd5b8201836020820111156109ef57600080fd5b80359060200191846020830284011164010000000083111715610a1157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061268a565b005b610af860048036036080811015610a6357600080fd5b810190808035906020019092919080359060200190640100000000811115610a8a57600080fd5b820183602082011115610a9c57600080fd5b80359060200191846020830284011164010000000083111715610abe57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612761565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610b3b578082015181840152602081019050610b20565b505050509050019250505060405180910390f35b348015610b5b57600080fd5b50610b9c60048036036060811015610b7257600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061283a565b6040518082815260200191505060405180910390f35b348015610bbe57600080fd5b50610c74600480360360a0811015610bd557600080fd5b81019080803590602001909291908035906020019092919080359060200190640100000000811115610c0657600080fd5b820183602082011115610c1857600080fd5b80359060200191846020830284011164010000000083111715610c3a57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612903565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610cb7578082015181840152602081019050610c9c565b505050509050019250505060405180910390f35b348015610cd757600080fd5b50610ce0613326565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d1857600080fd5b50610d5960048036036060811015610d2f57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506133d0565b6040518082815260200191505060405180910390f35b348015610d7b57600080fd5b50610e06600480360360c0811015610d9257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613499565b6040518082815260200191505060405180910390f35b610ec760048036036080811015610e3257600080fd5b810190808035906020019092919080359060200190640100000000811115610e5957600080fd5b820183602082011115610e6b57600080fd5b80359060200191846020830284011164010000000083111715610e8d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613572565b005b348015610ed557600080fd5b50610f80600480360360e0811015610eec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613649565b604051808381526020018281526020019250505060405180910390f35b348015610fa957600080fd5b50610fb2613723565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fea57600080fd5b50610ff3613749565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561102b57600080fd5b506110ad6004803603604081101561104257600080fd5b81019080803590602001909291908035906020019064010000000081111561106957600080fd5b82018360208201111561107b57600080fd5b8035906020019184602083028401116401000000008311171561109d57600080fd5b90919293919293905050506137f3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156110f05780820151818401526020810190506110d5565b505050509050019250505060405180910390f35b34801561111057600080fd5b506111c9600480360361014081101561112857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061397d565b604051808381526020018281526020019250505060405180910390f35b3480156111f257600080fd5b506112a8600480360361010081101561120a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a57565b60405180848152602001838152602001828152602001935050505060405180910390f35b611356600480360360c08110156112e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b33565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561138657600080fd5b5061138f613c0f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113c757600080fd5b506113d0613c35565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6114a76004803603608081101561141257600080fd5b81019080803590602001909291908035906020019064010000000081111561143957600080fd5b82018360208201111561144b57600080fd5b8035906020019184602083028401116401000000008311171561146d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c5b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156114ea5780820151818401526020810190506114cf565b505050509050019250505060405180910390f35b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561159d578082015181840152602081019050611582565b50505050905090810190601f1680156115ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663054d50d48585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561165d57600080fd5b505afa158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b810190808051906020019092919050505090509392505050565b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561173f578082015181840152602081019050611724565b50505050905090810190601f16801561176c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca748585856040518463ffffffff1660e01b815260040180848152602001806020018281038252848482818152602001925060200280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b15801561182657600080fd5b505afa15801561183a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561186457600080fd5b810190808051604051939291908464010000000082111561188457600080fd5b8382019150602082018581111561189a57600080fd5b82518660208202830111640100000000821117156118b757600080fd5b8083526020830192505050908051906020019060200280838360005b838110156118ee5780820151818401526020810190506118d3565b5050505090500160405250505090509392505050565b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119a3578082015181840152602081019050611988565b50505050905090810190601f1680156119d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060026000541415611a59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611aec57600080fd5b505afa158015611b00573d6000803e3d6000fd5b505050506040513d6020811015611b1657600080fd5b81019080805190602001909291905050509050600086866000818110611b3857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000878760018a8a905003818110611b6b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015611c7357600080fd5b505af1158015611c87573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cf457600080fd5b505afa158015611d08573d6000803e3d6000fd5b505050506040513d6020811015611d1e57600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d9a57600080fd5b505afa158015611dae573d6000803e3d6000fd5b505050506040513d6020811015611dc457600080fd5b8101908080519060200190929190505050905060006338ed173960e01b8d8d8d8d8a8d60405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fa0578082015181840152602081019050611f85565b50505050905090810190601f168015611fcd5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611fee57600080fd5b505af1158015612002573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561202c57600080fd5b810190808051604051939291908464010000000082111561204c57600080fd5b8382019150602082018581111561206257600080fd5b825186600182028301116401000000008211171561207f57600080fd5b8083526020830192505050908051906020019080838360005b838110156120b3578082015181840152602081019050612098565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156120fb57600080fd5b810190808051604051939291908464010000000082111561211b57600080fd5b8382019150602082018581111561213157600080fd5b825186602082028301116401000000008211171561214e57600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561218557808201518184015260208101905061216a565b505050509050016040525050509650600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d8787876122898a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561223f57600080fd5b505afa158015612253573d6000803e3d6000fd5b505050506040513d602081101561226957600080fd5b810190808051906020019092919050505089613d3490919063ffffffff16565b61233d888b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122f457600080fd5b505afa158015612308573d6000803e3d6000fd5b505050506040513d602081101561231e57600080fd5b8101908080519060200190929190505050613d3490919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b5050505050505050505060016000819055509695505050505050565b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561249f578082015181840152602081019050612484565b50505050905090810190601f1680156124cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561257857808201518184015260208101905061255d565b50505050905090810190601f1680156125a55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561264f578082015181840152602081019050612634565b50505050905090810190601f16801561267c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561272657808201518184015260208101905061270b565b50505050905090810190601f1680156127535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127ff5780820151818401526020810190506127e4565b50505050905090810190601f16801561282c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166385f8c2598585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156128bf57600080fd5b505afa1580156128d3573d6000803e3d6000fd5b505050506040513d60208110156128e957600080fd5b810190808051906020019092919050505090509392505050565b60606002600054141561297e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a1157600080fd5b505afa158015612a25573d6000803e3d6000fd5b505050506040513d6020811015612a3b57600080fd5b81019080805190602001909291905050509050600086866000818110612a5d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000878760018a8a905003818110612a9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015612b9857600080fd5b505af1158015612bac573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c1957600080fd5b505afa158015612c2d573d6000803e3d6000fd5b505050506040513d6020811015612c4357600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612cbf57600080fd5b505afa158015612cd3573d6000803e3d6000fd5b505050506040513d6020811015612ce957600080fd5b810190808051906020019092919050505090506000638803dbee60e01b8d8d8d8d8a8d60405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ec5578082015181840152602081019050612eaa565b50505050905090810190601f168015612ef25780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015612f1357600080fd5b505af1158015612f27573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612f5157600080fd5b8101908080516040519392919084640100000000821115612f7157600080fd5b83820191506020820185811115612f8757600080fd5b8251866001820283011164010000000082111715612fa457600080fd5b8083526020830192505050908051906020019080838360005b83811015612fd8578082015181840152602081019050612fbd565b50505050905090810190601f1680156130055780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561302057600080fd5b810190808051604051939291908464010000000082111561304057600080fd5b8382019150602082018581111561305657600080fd5b825186602082028301116401000000008211171561307357600080fd5b8083526020830192505050908051906020019060200280838360005b838110156130aa57808201518184015260208101905061308f565b505050509050016040525050509650600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d8787876131ae8a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561316457600080fd5b505afa158015613178573d6000803e3d6000fd5b505050506040513d602081101561318e57600080fd5b810190808051906020019092919050505089613d3490919063ffffffff16565b613262888b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561321957600080fd5b505afa15801561322d573d6000803e3d6000fd5b505050506040513d602081101561324357600080fd5b8101908080519060200190929190505050613d3490919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b5050505050505050505060016000819055509695505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561339057600080fd5b505afa1580156133a4573d6000803e3d6000fd5b505050506040513d60208110156133ba57600080fd5b8101908080519060200190929190505050905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad615dec8585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561345557600080fd5b505afa158015613469573d6000803e3d6000fd5b505050506040513d602081101561347f57600080fd5b810190808051906020019092919050505090509392505050565b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561353757808201518184015260208101905061351c565b50505050905090810190601f1680156135645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561360e5780820151818401526020810190506135f3565b50505050905090810190601f16801561363b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156136e85780820151818401526020810190506136cd565b50505050905090810190601f1680156137155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156137b357600080fd5b505afa1580156137c7573d6000803e3d6000fd5b505050506040513d60208110156137dd57600080fd5b8101908080519060200190929190505050905090565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f8585856040518463ffffffff1660e01b815260040180848152602001806020018281038252848482818152602001925060200280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b15801561389f57600080fd5b505afa1580156138b3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156138dd57600080fd5b81019080805160405193929190846401000000008211156138fd57600080fd5b8382019150602082018581111561391357600080fd5b825186602082028301116401000000008211171561393057600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561396757808201518184015260208101905061394c565b5050505090500160405250505090509392505050565b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a1c578082015181840152602081019050613a01565b50505050905090810190601f168015613a495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008060006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613af8578082015181840152602081019050613add565b50505050905090810190601f168015613b255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008060006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bd4578082015181840152602081019050613bb9565b50505050905090810190601f168015613c015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cf9578082015181840152602081019050613cde565b50505050905090810190601f168015613d265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082821115613dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fea2646970667358221220f4702812e2b9c2611ab2a11d82741c107f1c9a3d277e6a945db9eb8328b620f064736f6c6343000706003360806040523480156200001157600080fd5b5060405162003218380380620032188339818101604052810190620000379190620002c1565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000aa5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a300000000000000000000000000000000000000000000000000000000000008152509062000124576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200011b91906200036f565b60405180910390fd5b5081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001cf57600080fd5b505afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a919062000302565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000472565b600081519050620002a4816200043e565b92915050565b600081519050620002bb8162000458565b92915050565b60008060408385031215620002d557600080fd5b6000620002e58582860162000293565b9250506020620002f88582860162000293565b9150509250929050565b6000602082840312156200031557600080fd5b60006200032584828501620002aa565b91505092915050565b60006200033b8262000393565b6200034781856200039e565b935062000359818560208601620003f7565b62000364816200042d565b840191505092915050565b600060208201905081810360008301526200038b81846200032e565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000620003bc82620003d7565b9050919050565b6000620003d082620003af565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b8381101562000417578082015181840152602081019050620003fa565b8381111562000427576000848401525b50505050565b6000601f19601f8301169050919050565b6200044981620003af565b81146200045557600080fd5b50565b6200046381620003c3565b81146200046f57600080fd5b50565b612d9680620004826000396000f3fe6080604052600436106100705760003560e01c8063db3e21981161004e578063db3e219814610100578063f28c049814610130578063f887ea4014610160578063f93f515b1461018b57610070565b8063414bf38914610075578063c04b8d59146100a5578063c12c21c0146100d5575b600080fd5b61008f600480360381019061008a91906124d5565b6101b6565b60405161009c9190612ac0565b60405180910390f35b6100bf60048036038101906100ba9190612494565b61088a565b6040516100cc9190612ac0565b60405180910390f35b3480156100e157600080fd5b506100ea610f75565b6040516100f79190612a29565b60405180910390f35b61011a6004803603810190610115919061256a565b610f9b565b6040516101279190612ac0565b60405180910390f35b61014a60048036038101906101459190612529565b61166f565b6040516101579190612ac0565b60405180910390f35b34801561016c57600080fd5b50610175611d5a565b6040516101829190612910565b60405180910390f35b34801561019757600080fd5b506101a0611d80565b6040516101ad9190612a0e565b60405180910390f35b600060026000541415610231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401610296919061292b565b60206040518083038186803b1580156102ae57600080fd5b505afa1580156102c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e6919061242a565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686600001602081019061035d9190612401565b6040518463ffffffff1660e01b815260040161037b93929190612984565b600060405180830381600087803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b505050506000838036038101906103c091906124ff565b905081816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600063414bf38960e01b826040516024016104159190612a66565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000826000015173ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016104b39190612910565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050391906125be565b90506000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016105449190612910565b60206040518083038186803b15801561055c57600080fd5b505afa158015610570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059491906125be565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b815260040161061793929190612946565b600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061066e9190612453565b80602001905181019061068191906125be565b9550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d868960000160208101906106d59190612401565b8a60200160208101906106e89190612401565b610787896000015173ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b81526004016107289190612910565b60206040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077891906125be565b88611da690919063ffffffff16565b610826878b6020015173ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b81526004016107c89190612910565b60206040518083038186803b1580156107e057600080fd5b505afa1580156107f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081891906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b81526004016108469594939291906129bb565b600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b5050505050505050506001600081905550919050565b600060026000541415610905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b815260040161096a919061292b565b60206040518083038186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba919061242a565b9050600080610a1a8580600001906109d29190612adb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e29565b91509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401610a9f93929190612984565b600060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b50505050600085610add90612c65565b905083816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401610b529190612910565b60206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba291906125be565b905060008373ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401610bdf9190612910565b60206040518083038186803b158015610bf757600080fd5b505afa158015610c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2f91906125be565b9050600063c04b8d5960e01b84604051602401610c4c9190612a44565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610d2c93929190612946565b600060405180830381600087803b158015610d4657600080fd5b505af1158015610d5a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d839190612453565b806020019051810190610d9691906125be565b975050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d878787610e758a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401610e169190612910565b60206040518083038186803b158015610e2e57600080fd5b505afa158015610e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6691906125be565b88611da690919063ffffffff16565b610f10878b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401610eb29190612910565b60206040518083038186803b158015610eca57600080fd5b505afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0291906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b8152600401610f309594939291906129bb565b600060405180830381600087803b158015610f4a57600080fd5b505af1158015610f5e573d6000803e3d6000fd5b505050505050505050506001600081905550919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060026000541415611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b815260040161107b919061292b565b60206040518083038186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb919061242a565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168660000160208101906111429190612401565b6040518463ffffffff1660e01b815260040161116093929190612984565b600060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506000838036038101906111a59190612594565b905081816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600063db3e219860e01b826040516024016111fa9190612aa4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000826000015173ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016112989190612910565b60206040518083038186803b1580156112b057600080fd5b505afa1580156112c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e891906125be565b90506000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016113299190612910565b60206040518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906125be565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b81526004016113fc93929190612946565b600060405180830381600087803b15801561141657600080fd5b505af115801561142a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114539190612453565b80602001905181019061146691906125be565b9550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d868960000160208101906114ba9190612401565b8a60200160208101906114cd9190612401565b61156c896000015173ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b815260040161150d9190612910565b60206040518083038186803b15801561152557600080fd5b505afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d91906125be565b88611da690919063ffffffff16565b61160b878b6020015173ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b81526004016115ad9190612910565b60206040518083038186803b1580156115c557600080fd5b505afa1580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd91906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b815260040161162b9594939291906129bb565b600060405180830381600087803b15801561164557600080fd5b505af1158015611659573d6000803e3d6000fd5b5050505050505050506001600081905550919050565b6000600260005414156116ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b815260040161174f919061292b565b60206040518083038186803b15801561176757600080fd5b505afa15801561177b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179f919061242a565b90506000806117ff8580600001906117b79190612adb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e29565b91509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161188493929190612984565b600060405180830381600087803b15801561189e57600080fd5b505af11580156118b2573d6000803e3d6000fd5b505050506000856118c290612c78565b905083816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016119379190612910565b60206040518083038186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198791906125be565b905060008473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016119c49190612910565b60206040518083038186803b1580156119dc57600080fd5b505afa1580156119f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1491906125be565b9050600063f28c049860e01b84604051602401611a319190612a82565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611b1193929190612946565b600060405180830381600087803b158015611b2b57600080fd5b505af1158015611b3f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b689190612453565b806020019051810190611b7b91906125be565b975050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d878688611c5a8973ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401611bfb9190612910565b60206040518083038186803b158015611c1357600080fd5b505afa158015611c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4b91906125be565b88611da690919063ffffffff16565b611cf5878c73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401611c979190612910565b60206040518083038186803b158015611caf57600080fd5b505afa158015611cc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce791906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b8152600401611d159594939291906129bb565b600060405180830381600087803b158015611d2f57600080fd5b505af1158015611d43573d6000803e3d6000fd5b505050505050505050506001600081905550919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082821115611e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080611e40600084611e6090919063ffffffff16565b9150611e59601484510384611e6090919063ffffffff16565b9050915091565b600081601483011015611edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f746f416464726573735f6f766572666c6f77000000000000000000000000000081525060200191505060405180910390fd5b6014820183511015611f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f416464726573735f6f75744f66426f756e6473000000000000000000000081525060200191505060405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6000611f8c611f8784612b63565b612b32565b905082815260208101848484011115611fa457600080fd5b611faf848285612caf565b509392505050565b6000611fca611fc584612b63565b612b32565b905082815260208101848484011115611fe257600080fd5b611fed848285612cbe565b509392505050565b60008135905061200481612d04565b92915050565b60008151905061201981612d04565b92915050565b600082601f83011261203057600080fd5b8135612040848260208601611f79565b91505092915050565b600082601f83011261205a57600080fd5b815161206a848260208601611fb7565b91505092915050565b600060a0828403121561208557600080fd5b81905092915050565b600060a082840312156120a057600080fd5b6120aa60a0612b32565b9050600082013567ffffffffffffffff8111156120c657600080fd5b6120d28482850161201f565b60008301525060206120e684828501611ff5565b60208301525060406120fa848285016123d7565b604083015250606061210e848285016123d7565b6060830152506080612122848285016123d7565b60808301525092915050565b6000610100828403121561214157600080fd5b81905092915050565b6000610100828403121561215d57600080fd5b612168610100612b32565b9050600061217884828501611ff5565b600083015250602061218c84828501611ff5565b60208301525060406121a0848285016123c2565b60408301525060606121b484828501611ff5565b60608301525060806121c8848285016123d7565b60808301525060a06121dc848285016123d7565b60a08301525060c06121f0848285016123d7565b60c08301525060e0612204848285016123ad565b60e08301525092915050565b600060a0828403121561222257600080fd5b81905092915050565b600060a0828403121561223d57600080fd5b61224760a0612b32565b9050600082013567ffffffffffffffff81111561226357600080fd5b61226f8482850161201f565b600083015250602061228384828501611ff5565b6020830152506040612297848285016123d7565b60408301525060606122ab848285016123d7565b60608301525060806122bf848285016123d7565b60808301525092915050565b600061010082840312156122de57600080fd5b81905092915050565b600061010082840312156122fa57600080fd5b612305610100612b32565b9050600061231584828501611ff5565b600083015250602061232984828501611ff5565b602083015250604061233d848285016123c2565b604083015250606061235184828501611ff5565b6060830152506080612365848285016123d7565b60808301525060a0612379848285016123d7565b60a08301525060c061238d848285016123d7565b60c08301525060e06123a1848285016123ad565b60e08301525092915050565b6000813590506123bc81612d1b565b92915050565b6000813590506123d181612d32565b92915050565b6000813590506123e681612d49565b92915050565b6000815190506123fb81612d49565b92915050565b60006020828403121561241357600080fd5b600061242184828501611ff5565b91505092915050565b60006020828403121561243c57600080fd5b600061244a8482850161200a565b91505092915050565b60006020828403121561246557600080fd5b600082015167ffffffffffffffff81111561247f57600080fd5b61248b84828501612049565b91505092915050565b6000602082840312156124a657600080fd5b600082013567ffffffffffffffff8111156124c057600080fd5b6124cc84828501612073565b91505092915050565b600061010082840312156124e857600080fd5b60006124f68482850161212e565b91505092915050565b6000610100828403121561251257600080fd5b60006125208482850161214a565b91505092915050565b60006020828403121561253b57600080fd5b600082013567ffffffffffffffff81111561255557600080fd5b61256184828501612210565b91505092915050565b6000610100828403121561257d57600080fd5b600061258b848285016122cb565b91505092915050565b600061010082840312156125a757600080fd5b60006125b5848285016122e7565b91505092915050565b6000602082840312156125d057600080fd5b60006125de848285016123ec565b91505092915050565b6125f081612c0b565b82525050565b6125ff81612bc0565b82525050565b61260e81612bc0565b82525050565b600061261f82612b93565b6126298185612b9e565b9350612639818560208601612cbe565b61264281612cf3565b840191505092915050565b600061265882612b93565b6126628185612baf565b9350612672818560208601612cbe565b61267b81612cf3565b840191505092915050565b61268f81612c1d565b82525050565b61269e81612c41565b82525050565b600060a08301600083015184820360008601526126c18282612614565b91505060208301516126d660208601826125f6565b5060408301516126e960408601826128f2565b5060608301516126fc60608601826128f2565b50608083015161270f60808601826128f2565b508091505092915050565b6101008201600082015161273160008501826125f6565b50602082015161274460208501826125f6565b50604082015161275760408501826128e3565b50606082015161276a60608501826125f6565b50608082015161277d60808501826128f2565b5060a082015161279060a08501826128f2565b5060c08201516127a360c08501826128f2565b5060e08201516127b660e08501826128d4565b50505050565b600060a08301600083015184820360008601526127d98282612614565b91505060208301516127ee60208601826125f6565b50604083015161280160408601826128f2565b50606083015161281460608601826128f2565b50608083015161282760808601826128f2565b508091505092915050565b6101008201600082015161284960008501826125f6565b50602082015161285c60208501826125f6565b50604082015161286f60408501826128e3565b50606082015161288260608501826125f6565b50608082015161289560808501826128f2565b5060a08201516128a860a08501826128f2565b5060c08201516128bb60c08501826128f2565b5060e08201516128ce60e08501826128d4565b50505050565b6128dd81612bd2565b82525050565b6128ec81612bf2565b82525050565b6128fb81612c01565b82525050565b61290a81612c01565b82525050565b60006020820190506129256000830184612605565b92915050565b600060208201905061294060008301846125e7565b92915050565b600060608201905061295b60008301866125e7565b6129686020830185612605565b818103604083015261297a818461264d565b9050949350505050565b60006060820190506129996000830186612605565b6129a66020830185612605565b6129b36040830184612605565b949350505050565b600060a0820190506129d06000830188612605565b6129dd6020830187612605565b6129ea6040830186612605565b6129f76060830185612901565b612a046080830184612901565b9695505050505050565b6000602082019050612a236000830184612686565b92915050565b6000602082019050612a3e6000830184612695565b92915050565b60006020820190508181036000830152612a5e81846126a4565b905092915050565b600061010082019050612a7c600083018461271a565b92915050565b60006020820190508181036000830152612a9c81846127bc565b905092915050565b600061010082019050612aba6000830184612832565b92915050565b6000602082019050612ad56000830184612901565b92915050565b60008083356001602003843603038112612af457600080fd5b80840192508235915067ffffffffffffffff821115612b1257600080fd5b602083019250600182023603831315612b2a57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff82111715612b5957612b58612cf1565b5b8060405250919050565b600067ffffffffffffffff821115612b7e57612b7d612cf1565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612bcb82612bd2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b6000612c1682612c8b565b9050919050565b6000612c2882612c2f565b9050919050565b6000612c3a82612bd2565b9050919050565b6000612c4c82612c53565b9050919050565b6000612c5e82612bd2565b9050919050565b6000612c71368361208e565b9050919050565b6000612c84368361222b565b9050919050565b6000612c9682612c9d565b9050919050565b6000612ca882612bd2565b9050919050565b82818337600083830152505050565b60005b83811015612cdc578082015181840152602081019050612cc1565b83811115612ceb576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b612d0d81612bc0565b8114612d1857600080fd5b50565b612d2481612bd2565b8114612d2f57600080fd5b50565b612d3b81612bf2565b8114612d4657600080fd5b50565b612d5281612c01565b8114612d5d57600080fd5b5056fea2646970667358221220104dcb4ec95af4f61c1217492b5f07f0c075378de586394154a42f23ee4027d664736f6c63430007060033608060405234801561001057600080fd5b5060405161154d38038061154d8339818101604052604081101561003357600080fd5b8101908080519060200190929190805190602001909291905050506001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156100c05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a300000000000000000000000000000000000000000000000000000000000008152509061019c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610161578082015181840152602081019050610146565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561024657600080fd5b505afa15801561025a573d6000803e3d6000fd5b505050506040513d602081101561027057600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061123a806103136000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063a6417ed611610066578063a6417ed6146101d6578063bb7b8b8014610228578063c12c21c014610246578063c66106571461027a578063f93f515b146102d257610093565b806307211ef714610098578063218751b2146100f45780633df02124146101285780635e0d443f1461017a575b600080fd5b6100de600480360360608110156100ae57600080fd5b810190808035600f0b90602001909291908035600f0b906020019092919080359060200190929190505050610306565b6040518082815260200191505060405180910390f35b6100fc6103d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101786004803603608081101561013e57600080fd5b810190808035600f0b90602001909291908035600f0b906020019092919080359060200190929190803590602001909291905050506103fb565b005b6101c06004803603606081101561019057600080fd5b810190808035600f0b90602001909291908035600f0b906020019092919080359060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610226600480360360808110156101ec57600080fd5b810190808035600f0b90602001909291908035600f0b90602001909291908035906020019092919080359060200190929190505050610efd565b005b610230610fd4565b6040518082815260200191505060405180910390f35b61024e61107e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102a66004803603602081101561029057600080fd5b81019080803590602001909291905050506110a4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102da61115b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307211ef78585856040518463ffffffff1660e01b81526004018084600f0b815260200183600f0b8152602001828152602001935050505060206040518083038186803b15801561039157600080fd5b505afa1580156103a5573d6000803e3d6000fd5b505050506040513d60208110156103bb57600080fd5b810190808051906020019092919050505090509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000541415610474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561050757600080fd5b505afa15801561051b573d6000803e3d6000fd5b505050506040513d602081101561053157600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c661065787600f0b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156105bc57600080fd5b505afa1580156105d0573d6000803e3d6000fd5b505050506040513d60208110156105e657600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c661065787600f0b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561067157600080fd5b505afa158015610685573d6000803e3d6000fd5b505050506040513d602081101561069b57600080fd5b81019080805190602001909291905050509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561079757600080fd5b505af11580156107ab573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561081857600080fd5b505afa15801561082c573d6000803e3d6000fd5b505050506040513d602081101561084257600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156108be57600080fd5b505afa1580156108d2573d6000803e3d6000fd5b505050506040513d60208110156108e857600080fd5b810190808051906020019092919050505090506000633df0212460e01b8a8a8a8a6040516024018085600f0b815260200184600f0b8152602001838152602001828152602001945050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a7d578082015181840152602081019050610a62565b50505050905090810190601f168015610aaa5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610b0957600080fd5b8101908080516040519392919084640100000000821115610b2957600080fd5b83820191506020820185811115610b3f57600080fd5b8251866001820283011164010000000082111715610b5c57600080fd5b8083526020830192505050908051906020019080838360005b83811015610b90578082015181840152602081019050610b75565b50505050905090810190601f168015610bbd5780820380516001836020036101000a031916815260200191505b5060405250505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d878787610cba8a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c7057600080fd5b505afa158015610c84573d6000803e3d6000fd5b505050506040513d6020811015610c9a57600080fd5b81019080805190602001909291905050508961118190919063ffffffff16565b610d6e888b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2557600080fd5b505afa158015610d39573d6000803e3d6000fd5b505050506040513d6020811015610d4f57600080fd5b810190808051906020019092919050505061118190919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610e0257600080fd5b505af1158015610e16573d6000803e3d6000fd5b50505050505050505050600160008190555050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e0d443f8585856040518463ffffffff1660e01b81526004018084600f0b815260200183600f0b8152602001828152602001935050505060206040518083038186803b158015610eb957600080fd5b505afa158015610ecd573d6000803e3d6000fd5b505050506040513d6020811015610ee357600080fd5b810190808051906020019092919050505090509392505050565b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f99578082015181840152602081019050610f7e565b50505050905090810190601f168015610fc65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb7b8b806040518163ffffffff1660e01b815260040160206040518083038186803b15801561103e57600080fd5b505afa158015611052573d6000803e3d6000fd5b505050506040513d602081101561106857600080fd5b8101908080519060200190929190505050905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c6610657836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b81019080805190602001909291905050509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828211156111f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fea264697066735822122011cb5d16956d7ae548718d38c397f75b2f2034c66ed6609c8bb5d6264d55e13e64736f6c6343000706003360806040523480156200001157600080fd5b5060405162002e7338038062002e73833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050506001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000c55750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a3000000000000000000000000000000000000000000000000000000000000081525090620001a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001695780820151818401526020810190506200014c565b50505050905090810190601f168015620001975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025057600080fd5b505afa15801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037757600080fd5b505afa1580156200038c573d6000803e3d6000fd5b505050506040513d6020811015620003a357600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637dd0ba82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060006040518083038186803b158015620004a057600080fd5b505afa158015620004b5573d6000803e3d6000fd5b5050505050506129a880620004cb6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806370a08231116100b8578063c12c21c01161007c578063c12c21c0146105dc578063d0e30db014610610578063dd62ed3e1461062e578063e63697c8146106a6578063f93f515b14610712578063fc0c546a1461074657610136565b806370a082311461043d57806395d89b411461049557806399530b0614610518578063a9059cbb14610536578063b6b55f251461059a57610136565b80632e1a7d4d116100ff5780632e1a7d4d14610326578063313ce5671461036857806333303f8e146103895780633ccfd60b146103bd5780636e553f65146103db57610136565b8062f714ce1461013b57806306fdde031461019d578063095ea7b31461022057806318160ddd1461028457806323b872dd146102a2575b600080fd5b6101876004803603604081101561015157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061077a565b6040518082815260200191505060405180910390f35b6101a561088b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026c6004803603604081101561023657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109f3565b60405180821515815260200191505060405180910390f35b61028c6109ff565b6040518082815260200191505060405180910390f35b61030e600480360360608110156102b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa9565b60405180821515815260200191505060405180910390f35b6103526004803603602081101561033c57600080fd5b8101908080359060200190929190505050610b82565b6040518082815260200191505060405180910390f35b610370610c92565b604051808260ff16815260200191505060405180910390f35b610391610d3c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c5610d62565b6040518082815260200191505060405180910390f35b610427600480360360408110156103f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e65565b6040518082815260200191505060405180910390f35b61047f6004803603602081101561045357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f76565b6040518082815260200191505060405180910390f35b61049d611043565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104dd5780820151818401526020810190506104c2565b50505050905090810190601f16801561050a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105206111ab565b6040518082815260200191505060405180910390f35b6105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611255565b60405180821515815260200191505060405180910390f35b6105c6600480360360208110156105b057600080fd5b810190808035906020019092919050505061132e565b6040518082815260200191505060405180910390f35b6105e461143e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610618611464565b6040518082815260200191505060405180910390f35b6106906004803603604081101561064457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611567565b6040518082815260200191505060405180910390f35b6106fc600480360360608110156106bc57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611653565b6040518082815260200191505060405180910390f35b61071a611854565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61074e61187a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600260005414156107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555061087b632e1a7d4d60e01b8460405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b9050600160008190555092915050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156108f557600080fd5b505afa158015610909573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561093357600080fd5b810190808051604051939291908464010000000082111561095357600080fd5b8382019150602082018581111561096957600080fd5b825186600182028301116401000000008211171561098657600080fd5b8083526020830192505050908051906020019080838360005b838110156109ba57808201518184015260208101905061099f565b50505050905090810190601f1680156109e75780820380516001836020036101000a031916815260200191505b50604052505050905090565b60006001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d6020811015610a9357600080fd5b8101908080519060200190929190505050905090565b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b47578082015181840152602081019050610b2c565b50505050905090810190601f168015610b745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600060026000541415610bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550610c83632e1a7d4d60e01b8360405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b90506001600081905550919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cfc57600080fd5b505afa158015610d10573d6000803e3d6000fd5b505050506040513d6020811015610d2657600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060026000541415610ddd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550610e58633ccfd60b60e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b9050600160008190555090565b600060026000541415610ee0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550610f6663b6b55f2560e01b8460405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612036565b9050600160008190555092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561100157600080fd5b505afa158015611015573d6000803e3d6000fd5b505050506040513d602081101561102b57600080fd5b81019080805190602001909291905050509050919050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156110ad57600080fd5b505afa1580156110c1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156110eb57600080fd5b810190808051604051939291908464010000000082111561110b57600080fd5b8382019150602082018581111561112157600080fd5b825186600182028301116401000000008211171561113e57600080fd5b8083526020830192505050908051906020019080838360005b83811015611172578082015181840152602081019050611157565b50505050905090810190601f16801561119f5780820380516001836020036101000a031916815260200191505b50604052505050905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b815260040160206040518083038186803b15801561121557600080fd5b505afa158015611229573d6000803e3d6000fd5b505050506040513d602081101561123f57600080fd5b8101908080519060200190929190505050905090565b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112f35780820151818401526020810190506112d8565b50505050905090810190601f1680156113205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600260005414156113a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555061142f63b6b55f2560e01b8360405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612036565b90506001600081905550919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260005414156114df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555061155a63d0e30db060e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612036565b9050600160008190555090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561161057600080fd5b505afa158015611624573d6000803e3d6000fd5b505050506040513d602081101561163a57600080fd5b8101908080519060200190929190505050905092915050565b6000600260005414156116ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d602081101561178b57600080fd5b8101908080519060200190929190505050905061184263e63697c860e01b868386604051602401808481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b91505060016000819055509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561192c57600080fd5b505afa158015611940573d6000803e3d6000fd5b505050506040513d602081101561195657600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119f457600080fd5b505afa158015611a08573d6000803e3d6000fd5b505050506040513d6020811015611a1e57600080fd5b810190808051906020019092919050505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611abc57600080fd5b505afa158015611ad0573d6000803e3d6000fd5b505050506040513d6020811015611ae657600080fd5b81019080805190602001909291905050509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611be3578082015181840152602081019050611bc8565b50505050905090810190601f168015611c105780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611c3157600080fd5b505af1158015611c45573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015611c6f57600080fd5b8101908080516040519392919084640100000000821115611c8f57600080fd5b83820191506020820185811115611ca557600080fd5b8251866001820283011164010000000082111715611cc257600080fd5b8083526020830192505050908051906020019080838360005b83811015611cf6578082015181840152602081019050611cdb565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b506040525050508060200190516020811015611d3e57600080fd5b81019080805190602001909291905050509350600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eac600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e6257600080fd5b505afa158015611e76573d6000803e3d6000fd5b505050506040513d6020811015611e8c57600080fd5b8101908080519060200190929190505050886128ef90919063ffffffff16565b611f8287600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f3957600080fd5b505afa158015611f4d573d6000803e3d6000fd5b505050506040513d6020811015611f6357600080fd5b81019080805190602001909291905050506128ef90919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b50505050505050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120c257600080fd5b505afa1580156120d6573d6000803e3d6000fd5b505050506040513d60208110156120ec57600080fd5b81019080805190602001909291905050509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122ad57600080fd5b505afa1580156122c1573d6000803e3d6000fd5b505050506040513d60208110156122d757600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d602081101561239f57600080fd5b81019080805190602001909291905050509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561249c578082015181840152602081019050612481565b50505050905090810190601f1680156124c95780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156124ea57600080fd5b505af11580156124fe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561252857600080fd5b810190808051604051939291908464010000000082111561254857600080fd5b8382019150602082018581111561255e57600080fd5b825186600182028301116401000000008211171561257b57600080fd5b8083526020830192505050908051906020019080838360005b838110156125af578082015181840152602081019050612594565b50505050905090810190601f1680156125dc5780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156125f757600080fd5b81019080805190602001909291905050509350600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d84600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612765600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561271b57600080fd5b505afa15801561272f573d6000803e3d6000fd5b505050506040513d602081101561274557600080fd5b8101908080519060200190929190505050886128ef90919063ffffffff16565b61283b87600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156127f257600080fd5b505afa158015612806573d6000803e3d6000fd5b505050506040513d602081101561281c57600080fd5b81019080805190602001909291905050506128ef90919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156128cf57600080fd5b505af11580156128e3573d6000803e3d6000fd5b50505050505050919050565b600082821115612967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fea2646970667358221220d2f321bdb645bf41687efdf572eedf989e74ee2888a90975030d1b786a3ca8ce64736f6c63430007060033",
157
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100db578063bf0de1cf146100f9578063f2fde38b14610103578063f93f515b1461011f5761007d565b80632954018c146100825780634ef501ac146100a0578063715018a6146100d1575b600080fd5b61008a61013d565b60405161009791906109e2565b60405180910390f35b6100ba60048036038101906100b5919061091e565b610163565b6040516100c89291906109b9565b60405180910390f35b6100d96101d7565b005b6100e3610344565b6040516100f09190610983565b60405180910390f35b61010161036d565b005b61011d600480360381019061011891906108cc565b61066d565b005b61012761085f565b60405161013491906109fd565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061017357600080fd5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6101df610885565b73ffffffffffffffffffffffffffffffffffffffff166101fd610344565b73ffffffffffffffffffffffffffffffffffffffff1614610286576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610375610885565b73ffffffffffffffffffffffffffffffffffffffff16610393610344565b73ffffffffffffffffffffffffffffffffffffffff161461041c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663087376956040518163ffffffff1660e01b815260040160206040518083038186803b15801561048657600080fd5b505afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906108f5565b905060005b6003805490508110156105e857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bccacee6003838154811061051b57fe5b906000526020600020906002020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003848154811061055a57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105a99291906109b9565b600060405180830381600087803b1580156105c357600080fd5b505af11580156105d7573d6000803e3d6000fd5b5050505080806001019150506104c3565b508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610622919061099e565b600060405180830381600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16ff5b610675610885565b73ffffffffffffffffffffffffffffffffffffffff16610693610344565b73ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610b016026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008135905061089c81610ad2565b92915050565b6000815190506108b181610ad2565b92915050565b6000813590506108c681610ae9565b92915050565b6000602082840312156108de57600080fd5b60006108ec8482850161088d565b91505092915050565b60006020828403121561090757600080fd5b6000610915848285016108a2565b91505092915050565b60006020828403121561093057600080fd5b600061093e848285016108b7565b91505092915050565b61095081610a54565b82525050565b61095f81610a18565b82525050565b61096e81610a66565b82525050565b61097d81610a8a565b82525050565b60006020820190506109986000830184610956565b92915050565b60006020820190506109b36000830184610947565b92915050565b60006040820190506109ce6000830185610956565b6109db6020830184610956565b9392505050565b60006020820190506109f76000830184610965565b92915050565b6000602082019050610a126000830184610974565b92915050565b6000610a2382610a2a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a5f82610aae565b9050919050565b6000610a7182610a78565b9050919050565b6000610a8382610a2a565b9050919050565b6000610a9582610a9c565b9050919050565b6000610aa782610a2a565b9050919050565b6000610ab982610ac0565b9050919050565b6000610acb82610a2a565b9050919050565b610adb81610a18565b8114610ae657600080fd5b50565b610af281610a4a565b8114610afd57600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220c8a4a99fc8f0eaf93918377d80098e6681f2640893ecd53d32f0812019e46d5664736f6c63430007060033",
158
+ "linkReferences": {},
159
+ "deployedLinkReferences": {}
160
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/d0fce7b1a0eed0fda407ed2afeba4b69.json"
4
+ }