@principles/core 1.87.0 → 1.88.0

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.
@@ -3,6 +3,7 @@ import { ScribeRunner } from '../internalization/scribe-runner.js';
3
3
  import { MemoryPIArtifactStore } from '../internalization/pi-artifact-store.js';
4
4
  import { DefaultScribeValidator } from '../internalization/scribe-output.js';
5
5
  import { createPITaskDiagnosticJson } from '../internalization/pitask-metadata.js';
6
+ import { RunnerPhase } from '../runner/runner-phase.js';
6
7
  import { PDRuntimeError } from '../error-categories.js';
7
8
  const PHILOSOPHER_TASK_ID = 'philosopher-001';
8
9
  const SCRIBE_TASK_ID = 'scribe-001';
@@ -88,7 +89,7 @@ function makePhilosopherArtifact() {
88
89
  updatedAt: new Date().toISOString(),
89
90
  };
90
91
  }
91
- describe('ScribeRunner (PRI-109)', () => {
92
+ describe('ScribeRunner (migrated to BasePeerRunner)', () => {
92
93
  let artifactStore = new MemoryPIArtifactStore();
93
94
  beforeEach(() => {
94
95
  artifactStore = new MemoryPIArtifactStore();
@@ -140,6 +141,7 @@ describe('ScribeRunner (PRI-109)', () => {
140
141
  ...overrides,
141
142
  };
142
143
  }
144
+ // ── Existing behavior: task kind validation ────────────────────────────────
143
145
  it('taskKind not scribe fails closed and releases lease', async () => {
144
146
  const wrongKindTask = makeScribeTask({ taskKind: 'dreamer' });
145
147
  const deps = createMockDeps();
@@ -156,6 +158,7 @@ describe('ScribeRunner (PRI-109)', () => {
156
158
  expect(result.failureReason).toContain("must be 'scribe'");
157
159
  expect(deps.stateManager.markTaskFailed).toHaveBeenCalledWith(SCRIBE_TASK_ID, 'input_invalid');
158
160
  });
161
+ // ── Existing behavior: lease conflict ──────────────────────────────────────
159
162
  it('lease conflict is non-mutating', async () => {
160
163
  const deps = createMockDeps();
161
164
  const leaseError = new PDRuntimeError('lease_conflict', 'Another runner holds the lease');
@@ -172,6 +175,7 @@ describe('ScribeRunner (PRI-109)', () => {
172
175
  expect(deps.stateManager.markTaskFailed).not.toHaveBeenCalled();
173
176
  expect(deps.stateManager.markTaskRetryWait).not.toHaveBeenCalled();
174
177
  });
178
+ // ── Existing behavior: missing philosopher dependency ──────────────────────
175
179
  it('missing philosopher dependency blocked/failure', async () => {
176
180
  const noDepTask = makeScribeTask({
177
181
  diagnosticJson: createPITaskDiagnosticJson({
@@ -195,6 +199,7 @@ describe('ScribeRunner (PRI-109)', () => {
195
199
  expect(result.status).toBe('failed');
196
200
  expect(result.errorCategory).toBe('input_invalid');
197
201
  });
202
+ // ── Existing behavior: philosopher not succeeded ───────────────────────────
198
203
  it('philosopher dependency not succeeded cannot execute', async () => {
199
204
  const pendingPhilosopher = makePhilosopherTask({ status: 'pending' });
200
205
  const deps = createMockDeps();
@@ -215,6 +220,7 @@ describe('ScribeRunner (PRI-109)', () => {
215
220
  expect(result.status).toBe('failed');
216
221
  expect(result.errorCategory).toBe('input_invalid');
217
222
  });
223
+ // ── Existing behavior: philosopher artifact missing ────────────────────────
218
224
  it('philosopher artifact missing goes to retry/fail', async () => {
219
225
  const emptyArtifactStore = new MemoryPIArtifactStore();
220
226
  const deps = createMockDeps({ artifactStore: emptyArtifactStore });
@@ -228,6 +234,7 @@ describe('ScribeRunner (PRI-109)', () => {
228
234
  expect(result.status).toBe('failed');
229
235
  expect(result.errorCategory).toBe('input_invalid');
230
236
  });
237
+ // ── Existing behavior: valid output writes artifact ────────────────────────
231
238
  it('valid runtime output writes scribe PIArtifact', async () => {
232
239
  const store = new MemoryPIArtifactStore();
233
240
  await store.upsertArtifact(makePhilosopherArtifact());
@@ -245,6 +252,7 @@ describe('ScribeRunner (PRI-109)', () => {
245
252
  expect(artifacts).toHaveLength(1);
246
253
  expect(artifacts[0]?.artifactKind).toBe('principle');
247
254
  });
255
+ // ── Existing behavior: valid output marks succeeded ────────────────────────
248
256
  it('valid runtime output marks task succeeded', async () => {
249
257
  const store = new MemoryPIArtifactStore();
250
258
  await store.upsertArtifact(makePhilosopherArtifact());
@@ -259,6 +267,7 @@ describe('ScribeRunner (PRI-109)', () => {
259
267
  expect(result.status).toBe('succeeded');
260
268
  expect(deps.stateManager.markTaskSucceeded).toHaveBeenCalledWith(SCRIBE_TASK_ID, expect.stringContaining('scribe://'));
261
269
  });
270
+ // ── Existing behavior: invalid output does not write artifact ──────────────
262
271
  it('invalid output does not write artifact', async () => {
263
272
  const store = new MemoryPIArtifactStore();
264
273
  await store.upsertArtifact(makePhilosopherArtifact());
@@ -294,6 +303,7 @@ describe('ScribeRunner (PRI-109)', () => {
294
303
  const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
295
304
  expect(artifacts).toHaveLength(0);
296
305
  });
306
+ // ── Existing behavior: artifact write failure ──────────────────────────────
297
307
  it('artifact write failure goes to retry/fail, not mark succeeded', async () => {
298
308
  const failingStore = {
299
309
  listBySourceTaskId: vi.fn().mockResolvedValue([makePhilosopherArtifact()]),
@@ -310,6 +320,7 @@ describe('ScribeRunner (PRI-109)', () => {
310
320
  expect(result.status).toBe('failed');
311
321
  expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
312
322
  });
323
+ // ── Existing behavior: sourcePhilosopherArtifactId mismatch ────────────────
313
324
  it('mismatched sourcePhilosopherArtifactId does not write artifact or mark succeeded', async () => {
314
325
  const store = new MemoryPIArtifactStore();
315
326
  await store.upsertArtifact(makePhilosopherArtifact());
@@ -328,11 +339,358 @@ describe('ScribeRunner (PRI-109)', () => {
328
339
  });
329
340
  const result = await runner.run(SCRIBE_TASK_ID);
330
341
  expect(result.status).toBe('failed');
331
- expect(result.errorCategory).toBe('output_invalid');
342
+ // output_invalid is retriable; after retry exhaustion → max_attempts_exceeded
343
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
332
344
  const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
333
345
  expect(artifacts).toHaveLength(0);
334
346
  expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
335
347
  });
348
+ // ── NEW: sourcePhilosopherArtifactId mismatch must not updateRunOutput ─────
349
+ it('sourcePhilosopherArtifactId mismatch does not updateRunOutput, write artifact, or mark succeeded', async () => {
350
+ const store = new MemoryPIArtifactStore();
351
+ await store.upsertArtifact(makePhilosopherArtifact());
352
+ const deps = createMockDeps({ artifactStore: store });
353
+ // Output passes validator but fails lineage check in succeedTask
354
+ const mismatchedOutput = makeScribeOutput();
355
+ mismatchedOutput.sourcePhilosopherArtifactId = 'wrong-artifact-id';
356
+ // Also fix sourceTrace to pass validator
357
+ mismatchedOutput.sourceTrace.philosopherArtifactId = 'wrong-artifact-id';
358
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
359
+ payload: mismatchedOutput,
360
+ });
361
+ const runner = new ScribeRunner(deps, {
362
+ owner: 'test',
363
+ runtimeKind: 'scribe',
364
+ pollIntervalMs: 10,
365
+ timeoutMs: 1000,
366
+ });
367
+ const result = await runner.run(SCRIBE_TASK_ID);
368
+ // The mismatch is caught by the validator (DefaultScribeValidator checks it)
369
+ // output_invalid is retriable; after retry exhaustion → max_attempts_exceeded
370
+ expect(result.status).toBe('failed');
371
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
372
+ // No artifact written
373
+ const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
374
+ expect(artifacts).toHaveLength(0);
375
+ // No updateRunOutput or markTaskSucceeded
376
+ expect(deps.stateManager.updateRunOutput).not.toHaveBeenCalled();
377
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
378
+ });
379
+ // ── NEW: present-but-empty taskId not overwritten by postFetchTransform ────
380
+ it('present-but-empty taskId is not overwritten by postFetchTransform', async () => {
381
+ const store = new MemoryPIArtifactStore();
382
+ await store.upsertArtifact(makePhilosopherArtifact());
383
+ const deps = createMockDeps({ artifactStore: store });
384
+ // Output with taskId: '' (present but empty) — must NOT be overwritten
385
+ const emptyTaskIdOutput = makeScribeOutput();
386
+ emptyTaskIdOutput.taskId = '';
387
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
388
+ payload: emptyTaskIdOutput,
389
+ });
390
+ const runner = new ScribeRunner(deps, {
391
+ owner: 'test',
392
+ runtimeKind: 'scribe',
393
+ pollIntervalMs: 10,
394
+ timeoutMs: 1000,
395
+ });
396
+ const result = await runner.run(SCRIBE_TASK_ID);
397
+ // Validation should fail because taskId is empty (mismatch with SCRIBE_TASK_ID)
398
+ // output_invalid is retriable; after retry exhaustion → max_attempts_exceeded
399
+ expect(result.status).toBe('failed');
400
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
401
+ // No artifact written
402
+ const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
403
+ expect(artifacts).toHaveLength(0);
404
+ });
405
+ // ── NEW: missing taskId re-injected by postFetchTransform ──────────────────
406
+ it('missing taskId is re-injected by postFetchTransform per stripLineage contract', async () => {
407
+ const store = new MemoryPIArtifactStore();
408
+ await store.upsertArtifact(makePhilosopherArtifact());
409
+ const deps = createMockDeps({ artifactStore: store });
410
+ // Output without taskId — should be re-injected
411
+ const noTaskIdOutput = { ...makeScribeOutput() };
412
+ delete noTaskIdOutput.taskId;
413
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
414
+ payload: noTaskIdOutput,
415
+ });
416
+ const runner = new ScribeRunner(deps, {
417
+ owner: 'test',
418
+ runtimeKind: 'scribe',
419
+ pollIntervalMs: 10,
420
+ timeoutMs: 1000,
421
+ });
422
+ const result = await runner.run(SCRIBE_TASK_ID);
423
+ // taskId is re-injected, so validation should pass
424
+ expect(result.status).toBe('succeeded');
425
+ expect(result.artifactId).toBeDefined();
426
+ });
427
+ // ── NEW: invalid validator errorCategory runtime guard ─────────────────────
428
+ it('invalid validator errorCategory is runtime-guarded and does not pass through', async () => {
429
+ const store = new MemoryPIArtifactStore();
430
+ await store.upsertArtifact(makePhilosopherArtifact());
431
+ // Create a validator that returns an invalid errorCategory
432
+ const badValidator = {
433
+ validate: async (_output, _taskId) => {
434
+ return { valid: false, errors: ['test error'], errorCategory: 'not_a_real_category' };
435
+ },
436
+ };
437
+ const deps = createMockDeps({ artifactStore: store, validator: badValidator });
438
+ const runner = new ScribeRunner(deps, {
439
+ owner: 'test',
440
+ runtimeKind: 'scribe',
441
+ pollIntervalMs: 10,
442
+ timeoutMs: 1000,
443
+ });
444
+ const result = await runner.run(SCRIBE_TASK_ID);
445
+ expect(result.status).toBe('failed');
446
+ // The invalid errorCategory is replaced with 'output_invalid' by validateOutput,
447
+ // which is retriable; after retry exhaustion → max_attempts_exceeded
448
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
449
+ });
450
+ // ── NEW: currentPhase is Completed after success ───────────────────────────
451
+ it('currentPhase is Completed after successful run', async () => {
452
+ const store = new MemoryPIArtifactStore();
453
+ await store.upsertArtifact(makePhilosopherArtifact());
454
+ const deps = createMockDeps({ artifactStore: store });
455
+ const runner = new ScribeRunner(deps, {
456
+ owner: 'test',
457
+ runtimeKind: 'scribe',
458
+ pollIntervalMs: 10,
459
+ timeoutMs: 1000,
460
+ });
461
+ const result = await runner.run(SCRIBE_TASK_ID);
462
+ expect(result.status).toBe('succeeded');
463
+ expect(runner.currentPhase).toBe(RunnerPhase.Completed);
464
+ });
465
+ // ── NEW: currentPhase is Failed after validation failure ───────────────────
466
+ it('currentPhase is Failed after validation failure', async () => {
467
+ const store = new MemoryPIArtifactStore();
468
+ await store.upsertArtifact(makePhilosopherArtifact());
469
+ const deps = createMockDeps({ artifactStore: store });
470
+ const invalidOutput = { wrong: 'shape' };
471
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
472
+ payload: invalidOutput,
473
+ });
474
+ const runner = new ScribeRunner(deps, {
475
+ owner: 'test',
476
+ runtimeKind: 'scribe',
477
+ pollIntervalMs: 10,
478
+ timeoutMs: 1000,
479
+ });
480
+ const result = await runner.run(SCRIBE_TASK_ID);
481
+ expect(result.status).toBe('failed');
482
+ expect(runner.currentPhase).toBe(RunnerPhase.Failed);
483
+ });
484
+ // ── NEW: validation failure does not write artifact ────────────────────────
485
+ it('validation failure does not write artifact or mark succeeded', async () => {
486
+ const store = new MemoryPIArtifactStore();
487
+ await store.upsertArtifact(makePhilosopherArtifact());
488
+ const deps = createMockDeps({ artifactStore: store });
489
+ // Malformed output that fails validation
490
+ const malformedOutput = {
491
+ notTheRightShape: true,
492
+ };
493
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
494
+ payload: malformedOutput,
495
+ });
496
+ const runner = new ScribeRunner(deps, {
497
+ owner: 'test',
498
+ runtimeKind: 'scribe',
499
+ pollIntervalMs: 10,
500
+ timeoutMs: 1000,
501
+ });
502
+ const result = await runner.run(SCRIBE_TASK_ID);
503
+ expect(result.status).toBe('failed');
504
+ // No artifact written
505
+ const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
506
+ expect(artifacts).toHaveLength(0);
507
+ // No markTaskSucceeded
508
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
509
+ // No updateRunOutput
510
+ expect(deps.stateManager.updateRunOutput).not.toHaveBeenCalled();
511
+ });
512
+ // ── NEW: malformed output (non-object) does not write artifact ─────────────
513
+ it('malformed output (non-object payload) does not write artifact', async () => {
514
+ const store = new MemoryPIArtifactStore();
515
+ await store.upsertArtifact(makePhilosopherArtifact());
516
+ const deps = createMockDeps({ artifactStore: store });
517
+ // Non-object payload
518
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
519
+ payload: 'not-an-object',
520
+ });
521
+ const runner = new ScribeRunner(deps, {
522
+ owner: 'test',
523
+ runtimeKind: 'scribe',
524
+ pollIntervalMs: 10,
525
+ timeoutMs: 1000,
526
+ });
527
+ const result = await runner.run(SCRIBE_TASK_ID);
528
+ expect(result.status).toBe('failed');
529
+ // No artifact written
530
+ const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
531
+ expect(artifacts).toHaveLength(0);
532
+ });
533
+ // ── NEW: succeedTask writes correct artifactKind ───────────────────────────
534
+ it('succeedTask writes artifact with correct artifactKind principle', async () => {
535
+ const store = new MemoryPIArtifactStore();
536
+ await store.upsertArtifact(makePhilosopherArtifact());
537
+ const deps = createMockDeps({ artifactStore: store });
538
+ const runner = new ScribeRunner(deps, {
539
+ owner: 'test',
540
+ runtimeKind: 'scribe',
541
+ pollIntervalMs: 10,
542
+ timeoutMs: 1000,
543
+ });
544
+ const result = await runner.run(SCRIBE_TASK_ID);
545
+ expect(result.status).toBe('succeeded');
546
+ const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
547
+ expect(artifacts).toHaveLength(1);
548
+ expect(artifacts[0]?.artifactKind).toBe('principle');
549
+ });
550
+ // ── NEW: succeedTask calls markTaskSucceeded ───────────────────────────────
551
+ it('succeedTask calls markTaskSucceeded with scribe:// resultRef', async () => {
552
+ const store = new MemoryPIArtifactStore();
553
+ await store.upsertArtifact(makePhilosopherArtifact());
554
+ const deps = createMockDeps({ artifactStore: store });
555
+ const runner = new ScribeRunner(deps, {
556
+ owner: 'test',
557
+ runtimeKind: 'scribe',
558
+ pollIntervalMs: 10,
559
+ timeoutMs: 1000,
560
+ });
561
+ const result = await runner.run(SCRIBE_TASK_ID);
562
+ expect(result.status).toBe('succeeded');
563
+ expect(deps.stateManager.markTaskSucceeded).toHaveBeenCalledWith(SCRIBE_TASK_ID, expect.stringMatching(/^scribe:\/\//));
564
+ });
565
+ // ── NEW: succeedTask calls updateRunOutput before markTaskSucceeded ────────
566
+ it('succeedTask calls updateRunOutput before markTaskSucceeded', async () => {
567
+ const store = new MemoryPIArtifactStore();
568
+ await store.upsertArtifact(makePhilosopherArtifact());
569
+ const deps = createMockDeps({ artifactStore: store });
570
+ const callOrder = [];
571
+ deps.stateManager.updateRunOutput.mockImplementation(() => {
572
+ callOrder.push('updateRunOutput');
573
+ return Promise.resolve();
574
+ });
575
+ deps.stateManager.markTaskSucceeded.mockImplementation(() => {
576
+ callOrder.push('markTaskSucceeded');
577
+ return Promise.resolve();
578
+ });
579
+ const runner = new ScribeRunner(deps, {
580
+ owner: 'test',
581
+ runtimeKind: 'scribe',
582
+ pollIntervalMs: 10,
583
+ timeoutMs: 1000,
584
+ });
585
+ const result = await runner.run(SCRIBE_TASK_ID);
586
+ expect(result.status).toBe('succeeded');
587
+ expect(callOrder).toEqual(['updateRunOutput', 'markTaskSucceeded']);
588
+ });
589
+ // ── NEW: lineage mismatch in succeedTask throws and does not write artifact ─
590
+ it('succeedTask sourcePhilosopherArtifactId mismatch throws and does not write artifact', async () => {
591
+ const store = new MemoryPIArtifactStore();
592
+ await store.upsertArtifact(makePhilosopherArtifact());
593
+ const deps = createMockDeps({ artifactStore: store });
594
+ // Create output that passes validator but has mismatched sourcePhilosopherArtifactId
595
+ // The validator only checks if expectedSourcePhilosopherArtifactId is provided and matches.
596
+ // But the DefaultScribeValidator checks sourcePhilosopherArtifactId against expected.
597
+ // We need to craft output where the validator passes but succeedTask catches the mismatch.
598
+ // Since the validator and succeedTask both check against context.sourcePhilosopherArtifactId,
599
+ // the validator will catch it first. Let's use a custom validator that passes everything.
600
+ const permissiveValidator = {
601
+ validate: async () => {
602
+ return { valid: true, errors: [] };
603
+ },
604
+ };
605
+ const mismatchedOutput = makeScribeOutput();
606
+ mismatchedOutput.sourcePhilosopherArtifactId = 'wrong-artifact-id';
607
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
608
+ payload: mismatchedOutput,
609
+ });
610
+ const depsWithPermissiveValidator = { ...deps, validator: permissiveValidator };
611
+ const runner = new ScribeRunner(depsWithPermissiveValidator, {
612
+ owner: 'test',
613
+ runtimeKind: 'scribe',
614
+ pollIntervalMs: 10,
615
+ timeoutMs: 1000,
616
+ });
617
+ const result = await runner.run(SCRIBE_TASK_ID);
618
+ // succeedTask should throw on mismatch, caught by base class → retryOrFail
619
+ // output_invalid is retriable; after retry exhaustion → max_attempts_exceeded
620
+ expect(result.status).toBe('failed');
621
+ expect(result.errorCategory).toBe('max_attempts_exceeded');
622
+ // No artifact written
623
+ const artifacts = await store.listBySourceTaskId(SCRIBE_TASK_ID);
624
+ expect(artifacts).toHaveLength(0);
625
+ // No markTaskSucceeded
626
+ expect(deps.stateManager.markTaskSucceeded).not.toHaveBeenCalled();
627
+ // No updateRunOutput (thrown before updateRunOutput)
628
+ expect(deps.stateManager.updateRunOutput).not.toHaveBeenCalled();
629
+ });
630
+ // ── NEW: postFetchTransform operates on unknown, not typed output ──────────
631
+ it('postFetchTransform re-injects taskId on unknown output before validation', async () => {
632
+ const store = new MemoryPIArtifactStore();
633
+ await store.upsertArtifact(makePhilosopherArtifact());
634
+ const deps = createMockDeps({ artifactStore: store });
635
+ // Output without taskId — postFetchTransform should inject it
636
+ const outputWithoutTaskId = { ...makeScribeOutput() };
637
+ delete outputWithoutTaskId.taskId;
638
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
639
+ payload: outputWithoutTaskId,
640
+ });
641
+ const runner = new ScribeRunner(deps, {
642
+ owner: 'test',
643
+ runtimeKind: 'scribe',
644
+ pollIntervalMs: 10,
645
+ timeoutMs: 1000,
646
+ });
647
+ const result = await runner.run(SCRIBE_TASK_ID);
648
+ expect(result.status).toBe('succeeded');
649
+ });
650
+ // ── NEW: output_invalid is retriable (not in permanentErrorCategories) ──────
651
+ it('output_invalid is retriable (may retry, not permanent)', async () => {
652
+ const store = new MemoryPIArtifactStore();
653
+ await store.upsertArtifact(makePhilosopherArtifact());
654
+ const deps = createMockDeps({ artifactStore: store });
655
+ const invalidOutput = { wrong: 'shape' };
656
+ deps.runtimeAdapter.fetchOutput = vi.fn().mockResolvedValue({
657
+ payload: invalidOutput,
658
+ });
659
+ const runner = new ScribeRunner(deps, {
660
+ owner: 'test',
661
+ runtimeKind: 'scribe',
662
+ pollIntervalMs: 10,
663
+ timeoutMs: 1000,
664
+ });
665
+ const result = await runner.run(SCRIBE_TASK_ID);
666
+ expect(result.status).toBe('failed');
667
+ // output_invalid is NOT in permanentErrorCategories (matching Dreamer/Philosopher),
668
+ // so it may retry. With retry policy shouldRetry: false, it falls to markTaskFailed.
669
+ expect(deps.stateManager.markTaskFailed).toHaveBeenCalled();
670
+ });
671
+ // ── Telemetry dedup regression test ───────────────────────────────────────
672
+ it('successful run emits exactly 1 scribe_output_validated and 1 scribe_principle_draft_generated', async () => {
673
+ const store = new MemoryPIArtifactStore();
674
+ await store.upsertArtifact(makePhilosopherArtifact());
675
+ const deps = createMockDeps({ artifactStore: store });
676
+ const emitTelemetry = vi.fn();
677
+ deps.eventEmitter.emitTelemetry = emitTelemetry;
678
+ const runner = new ScribeRunner(deps, {
679
+ owner: 'test-dedup',
680
+ runtimeKind: 'scribe',
681
+ pollIntervalMs: 10,
682
+ timeoutMs: 5000,
683
+ });
684
+ const result = await runner.run(SCRIBE_TASK_ID);
685
+ expect(result.status).toBe('succeeded');
686
+ // Count telemetry events by type
687
+ const outputValidatedCalls = emitTelemetry.mock.calls.filter((c) => typeof c[0] === 'object' && c[0] !== null && 'eventType' in c[0] && c[0].eventType === 'scribe_output_validated');
688
+ const draftGeneratedCalls = emitTelemetry.mock.calls.filter((c) => typeof c[0] === 'object' && c[0] !== null && 'eventType' in c[0] && c[0].eventType === 'scribe_principle_draft_generated');
689
+ // Exactly 1 output_validated (from BasePeerRunner), not 2
690
+ expect(outputValidatedCalls).toHaveLength(1);
691
+ // Exactly 1 principle_draft_generated (from emitSuccessTelemetry)
692
+ expect(draftGeneratedCalls).toHaveLength(1);
693
+ });
336
694
  });
337
695
  describe('DefaultScribeValidator (PRI-109)', () => {
338
696
  const validator = new DefaultScribeValidator();
@@ -426,5 +784,70 @@ describe('DefaultScribeValidator (PRI-109)', () => {
426
784
  const result = await validator.validate(output, SCRIBE_TASK_ID, 'pi-art-philosopher-001-run-001');
427
785
  expect(result.valid).toBe(true);
428
786
  });
787
+ // ── ERR-013: prototype-inherited required fields must be rejected ────────
788
+ it('rejects prototype-inherited taskId (e.g. toString) — ERR-013', async () => {
789
+ const proto = { taskId: 'inherited-task-id' };
790
+ const output = Object.create(proto);
791
+ output.sourcePhilosopherArtifactId = 'pi-art-philosopher-001-run-001';
792
+ output.principleDraft = {
793
+ title: 't', statement: 's', rationale: 'r',
794
+ applicability: [], antiPatterns: [], confidence: 0.9,
795
+ };
796
+ output.sourceTrace = { philosopherArtifactId: 'pi-art-philosopher-001-run-001' };
797
+ output.risks = [];
798
+ output.generatedAt = new Date().toISOString();
799
+ // taskId is only on prototype, not own property — must fail
800
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
801
+ expect(result.valid).toBe(false);
802
+ expect(result.errors.some(e => e.includes('taskId'))).toBe(true);
803
+ });
804
+ it('rejects prototype-inherited sourcePhilosopherArtifactId — ERR-013', async () => {
805
+ const output = makeScribeOutput();
806
+ // Delete own property, put on prototype
807
+ const obj = output;
808
+ const originalValue = obj.sourcePhilosopherArtifactId;
809
+ delete obj.sourcePhilosopherArtifactId;
810
+ Object.setPrototypeOf(obj, { sourcePhilosopherArtifactId: originalValue });
811
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
812
+ expect(result.valid).toBe(false);
813
+ expect(result.errors.some(e => e.includes('sourcePhilosopherArtifactId'))).toBe(true);
814
+ });
815
+ it('rejects prototype-inherited sourceTrace.philosopherArtifactId — ERR-013', async () => {
816
+ const output = makeScribeOutput();
817
+ const st = output.sourceTrace;
818
+ const originalValue = st.philosopherArtifactId;
819
+ delete st.philosopherArtifactId;
820
+ Object.setPrototypeOf(st, { philosopherArtifactId: originalValue });
821
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
822
+ expect(result.valid).toBe(false);
823
+ expect(result.errors.some(e => e.includes('sourceTrace.philosopherArtifactId'))).toBe(true);
824
+ });
825
+ // ── dreamerArtifactId validation ────────────────────────────────────────
826
+ it('accepts valid dreamerArtifactId when present', async () => {
827
+ const output = makeScribeOutput();
828
+ output.sourceTrace.dreamerArtifactId = 'pi-art-dreamer-001';
829
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
830
+ expect(result.valid).toBe(true);
831
+ });
832
+ it('rejects malformed dreamerArtifactId (non-string) — ERR-001', async () => {
833
+ const output = makeScribeOutput();
834
+ output.sourceTrace.dreamerArtifactId = 42;
835
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
836
+ expect(result.valid).toBe(false);
837
+ expect(result.errors.some(e => e.includes('dreamerArtifactId'))).toBe(true);
838
+ });
839
+ it('rejects empty dreamerArtifactId — ERR-001', async () => {
840
+ const output = makeScribeOutput();
841
+ output.sourceTrace.dreamerArtifactId = '';
842
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
843
+ expect(result.valid).toBe(false);
844
+ expect(result.errors.some(e => e.includes('dreamerArtifactId'))).toBe(true);
845
+ });
846
+ it('accepts output without dreamerArtifactId (optional)', async () => {
847
+ const output = makeScribeOutput();
848
+ // makeScribeOutput() doesn't include dreamerArtifactId by default
849
+ const result = await validator.validate(output, SCRIBE_TASK_ID);
850
+ expect(result.valid).toBe(true);
851
+ });
429
852
  });
430
853
  //# sourceMappingURL=scribe-runner-vslice.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scribe-runner-vslice.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/scribe-runner-vslice.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scribe-runner-vslice.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/scribe-runner-vslice.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAKhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAC9C,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,SAAS,mBAAmB,CAAC,YAAiC,EAAE;IAC9D,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,0BAA0B,CAAC;YACzC,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,OAAO;YAClB,iBAAiB,EAAE,EAAE;YACrB,kBAAkB,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,gCAAgC,EAAE,CAAC;SAC3F,CAAC;QACF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,YAAiC,EAAE;IACzD,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,cAAc,EAAE,0BAA0B,CAAC;YACzC,iBAAiB,EAAE,CAAC,mBAAmB,CAAC;YACxC,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,OAAO;YAClB,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,gCAAgC,EAAE,CAAC;YACzF,kBAAkB,EAAE,EAAE;SACvB,CAAC;QACF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,2BAA2B,EAAE,gCAAgC;QAC7D,cAAc,EAAE;YACd,KAAK,EAAE,2BAA2B;YAClC,SAAS,EAAE,2DAA2D;YACtE,SAAS,EAAE,iDAAiD;YAC5D,aAAa,EAAE,CAAC,sBAAsB,CAAC;YACvC,YAAY,EAAE,CAAC,6BAA6B,CAAC;YAC7C,UAAU,EAAE,GAAG;SAChB;QACD,WAAW,EAAE;YACX,qBAAqB,EAAE,gCAAgC;SACxD;QACD,KAAK,EAAE,CAAC,qCAAqC,CAAC;QAC9C,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;QACL,UAAU,EAAE,gCAAgC;QAC5C,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,mBAAmB;QACjC,kBAAkB,EAAE,EAAE;QACtB,gBAAgB,EAAE,SAAS;QAC3B,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,mBAAmB;YAC3B,uBAAuB,EAAE,oBAAoB;YAC7C,MAAM,EAAE,qCAAqC;YAC7C,kBAAkB,EAAE;gBAClB,KAAK,EAAE,2BAA2B;gBAClC,SAAS,EAAE,yBAAyB;gBACpC,KAAK,EAAE,sBAAsB;gBAC7B,UAAU,EAAE,GAAG;aAChB;YACD,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,aAAa,GAAoB,IAAI,qBAAqB,EAAE,CAAC;IAEjE,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,SAAS,cAAc,CAAC,YAAuC,EAAE;QAC/D,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;QAE9C,MAAM,YAAY,GAAG;YACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;YACnD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,EAAE;gBACjD,IAAI,EAAE,KAAK,cAAc;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC9D,IAAI,EAAE,KAAK,mBAAmB;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACxE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC;YACF,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;oBACxC,KAAK,EAAE,gBAAgB;oBACvB,MAAM,EAAE,cAAc;oBACtB,WAAW,EAAE,QAAQ;oBACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;YACH,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACrD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACpD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACvD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;SACpC,CAAC;QAEpC,MAAM,SAAS,GAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1H,MAAM,eAAe,GAAc,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QAEpF,MAAM,cAAc,GAAG;YACrB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC9C,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACnD,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACrC,OAAO,EAAE,gBAAgB,EAAE;aAC5B,CAAC;YACF,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACjB,CAAC;QAEjC,MAAM,YAAY,GAAG;YACnB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;SACS,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAE/C,OAAO;YACL,YAAY;YACZ,cAAc;YACd,YAAY;YACZ,SAAS;YACT,aAAa;YACb,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAED,8EAA8E;IAE9E,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,aAAa,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAElH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAC3D,cAAc,EACd,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,gBAAgB,EAAE,gCAAgC,CAAC,CAAC;QACzF,IAAI,CAAC,YAAmD,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE/G,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,SAAS,GAAG,cAAc,CAAC;YAC/B,cAAc,EAAE,0BAA0B,CAAC;gBACzC,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,EAAE;gBACrB,kBAAkB,EAAE,EAAE;aACvB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAI,CAAC,YAAmD,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEzG,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAU,EAAE,EAAE;YAC5G,IAAI,EAAE,KAAK,cAAc;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YACpE,IAAI,EAAE,KAAK,mBAAmB;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC3E,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,kBAAkB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAExC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC9D,cAAc,EACd,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAmB;YACpC,MAAM,EAAE,eAAe;YACvB,2BAA2B,EAAE,EAAE;YAC/B,cAAc,EAAE;gBACd,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,EAAE;gBACjB,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,GAAG;aAChB;YACD,WAAW,EAAE;gBACX,qBAAqB,EAAE,EAAE;aAC1B;YACD,KAAK,EAAE,WAAkC;YACzC,WAAW,EAAE,EAAE;SAChB,CAAC;QAED,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,YAAY,GAAG;YACnB,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC;YAC1E,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;SACpC,CAAC;QAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;QAC3C,gBAAuD,CAAC,2BAA2B,GAAG,mBAAmB,CAAC;QAC1G,gBAAgB,CAAC,WAAkD,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;QAEhH,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,8EAA8E;QAC9E,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;QAChH,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,iEAAiE;QACjE,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;QAC3C,gBAAuD,CAAC,2BAA2B,GAAG,mBAAmB,CAAC;QAC3G,yCAAyC;QACxC,gBAAgB,CAAC,WAAkD,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;QAEhH,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,6EAA6E;QAC7E,8EAA8E;QAC9E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE3D,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAElC,0CAA0C;QAC1C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,uEAAuE;QACvE,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;QAC5C,iBAAwD,CAAC,MAAM,GAAG,EAAE,CAAC;QAErE,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,gFAAgF;QAChF,8EAA8E;QAC9E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE3D,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,gDAAgD;QAChD,MAAM,cAAc,GAAG,EAAE,GAAG,gBAAgB,EAAE,EAAE,CAAC;QACjD,OAAQ,cAAqD,CAAC,MAAM,CAAC;QAEpE,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,mDAAmD;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAEtD,2DAA2D;QAC3D,MAAM,YAAY,GAAoB;YACpC,QAAQ,EAAE,KAAK,EAAE,OAAgB,EAAE,OAAe,EAAmC,EAAE;gBACrF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,qBAA+B,EAAE,CAAC;YAClG,CAAC;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAE/E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,iFAAiF;QACjF,qEAAqE;QACrE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,yCAAyC;QACzC,MAAM,eAAe,GAAG;YACtB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QAED,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAElC,uBAAuB;QACvB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEnE,qBAAqB;QACrB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,qBAAqB;QACpB,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC9D,cAAc,EACd,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,eAA4C,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACtF,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,iBAA8C,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACxF,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAE/E,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,qFAAqF;QACrF,4FAA4F;QAC5F,sFAAsF;QACtF,2FAA2F;QAC3F,8FAA8F;QAC9F,0FAA0F;QAC1F,MAAM,mBAAmB,GAAoB;YAC3C,QAAQ,EAAE,KAAK,IAAqC,EAAE;gBACpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACrC,CAAC;SACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;QAC3C,gBAAuD,CAAC,2BAA2B,GAAG,mBAAmB,CAAC;QAE1G,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;QAEhF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,2BAA+C,EAAE;YAC/E,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,2EAA2E;QAC3E,8EAA8E;QAC9E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE3D,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAElC,uBAAuB;QACvB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEnE,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAE9E,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,8DAA8D;QAC9D,MAAM,mBAAmB,GAAG,EAAE,GAAG,gBAAgB,EAAE,EAAE,CAAC;QACtD,OAAQ,mBAA0D,CAAC,MAAM,CAAC;QAEzE,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAE/E,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,cAAqD,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClG,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,oFAAoF;QACpF,qFAAqF;QACrF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,EAAE,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;QAC7G,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAmD,CAAC,aAAa,GAAG,aAAa,CAAC;QAExF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;YACpC,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExC,iCAAiC;QACjC,MAAM,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAC1D,CAAC,CAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,yBAAyB,CACnI,CAAC;QACF,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACzD,CAAC,CAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,kCAAkC,CAC5I,CAAC;QAEF,0DAA0D;QAC1D,MAAM,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,kEAAkE;QAClE,MAAM,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,MAAM,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAE/C,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAA6C,CAAC,MAAM,GAAG,OAAO,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAA6C,CAAC,2BAA2B,GAAG,EAAE,CAAC;QAChF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,cAAqD,CAAC,UAAU,GAAG,KAAK,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,cAAqD,CAAC,UAAU,GAAG,GAAG,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAiC,EAAE,cAAc,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,cAAqD,CAAC,KAAK,GAAG,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,WAAkD,CAAC,qBAAqB,GAAG,EAAE,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,cAAqD,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,cAAqD,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAA6C,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAA6C,CAAC,2BAA2B,GAAG,mBAAmB,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,gCAAgC,CAAC,CAAC;QAClG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,WAAkD,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,gCAAgC,CAAC,CAAC;QAClG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,gCAAgC,CAAC,CAAC;QAClG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAA4B,CAAC;QAC/D,MAAM,CAAC,2BAA2B,GAAG,gCAAgC,CAAC;QACtE,MAAM,CAAC,cAAc,GAAG;YACtB,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;YAC1C,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG;SACrD,CAAC;QACF,MAAM,CAAC,WAAW,GAAG,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,CAAC;QACjF,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,4DAA4D;QAC5D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,wCAAwC;QACxC,MAAM,GAAG,GAAG,MAA4C,CAAC;QACzD,MAAM,aAAa,GAAG,GAAG,CAAC,2BAA2B,CAAC;QACtD,OAAO,GAAG,CAAC,2BAA2B,CAAC;QACvC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAiD,CAAC;QACpE,MAAM,aAAa,GAAG,EAAE,CAAC,qBAAqB,CAAC;QAC/C,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAE3E,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,WAAkD,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;QACpG,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,WAAkD,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,WAAkD,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,kEAAkE;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}