@d8x/perpetuals-sdk 0.7.7 → 0.7.8

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 (165) hide show
  1. package/dist/cjs/abi/IPyth.json +471 -0
  2. package/dist/cjs/abi/OracleFactory.json +457 -0
  3. package/dist/cjs/accountTrade.js +134 -243
  4. package/dist/cjs/accountTrade.js.map +1 -1
  5. package/dist/cjs/brokerTool.js +144 -290
  6. package/dist/cjs/brokerTool.js.map +1 -1
  7. package/dist/cjs/config/priceFeedConfig.json +1 -1
  8. package/dist/cjs/contracts/IPyth.d.ts +234 -0
  9. package/dist/cjs/contracts/IPyth.js +3 -0
  10. package/dist/cjs/contracts/IPyth.js.map +1 -0
  11. package/dist/cjs/contracts/OracleFactory.d.ts +288 -0
  12. package/dist/cjs/contracts/OracleFactory.js +3 -0
  13. package/dist/cjs/contracts/OracleFactory.js.map +1 -0
  14. package/dist/cjs/contracts/factories/ERC20__factory.js +9 -12
  15. package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
  16. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +9 -12
  17. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  18. package/dist/cjs/contracts/factories/IPyth__factory.d.ts +367 -0
  19. package/dist/cjs/contracts/factories/IPyth__factory.js +489 -0
  20. package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -0
  21. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +9 -12
  22. package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  23. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +9 -12
  24. package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  25. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +9 -12
  26. package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  27. package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +361 -0
  28. package/dist/cjs/contracts/factories/OracleFactory__factory.js +475 -0
  29. package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -0
  30. package/dist/cjs/contracts/factories/ShareToken__factory.js +9 -12
  31. package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
  32. package/dist/cjs/contracts/factories/index.d.ts +2 -0
  33. package/dist/cjs/contracts/factories/index.js +5 -1
  34. package/dist/cjs/contracts/factories/index.js.map +1 -1
  35. package/dist/cjs/contracts/index.d.ts +4 -0
  36. package/dist/cjs/contracts/index.js +6 -2
  37. package/dist/cjs/contracts/index.js.map +1 -1
  38. package/dist/cjs/d8XMath.js +65 -66
  39. package/dist/cjs/d8XMath.js.map +1 -1
  40. package/dist/cjs/index.d.ts +2 -1
  41. package/dist/cjs/index.js +14 -12
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs/liquidatorTool.js +80 -137
  44. package/dist/cjs/liquidatorTool.js.map +1 -1
  45. package/dist/cjs/liquidityProviderTool.js +33 -65
  46. package/dist/cjs/liquidityProviderTool.js.map +1 -1
  47. package/dist/cjs/marketData.js +635 -978
  48. package/dist/cjs/marketData.js.map +1 -1
  49. package/dist/cjs/nodeSDKTypes.js +10 -22
  50. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  51. package/dist/cjs/orderReferrerTool.js +200 -323
  52. package/dist/cjs/orderReferrerTool.js.map +1 -1
  53. package/dist/cjs/perpetualDataHandler.js +404 -550
  54. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  55. package/dist/cjs/perpetualEventHandler.js +129 -190
  56. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  57. package/dist/cjs/priceFeeds.js +223 -335
  58. package/dist/cjs/priceFeeds.js.map +1 -1
  59. package/dist/cjs/traderDigests.js +20 -23
  60. package/dist/cjs/traderDigests.js.map +1 -1
  61. package/dist/cjs/traderInterface.js +54 -87
  62. package/dist/cjs/traderInterface.js.map +1 -1
  63. package/dist/cjs/triangulator.js +34 -38
  64. package/dist/cjs/triangulator.js.map +1 -1
  65. package/dist/cjs/utils.js +18 -32
  66. package/dist/cjs/utils.js.map +1 -1
  67. package/dist/cjs/version.d.ts +1 -1
  68. package/dist/cjs/version.js +1 -1
  69. package/dist/cjs/writeAccessHandler.js +78 -112
  70. package/dist/cjs/writeAccessHandler.js.map +1 -1
  71. package/dist/esm/abi/IPyth.json +471 -0
  72. package/dist/esm/abi/OracleFactory.json +457 -0
  73. package/dist/esm/accountTrade.js +126 -237
  74. package/dist/esm/accountTrade.js.map +1 -1
  75. package/dist/esm/brokerTool.js +136 -284
  76. package/dist/esm/brokerTool.js.map +1 -1
  77. package/dist/esm/config/priceFeedConfig.json +1 -1
  78. package/dist/esm/contracts/IPyth.d.ts +234 -0
  79. package/dist/esm/contracts/IPyth.js +2 -0
  80. package/dist/esm/contracts/IPyth.js.map +1 -0
  81. package/dist/esm/contracts/OracleFactory.d.ts +288 -0
  82. package/dist/esm/contracts/OracleFactory.js +2 -0
  83. package/dist/esm/contracts/OracleFactory.js.map +1 -0
  84. package/dist/esm/contracts/factories/ERC20__factory.js +8 -12
  85. package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
  86. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +8 -12
  87. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  88. package/dist/esm/contracts/factories/IPyth__factory.d.ts +367 -0
  89. package/dist/esm/contracts/factories/IPyth__factory.js +485 -0
  90. package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -0
  91. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +8 -12
  92. package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
  93. package/dist/esm/contracts/factories/LimitOrderBook__factory.js +8 -12
  94. package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
  95. package/dist/esm/contracts/factories/MockTokenSwap__factory.js +8 -12
  96. package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
  97. package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +361 -0
  98. package/dist/esm/contracts/factories/OracleFactory__factory.js +471 -0
  99. package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -0
  100. package/dist/esm/contracts/factories/ShareToken__factory.js +8 -12
  101. package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
  102. package/dist/esm/contracts/factories/index.d.ts +2 -0
  103. package/dist/esm/contracts/factories/index.js +2 -0
  104. package/dist/esm/contracts/factories/index.js.map +1 -1
  105. package/dist/esm/contracts/index.d.ts +4 -0
  106. package/dist/esm/contracts/index.js +2 -0
  107. package/dist/esm/contracts/index.js.map +1 -1
  108. package/dist/esm/d8XMath.js +63 -64
  109. package/dist/esm/d8XMath.js.map +1 -1
  110. package/dist/esm/index.d.ts +2 -1
  111. package/dist/esm/index.js +2 -1
  112. package/dist/esm/index.js.map +1 -1
  113. package/dist/esm/liquidatorTool.js +77 -136
  114. package/dist/esm/liquidatorTool.js.map +1 -1
  115. package/dist/esm/liquidityProviderTool.js +29 -63
  116. package/dist/esm/liquidityProviderTool.js.map +1 -1
  117. package/dist/esm/marketData.js +626 -971
  118. package/dist/esm/marketData.js.map +1 -1
  119. package/dist/esm/nodeSDKTypes.js +36 -48
  120. package/dist/esm/nodeSDKTypes.js.map +1 -1
  121. package/dist/esm/orderReferrerTool.js +194 -319
  122. package/dist/esm/orderReferrerTool.js.map +1 -1
  123. package/dist/esm/perpetualDataHandler.js +394 -542
  124. package/dist/esm/perpetualDataHandler.js.map +1 -1
  125. package/dist/esm/perpetualEventHandler.js +126 -188
  126. package/dist/esm/perpetualEventHandler.js.map +1 -1
  127. package/dist/esm/priceFeeds.js +218 -332
  128. package/dist/esm/priceFeeds.js.map +1 -1
  129. package/dist/esm/traderDigests.js +15 -19
  130. package/dist/esm/traderDigests.js.map +1 -1
  131. package/dist/esm/traderInterface.js +48 -83
  132. package/dist/esm/traderInterface.js.map +1 -1
  133. package/dist/esm/triangulator.js +34 -39
  134. package/dist/esm/triangulator.js.map +1 -1
  135. package/dist/esm/utils.js +16 -30
  136. package/dist/esm/utils.js.map +1 -1
  137. package/dist/esm/version.d.ts +1 -1
  138. package/dist/esm/version.js +1 -1
  139. package/dist/esm/version.js.map +1 -1
  140. package/dist/esm/writeAccessHandler.js +69 -105
  141. package/dist/esm/writeAccessHandler.js.map +1 -1
  142. package/package.json +1 -1
  143. package/src/abi/IPyth.json +471 -0
  144. package/src/abi/OracleFactory.json +457 -0
  145. package/src/accountTrade.ts +1 -6
  146. package/src/config/priceFeedConfig.json +1 -1
  147. package/src/contracts/IPyth.ts +571 -0
  148. package/src/contracts/OracleFactory.ts +708 -0
  149. package/src/contracts/factories/IPyth__factory.ts +489 -0
  150. package/src/contracts/factories/{zkevmTestnet/ShareToken__factory.ts → OracleFactory__factory.ts} +222 -206
  151. package/src/contracts/factories/index.ts +2 -0
  152. package/src/contracts/index.ts +4 -0
  153. package/src/index.ts +2 -0
  154. package/src/orderReferrerTool.ts +1 -3
  155. package/src/priceFeeds.ts +1 -1
  156. package/src/version.ts +1 -1
  157. package/src/contracts/factories/zkevmTestnet/IPerpetualManager__factory.ts +0 -5804
  158. package/src/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.ts +0 -263
  159. package/src/contracts/factories/zkevmTestnet/LimitOrderBook__factory.ts +0 -1131
  160. package/src/contracts/factories/zkevmTestnet/index.ts +0 -7
  161. package/src/contracts/zkevmTestnet/IPerpetualManager.ts +0 -7109
  162. package/src/contracts/zkevmTestnet/LimitOrderBook.ts +0 -1341
  163. package/src/contracts/zkevmTestnet/LimitOrderBookFactory.ts +0 -472
  164. package/src/contracts/zkevmTestnet/ShareToken.ts +0 -695
  165. package/src/contracts/zkevmTestnet/index.ts +0 -7
@@ -1,4 +1,3 @@
1
- import { __awaiter, __extends, __generator } from "tslib";
2
1
  import { floatToDec18, floatToDecN } from "./d8XMath";
3
2
  import PerpetualDataHandler from "./perpetualDataHandler";
4
3
  import WriteAccessHandler from "./writeAccessHandler";
@@ -7,8 +6,7 @@ import WriteAccessHandler from "./writeAccessHandler";
7
6
  * smart-contract interactions that require gas-payments.
8
7
  * @extends WriteAccessHandler
9
8
  */
10
- var LiquidityProviderTool = /** @class */ (function (_super) {
11
- __extends(LiquidityProviderTool, _super);
9
+ export default class LiquidityProviderTool extends WriteAccessHandler {
12
10
  /**
13
11
  * Constructor
14
12
  * @param {NodeSDKConfig} config Configuration object, see PerpetualDataHandler.
@@ -29,8 +27,8 @@ var LiquidityProviderTool = /** @class */ (function (_super) {
29
27
  *
30
28
  * @param {string | Signer} signer Private key or ethers Signer of the account
31
29
  */
32
- function LiquidityProviderTool(config, signer) {
33
- return _super.call(this, config, signer) || this;
30
+ constructor(config, signer) {
31
+ super(config, signer);
34
32
  }
35
33
  /**
36
34
  * Add liquidity to the PnL participant fund. The address gets pool shares in return.
@@ -54,25 +52,15 @@ var LiquidityProviderTool = /** @class */ (function (_super) {
54
52
  *
55
53
  * @return Transaction object
56
54
  */
57
- LiquidityProviderTool.prototype.addLiquidity = function (poolSymbolName, amountCC, overrides) {
58
- return __awaiter(this, void 0, void 0, function () {
59
- var poolId, decimals, tx;
60
- return __generator(this, function (_a) {
61
- switch (_a.label) {
62
- case 0:
63
- if (this.proxyContract == null || this.signer == null) {
64
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
65
- }
66
- poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
67
- decimals = this.getMarginTokenDecimalsFromSymbol(poolSymbolName);
68
- return [4 /*yield*/, this.proxyContract.addLiquidity(poolId, floatToDecN(amountCC, decimals), overrides || { gasLimit: this.gasLimit })];
69
- case 1:
70
- tx = _a.sent();
71
- return [2 /*return*/, tx];
72
- }
73
- });
74
- });
75
- };
55
+ async addLiquidity(poolSymbolName, amountCC, overrides) {
56
+ if (this.proxyContract == null || this.signer == null) {
57
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
58
+ }
59
+ let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
60
+ let decimals = this.getMarginTokenDecimalsFromSymbol(poolSymbolName);
61
+ let tx = await this.proxyContract.addLiquidity(poolId, floatToDecN(amountCC, decimals), overrides || { gasLimit: this.gasLimit });
62
+ return tx;
63
+ }
76
64
  /**
77
65
  * Initiates a liquidity withdrawal from the pool
78
66
  * It triggers a time-delayed unlocking of the given number of pool shares.
@@ -96,24 +84,14 @@ var LiquidityProviderTool = /** @class */ (function (_super) {
96
84
  *
97
85
  * @return Transaction object.
98
86
  */
99
- LiquidityProviderTool.prototype.initiateLiquidityWithdrawal = function (poolSymbolName, amountPoolShares, overrides) {
100
- return __awaiter(this, void 0, void 0, function () {
101
- var poolId, tx;
102
- return __generator(this, function (_a) {
103
- switch (_a.label) {
104
- case 0:
105
- if (this.proxyContract == null || this.signer == null) {
106
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
107
- }
108
- poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
109
- return [4 /*yield*/, this.proxyContract.withdrawLiquidity(poolId, floatToDec18(amountPoolShares), overrides || { gasLimit: this.gasLimit })];
110
- case 1:
111
- tx = _a.sent();
112
- return [2 /*return*/, tx];
113
- }
114
- });
115
- });
116
- };
87
+ async initiateLiquidityWithdrawal(poolSymbolName, amountPoolShares, overrides) {
88
+ if (this.proxyContract == null || this.signer == null) {
89
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
90
+ }
91
+ let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
92
+ let tx = await this.proxyContract.withdrawLiquidity(poolId, floatToDec18(amountPoolShares), overrides || { gasLimit: this.gasLimit });
93
+ return tx;
94
+ }
117
95
  /**
118
96
  * Withdraws as much liquidity as there is available after a call to initiateLiquidityWithdrawal.
119
97
  * The address loses pool shares in return.
@@ -135,25 +113,13 @@ var LiquidityProviderTool = /** @class */ (function (_super) {
135
113
  *
136
114
  * @returns Transaction object.
137
115
  */
138
- LiquidityProviderTool.prototype.executeLiquidityWithdrawal = function (poolSymbolName, overrides) {
139
- return __awaiter(this, void 0, void 0, function () {
140
- var poolId, tx;
141
- return __generator(this, function (_a) {
142
- switch (_a.label) {
143
- case 0:
144
- if (this.proxyContract == null || this.signer == null) {
145
- throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
146
- }
147
- poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
148
- return [4 /*yield*/, this.proxyContract.executeLiquidityWithdrawal(poolId, this.traderAddr, overrides || { gasLimit: this.gasLimit })];
149
- case 1:
150
- tx = _a.sent();
151
- return [2 /*return*/, tx];
152
- }
153
- });
154
- });
155
- };
156
- return LiquidityProviderTool;
157
- }(WriteAccessHandler));
158
- export default LiquidityProviderTool;
116
+ async executeLiquidityWithdrawal(poolSymbolName, overrides) {
117
+ if (this.proxyContract == null || this.signer == null) {
118
+ throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
119
+ }
120
+ let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
121
+ let tx = await this.proxyContract.executeLiquidityWithdrawal(poolId, this.traderAddr, overrides || { gasLimit: this.gasLimit });
122
+ return tx;
123
+ }
124
+ }
159
125
  //# sourceMappingURL=liquidityProviderTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"liquidityProviderTool.js","sourceRoot":"","sources":["../../src/liquidityProviderTool.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD;;;;GAIG;AACH;IAAmD,yCAAkB;IACnE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,+BAAmB,MAAqB,EAAE,MAAuB;eAC/D,kBAAM,MAAM,EAAE,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,4CAAY,GAAzB,UACE,cAAsB,EACtB,QAAgB,EAChB,SAAqB;;;;;;wBAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;4BACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;yBACpF;wBACG,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wBACzF,QAAQ,GAAG,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,CAAC;wBAC5D,qBAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAC5C,MAAM,EACN,WAAW,CAAC,QAAQ,EAAE,QAAS,CAAC,EAChC,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzC,EAAA;;wBAJG,EAAE,GAAG,SAIR;wBACD,sBAAO,EAAE,EAAC;;;;KACX;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,2DAA2B,GAAxC,UACE,cAAsB,EACtB,gBAAwB,EACxB,SAAqB;;;;;;wBAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;4BACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;yBACpF;wBACG,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wBACpF,qBAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CACjD,MAAM,EACN,YAAY,CAAC,gBAAgB,CAAC,EAC9B,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzC,EAAA;;wBAJG,EAAE,GAAG,SAIR;wBACD,sBAAO,EAAE,EAAC;;;;KACX;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,0DAA0B,GAAvC,UAAwC,cAAsB,EAAE,SAAqB;;;;;;wBACnF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;4BACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;yBACpF;wBACG,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wBACpF,qBAAM,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAC1D,MAAM,EACN,IAAI,CAAC,UAAU,EACf,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzC,EAAA;;wBAJG,EAAE,GAAG,SAIR;wBACD,sBAAO,EAAE,EAAC;;;;KACX;IACH,4BAAC;AAAD,CAAC,AA1ID,CAAmD,kBAAkB,GA0IpE"}
1
+ {"version":3,"file":"liquidityProviderTool.js","sourceRoot":"","sources":["../../src/liquidityProviderTool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACnE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAmB,MAAqB,EAAE,MAAuB;QAC/D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,YAAY,CACvB,cAAsB,EACtB,QAAgB,EAChB,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACpF;QACD,IAAI,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7F,IAAI,QAAQ,GAAG,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAC5C,MAAM,EACN,WAAW,CAAC,QAAQ,EAAE,QAAS,CAAC,EAChC,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzC,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,2BAA2B,CACtC,cAAsB,EACtB,gBAAwB,EACxB,SAAqB;QAErB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACpF;QACD,IAAI,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7F,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CACjD,MAAM,EACN,YAAY,CAAC,gBAAgB,CAAC,EAC9B,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzC,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,0BAA0B,CAAC,cAAsB,EAAE,SAAqB;QACnF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACpF;QACD,IAAI,MAAM,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7F,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAC1D,MAAM,EACN,IAAI,CAAC,UAAU,EACf,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CACzC,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}