@intutic/cli 1.4.1 → 1.6.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.
- package/dist/cli.js +29 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +14 -4
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/policy.d.ts +56 -0
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +234 -54
- package/dist/commands/policy.js.map +1 -1
- package/dist/harness/detector.d.ts +1 -1
- package/dist/harness/detector.js +1 -1
- package/package.json +14 -15
- package/dist/commands/benchmark.d.ts +0 -31
- package/dist/commands/benchmark.d.ts.map +0 -1
- package/dist/commands/benchmark.js +0 -211
- package/dist/commands/benchmark.js.map +0 -1
- package/dist/commands/budgetCompatibility.test.d.ts +0 -2
- package/dist/commands/budgetCompatibility.test.d.ts.map +0 -1
- package/dist/commands/budgetCompatibility.test.js +0 -19
- package/dist/commands/budgetCompatibility.test.js.map +0 -1
- package/dist/commands/enterprise-install.d.ts +0 -36
- package/dist/commands/enterprise-install.d.ts.map +0 -1
- package/dist/commands/enterprise-install.js +0 -289
- package/dist/commands/enterprise-install.js.map +0 -1
- package/dist/commands/eval.d.ts +0 -13
- package/dist/commands/eval.d.ts.map +0 -1
- package/dist/commands/eval.js +0 -67
- package/dist/commands/eval.js.map +0 -1
- package/dist/commands/exec.test.d.ts +0 -2
- package/dist/commands/exec.test.d.ts.map +0 -1
- package/dist/commands/exec.test.js +0 -29
- package/dist/commands/exec.test.js.map +0 -1
- package/dist/commands/export.d.ts +0 -21
- package/dist/commands/export.d.ts.map +0 -1
- package/dist/commands/export.js +0 -116
- package/dist/commands/export.js.map +0 -1
- package/dist/commands/install-daemon.test.d.ts +0 -2
- package/dist/commands/install-daemon.test.d.ts.map +0 -1
- package/dist/commands/install-daemon.test.js +0 -93
- package/dist/commands/install-daemon.test.js.map +0 -1
- package/dist/commands/mdm.d.ts +0 -23
- package/dist/commands/mdm.d.ts.map +0 -1
- package/dist/commands/mdm.js +0 -134
- package/dist/commands/mdm.js.map +0 -1
- package/dist/commands/prompt.d.ts +0 -11
- package/dist/commands/prompt.d.ts.map +0 -1
- package/dist/commands/prompt.js +0 -71
- package/dist/commands/prompt.js.map +0 -1
- package/dist/commands/sop-audit.d.ts +0 -17
- package/dist/commands/sop-audit.d.ts.map +0 -1
- package/dist/commands/sop-audit.js +0 -136
- package/dist/commands/sop-audit.js.map +0 -1
- package/dist/lib/envInjector.test.d.ts +0 -2
- package/dist/lib/envInjector.test.d.ts.map +0 -1
- package/dist/lib/envInjector.test.js +0 -32
- package/dist/lib/envInjector.test.js.map +0 -1
- package/dist/lib/process.test.d.ts +0 -2
- package/dist/lib/process.test.d.ts.map +0 -1
- package/dist/lib/process.test.js +0 -44
- package/dist/lib/process.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `intutic sop audit` — SOP health, dependency graph, and drift report.
|
|
3
|
-
*
|
|
4
|
-
* Fetches:
|
|
5
|
-
* 1. GET /api/v1/sop/dependency-graph — SOP nodes + cross-reference edges
|
|
6
|
-
* 2. GET /api/v1/sync/report — drift data per harness
|
|
7
|
-
*
|
|
8
|
-
* Outputs a formatted table: SOP ID | Title | Status | Edges | Drift
|
|
9
|
-
* Exits with code 1 if any SOP shows DRIFTED status or if drift is detected.
|
|
10
|
-
*
|
|
11
|
-
* TD-124: CLI intutic sop audit command
|
|
12
|
-
* LLD #8 — Sync Daemon / CLI
|
|
13
|
-
*
|
|
14
|
-
* @module
|
|
15
|
-
*/
|
|
16
|
-
export declare function runSopAudit(): Promise<void>;
|
|
17
|
-
//# sourceMappingURL=sop-audit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sop-audit.d.ts","sourceRoot":"","sources":["../../src/commands/sop-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiCH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyIjD"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `intutic sop audit` — SOP health, dependency graph, and drift report.
|
|
3
|
-
*
|
|
4
|
-
* Fetches:
|
|
5
|
-
* 1. GET /api/v1/sop/dependency-graph — SOP nodes + cross-reference edges
|
|
6
|
-
* 2. GET /api/v1/sync/report — drift data per harness
|
|
7
|
-
*
|
|
8
|
-
* Outputs a formatted table: SOP ID | Title | Status | Edges | Drift
|
|
9
|
-
* Exits with code 1 if any SOP shows DRIFTED status or if drift is detected.
|
|
10
|
-
*
|
|
11
|
-
* TD-124: CLI intutic sop audit command
|
|
12
|
-
* LLD #8 — Sync Daemon / CLI
|
|
13
|
-
*
|
|
14
|
-
* @module
|
|
15
|
-
*/
|
|
16
|
-
import pc from 'picocolors';
|
|
17
|
-
import { log } from '../lib/logger.js';
|
|
18
|
-
import { loadCredentials } from '../config/store.js';
|
|
19
|
-
export async function runSopAudit() {
|
|
20
|
-
log.header('Intutic — SOP Audit');
|
|
21
|
-
const creds = await loadCredentials();
|
|
22
|
-
if (!creds) {
|
|
23
|
-
log.error('Not authenticated. Run `intutic login` first.');
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
26
|
-
const baseUrl = creds.controlPlaneUrl ?? 'https://api.intutic.ai';
|
|
27
|
-
const headers = {
|
|
28
|
-
Authorization: `Bearer ${creds.apiKey}`,
|
|
29
|
-
'x-workspace-id': creds.workspaceId ?? '',
|
|
30
|
-
'Content-Type': 'application/json',
|
|
31
|
-
};
|
|
32
|
-
// ── 1. Fetch dependency graph ──────────────────────────────────────
|
|
33
|
-
let graph = { ok: false, nodes: [], edges: [] };
|
|
34
|
-
try {
|
|
35
|
-
const resp = await fetch(`${baseUrl}/api/v1/sop/dependency-graph`, { headers });
|
|
36
|
-
if (resp.ok) {
|
|
37
|
-
graph = (await resp.json());
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
log.warn(`Dependency graph fetch failed: HTTP ${resp.status}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
log.warn(`Dependency graph unreachable: ${err instanceof Error ? err.message : String(err)}`);
|
|
45
|
-
}
|
|
46
|
-
// ── 2. Fetch sync/drift report ─────────────────────────────────────
|
|
47
|
-
let syncReport = {};
|
|
48
|
-
try {
|
|
49
|
-
const resp = await fetch(`${baseUrl}/api/v1/sync/report`, { headers });
|
|
50
|
-
if (resp.ok) {
|
|
51
|
-
syncReport = (await resp.json());
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
log.warn(`Sync report fetch failed: HTTP ${resp.status}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
log.warn(`Sync report unreachable: ${err instanceof Error ? err.message : String(err)}`);
|
|
59
|
-
}
|
|
60
|
-
// Build edge count map
|
|
61
|
-
const edgesFrom = new Map();
|
|
62
|
-
for (const edge of graph.edges) {
|
|
63
|
-
edgesFrom.set(edge.from, (edgesFrom.get(edge.from) ?? 0) + 1);
|
|
64
|
-
}
|
|
65
|
-
// Global drift flag from sync report
|
|
66
|
-
const hasDrift = (syncReport.harnesses ?? []).some((h) => h.drifted);
|
|
67
|
-
// ── 3. Print table ─────────────────────────────────────────────────
|
|
68
|
-
const COL_ID = 22;
|
|
69
|
-
const COL_TITLE = 36;
|
|
70
|
-
const COL_STATUS = 14;
|
|
71
|
-
const COL_EDGES = 7;
|
|
72
|
-
const COL_DRIFT = 8;
|
|
73
|
-
const padR = (s, n) => s.slice(0, n).padEnd(n);
|
|
74
|
-
const padL = (s, n) => s.slice(0, n).padStart(n);
|
|
75
|
-
const header = pc.bold(padR('SOP ID', COL_ID)) +
|
|
76
|
-
' ' +
|
|
77
|
-
pc.bold(padR('Title', COL_TITLE)) +
|
|
78
|
-
' ' +
|
|
79
|
-
pc.bold(padR('Status', COL_STATUS)) +
|
|
80
|
-
' ' +
|
|
81
|
-
pc.bold(padL('Refs', COL_EDGES)) +
|
|
82
|
-
' ' +
|
|
83
|
-
pc.bold(padL('Drift', COL_DRIFT));
|
|
84
|
-
const divider = '─'.repeat(COL_ID + COL_TITLE + COL_STATUS + COL_EDGES + COL_DRIFT + 8);
|
|
85
|
-
console.log('\n' + header);
|
|
86
|
-
console.log(pc.dim(divider));
|
|
87
|
-
let hasSopIssues = false;
|
|
88
|
-
if (graph.nodes.length === 0) {
|
|
89
|
-
console.log(pc.dim(' (no SOPs found in workspace)'));
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
for (const node of graph.nodes) {
|
|
93
|
-
const refs = edgesFrom.get(node.id) ?? 0;
|
|
94
|
-
const isDrifted = node.status === 'DRIFTED' || node.status === 'DEPRECATED';
|
|
95
|
-
const driftStr = hasDrift ? pc.yellow('⚠ yes') : pc.green(' ok');
|
|
96
|
-
if (isDrifted)
|
|
97
|
-
hasSopIssues = true;
|
|
98
|
-
const statusStr = isDrifted
|
|
99
|
-
? pc.yellow(padR(node.status, COL_STATUS))
|
|
100
|
-
: node.status === 'ACTIVE'
|
|
101
|
-
? pc.green(padR(node.status, COL_STATUS))
|
|
102
|
-
: pc.dim(padR(node.status, COL_STATUS));
|
|
103
|
-
console.log(padR(node.id, COL_ID) +
|
|
104
|
-
' ' +
|
|
105
|
-
padR(node.title, COL_TITLE) +
|
|
106
|
-
' ' +
|
|
107
|
-
statusStr +
|
|
108
|
-
' ' +
|
|
109
|
-
padL(String(refs), COL_EDGES) +
|
|
110
|
-
' ' +
|
|
111
|
-
driftStr);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
console.log(pc.dim(divider));
|
|
115
|
-
console.log();
|
|
116
|
-
// ── 4. Summary ─────────────────────────────────────────────────────
|
|
117
|
-
log.field('Total SOPs', String(graph.nodes.length));
|
|
118
|
-
log.field('Cross-references', String(graph.edges.length));
|
|
119
|
-
if (syncReport.harnesses && syncReport.harnesses.length > 0) {
|
|
120
|
-
const driftedHarnesses = syncReport.harnesses.filter((h) => h.drifted);
|
|
121
|
-
log.field('Harness drift', driftedHarnesses.length > 0
|
|
122
|
-
? pc.yellow(`${driftedHarnesses.length} drifted (${driftedHarnesses.map((h) => h.harnessType).join(', ')})`)
|
|
123
|
-
: pc.green('none'));
|
|
124
|
-
}
|
|
125
|
-
const exitCode = hasSopIssues || hasDrift ? 1 : 0;
|
|
126
|
-
if (exitCode === 1) {
|
|
127
|
-
console.log();
|
|
128
|
-
log.error('Audit failed — drift or deprecated SOPs detected. Review and remediate.');
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
console.log();
|
|
132
|
-
log.success('Audit passed — all SOPs healthy.');
|
|
133
|
-
}
|
|
134
|
-
process.exit(exitCode);
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=sop-audit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sop-audit.js","sourceRoot":"","sources":["../../src/commands/sop-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envInjector.test.d.ts","sourceRoot":"","sources":["../../src/lib/envInjector.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { injectBaseUrlEnvVars, removeBaseUrlEnvVars } from './envInjector.js';
|
|
3
|
-
import os from 'node:os';
|
|
4
|
-
import { execSync } from 'node:child_process';
|
|
5
|
-
describe('Environment Variable Injector', () => {
|
|
6
|
-
it('correctly injects and removes env variables on the current platform', async () => {
|
|
7
|
-
const platform = os.platform();
|
|
8
|
-
const testProxyUrl = 'http://127.0.0.1:3001';
|
|
9
|
-
const result = await injectBaseUrlEnvVars(testProxyUrl);
|
|
10
|
-
expect(result.platform).toBe(platform);
|
|
11
|
-
expect(result.vars).toContain('ANTHROPIC_BASE_URL');
|
|
12
|
-
expect(result.vars).toContain('OPENAI_BASE_URL');
|
|
13
|
-
if (platform === 'darwin') {
|
|
14
|
-
expect(result.scope).toBe('system');
|
|
15
|
-
expect(result.method).toBe('launchctl setenv');
|
|
16
|
-
// Verify launchctl has it
|
|
17
|
-
const anthropicVal = execSync('launchctl getenv ANTHROPIC_BASE_URL').toString().trim();
|
|
18
|
-
expect(anthropicVal).toBe(testProxyUrl);
|
|
19
|
-
const openaiVal = execSync('launchctl getenv OPENAI_BASE_URL').toString().trim();
|
|
20
|
-
expect(openaiVal).toBe(testProxyUrl);
|
|
21
|
-
}
|
|
22
|
-
// Now clean up/remove
|
|
23
|
-
await removeBaseUrlEnvVars();
|
|
24
|
-
if (platform === 'darwin') {
|
|
25
|
-
const anthropicValAfter = execSync('launchctl getenv ANTHROPIC_BASE_URL').toString().trim();
|
|
26
|
-
expect(anthropicValAfter).toBe('');
|
|
27
|
-
const openaiValAfter = execSync('launchctl getenv OPENAI_BASE_URL').toString().trim();
|
|
28
|
-
expect(openaiValAfter).toBe('');
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
//# sourceMappingURL=envInjector.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envInjector.test.js","sourceRoot":"","sources":["../../src/lib/envInjector.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;QAC9B,MAAM,YAAY,GAAG,uBAAuB,CAAA;QAE5C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAA;QACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAEhD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAE9C,0BAA0B;YAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;YACtF,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAEvC,MAAM,SAAS,GAAG,QAAQ,CAAC,kCAAkC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;YAChF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtC,CAAC;QAED,sBAAsB;QACtB,MAAM,oBAAoB,EAAE,CAAA;QAE5B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;YAC3F,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAClC,MAAM,cAAc,GAAG,QAAQ,CAAC,kCAAkC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;YACrF,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process.test.d.ts","sourceRoot":"","sources":["../../src/lib/process.test.ts"],"names":[],"mappings":""}
|
package/dist/lib/process.test.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { parseProcessOutput } from './process.js';
|
|
3
|
-
describe('Process Parser', () => {
|
|
4
|
-
it('correctly parses Unix/macOS ps output format', () => {
|
|
5
|
-
const psOutput = `
|
|
6
|
-
PID ARGS
|
|
7
|
-
1234 /Applications/Cursor.app/Contents/MacOS/Cursor
|
|
8
|
-
5678 aider --model openai/gpt-4o
|
|
9
|
-
99999 node /usr/local/bin/claude
|
|
10
|
-
`;
|
|
11
|
-
const results = parseProcessOutput(psOutput, 'darwin');
|
|
12
|
-
expect(results).toHaveLength(3); // 3 parsed processes (header skipped since PID is NaN)
|
|
13
|
-
// Actually let's look at results:
|
|
14
|
-
const cursorProc = results.find(r => r.pid === 1234);
|
|
15
|
-
expect(cursorProc).toBeDefined();
|
|
16
|
-
expect(cursorProc?.command).toBe('/Applications/Cursor.app/Contents/MacOS/Cursor');
|
|
17
|
-
const aiderProc = results.find(r => r.pid === 5678);
|
|
18
|
-
expect(aiderProc).toBeDefined();
|
|
19
|
-
expect(aiderProc?.command).toBe('aider --model openai/gpt-4o');
|
|
20
|
-
const claudeProc = results.find(r => r.pid === 99999);
|
|
21
|
-
expect(claudeProc).toBeDefined();
|
|
22
|
-
expect(claudeProc?.command).toBe('node /usr/local/bin/claude');
|
|
23
|
-
});
|
|
24
|
-
it('correctly parses Windows tasklist CSV output format', () => {
|
|
25
|
-
const tasklistOutput = `
|
|
26
|
-
"System Idle Process","0","Services","0","8 K"
|
|
27
|
-
"System","4","Services","0","3,816 K"
|
|
28
|
-
"Cursor.exe","12345","Console","1","150,000 K"
|
|
29
|
-
"goose.exe","54321","Console","1","50,000 K"
|
|
30
|
-
`;
|
|
31
|
-
const results = parseProcessOutput(tasklistOutput, 'win32');
|
|
32
|
-
expect(results).toHaveLength(4);
|
|
33
|
-
const systemProc = results.find(r => r.pid === 4);
|
|
34
|
-
expect(systemProc).toBeDefined();
|
|
35
|
-
expect(systemProc?.command).toBe('System');
|
|
36
|
-
const cursorProc = results.find(r => r.pid === 12345);
|
|
37
|
-
expect(cursorProc).toBeDefined();
|
|
38
|
-
expect(cursorProc?.command).toBe('Cursor.exe');
|
|
39
|
-
const gooseProc = results.find(r => r.pid === 54321);
|
|
40
|
-
expect(gooseProc).toBeDefined();
|
|
41
|
-
expect(gooseProc?.command).toBe('goose.exe');
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
//# sourceMappingURL=process.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process.test.js","sourceRoot":"","sources":["../../src/lib/process.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,QAAQ,GAAG;;;;;KAKhB,CAAA;QACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAEtD,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,CAAC,uDAAuD;QAEvF,kCAAkC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAA;QACpD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;QAElF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAA;QACnD,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAE9D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAA;QACrD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,cAAc,GAAG;;;;;CAK1B,CAAA;QACG,MAAM,OAAO,GAAG,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAE3D,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAE/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACjD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAA;QACrD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAA;QACpD,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|