@agentuity/opencode 1.0.16 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/agents/architect.d.ts +1 -1
  2. package/dist/agents/architect.d.ts.map +1 -1
  3. package/dist/agents/architect.js +30 -33
  4. package/dist/agents/architect.js.map +1 -1
  5. package/dist/agents/builder.d.ts +1 -1
  6. package/dist/agents/builder.d.ts.map +1 -1
  7. package/dist/agents/builder.js +53 -60
  8. package/dist/agents/builder.js.map +1 -1
  9. package/dist/agents/expert-backend.d.ts +1 -1
  10. package/dist/agents/expert-backend.d.ts.map +1 -1
  11. package/dist/agents/expert-backend.js +31 -39
  12. package/dist/agents/expert-backend.js.map +1 -1
  13. package/dist/agents/expert-frontend.d.ts +1 -1
  14. package/dist/agents/expert-frontend.d.ts.map +1 -1
  15. package/dist/agents/expert-frontend.js +17 -23
  16. package/dist/agents/expert-frontend.js.map +1 -1
  17. package/dist/agents/expert-ops.d.ts +1 -1
  18. package/dist/agents/expert-ops.d.ts.map +1 -1
  19. package/dist/agents/expert-ops.js +36 -50
  20. package/dist/agents/expert-ops.js.map +1 -1
  21. package/dist/agents/expert.d.ts +1 -1
  22. package/dist/agents/expert.d.ts.map +1 -1
  23. package/dist/agents/expert.js +32 -42
  24. package/dist/agents/expert.js.map +1 -1
  25. package/dist/agents/lead.d.ts +1 -1
  26. package/dist/agents/lead.d.ts.map +1 -1
  27. package/dist/agents/lead.js +182 -225
  28. package/dist/agents/lead.js.map +1 -1
  29. package/dist/agents/memory.d.ts +1 -1
  30. package/dist/agents/memory.d.ts.map +1 -1
  31. package/dist/agents/memory.js +62 -90
  32. package/dist/agents/memory.js.map +1 -1
  33. package/dist/agents/monitor.d.ts +1 -1
  34. package/dist/agents/monitor.d.ts.map +1 -1
  35. package/dist/agents/monitor.js +93 -42
  36. package/dist/agents/monitor.js.map +1 -1
  37. package/dist/agents/product.d.ts +1 -1
  38. package/dist/agents/product.d.ts.map +1 -1
  39. package/dist/agents/product.js +16 -22
  40. package/dist/agents/product.js.map +1 -1
  41. package/dist/agents/reviewer.d.ts +1 -1
  42. package/dist/agents/reviewer.d.ts.map +1 -1
  43. package/dist/agents/reviewer.js +14 -26
  44. package/dist/agents/reviewer.js.map +1 -1
  45. package/dist/agents/runner.d.ts +1 -1
  46. package/dist/agents/runner.d.ts.map +1 -1
  47. package/dist/agents/runner.js +52 -76
  48. package/dist/agents/runner.js.map +1 -1
  49. package/dist/agents/scout.d.ts +1 -1
  50. package/dist/agents/scout.d.ts.map +1 -1
  51. package/dist/agents/scout.js +41 -42
  52. package/dist/agents/scout.js.map +1 -1
  53. package/dist/agents/types.d.ts +8 -0
  54. package/dist/agents/types.d.ts.map +1 -1
  55. package/dist/background/manager.d.ts +17 -0
  56. package/dist/background/manager.d.ts.map +1 -1
  57. package/dist/background/manager.js +176 -19
  58. package/dist/background/manager.js.map +1 -1
  59. package/dist/background/types.d.ts +3 -0
  60. package/dist/background/types.d.ts.map +1 -1
  61. package/dist/config/loader.js +2 -2
  62. package/dist/plugin/hooks/cadence.d.ts.map +1 -1
  63. package/dist/plugin/hooks/cadence.js +5 -9
  64. package/dist/plugin/hooks/cadence.js.map +1 -1
  65. package/dist/plugin/hooks/completion.d.ts +14 -0
  66. package/dist/plugin/hooks/completion.d.ts.map +1 -0
  67. package/dist/plugin/hooks/completion.js +60 -0
  68. package/dist/plugin/hooks/completion.js.map +1 -0
  69. package/dist/plugin/hooks/params.d.ts +46 -1
  70. package/dist/plugin/hooks/params.d.ts.map +1 -1
  71. package/dist/plugin/hooks/params.js +77 -0
  72. package/dist/plugin/hooks/params.js.map +1 -1
  73. package/dist/plugin/hooks/session-memory.d.ts.map +1 -1
  74. package/dist/plugin/hooks/session-memory.js +4 -0
  75. package/dist/plugin/hooks/session-memory.js.map +1 -1
  76. package/dist/plugin/hooks/tools.d.ts.map +1 -1
  77. package/dist/plugin/hooks/tools.js +26 -1
  78. package/dist/plugin/hooks/tools.js.map +1 -1
  79. package/dist/plugin/plugin.d.ts.map +1 -1
  80. package/dist/plugin/plugin.js +9 -2
  81. package/dist/plugin/plugin.js.map +1 -1
  82. package/dist/tools/background.d.ts.map +1 -1
  83. package/dist/tools/background.js +15 -0
  84. package/dist/tools/background.js.map +1 -1
  85. package/dist/types.d.ts +10 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/dist/types.js.map +1 -1
  88. package/package.json +3 -3
  89. package/src/agents/architect.ts +30 -33
  90. package/src/agents/builder.ts +53 -60
  91. package/src/agents/expert-backend.ts +31 -39
  92. package/src/agents/expert-frontend.ts +17 -23
  93. package/src/agents/expert-ops.ts +36 -50
  94. package/src/agents/expert.ts +32 -42
  95. package/src/agents/lead.ts +182 -225
  96. package/src/agents/memory.ts +62 -90
  97. package/src/agents/monitor.ts +93 -42
  98. package/src/agents/product.ts +16 -22
  99. package/src/agents/reviewer.ts +14 -26
  100. package/src/agents/runner.ts +52 -76
  101. package/src/agents/scout.ts +41 -42
  102. package/src/agents/types.ts +8 -0
  103. package/src/background/manager.ts +198 -19
  104. package/src/background/types.ts +3 -0
  105. package/src/config/loader.ts +2 -2
  106. package/src/plugin/hooks/cadence.ts +5 -9
  107. package/src/plugin/hooks/completion.ts +81 -0
  108. package/src/plugin/hooks/params.ts +97 -1
  109. package/src/plugin/hooks/session-memory.ts +4 -0
  110. package/src/plugin/hooks/tools.ts +32 -1
  111. package/src/plugin/plugin.ts +9 -2
  112. package/src/tools/background.ts +28 -0
  113. package/src/types.ts +10 -0
@@ -18,6 +18,11 @@ export class BackgroundManager {
18
18
  tasksBySession = new Map();
19
19
  notifications = new Map();
20
20
  toolCallIds = new Map();
21
+ /** Tracks tool call IDs that are currently in-flight (pending/running state) per task */
22
+ activeToolCallIds = new Map();
23
+ /** Maps parent session ID → monitor task ID for auto-launched monitors */
24
+ monitorsPerParent = new Map();
25
+ lastNotifyTimes = new Map();
21
26
  shuttingDown = false;
22
27
  refreshIntervalId;
23
28
  constructor(ctx, config, callbacks, dbReader) {
@@ -110,6 +115,10 @@ export class BackgroundManager {
110
115
  return task;
111
116
  }
112
117
  void this.startTask(task);
118
+ // Auto-launch a Monitor for this parent session if not already running.
119
+ // Monitor uses session_dashboard scoped to the parent session ID, so it only
120
+ // sees sibling tasks — not unrelated sessions across the server.
121
+ void this.ensureMonitorForParent(input.parentSessionId);
113
122
  return task;
114
123
  }
115
124
  getTask(id) {
@@ -135,8 +144,21 @@ export class BackgroundManager {
135
144
  */
136
145
  async inspectTask(taskId) {
137
146
  const task = this.tasks.get(taskId);
138
- if (!task?.sessionId)
147
+ if (!task)
139
148
  return undefined;
149
+ // Task exists but has not yet acquired a concurrency slot — it is queued
150
+ // and no session has been created yet. Return a lightweight inspection so
151
+ // callers can distinguish "queued/pending" from "not found".
152
+ if (!task.sessionId) {
153
+ return {
154
+ taskId: task.id,
155
+ sessionId: '',
156
+ status: task.status,
157
+ session: null,
158
+ messages: [],
159
+ lastActivity: task.queuedAt?.toISOString(),
160
+ };
161
+ }
140
162
  try {
141
163
  if (this.dbReader?.isAvailable()) {
142
164
  const session = this.dbReader.getSession(task.sessionId);
@@ -260,6 +282,15 @@ export class BackgroundManager {
260
282
  if (matchedTaskId) {
261
283
  const task = this.tasks.get(matchedTaskId);
262
284
  if (task) {
285
+ // Terminal tasks are final — never overwrite their status.
286
+ // The API can return undefined/unknown status for cleaned-up sessions
287
+ // which maps to 'pending' by default; without this guard that would
288
+ // illegally resurrect a completed/errored/cancelled task.
289
+ if (task.status === 'completed' ||
290
+ task.status === 'error' ||
291
+ task.status === 'cancelled') {
292
+ continue;
293
+ }
263
294
  const newStatus = this.mapSessionStatusToTaskStatus(childSession);
264
295
  if (newStatus !== task.status) {
265
296
  // Use proper handlers to trigger side effects (concurrency, notifications, etc.)
@@ -330,6 +361,7 @@ export class BackgroundManager {
330
361
  progress: {
331
362
  toolCalls: 0,
332
363
  lastUpdate: new Date(),
364
+ activeToolCallsInFlight: 0,
333
365
  },
334
366
  };
335
367
  // Mark recovered terminal tasks as already notified
@@ -394,6 +426,7 @@ export class BackgroundManager {
394
426
  progress: {
395
427
  toolCalls: 0,
396
428
  lastUpdate: new Date(),
429
+ activeToolCallsInFlight: 0,
397
430
  },
398
431
  };
399
432
  // Mark recovered terminal tasks as already notified
@@ -425,7 +458,7 @@ export class BackgroundManager {
425
458
  }
426
459
  mapSessionStatusToTaskStatus(session) {
427
460
  // Map OpenCode session status to our task status
428
- // Session status types: 'idle' | 'pending' | 'running' | 'error'
461
+ // Session status types: 'idle' | 'pending' | 'running' | 'compacting' | 'error'
429
462
  const status = session?.status?.type;
430
463
  switch (status) {
431
464
  case 'idle':
@@ -433,11 +466,14 @@ export class BackgroundManager {
433
466
  case 'pending':
434
467
  return 'pending';
435
468
  case 'running':
469
+ case 'compacting': // Session is compacting context — still actively running
436
470
  return 'running';
437
471
  case 'error':
438
472
  return 'error';
439
473
  default:
440
- // Unknown session status - default to pending for best-effort recovery
474
+ // Unknown session status - default to pending for best-effort recovery.
475
+ // Note: refreshStatuses() guards terminal tasks before calling this,
476
+ // so a 'pending' default can never downgrade a completed/errored task.
441
477
  return 'pending';
442
478
  }
443
479
  }
@@ -487,11 +523,22 @@ export class BackgroundManager {
487
523
  if (!task)
488
524
  return;
489
525
  const error = extractError(event.properties);
490
- this.failTask(task, error ?? 'Session error.');
526
+ const errorMsg = error ?? 'Session error.';
527
+ // Log extra context for timeout errors — the server fires these when
528
+ // a model generates a long text response without tool activity.
529
+ if (errorMsg.toLowerCase().includes('timeout') ||
530
+ errorMsg.toLowerCase().includes('no activity')) {
531
+ console.debug(`[BackgroundManager] Task ${task.id} timed out - may have been generating long response. Progress: ${JSON.stringify(task.progress)}`);
532
+ }
533
+ this.failTask(task, errorMsg);
491
534
  return;
492
535
  }
493
536
  }
494
537
  markForNotification(task) {
538
+ // Monitor tasks are infrastructure — never notify Lead about them.
539
+ // Monitor pushes its own consolidated report as its final output.
540
+ if (task.isMonitor)
541
+ return;
495
542
  const sessionId = task.parentSessionId;
496
543
  if (!sessionId)
497
544
  return;
@@ -530,10 +577,73 @@ export class BackgroundManager {
530
577
  parentList.add(task.id);
531
578
  this.tasksByParent.set(task.parentSessionId, parentList);
532
579
  }
580
+ /**
581
+ * Ensure a Monitor agent is watching all background tasks for the given parent session.
582
+ *
583
+ * Called automatically whenever a new background task is launched. If a Monitor is
584
+ * already running for this parent, this is a no-op. The Monitor uses
585
+ * `agentuity_session_dashboard({ session_id: parentSessionId })` which is scoped
586
+ * to child sessions of that parent only — it does not see unrelated sessions.
587
+ *
588
+ * The Monitor pushes a consolidated status update to Lead when all tasks complete,
589
+ * so Lead doesn't need to self-poll.
590
+ */
591
+ async ensureMonitorForParent(parentSessionId) {
592
+ if (this.shuttingDown)
593
+ return;
594
+ // Check if we already have a live monitor for this parent
595
+ const existingMonitorId = this.monitorsPerParent.get(parentSessionId);
596
+ if (existingMonitorId) {
597
+ const existing = this.tasks.get(existingMonitorId);
598
+ if (existing && (existing.status === 'pending' || existing.status === 'running')) {
599
+ return; // Monitor already active
600
+ }
601
+ }
602
+ // Find the Monitor agent display name
603
+ const monitorAgent = Object.values(agents).find((a) => a.role === 'monitor');
604
+ if (!monitorAgent)
605
+ return; // Monitor agent not registered
606
+ const monitorPrompt = `You are watching background tasks for parent session: ${parentSessionId}
607
+
608
+ Use \`agentuity_session_dashboard({ session_id: "${parentSessionId}" })\` to see all child task sessions and their current status.
609
+
610
+ Monitor all non-monitor background tasks until they complete. When all tasks are done (completed, error, or cancelled), send a consolidated summary back. Use \`agentuity_background_output\` to retrieve results for completed tasks.
611
+
612
+ Do not poll more than once every 30 seconds. Be patient — Scout tasks reading large codebases typically take 3–8 minutes.`;
613
+ try {
614
+ const monitorTask = {
615
+ id: createTaskId(),
616
+ parentSessionId,
617
+ description: 'Monitor background tasks',
618
+ prompt: monitorPrompt,
619
+ agent: monitorAgent.displayName,
620
+ status: 'pending',
621
+ queuedAt: new Date(),
622
+ // Monitor uses a dedicated concurrency lane so it can never be blocked
623
+ // by the tasks it's watching. If Monitor queued behind regular tasks it
624
+ // would never start, and Lead would receive no consolidated report.
625
+ concurrencyGroup: 'monitor',
626
+ notifiedStatuses: new Set(),
627
+ isMonitor: true,
628
+ };
629
+ this.tasks.set(monitorTask.id, monitorTask);
630
+ this.monitorsPerParent.set(parentSessionId, monitorTask.id);
631
+ // Index monitor task so it's tracked by parent (but flagged as monitor)
632
+ this.indexTask(monitorTask);
633
+ void this.startTask(monitorTask);
634
+ }
635
+ catch {
636
+ // Non-fatal: if monitor launch fails, the event-driven notifyParent
637
+ // still works as the primary completion signal
638
+ }
639
+ }
533
640
  async startTask(task) {
534
641
  if (this.shuttingDown)
535
642
  return;
536
- const concurrencyKey = this.getConcurrencyKey(task.agent);
643
+ // Use task.concurrencyGroup if explicitly set (e.g. 'monitor' for the auto-launched
644
+ // Monitor agent), otherwise derive from the agent name. This lets Monitor run in its
645
+ // own concurrency lane so it can never be blocked by the tasks it's watching.
646
+ const concurrencyKey = task.concurrencyGroup ?? this.getConcurrencyKey(task.agent);
537
647
  task.concurrencyKey = concurrencyKey;
538
648
  try {
539
649
  await this.concurrency.acquire(concurrencyKey);
@@ -617,16 +727,32 @@ export class BackgroundManager {
617
727
  if (part.type === 'tool') {
618
728
  const callId = part.callID;
619
729
  const toolName = part.tool;
730
+ const toolStatus = part.state?.status;
620
731
  if (toolName) {
621
732
  progress.lastTool = toolName;
622
733
  }
623
734
  if (callId) {
624
735
  const seen = this.toolCallIds.get(task.id) ?? new Set();
736
+ const active = this.activeToolCallIds.get(task.id) ?? new Set();
625
737
  if (!seen.has(callId)) {
738
+ // First time seeing this callId — it's a new tool call starting
626
739
  seen.add(callId);
627
740
  progress.toolCalls += 1;
628
741
  this.toolCallIds.set(task.id, seen);
629
742
  }
743
+ // Track in-flight status based on tool state
744
+ // Only remove for explicit terminal statuses; treat unknown/missing as in-flight
745
+ if (toolStatus === 'completed' ||
746
+ toolStatus === 'error' ||
747
+ toolStatus === 'cancelled') {
748
+ active.delete(callId);
749
+ }
750
+ else {
751
+ // pending, running, unknown, or missing status — treat as in-flight
752
+ active.add(callId);
753
+ }
754
+ this.activeToolCallIds.set(task.id, active);
755
+ progress.activeToolCallsInFlight = active.size;
630
756
  }
631
757
  }
632
758
  if (part.type === 'text' && part.text) {
@@ -639,6 +765,7 @@ export class BackgroundManager {
639
765
  return {
640
766
  toolCalls: 0,
641
767
  lastUpdate: new Date(),
768
+ activeToolCallsInFlight: 0,
642
769
  };
643
770
  }
644
771
  async completeTask(task) {
@@ -681,18 +808,39 @@ export class BackgroundManager {
681
808
  return;
682
809
  if (this.shuttingDown)
683
810
  return;
684
- // Prevent duplicate notifications for the same task+status combination
685
- // This guards against OpenCode firing multiple events for the same status transition
686
- const notifiedStatuses = task.notifiedStatuses ?? new Set();
687
- if (notifiedStatuses.has(task.status)) {
811
+ // Monitor tasks push their own report as their session output — no separate notification needed.
812
+ if (task.isMonitor)
813
+ return;
814
+ // Recovered tasks (from recoverTasks) have no notifiedStatuses.
815
+ // Assume they were already notified and skip to prevent duplicate notifications.
816
+ if (!task.notifiedStatuses) {
817
+ task.notifiedStatuses = new Set([task.status]);
818
+ return;
819
+ }
820
+ // Snapshot status at call-time to prevent race conditions where concurrent
821
+ // refreshStatuses() calls mutate task.status during our async awaits below.
822
+ // Without this, the wrong status could be recorded as notified after delivery.
823
+ const statusAtCallTime = task.status;
824
+ const notifiedStatuses = task.notifiedStatuses;
825
+ if (notifiedStatuses.has(statusAtCallTime)) {
688
826
  return; // Already notified for this status, skip duplicate
689
827
  }
690
- const statusLine = task.status === 'completed' ? 'completed' : task.status;
691
- const message = `[BACKGROUND TASK ${statusLine.toUpperCase()}]
828
+ // Belt-and-suspenders: rate limit notifications per task+status to 1 per 10s
829
+ const now = Date.now();
830
+ const lastNotifyKey = `${task.id}:${statusAtCallTime}`;
831
+ const lastTime = this.lastNotifyTimes.get(lastNotifyKey);
832
+ if (lastTime && now - lastTime < 10_000) {
833
+ return;
834
+ }
835
+ this.lastNotifyTimes.set(lastNotifyKey, now);
836
+ // Do NOT pre-mark as notified here — if all retries fail, the status
837
+ // must remain unmarked so future retry attempts (via refreshStatuses
838
+ // or Monitor) are not blocked. Mark only on confirmed delivery below.
839
+ const message = `[BACKGROUND TASK ${statusAtCallTime.toUpperCase()}]
692
840
 
693
841
  Task: ${task.description}
694
842
  Agent: ${task.agent}
695
- Status: ${task.status}
843
+ Status: ${statusAtCallTime}
696
844
  Task ID: ${task.id}
697
845
 
698
846
  Use the agentuity_background_output tool with task_id "${task.id}" to view the result.`;
@@ -708,8 +856,10 @@ Use the agentuity_background_output tool with task_id "${task.id}" to view the r
708
856
  responseStyle: 'data',
709
857
  ...this.getClientOverrides(),
710
858
  });
711
- // Mark as notified only AFTER confirmed delivery
712
- notifiedStatuses.add(task.status);
859
+ // Mark the snapshotted status as notified only AFTER confirmed delivery.
860
+ // Using the snapshot prevents recording the wrong status if task.status
861
+ // was mutated concurrently during the await above.
862
+ notifiedStatuses.add(statusAtCallTime);
713
863
  task.notifiedStatuses = notifiedStatuses;
714
864
  return; // Success
715
865
  }
@@ -723,7 +873,9 @@ Use the agentuity_background_output tool with task_id "${task.id}" to view the r
723
873
  }
724
874
  else {
725
875
  console.error(`[BackgroundManager] Failed to notify parent for task ${task.id} after ${maxRetries} attempts:`, errorMsg);
726
- // Don't mark as notified allow future retry via refreshStatuses or Monitor
876
+ // Safety net: ensure status is NOT marked as notified so future
877
+ // retry attempts (via refreshStatuses or Monitor) are not blocked
878
+ notifiedStatuses.delete(statusAtCallTime);
727
879
  }
728
880
  }
729
881
  }
@@ -815,11 +967,16 @@ Use the agentuity_background_output tool with task_id "${task.id}" to view the r
815
967
  for (const task of this.tasks.values()) {
816
968
  if (task.status !== 'pending' && task.status !== 'running')
817
969
  continue;
818
- const start = task.startedAt?.getTime() ?? task.queuedAt?.getTime();
819
- if (!start)
970
+ // Use last activity time (last event received) rather than start time.
971
+ // A task actively doing tool calls every minute should never expire —
972
+ // only tasks that have gone silent for staleTimeoutMs should be killed.
973
+ const lastActivity = task.progress?.lastUpdate.getTime() ??
974
+ task.startedAt?.getTime() ??
975
+ task.queuedAt?.getTime();
976
+ if (!lastActivity)
820
977
  continue;
821
- if (now - start > this.config.staleTimeoutMs) {
822
- this.failTask(task, 'Background task timed out.');
978
+ if (now - lastActivity > this.config.staleTimeoutMs) {
979
+ this.failTask(task, 'Background task timed out (no activity).');
823
980
  }
824
981
  }
825
982
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/background/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/background/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,yBAAyB,GAAyB;IACvD,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,CAAC;IACrB,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CAC9B,CAAC;AA0BF,MAAM,OAAO,iBAAiB;IACrB,GAAG,CAAc;IACjB,MAAM,CAAuB;IAC7B,WAAW,CAAqB;IAChC,SAAS,CAA8B;IACvC,QAAQ,CAAoB;IAC5B,SAAS,CAAqB;IAC9B,WAAW,CAAqC;IAChD,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC1C,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;IACrD,yFAAyF;IACjF,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3D,0EAA0E;IAClE,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,YAAY,GAAG,KAAK,CAAC;IACrB,iBAAiB,CAA6C;IAEtE,YACC,GAAgB,EAChB,MAA6B,EAC7B,SAAsC,EACtC,QAA2B;QAE3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,yBAAyB,EAAE,GAAG,MAAM,EAAE,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC;YACzC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAC5C,MAAM,EAAE,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE7C,iFAAiF;QACjF,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACzC,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO;YAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACvD,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7B,CAAC;QACF,CAAC,EAAE,MAAM,CAAC,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACK,gBAAgB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAIhB,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;QACtE,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAChF,oFAAoF;QACpF,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;OAUG;IACK,kBAAkB;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1E,OAAO,EAAE,aAAa,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACK,kBAAkB;QACzB,MAAM,SAAS,GAA2D,EAAE,CAAC;QAC7E,IAAI,IAAI,CAAC,SAAS;YAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,IAAI,IAAI,CAAC,WAAW;YAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAkB;QAC9B,MAAM,IAAI,GAAmB;YAC5B,EAAE,EAAE,YAAY,EAAE;YAClB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;YACvD,gBAAgB,EAAE,IAAI,GAAG,EAAE;SAC3B,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,gCAAgC,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE1B,wEAAwE;QACxE,6EAA6E;QAC7E,iEAAiE;QACjE,KAAK,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,SAAiB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,IAAI,EAA0B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,SAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,yEAAyE;QACzE,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;aAC1C,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnE,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE;oBAC7D,KAAK,EAAE,YAAY;oBACnB,MAAM,EAAE,CAAC;iBACT,CAAC,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE;oBAC5D,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC;iBACtC,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,WAAW;qBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;qBAC7C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAClB,IAAI,EAAE;wBACL,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;qBAChC;oBACD,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;iBACrD,CAAC,CAAC,CAAC;gBACL,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnF,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACnB,CAAC,CAAC,CAAC;gBACJ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnE,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACvB,CAAC,CAAC,CAAC;gBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBAEhF,OAAO;oBACN,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO;oBACP,QAAQ;oBACR,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;oBACtD,YAAY;oBACZ,WAAW;oBACX,KAAK;oBACL,WAAW,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;qBAC7B;oBACD,iBAAiB;iBACjB,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACzD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC5B,YAAY,EAAE,KAAK;gBACnB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;YAEH,gCAAgC;YAChC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC/D,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC5B,YAAY,EAAE,KAAK;gBACnB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,cAAc,CAAU,eAAe,CAAC,CAAC;YACzD,MAAM,WAAW,GAChB,cAAc,CAA6C,gBAAgB,CAAC,CAAC;YAC9E,kFAAkF;YAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/D,sCAAsC;YACtC,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO;gBACP,QAAQ;gBACR,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;aACtD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,kCAAkC;YAClC,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACpB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;QAExD,kCAAkC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAE5C,IAAI,CAAC;YACJ,8EAA8E;YAC9E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACrC,CAAC;YACF,CAAC;YAED,MAAM,kBAAkB,GAAoB,EAAE,CAAC;YAE/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC/D,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;oBACtB,YAAY,EAAE,KAAK;oBACnB,GAAG,IAAI,CAAC,kBAAkB,EAAE;iBAC5B,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,cAAc,CAAiB,gBAAgB,CAAC,CAAC;gBACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC9B,MAAM,YAAY,GAAG,KAAoD,CAAC;oBAC1E,IAAI,CAAC,YAAY,CAAC,EAAE;wBAAE,SAAS;oBAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBAC/D,IAAI,aAAa,EAAE,CAAC;wBACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBAC3C,IAAI,IAAI,EAAE,CAAC;4BACV,2DAA2D;4BAC3D,sEAAsE;4BACtE,oEAAoE;4BACpE,0DAA0D;4BAC1D,IACC,IAAI,CAAC,MAAM,KAAK,WAAW;gCAC3B,IAAI,CAAC,MAAM,KAAK,OAAO;gCACvB,IAAI,CAAC,MAAM,KAAK,WAAW,EAC1B,CAAC;gCACF,SAAS;4BACV,CAAC;4BACD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC;4BAClE,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gCAC/B,iFAAiF;gCACjF,IAAI,SAAS,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oCAC5D,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oCACjD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gCACvC,CAAC;qCAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oCAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;oCAChD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gCACvC,CAAC;qCAAM,CAAC;oCACP,0EAA0E;oCAC1E,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oCACxB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gCACvC,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,6CAA6C;YAC7C,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,qDAAqD;YACrD,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;gBAClC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;gBAC/D,IAAI,eAAe,EAAE,CAAC;oBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;oBACjE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;wBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;4BAAE,SAAS;wBAE3C,IAAI,CAAC;4BACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAKrC,CAAC;4BAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;gCAAE,SAAS;4BACrE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gCAAE,SAAS;4BAE9C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;4BAC9C,MAAM,IAAI,GAAmB;gCAC5B,EAAE,EAAE,QAAQ,CAAC,MAAM;gCACnB,SAAS,EAAE,IAAI,CAAC,EAAE;gCAClB,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gCACpC,KAAK,EAAE,SAAS;gCAChB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;gCACvC,MAAM,EAAE,EAAE;gCACV,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gCAC7C,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gCACxE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gCACzE,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;gCACrD,QAAQ,EAAE;oCACT,SAAS,EAAE,CAAC;oCACZ,UAAU,EAAE,IAAI,IAAI,EAAE;oCACtB,uBAAuB,EAAE,CAAC;iCAC1B;6BACD,CAAC;4BAEF,oDAAoD;4BACpD,IACC,IAAI,CAAC,MAAM,KAAK,WAAW;gCAC3B,IAAI,CAAC,MAAM,KAAK,OAAO;gCACvB,IAAI,CAAC,MAAM,KAAK,WAAW,EAC1B,CAAC;gCACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;4BAChD,CAAC;4BAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;4BAE1C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gCAC1B,MAAM,WAAW,GAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gCAC3D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;4BAC3D,CAAC;4BAED,SAAS,EAAE,CAAC;wBACb,CAAC;wBAAC,MAAM,CAAC;4BACR,SAAS;wBACV,CAAC;oBACF,CAAC;oBACD,OAAO,SAAS,CAAC;gBAClB,CAAC;YACF,CAAC;YAED,mBAAmB;YACnB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3D,YAAY,EAAE,KAAK;gBACnB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,cAAc,CAAiB,gBAAgB,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,OAKZ,CAAC;gBAEF,uDAAuD;gBACvD,4DAA4D;gBAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAE3C,IAAI,CAAC;oBACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAKrC,CAAC;oBAEF,2EAA2E;oBAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAErE,oCAAoC;oBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,SAAS;oBAE9C,8BAA8B;oBAC9B,IAAI,CAAC,IAAI,CAAC,EAAE;wBAAE,SAAS;oBAEvB,uBAAuB;oBACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;oBAC9C,MAAM,IAAI,GAAmB;wBAC5B,EAAE,EAAE,QAAQ,CAAC,MAAM;wBACnB,SAAS,EAAE,IAAI,CAAC,EAAE;wBAClB,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;wBACpC,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;wBACvC,MAAM,EAAE,EAAE,EAAE,yCAAyC;wBACrD,MAAM,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;wBAC/C,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;wBACxE,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;wBACzE,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;wBACrD,QAAQ,EAAE;4BACT,SAAS,EAAE,CAAC;4BACZ,UAAU,EAAE,IAAI,IAAI,EAAE;4BACtB,uBAAuB,EAAE,CAAC;yBAC1B;qBACD,CAAC;oBAEF,oDAAoD;oBACpD,IACC,IAAI,CAAC,MAAM,KAAK,WAAW;wBAC3B,IAAI,CAAC,MAAM,KAAK,OAAO;wBACvB,IAAI,CAAC,MAAM,KAAK,WAAW,EAC1B,CAAC;wBACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,CAAC;oBAED,2BAA2B;oBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC9B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBAE1C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;wBAC9E,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;oBAC3D,CAAC;oBAED,SAAS,EAAE,CAAC;gBACb,CAAC;gBAAC,MAAM,CAAC;oBACR,uCAAuC;oBACvC,SAAS;gBACV,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,4BAA4B,CAAC,OAAgB;QACpD,iDAAiD;QACjD,gFAAgF;QAChF,MAAM,MAAM,GAAI,OAA0C,EAAE,MAAM,EAAE,IAAI,CAAC;QACzE,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM;gBACV,OAAO,WAAW,CAAC;YACpB,KAAK,SAAS;gBACb,OAAO,SAAS,CAAC;YAClB,KAAK,SAAS,CAAC;YACf,KAAK,YAAY,EAAE,yDAAyD;gBAC3E,OAAO,SAAS,CAAC;YAClB,KAAK,OAAO;gBACX,OAAO,OAAO,CAAC;YAChB;gBACC,wEAAwE;gBACxE,qEAAqE;gBACrE,uEAAuE;gBACvE,OAAO,SAAS,CAAC;QACnB,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,wBAAwB,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,WAAW,CAAC,KAAmB;QAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAErD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,IAA+B,CAAC;YAC/D,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,KAAK,IAAI,gBAAgB,CAAC;YAE3C,qEAAqE;YACrE,gEAAgE;YAChE,IACC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC1C,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC7C,CAAC;gBACF,OAAO,CAAC,KAAK,CACZ,4BAA4B,IAAI,CAAC,EAAE,kEAAkE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpI,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9B,OAAO;QACR,CAAC;IACF,CAAC;IAED,mBAAmB,CAAC,IAAoB;QACvC,mEAAmE;QACnE,kEAAkE;QAClE,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACrE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,uBAAuB,CAAC,SAAiB;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,IAAI,EAA0B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB,CAAC,SAAiB;QACnC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC;YACJ,KAAK,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACR,kCAAkC;QACnC,CAAC;IACF,CAAC;IAEO,SAAS,CAAC,IAAoB;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACrF,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,sBAAsB,CAAC,eAAuB;QAC3D,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAE9B,0DAA0D;QAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,iBAAiB,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACnD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;gBAClF,OAAO,CAAC,yBAAyB;YAClC,CAAC;QACF,CAAC;QAED,sCAAsC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,+BAA+B;QAE1D,MAAM,aAAa,GAAG,yDAAyD,eAAe;;mDAE7C,eAAe;;;;0HAIwD,CAAC;QAEzH,IAAI,CAAC;YACJ,MAAM,WAAW,GAAmB;gBACnC,EAAE,EAAE,YAAY,EAAE;gBAClB,eAAe;gBACf,WAAW,EAAE,0BAA0B;gBACvC,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,YAAY,CAAC,WAAW;gBAC/B,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,IAAI,IAAI,EAAE;gBACpB,uEAAuE;gBACvE,wEAAwE;gBACxE,oEAAoE;gBACpE,gBAAgB,EAAE,SAAS;gBAC3B,gBAAgB,EAAE,IAAI,GAAG,EAAE;gBAC3B,SAAS,EAAE,IAAI;aACf,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5D,wEAAwE;YACxE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAE5B,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACR,oEAAoE;YACpE,+CAA+C;QAChD,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAoB;QAC3C,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAE9B,oFAAoF;QACpF,qFAAqF;QACrF,8EAA8E;QAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;gBACtB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;gBACnE,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,gEAAgE;YAChE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnE,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC1D,IAAI,EAAE;oBACL,QAAQ,EAAE,IAAI,CAAC,eAAe;oBAC9B,KAAK,EAAE,YAAY;iBACnB;gBACD,YAAY,EAAE,IAAI;gBAClB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,cAAc,CAAiB,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,EAAE,wBAAwB,EAAE,CAAC;gBAC1C,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,eAAe;gBAC9B,KAAK,EAAE,IAAI,CAAC,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;gBACxB,IAAI,EAAE;oBACL,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;iBAC5C;gBACD,YAAY,EAAE,IAAI;gBAClB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;YACjF,wEAAwE;YACxE,4DAA4D;YAC5D,IAAI,CAAC;gBACJ,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC5B,IAAI,EAAE;wBACL,OAAO,EAAE,iBAAiB;wBAC1B,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,mBAAmB,IAAI,CAAC,EAAE,qBAAqB,QAAQ,EAAE;qBAClE;oBACD,GAAG,IAAI,CAAC,kBAAkB,EAAE;iBAC5B,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,8CAA8C;gBAC9C,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAEO,cAAc,CAAC,IAAoB,EAAE,IAAiB;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxD,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;YAEtC,IAAI,QAAQ,EAAE,CAAC;gBACd,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC9B,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;gBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;gBAExE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvB,gEAAgE;oBAChE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACjB,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACrC,CAAC;gBAED,6CAA6C;gBAC7C,iFAAiF;gBACjF,IACC,UAAU,KAAK,WAAW;oBAC1B,UAAU,KAAK,OAAO;oBACtB,UAAU,KAAK,WAAW,EACzB,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACP,oEAAoE;oBACpE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC5C,QAAQ,CAAC,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC;YAChD,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACvC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,QAAQ,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAEO,cAAc;QACrB,OAAO;YACN,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,uBAAuB,EAAE,CAAC;SAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAoB;QAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QAEtC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,wBAAwB,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,QAAQ,CAAC,IAAoB,EAAE,KAAa;QACnD,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO;QACnE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,EAAE,wBAAwB,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CAAC,IAAoB;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAoB;QAC9C,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,iGAAiG;QACjG,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3B,gEAAgE;QAChE,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,OAAO;QACR,CAAC;QAED,2EAA2E;QAC3E,4EAA4E;QAC5E,+EAA+E;QAC/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;QAErC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,IAAI,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,mDAAmD;QAC5D,CAAC;QAED,6EAA6E;QAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;YACzC,OAAO;QACR,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAE7C,qEAAqE;QACrE,qEAAqE;QACrE,sEAAsE;QAEtE,MAAM,OAAO,GAAG,oBAAoB,gBAAgB,CAAC,WAAW,EAAE;;QAE5D,IAAI,CAAC,WAAW;SACf,IAAI,CAAC,KAAK;UACT,gBAAgB;WACf,IAAI,CAAC,EAAE;;yDAEuC,IAAI,CAAC,EAAE,uBAAuB,CAAC;QAEtF,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBACpC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE;oBAClC,IAAI,EAAE;wBACL,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qBACxC;oBACD,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,MAAM;oBACrB,GAAG,IAAI,CAAC,kBAAkB,EAAE;iBAC5B,CAAC,CAAC;gBACH,yEAAyE;gBACzE,wEAAwE;gBACxE,mDAAmD;gBACnD,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;gBACzC,OAAO,CAAC,UAAU;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;gBACnE,IAAI,OAAO,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;oBAC9B,kCAAkC;oBAClC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;oBACrE,IAAI,IAAI,CAAC,YAAY;wBAAE,OAAO;gBAC/B,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CACZ,wDAAwD,IAAI,CAAC,EAAE,UAAU,UAAU,YAAY,EAC/F,QAAQ,CACR,CAAC;oBACF,gEAAgE;oBAChE,kEAAkE;oBAClE,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,SAAiB;QAC3C,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACvB,YAAY,EAAE,KAAK;gBACnB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACR,sBAAsB;QACvB,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAChD,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxE,MAAM,cAAc,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAC1D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAChC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;wBAAE,SAAS;oBAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3D,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;gBACvB,CAAC;gBACD,OAAO,SAAS,CAAC;YAClB,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACvB,YAAY,EAAE,IAAI;gBAClB,GAAG,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAiB,cAAc,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAyD,CAAC;gBACjF,IAAI,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,WAAW;oBAAE,SAAS;gBAChD,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACrD,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC;YACvB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,uBAAuB,CAAC,SAAiB;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAChE,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU;gBACd,OAAO,WAAW,CAAC;YACpB,KAAK,QAAQ,CAAC;YACd,KAAK,YAAY;gBAChB,OAAO,SAAS,CAAC;YAClB,KAAK,OAAO;gBACX,OAAO,OAAO,CAAC;YAChB;gBACC,OAAO,SAAS,CAAC;QACnB,CAAC;IACF,CAAC;IAEO,mBAAmB,CAAC,SAAiB;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAClE,OAAO,SAAS,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3E,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,iBAAiB,CAAC,SAAiB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAClD,OAAO,KAAK,IAAI,SAAS,CAAC;IAC3B,CAAC;IAEO,gBAAgB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YACrE,uEAAuE;YACvE,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,YAAY,GACjB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE;gBACnC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;gBACzB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;YACjE,CAAC;QACF,CAAC;IACF,CAAC;CACD;AAED,SAAS,sBAAsB,CAAC,MAA4B;IAC3D,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC5E,MAAM,CAAC,YAAY,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;QACxC,CAAC;IACF,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;QAClC,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACvC,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,KAAK,EAAE,YAAY,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CACtF,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACpB,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAoC;IAC7D,OAAO,CACL,UAAU,EAAE,SAAgC,IAAK,UAAU,EAAE,SAAgC,CAC9F,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAAoC;IACzD,MAAM,KAAK,GAAG,UAAU,EAAE,KAAmE,CAAC;IAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAqB;IAClD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QACxD,MAAM,KAAK,GAAG,IAAwC,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAmB;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB;IAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IAC1C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAI,MAAe;IACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACvE,OAAQ,MAAuB,CAAC,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,MAAW,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAE,QAAgB;IAC5D,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,IAAI,QAAQ,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC;QACpE,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC;QAChE,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -5,6 +5,8 @@ export interface TaskProgress {
5
5
  lastUpdate: Date;
6
6
  lastMessage?: string;
7
7
  lastMessageAt?: Date;
8
+ /** Number of tool calls currently in-flight (pending/running state) */
9
+ activeToolCallsInFlight: number;
8
10
  }
9
11
  export interface BackgroundTask {
10
12
  id: string;
@@ -24,6 +26,7 @@ export interface BackgroundTask {
24
26
  concurrencyKey?: string;
25
27
  concurrencyGroup?: string;
26
28
  notifiedStatuses?: Set<BackgroundTaskStatus>;
29
+ isMonitor?: boolean;
27
30
  }
28
31
  export interface LaunchInput {
29
32
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/background/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/background/types.ts"],"names":[],"mappings":"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"}
@@ -104,7 +104,7 @@ const DEFAULT_BLOCKED_COMMANDS = [
104
104
  ];
105
105
  const DEFAULT_BACKGROUND_CONFIG = {
106
106
  enabled: true,
107
- defaultConcurrency: 1,
107
+ defaultConcurrency: 5,
108
108
  staleTimeoutMs: 30 * 60 * 1000,
109
109
  providerConcurrency: {},
110
110
  modelConcurrency: {},
@@ -150,7 +150,7 @@ function mergeBackgroundConfig(base, override) {
150
150
  return undefined;
151
151
  return {
152
152
  enabled: override?.enabled ?? base?.enabled ?? true,
153
- defaultConcurrency: override?.defaultConcurrency ?? base?.defaultConcurrency ?? 1,
153
+ defaultConcurrency: override?.defaultConcurrency ?? base?.defaultConcurrency ?? 5,
154
154
  staleTimeoutMs: override?.staleTimeoutMs ?? base?.staleTimeoutMs ?? 30 * 60 * 1000,
155
155
  providerConcurrency: {
156
156
  ...(base?.providerConcurrency ?? {}),
@@ -1 +1 @@
1
- {"version":3,"file":"cadence.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/cadence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAetE,yCAAyC;AACzC,KAAK,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,sDAAsD;IACtD,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD,oFAAoF;IACpF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,CA4ad"}
1
+ {"version":3,"file":"cadence.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/cadence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAetE,yCAAyC;AACzC,KAAK,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,sDAAsD;IACtD,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACvD,oFAAoF;IACpF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,CAwad"}
@@ -133,7 +133,10 @@ export function createCadenceHooks(ctx, config, backgroundManager, dbReader, las
133
133
  if (!event)
134
134
  return;
135
135
  log(`Event received: ${event.type}`);
136
- // Handle session.compacted - save compaction AND continue loop
136
+ // Handle session.compacted - save compaction AND continue loop.
137
+ // Note: Compaction continues in the SAME session (via session.prompt with
138
+ // the existing sessionId), so permissions configured in the config hook
139
+ // (plugin.ts) are automatically inherited — no re-application needed.
137
140
  if (event.type === 'session.compacted') {
138
141
  const sessionId = event.sessionId;
139
142
  if (!sessionId)
@@ -299,14 +302,7 @@ ${taskList}
299
302
  Use \`agentuity_background_output({ task_id: "..." })\` to check their status.
300
303
  Use \`agentuity_session_dashboard({ session_id: "..." })\` to get a full session tree with status, costs, and health summary for Lead-of-Leads monitoring.
301
304
 
302
- **Tip:** If you spawned child Leads for parallel work, delegate monitoring to BackgroundMonitor:
303
- \`\`\`typescript
304
- agentuity_background_task({
305
- agent: "monitor",
306
- task: "Monitor these background tasks and report when all complete:\\n${tasks.map((t) => `- ${t.id}`).join('\\n')}",
307
- description: "Monitor child tasks"
308
- })
309
- \`\`\``;
305
+ **Tip:** A Monitor agent is auto-launched to watch these tasks. You will receive \`[BACKGROUND TASK COMPLETED]\` notifications as each task finishes, and \`[ALL BACKGROUND TASKS COMPLETE]\` when all are done. Use \`agentuity_session_dashboard\` for a unified progress view.`;
310
306
  }
311
307
  // 5. Build SQLite dashboard section
312
308
  const dashboardSection = buildSqliteDashboardSummary(dbReader, sessionId);