@tuned-tensor/local 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/README.md +149 -0
- package/dist/artifacts.d.ts +92 -0
- package/dist/artifacts.js +591 -3
- package/dist/artifacts.js.map +1 -1
- package/dist/contracts.d.ts +5 -2
- package/dist/contracts.js +15 -10
- package/dist/contracts.js.map +1 -1
- package/dist/dataset.d.ts +3 -0
- package/dist/dataset.js +87 -5
- package/dist/dataset.js.map +1 -1
- package/dist/doctor.d.ts +13 -2
- package/dist/doctor.js +372 -49
- package/dist/doctor.js.map +1 -1
- package/dist/evaluation.d.ts +15 -0
- package/dist/evaluation.js +120 -16
- package/dist/evaluation.js.map +1 -1
- package/dist/huggingface-cache.d.ts +26 -0
- package/dist/huggingface-cache.js +68 -0
- package/dist/huggingface-cache.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +766 -73
- package/dist/index.js.map +1 -1
- package/dist/local-project.d.ts +11 -0
- package/dist/local-project.js +96 -3
- package/dist/local-project.js.map +1 -1
- package/dist/model-registry.d.ts +21 -0
- package/dist/model-registry.js +198 -0
- package/dist/model-registry.js.map +1 -1
- package/dist/model-server.d.ts +32 -0
- package/dist/model-server.js +158 -0
- package/dist/model-server.js.map +1 -0
- package/dist/orchestrator.d.ts +3 -0
- package/dist/orchestrator.js +1001 -142
- package/dist/orchestrator.js.map +1 -1
- package/dist/prefetch.d.ts +43 -0
- package/dist/prefetch.js +192 -0
- package/dist/prefetch.js.map +1 -0
- package/dist/process-runner.d.ts +7 -0
- package/dist/process-runner.js +171 -16
- package/dist/process-runner.js.map +1 -1
- package/dist/process-training.d.ts +5 -1
- package/dist/process-training.js +32 -16
- package/dist/process-training.js.map +1 -1
- package/dist/run-reporter.d.ts +2 -0
- package/dist/run-reporter.js +10 -0
- package/dist/run-reporter.js.map +1 -1
- package/dist/store.d.ts +16 -2
- package/dist/store.js +189 -24
- package/dist/store.js.map +1 -1
- package/docs/architecture.md +32 -0
- package/docs/local-workflow-remediation-2026-07-13.md +130 -0
- package/docs/local-workflow-ux-review-2026-07-13.md +458 -0
- package/docs/spark.md +10 -0
- package/package.json +3 -1
- package/training/local-runner/pyproject.toml +1 -0
- package/training/local-runner/src/evaluate.py +80 -20
- package/training/local-runner/src/prefetch.py +178 -0
- package/training/local-runner/src/serve.py +329 -0
- package/training/local-runner/src/train.py +47 -22
- package/training/local-runner/src/train_dpo.py +41 -25
- package/training/local-runner/uv.lock +2401 -0
package/dist/store.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { appendFile, copyFile, mkdir, readdir, readFile, rename, stat, writeFile } from "node:fs/promises";
|
|
1
|
+
import { appendFile, copyFile, mkdir, readdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
6
|
const require = createRequire(import.meta.url);
|
|
7
7
|
const BetterSqlite = require("better-sqlite3");
|
|
8
|
+
export function isTerminalRunState(state) {
|
|
9
|
+
return state.status === "stage_completed"
|
|
10
|
+
|| state.status === "completed"
|
|
11
|
+
|| state.status === "failed"
|
|
12
|
+
|| (state.status === "cancelled" && state.current_stage === "cancelled" && Boolean(state.completed_at));
|
|
13
|
+
}
|
|
8
14
|
export function defaultLocalHome() {
|
|
9
15
|
return resolve(process.env.TT_LOCAL_HOME ?? join(homedir(), ".tuned-tensor-local"));
|
|
10
16
|
}
|
|
@@ -269,6 +275,7 @@ export function createLocalStore(root = defaultLocalHome()) {
|
|
|
269
275
|
const runEventsPath = (id) => join(runDir(id), "progress.jsonl");
|
|
270
276
|
const runRequestPath = (id) => join(runDir(id), "request.json");
|
|
271
277
|
const runReportPath = (id) => join(runDir(id), "run-report.json");
|
|
278
|
+
const cancellationPath = (id) => join(runDir(id), "cancel.requested");
|
|
272
279
|
const specDir = (id) => join(paths.specsDir, id);
|
|
273
280
|
const specPath = (id) => join(specDir(id), "spec.json");
|
|
274
281
|
const modelPath = (id) => join(paths.modelsDir, id, "model.json");
|
|
@@ -303,6 +310,42 @@ export function createLocalStore(root = defaultLocalHome()) {
|
|
|
303
310
|
});
|
|
304
311
|
withMetadataDb(paths, (db) => insertEvent(db, row));
|
|
305
312
|
}
|
|
313
|
+
async function finalizeCancellationState(runId) {
|
|
314
|
+
const previous = await getRun(runId);
|
|
315
|
+
if (previous.status === "cancelled" && previous.current_stage === "cancelled" && previous.completed_at) {
|
|
316
|
+
return previous;
|
|
317
|
+
}
|
|
318
|
+
const now = new Date().toISOString();
|
|
319
|
+
const cancelled = {
|
|
320
|
+
...previous,
|
|
321
|
+
status: "cancelled",
|
|
322
|
+
current_stage: "cancelled",
|
|
323
|
+
status_message: "Run cancelled.",
|
|
324
|
+
error: undefined,
|
|
325
|
+
completed_at: now,
|
|
326
|
+
updated_at: now,
|
|
327
|
+
};
|
|
328
|
+
await writeRunState(cancelled);
|
|
329
|
+
await appendRunEvent(cancelled, { stage: "cancelled", status: "cancelled", message: "Run cancelled." });
|
|
330
|
+
return cancelled;
|
|
331
|
+
}
|
|
332
|
+
async function preserveCancellationRequestState(runId) {
|
|
333
|
+
const previous = await getRun(runId);
|
|
334
|
+
if (isTerminalRunState(previous))
|
|
335
|
+
return previous;
|
|
336
|
+
if (previous.status === "cancelled" && previous.current_stage === "cancel_requested")
|
|
337
|
+
return previous;
|
|
338
|
+
const requested = {
|
|
339
|
+
...previous,
|
|
340
|
+
status: "cancelled",
|
|
341
|
+
current_stage: "cancel_requested",
|
|
342
|
+
status_message: "Cancellation requested; waiting for the active worker to stop.",
|
|
343
|
+
error: undefined,
|
|
344
|
+
completed_at: undefined,
|
|
345
|
+
updated_at: new Date().toISOString(),
|
|
346
|
+
};
|
|
347
|
+
return writeRunState(requested);
|
|
348
|
+
}
|
|
306
349
|
async function resolveRunId(id) {
|
|
307
350
|
await ensure();
|
|
308
351
|
if (await exists(runStatePath(id)))
|
|
@@ -318,6 +361,44 @@ export function createLocalStore(root = defaultLocalHome()) {
|
|
|
318
361
|
async function getRun(id) {
|
|
319
362
|
return readJson(runStatePath(await resolveRunId(id)));
|
|
320
363
|
}
|
|
364
|
+
async function registerModelRecord(args) {
|
|
365
|
+
if (!args.training.model_artifact_uri || args.training.metrics?.dry_run === true)
|
|
366
|
+
return null;
|
|
367
|
+
const previous = await getRun(args.request.run_id);
|
|
368
|
+
const modelId = `local-${args.request.run_id}`;
|
|
369
|
+
const existingModel = withMetadataDb(paths, (db) => db.prepare("SELECT * FROM models WHERE id = ?").get(modelId));
|
|
370
|
+
const now = new Date().toISOString();
|
|
371
|
+
const model = {
|
|
372
|
+
id: modelId,
|
|
373
|
+
run_id: args.request.run_id,
|
|
374
|
+
behavior_spec_id: args.request.behavior_spec_id,
|
|
375
|
+
name: `${args.request.spec_snapshot.base_model} (${args.request.run_id.slice(0, 8)})`,
|
|
376
|
+
provider: args.training.provider,
|
|
377
|
+
base_model: args.request.spec_snapshot.base_model,
|
|
378
|
+
artifact_uri: args.training.model_artifact_uri,
|
|
379
|
+
artifact_dir: args.artifactDir,
|
|
380
|
+
metrics: args.training.metrics,
|
|
381
|
+
created_at: existingModel?.created_at ?? args.createdAt ?? now,
|
|
382
|
+
};
|
|
383
|
+
await writeJsonAtomic(modelPath(model.id), model);
|
|
384
|
+
withMetadataDb(paths, (db) => upsertModel(db, model));
|
|
385
|
+
const alreadyRegistered = previous.model_id === modelId;
|
|
386
|
+
const state = {
|
|
387
|
+
...previous,
|
|
388
|
+
model_id: modelId,
|
|
389
|
+
updated_at: now,
|
|
390
|
+
};
|
|
391
|
+
await writeRunState(state);
|
|
392
|
+
if (!alreadyRegistered) {
|
|
393
|
+
await appendRunEvent(state, {
|
|
394
|
+
stage: "model_registered",
|
|
395
|
+
status: "running",
|
|
396
|
+
message: "Local model artifact registered.",
|
|
397
|
+
details: { model_id: modelId, artifact_uri: model.artifact_uri },
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
return model;
|
|
401
|
+
}
|
|
321
402
|
return {
|
|
322
403
|
root: resolvedRoot,
|
|
323
404
|
paths,
|
|
@@ -373,60 +454,123 @@ export function createLocalStore(root = defaultLocalHome()) {
|
|
|
373
454
|
await appendRunEvent(state, { stage: "queued", status: "queued", message: "Run queued." });
|
|
374
455
|
return state;
|
|
375
456
|
},
|
|
457
|
+
async syncRunRequest(request, artifactDir) {
|
|
458
|
+
const previous = await getRun(request.run_id);
|
|
459
|
+
if (previous.behavior_spec_id !== request.behavior_spec_id
|
|
460
|
+
|| previous.user_id !== request.user_id
|
|
461
|
+
|| previous.run_number !== request.run_number) {
|
|
462
|
+
throw new Error(`Run ${request.run_id} cannot be reused with different user, behavior spec, or run number identity.`);
|
|
463
|
+
}
|
|
464
|
+
await this.importSpec(request.behavior_spec_id, request.spec_snapshot);
|
|
465
|
+
await writeJsonAtomic(runRequestPath(request.run_id), request);
|
|
466
|
+
const state = {
|
|
467
|
+
...previous,
|
|
468
|
+
artifact_dir: artifactDir ?? previous.artifact_dir,
|
|
469
|
+
base_model: request.spec_snapshot.base_model,
|
|
470
|
+
spec_name: request.spec_snapshot.name,
|
|
471
|
+
updated_at: new Date().toISOString(),
|
|
472
|
+
};
|
|
473
|
+
await writeRunState(state);
|
|
474
|
+
return state;
|
|
475
|
+
},
|
|
376
476
|
async updateRun({ runId, status, stage, message, details }) {
|
|
377
477
|
const previous = await getRun(runId);
|
|
478
|
+
if (status !== "cancelled" && await exists(cancellationPath(previous.id))) {
|
|
479
|
+
return preserveCancellationRequestState(previous.id);
|
|
480
|
+
}
|
|
481
|
+
const active = status !== "stage_completed" && status !== "completed" && status !== "failed" && status !== "cancelled";
|
|
482
|
+
const successful = status === "stage_completed" || status === "completed";
|
|
483
|
+
const now = new Date().toISOString();
|
|
378
484
|
const state = {
|
|
379
485
|
...previous,
|
|
380
486
|
status,
|
|
381
487
|
current_stage: stage,
|
|
382
488
|
status_message: message,
|
|
383
|
-
|
|
489
|
+
...(active
|
|
490
|
+
? { error: undefined, completed_at: undefined }
|
|
491
|
+
: successful
|
|
492
|
+
? { error: undefined, completed_at: now }
|
|
493
|
+
: {}),
|
|
494
|
+
updated_at: now,
|
|
384
495
|
};
|
|
385
496
|
await writeRunState(state);
|
|
386
|
-
|
|
497
|
+
if (status !== "cancelled" && await exists(cancellationPath(previous.id))) {
|
|
498
|
+
return preserveCancellationRequestState(previous.id);
|
|
499
|
+
}
|
|
500
|
+
await appendRunEvent(state, {
|
|
501
|
+
stage,
|
|
502
|
+
status: successful ? "completed" : status === "failed" ? "failed" : "running",
|
|
503
|
+
message,
|
|
504
|
+
details,
|
|
505
|
+
});
|
|
387
506
|
return state;
|
|
388
507
|
},
|
|
389
508
|
async completeRun(report, artifactDir, reportPath) {
|
|
390
|
-
|
|
391
|
-
|
|
509
|
+
if (await exists(cancellationPath(report.run_id))) {
|
|
510
|
+
return preserveCancellationRequestState(report.run_id);
|
|
511
|
+
}
|
|
512
|
+
const request = await readJson(runRequestPath(report.run_id));
|
|
392
513
|
const completedAt = report.created_at ?? new Date().toISOString();
|
|
514
|
+
const model = await registerModelRecord({
|
|
515
|
+
request,
|
|
516
|
+
training: report.training,
|
|
517
|
+
artifactDir,
|
|
518
|
+
createdAt: completedAt,
|
|
519
|
+
});
|
|
520
|
+
if (!model) {
|
|
521
|
+
await rm(join(paths.modelsDir, `local-${report.run_id}`), { recursive: true, force: true });
|
|
522
|
+
withMetadataDb(paths, (db) => db.prepare("DELETE FROM models WHERE run_id = ?").run(report.run_id));
|
|
523
|
+
}
|
|
524
|
+
const previous = await getRun(report.run_id);
|
|
393
525
|
const state = {
|
|
394
526
|
...previous,
|
|
395
527
|
status: "completed",
|
|
396
528
|
current_stage: "completed",
|
|
397
529
|
status_message: "Run completed successfully.",
|
|
398
530
|
report_path: reportPath,
|
|
399
|
-
model_id:
|
|
531
|
+
model_id: model?.id,
|
|
532
|
+
error: undefined,
|
|
400
533
|
completed_at: completedAt,
|
|
401
534
|
updated_at: completedAt,
|
|
402
535
|
};
|
|
403
536
|
await writeRunState(state);
|
|
537
|
+
if (await exists(cancellationPath(report.run_id))) {
|
|
538
|
+
return preserveCancellationRequestState(report.run_id);
|
|
539
|
+
}
|
|
404
540
|
await copyIfExists(reportPath, runReportPath(report.run_id));
|
|
405
541
|
await appendRunEvent(state, {
|
|
406
542
|
stage: "completed",
|
|
407
543
|
status: "completed",
|
|
408
544
|
message: "Run completed successfully.",
|
|
409
|
-
details: { report_path: reportPath, model_id:
|
|
545
|
+
details: { report_path: reportPath, ...(model ? { model_id: model.id } : {}) },
|
|
410
546
|
});
|
|
411
|
-
const model = {
|
|
412
|
-
id: modelId,
|
|
413
|
-
run_id: report.run_id,
|
|
414
|
-
behavior_spec_id: report.behavior_spec_id,
|
|
415
|
-
name: `${report.run_metadata?.base_model ?? report.base_model} (${report.run_id.slice(0, 8)})`,
|
|
416
|
-
provider: report.training.provider,
|
|
417
|
-
base_model: report.base_model,
|
|
418
|
-
artifact_uri: report.fine_tuned_model_id,
|
|
419
|
-
artifact_dir: artifactDir,
|
|
420
|
-
metrics: report.training.metrics,
|
|
421
|
-
created_at: completedAt,
|
|
422
|
-
};
|
|
423
|
-
await writeJsonAtomic(modelPath(model.id), model);
|
|
424
|
-
withMetadataDb(paths, (db) => upsertModel(db, model));
|
|
425
547
|
return state;
|
|
426
548
|
},
|
|
549
|
+
registerModel: registerModelRecord,
|
|
550
|
+
async invalidateRunOutputs(runId, options) {
|
|
551
|
+
const previous = await getRun(runId);
|
|
552
|
+
if (options.report)
|
|
553
|
+
await rm(runReportPath(previous.id), { force: true });
|
|
554
|
+
if (options.model) {
|
|
555
|
+
await rm(join(paths.modelsDir, `local-${previous.id}`), { recursive: true, force: true });
|
|
556
|
+
withMetadataDb(paths, (db) => db.prepare("DELETE FROM models WHERE run_id = ?").run(previous.id));
|
|
557
|
+
}
|
|
558
|
+
const state = {
|
|
559
|
+
...previous,
|
|
560
|
+
...(options.report ? { report_path: undefined } : {}),
|
|
561
|
+
...(options.model ? { model_id: undefined } : {}),
|
|
562
|
+
error: undefined,
|
|
563
|
+
completed_at: undefined,
|
|
564
|
+
updated_at: new Date().toISOString(),
|
|
565
|
+
};
|
|
566
|
+
return writeRunState(state);
|
|
567
|
+
},
|
|
427
568
|
async failRun(runId, error) {
|
|
428
569
|
const previous = await getRun(runId);
|
|
429
570
|
const now = new Date().toISOString();
|
|
571
|
+
if (await exists(cancellationPath(previous.id))) {
|
|
572
|
+
return preserveCancellationRequestState(previous.id);
|
|
573
|
+
}
|
|
430
574
|
const state = {
|
|
431
575
|
...previous,
|
|
432
576
|
status: "failed",
|
|
@@ -437,22 +581,43 @@ export function createLocalStore(root = defaultLocalHome()) {
|
|
|
437
581
|
updated_at: now,
|
|
438
582
|
};
|
|
439
583
|
await writeRunState(state);
|
|
584
|
+
if (await exists(cancellationPath(previous.id))) {
|
|
585
|
+
return preserveCancellationRequestState(previous.id);
|
|
586
|
+
}
|
|
440
587
|
await appendRunEvent(state, { stage: "failed", status: "failed", message: error });
|
|
441
588
|
return state;
|
|
442
589
|
},
|
|
443
590
|
async cancelRun(runId) {
|
|
444
591
|
const state = await getRun(runId);
|
|
445
|
-
|
|
592
|
+
if (isTerminalRunState(state) || (state.status === "cancelled" && state.current_stage === "cancel_requested")) {
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
await writeFile(cancellationPath(state.id), `${new Date().toISOString()}\n`, "utf8");
|
|
596
|
+
const latest = await getRun(state.id);
|
|
597
|
+
if (isTerminalRunState(latest)) {
|
|
598
|
+
if (latest.status !== "cancelled")
|
|
599
|
+
await rm(cancellationPath(state.id), { force: true });
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
446
602
|
const updated = {
|
|
447
|
-
...
|
|
603
|
+
...latest,
|
|
448
604
|
status: "cancelled",
|
|
449
605
|
current_stage: "cancel_requested",
|
|
450
|
-
status_message: "Cancellation requested.",
|
|
606
|
+
status_message: "Cancellation requested; waiting for the active worker to stop.",
|
|
607
|
+
error: undefined,
|
|
608
|
+
completed_at: undefined,
|
|
451
609
|
updated_at: new Date().toISOString(),
|
|
452
610
|
};
|
|
453
611
|
await writeRunState(updated);
|
|
454
612
|
await appendRunEvent(updated, { stage: "cancel_requested", status: "cancelled", message: "Cancellation requested." });
|
|
455
613
|
},
|
|
614
|
+
async finalizeCancellation(runId) {
|
|
615
|
+
return finalizeCancellationState(runId);
|
|
616
|
+
},
|
|
617
|
+
async isCancellationRequested(runId) {
|
|
618
|
+
const state = await getRun(runId);
|
|
619
|
+
return state.status === "cancelled" || await exists(cancellationPath(state.id));
|
|
620
|
+
},
|
|
456
621
|
async listRuns() {
|
|
457
622
|
await ensure();
|
|
458
623
|
return withMetadataDb(paths, (db) => db.prepare("SELECT * FROM runs ORDER BY updated_at DESC").all().map(rowToRunState));
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAyB,CAAC;AAsCvE,MAAM,UAAU,kBAAkB,CAChC,KAAuE;IAEvE,OAAO,KAAK,CAAC,MAAM,KAAK,iBAAiB;WACpC,KAAK,CAAC,MAAM,KAAK,WAAW;WAC5B,KAAK,CAAC,MAAM,KAAK,QAAQ;WACzB,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5G,CAAC;AAuED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC/B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QACnC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,KAAc;IACzD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,MAAM,CAAC;IACvE,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAI,IAAY;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,KAAc;IACrD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,SAAS,CAAI,IAAY;IACtC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAClC,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,EAAU;IAClD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO;IAClC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAsDD,SAAS,cAAc,CAAC,EAAc;IACpC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DP,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAa;IAC/B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAA4B,CAAC,CAAC,CAAC,IAAI;QAC1F,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAa;IAC/B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClG,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAI,KAAyC,EAAE,EAAyB;IAC7F,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAI,EAAc,EAAE,EAAW;IACpD,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAuB,EAAE,KAAoB;IACjE,IAAI,CAAC,GAAG,CACN,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,IAAI,IAAI,EACzB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,IAAI,IAAI,EACxB,KAAK,CAAC,YAAY,IAAI,IAAI,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAc,EAAE,KAAoB;IACrD,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBvB,CAAC,EAAE,KAAK,CAAC,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,EAAc,EAAE,MAAuB;IACzD,EAAE,CAAC,OAAO,CAAC;;;;;;;;;GASV,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,WAAW,CAAC,EAAc,EAAE,KAAuB;IAC1D,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;GAeV,CAAC,CAAC,GAAG,CACJ,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,KAAK,CAAC,UAAU,CACjB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAc,EAAE,KAAoB;IACvD,EAAE,CAAC,OAAO,CAAC;;;GAGV,CAAC,CAAC,GAAG,CACJ,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,KAAK,CAAC,WAAW,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,EAAE;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IAE1E,KAAK,UAAU,MAAM;QACnB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC3C,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,KAAoB;QAC/C,MAAM,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,UAAU,cAAc,CAAC,KAAoB,EAAE,KAA2D;QAC7G,MAAM,GAAG,GAAkB;YACzB,EAAE,EAAE,UAAU,EAAE;YAChB,MAAM,EAAE,KAAK,CAAC,EAAE;YAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,GAAG,KAAK;SACT,CAAC;QACF,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE;YAC5D,EAAE,EAAE,GAAG,CAAC,WAAW;YACnB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,UAAU,yBAAyB,CAAC,KAAa;QACpD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YACvG,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAkB;YAC/B,GAAG,QAAQ;YACX,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,gBAAgB;YAChC,KAAK,EAAE,SAAS;YAChB,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,GAAG;SAChB,CAAC;QACF,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACxG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,gCAAgC,CAAC,KAAa;QAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,kBAAkB,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,CAAC,aAAa,KAAK,kBAAkB;YAAE,OAAO,QAAQ,CAAC;QACtG,MAAM,SAAS,GAAkB;YAC/B,GAAG,QAAQ;YACX,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,kBAAkB;YACjC,cAAc,EAAE,gEAAgE;YAChF,KAAK,EAAE,SAAS;YAChB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,EAAU;QACpC,MAAM,MAAM,EAAE,CAAC;QACf,IAAI,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;;KAExD,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAa,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,EAAU;QAC9B,OAAO,QAAQ,CAAgB,YAAY,CAAC,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,IAKlC;QACC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9F,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACjD,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAyB,CACrF,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAqB;YAC9B,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;YACrF,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAChC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU;YACjD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB;YAC9C,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,UAAU,EAAE,aAAa,EAAE,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG;SAC/D,CAAC;QACF,MAAM,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC;QACxD,MAAM,KAAK,GAAkB;YAC3B,GAAG,QAAQ;YACX,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,GAAG;SAChB,CAAC;QACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,cAAc,CAAC,KAAK,EAAE;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,kCAAkC;gBAC3C,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;aACjE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,KAAK;QACL,MAAM;QAEN,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI;YAC3B,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAClD,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAwB,CAClF,CAAC;YACF,MAAM,MAAM,GAAoB;gBAC9B,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;gBACtB,UAAU,EAAE,cAAc,EAAE,UAAU,IAAI,GAAG;gBAC7C,UAAU,EAAE,GAAG;aAChB,CAAC;YACF,MAAM,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9C,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,SAAS;YACb,MAAM,MAAM,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACjC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,EAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAC/F,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,EAAE;YACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACtD,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAe,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE;YACrC,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAkB;gBAC3B,EAAE,EAAE,OAAO,CAAC,MAAM;gBAClB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,QAAQ;gBACvB,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU;gBAC5C,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;gBACrC,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;aAChB,CAAC;YACF,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW;YACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,IACE,QAAQ,CAAC,gBAAgB,KAAK,OAAO,CAAC,gBAAgB;mBACnD,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;mBACpC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,EAC7C,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,OAAO,OAAO,CAAC,MAAM,+EAA+E,CACrG,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAkB;gBAC3B,GAAG,QAAQ;gBACX,YAAY,EAAE,WAAW,IAAI,QAAQ,CAAC,YAAY;gBAClD,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU;gBAC5C,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;gBACrC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;YACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,KAAK,iBAAiB,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;YACvH,MAAM,UAAU,GAAG,MAAM,KAAK,iBAAiB,IAAI,MAAM,KAAK,WAAW,CAAC;YAC1E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAkB;gBAC3B,GAAG,QAAQ;gBACX,MAAM;gBACN,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,OAAO;gBACvB,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;oBAC/C,CAAC,CAAC,UAAU;wBACV,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE;wBACzC,CAAC,CAAC,EAAE,CAAC;gBACT,UAAU,EAAE,GAAG;aAChB,CAAC;YACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,cAAc,CAAC,KAAK,EAAE;gBAC1B,KAAK;gBACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7E,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU;YAC/C,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAClD,OAAO,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAqB,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC;gBACtC,OAAO;gBACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW;gBACX,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5F,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAkB;gBAC3B,GAAG,QAAQ;gBACX,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,WAAW;gBAC1B,cAAc,EAAE,6BAA6B;gBAC7C,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACnB,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,WAAW;aACxB,CAAC;YACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAClD,OAAO,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,MAAM,cAAc,CAAC,KAAK,EAAE;gBAC1B,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,6BAA6B;gBACtC,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;aAC/E,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,aAAa,EAAE,mBAAmB;QAElC,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO;YACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1F,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACpG,CAAC;YACD,MAAM,KAAK,GAAkB;gBAC3B,GAAG,QAAQ;gBACX,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK;YACxB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,KAAK,GAAkB;gBAC3B,GAAG,QAAQ;gBACX,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,QAAQ;gBACvB,cAAc,EAAE,KAAK;gBACrB,KAAK;gBACL,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,GAAG;aAChB,CAAC;YACF,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,KAAK;YACnB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,CAAC,EAAE,CAAC;gBAC9G,OAAO;YACT,CAAC;YACD,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;oBAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAkB;gBAC7B,GAAG,MAAM;gBACT,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,kBAAkB;gBACjC,cAAc,EAAE,gEAAgE;gBAChF,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACxH,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,KAAK;YAC9B,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,uBAAuB,CAAC,KAAK;YACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,KAAK,CAAC,QAAQ;YACZ,MAAM,MAAM,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACjC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,EAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CACjG,CAAC;QACJ,CAAC;QAED,MAAM;QAEN,KAAK,CAAC,YAAY,CAAC,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;;OAEvD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAe,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAC;YACrC,OAAO,SAAS,CAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,WAAW,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAY,KAAK,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,MAAM,MAAM,CAAC,gBAAgB,CAAC;gBAAE,OAAO,QAAQ,CAAY,gBAAgB,CAAC,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,UAAU;YACd,MAAM,MAAM,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CACjC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,EAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAClG,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,EAAE;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,cAAc;YAClB,MAAM,MAAM,EAAE,CAAC;YACf,MAAM,UAAU,GAAoB,EAAE,CAAC;YACvC,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACnC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAgB,SAAS,CAAC,CAAC;oBACvD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;gBACD,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAgB,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,WAAW,GAAsB,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3F,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAe,IAAI,CAAC,CAAC;oBAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACrC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC7H,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAuB,EAAE,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5F,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACnC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC;oBAAE,YAAY,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAmB,IAAI,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE;gBACpD,EAAE,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;gBAC5F,KAAK,MAAM,GAAG,IAAI,UAAU;oBAAE,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACjD,KAAK,MAAM,IAAI,IAAI,WAAW;oBAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACrD,KAAK,MAAM,KAAK,IAAI,YAAY;oBAAE,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACzD,KAAK,MAAM,KAAK,IAAI,YAAY;oBAAE,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/docs/architecture.md
CHANGED
|
@@ -28,6 +28,12 @@ packaged as a standalone CLI.
|
|
|
28
28
|
and hosted environments.
|
|
29
29
|
- Dashboard/API server: serves local run/model/spec metadata from the local
|
|
30
30
|
state store and accepts local run submissions.
|
|
31
|
+
- Artifact verifier: validates the trained adapter/full-model contract, writes
|
|
32
|
+
an atomic SHA-256 manifest, and registers the model before downstream
|
|
33
|
+
evaluation so successful training survives later-stage failures.
|
|
34
|
+
- Model inference server: loads the recorded base model plus the verified local
|
|
35
|
+
adapter and exposes localhost `/health`, `/v1/models`, and OpenAI-compatible
|
|
36
|
+
`/v1/chat/completions` endpoints.
|
|
31
37
|
|
|
32
38
|
## Repository Boundary
|
|
33
39
|
|
|
@@ -53,6 +59,7 @@ The first runnable milestone should support:
|
|
|
53
59
|
- uv-based or command-based training;
|
|
54
60
|
- native Transformers/PEFT, batch-command, or per-example command evaluation
|
|
55
61
|
with optional OpenRouter judge scoring;
|
|
62
|
+
- verified model manifests and local adapter serving;
|
|
56
63
|
- local dashboard and CLI inspection commands;
|
|
57
64
|
- a tiny smoke-run fixture that finishes quickly.
|
|
58
65
|
|
|
@@ -83,6 +90,19 @@ same `--input`/`--output` JSON files as the bundled Transformers evaluator, so a
|
|
|
83
90
|
custom workflow can load any artifact format as long as it writes compatible
|
|
84
91
|
evaluation results.
|
|
85
92
|
|
|
93
|
+
`paths.modelCache` is a single cache contract: it is passed as Hugging Face
|
|
94
|
+
`HF_HOME`, and Hub snapshots live beneath `<modelCache>/hub`. The environment
|
|
95
|
+
is finalized before importing Hugging Face or Transformers in every bundled
|
|
96
|
+
Python process. Prefetch records the resolved snapshot revision, file count,
|
|
97
|
+
and byte count; `models verify-base` performs a local-only structural check of
|
|
98
|
+
the cached config, tokenizer, weights, and indexed shards.
|
|
99
|
+
|
|
100
|
+
An explicitly configured `paths.baseModel` is a complete Hugging Face snapshot
|
|
101
|
+
directory, never a generic weights file or archive. Its file contents are
|
|
102
|
+
fingerprinted for stage identity. Remote runs should set an immutable
|
|
103
|
+
`base_model_revision`; baseline caching is bypassed when the model or a remote
|
|
104
|
+
input lacks stable content identity.
|
|
105
|
+
|
|
86
106
|
## Local State Layout
|
|
87
107
|
|
|
88
108
|
The local store is intentionally transparent and easy to back up:
|
|
@@ -95,6 +115,18 @@ The local store is intentionally transparent and easy to back up:
|
|
|
95
115
|
- `runs/<run-id>/run-report.json`
|
|
96
116
|
- `models/<model-id>/model.json`
|
|
97
117
|
|
|
118
|
+
Each successful real training stage also writes `artifact-manifest.json` with
|
|
119
|
+
the model contract and SHA-256/size entries for immutable files. Dry runs do
|
|
120
|
+
not create model records. `tt-local models verify` accepts a model ID, exact
|
|
121
|
+
artifact path, or its manifest path and re-hashes the model before it is served
|
|
122
|
+
or handed off.
|
|
123
|
+
|
|
124
|
+
The default Transformers/PEFT contract requires exact adapter weights plus a
|
|
125
|
+
non-empty `adapter_config.json`; a full-model contract requires recognized
|
|
126
|
+
Transformers model weights. Command backends may publish another layout only
|
|
127
|
+
with an explicit framework/format contract, and such artifacts are not
|
|
128
|
+
implicitly servable.
|
|
129
|
+
|
|
98
130
|
SQLite is the primary metadata index for CLI and dashboard listings. The
|
|
99
131
|
per-object JSON files remain the recoverable source for artifacts and
|
|
100
132
|
human-readable inspection. `tt-local store rebuild-index` can reconstruct the
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# TT Local workflow remediation
|
|
2
|
+
|
|
3
|
+
Date: 2026-07-13
|
|
4
|
+
Source review: `docs/local-workflow-ux-review-2026-07-13.md`
|
|
5
|
+
Scope: the current, unreleased working-tree patch
|
|
6
|
+
|
|
7
|
+
This document records what the patch changes, how the intended first-run flow
|
|
8
|
+
should work, and what remains. “Implemented” below means code and focused tests
|
|
9
|
+
exist in the working tree. The validation record below distinguishes automated
|
|
10
|
+
local evidence from the packaged DGX Spark acceptance run.
|
|
11
|
+
|
|
12
|
+
## Critical findings
|
|
13
|
+
|
|
14
|
+
| Finding | Patch status | Remediation in this patch | Remaining qualification |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| TT-L-001: inconsistent Hugging Face caches | Implemented and warm-cache validated on DGX Spark | `paths.modelCache` now has one meaning: `HF_HOME`. Prefetch, training, evaluation, doctor, and serving resolve the Hub cache beneath `<HF_HOME>/hub`; Python sets cache variables before importing Hugging Face libraries. Prefetch reports the resolved snapshot revision, file count, and bytes. `models verify-base` performs a local-only snapshot check. The packaged Spark run reused the existing Hub snapshot and did not grow the legacy duplicate layout from the prior audit. | The fresh/interrupted/corrupt/gated/unwritable/low-disk matrix is not complete, and prefetch attempts are not indexed for later inspection. |
|
|
17
|
+
| TT-L-002: packaged defaults select the wrong Python environment | Implemented and packaged-host validated | Bundled training and Transformers evaluation default to the packaged `training/local-runner` uv project. `doctor` checks the effective commands, required imports, requested CUDA/MPS availability, storage writability/free space, placeholder input, judge configuration, and gated-model token requirements. The package now includes `uv.lock`. A fresh-prefix tarball ran both evaluator and trainer on Linux ARM64/CUDA. | There is no automated Linux ARM64/CUDA CI job, and doctor does not yet estimate whether a selected model and training configuration fit available VRAM. |
|
|
18
|
+
| TT-L-003: unsafe resume reuse | Implemented for identified inputs | The run request (including hyperparameters), effective runner/evaluation configuration, dataset and local multimodal-asset contents, TT Local/Node/platform identity, bundled `pyproject.toml`/`uv.lock`, local base snapshot, immutable remote revision, and parent-artifact contents participate in source or per-stage fingerprints. Reuse also verifies manifested outputs; invalidation removes stage-owned stale directories and dependent outputs. A stored `--parent-model` pins or validates the base identity before launch. | A remote base-model branch should still be explicitly pinned by commit for reproducible execution. The broader one-input-at-a-time and interruption matrix remains outstanding. |
|
|
19
|
+
| TT-L-004: no model artifact validity contract | Implemented for bundled formats | Real training must produce a non-empty model payload. An atomic `artifact-manifest.json` records the model contract plus file sizes and SHA-256 hashes; gzip/tar integrity is checked for archives. PEFT artifacts require exact adapter weights plus `adapter_config.json`; full-model contracts require recognized Transformers weights. Optimizer-only and incomplete adapters are rejected in fixtures. Dry runs do not create model records. A verified real artifact is registered immediately after training, and `models verify` rechecks the manifest before serving. | A live load/serve smoke test remains the final loadability proof for a particular framework/version combination. Explicit custom command-backend contracts remain caller-defined by design. |
|
|
20
|
+
| TT-L-005: unsafe CLI parsing | Implemented | Parsing is strict: top-level and nested help are side-effect free, `--version` is supported, unknown/duplicate/extra flags and missing values fail before work begins, and `--option=value` is accepted. Subprocess-level CLI tests cover the safety contract. | Continue adding each new command and option to the parser contract as the CLI grows. |
|
|
21
|
+
| TT-L-006: silent judge fallback | Implemented | `exact_match` is the safe default. Explicit `llm_judge` mode preflights its model/config/key and fails unless `fallback: "exact_match"` was deliberately configured. Fallback results are marked, excluded from judge baseline caching, and judge configuration/key availability participates in cache identity. | A real external-judge acceptance run should still assert `judge_scored_count > 0`; unit tests cannot prove provider availability. |
|
|
22
|
+
|
|
23
|
+
## High-priority findings
|
|
24
|
+
|
|
25
|
+
| Gap from the review | Patch response | Status |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| A trained artifact is undiscoverable when later evaluation/reporting fails | Register the manifested model immediately after successful training, independently of final report completion. | Implemented and covered by an integration test that forces candidate evaluation failure. |
|
|
28
|
+
| `doctor`/`validate` do not preflight the real job | Reject unchanged generated placeholders and invalid judge setups; run exact bundled-environment imports and device checks; check paths, disk, cache, and gated-model credentials. | Implemented; model-fit VRAM estimation remains open. |
|
|
29
|
+
| No supported TT Local inference handoff | Add `tt-local models serve`, which verifies the stored adapter and exposes `/health`, `/v1/models`, and `/v1/chat/completions` on localhost by default. Non-loopback binding requires explicit opt-in and bearer-token configuration. | Implemented; the newly trained Spark adapter passed all three live endpoints on CUDA. Streaming remains absent. |
|
|
30
|
+
| Cancellation only changes metadata | Poll the cancellation marker at stage boundaries and during long-running evaluation/training; terminate and await the child process group, then publish a terminal `cancelled` state. Late progress/failure/completion writes preserve the request until orchestration finalizes it. | Implemented with process-group, JSON-command, timeout, reporter-failure, and store-race tests; cross-platform process-tree coverage remains to expand. |
|
|
31
|
+
| Staged commands leave a nonterminal run | Persist `stage_completed` after an intentionally requested single stage so `runs watch` exits. | Implemented. |
|
|
32
|
+
| Successful retry retains stale failure state | Clear superseded run errors when active work restarts or a stage/run succeeds, while retaining event history. | Implemented. |
|
|
33
|
+
| Retry/force retains stale model files | Remove only the selected stage's owned directory and dependent outputs before recomputation, then regenerate manifests atomically. | Implemented; interruption-at-each-publication-point tests remain outstanding. |
|
|
34
|
+
|
|
35
|
+
## Improved target workflow
|
|
36
|
+
|
|
37
|
+
The following is the intended CUDA/Spark first-run path from an installed
|
|
38
|
+
package. Replace the generated prompt/example before validation; TT Local
|
|
39
|
+
rejects the unchanged placeholder.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm install -g @tuned-tensor/local
|
|
43
|
+
tt-local --version
|
|
44
|
+
uv --version
|
|
45
|
+
|
|
46
|
+
tt-local init \
|
|
47
|
+
--name "Support Bot" \
|
|
48
|
+
--model Qwen/Qwen3.5-2B \
|
|
49
|
+
--profile spark
|
|
50
|
+
|
|
51
|
+
# Edit tunedtensor.json, then run the exact preflight for this project.
|
|
52
|
+
tt-local doctor tunedtensor.json --config local-runner.json
|
|
53
|
+
tt-local validate tunedtensor.json --config local-runner.json
|
|
54
|
+
|
|
55
|
+
# Make the multi-gigabyte download explicit and verify it without network repair.
|
|
56
|
+
tt-local models prefetch tunedtensor.json --config local-runner.json
|
|
57
|
+
tt-local models verify-base tunedtensor.json --config local-runner.json
|
|
58
|
+
|
|
59
|
+
# Persist the run ID before model work, run in the background, and watch it.
|
|
60
|
+
tt-local run tunedtensor.json --config local-runner.json --detach
|
|
61
|
+
RUN_ID="<run-id returned by --detach>"
|
|
62
|
+
tt-local runs watch "$RUN_ID" --config local-runner.json
|
|
63
|
+
|
|
64
|
+
# Inspect results and independently verify the saved model contract.
|
|
65
|
+
tt-local runs report "$RUN_ID" --config local-runner.json
|
|
66
|
+
MODEL_ID="local-${RUN_ID}"
|
|
67
|
+
tt-local models verify "$MODEL_ID" --config local-runner.json
|
|
68
|
+
|
|
69
|
+
# Start the model endpoint. `tt-local serve` is the separate run dashboard.
|
|
70
|
+
tt-local models serve "$MODEL_ID" \
|
|
71
|
+
--config local-runner.json \
|
|
72
|
+
--spec tunedtensor.json \
|
|
73
|
+
--host 127.0.0.1 \
|
|
74
|
+
--port 8000 \
|
|
75
|
+
--device cuda
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
From a second terminal, check the serving handoff:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
curl --fail http://127.0.0.1:8000/health
|
|
82
|
+
curl --fail http://127.0.0.1:8000/v1/models
|
|
83
|
+
curl --fail http://127.0.0.1:8000/v1/chat/completions \
|
|
84
|
+
-H 'Content-Type: application/json' \
|
|
85
|
+
-d '{"messages":[{"role":"user","content":"Hello"}],"max_tokens":32}'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For a gated base model, export `HF_TOKEN` in the shell or an uncommitted project
|
|
89
|
+
environment before `doctor`/prefetch. Do not commit credentials, caches, model
|
|
90
|
+
artifacts, extracted runtimes, or serving logs.
|
|
91
|
+
|
|
92
|
+
## Validation record
|
|
93
|
+
|
|
94
|
+
This record is updated from commands run against this patch. Rows not exercised
|
|
95
|
+
are called out explicitly rather than inferred from unit coverage.
|
|
96
|
+
|
|
97
|
+
| Validation | Result |
|
|
98
|
+
|---|---|
|
|
99
|
+
| TypeScript typecheck | Pass: `npm run typecheck`. |
|
|
100
|
+
| Node test suite | Pass: `npm test` — 139 passed, 0 failed. |
|
|
101
|
+
| Build and package contents | Pass: `npm run build`; `npm pack --dry-run --json` reports 85 entries and includes `training/local-runner/src/serve.py` plus `training/local-runner/uv.lock`. |
|
|
102
|
+
| Python syntax and lockfile | Pass: `python3 -m py_compile training/local-runner/src/*.py`; `uv lock --check --project training/local-runner` resolved 85 packages without changing the lock. |
|
|
103
|
+
| Fresh-prefix packaged CLI | Pass in `/tmp/tt-local-package-validate.on7l0s`: fresh npm-prefix install, version/help/init/doctor/validate, and full dry run `36cf513f-8846-468f-bca4-4e095f11492e`. |
|
|
104
|
+
| DGX Spark cache flow | Pass in `/home/eve/tt-local-patch-test-20260713-BwhiDc`: `HF_HOME=/home/eve/.cache/huggingface`, Hub revision `15852e8c16360a2fea060d615a32b45270f8a8fc`, 10 files, 4,571,198,095 verified bytes. The prior-audit legacy duplicate remained exactly 291,226,208 bytes; the patch created no second layout. |
|
|
105
|
+
| DGX Spark real run | Pass on NVIDIA GB10/CUDA: run `0f677a15-5574-4ff1-9aa2-b27780c1c9bd`, model `local-0f677a15-5574-4ff1-9aa2-b27780c1c9bd`, terminal `completed`, 157.992 seconds. `models verify` checked three manifested artifacts and a 35,103,917-byte PEFT tar with base revision pinned. An initial attempt exposed PyTorch 2.13's optional native-JIT dependency on system Python headers; the bundled environment now chooses the eager fallback by default, and the repeat passed. |
|
|
106
|
+
| Detach/watch/cancel lifecycle | Pass: successful detached PID 35830 exited after watch completed. Cancellation run `22ee1986-288c-438b-a26e-5f2bc6ebcdcd` moved through `cancel_requested` to terminal `cancelled`; PID 37720 exited and no TT Local/evaluator/trainer process remained. |
|
|
107
|
+
| Saved-model serving | Pass on `127.0.0.1:18080`: `/health` reported CUDA, `/v1/models` listed the new model, and chat returned `positive`; Ctrl-C stopped the endpoint and no server process remained. |
|
|
108
|
+
| Final diff review | `git diff --check` passes. A second-agent review returned GO with no P0/P1 findings; the modified/untracked secret-pattern scan was clean. |
|
|
109
|
+
|
|
110
|
+
## Honest residual gaps
|
|
111
|
+
|
|
112
|
+
The patch does not close the entire acceptance matrix from the review:
|
|
113
|
+
|
|
114
|
+
- Prefetch/download attempts are not indexed, so interrupted attempts and cache
|
|
115
|
+
history are not discoverable through a dedicated status command.
|
|
116
|
+
- CI does not run Linux ARM64 or CUDA; the successful DGX Spark check remains a
|
|
117
|
+
manual acceptance environment.
|
|
118
|
+
- There is no model-fit VRAM estimate before training.
|
|
119
|
+
- Store reports and manifests still need a complete relocation/moved-root
|
|
120
|
+
strategy when artifact or store trees are copied elsewhere.
|
|
121
|
+
- The OpenAI-compatible serving endpoint does not implement streaming.
|
|
122
|
+
- The broader resilience matrix is outstanding: fresh/interrupted/corrupt
|
|
123
|
+
downloads, every resume-input mutation, publication-point interruption,
|
|
124
|
+
cross-platform process cancellation, moved roots, and missing/corrupt
|
|
125
|
+
canonical files.
|
|
126
|
+
- Mutable remote model branches cannot be made reproducible by cache inspection
|
|
127
|
+
alone; production specs should set an immutable `base_model_revision`.
|
|
128
|
+
- Bundled ML subprocesses intentionally receive a minimal environment. Proxy-only
|
|
129
|
+
or private-package-index deployments need an explicit, documented credential
|
|
130
|
+
forwarding mechanism for prefetch rather than inheriting the whole shell.
|