@jsonstudio/rcc 0.89.1086 → 0.89.1136
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.
- package/dist/build-info.js +2 -2
- package/dist/cli.js +39 -1
- package/dist/cli.js.map +1 -1
- package/dist/client/gemini/gemini-protocol-client.js +5 -0
- package/dist/client/gemini/gemini-protocol-client.js.map +1 -1
- package/dist/commands/provider-update.js +355 -5
- package/dist/commands/provider-update.js.map +1 -1
- package/dist/docs/daemon-admin-ui.html +604 -91
- package/dist/index.js +33 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/modules/quota/index.d.ts +37 -1
- package/dist/manager/modules/quota/index.js +378 -18
- package/dist/manager/modules/quota/index.js.map +1 -1
- package/dist/manager/quota/provider-quota-center.d.ts +3 -0
- package/dist/manager/quota/provider-quota-center.js +88 -24
- package/dist/manager/quota/provider-quota-center.js.map +1 -1
- package/dist/manager/quota/provider-quota-store.js +5 -2
- package/dist/manager/quota/provider-quota-store.js.map +1 -1
- package/dist/manager/types.d.ts +5 -0
- package/dist/providers/core/config/service-profiles.js +1 -1
- package/dist/providers/core/config/service-profiles.js.map +1 -1
- package/dist/providers/core/runtime/gemini-cli-http-provider.js +5 -0
- package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
- package/dist/providers/core/runtime/http-transport-provider.js +26 -38
- package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
- package/dist/providers/core/utils/http-client.js +10 -1
- package/dist/providers/core/utils/http-client.js.map +1 -1
- package/dist/server/handlers/handler-utils.d.ts +1 -1
- package/dist/server/handlers/handler-utils.js +82 -4
- package/dist/server/handlers/handler-utils.js.map +1 -1
- package/dist/server/handlers/responses-handler.js +26 -3
- package/dist/server/handlers/responses-handler.js.map +1 -1
- package/dist/server/handlers/sse-dispatcher.js +1 -4
- package/dist/server/handlers/sse-dispatcher.js.map +1 -1
- package/dist/server/runtime/http-server/colored-logger.d.ts +1 -1
- package/dist/server/runtime/http-server/colored-logger.js +22 -10
- package/dist/server/runtime/http-server/colored-logger.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.d.ts +1 -1
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +10 -14
- package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +108 -115
- package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +132 -7
- package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin/restart-handler.d.ts +3 -0
- package/dist/server/runtime/http-server/daemon-admin/restart-handler.js +22 -0
- package/dist/server/runtime/http-server/daemon-admin/restart-handler.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.d.ts +3 -0
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.js +56 -0
- package/dist/server/runtime/http-server/daemon-admin/stats-handler.js.map +1 -0
- package/dist/server/runtime/http-server/daemon-admin/status-handler.js +100 -4
- package/dist/server/runtime/http-server/daemon-admin/status-handler.js.map +1 -1
- package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +24 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js +25 -0
- package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
- package/dist/server/runtime/http-server/executor-provider.js +74 -0
- package/dist/server/runtime/http-server/executor-provider.js.map +1 -1
- package/dist/server/runtime/http-server/index.d.ts +7 -1
- package/dist/server/runtime/http-server/index.js +171 -14
- package/dist/server/runtime/http-server/index.js.map +1 -1
- package/dist/server/runtime/http-server/middleware.d.ts +2 -1
- package/dist/server/runtime/http-server/middleware.js +7 -6
- package/dist/server/runtime/http-server/middleware.js.map +1 -1
- package/dist/server/runtime/http-server/provider-utils.d.ts +1 -1
- package/dist/server/runtime/http-server/provider-utils.js +19 -2
- package/dist/server/runtime/http-server/provider-utils.js.map +1 -1
- package/dist/server/runtime/http-server/request-executor.js +9 -10
- package/dist/server/runtime/http-server/request-executor.js.map +1 -1
- package/dist/server/runtime/http-server/routes.d.ts +10 -0
- package/dist/server/runtime/http-server/routes.js +14 -1
- package/dist/server/runtime/http-server/routes.js.map +1 -1
- package/dist/server/runtime/http-server/stats-manager.d.ts +7 -0
- package/dist/server/runtime/http-server/stats-manager.js +22 -3
- package/dist/server/runtime/http-server/stats-manager.js.map +1 -1
- package/dist/server/runtime/http-server/types.d.ts +10 -0
- package/dist/server/utils/http-error-mapper.js +85 -7
- package/dist/server/utils/http-error-mapper.js.map +1 -1
- package/dist/server/utils/request-id-manager.js +9 -5
- package/dist/server/utils/request-id-manager.js.map +1 -1
- package/dist/server/utils/sse-request-parser.js +2 -1
- package/dist/server/utils/sse-request-parser.js.map +1 -1
- package/dist/server/utils/utf8-chunk-buffer.d.ts +15 -30
- package/dist/server/utils/utf8-chunk-buffer.js +78 -88
- package/dist/server/utils/utf8-chunk-buffer.js.map +1 -1
- package/dist/server/utils/warmup-storm-tracker.js +1 -1
- package/dist/server/utils/warmup-storm-tracker.js.map +1 -1
- package/dist/token-daemon/token-daemon.js +7 -1
- package/dist/token-daemon/token-daemon.js.map +1 -1
- package/dist/tools/provider-update/fetch-models.js +8 -5
- package/dist/tools/provider-update/fetch-models.js.map +1 -1
- package/dist/tools/provider-update/probe-context.d.ts +24 -0
- package/dist/tools/provider-update/probe-context.js +199 -0
- package/dist/tools/provider-update/probe-context.js.map +1 -0
- package/dist/tools/provider-update/types.d.ts +1 -0
- package/package.json +6 -4
- package/scripts/scan-apply-patch-samples.mjs +362 -0
- package/scripts/scan-exec-command-samples.mjs +269 -0
- package/scripts/scan-tool-shape-samples.mjs +291 -0
- package/scripts/tools/sync-apply-patch-regressions.mjs +86 -0
- package/scripts/verify-apply-patch-regressions.mjs +119 -0
- package/scripts/verify-tool-arguments.mjs +1 -2
|
@@ -13,9 +13,11 @@ export class QuotaManagerModule {
|
|
|
13
13
|
snapshot = {};
|
|
14
14
|
antigravityTokens = new Map();
|
|
15
15
|
refreshTimer = null;
|
|
16
|
+
quotaRoutingEnabled = true;
|
|
16
17
|
providerErrorCenter = null;
|
|
17
18
|
async init(context) {
|
|
18
19
|
this.snapshot = this.loadSnapshotFromDisk();
|
|
20
|
+
this.quotaRoutingEnabled = context.quotaRoutingEnabled !== false;
|
|
19
21
|
}
|
|
20
22
|
async start() {
|
|
21
23
|
// 启动时立即做一次最佳努力刷新,然后根据 token 过期时间和 15 分钟基准动态调度后续刷新。
|
|
@@ -355,6 +357,9 @@ export class QuotaManagerModule {
|
|
|
355
357
|
if (!providerKey || !modelId) {
|
|
356
358
|
return;
|
|
357
359
|
}
|
|
360
|
+
if (!this.quotaRoutingEnabled) {
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
358
363
|
const center = await this.getProviderErrorCenterInstance();
|
|
359
364
|
if (!center) {
|
|
360
365
|
return;
|
|
@@ -391,6 +396,9 @@ export class QuotaManagerModule {
|
|
|
391
396
|
if (!providerKey || !modelId) {
|
|
392
397
|
return;
|
|
393
398
|
}
|
|
399
|
+
if (!this.quotaRoutingEnabled) {
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
394
402
|
const center = await this.getProviderErrorCenterInstance();
|
|
395
403
|
if (!center) {
|
|
396
404
|
return;
|
|
@@ -428,25 +436,174 @@ export class QuotaManagerModule {
|
|
|
428
436
|
export class ProviderQuotaDaemonModule {
|
|
429
437
|
id = 'provider-quota';
|
|
430
438
|
quotaStates = new Map();
|
|
439
|
+
staticConfigs = new Map();
|
|
431
440
|
unsubscribe = null;
|
|
432
441
|
maintenanceTimer = null;
|
|
433
442
|
persistTimer = null;
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
443
|
+
quotaRoutingEnabled = true;
|
|
444
|
+
async loadSnapshotIntoMemory() {
|
|
445
|
+
// Always clear in-memory state first so operator actions like deleting provider-quota.json
|
|
446
|
+
// take effect immediately after a reload.
|
|
447
|
+
this.quotaStates = new Map();
|
|
448
|
+
const snapshot = await loadProviderQuotaSnapshot();
|
|
449
|
+
if (snapshot && snapshot.providers && typeof snapshot.providers === 'object') {
|
|
450
|
+
for (const [providerKey, state] of Object.entries(snapshot.providers)) {
|
|
451
|
+
if (state && typeof state === 'object') {
|
|
452
|
+
this.quotaStates.set(providerKey, normalizeLoadedQuotaState(providerKey, state));
|
|
442
453
|
}
|
|
443
454
|
}
|
|
444
455
|
}
|
|
456
|
+
if (this.quotaStates.size) {
|
|
457
|
+
const nowMs = Date.now();
|
|
458
|
+
let changed = false;
|
|
459
|
+
for (const [providerKey, state] of this.quotaStates.entries()) {
|
|
460
|
+
const next = tickQuotaStateTime(state, nowMs);
|
|
461
|
+
if (next !== state) {
|
|
462
|
+
this.quotaStates.set(providerKey, next);
|
|
463
|
+
changed = true;
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
if (changed) {
|
|
467
|
+
this.schedulePersist(nowMs);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
// Ensure we always have default entries for known providers (seeded via static configs),
|
|
471
|
+
// so deleting the snapshot file doesn't permanently "hide" providers from admin views.
|
|
472
|
+
if (this.staticConfigs.size) {
|
|
473
|
+
const nowMs = Date.now();
|
|
474
|
+
let seeded = false;
|
|
475
|
+
for (const [providerKey, cfg] of this.staticConfigs.entries()) {
|
|
476
|
+
if (this.quotaStates.has(providerKey)) {
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
this.quotaStates.set(providerKey, createInitialQuotaState(providerKey, cfg, nowMs));
|
|
480
|
+
seeded = true;
|
|
481
|
+
}
|
|
482
|
+
if (seeded) {
|
|
483
|
+
this.schedulePersist(nowMs);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
async init(context) {
|
|
488
|
+
this.quotaRoutingEnabled = context.quotaRoutingEnabled !== false;
|
|
489
|
+
try {
|
|
490
|
+
await this.loadSnapshotIntoMemory();
|
|
491
|
+
}
|
|
445
492
|
catch {
|
|
446
493
|
this.quotaStates = new Map();
|
|
447
494
|
}
|
|
448
495
|
}
|
|
496
|
+
async reloadFromDisk() {
|
|
497
|
+
await this.loadSnapshotIntoMemory();
|
|
498
|
+
return { loadedAt: Date.now(), providerCount: this.quotaStates.size };
|
|
499
|
+
}
|
|
500
|
+
async reset(options = {}) {
|
|
501
|
+
const nowMs = Date.now();
|
|
502
|
+
this.quotaStates = new Map();
|
|
503
|
+
// Rebuild default quota entries for known providers so routing can recover immediately.
|
|
504
|
+
if (this.staticConfigs.size) {
|
|
505
|
+
for (const [providerKey, cfg] of this.staticConfigs.entries()) {
|
|
506
|
+
this.quotaStates.set(providerKey, createInitialQuotaState(providerKey, cfg, nowMs));
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
const persisted = options.persist !== false;
|
|
510
|
+
if (persisted) {
|
|
511
|
+
try {
|
|
512
|
+
await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date(nowMs));
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
// ignore persistence failure
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
return { resetAt: nowMs, persisted };
|
|
519
|
+
}
|
|
520
|
+
async resetProvider(providerKey) {
|
|
521
|
+
const key = typeof providerKey === 'string' ? providerKey.trim() : '';
|
|
522
|
+
if (!key) {
|
|
523
|
+
return null;
|
|
524
|
+
}
|
|
525
|
+
const nowMs = Date.now();
|
|
526
|
+
const next = createInitialQuotaState(key, this.staticConfigs.get(key), nowMs);
|
|
527
|
+
this.quotaStates.set(key, next);
|
|
528
|
+
try {
|
|
529
|
+
await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date(nowMs));
|
|
530
|
+
}
|
|
531
|
+
catch {
|
|
532
|
+
// ignore persistence failure
|
|
533
|
+
}
|
|
534
|
+
return { providerKey: key, state: next };
|
|
535
|
+
}
|
|
536
|
+
async recoverProvider(providerKey) {
|
|
537
|
+
const key = typeof providerKey === 'string' ? providerKey.trim() : '';
|
|
538
|
+
if (!key) {
|
|
539
|
+
return null;
|
|
540
|
+
}
|
|
541
|
+
const nowMs = Date.now();
|
|
542
|
+
const previous = this.quotaStates.get(key) ??
|
|
543
|
+
createInitialQuotaState(key, this.staticConfigs.get(key), nowMs);
|
|
544
|
+
const next = {
|
|
545
|
+
...previous,
|
|
546
|
+
inPool: true,
|
|
547
|
+
reason: 'ok',
|
|
548
|
+
cooldownUntil: null,
|
|
549
|
+
blacklistUntil: null,
|
|
550
|
+
lastErrorSeries: null,
|
|
551
|
+
consecutiveErrorCount: 0
|
|
552
|
+
};
|
|
553
|
+
this.quotaStates.set(key, next);
|
|
554
|
+
try {
|
|
555
|
+
await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date(nowMs));
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
// ignore persistence failure
|
|
559
|
+
}
|
|
560
|
+
return { providerKey: key, state: next };
|
|
561
|
+
}
|
|
562
|
+
async disableProvider(options) {
|
|
563
|
+
const key = typeof options?.providerKey === 'string' ? options.providerKey.trim() : '';
|
|
564
|
+
if (!key) {
|
|
565
|
+
return null;
|
|
566
|
+
}
|
|
567
|
+
const durationMs = typeof options.durationMs === 'number' && Number.isFinite(options.durationMs) && options.durationMs > 0
|
|
568
|
+
? Math.floor(options.durationMs)
|
|
569
|
+
: 0;
|
|
570
|
+
if (!durationMs) {
|
|
571
|
+
return null;
|
|
572
|
+
}
|
|
573
|
+
const mode = options.mode === 'blacklist' ? 'blacklist' : 'cooldown';
|
|
574
|
+
const nowMs = Date.now();
|
|
575
|
+
const previous = this.quotaStates.get(key) ??
|
|
576
|
+
createInitialQuotaState(key, this.staticConfigs.get(key), nowMs);
|
|
577
|
+
const next = mode === 'blacklist'
|
|
578
|
+
? {
|
|
579
|
+
...previous,
|
|
580
|
+
inPool: false,
|
|
581
|
+
reason: 'blacklist',
|
|
582
|
+
blacklistUntil: nowMs + durationMs,
|
|
583
|
+
cooldownUntil: null
|
|
584
|
+
}
|
|
585
|
+
: {
|
|
586
|
+
...previous,
|
|
587
|
+
inPool: false,
|
|
588
|
+
reason: 'cooldown',
|
|
589
|
+
cooldownUntil: nowMs + durationMs
|
|
590
|
+
};
|
|
591
|
+
this.quotaStates.set(key, next);
|
|
592
|
+
try {
|
|
593
|
+
await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date(nowMs));
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
// ignore persistence failure
|
|
597
|
+
}
|
|
598
|
+
return { providerKey: key, state: next };
|
|
599
|
+
}
|
|
600
|
+
getAdminSnapshot() {
|
|
601
|
+
return this.toSnapshotObject();
|
|
602
|
+
}
|
|
449
603
|
async start() {
|
|
604
|
+
if (!this.quotaRoutingEnabled) {
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
450
607
|
let center = null;
|
|
451
608
|
try {
|
|
452
609
|
center = await getProviderErrorCenter();
|
|
@@ -456,7 +613,9 @@ export class ProviderQuotaDaemonModule {
|
|
|
456
613
|
}
|
|
457
614
|
if (center && typeof center.subscribe === 'function') {
|
|
458
615
|
this.unsubscribe = center.subscribe((event) => {
|
|
459
|
-
void this.handleProviderErrorEvent(event)
|
|
616
|
+
void this.handleProviderErrorEvent(event).catch(() => {
|
|
617
|
+
// swallow handler errors to avoid unhandled rejection noise; quota updates are best-effort
|
|
618
|
+
});
|
|
460
619
|
});
|
|
461
620
|
}
|
|
462
621
|
const intervalMs = readPositiveNumberFromEnv('ROUTECODEX_QUOTA_DAEMON_INTERVAL_MS', 60_000);
|
|
@@ -467,6 +626,11 @@ export class ProviderQuotaDaemonModule {
|
|
|
467
626
|
});
|
|
468
627
|
}, intervalMs);
|
|
469
628
|
}
|
|
629
|
+
// Run a one-off maintenance tick immediately so expired cooldown/blacklist entries
|
|
630
|
+
// are cleared even before the first request hits quotaView.
|
|
631
|
+
void this.runMaintenanceTick().catch(() => {
|
|
632
|
+
// ignore immediate tick failures
|
|
633
|
+
});
|
|
470
634
|
}
|
|
471
635
|
async stop() {
|
|
472
636
|
if (this.unsubscribe) {
|
|
@@ -486,6 +650,9 @@ export class ProviderQuotaDaemonModule {
|
|
|
486
650
|
clearTimeout(this.persistTimer);
|
|
487
651
|
this.persistTimer = null;
|
|
488
652
|
}
|
|
653
|
+
if (!this.quotaRoutingEnabled) {
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
489
656
|
try {
|
|
490
657
|
await saveProviderQuotaSnapshot(this.toSnapshotObject(), new Date());
|
|
491
658
|
}
|
|
@@ -494,6 +661,9 @@ export class ProviderQuotaDaemonModule {
|
|
|
494
661
|
}
|
|
495
662
|
}
|
|
496
663
|
recordProviderUsage(event) {
|
|
664
|
+
if (!this.quotaRoutingEnabled) {
|
|
665
|
+
return;
|
|
666
|
+
}
|
|
497
667
|
const providerKey = typeof event?.providerKey === 'string' ? event.providerKey.trim() : '';
|
|
498
668
|
if (!providerKey) {
|
|
499
669
|
return;
|
|
@@ -504,12 +674,16 @@ export class ProviderQuotaDaemonModule {
|
|
|
504
674
|
const requestedTokens = typeof event.requestedTokens === 'number' && Number.isFinite(event.requestedTokens) && event.requestedTokens > 0
|
|
505
675
|
? event.requestedTokens
|
|
506
676
|
: 0;
|
|
507
|
-
const previous = this.quotaStates.get(providerKey) ??
|
|
677
|
+
const previous = this.quotaStates.get(providerKey) ??
|
|
678
|
+
createInitialQuotaState(providerKey, this.staticConfigs.get(providerKey), nowMs);
|
|
508
679
|
const nextState = applyQuotaUsageEvent(previous, { providerKey, requestedTokens, timestampMs: nowMs }, nowMs);
|
|
509
680
|
this.quotaStates.set(providerKey, nextState);
|
|
510
681
|
this.schedulePersist(nowMs);
|
|
511
682
|
}
|
|
512
683
|
recordProviderSuccess(event) {
|
|
684
|
+
if (!this.quotaRoutingEnabled) {
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
513
687
|
const providerKey = typeof event?.providerKey === 'string' ? event.providerKey.trim() : '';
|
|
514
688
|
if (!providerKey) {
|
|
515
689
|
return;
|
|
@@ -520,11 +694,45 @@ export class ProviderQuotaDaemonModule {
|
|
|
520
694
|
const usedTokens = typeof event.usedTokens === 'number' && Number.isFinite(event.usedTokens) && event.usedTokens > 0
|
|
521
695
|
? event.usedTokens
|
|
522
696
|
: 0;
|
|
523
|
-
const previous = this.quotaStates.get(providerKey) ??
|
|
697
|
+
const previous = this.quotaStates.get(providerKey) ??
|
|
698
|
+
createInitialQuotaState(providerKey, this.staticConfigs.get(providerKey), nowMs);
|
|
524
699
|
const nextState = applyQuotaSuccessEvent(previous, { providerKey, usedTokens, timestampMs: nowMs }, nowMs);
|
|
525
700
|
this.quotaStates.set(providerKey, nextState);
|
|
526
701
|
this.schedulePersist(nowMs);
|
|
527
702
|
}
|
|
703
|
+
registerProviderStaticConfig(providerKey, config = {}) {
|
|
704
|
+
if (!this.quotaRoutingEnabled) {
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
const key = typeof providerKey === 'string' ? providerKey.trim() : '';
|
|
708
|
+
if (!key) {
|
|
709
|
+
return;
|
|
710
|
+
}
|
|
711
|
+
const authTypeRaw = typeof config.authType === 'string' ? config.authType.trim().toLowerCase() : '';
|
|
712
|
+
const authType = authTypeRaw === 'apikey' ? 'apikey' : authTypeRaw === 'oauth' ? 'oauth' : 'unknown';
|
|
713
|
+
const staticConfig = {
|
|
714
|
+
...(typeof config.priorityTier === 'number' && Number.isFinite(config.priorityTier)
|
|
715
|
+
? { priorityTier: config.priorityTier }
|
|
716
|
+
: {}),
|
|
717
|
+
authType
|
|
718
|
+
};
|
|
719
|
+
this.staticConfigs.set(key, staticConfig);
|
|
720
|
+
const nowMs = Date.now();
|
|
721
|
+
const existing = this.quotaStates.get(key);
|
|
722
|
+
if (existing) {
|
|
723
|
+
this.quotaStates.set(key, {
|
|
724
|
+
...existing,
|
|
725
|
+
authType,
|
|
726
|
+
...(typeof staticConfig.priorityTier === 'number' ? { priorityTier: staticConfig.priorityTier } : {})
|
|
727
|
+
});
|
|
728
|
+
return;
|
|
729
|
+
}
|
|
730
|
+
// If snapshot is missing (or operator cleared it), we still want a predictable default:
|
|
731
|
+
// API-key providers start "inPool: true" with unlimited quota until errors are observed.
|
|
732
|
+
// We persist (debounced) so admin tools can inspect the pool quickly after startup.
|
|
733
|
+
this.quotaStates.set(key, createInitialQuotaState(key, staticConfig, nowMs));
|
|
734
|
+
this.schedulePersist(nowMs);
|
|
735
|
+
}
|
|
528
736
|
async handleProviderErrorEvent(event) {
|
|
529
737
|
if (!event) {
|
|
530
738
|
return;
|
|
@@ -537,7 +745,12 @@ export class ProviderQuotaDaemonModule {
|
|
|
537
745
|
const nowMs = typeof event.timestamp === 'number' && Number.isFinite(event.timestamp) && event.timestamp > 0
|
|
538
746
|
? event.timestamp
|
|
539
747
|
: Date.now();
|
|
540
|
-
const previous = this.quotaStates.get(providerKey) ??
|
|
748
|
+
const previous = this.quotaStates.get(providerKey) ??
|
|
749
|
+
createInitialQuotaState(providerKey, this.staticConfigs.get(providerKey), nowMs);
|
|
750
|
+
// fatal 黑名单在锁定期内,不应被其它事件(包括 429/配额信号)改变。
|
|
751
|
+
if (previous.reason === 'fatal' && previous.blacklistUntil && nowMs < previous.blacklistUntil) {
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
541
754
|
// QUOTA_* 属于“确定性配额信号”,不进入错误 series 统计。
|
|
542
755
|
if (code === 'QUOTA_DEPLETED') {
|
|
543
756
|
const detailCarrier = (event.details && typeof event.details === 'object') ? event.details : {};
|
|
@@ -573,6 +786,45 @@ export class ProviderQuotaDaemonModule {
|
|
|
573
786
|
}
|
|
574
787
|
return;
|
|
575
788
|
}
|
|
789
|
+
// Gemini-family quota exhausted errors often carry quota reset delay.
|
|
790
|
+
// When present, treat as deterministic quota depletion signal rather than generic 429 backoff/blacklist.
|
|
791
|
+
if (typeof event.status === 'number' && event.status === 429) {
|
|
792
|
+
const seriesCooldownUntil = extractVirtualRouterSeriesCooldownUntil(event, nowMs);
|
|
793
|
+
if (seriesCooldownUntil) {
|
|
794
|
+
const nextState = {
|
|
795
|
+
...previous,
|
|
796
|
+
inPool: false,
|
|
797
|
+
reason: 'quotaDepleted',
|
|
798
|
+
cooldownUntil: seriesCooldownUntil,
|
|
799
|
+
blacklistUntil: null,
|
|
800
|
+
lastErrorSeries: null,
|
|
801
|
+
consecutiveErrorCount: 0
|
|
802
|
+
};
|
|
803
|
+
this.quotaStates.set(providerKey, nextState);
|
|
804
|
+
this.schedulePersist(nowMs);
|
|
805
|
+
return;
|
|
806
|
+
}
|
|
807
|
+
const runtime = event.runtime;
|
|
808
|
+
const providerIdRaw = runtime && typeof runtime.providerId === 'string' ? runtime.providerId.trim().toLowerCase() : '';
|
|
809
|
+
const isQuotaProvider = providerIdRaw === 'antigravity' || providerIdRaw === 'gemini-cli';
|
|
810
|
+
if (isQuotaProvider) {
|
|
811
|
+
const ttl = parseQuotaResetDelayMs(event);
|
|
812
|
+
if (ttl && ttl > 0) {
|
|
813
|
+
const nextState = {
|
|
814
|
+
...previous,
|
|
815
|
+
inPool: false,
|
|
816
|
+
reason: 'quotaDepleted',
|
|
817
|
+
cooldownUntil: nowMs + ttl,
|
|
818
|
+
blacklistUntil: null,
|
|
819
|
+
lastErrorSeries: null,
|
|
820
|
+
consecutiveErrorCount: 0
|
|
821
|
+
};
|
|
822
|
+
this.quotaStates.set(providerKey, nextState);
|
|
823
|
+
this.schedulePersist(nowMs);
|
|
824
|
+
return;
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
576
828
|
const errorForQuota = {
|
|
577
829
|
providerKey,
|
|
578
830
|
httpStatus: typeof event.status === 'number' ? event.status : undefined,
|
|
@@ -662,6 +914,9 @@ export class ProviderQuotaDaemonModule {
|
|
|
662
914
|
return null;
|
|
663
915
|
}
|
|
664
916
|
getQuotaView() {
|
|
917
|
+
if (!this.quotaRoutingEnabled) {
|
|
918
|
+
return () => null;
|
|
919
|
+
}
|
|
665
920
|
return (providerKey) => {
|
|
666
921
|
const key = typeof providerKey === 'string' ? providerKey.trim() : '';
|
|
667
922
|
if (!key) {
|
|
@@ -671,13 +926,22 @@ export class ProviderQuotaDaemonModule {
|
|
|
671
926
|
if (!state) {
|
|
672
927
|
return null;
|
|
673
928
|
}
|
|
929
|
+
// 视图层做一次“即时修复”,确保即使 maintenance tick 未运行,
|
|
930
|
+
// 冷却/黑名单到期也能立刻恢复可用状态,避免路由长期卡死。
|
|
931
|
+
const nowMs = Date.now();
|
|
932
|
+
const normalized = tickQuotaStateTime(state, nowMs);
|
|
933
|
+
if (normalized !== state) {
|
|
934
|
+
this.quotaStates.set(key, normalized);
|
|
935
|
+
this.schedulePersist(nowMs);
|
|
936
|
+
}
|
|
937
|
+
const effective = normalized;
|
|
674
938
|
return {
|
|
675
|
-
providerKey:
|
|
676
|
-
inPool:
|
|
677
|
-
reason:
|
|
678
|
-
priorityTier:
|
|
679
|
-
cooldownUntil:
|
|
680
|
-
blacklistUntil:
|
|
939
|
+
providerKey: effective.providerKey,
|
|
940
|
+
inPool: effective.inPool,
|
|
941
|
+
reason: effective.reason,
|
|
942
|
+
priorityTier: effective.priorityTier,
|
|
943
|
+
cooldownUntil: effective.cooldownUntil ?? null,
|
|
944
|
+
blacklistUntil: effective.blacklistUntil ?? null
|
|
681
945
|
};
|
|
682
946
|
};
|
|
683
947
|
}
|
|
@@ -703,6 +967,102 @@ export class ProviderQuotaDaemonModule {
|
|
|
703
967
|
return false;
|
|
704
968
|
}
|
|
705
969
|
}
|
|
970
|
+
function extractVirtualRouterSeriesCooldownUntil(event, nowMs) {
|
|
971
|
+
if (!event || !event.details || typeof event.details !== 'object') {
|
|
972
|
+
return null;
|
|
973
|
+
}
|
|
974
|
+
const raw = event.details.virtualRouterSeriesCooldown;
|
|
975
|
+
if (!raw || typeof raw !== 'object') {
|
|
976
|
+
return null;
|
|
977
|
+
}
|
|
978
|
+
const record = raw;
|
|
979
|
+
const cooldownMsRaw = record.cooldownMs;
|
|
980
|
+
const expiresAtRaw = record.expiresAt;
|
|
981
|
+
const expiresAt = typeof expiresAtRaw === 'number' && Number.isFinite(expiresAtRaw) && expiresAtRaw > nowMs
|
|
982
|
+
? expiresAtRaw
|
|
983
|
+
: null;
|
|
984
|
+
if (expiresAt) {
|
|
985
|
+
return expiresAt;
|
|
986
|
+
}
|
|
987
|
+
const cooldownMs = typeof cooldownMsRaw === 'number'
|
|
988
|
+
? cooldownMsRaw
|
|
989
|
+
: typeof cooldownMsRaw === 'string'
|
|
990
|
+
? Number.parseFloat(cooldownMsRaw)
|
|
991
|
+
: Number.NaN;
|
|
992
|
+
if (!Number.isFinite(cooldownMs) || cooldownMs <= 0) {
|
|
993
|
+
return null;
|
|
994
|
+
}
|
|
995
|
+
return nowMs + cooldownMs;
|
|
996
|
+
}
|
|
997
|
+
function parseQuotaResetDelayMs(event) {
|
|
998
|
+
const message = typeof event.message === 'string' ? event.message : '';
|
|
999
|
+
const raw = message.toLowerCase();
|
|
1000
|
+
// Common shape: "reset after 3h22m41s" (Gemini quota exhausted)
|
|
1001
|
+
const afterMatch = raw.match(/reset after\s+([0-9a-z\.\s]+)\.?/i);
|
|
1002
|
+
if (afterMatch && afterMatch[1]) {
|
|
1003
|
+
const parsed = parseDurationToMs(afterMatch[1]);
|
|
1004
|
+
if (parsed && parsed > 0) {
|
|
1005
|
+
return parsed;
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
// Sometimes the upstream JSON is embedded; try extracting quotaResetDelay.
|
|
1009
|
+
const embeddedDelayMatch = raw.match(/quotaresetdelay\"\s*:\s*\"([^\"]+)\"/i);
|
|
1010
|
+
if (embeddedDelayMatch && embeddedDelayMatch[1]) {
|
|
1011
|
+
const parsed = parseDurationToMs(embeddedDelayMatch[1]);
|
|
1012
|
+
if (parsed && parsed > 0) {
|
|
1013
|
+
return parsed;
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
return null;
|
|
1017
|
+
}
|
|
1018
|
+
function parseDurationToMs(value) {
|
|
1019
|
+
if (!value || typeof value !== 'string') {
|
|
1020
|
+
return null;
|
|
1021
|
+
}
|
|
1022
|
+
const pattern = /(\d+(?:\.\d+)?)(ms|s|m|h)/gi;
|
|
1023
|
+
let totalMs = 0;
|
|
1024
|
+
let matched = false;
|
|
1025
|
+
let match;
|
|
1026
|
+
while ((match = pattern.exec(value)) !== null) {
|
|
1027
|
+
matched = true;
|
|
1028
|
+
const amount = Number.parseFloat(match[1]);
|
|
1029
|
+
if (!Number.isFinite(amount)) {
|
|
1030
|
+
continue;
|
|
1031
|
+
}
|
|
1032
|
+
const unit = match[2].toLowerCase();
|
|
1033
|
+
if (unit === 'ms') {
|
|
1034
|
+
totalMs += amount;
|
|
1035
|
+
}
|
|
1036
|
+
else if (unit === 'h') {
|
|
1037
|
+
totalMs += amount * 3_600_000;
|
|
1038
|
+
}
|
|
1039
|
+
else if (unit === 'm') {
|
|
1040
|
+
totalMs += amount * 60_000;
|
|
1041
|
+
}
|
|
1042
|
+
else if (unit === 's') {
|
|
1043
|
+
totalMs += amount * 1_000;
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
if (!matched) {
|
|
1047
|
+
return null;
|
|
1048
|
+
}
|
|
1049
|
+
if (totalMs <= 0) {
|
|
1050
|
+
return null;
|
|
1051
|
+
}
|
|
1052
|
+
return Math.round(totalMs);
|
|
1053
|
+
}
|
|
1054
|
+
function normalizeLoadedQuotaState(providerKey, state) {
|
|
1055
|
+
const key = typeof providerKey === 'string' && providerKey.trim() ? providerKey.trim() : state.providerKey;
|
|
1056
|
+
const rawAuth = typeof state.authType === 'string'
|
|
1057
|
+
? String(state.authType).trim().toLowerCase()
|
|
1058
|
+
: '';
|
|
1059
|
+
const authType = rawAuth === 'apikey' ? 'apikey' : rawAuth === 'oauth' ? 'oauth' : 'unknown';
|
|
1060
|
+
return {
|
|
1061
|
+
...state,
|
|
1062
|
+
providerKey: key,
|
|
1063
|
+
authType
|
|
1064
|
+
};
|
|
1065
|
+
}
|
|
706
1066
|
function readPositiveNumberFromEnv(name, fallback) {
|
|
707
1067
|
const raw = process.env[name];
|
|
708
1068
|
if (!raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/manager/modules/quota/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAE3B,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAEnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EACL,eAAe,IAAI,oBAAoB,EACvC,iBAAiB,IAAI,sBAAsB,EAC3C,eAAe,IAAI,oBAAoB,EACvC,uBAAuB,EACvB,kBAAkB,EAGnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,qCAAqC,CAAC;AAc7C,MAAM,OAAO,kBAAkB;IACpB,EAAE,GAAG,OAAO,CAAC;IAEd,QAAQ,GAAgC,EAAE,CAAC;IAC3C,iBAAiB,GAA8C,IAAI,GAAG,EAAE,CAAC;IACzE,YAAY,GAA0B,IAAI,CAAC;IAC3C,mBAAmB,GAIhB,IAAI,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,mDAAmD;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QACD,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACzC,6BAA6B;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,KAAa,EAAE,SAAiB,EAAE,OAAe;QACxE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;YACrC,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa,EAAE,KAA+B;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAgC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/D,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAgB;gBAC1B,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI;gBAC1F,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,OAAO,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACnB,MAAM,WAAW,GAAG,eAAe,OAAO,IAAI,OAAO,EAAE,CAAC;YACxD,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpF,KAAK,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,WAAmB,EAAE,OAAgB;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,4BAA4B;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,4CAA4C;QAC5C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,cAAc;QACZ,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,mBAAmB,CAAC,KAAa,EAAE,OAAe;QACxD,OAAO,iBAAiB,KAAK,IAAI,OAAO,EAAE,CAAC;IAC7C,CAAC;IAEO,uBAAuB,CAAC,WAAoB;QAClD,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,GAAY;QACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC5C,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5E,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB;QAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,OAAO,GAAG,cAAc,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACnE,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,cAAc,EAAE,CAAC;gBACxF,OAAO,GAAG,eAAe,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;YACvB,OAAO,GAAG,cAAc,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,KAAK,IAAI,CAAC,2BAA2B,EAAE;iBACpC,KAAK,CAAC,GAAG,EAAE;gBACV,yBAAyB;YAC3B,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;oBACzC,4BAA4B;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B;QACzC,IAAI,OAAO,GAAgC,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;gBACnC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC;oBAC3C,QAAQ,GAAG,MAAM,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B;QACzC,IAAI,OAAO,GAAiE,EAAE,CAAC;QAC/E,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE;gBACpC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACd,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAEO,gBAAgB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAChD,CAAC;IAEO,oBAAoB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,GAAG,GAAG,MAAqC,CAAC;YAClD,MAAM,MAAM,GAAgC,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACxC,SAAS;gBACX,CAAC;gBACD,IAAI,iBAAiB,GAAkB,IAAI,CAAC;gBAC5C,IAAI,OAAQ,KAAyC,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;oBACrF,iBAAiB,GAAI,KAAwC,CAAC,iBAAiB,IAAI,IAAI,CAAC;gBAC1F,CAAC;gBACD,IAAI,OAA2B,CAAC;gBAChC,IAAI,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACjE,OAAO,GAAI,KAA8B,CAAC,OAAO,CAAC;gBACpD,CAAC;gBACD,MAAM,SAAS,GACb,OAAQ,KAAiC,CAAC,SAAS,KAAK,QAAQ;oBAC9D,CAAC,CAAE,KAAgC,CAAC,SAAU;oBAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B;QAC1C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;YAC9C,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAChD,IAAI,CAAC,mBAAmB,GAAG,MAAmD,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,OAAe;QACvE,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yCAAyC;YAClD,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE;gBACP,SAAS,EAAE,SAAS,GAAG,EAAE;gBACzB,WAAW;gBACX,UAAU,EAAE,aAAa;aAC1B;YACD,SAAS,EAAE,GAAG;YACd,OAAO,EAAE;gBACP,0BAA0B,EAAE;oBAC1B,WAAW;oBACX,MAAM,EAAE,qBAAqB,OAAO,EAAE;oBACtC,MAAM,EAAE,eAAe;iBACxB;aACF;SACF,CAAC;QACF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,WAAmB,EACnB,OAAe,EACf,UAAmB;QAEnB,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAA4B;YACtC,0BAA0B,EAAE;gBAC1B,WAAW;gBACX,MAAM,EAAE,sBAAsB,OAAO,EAAE;gBACvC,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E;SACF,CAAC;QACF,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yCAAyC;YAClD,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE;gBACP,SAAS,EAAE,SAAS,GAAG,EAAE;gBACzB,WAAW;gBACX,UAAU,EAAE,aAAa;aAC1B;YACD,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,yBAAyB;IAC3B,EAAE,GAAG,gBAAgB,CAAC;IAEvB,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACjD,WAAW,GAAwB,IAAI,CAAC;IACxC,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,YAAY,GAA0B,IAAI,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,QAAwB;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,yBAAyB,EAAE,CAAC;YACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC7E,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,KAAmB,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,MAAM,GAGM,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAyB,EAAE,EAAE;gBAChE,KAAK,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;QAC5F,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;gBACvC,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;oBACxC,8BAA8B;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,KAAqF;QACvG,MAAM,WAAW,GAAG,OAAO,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC;YAClG,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,eAAe,GACnB,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC;YAC9G,CAAC,CAAC,KAAK,CAAC,eAAe;YACvB,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7G,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,qBAAqB,CAAC,KAAgF;QACpG,MAAM,WAAW,GAAG,OAAO,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC;YAClG,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,UAAU,GACd,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;YAC/F,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7G,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAyB;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;YAC5F,CAAC,CAAC,KAAK,CAAC,SAAS;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7G,uCAAuC;QACvC,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,OAAmC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7H,MAAM,GAAG,GAAG,aAAa,CAAC,0BAA0B,CAAC;YACrD,MAAM,UAAU,GACd,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAAgC,CAAC,UAAU,KAAK,QAAQ;gBAChG,CAAC,CAAG,GAA+B,CAAC,UAAqB;gBACzD,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,GAAG,GACP,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC;gBAC7E,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,SAAS,GAAe;gBAC5B,GAAG,QAAQ;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,eAAe;gBACvB,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa;aAC1D,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,eAAe,GACnB,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC;YACtE,MAAM,oBAAoB,GACxB,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC;YACrG,IAAI,CAAC,eAAe,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAe;oBAC5B,GAAG,QAAQ;oBACX,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,aAAa,EAAE,IAAI;iBACpB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAuB;YACxC,WAAW;YACX,UAAU,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACvE,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAClC,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE7C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC;gBAC7B,EAAE,EAAE,KAAK;gBACT,WAAW;gBACX,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC7E,UAAU,EAAE,OAAO,aAAa,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC/F,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAG,KAAK,CAAC,OAAkC,CAAC,SAAS;oBAC9D,aAAa,EAAG,KAAK,CAAC,OAAsC,CAAC,aAAa;iBAC3E;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,yBAAyB,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,KAAK,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC7E,4BAA4B;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC;IAEO,gBAAgB;QACtB,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,KAAyB;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkE,CAAC;QACzF,MAAM,MAAM,GACV,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;YAC9E,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;YAC5B,CAAC,CAAC,IAAI,CAAC;QACX,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;QACzC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,SAAS,GAAI,MAAoC,CAAC,WAAW,CAAC;YACpE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QAQV,OAAO,CAAC,WAAmB,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI;gBAC1C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;aAC7C,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,KAAyB;QAC/C,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/E,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,QAAgB;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/manager/modules/quota/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAE3B,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAEnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EACL,eAAe,IAAI,oBAAoB,EACvC,iBAAiB,IAAI,sBAAsB,EAC3C,eAAe,IAAI,oBAAoB,EACvC,uBAAuB,EACvB,kBAAkB,EAKnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,qCAAqC,CAAC;AAc7C,MAAM,OAAO,kBAAkB;IACpB,EAAE,GAAG,OAAO,CAAC;IAEd,QAAQ,GAAgC,EAAE,CAAC;IAC3C,iBAAiB,GAA8C,IAAI,GAAG,EAAE,CAAC;IACzE,YAAY,GAA0B,IAAI,CAAC;IAC3C,mBAAmB,GAAG,IAAI,CAAC;IAC3B,mBAAmB,GAIhB,IAAI,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,mDAAmD;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QACD,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACzC,6BAA6B;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,KAAa,EAAE,SAAiB,EAAE,OAAe;QACxE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;YACrC,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa,EAAE,KAA+B;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAgC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/D,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAgB;gBAC1B,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI;gBAC1F,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,OAAO,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACnB,MAAM,WAAW,GAAG,eAAe,OAAO,IAAI,OAAO,EAAE,CAAC;YACxD,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpF,KAAK,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,WAAmB,EAAE,OAAgB;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,4BAA4B;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,4CAA4C;QAC5C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,cAAc;QACZ,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,mBAAmB,CAAC,KAAa,EAAE,OAAe;QACxD,OAAO,iBAAiB,KAAK,IAAI,OAAO,EAAE,CAAC;IAC7C,CAAC;IAEO,uBAAuB,CAAC,WAAoB;QAClD,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,GAAY;QACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC5C,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,KAAK,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5E,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB;QAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,OAAO,GAAG,cAAc,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACnE,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,cAAc,EAAE,CAAC;gBACxF,OAAO,GAAG,eAAe,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;YACvB,OAAO,GAAG,cAAc,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,KAAK,IAAI,CAAC,2BAA2B,EAAE;iBACpC,KAAK,CAAC,GAAG,EAAE;gBACV,yBAAyB;YAC3B,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;oBACzC,4BAA4B;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B;QACzC,IAAI,OAAO,GAAgC,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;gBACnC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;oBACnC,SAAS;gBACX,CAAC;gBACD,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC;oBAC3C,QAAQ,GAAG,MAAM,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B;QACzC,IAAI,OAAO,GAAiE,EAAE,CAAC;QAC/E,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GACT,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBACtC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE;gBACpC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACd,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAEO,gBAAgB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAChD,CAAC;IAEO,oBAAoB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,GAAG,GAAG,MAAqC,CAAC;YAClD,MAAM,MAAM,GAAgC,EAAE,CAAC;YAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACxC,SAAS;gBACX,CAAC;gBACD,IAAI,iBAAiB,GAAkB,IAAI,CAAC;gBAC5C,IAAI,OAAQ,KAAyC,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;oBACrF,iBAAiB,GAAI,KAAwC,CAAC,iBAAiB,IAAI,IAAI,CAAC;gBAC1F,CAAC;gBACD,IAAI,OAA2B,CAAC;gBAChC,IAAI,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACjE,OAAO,GAAI,KAA8B,CAAC,OAAO,CAAC;gBACpD,CAAC;gBACD,MAAM,SAAS,GACb,OAAQ,KAAiC,CAAC,SAAS,KAAK,QAAQ;oBAC9D,CAAC,CAAE,KAAgC,CAAC,SAAU;oBAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC1D,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B;QAC1C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;YAC9C,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAChD,IAAI,CAAC,mBAAmB,GAAG,MAAmD,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,OAAe;QACvE,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yCAAyC;YAClD,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE;gBACP,SAAS,EAAE,SAAS,GAAG,EAAE;gBACzB,WAAW;gBACX,UAAU,EAAE,aAAa;aAC1B;YACD,SAAS,EAAE,GAAG;YACd,OAAO,EAAE;gBACP,0BAA0B,EAAE;oBAC1B,WAAW;oBACX,MAAM,EAAE,qBAAqB,OAAO,EAAE;oBACtC,MAAM,EAAE,eAAe;iBACxB;aACF;SACF,CAAC;QACF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,WAAmB,EACnB,OAAe,EACf,UAAmB;QAEnB,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAA4B;YACtC,0BAA0B,EAAE;gBAC1B,WAAW;gBACX,MAAM,EAAE,sBAAsB,OAAO,EAAE;gBACvC,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E;SACF,CAAC;QACF,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yCAAyC;YAClD,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE;gBACP,SAAS,EAAE,SAAS,GAAG,EAAE;gBACzB,WAAW;gBACX,UAAU,EAAE,aAAa;aAC1B;YACD,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,yBAAyB;IAC3B,EAAE,GAAG,gBAAgB,CAAC;IAEvB,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACjD,aAAa,GAAmC,IAAI,GAAG,EAAE,CAAC;IAC1D,WAAW,GAAwB,IAAI,CAAC;IACxC,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,YAAY,GAA0B,IAAI,CAAC;IAC3C,mBAAmB,GAAG,IAAI,CAAC;IAE3B,KAAK,CAAC,sBAAsB;QAClC,2FAA2F;QAC3F,0CAA0C;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAE7B,MAAM,QAAQ,GAAG,MAAM,yBAAyB,EAAE,CAAC;QACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7E,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAyB,CAAC,WAAW,EAAE,KAAmB,CAAC,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9D,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBACxC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,yFAAyF;QACzF,uFAAuF;QACvF,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9D,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,uBAAuB,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBACpF,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAiC,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,wFAAwF;QACxF,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,uBAAuB,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,GAAe;YACvB,GAAG,QAAQ;YACX,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,qBAAqB,EAAE,CAAC;SACzB,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAIrB;QACC,MAAM,GAAG,GAAG,OAAO,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC;YACrG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC;QACR,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,GACR,IAAI,KAAK,WAAW;YAClB,CAAC,CAAC;gBACA,GAAG,QAAQ;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,WAAW;gBACnB,cAAc,EAAE,KAAK,GAAG,UAAU;gBAClC,aAAa,EAAE,IAAI;aACpB;YACD,CAAC,CAAC;gBACA,GAAG,QAAQ;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,UAAU;gBAClB,aAAa,EAAE,KAAK,GAAG,UAAU;aAClC,CAAC;QACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,MAAM,GAGM,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAyB,EAAE,EAAE;gBAChE,KAAK,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACnD,2FAA2F;gBAC7F,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;QAC5F,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;gBACvC,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;oBACxC,8BAA8B;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC;QACD,mFAAmF;QACnF,4DAA4D;QAC5D,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACxC,iCAAiC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,KAAqF;QACvG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC;YAClG,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,eAAe,GACnB,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC;YAC9G,CAAC,CAAC,KAAK,CAAC,eAAe;YACvB,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,qBAAqB,CAAC,KAAgF;QACpG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,KAAK,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC;YAClG,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,UAAU,GACd,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;YAC/F,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,4BAA4B,CAAC,WAAmB,EAAE,SAAqE,EAAE;QACvH,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,QAAQ,GACZ,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,YAAY,GAAsB;YACtC,GAAG,CAAC,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;gBACjF,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;YACP,QAAQ;SACT,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;gBACxB,GAAG,QAAQ;gBACX,QAAQ;gBACR,GAAG,CAAC,OAAO,YAAY,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtG,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,wFAAwF;QACxF,yFAAyF;QACzF,oFAAoF;QACpF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAyB;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC;YAC5F,CAAC,CAAC,KAAK,CAAC,SAAS;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjB,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnF,yCAAyC;QACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,cAAc,IAAI,KAAK,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,OAAmC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7H,MAAM,GAAG,GAAG,aAAa,CAAC,0BAA0B,CAAC;YACrD,MAAM,UAAU,GACd,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAAgC,CAAC,UAAU,KAAK,QAAQ;gBAChG,CAAC,CAAG,GAA+B,CAAC,UAAqB;gBACzD,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,GAAG,GACP,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC;gBAC7E,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,SAAS,GAAe;gBAC5B,GAAG,QAAQ;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,eAAe;gBACvB,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa;aAC1D,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,eAAe,GACnB,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC;YACtE,MAAM,oBAAoB,GACxB,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC;YACrG,IAAI,CAAC,eAAe,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAe;oBAC5B,GAAG,QAAQ;oBACX,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI;oBACZ,aAAa,EAAE,IAAI;iBACpB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,yGAAyG;QACzG,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7D,MAAM,mBAAmB,GAAG,uCAAuC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAClF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAe;oBAC5B,GAAG,QAAQ;oBACX,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,eAAe;oBACvB,aAAa,EAAE,mBAAmB;oBAClC,cAAc,EAAE,IAAI;oBACpB,eAAe,EAAE,IAAI;oBACrB,qBAAqB,EAAE,CAAC;iBACzB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAA2E,CAAC;YAClG,MAAM,aAAa,GAAG,OAAO,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvH,MAAM,eAAe,GAAG,aAAa,KAAK,aAAa,IAAI,aAAa,KAAK,YAAY,CAAC;YAC1F,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,SAAS,GAAe;wBAC5B,GAAG,QAAQ;wBACX,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,eAAe;wBACvB,aAAa,EAAE,KAAK,GAAG,GAAG;wBAC1B,cAAc,EAAE,IAAI;wBACpB,eAAe,EAAE,IAAI;wBACrB,qBAAqB,EAAE,CAAC;qBACzB,CAAC;oBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAuB;YACxC,WAAW;YACX,UAAU,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACvE,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAClC,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE7C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC;gBAC7B,EAAE,EAAE,KAAK;gBACT,WAAW;gBACX,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC7E,UAAU,EAAE,OAAO,aAAa,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC/F,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAG,KAAK,CAAC,OAAkC,CAAC,SAAS;oBAC9D,aAAa,EAAG,KAAK,CAAC,OAAsC,CAAC,aAAa;iBAC3E;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,yBAAyB,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,KAAK,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC7E,4BAA4B;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC;IAEO,gBAAgB;QACtB,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,KAAyB;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkE,CAAC;QACzF,MAAM,MAAM,GACV,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;YAC9E,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;YAC5B,CAAC,CAAC,IAAI,CAAC;QACX,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;QACzC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,SAAS,GAAI,MAAoC,CAAC,WAAW,CAAC;YACpE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QAQV,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,WAAmB,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YACD,0CAA0C;YAC1C,+BAA+B;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACtC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,SAAS,GAAG,UAAU,CAAC;YAC7B,OAAO;gBACL,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,IAAI;gBAC9C,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,IAAI;aACjD,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,KAAyB;QAC/C,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/E,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,SAAS,uCAAuC,CAAC,KAAyB,EAAE,KAAa;IACvF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAI,KAAK,CAAC,OAAmC,CAAC,2BAA2B,CAAC;IACnF,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;IACtC,MAAM,SAAS,GACb,OAAO,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,KAAK;QACvF,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GACd,OAAO,aAAa,KAAK,QAAQ;QAC/B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,OAAO,aAAa,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,GAAG,UAAU,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAElC,gEAAgE;IAChE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAClE,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,MAAM,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC9E,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,6BAA6B,CAAC;IAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,MAAM,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,MAAM,GAAG,MAAM,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,MAAM,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAmB,EAAE,KAAiB;IACvE,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3G,MAAM,OAAO,GAAG,OAAQ,KAA2C,CAAC,QAAQ,KAAK,QAAQ;QACvF,CAAC,CAAC,MAAM,CAAE,KAA0C,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACnF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAkB,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,OAAO;QACL,GAAG,KAAK;QACR,WAAW,EAAE,GAAG;QAChB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,QAAgB;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|