@d8x/perpetuals-sdk 0.8.3 → 0.8.5

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.
@@ -1,6 +1,7 @@
1
1
  import { CallOverrides, Contract } from "@ethersproject/contracts";
2
2
  import { Provider } from "@ethersproject/providers";
3
- import { LimitOrderBook } from "./contracts";
3
+ import { IPerpetualManager, LimitOrderBook, Multicall3 } from "./contracts";
4
+ import { PerpStorage } from "./contracts/IPerpetualManager";
4
5
  import { ExchangeInfo, MarginAccount, NodeSDKConfig, Order, PerpetualState, PerpetualStaticInfo, PoolState, PoolStaticInfo, SmartContractOrder } from "./nodeSDKTypes";
5
6
  import PerpetualDataHandler from "./perpetualDataHandler";
6
7
  import PriceFeeds from "./priceFeeds";
@@ -427,7 +428,8 @@ export default class MarketData extends PerpetualDataHandler {
427
428
  * @returns perpetual symbol to mid-prices mapping
428
429
  */
429
430
  private static _queryMidPrices;
430
- private static _queryPoolStates;
431
- private static _queryPerpetualStates;
432
- static _exchangeInfo(_proxyContract: Contract, _poolStaticInfos: Array<PoolStaticInfo>, _symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _perpetualIdToSymbol: Map<number, string>, _nestedPerpetualIDs: Array<Array<number>>, _symbolList: Map<string, string>, _priceFeedGetter: PriceFeeds, overrides?: CallOverrides): Promise<ExchangeInfo>;
431
+ private static _queryPoolAndPerpetualStates;
432
+ protected static _poolDataToPoolState(_liquidityPools: PerpStorage.LiquidityPoolDataStructOutput[], _poolStaticInfos: PoolStaticInfo[]): PoolState[];
433
+ protected static _perpetualDataToPerpetualState(_perpetuals: PerpStorage.PerpetualDataStructOutput[], _symbolList: Map<string, string>): PerpetualState[];
434
+ static _exchangeInfo(_proxyContract: IPerpetualManager, _multicall: Multicall3, _poolStaticInfos: Array<PoolStaticInfo>, _symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _perpetualIdToSymbol: Map<number, string>, _nestedPerpetualIDs: Array<Array<number>>, _symbolList: Map<string, string>, _priceFeedGetter: PriceFeeds, overrides?: CallOverrides): Promise<ExchangeInfo>;
433
435
  }
@@ -113,10 +113,10 @@ class MarketData extends perpetualDataHandler_1.default {
113
113
  * @returns {ExchangeInfo} Array of static data for all the pools and perpetuals in the system.
114
114
  */
115
115
  async exchangeInfo(overrides) {
116
- if (this.proxyContract == null) {
116
+ if (this.proxyContract == null || this.multicall == null) {
117
117
  throw Error("no proxy contract initialized. Use createProxyInstance().");
118
118
  }
119
- return await MarketData._exchangeInfo(this.proxyContract, this.poolStaticInfos, this.symbolToPerpStaticInfo, this.perpetualIdToSymbol, this.nestedPerpetualIDs, this.symbolList, this.priceFeedGetter, overrides);
119
+ return await MarketData._exchangeInfo(this.proxyContract, this.multicall, this.poolStaticInfos, this.symbolToPerpStaticInfo, this.perpetualIdToSymbol, this.nestedPerpetualIDs, this.symbolList, this.priceFeedGetter, overrides);
120
120
  }
121
121
  /**
122
122
  * All open orders for a trader-address and a symbol.
@@ -255,26 +255,80 @@ class MarketData extends perpetualDataHandler_1.default {
255
255
  * @returns Position risk after trade
256
256
  */
257
257
  async positionRiskOnTrade(traderAddr, order, account, indexPriceInfo, overrides) {
258
- if (this.proxyContract == null) {
258
+ if (this.proxyContract == null || this.multicall == null) {
259
259
  throw Error("no proxy contract initialized. Use createProxyInstance().");
260
260
  }
261
- // fetch undefined data
262
- if (account == undefined) {
263
- account = (await this.positionRisk(traderAddr, order.symbol, overrides))[0];
264
- }
261
+ // fetch prices
265
262
  if (indexPriceInfo == undefined) {
266
- let obj = await this.priceFeedGetter.fetchPricesForPerpetual(account.symbol);
263
+ let obj = await this.priceFeedGetter.fetchPricesForPerpetual(order.symbol);
267
264
  indexPriceInfo = [obj.idxPrices[0], obj.idxPrices[1], obj.mktClosed[0], obj.mktClosed[1]];
268
265
  }
269
- let lotSizeBC = MarketData._getLotSize(account.symbol, this.symbolToPerpStaticInfo);
266
+ // signed trade amount
267
+ let tradeAmountBC = Math.abs(order.quantity) * (order.side == nodeSDKTypes_1.BUY_SIDE ? 1 : -1);
268
+ // create all calls
269
+ const poolId = perpetualDataHandler_1.default._getPoolIdFromSymbol(order.symbol, this.poolStaticInfos);
270
+ const perpId = perpetualDataHandler_1.default.symbolToPerpetualId(order.symbol, this.symbolToPerpStaticInfo);
271
+ const fS2S3 = [indexPriceInfo[0], indexPriceInfo[1]].map((x) => (0, d8XMath_1.floatToABK64x64)(x));
272
+ const proxyCalls = [
273
+ {
274
+ target: this.proxyContract.address,
275
+ allowFailure: false,
276
+ callData: this.proxyContract.interface.encodeFunctionData("getTraderState", [perpId, traderAddr, fS2S3]),
277
+ },
278
+ {
279
+ target: this.proxyContract.address,
280
+ allowFailure: false,
281
+ callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
282
+ },
283
+ {
284
+ target: this.proxyContract.address,
285
+ allowFailure: false,
286
+ callData: this.proxyContract.interface.encodeFunctionData("queryExchangeFee", [
287
+ poolId,
288
+ traderAddr,
289
+ order.brokerAddr ?? nodeSDKTypes_1.ZERO_ADDRESS,
290
+ ]),
291
+ },
292
+ {
293
+ target: this.proxyContract.address,
294
+ allowFailure: false,
295
+ callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [
296
+ perpId,
297
+ (0, d8XMath_1.floatToABK64x64)(tradeAmountBC),
298
+ fS2S3,
299
+ ]),
300
+ },
301
+ ];
302
+ const encodedResults = await this.multicall.callStatic.aggregate3(proxyCalls, overrides || {});
303
+ // positionRisk to apply this trade on: if not given, defaults to the current trader's position
304
+ if (!account) {
305
+ const traderState = this.proxyContract.interface.decodeFunctionResult("getTraderState", encodedResults[0].returnData)[0];
306
+ account = MarketData.buildMarginAccountFromState(order.symbol, traderState, this.symbolToPerpStaticInfo, [
307
+ indexPriceInfo[0],
308
+ indexPriceInfo[1],
309
+ ]);
310
+ }
311
+ // perpetualState, for prices
312
+ const ammState = this.proxyContract.interface.decodeFunctionResult("getAMMState", encodedResults[1].returnData)[0];
313
+ const perpetualState = perpetualDataHandler_1.default._parseAMMState(order.symbol, ammState, indexPriceInfo, this.symbolToPerpStaticInfo);
314
+ const [S2, S3, Sm] = [perpetualState.indexPrice, perpetualState.collToQuoteIndexPrice, perpetualState.markPrice];
315
+ // exchange fee based on this trader's address (volume, token holding, etc) and his broker address (if any)
316
+ const exchangeFeeTbps = this.proxyContract.interface.decodeFunctionResult("queryExchangeFee", encodedResults[2].returnData)[0];
317
+ // price for this order = limit price (conservative) if given, else the current perp price
318
+ let tradePrice;
319
+ if (order.limitPrice == undefined) {
320
+ const fPrice = this.proxyContract.interface.decodeFunctionResult("queryPerpetualPrice", encodedResults[3].returnData)[0];
321
+ tradePrice = (0, d8XMath_1.ABK64x64ToFloat)(fPrice);
322
+ }
323
+ else {
324
+ tradePrice = order.limitPrice;
325
+ }
326
+ // Current state:
327
+ let lotSizeBC = MarketData._getLotSize(order.symbol, this.symbolToPerpStaticInfo);
270
328
  // Too small, no change to account
271
329
  if (Math.abs(order.quantity) < lotSizeBC) {
272
330
  return { newPositionRisk: account, orderCost: 0 };
273
331
  }
274
- // Current state:
275
- // perp (for FXs and such)
276
- let perpetualState = await this.getPerpetualState(order.symbol, indexPriceInfo, overrides);
277
- let [S2, S3, Sm] = [perpetualState.indexPrice, perpetualState.collToQuoteIndexPrice, perpetualState.markPrice];
278
332
  // cash in margin account: upon trading, unpaid funding will be realized
279
333
  let currentMarginCashCC = account.collateralCC;
280
334
  // signed position, still correct if side is closed (==0)
@@ -282,8 +336,6 @@ class MarketData extends perpetualDataHandler_1.default {
282
336
  // signed locked-in value
283
337
  let currentLockedInQC = account.entryPrice * currentPositionBC;
284
338
  // New trader state:
285
- // signed trade amount
286
- let tradeAmountBC = Math.abs(order.quantity) * (order.side == nodeSDKTypes_1.BUY_SIDE ? 1 : -1);
287
339
  // signed position
288
340
  let newPositionBC = currentPositionBC + tradeAmountBC;
289
341
  if (Math.abs(newPositionBC) < 10 * lotSizeBC) {
@@ -292,12 +344,6 @@ class MarketData extends perpetualDataHandler_1.default {
292
344
  newPositionBC = 0;
293
345
  }
294
346
  let newSide = newPositionBC > 0 ? nodeSDKTypes_1.BUY_SIDE : newPositionBC < 0 ? nodeSDKTypes_1.SELL_SIDE : nodeSDKTypes_1.CLOSED_SIDE;
295
- // price for this order = limit price (conservative) if given, else the current perp price
296
- let tradePrice = order.limitPrice ??
297
- (await this.getPerpetualPrice(order.symbol, tradeAmountBC, [indexPriceInfo[0], indexPriceInfo[1]], overrides));
298
- // fees
299
- let poolId = perpetualDataHandler_1.default._getPoolIdFromSymbol(order.symbol, this.poolStaticInfos);
300
- let exchangeFeeTbps = await this.proxyContract.queryExchangeFee(poolId, traderAddr, order.brokerAddr ?? nodeSDKTypes_1.ZERO_ADDRESS, overrides || {});
301
347
  let exchangeFeeCC = (Math.abs(tradeAmountBC) * exchangeFeeTbps * 1e-5 * S2) / S3;
302
348
  let brokerFeeCC = (Math.abs(tradeAmountBC) * (order.brokerFeeTbps ?? 0) * 1e-5 * S2) / S3;
303
349
  let referralFeeCC = this.symbolToPerpStaticInfo.get(account.symbol).referralRebate;
@@ -323,7 +369,7 @@ class MarketData extends perpetualDataHandler_1.default {
323
369
  let initialMarginRate = this.symbolToPerpStaticInfo.get(account.symbol).initialMarginRate;
324
370
  targetLvg = isFlip || isOpen ? order.leverage ?? 1 / initialMarginRate : 0;
325
371
  let [b0, pos0] = isOpen ? [0, 0] : [account.collateralCC, currentPositionBC];
326
- traderDepositCC = (0, d8XMath_1.getDepositAmountForLvgTrade)(b0, pos0, tradeAmountBC, targetLvg, tradePrice, S3, Sm);
372
+ traderDepositCC = (0, d8XMath_1.getDepositAmountForLvgTrade)(pos0, b0, tradeAmountBC, targetLvg, tradePrice, S3, Sm);
327
373
  // fees are paid from wallet in this case
328
374
  traderDepositCC += exchangeFeeCC + brokerFeeCC + referralFeeCC;
329
375
  }
@@ -1021,10 +1067,12 @@ class MarketData extends perpetualDataHandler_1.default {
1021
1067
  * @param _idxPriceMap symbol to price/market closed
1022
1068
  * @returns perpetual symbol to mid-prices mapping
1023
1069
  */
1024
- static async _queryMidPrices(_proxyContract, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _idxPriceMap, overrides) {
1070
+ static async _queryMidPrices(_proxyContract, _multicall, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _idxPriceMap, overrides) {
1025
1071
  // what is the maximal number of queries at once?
1026
1072
  const chunkSize = 10;
1027
1073
  let perpetualIDChunks = perpetualDataHandler_1.default.nestedIDsToChunks(chunkSize, _nestedPerpetualIDs);
1074
+ // prepare calls
1075
+ const proxyCalls = [];
1028
1076
  let midPriceMap = new Map();
1029
1077
  for (let k = 0; k < perpetualIDChunks.length; k++) {
1030
1078
  let indexPrices = [];
@@ -1041,7 +1089,17 @@ class MarketData extends perpetualDataHandler_1.default {
1041
1089
  indexPrices.push(S2);
1042
1090
  indexPrices.push(S3);
1043
1091
  }
1044
- let fMidPrice = await _proxyContract.queryMidPrices(perpetualIDChunks[k], indexPrices, overrides || {});
1092
+ proxyCalls.push({
1093
+ target: _proxyContract.address,
1094
+ allowFailure: false,
1095
+ callData: _proxyContract.interface.encodeFunctionData("queryMidPrices", [perpetualIDChunks[k], indexPrices]),
1096
+ });
1097
+ }
1098
+ // multicall
1099
+ const encodedResults = await _multicall.callStatic.aggregate3(proxyCalls, overrides || {});
1100
+ // apply results
1101
+ for (let k = 0; k < perpetualIDChunks.length; k++) {
1102
+ let fMidPrice = _proxyContract.interface.decodeFunctionResult("queryMidPrices", encodedResults[k].returnData)[0];
1045
1103
  for (let j = 0; j < fMidPrice.length; j++) {
1046
1104
  let id = perpetualIDChunks[k][j];
1047
1105
  let symbol3s = _perpetualIdToSymbol.get(id);
@@ -1050,68 +1108,78 @@ class MarketData extends perpetualDataHandler_1.default {
1050
1108
  }
1051
1109
  return midPriceMap;
1052
1110
  }
1053
- static async _queryPoolStates(_proxyContract, _poolStaticInfos, _numPools, overrides) {
1111
+ static async _queryPoolAndPerpetualStates(_proxyContract, _multicall, _poolStaticInfos, _symbolList, _nestedPerpetualIDs, overrides) {
1054
1112
  const chunkSize = 5;
1113
+ const numPools = _nestedPerpetualIDs.length;
1055
1114
  let iFrom = 1;
1056
1115
  let poolStates = [];
1057
- while (iFrom <= _numPools) {
1058
- let pools = await _proxyContract.getLiquidityPools(iFrom, iFrom + chunkSize, overrides || {});
1059
- for (let k = 0; k < pools.length; k++) {
1060
- let poolSymbol = _poolStaticInfos[iFrom + k - 1].poolMarginSymbol;
1061
- let poolState = {
1062
- isRunning: pools[k].isRunning,
1063
- poolSymbol: poolSymbol,
1064
- marginTokenAddr: pools[k].marginTokenAddress,
1065
- poolShareTokenAddr: pools[k].shareTokenAddress,
1066
- defaultFundCashCC: (0, d8XMath_1.ABK64x64ToFloat)(pools[k].fDefaultFundCashCC),
1067
- pnlParticipantCashCC: (0, d8XMath_1.ABK64x64ToFloat)(pools[k].fPnLparticipantsCashCC),
1068
- totalTargetAMMFundSizeCC: (0, d8XMath_1.ABK64x64ToFloat)(pools[k].fTargetAMMFundSize),
1069
- brokerCollateralLotSize: (0, d8XMath_1.ABK64x64ToFloat)(pools[k].fBrokerCollateralLotSize),
1070
- perpetuals: [],
1071
- };
1072
- poolStates.push(poolState);
1073
- }
1116
+ let perpStates = [];
1117
+ while (iFrom <= numPools) {
1118
+ const proxyCalls = [
1119
+ // getLiquidityPools
1120
+ {
1121
+ target: _proxyContract.address,
1122
+ allowFailure: false,
1123
+ callData: _proxyContract.interface.encodeFunctionData("getLiquidityPools", [iFrom, iFrom + chunkSize - 1]), // from-to includes "to"
1124
+ },
1125
+ // getPerpetuals
1126
+ {
1127
+ target: _proxyContract.address,
1128
+ allowFailure: false,
1129
+ callData: _proxyContract.interface.encodeFunctionData("getPerpetuals", [
1130
+ _nestedPerpetualIDs.slice(iFrom - 1, iFrom + chunkSize - 1).flat(), // from-to does not include "to"
1131
+ ]),
1132
+ },
1133
+ ];
1134
+ // multicall
1135
+ const encodedResults = await _multicall.callStatic.aggregate3(proxyCalls, overrides || {});
1136
+ const pools = _proxyContract.interface.decodeFunctionResult("getLiquidityPools", encodedResults[0].returnData)[0];
1137
+ const perps = _proxyContract.interface.decodeFunctionResult("getPerpetuals", encodedResults[1].returnData)[0];
1138
+ poolStates = poolStates.concat(MarketData._poolDataToPoolState(pools, _poolStaticInfos));
1139
+ perpStates = perpStates.concat(MarketData._perpetualDataToPerpetualState(perps, _symbolList));
1074
1140
  iFrom = iFrom + chunkSize + 1;
1075
1141
  }
1142
+ return { pools: poolStates, perpetuals: perpStates };
1143
+ }
1144
+ static _poolDataToPoolState(_liquidityPools, _poolStaticInfos) {
1145
+ const poolStates = _liquidityPools.map((pool, k) => ({
1146
+ isRunning: pool.isRunning,
1147
+ poolSymbol: _poolStaticInfos[k].poolMarginSymbol,
1148
+ marginTokenAddr: pool.marginTokenAddress,
1149
+ poolShareTokenAddr: pool.shareTokenAddress,
1150
+ defaultFundCashCC: (0, d8XMath_1.ABK64x64ToFloat)(pool.fDefaultFundCashCC),
1151
+ pnlParticipantCashCC: (0, d8XMath_1.ABK64x64ToFloat)(pool.fPnLparticipantsCashCC),
1152
+ totalTargetAMMFundSizeCC: (0, d8XMath_1.ABK64x64ToFloat)(pool.fTargetAMMFundSize),
1153
+ brokerCollateralLotSize: (0, d8XMath_1.ABK64x64ToFloat)(pool.fBrokerCollateralLotSize),
1154
+ perpetuals: [],
1155
+ }));
1076
1156
  return poolStates;
1077
1157
  }
1078
- static async _queryPerpetualStates(_proxyContract, _nestedPerpetualIDs, _symbolList, overrides) {
1079
- // what is the maximal number of queries at once?
1080
- const chunkSize = 10;
1081
- let perpetualIDChunks = perpetualDataHandler_1.default.nestedIDsToChunks(chunkSize, _nestedPerpetualIDs);
1082
- let perpStateInfos = new Array();
1083
- for (let k = 0; k < perpetualIDChunks.length; k++) {
1084
- let perps = await _proxyContract.getPerpetuals(perpetualIDChunks[k], overrides || {});
1085
- for (let j = 0; j < perps.length; j++) {
1086
- let PerpetualState = {
1087
- id: perps[j].id,
1088
- state: nodeSDKTypes_1.PERP_STATE_STR[perps[j].state],
1089
- baseCurrency: (0, utils_1.contractSymbolToSymbol)(perps[j].S2BaseCCY, _symbolList),
1090
- quoteCurrency: (0, utils_1.contractSymbolToSymbol)(perps[j].S2QuoteCCY, _symbolList),
1091
- indexPrice: 0,
1092
- collToQuoteIndexPrice: 0,
1093
- markPrice: (0, d8XMath_1.ABK64x64ToFloat)(perps[j].currentMarkPremiumRate.fPrice),
1094
- midPrice: 0,
1095
- currentFundingRateBps: 1e4 * (0, d8XMath_1.ABK64x64ToFloat)(perps[j].fCurrentFundingRate),
1096
- openInterestBC: (0, d8XMath_1.ABK64x64ToFloat)(perps[j].fOpenInterest),
1097
- isMarketClosed: false, //fill later
1098
- };
1099
- perpStateInfos.push(PerpetualState);
1100
- }
1101
- }
1102
- return perpStateInfos;
1158
+ static _perpetualDataToPerpetualState(_perpetuals, _symbolList) {
1159
+ const perpStates = _perpetuals.map((perp) => ({
1160
+ id: perp.id,
1161
+ state: nodeSDKTypes_1.PERP_STATE_STR[perp.state],
1162
+ baseCurrency: (0, utils_1.contractSymbolToSymbol)(perp.S2BaseCCY, _symbolList),
1163
+ quoteCurrency: (0, utils_1.contractSymbolToSymbol)(perp.S2QuoteCCY, _symbolList),
1164
+ indexPrice: 0,
1165
+ collToQuoteIndexPrice: 0,
1166
+ markPrice: (0, d8XMath_1.ABK64x64ToFloat)(perp.currentMarkPremiumRate.fPrice),
1167
+ midPrice: 0,
1168
+ currentFundingRateBps: 1e4 * (0, d8XMath_1.ABK64x64ToFloat)(perp.fCurrentFundingRate),
1169
+ openInterestBC: (0, d8XMath_1.ABK64x64ToFloat)(perp.fOpenInterest),
1170
+ isMarketClosed: false, //fill later
1171
+ }));
1172
+ return perpStates;
1103
1173
  }
1104
- static async _exchangeInfo(_proxyContract, _poolStaticInfos, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _nestedPerpetualIDs, _symbolList, _priceFeedGetter, overrides) {
1174
+ static async _exchangeInfo(_proxyContract, _multicall, _poolStaticInfos, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _nestedPerpetualIDs, _symbolList, _priceFeedGetter, overrides) {
1105
1175
  // get the factory address (shared among all pools)
1106
1176
  let factory = _poolStaticInfos[0].oracleFactoryAddr;
1107
1177
  let info = { pools: [], oracleFactoryAddr: factory, proxyAddr: _proxyContract.address };
1108
- const numPools = _nestedPerpetualIDs.length;
1109
- // get all prices from off-chain price-sources
1178
+ // get all prices from off-chain price-sources: no RPC calls
1110
1179
  let idxPriceMap = await MarketData._getAllIndexPrices(_symbolToPerpStaticInfo, _priceFeedGetter);
1111
1180
  // query mid-prices from on-chain conditional on the off-chain prices
1112
- let midPriceMap = await MarketData._queryMidPrices(_proxyContract, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, idxPriceMap, overrides);
1113
- let poolStateInfos = await MarketData._queryPoolStates(_proxyContract, _poolStaticInfos, numPools, overrides);
1114
- let perpStateInfos = await MarketData._queryPerpetualStates(_proxyContract, _nestedPerpetualIDs, _symbolList, overrides);
1181
+ let midPriceMap = await MarketData._queryMidPrices(_proxyContract, _multicall, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, idxPriceMap, overrides);
1182
+ const { pools: poolStateInfos, perpetuals: perpStateInfos } = await MarketData._queryPoolAndPerpetualStates(_proxyContract, _multicall, _poolStaticInfos, _symbolList, _nestedPerpetualIDs, overrides);
1115
1183
  // put together all info
1116
1184
  for (const perp of perpStateInfos) {
1117
1185
  let symbol3s = _perpetualIdToSymbol.get(perp.id);
@@ -1 +1 @@
1
- {"version":3,"file":"marketData.js","sourceRoot":"","sources":["../../src/marketData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketData.js","sourceRoot":"","sources":["../../src/marketData.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAErD,wDAA2E;AAC3E,gDAAmD;AACnD,2CAA4F;AAG5F,uCAQmB;AACnB,iDAqBwB;AACxB,0FAA0D;AAE1D,mCAA2D;AAE3D;;;;;GAKG;AACH,MAAqB,UAAW,SAAQ,8BAAoB;IAC1D;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAmB,MAAqB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,mBAAmB,CAAC,QAAmB,EAAE,SAAyB;QAC7E,IAAI,QAAQ,IAAI,SAAS,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,iCAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACI,eAAe;QACpB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAAC,OAA2B;QAC1D,OAAO,8BAAoB,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,wBAAwB;QAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,YAAY,CAAC,SAAyB;QACjD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,MAAM,UAAU,CAAC,aAAa,CACnC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,EACpB,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,KAAK,CAAC,UAAU,CACrB,UAAkB,EAClB,MAAc,EACd,SAAyB;QAEzB,8CAA8C;QAC9C,IAAI,QAAQ,GAAmD,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;SAC7D;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/E,QAAQ,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;SACrB;aAAM;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC/E;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,sBAAsB,CAClC,UAAkB,EAClB,MAAc,EACd,SAAyB;QAEzB,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,uBAAuB,CACnC,UAAkB,EAClB,OAAiB,EACjB,SAAyB;QAEzB,8CAA8C;QAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;QACxF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,MAAc,EAAE,SAAyB;QACrF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,QAAQ,GAAyB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;SAC7D;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1F,QAAQ,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;SACrB;aAAM;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC1F;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,iCAAiC,CAC/C,UAAkB,EAClB,MAAc,EACd,SAAyB;QAEzB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,OAAO,GAAG,MAAM,8BAAoB,CAAC,gBAAgB,CACvD,UAAU,EACV,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAc,EACnB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACpC,SAAS,CACV,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,kCAAkC,CAChD,UAAkB,EAClB,OAAiB,EACjB,SAAyB;QAEzB,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CACH,CAAC;QACF,IAAI,OAAO,GAAG,MAAM,8BAAoB,CAAC,iBAAiB,CACxD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EACtC,OAAO,EACP,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,SAAU,EACf,IAAI,CAAC,aAAc,EACnB,IAAI,EACJ,SAAS,CACV,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,mBAAmB,CAC9B,UAAkB,EAClB,KAAY,EACZ,OAAuB,EACvB,cAAmD,EACnD,SAAyB;QAEzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QAED,eAAe;QACf,IAAI,cAAc,IAAI,SAAS,EAAE;YAC/B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3E,cAAc,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3F;QAED,sBAAsB;QACtB,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,mBAAmB;QACnB,MAAM,MAAM,GAAG,8BAAoB,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,8BAAoB,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yBAAe,EAAC,CAAC,CAAC,CAA2B,CAAC;QAC9G,MAAM,UAAU,GAA6B;YAC3C;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;gBAClC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;aACzG;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;gBAClC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC1F;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;gBAClC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;oBAC5E,MAAM;oBACN,UAAU;oBACV,KAAK,CAAC,UAAU,IAAI,2BAAY;iBACjC,CAAC;aACH;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;gBAClC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,EAAE;oBAC/E,MAAM;oBACN,IAAA,yBAAe,EAAC,aAAa,CAAC;oBAC9B,KAAK;iBACN,CAAC;aACH;SACF,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAE/F,+FAA+F;QAC/F,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACnE,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;YACL,OAAO,GAAG,UAAU,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,sBAAsB,EAAE;gBACvG,cAAc,CAAC,CAAC,CAAC;gBACjB,cAAc,CAAC,CAAC,CAAC;aAClB,CAAC,CAAC;SACJ;QAED,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,cAAc,GAAG,8BAAoB,CAAC,cAAc,CACxD,KAAK,CAAC,MAAM,EACZ,QAAQ,EACR,cAAc,EACd,IAAI,CAAC,sBAAsB,CAC5B,CAAC;QACF,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAEjH,2GAA2G;QAC3G,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACvE,kBAAkB,EAClB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;QAEL,0FAA0F;QAC1F,IAAI,UAAkB,CAAC;QACvB,IAAI,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAC9D,qBAAqB,EACrB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;YACL,UAAU,GAAG,IAAA,yBAAe,EAAC,MAAM,CAAC,CAAC;SACtC;aAAM;YACL,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;SAC/B;QAED,iBAAiB;QACjB,IAAI,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClF,kCAAkC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,EAAE;YACxC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SACnD;QACD,wEAAwE;QACxE,IAAI,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/C,yDAAyD;QACzD,IAAI,iBAAiB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC9F,yBAAyB;QACzB,IAAI,iBAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,iBAAiB,CAAC;QAE/D,oBAAoB;QACpB,kBAAkB;QAClB,IAAI,aAAa,GAAG,iBAAiB,GAAG,aAAa,CAAC;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;YAC5C,eAAe;YACf,aAAa,GAAG,CAAC,iBAAiB,CAAC;YACnC,aAAa,GAAG,CAAC,CAAC;SACnB;QACD,IAAI,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAQ,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAS,CAAC,CAAC,CAAC,0BAAW,CAAC;QAEzF,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACjF,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC1F,IAAI,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,cAAc,CAAC;QACpF,cAAc;QACd,IAAI,OAAO,GAAG,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;QACtE,IAAI,MAAM,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,aAAa,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAC9H,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,uCAAuC;QACtH,IAAI,sBAAsB,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAEzE,uCAAuC;QACvC,2BAA2B;QAC3B,4BAA4B;QAC5B,iCAAiC;QACjC,yEAAyE;QACzE,IAAI,eAAuB,CAAC;QAC5B,IAAI,SAAiB,CAAC;QACtB,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE;YACxG,eAAe,GAAG,CAAC,CAAC;YACpB,SAAS,GAAG,CAAC,CAAC;SACf;aAAM;YACL,yFAAyF;YACzF,8CAA8C;YAC9C,IAAI,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,iBAAiB,CAAC;YAC3F,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC7E,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACtG,yCAAyC;YACzC,eAAe,IAAI,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;SAChE;QAED,0BAA0B;QAC1B,IAAI,WAAW,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5D,IAAI,aAAa,GAAG,aAAa,GAAG,EAAE,CAAC;QACvC,IAAI,OAAO,EAAE;YACX,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;YAC7D,aAAa,IAAI,GAAG,CAAC;YACrB,WAAW,IAAI,GAAG,GAAG,EAAE,CAAC;SACzB;QACD,mBAAmB;QACnB,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,8BAA8B,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;QAEjH,0DAA0D;QAC1D,IAAI,kBAAkB,GAAG,iBAAiB,GAAG,aAAa,CAAC;QAC3D,IAAI,eAAe,GAAG,mBAAmB,GAAG,WAAW,GAAG,eAAe,CAAC;QAC1E,IAAI,aAAa,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC;QAC1F,IAAI,kBAAkB,GAAG,eAAe,GAAG,CAAC,aAAa,GAAG,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;QAC1F,IAAI,WAAW,GACb,aAAa,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,kBAAkB,IAAI,CAAC;gBACzB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;QAE/D,qBAAqB;QACrB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,qBAAqB,CACxD,OAAO,CAAC,MAAM,EACd,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,EAAE,EACF,EAAE,EACF,IAAI,CAAC,sBAAsB,CAC5B,CAAC;QAEF,oBAAoB;QACpB,IAAI,eAAe,GAAkB;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAChD,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,EAAE;YACb,qBAAqB,EAAE,aAAa,GAAG,EAAE,GAAG,kBAAkB;YAC9D,8BAA8B,EAAE,CAAC;YACjC,YAAY,EAAE,eAAe;YAC7B,qBAAqB,EAAE,EAAE;YACzB,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YAChC,cAAc,EAAE,CAAC,GAAG,GAAG;SACxB,CAAC;QACF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,8BAA8B,CACzC,eAAuB,EACvB,OAAsB,EACtB,cAAmD,EACnD,SAAyB;QAEzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,8BAA8B,GAAG,CAAC,EAAE;YACvF,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC5C;QACD,IAAI,cAAc,IAAI,SAAS,EAAE;YAC/B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7E,cAAc,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3F;QACD,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAC7F,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAE/G,kEAAkE;QAClE,IAAI,OAAO,CAAC,uBAAuB,IAAI,CAAC,EAAE;YACxC,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;gBACxD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,EAAE;gBACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;gBACtE,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,eAAe;gBACpD,qBAAqB,EAAE,EAAE;gBACzB,gBAAgB,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC;gBAChC,cAAc,EAAE,QAAQ;aACzB,CAAC;SACH;QAED,IAAI,UAAU,GAAG,OAAO,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,uBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QACjD,IAAI,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC;QAC7D,IAAI,kBAAkB,GACpB,eAAe,GAAG,OAAO,CAAC,8BAA8B,GAAG,CAAC,UAAU,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QACjG,IAAI,kBAAkB,IAAI,CAAC,EAAE;YAC3B,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;gBACxD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,EAAE;gBACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;gBACpD,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;gBACtE,YAAY,EAAE,eAAe;gBAC7B,qBAAqB,EAAE,EAAE;gBACzB,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC1B,cAAc,EAAE,CAAC;aAClB,CAAC;SACH;QACD,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;QAExE,qBAAqB;QACrB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,qBAAqB,CACxD,OAAO,CAAC,MAAM,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,EAAE,EACF,EAAE,EACF,IAAI,CAAC,sBAAsB,CAC5B,CAAC;QAEF,oBAAoB;QACpB,IAAI,eAAe,GAAkB;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,EAAE;YACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;YACtE,YAAY,EAAE,eAAe;YAC7B,qBAAqB,EAAE,EAAE;YACzB,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YAChC,cAAc,EAAE,CAAC,GAAG,GAAG;SACxB,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,MAAM,CAAC,qBAAqB,CACpC,MAAc,EACd,UAAkB,EAClB,gBAAwB,EACxB,YAAoB,EACpB,SAAiB,EACjB,qBAA6B,EAC7B,sBAAwD;QAExD,IAAI,KAAa,EAAE,KAAyB,CAAC;QAC7C,IAAI,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,qBAAqB,CAAC;QACpE,IAAI,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,sBAAsB,CAAC;QACzE,IAAI,OAAO,IAAI,2BAAY,CAAC,IAAI,EAAE;YAChC,KAAK,GAAG,IAAA,iDAAuC,EAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YACjG,KAAK,GAAG,KAAK,CAAC;SACf;aAAM,IAAI,OAAO,IAAI,2BAAY,CAAC,MAAM,EAAE;YACzC,KAAK,GAAG,qBAAqB,CAAC;YAC9B,KAAK,GAAG,IAAA,mDAAyC,EAC/C,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,GAAG,EACH,qBAAqB,EACrB,SAAS,CACV,CAAC;SACH;aAAM;YACL,KAAK,GAAG,IAAA,kDAAwC,EAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;SACnG;QACD,aAAa;QACb,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9B,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,SAAyB;QACtF,IAAI,OAAO,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC;QACxE,IAAI,KAAK,GAAG,0BAAc,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,IAAA,mBAAW,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,wBAAwB,CACnC,OAAe,EACf,UAA2B,EAC3B,SAAyB;QAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,+BAA+B,CAC3C,OAAe,EACf,MAAc,EACd,SAAyB;QAEzB,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACrE,IAAI,UAAU,GAAG,0BAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC;QACxE,IAAI,0BAA0B,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACtF,OAAO,IAAA,sBAAY,EAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,kBAAkB,CAAC,UAA2B,EAAE,SAAyB;QACpF,IAAI,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,qBAAqB,CAChC,OAAe,EACf,UAA2B,EAC3B,SAAyB;QAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACvE,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,iBAAiB,EAAE,WAAW;YAC9B,cAAc,EAAE,cAAc;SAC/B,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,cAA+B;QAC7D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;YAClE,MAAM,KAAK,CAAC,6EAA6E,CAAC,CAAC;SAC5F;QACD,IAAI,MAAc,CAAC;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE;YACjC,MAAM,GAAG,8BAAoB,CAAC,oBAAoB,CAAC,cAAwB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SACpG;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;SACjC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,qBAAqB,CAChC,IAAY,EACZ,YAA2B,EAC3B,SAAyB;QAEzB,IAAI,WAAW,GAAG,IAAI,IAAI,uBAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,uBAAuB,CAAC;QAClH,IAAI,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,kBAAkB,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,+BAA+B,CAChF,MAAM,EACN,IAAA,yBAAe,EAAC,WAAW,CAAC,EAC5B,IAAI,IAAI,uBAAQ,EAChB,SAAS,IAAI,EAAE,CAChB,CAAC;QACF,OAAO,IAAA,yBAAe,EAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAAE,SAAyB;QACpF,IAAI,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,IAAI,IAAI,uBAAQ,CAAC;QAC7B,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,+BAA+B,CAC1E,MAAM,EACN,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EACjB,KAAK,EACL,SAAS,IAAI,EAAE,CAChB,CAAC;QACF,OAAO,IAAA,yBAAe,EAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,SAAyB;QAChF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAE,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,yBAAe,EAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAe,EAAE,SAAyB;QACpF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,WAA8B;QACtE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACrE,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;QACD,OAAO,MAAM,8BAAoB,CAAC,wBAAwB,CACxD,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,iBAAiB,CAC5B,MAAc,EACd,QAAgB,EAChB,WAA8B,EAC9B,SAAyB;QAEzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,iBAAiB;YACjB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACrE,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;QACD,OAAO,MAAM,8BAAoB,CAAC,oBAAoB,CACpD,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,WAAW,EACX,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAC5B,MAAc,EACd,cAAmD,EACnD,SAAyB;QAEzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,cAAc,IAAI,SAAS,EAAE;YAC/B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACrE,cAAc,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3F;QACD,IAAI,KAAK,GAAmB,MAAM,8BAAoB,CAAC,oBAAoB,CACzE,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,aAAa,EAClB,cAAc,EACd,SAAS,CACV,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,SAAyB;QACrE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,KAAK,GAAc;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,UAAU;YACtB,eAAe,EAAE,IAAI,CAAC,kBAAkB;YACxC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,iBAAiB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,kBAAkB,CAAC;YAC3D,oBAAoB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,sBAAsB,CAAC;YAClE,wBAAwB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,kBAAkB,CAAC;YAClE,uBAAuB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,wBAAwB,CAAC;YACvE,UAAU,EAAE,EAAE;SACf,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CAAC,MAAc;QAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,QAAQ,IAAI,SAAS,EAAE;YACzB,MAAM,KAAK,CAAC,yBAAyB,MAAM,wDAAwD,CAAC,CAAC;SACtG;QACD,mCAAmC;QACnC,IAAI,GAAG,GAAwB;YAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAAc;QAC9C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,qBAAqB,CACnC,UAAkB,EAClB,iBAAiC,EACjC,SAAyB;QAEzB,wDAAwD;QACxD,IAAI,kBAAkB,GAAY,IAAI,KAAK,EAAS,CAAC;QACrD,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,OAAO,cAAc,EAAE;YACrB,IAAI,MAAM,GAA2C,MAAM,iBAAiB,CAAC,SAAS,CACpF,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,IAAI,EAAE,CAChB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,2BAAY,EAAE;gBACjE,kBAAkB,CAAC,IAAI,CAAC,8BAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACtG,CAAC,EAAE,CAAC;aACL;YACD,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,2BAAY,CAAC;YACvE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;SACxB;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,uBAAuB,CACrC,UAAkB,EAClB,kBAAoC,EACpC,SAAyB;QAEzB,yDAAyD;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAEzC,IAAI,kBAAkB,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAS,CAAC,CAAC;QAEjF,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;YACpC,wCAAwC;YACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,gBAAgB;YAChB,MAAM,WAAW,GAA6B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrE,MAAM,EAAE,CAAC,CAAC,OAAO;gBACjB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACvF,CAAC,CAAC,CAAC;YACJ,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAChG,QAAQ;YACR,MAAM,SAAS,GAA6C,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC3G,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7F,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;YACH,UAAU;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,2BAAY,CAAC,CAAC;gBACtE,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC/E,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,2BAAY,EAAE;oBAChE,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAAoB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBACzG,CAAC,EAAE,CAAC;iBACL;gBACD,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,2BAAY,CAAC;gBAC9F,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;aAC9B;SACF;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,iBAAiB,CAC/B,UAAkB,EAClB,kBAAoC,EACpC,SAAyB;QAEzB,yDAAyD;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAEzC,IAAI,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAU,CAAC,CAAC;QAE5E,IAAI,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;YACpC,wCAAwC;YACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,eAAe;YACf,MAAM,YAAY,GAA6B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtE,MAAM,EAAE,CAAC,CAAC,OAAO;gBACjB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAClG,CAAC,CAAC,CAAC;YACJ,OAAO;YACP,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAU,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAClG,QAAQ;YACR,MAAM,UAAU,GAAe,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC/E,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7F,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC;YACH,UAAU;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,4BAAa,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC/E,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,4BAAa,EAAE;oBACxD,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,CAAC,EAAE,CAAC;iBACL;gBACD,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,4BAAa,CAAC;gBACvF,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;aAC9B;SACF;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,UAAkB,EAClB,iBAAiC,EACjC,SAAyB;QAEzB,IAAI,UAAU,GAAa,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,IAAI,qBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACnE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,EAAE,CAAC;SACL;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,kBAAkB,CAC7B,UAAkB,EAClB,MAAc,EACd,WAA8B,EAC9B,SAAyB;QAEzB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QAED,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,iBAAiB;YACjB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACrE,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;QACD,IAAI,MAAM,GAAG,8BAAoB,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3F,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CACvD,MAAM,EACN,UAAU,EACV,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yBAAe,EAAC,CAAC,CAAC,CAA2B,EACpE,SAAS,IAAI,EAAE,CAChB,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,GAAG,IAAA,yBAAe,EAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,sBAAsB,CACjC,UAAkB,EAClB,UAAmB,EACnB,SAAyB;QAEzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACpF;QACD,wCAAwC;QACxC,IAAI,UAAU,GAA8B,EAAE,CAAC;QAC/C,IAAI,UAAU,GAA8B,EAAE,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,UAAU,IAAI,EAAE,IAAI,UAAU,IAAI,SAAS,EAAE;gBAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACrD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAC9B,UAAU,EACV,SAAS,IAAI,EAAE,CAChB,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;YACD,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACrD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAC9B,UAAU,EACV,SAAS,IAAI,EAAE,CAChB,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1B;QACD,MAAM;QACN,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,UAAU,IAAI,EAAE,IAAI,UAAU,IAAI,SAAS,EAAE;gBAC/C,iBAAiB,IAAI,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAClD;YACD,iBAAiB,IAAI,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;QACD,MAAM,SAAS,GAAG,MAAO,CAAC;QAC1B,IAAI,KAAK,GAAG,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACvF,8DAA8D;QAC9D,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,2DAA2D;QAC3D,OAAO,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACrC,uBAAyD,EACzD,gBAA4B;QAE5B,8CAA8C;QAC9C,IAAI,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,IAAI,UAAU,IAAI,uBAAuB,CAAC,IAAI,EAAE,EAAE;YACrD,IAAI,KAAK,GAAoC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,CAAC,GAAG,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,KAAM,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACzB,MAAM,CAAC,GAAG,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAmC,MAAM,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAChG,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,MAAc;QACxC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,OAAO,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACrG,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CAClC,MAAc,EACd,uBAAyD,EACzD,gBAA4B;QAE5B,MAAM,KAAK,GAAoC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;YACxD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,KAAK,EAAE,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;YACxD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACrC;QACD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,KAAK,CAAC,eAAe,CAClC,cAAiC,EACjC,UAAsB,EACtB,mBAAyC,EACzC,uBAAyD,EACzD,oBAAyC,EACzC,YAA4C,EAC5C,SAAyB;QAEzB,iDAAiD;QACjD,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,iBAAiB,GAAyB,8BAAoB,CAAC,iBAAiB,CAClF,SAAS,EACT,mBAAmB,CACpB,CAAC;QACF,gBAAgB;QAChB,MAAM,UAAU,GAA6B,EAAE,CAAC;QAChD,IAAI,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,WAAW,GAAgB,EAAE,CAAC;YAClC,iCAAiC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,IAAI,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC;gBAClD,IAAI,EAAE,GAAG,IAAA,yBAAe,EAAC,YAAY,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,IAAI,EAAE,GAAG,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,IAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;oBACxB,EAAE,GAAG,IAAA,yBAAe,EAAC,YAAY,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5D;gBACD,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACtB;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM,EAAE,cAAc,CAAC,OAAO;gBAC9B,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;aAC7G,CAAC,CAAC;SACJ;QACD,YAAY;QACZ,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3F,gBAAgB;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CAC3D,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAgB,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5C,WAAW,CAAC,GAAG,CAAC,QAAS,EAAE,IAAA,yBAAe,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3D;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAC/C,cAAiC,EACjC,UAAsB,EACtB,gBAAkC,EAClC,WAAgC,EAChC,mBAAyC,EACzC,SAAyB;QAEzB,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,IAAI,UAAU,GAA0B,EAAE,CAAC;QAC3C,OAAO,KAAK,IAAI,QAAQ,EAAE;YACxB,MAAM,UAAU,GAA6B;gBAC3C,oBAAoB;gBACpB;oBACE,MAAM,EAAE,cAAc,CAAC,OAAO;oBAC9B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,wBAAwB;iBACrI;gBACD,gBAAgB;gBAChB;oBACE,MAAM,EAAE,cAAc,CAAC,OAAO;oBAC9B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE;wBACrE,mBAAmB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,gCAAgC;qBACrG,CAAC;iBACH;aACF,CAAC;YACF,YAAY;YACZ,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAC3F,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CACzD,mBAAmB,EACnB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAgD,CAAC;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,oBAAoB,CACzD,eAAe,EACf,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAA4C,CAAC;YAEhD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACzF,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;YAC9F,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC;SAC/B;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACvD,CAAC;IAES,MAAM,CAAC,oBAAoB,CACnC,eAA4D,EAC5D,gBAAkC;QAElC,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CACpC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACV,CAAC;YACC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB;YAChD,eAAe,EAAE,IAAI,CAAC,kBAAkB;YACxC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,iBAAiB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,kBAAkB,CAAC;YAC3D,oBAAoB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,sBAAsB,CAAC;YAClE,wBAAwB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,kBAAkB,CAAC;YAClE,uBAAuB,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,wBAAwB,CAAC;YACvE,UAAU,EAAE,EAAE;SACD,CAAA,CAClB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,MAAM,CAAC,8BAA8B,CAC7C,WAAoD,EACpD,WAAgC;QAEhC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,6BAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,YAAY,EAAE,IAAA,8BAAsB,EAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAE;YAClE,aAAa,EAAE,IAAA,8BAAsB,EAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAE;YACpE,UAAU,EAAE,CAAC;YACb,qBAAqB,EAAE,CAAC;YACxB,SAAS,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;YAC9D,QAAQ,EAAE,CAAC;YACX,qBAAqB,EAAE,GAAG,GAAG,IAAA,yBAAe,EAAC,IAAI,CAAC,mBAAmB,CAAC;YACtE,cAAc,EAAE,IAAA,yBAAe,EAAC,IAAI,CAAC,aAAa,CAAC;YACnD,cAAc,EAAE,KAAK,EAAE,YAAY;SACpC,CAAC,CAAC,CAAC;QACJ,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAC/B,cAAiC,EACjC,UAAsB,EACtB,gBAAuC,EACvC,uBAAyD,EACzD,oBAAyC,EACzC,mBAAyC,EACzC,WAAgC,EAChC,gBAA4B,EAC5B,SAAyB;QAEzB,mDAAmD;QACnD,IAAI,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACpD,IAAI,IAAI,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC;QAEtG,4DAA4D;QAC5D,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QACjG,qEAAqE;QACrE,IAAI,WAAW,GAAwB,MAAM,UAAU,CAAC,eAAe,CACrE,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,SAAS,CACV,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,UAAU,CAAC,4BAA4B,CACzG,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,SAAS,CACV,CAAC;QACF,wBAAwB;QACxB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,cAAc,GAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,GAAG,cAAe,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACxB,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAE,CAAC;gBAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,cAAe,CAAC,CAAC,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,UAAU,GAAG,cAAe,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,cAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAA0C;YACtG,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,IAAK,CAAC,sBAAsB,IAAI,uCAAwB,EAAE;gBAC5D,OAAO,GAAG,cAAe,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM,IAAI,IAAK,CAAC,sBAAsB,IAAI,yCAA0B,EAAE;gBACrE,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;aAC7B;YACD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAS,CAAE,CAAC;YAC5C,cAAc;YACd,MAAM,MAAM,GAAG,IAAK,CAAC,MAAM,CAAC;YAC5B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAl/CD,6BAk/CC"}
@@ -45,7 +45,7 @@ export interface NodeSDKConfig {
45
45
  lobFactoryABI?: ContractInterface | undefined;
46
46
  lobABI?: ContractInterface | undefined;
47
47
  shareTokenABI?: ContractInterface | undefined;
48
- priceFeedConfigLocation?: string | undefined;
48
+ priceFeedConfig?: PriceFeedConfig;
49
49
  }
50
50
  export interface MarginAccount {
51
51
  symbol: string;
@@ -53,15 +53,13 @@ class PerpetualDataHandler {
53
53
  }
54
54
  }
55
55
  catch (error) {
56
- console.log(error);
56
+ console.error(error);
57
57
  throw new Error(`Unable to connect to network.`);
58
58
  }
59
59
  if (network.chainId !== this.chainId) {
60
60
  throw new Error(`Provider: chain id ${network.chainId} does not match config (${this.chainId})`);
61
61
  }
62
62
  this.proxyContract = contracts_1.IPerpetualManager__factory.connect(this.proxyAddr, signerOrProvider);
63
- this.lobFactoryAddr = await this.proxyContract.getOrderBookFactoryAddress(overrides || {});
64
- this.lobFactoryContract = contracts_1.LimitOrderBookFactory__factory.connect(this.lobFactoryAddr, signerOrProvider);
65
63
  this.multicall = contracts_1.Multicall3__factory.connect(nodeSDKTypes_1.MULTICALL_ADDRESS, this.signerOrProvider);
66
64
  await this._fillSymbolMaps(overrides);
67
65
  }
@@ -84,13 +82,27 @@ class PerpetualDataHandler {
84
82
  *
85
83
  */
86
84
  async _fillSymbolMaps(overrides) {
87
- if (!this.proxyContract || !this.lobFactoryContract) {
88
- throw Error("proxy or limit order book not defined");
85
+ if (this.proxyContract == null || this.multicall == null || this.signerOrProvider == null) {
86
+ throw new Error("proxy or multicall not defined");
89
87
  }
90
88
  let poolInfo = await PerpetualDataHandler.getPoolStaticInfo(this.proxyContract, overrides);
91
89
  this.nestedPerpetualIDs = poolInfo.nestedPerpetualIDs;
90
+ const IERC20 = new abi_1.Interface(nodeSDKTypes_1.ERC20_ABI);
91
+ const proxyCalls = poolInfo.poolMarginTokenAddr.map((tokenAddr) => ({
92
+ target: tokenAddr,
93
+ allowFailure: false,
94
+ callData: IERC20.encodeFunctionData("decimals"),
95
+ }));
96
+ proxyCalls.push({
97
+ target: this.proxyAddr,
98
+ allowFailure: false,
99
+ callData: this.proxyContract.interface.encodeFunctionData("getOrderBookFactoryAddress"),
100
+ });
101
+ // multicall
102
+ const encodedResults = await this.multicall.callStatic.aggregate3(proxyCalls, overrides || {});
103
+ // decimals
92
104
  for (let j = 0; j < poolInfo.nestedPerpetualIDs.length; j++) {
93
- let decimals = await contracts_1.ERC20__factory.connect(poolInfo.poolMarginTokenAddr[j], this.provider).decimals();
105
+ const decimals = IERC20.decodeFunctionResult("decimals", encodedResults[j].returnData)[0];
94
106
  let info = {
95
107
  poolId: j + 1,
96
108
  poolMarginSymbol: "",
@@ -102,6 +114,9 @@ class PerpetualDataHandler {
102
114
  };
103
115
  this.poolStaticInfos.push(info);
104
116
  }
117
+ // order book factory
118
+ this.lobFactoryAddr = this.proxyContract.interface.decodeFunctionResult("getOrderBookFactoryAddress", encodedResults[0].returnData)[0];
119
+ this.lobFactoryContract = contracts_1.LimitOrderBookFactory__factory.connect(this.lobFactoryAddr, this.signerOrProvider);
105
120
  let perpStaticInfos = await PerpetualDataHandler.getPerpetualStaticInfo(this.proxyContract, this.nestedPerpetualIDs, this.symbolList, overrides);
106
121
  let requiredPairs = new Set();
107
122
  // 1) determine pool currency based on its perpetuals