grpc-libp2p-client 0.0.38 → 0.0.40

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.
@@ -20,6 +20,8 @@ class StreamWriter {
20
20
  this.lastBytesDrainedSeen = 0;
21
21
  this.lastBpWarnAt = 0;
22
22
  this.isHandlingError = false; // 防止重复错误处理
23
+ /** drain 事件驱动等待者,替代 flush() 中的 setInterval 轮询 */
24
+ this.drainWaiters = [];
23
25
  // 事件系统
24
26
  this.listeners = new Map();
25
27
  // 验证 stream 参数
@@ -121,8 +123,9 @@ class StreamWriter {
121
123
  // 使用 stream.send() 发送数据,返回 false 表示需要等待 drain
122
124
  const canContinue = this.stream.send(chunk);
123
125
  if (!canContinue) {
124
- // 等待 drain 事件
125
- await this.stream.onDrain();
126
+ // 传入 abort signal,当流被 abort 时 onDrain() 会立即 reject,
127
+ // 避免在 abort 路径下永久挂住
128
+ await this.stream.onDrain({ signal: this.abortController.signal });
126
129
  }
127
130
  }
128
131
  catch (err) {
@@ -138,6 +141,9 @@ class StreamWriter {
138
141
  throw err;
139
142
  }
140
143
  }
144
+ // pipeline 正常结束(stream 关闭或 pushable 耗尽)—— 确保资源清理
145
+ // 若已通过 abort() 触发则 cleanup() 内部幂等处理
146
+ this.cleanup();
141
147
  }
142
148
  createTransform() {
143
149
  // eslint-disable-next-line @typescript-eslint/no-this-alias
@@ -159,6 +165,16 @@ class StreamWriter {
159
165
  self.lastDrainEventAt = now;
160
166
  self.dispatchEvent(new CustomEvent('drain', { detail: { drained: self.bytesDrained, queueSize: self.queueSize } }));
161
167
  }
168
+ // 唤醒所有在等 flush() 或背压解除 的 drainWaiters(队列降低时就可唤醒)
169
+ if (self.drainWaiters.length > 0) {
170
+ const ws = self.drainWaiters.splice(0);
171
+ for (const fn of ws) {
172
+ try {
173
+ fn();
174
+ }
175
+ catch { /* ignore */ }
176
+ }
177
+ }
162
178
  // 记录本次已消耗字节,用于看门狗判断是否前进
163
179
  self.lastBytesDrainedSeen = self.bytesDrained;
164
180
  }
@@ -170,10 +186,11 @@ class StreamWriter {
170
186
  };
171
187
  }
172
188
  // 简单的卡顿看门狗:当队列长期高位且 bytesDrained 无进展时发出 stalled 事件
189
+ // 使用递归 setTimeout 而非 setInterval,避免标签页后台恢复时回调堆积导致 Violation
173
190
  startWatchdog(intervalMs = 500, stallMs = 1500) {
174
191
  if (this.watchdogTimer)
175
192
  return;
176
- this.watchdogTimer = setInterval(() => {
193
+ const tick = () => {
177
194
  if (this.abortController.signal.aborted)
178
195
  return;
179
196
  const baseThreshold = this.options.bufferSize * 0.7;
@@ -184,7 +201,13 @@ class StreamWriter {
184
201
  if (!this.stallStartAt)
185
202
  this.stallStartAt = now;
186
203
  if (now - this.stallStartAt >= stallMs) {
187
- this.dispatchEvent(new CustomEvent('stalled', { detail: { queueSize: q, drained: this.bytesDrained, sinceMs: now - this.stallStartAt } }));
204
+ // 异步触发事件,让当前 tick 立即返回,避免同步事件处理器阻塞主线程
205
+ const detail = { queueSize: q, drained: this.bytesDrained, sinceMs: now - this.stallStartAt };
206
+ setTimeout(() => {
207
+ if (!this.abortController.signal.aborted) {
208
+ this.dispatchEvent(new CustomEvent('stalled', { detail }));
209
+ }
210
+ }, 0);
188
211
  // 避免持续触发,推进起点
189
212
  this.stallStartAt = now;
190
213
  }
@@ -199,7 +222,10 @@ class StreamWriter {
199
222
  // 队列回落,重置
200
223
  this.stallStartAt = 0;
201
224
  }
202
- }, intervalMs);
225
+ // 本次 tick 完成后再安排下一次,不会因主线程繁忙而堆积
226
+ this.watchdogTimer = setTimeout(tick, intervalMs);
227
+ };
228
+ this.watchdogTimer = setTimeout(tick, intervalMs);
203
229
  }
204
230
  async write(data) {
205
231
  // 静默处理 aborted 状态,避免在正常的流关闭场景下抛出错误
@@ -236,10 +262,11 @@ class StreamWriter {
236
262
  return data;
237
263
  }
238
264
  async writeChunks(buffer) {
239
- for (let offset = 0; offset < buffer.byteLength; offset += this.options.chunkSize) {
240
- const end = Math.min(offset + this.options.chunkSize, buffer.byteLength);
241
- const chunk = new Uint8Array(end - offset);
242
- chunk.set(new Uint8Array(buffer.slice(offset, end)));
265
+ const src = new Uint8Array(buffer);
266
+ for (let offset = 0; offset < src.byteLength; offset += this.options.chunkSize) {
267
+ const end = Math.min(offset + this.options.chunkSize, src.byteLength);
268
+ // subarray 创建视图,不拷贝内存。pushable.push 不修改内容,安全。
269
+ const chunk = src.subarray(offset, end);
243
270
  await this.retryableWrite(chunk);
244
271
  this.updateProgress(chunk.byteLength);
245
272
  }
@@ -260,18 +287,12 @@ class StreamWriter {
260
287
  if (this.abortController.signal.aborted) {
261
288
  throw new Error('Stream aborted during backpressure monitoring');
262
289
  }
263
- await new Promise((resolve, reject) => {
264
- try {
265
- this.p.push(chunk);
266
- }
267
- catch (err) {
268
- reject(err);
269
- }
270
- resolve();
271
- });
290
+ // push 是同步操作,直接调用即可
291
+ this.p.push(chunk);
272
292
  }
273
293
  catch (err) {
274
- if (attempt < this.options.retries) {
294
+ // aborted 时不重试,立即抛出
295
+ if (!this.abortController.signal.aborted && attempt < this.options.retries) {
275
296
  const delay = this.calculateRetryDelay(attempt);
276
297
  await new Promise(r => setTimeout(r, delay));
277
298
  return this.retryableWrite(chunk, attempt + 1);
@@ -280,58 +301,45 @@ class StreamWriter {
280
301
  }
281
302
  }
282
303
  async monitorBackpressure() {
283
- const currentSize = this.queueSize;
284
- const baseThreshold = this.options.bufferSize * 0.7; // 降低基础阈值,更早检测
285
- const criticalThreshold = this.options.bufferSize * 0.9; // 临界阈值
286
- // 快速路径:无背压时直接返回
287
- if (currentSize < baseThreshold) {
304
+ const baseThreshold = this.options.bufferSize * 0.7;
305
+ const criticalThreshold = this.options.bufferSize * 0.9;
306
+ // 快速路径
307
+ if (this.queueSize < baseThreshold) {
288
308
  if (this.isBackpressure) {
289
309
  this.isBackpressure = false;
290
- this.dispatchBackpressureEvent({
291
- currentSize,
292
- averageSize: this.getAverageQueueSize(),
293
- threshold: baseThreshold,
294
- waitingTime: 0
295
- });
310
+ this.dispatchBackpressureEvent({ currentSize: this.queueSize, averageSize: this.getAverageQueueSize(), threshold: baseThreshold, waitingTime: 0 });
296
311
  }
297
312
  return;
298
313
  }
299
- // 进入背压状态
300
314
  if (!this.isBackpressure) {
301
315
  this.isBackpressure = true;
302
- this.dispatchBackpressureEvent({
303
- currentSize,
304
- averageSize: this.getAverageQueueSize(),
305
- threshold: baseThreshold,
306
- waitingTime: 0
307
- });
308
- }
309
- // 智能等待策略
310
- const pressure = currentSize / this.options.bufferSize;
311
- let waitTime;
312
- if (currentSize >= criticalThreshold) {
313
- // 临界状态:长时间等待
314
- waitTime = 50 + Math.min(200, pressure * 100);
315
- }
316
- else {
317
- // 轻度背压:短时间等待
318
- waitTime = Math.min(20, pressure * 30);
316
+ this.dispatchBackpressureEvent({ currentSize: this.queueSize, averageSize: this.getAverageQueueSize(), threshold: baseThreshold, waitingTime: 0 });
319
317
  }
320
- // 使用指数退避,但最多等待3
321
- let retryCount = 0;
322
- const maxRetries = 3;
323
- while (this.queueSize >= baseThreshold && retryCount < maxRetries) {
318
+ // 事件驱动等待:每轮等到 drain 触发或超时,最多 3
319
+ const maxRounds = 3;
320
+ for (let i = 0; i < maxRounds; i++) {
324
321
  if (this.abortController.signal.aborted)
325
322
  break;
326
- await new Promise(r => setTimeout(r, waitTime));
327
- retryCount++;
328
- // 动态调整等待时间
329
- waitTime = Math.min(waitTime * 1.5, 100);
323
+ if (this.queueSize < baseThreshold)
324
+ break;
325
+ const isCritical = this.queueSize >= criticalThreshold;
326
+ const waitMs = isCritical ? 100 : 30;
327
+ await new Promise(resolve => {
328
+ let done = false;
329
+ const timer = setTimeout(() => { if (!done) {
330
+ done = true;
331
+ resolve();
332
+ } }, waitMs);
333
+ this.drainWaiters.push(() => { if (!done) {
334
+ done = true;
335
+ clearTimeout(timer);
336
+ resolve();
337
+ } });
338
+ });
330
339
  }
331
- // 如果仍然背压但达到最大重试次数,记录警告但继续执行
332
340
  if (this.queueSize >= baseThreshold) {
333
341
  const now = Date.now();
334
- if (now - this.lastBpWarnAt > 1000) { // 节流警告
342
+ if (now - this.lastBpWarnAt > 1000) {
335
343
  this.lastBpWarnAt = now;
336
344
  console.warn(`Stream writer: High backpressure detected (${this.queueSize} bytes), continuing anyway`);
337
345
  }
@@ -423,11 +431,21 @@ class StreamWriter {
423
431
  if (!this.abortController.signal.aborted) {
424
432
  this.abortController.abort();
425
433
  }
426
- // 立即拒绝所有待处理的写入任务,避免它们继续执行
434
+ // 执行所有待处理的写入任务:它们会检查 signal.aborted 并立即 resolve,
435
+ // 不执行的话调用方的 Promise 会永远挂住
427
436
  const pendingTasks = this.writeQueue.splice(0);
428
- pendingTasks.forEach(() => {
429
- // 这些任务的 Promise 会在执行时因为检查到 aborted 而被拒绝
430
- });
437
+ for (const task of pendingTasks) {
438
+ task().catch(() => { });
439
+ }
440
+ // 唤醒所有 drainWaiters(flush / monitorBackpressure 中的等待者),
441
+ // 让它们检查 signal.aborted 并立即 resolve,不必等到各自的超时
442
+ const ws = this.drainWaiters.splice(0);
443
+ for (const fn of ws) {
444
+ try {
445
+ fn();
446
+ }
447
+ catch { /* ignore */ }
448
+ }
431
449
  try {
432
450
  this.p.end();
433
451
  }
@@ -435,29 +453,48 @@ class StreamWriter {
435
453
  // Ignore errors when ending pushable
436
454
  }
437
455
  if (this.watchdogTimer) {
438
- clearInterval(this.watchdogTimer);
456
+ clearTimeout(this.watchdogTimer);
439
457
  this.watchdogTimer = undefined;
440
458
  }
441
459
  }
442
460
  // 等待内部队列被下游完全消费(用于在结束前确保尽量发送完数据)
443
461
  // 默认超时 10s,避免无限等待
444
462
  async flush(timeoutMs = 10000) {
445
- const start = Date.now();
446
463
  // 快速路径
447
464
  if (this.queueSize <= 0 && !this.isProcessingQueue && this.writeQueue.length === 0)
448
465
  return;
449
- // 轮询等待队列清空
450
- while (true) {
451
- if (this.abortController.signal.aborted)
452
- return;
453
- if (this.queueSize <= 0 && !this.isProcessingQueue && this.writeQueue.length === 0)
454
- return;
455
- if (Date.now() - start > timeoutMs) {
456
- console.warn(`Stream writer: flush timeout with ${this.queueSize} bytes still queued`);
466
+ if (this.abortController.signal.aborted)
467
+ return;
468
+ await new Promise((resolve) => {
469
+ // 已经清空
470
+ if (this.queueSize <= 0 && !this.isProcessingQueue && this.writeQueue.length === 0) {
471
+ resolve();
457
472
  return;
458
473
  }
459
- await new Promise(r => setTimeout(r, 10));
460
- }
474
+ let done = false;
475
+ const timer = setTimeout(() => {
476
+ if (!done) {
477
+ done = true;
478
+ console.warn(`Stream writer: flush timeout with ${this.queueSize} bytes still queued`);
479
+ resolve();
480
+ }
481
+ }, timeoutMs);
482
+ // 由 createTransform 在每个 chunk 被下游消耗后唤醒
483
+ const check = () => {
484
+ if (this.abortController.signal.aborted || (this.queueSize <= 0 && !this.isProcessingQueue && this.writeQueue.length === 0)) {
485
+ if (!done) {
486
+ done = true;
487
+ clearTimeout(timer);
488
+ resolve();
489
+ }
490
+ }
491
+ else {
492
+ // 下次 drain 时再检查
493
+ this.drainWaiters.push(check);
494
+ }
495
+ };
496
+ this.drainWaiters.push(check);
497
+ });
461
498
  }
462
499
  addEventListener(type, callback) {
463
500
  const handlers = this.listeners.get(type) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"stream.esm.js","sources":["../../src/dc-http2/stream.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.esm.js","sources":["../../src/dc-http2/stream.ts"],"sourcesContent":[null],"names":[],"mappings":";;AA2BA,MAAM,YAAY,GAAG,CAAC,GAAC,IAAI,GAAE,CAAC;MACjB,YAAY,CAAA;IAyBvB,WAAA,CACU,MAAc,EACd,OAAA,GAA+B,EAAE,EAAA;QADjC,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,OAAO,GAAP,OAAO;;QAvBT,IAAA,CAAA,YAAY,GAAG,CAAC;AAChB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,EAAE;;QAGvC,IAAA,CAAA,mBAAmB,GAAa,EAAE;QAClC,IAAA,CAAA,cAAc,GAAG,KAAK;QACtB,IAAA,CAAA,UAAU,GAA4B,EAAE;QACxC,IAAA,CAAA,iBAAiB,GAAG,KAAK;AACzB,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,CAAA;AACzB,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,CAAA;QAChB,IAAA,CAAA,gBAAgB,GAAG,CAAC;QAEpB,IAAA,CAAA,YAAY,GAAG,CAAC;QAChB,IAAA,CAAA,oBAAoB,GAAG,CAAC;QACxB,IAAA,CAAA,YAAY,GAAG,CAAC;AAChB,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAA;;QAEvB,IAAA,CAAA,YAAY,GAAsB,EAAE;;AAifpC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAA4C;;QAxerE,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;QAChE;QAEA,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAe,KAAK,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE;QAEtF,IAAI,OAAO,EAAC;YACR,IAAI,CAAC,OAAO,GAAG;AACX,gBAAA,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,YAAY;gBAC5C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;AACjD,gBAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI;aAC7B;QACP;aAAK;YACD,IAAI,CAAC,OAAO,GAAG;AACX,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;AAC3B,gBAAA,OAAO,EAAE;aACZ;QACL;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,YAAY,EAAE;AACnE,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,YAAY;QACvC;QACA,MAAM,YAAY,GAAG,QAAQ,CAAa,EAAE,UAAU,EAAE,KAAK,EAAE,CAAiC;;QAG/F,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9D,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACtE,QAAA,YAAY,CAAC,UAAU,GAAG,CAAC;;;AAGzB,QAAA,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;AAC1C,YAAA,KAAK,EAAE,CAAC,KAAiB,KAAI;AAC3B,gBAAA,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU;AAC3C,gBAAA,OAAO,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;YAC1C,CAAC;AACD,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,YAAY,EAAE;AACf,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,CAAC,GAAG,YAAY;QACtB,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,aAAa,EAAE;IACtB;AAGA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU;IAC1B;;IAGQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;;QAGlC,IAAI,GAAG,GAAG,IAAI,CAAC,qBAAqB,GAAG,GAAG,EAAE;AAC1C,YAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACnB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1C,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;gBAClC;YACF;AACA,YAAA,IAAI,CAAC,qBAAqB,GAAG,GAAG;QAClC;AAEA,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,WAAW;QAC7D,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM;IAC9F;AAIQ,IAAA,WAAW,CAAC,GAAU,EAAA;;AAE5B,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/D;QACF;AAEA,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;AAG3B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;;AAGvB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D;QAAE,OAAO,QAAQ,EAAE;;YAEjB,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,+BAA+B,EAAE,QAAQ,CAAC;QAC9D;IACF;IAGQ,aAAa,GAAA;;AAEnB,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClE;AAEQ,IAAA,MAAM,YAAY,GAAA;;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,iDAAiD,CAAC;YACpE;QACF;;AAGA,QAAA,WAAW,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;YAExD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;gBACvC;YACF;AAEA,YAAA,IAAI;;gBAEF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3C,IAAI,CAAC,WAAW,EAAE;;;AAGhB,oBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBACpE;YACF;YAAE,OAAO,GAAY,EAAE;;gBAErB,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE;gBACtE,IAAI,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB;AACxD,oBAAA,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC1B,oBAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACzB,oBAAA,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE;oBACvD,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,6CAA6C,CAAC;oBAChE;gBACF;AACA,gBAAA,MAAM,GAAG;YACX;QACF;;;QAGA,IAAI,CAAC,OAAO,EAAE;IAChB;IAEQ,eAAe,GAAA;;QAErB,MAAM,IAAI,GAAG,IAAI;AACjB,QAAA,OAAO,iBAAiB,MAAiC,EAAA;AACvD,YAAA,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;;AAEhC,gBAAA,MAAM,KAAK;;;AAGX,gBAAA,IAAI;;oBAEF,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE;wBAC7B,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;oBACvE;AACA,oBAAA,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU;AACrC,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE;AACrC,wBAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG;wBAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACrH;;oBAEA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBAChC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,wBAAA,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE;AAAE,4BAAA,IAAI;AAAE,gCAAA,EAAE,EAAE;4BAAE;AAAE,4BAAA,MAAM,eAAe;wBAAE;oBAC9D;;AAEA,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY;gBAC/C;gBAAE,OAAO,GAAG,EAAE;;AAEZ,oBAAA,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,GAAG,CAAC;gBAE7E;YACF;AACF,QAAA,CAAC;IACH;;;AAIQ,IAAA,aAAa,CAAC,UAAA,GAAqB,GAAG,EAAE,UAAkB,IAAI,EAAA;QACpE,IAAI,IAAI,CAAC,aAAa;YAAE;QACxB,MAAM,IAAI,GAAG,MAAK;AAChB,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;gBAAE;YACzC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,GAAG,GAAG;AACpD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;AACxB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,aAAa,EAAE;gBACtB,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,YAAY,EAAE;oBACnD,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,wBAAA,IAAI,CAAC,YAAY,GAAG,GAAG;oBAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE;;wBAEtC,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;wBAC7F,UAAU,CAAC,MAAK;4BACd,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACxC,gCAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;4BAC5D;wBACF,CAAC,EAAE,CAAC,CAAC;;AAEL,wBAAA,IAAI,CAAC,YAAY,GAAG,GAAG;oBACzB;gBACF;qBAAO;;AAEL,oBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;AACrB,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY;gBAC/C;YACF;iBAAO;;AAEL,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;YACvB;;YAEA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;AACnD,QAAA,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;IACnD;IAEA,MAAM,KAAK,CAAC,IAA8C,EAAA;;QAExD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACvC,YAAA,OAAO,OAAO,CAAC,OAAO,EAAE;QAC1B;QAEA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,IAAI,GAAG,YAAW;AACtB,gBAAA,IAAI;;oBAEF,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACvC,wBAAA,OAAO,EAAE;wBACT;oBACF;oBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/C,oBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC9B,oBAAA,OAAO,EAAE;gBACX;gBAAE,OAAO,GAAG,EAAE;oBACZ,MAAM,CAAC,GAAG,CAAC;gBACb;AACF,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;IACJ;IAEQ,MAAM,eAAe,CAAC,IAA8C,EAAA;QAC1E,IAAI,IAAI,YAAY,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;QACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAqB;QACzF,IAAI,IAAI,YAAY,UAAU;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAgB;AAC3H,QAAA,OAAO,IAAI;IACb;IAEQ,MAAM,WAAW,CAAC,MAAmB,EAAA;AAC3C,QAAA,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AAClC,QAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAU,EAAE;AAC/E,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAU,EAAE,GAAG,CAAC,UAAU,CAAC;;YAEtE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;AAEvC,YAAA,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;QACvC;IACF;AAEQ,IAAA,MAAM,cAAc,CAAC,KAAiB,EAAE,OAAO,GAAG,CAAC,EAAA;;QAEzD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;QACpD;AAEA,QAAA,IAAI;;AAEF,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,GAAG,GAAG;AAEhD,YAAA,IAAI,WAAW,GAAG,SAAS,EAAE;AAC3B,gBAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE;YAClC;;YAGA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACvC,gBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;YAClE;;AAGA,YAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB;QAAE,OAAO,GAAG,EAAE;;AAEZ,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAQ,EAAE;gBAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAC/C,gBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;YAChD;AACA,YAAA,MAAM,GAAG;QACX;IACF;AAEQ,IAAA,MAAM,mBAAmB,GAAA;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,GAAG,GAAG;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,GAAG,GAAG;;AAGxD,QAAA,IAAI,IAAI,CAAC,SAAS,GAAG,aAAa,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;gBAC3B,IAAI,CAAC,yBAAyB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;YACpJ;YACA;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,IAAI,CAAC,yBAAyB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACpJ;;QAGA,MAAM,SAAS,GAAG,CAAC;AACnB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;gBAAE;AACzC,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,aAAa;gBAAE;AAEpC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,iBAAiB;YACtD,MAAM,MAAM,GAAG,UAAU,GAAG,GAAG,GAAG,EAAE;AAEpC,YAAA,MAAM,IAAI,OAAO,CAAO,OAAO,IAAG;gBAChC,IAAI,IAAI,GAAG,KAAK;gBAChB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,IAAI,EAAE;oBAAE,IAAI,GAAG,IAAI;AAAE,oBAAA,OAAO,EAAE;AAAC,gBAAA,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AACjF,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAK,EAAG,IAAI,CAAC,IAAI,EAAE;oBAAE,IAAI,GAAG,IAAI;oBAAE,YAAY,CAAC,KAAK,CAAC;AAAE,oBAAA,OAAO,EAAE;gBAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa,EAAE;AACnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE;AAClC,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAA,2CAAA,EAA8C,IAAI,CAAC,SAAS,CAAA,0BAAA,CAA4B,CAAC;YACxG;QACF;IACF;AAGQ,IAAA,mBAAmB,CAAC,OAAe,EAAA;QACzC,MAAM,SAAS,GAAG,EAAE;QACpB,MAAM,QAAQ,GAAG,GAAG;QACpB,OAAO,IAAI,CAAC,GAAG,CACb,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EACtD,QAAQ,CACT;IACH;AAEQ,IAAA,MAAM,YAAY,GAAA;QACxB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;YAAE;AACnE,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAE7B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;gBAAE;;AAGzC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,GAAG,GAAG,CAAA;AAEhD,YAAA,IAAI,WAAW,GAAG,SAAS,EAAE;AAC3B,gBAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE;YAClC;YAEA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAG;YACrC,MAAM,IAAI,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;IAChC;AAEQ,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,IAAI,KAAK;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;AAC7C,YAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY;AACpC,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,MAAM,GAAG,GAAA;AACP,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;;AAEZ,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;AAC1D,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YAC3B;YAAE,OAAO,GAAY,EAAE;;gBAErB,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE;AACtE,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC7D,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,qBAAqB,EAAE,GAAG,CAAC;gBAC/C;YACF;QACF;QACA,IAAI,CAAC,OAAO,EAAE;IAChB;IAEA,KAAK,CAAC,MAAM,GAAG,cAAc,EAAA;QAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACvC,YAAA,OAAM;QACR;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;AAElC,QAAA,IAAI;;;AAGF,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;;AAE1D,gBAAA,MAAM,WAAW,GAAI,IAAI,CAAC,MAA8C,CAAC,MAAM;AACzD,oBAAA,IAAI,CAAC,MAA8C,CAAC,KAAK;gBAC/E,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,SAAS,EAAE;oBACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtC;YACF;QACF;QAAE,OAAO,GAAY,EAAE;;;YAGrB,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE;YACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC1F,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,qBAAqB,EAAE,GAAG,CAAC;YAC/C;QACF;QAEA,IAAI,CAAC,OAAO,EAAE;;AAGd,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE;QAAE,OAAO,QAAQ,EAAE;;YAEjB,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,+BAA+B,EAAE,QAAQ,CAAC;QAC9D;IACF;IAEQ,OAAO,GAAA;;QAEb,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AACxC,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;QAC9B;;;QAIA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,QAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAK,EAAiC,CAAC,CAAC;QACvD;;;QAIA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,QAAA,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE;AAAE,YAAA,IAAI;AAAE,gBAAA,EAAE,EAAE;YAAC;AAAE,YAAA,MAAM,eAAe;QAAE;AAE3D,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;QACd;AAAE,QAAA,MAAM;;QAER;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS;QAAC;IAC7F;;;AAIA,IAAA,MAAM,KAAK,CAAC,SAAA,GAAoB,KAAK,EAAA;;AAEnC,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE;AACpF,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;YAAE;AAEzC,QAAA,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;;AAElC,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAClF,gBAAA,OAAO,EAAE;gBAAE;YACb;YACA,IAAI,IAAI,GAAG,KAAK;AAChB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;gBAC5B,IAAI,CAAC,IAAI,EAAE;oBACT,IAAI,GAAG,IAAI;oBACX,OAAO,CAAC,IAAI,CAAC,CAAA,kCAAA,EAAqC,IAAI,CAAC,SAAS,CAAA,mBAAA,CAAqB,CAAC;AACtF,oBAAA,OAAO,EAAE;gBACX;YACF,CAAC,EAAE,SAAS,CAAC;;YAEb,MAAM,KAAK,GAAG,MAAK;AACjB,gBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;oBAC3H,IAAI,CAAC,IAAI,EAAE;wBAAE,IAAI,GAAG,IAAI;wBAAE,YAAY,CAAC,KAAK,CAAC;AAAE,wBAAA,OAAO,EAAE;oBAAC;gBAC3D;qBAAO;;AAEL,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC/B;AACF,YAAA,CAAC;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,QAAA,CAAC,CAAC;IACJ;IAKA,gBAAgB,CAAC,IAAY,EAAE,QAAsC,EAAA;AACnE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;AAC/C,QAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;IACpC;;AAGM,IAAA,aAAa,CAAC,KAAkB,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AACrD,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C;;AAGQ,IAAA,yBAAyB,CAAC,MAA+B,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAA0B,cAAc,EAAE;YAC1E;AACD,SAAA,CAAC,CAAC;IACL;AAED;;;;"}