@atcute/lex-cli 2.4.0 → 2.5.1
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/README.md +107 -10
- package/dist/cli.js +10 -168
- package/dist/cli.js.map +1 -1
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +76 -78
- package/dist/codegen.js.map +1 -1
- package/dist/commands/export.d.ts +17 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +76 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/generate.d.ts +17 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +136 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/pull.d.ts +17 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/{pull.js → commands/pull.js} +35 -81
- package/dist/commands/pull.js.map +1 -0
- package/dist/config.d.ts +68 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +54 -3
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +65 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lexicon-loader.d.ts +17 -0
- package/dist/lexicon-loader.d.ts.map +1 -0
- package/dist/lexicon-loader.js +167 -0
- package/dist/lexicon-loader.js.map +1 -0
- package/dist/lexicon-metadata.js.map +1 -1
- package/dist/pull-sources/atproto.d.ts +17 -0
- package/dist/pull-sources/atproto.d.ts.map +1 -0
- package/dist/pull-sources/atproto.js +192 -0
- package/dist/pull-sources/atproto.js.map +1 -0
- package/dist/pull-sources/git.d.ts +15 -0
- package/dist/pull-sources/git.d.ts.map +1 -0
- package/dist/pull-sources/git.js +80 -0
- package/dist/pull-sources/git.js.map +1 -0
- package/dist/pull-sources/types.d.ts +16 -0
- package/dist/pull-sources/types.d.ts.map +1 -0
- package/dist/pull-sources/types.js +2 -0
- package/dist/pull-sources/types.js.map +1 -0
- package/dist/shared-options.d.ts +6 -0
- package/dist/shared-options.d.ts.map +1 -0
- package/dist/shared-options.js +11 -0
- package/dist/shared-options.js.map +1 -0
- package/package.json +12 -9
- package/src/cli.ts +9 -210
- package/src/codegen.ts +90 -88
- package/src/commands/export.ts +106 -0
- package/src/commands/generate.ts +170 -0
- package/src/{pull.ts → commands/pull.ts} +49 -116
- package/src/config.ts +67 -4
- package/src/lexicon-loader.ts +201 -0
- package/src/pull-sources/atproto.ts +243 -0
- package/src/pull-sources/git.ts +103 -0
- package/src/pull-sources/types.ts +18 -0
- package/src/shared-options.ts +13 -0
- package/dist/pull.d.ts +0 -7
- package/dist/pull.d.ts.map +0 -1
- package/dist/pull.js.map +0 -1
package/dist/codegen.js
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { dirname as getDirname, relative as getRelativePath } from 'node:path/posix';
|
|
2
2
|
import * as prettier from 'prettier';
|
|
3
3
|
const lit = JSON.stringify;
|
|
4
|
+
const toLexUri = (path) => {
|
|
5
|
+
const { nsid, defId } = path;
|
|
6
|
+
return defId === 'main' ? nsid : `${nsid}#${defId}`;
|
|
7
|
+
};
|
|
8
|
+
const resolvePath = (from, ref) => {
|
|
9
|
+
const index = ref.indexOf('#');
|
|
10
|
+
// nsid (no hash)
|
|
11
|
+
if (index === -1) {
|
|
12
|
+
return { nsid: ref, defId: 'main' };
|
|
13
|
+
}
|
|
14
|
+
// #defId (local ref)
|
|
15
|
+
if (index === 0) {
|
|
16
|
+
return { nsid: from.nsid, defId: ref.slice(1) };
|
|
17
|
+
}
|
|
18
|
+
// nsid#defId (full ref)
|
|
19
|
+
return { nsid: ref.slice(0, index), defId: ref.slice(index + 1) };
|
|
20
|
+
};
|
|
4
21
|
const resolveExternalImport = (nsid, mappings) => {
|
|
5
22
|
return mappings.find((mapping) => {
|
|
6
23
|
return mapping.nsid.some((pattern) => {
|
|
@@ -51,57 +68,57 @@ export const generateLexiconApi = async (opts) => {
|
|
|
51
68
|
});
|
|
52
69
|
for (const defId of sortedDefIds) {
|
|
53
70
|
const def = doc.defs[defId];
|
|
54
|
-
const
|
|
71
|
+
const path = { nsid: doc.id, defId };
|
|
55
72
|
const camelcased = toCamelCase(defId);
|
|
56
73
|
const varname = `${camelcased}Schema`;
|
|
57
74
|
let result;
|
|
58
75
|
switch (def.type) {
|
|
59
76
|
case 'query': {
|
|
60
|
-
result = generateXrpcQuery(imports,
|
|
77
|
+
result = generateXrpcQuery(imports, path, def);
|
|
61
78
|
file.imports += `import type {} from '@atcute/lexicons/ambient';\n`;
|
|
62
79
|
file.ambients += `declare module '@atcute/lexicons/ambient' {\n`;
|
|
63
80
|
file.ambients += ` interface XRPCQueries {\n`;
|
|
64
|
-
file.ambients += ` ${lit(
|
|
81
|
+
file.ambients += ` ${lit(toLexUri(path))}: ${camelcased}Schema;\n`;
|
|
65
82
|
file.ambients += ` }\n`;
|
|
66
83
|
file.ambients += `}`;
|
|
67
84
|
break;
|
|
68
85
|
}
|
|
69
86
|
case 'procedure': {
|
|
70
|
-
result = generateXrpcProcedure(imports,
|
|
87
|
+
result = generateXrpcProcedure(imports, path, def);
|
|
71
88
|
file.imports += `import type {} from '@atcute/lexicons/ambient';\n`;
|
|
72
89
|
file.ambients += `declare module '@atcute/lexicons/ambient' {\n`;
|
|
73
90
|
file.ambients += ` interface XRPCProcedures {\n`;
|
|
74
|
-
file.ambients += ` ${lit(
|
|
91
|
+
file.ambients += ` ${lit(toLexUri(path))}: ${camelcased}Schema;\n`;
|
|
75
92
|
file.ambients += ` }\n`;
|
|
76
93
|
file.ambients += `}`;
|
|
77
94
|
break;
|
|
78
95
|
}
|
|
79
96
|
case 'subscription': {
|
|
80
|
-
result = generateXrpcSubscription(imports,
|
|
97
|
+
result = generateXrpcSubscription(imports, path, def);
|
|
81
98
|
file.imports += `import type {} from '@atcute/lexicons/ambient';\n`;
|
|
82
99
|
file.ambients += `declare module '@atcute/lexicons/ambient' {\n`;
|
|
83
100
|
file.ambients += ` interface XRPCSubscriptions {\n`;
|
|
84
|
-
file.ambients += ` ${lit(
|
|
101
|
+
file.ambients += ` ${lit(toLexUri(path))}: ${camelcased}Schema;\n`;
|
|
85
102
|
file.ambients += ` }\n`;
|
|
86
103
|
file.ambients += `}`;
|
|
87
104
|
break;
|
|
88
105
|
}
|
|
89
106
|
case 'object': {
|
|
90
|
-
result = generateObject(imports,
|
|
107
|
+
result = generateObject(imports, path, def);
|
|
91
108
|
break;
|
|
92
109
|
}
|
|
93
110
|
case 'record': {
|
|
94
|
-
result = generateRecord(imports,
|
|
111
|
+
result = generateRecord(imports, path, def);
|
|
95
112
|
file.imports += `import type {} from '@atcute/lexicons/ambient';\n`;
|
|
96
113
|
file.ambients += `declare module '@atcute/lexicons/ambient' {\n`;
|
|
97
114
|
file.ambients += ` interface Records {\n`;
|
|
98
|
-
file.ambients += ` ${lit(
|
|
115
|
+
file.ambients += ` ${lit(toLexUri(path))}: ${camelcased}Schema;\n`;
|
|
99
116
|
file.ambients += ` }\n`;
|
|
100
117
|
file.ambients += `}`;
|
|
101
118
|
break;
|
|
102
119
|
}
|
|
103
120
|
case 'token': {
|
|
104
|
-
result = `${PURE} v.literal(${lit(
|
|
121
|
+
result = `${PURE} v.literal(${lit(toLexUri(path))})`;
|
|
105
122
|
break;
|
|
106
123
|
}
|
|
107
124
|
case 'permission-set': {
|
|
@@ -109,7 +126,7 @@ export const generateLexiconApi = async (opts) => {
|
|
|
109
126
|
continue;
|
|
110
127
|
}
|
|
111
128
|
default: {
|
|
112
|
-
result = generateType(imports,
|
|
129
|
+
result = generateType(imports, path, def);
|
|
113
130
|
break;
|
|
114
131
|
}
|
|
115
132
|
}
|
|
@@ -279,32 +296,32 @@ export const generateLexiconApi = async (opts) => {
|
|
|
279
296
|
}
|
|
280
297
|
return { files };
|
|
281
298
|
};
|
|
282
|
-
const generateXrpcQuery = (imports,
|
|
283
|
-
const params = generateXrpcParameters(imports,
|
|
284
|
-
const output = generateXrpcBody(imports,
|
|
285
|
-
return `${PURE} v.query(${lit(
|
|
299
|
+
const generateXrpcQuery = (imports, path, spec) => {
|
|
300
|
+
const params = generateXrpcParameters(imports, path, spec.parameters);
|
|
301
|
+
const output = generateXrpcBody(imports, path, spec.output);
|
|
302
|
+
return `${PURE} v.query(${lit(toLexUri(path))}, {\n"params": ${params}, "output": ${output} })`;
|
|
286
303
|
};
|
|
287
|
-
const generateXrpcProcedure = (imports,
|
|
288
|
-
const params = generateXrpcParameters(imports,
|
|
289
|
-
const input = generateXrpcBody(imports,
|
|
290
|
-
const output = generateXrpcBody(imports,
|
|
291
|
-
return `${PURE} v.procedure(${lit(
|
|
304
|
+
const generateXrpcProcedure = (imports, path, spec) => {
|
|
305
|
+
const params = generateXrpcParameters(imports, path, spec.parameters);
|
|
306
|
+
const input = generateXrpcBody(imports, path, spec.input);
|
|
307
|
+
const output = generateXrpcBody(imports, path, spec.output);
|
|
308
|
+
return `${PURE} v.procedure(${lit(toLexUri(path))}, {\n"params": ${params}, "input": ${input}, "output": ${output} })`;
|
|
292
309
|
};
|
|
293
|
-
const generateXrpcSubscription = (imports,
|
|
310
|
+
const generateXrpcSubscription = (imports, path, spec) => {
|
|
294
311
|
const schema = spec.message?.schema;
|
|
295
|
-
const params = generateXrpcParameters(imports,
|
|
312
|
+
const params = generateXrpcParameters(imports, path, spec.parameters);
|
|
296
313
|
let inner = ``;
|
|
297
314
|
inner += `"params": ${params},`;
|
|
298
315
|
if (schema) {
|
|
299
|
-
const res = generateType(imports,
|
|
316
|
+
const res = generateType(imports, path, schema);
|
|
300
317
|
inner += `get "message" () { return ${res} },`;
|
|
301
318
|
}
|
|
302
319
|
else {
|
|
303
320
|
inner += `"message": null,`;
|
|
304
321
|
}
|
|
305
|
-
return `${PURE} v.subscription(${lit(
|
|
322
|
+
return `${PURE} v.subscription(${lit(toLexUri(path))}, {\n${inner}})`;
|
|
306
323
|
};
|
|
307
|
-
const generateXrpcBody = (imports,
|
|
324
|
+
const generateXrpcBody = (imports, path, spec) => {
|
|
308
325
|
if (spec === undefined) {
|
|
309
326
|
return `null`;
|
|
310
327
|
}
|
|
@@ -314,11 +331,11 @@ const generateXrpcBody = (imports, defUri, spec) => {
|
|
|
314
331
|
let inner = ``;
|
|
315
332
|
inner += `"type": "lex",`;
|
|
316
333
|
if (schema.type === 'object') {
|
|
317
|
-
const res = generateObject(imports,
|
|
334
|
+
const res = generateObject(imports, path, schema, 'none');
|
|
318
335
|
inner += `"schema": ${res},`;
|
|
319
336
|
}
|
|
320
337
|
else {
|
|
321
|
-
const res = generateType(imports,
|
|
338
|
+
const res = generateType(imports, path, schema);
|
|
322
339
|
inner += `get "schema" () { return ${res} },`;
|
|
323
340
|
}
|
|
324
341
|
return `{\n${inner}}`;
|
|
@@ -334,7 +351,7 @@ const generateXrpcBody = (imports, defUri, spec) => {
|
|
|
334
351
|
}
|
|
335
352
|
return `null`;
|
|
336
353
|
};
|
|
337
|
-
const generateXrpcParameters = (imports,
|
|
354
|
+
const generateXrpcParameters = (imports, path, spec) => {
|
|
338
355
|
if (spec === undefined) {
|
|
339
356
|
return `null`;
|
|
340
357
|
}
|
|
@@ -363,10 +380,10 @@ const generateXrpcParameters = (imports, defUri, spec) => {
|
|
|
363
380
|
required: spec.required,
|
|
364
381
|
properties: transformedProperties ?? originalProperties,
|
|
365
382
|
};
|
|
366
|
-
return generateObject(imports,
|
|
383
|
+
return generateObject(imports, path, mask, 'none');
|
|
367
384
|
};
|
|
368
|
-
const generateRecord = (imports,
|
|
369
|
-
const schema = generateObject(imports,
|
|
385
|
+
const generateRecord = (imports, path, spec) => {
|
|
386
|
+
const schema = generateObject(imports, path, spec.record, 'required');
|
|
370
387
|
let key = `${PURE} v.string()`;
|
|
371
388
|
if (spec.key) {
|
|
372
389
|
if (spec.key === 'tid') {
|
|
@@ -381,17 +398,17 @@ const generateRecord = (imports, defUri, spec) => {
|
|
|
381
398
|
}
|
|
382
399
|
return `${PURE} v.record(${key}, ${schema})`;
|
|
383
400
|
};
|
|
384
|
-
const generateObject = (imports,
|
|
401
|
+
const generateObject = (imports, path, spec, writeType = 'optional') => {
|
|
385
402
|
const required = new Set(spec.required);
|
|
386
403
|
const nullable = new Set(spec.nullable);
|
|
387
404
|
let inner = ``;
|
|
388
405
|
switch (writeType) {
|
|
389
406
|
case 'optional': {
|
|
390
|
-
inner += `"$type": ${PURE} v.optional(${PURE} v.literal(${lit(
|
|
407
|
+
inner += `"$type": ${PURE} v.optional(${PURE} v.literal(${lit(toLexUri(path))})),`;
|
|
391
408
|
break;
|
|
392
409
|
}
|
|
393
410
|
case 'required': {
|
|
394
|
-
inner += `"$type": ${PURE} v.literal(${lit(
|
|
411
|
+
inner += `"$type": ${PURE} v.literal(${lit(toLexUri(path))}),`;
|
|
395
412
|
break;
|
|
396
413
|
}
|
|
397
414
|
}
|
|
@@ -406,9 +423,9 @@ const generateObject = (imports, defUri, spec, writeType = 'optional') => {
|
|
|
406
423
|
});
|
|
407
424
|
for (const [prop, propSpec] of sortedEntries) {
|
|
408
425
|
const lazy = isRefVariant(propSpec.type === 'array' ? propSpec.items : propSpec);
|
|
409
|
-
const optional = !required.has(prop) && !('default' in propSpec);
|
|
426
|
+
const optional = !required.has(prop) && !('default' in propSpec && propSpec.default !== undefined);
|
|
410
427
|
const nulled = nullable.has(prop);
|
|
411
|
-
let call = generateType(imports,
|
|
428
|
+
let call = generateType(imports, path, propSpec, lazy);
|
|
412
429
|
if (nulled) {
|
|
413
430
|
call = `${PURE} v.nullable(${call})`;
|
|
414
431
|
}
|
|
@@ -524,53 +541,44 @@ const generateJsdocField = (spec) => {
|
|
|
524
541
|
}
|
|
525
542
|
return res;
|
|
526
543
|
};
|
|
527
|
-
const generateType = (imports,
|
|
544
|
+
const generateType = (imports, path, spec, lazy = false) => {
|
|
528
545
|
switch (spec.type) {
|
|
529
546
|
// LexRefVariant
|
|
530
547
|
case 'ref': {
|
|
531
|
-
const
|
|
532
|
-
if (
|
|
533
|
-
|
|
534
|
-
return `${toCamelCase(id)}Schema`;
|
|
535
|
-
}
|
|
536
|
-
else {
|
|
537
|
-
const [ns, id = 'main'] = ref.split('#');
|
|
538
|
-
if (ns === stripHash(defUri)) {
|
|
539
|
-
return `${toCamelCase(id)}Schema`;
|
|
540
|
-
}
|
|
541
|
-
imports.add(ns);
|
|
542
|
-
return `${toTitleCase(ns)}.${toCamelCase(id)}Schema`;
|
|
548
|
+
const refPath = resolvePath(path, spec.ref);
|
|
549
|
+
if (refPath.nsid === path.nsid) {
|
|
550
|
+
return `${toCamelCase(refPath.defId)}Schema`;
|
|
543
551
|
}
|
|
552
|
+
imports.add(refPath.nsid);
|
|
553
|
+
return `${toTitleCase(refPath.nsid)}.${toCamelCase(refPath.defId)}Schema`;
|
|
544
554
|
}
|
|
545
555
|
case 'union': {
|
|
546
|
-
const
|
|
556
|
+
const refs = spec.refs
|
|
547
557
|
.map((ref) => {
|
|
548
|
-
|
|
549
|
-
|
|
558
|
+
const refPath = resolvePath(path, ref);
|
|
559
|
+
return { path: refPath, uri: toLexUri(refPath) };
|
|
560
|
+
})
|
|
561
|
+
.sort((a, b) => {
|
|
562
|
+
if (a.uri < b.uri) {
|
|
563
|
+
return -1;
|
|
550
564
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
return `#${id}`;
|
|
565
|
+
if (a.uri > b.uri) {
|
|
566
|
+
return 1;
|
|
554
567
|
}
|
|
555
|
-
return
|
|
568
|
+
return 0;
|
|
556
569
|
})
|
|
557
|
-
.
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
const id = ref.slice(1);
|
|
561
|
-
return `${toCamelCase(id)}Schema`;
|
|
562
|
-
}
|
|
563
|
-
else {
|
|
564
|
-
const [ns, id = 'main'] = ref.split('#');
|
|
565
|
-
imports.add(ns);
|
|
566
|
-
return `${toTitleCase(ns)}.${toCamelCase(id)}Schema`;
|
|
570
|
+
.map(({ path: refPath }) => {
|
|
571
|
+
if (refPath.nsid === path.nsid) {
|
|
572
|
+
return `${toCamelCase(refPath.defId)}Schema`;
|
|
567
573
|
}
|
|
574
|
+
imports.add(refPath.nsid);
|
|
575
|
+
return `${toTitleCase(refPath.nsid)}.${toCamelCase(refPath.defId)}Schema`;
|
|
568
576
|
});
|
|
569
577
|
return `${PURE} v.variant([${refs.join(', ')}]${spec.closed ? `, true` : ``})`;
|
|
570
578
|
}
|
|
571
579
|
// LexArray
|
|
572
580
|
case 'array': {
|
|
573
|
-
let item = generateType(imports,
|
|
581
|
+
let item = generateType(imports, path, spec.items);
|
|
574
582
|
if (!lazy && (spec.items.type === 'ref' || spec.items.type === 'union')) {
|
|
575
583
|
item = `(() => { return ${item}; })`;
|
|
576
584
|
}
|
|
@@ -740,16 +748,6 @@ const isRefVariant = (spec) => {
|
|
|
740
748
|
const type = spec.type;
|
|
741
749
|
return type === 'ref' || type === 'union';
|
|
742
750
|
};
|
|
743
|
-
const stripHash = (defUri) => {
|
|
744
|
-
const index = defUri.indexOf('#');
|
|
745
|
-
if (index === -1) {
|
|
746
|
-
return defUri;
|
|
747
|
-
}
|
|
748
|
-
return defUri.slice(0, index);
|
|
749
|
-
};
|
|
750
|
-
const stripMainHash = (defUri) => {
|
|
751
|
-
return defUri.endsWith('#main') ? defUri.slice(0, -'#main'.length) : defUri;
|
|
752
|
-
};
|
|
753
751
|
const toTitleCase = (v) => {
|
|
754
752
|
v = v.replace(/^([a-z])/gi, (_, g) => g.toUpperCase());
|
|
755
753
|
v = v.replace(/[.#-]([a-z])/gi, (_, g) => g.toUpperCase());
|
package/dist/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAErF,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AA+CrC,MAAM,GAAG,GAAyC,IAAI,CAAC,SAAS,CAAC;AAEjE,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,QAAyB,EAA6B,EAAE;IACpG,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,IAAI,KAAK,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,eAAe,CAAC;AAE7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAuB,EAA6B,EAAE;IAC9F,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;IAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClD,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACV,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAgB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;QAC3D,MAAM,IAAI,GAAG;YACZ,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;SACZ,CAAC;QAEF,IAAI,CAAC,OAAO,IAAI,2CAA2C,CAAC;QAC5D,IAAI,CAAC,OAAO,IAAI,sDAAsD,CAAC;QAEvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC,CAAC;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC;YACV,CAAC;YAED,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;YAEpC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,GAAG,UAAU,QAAQ,CAAC;YAEtC,IAAI,MAAc,CAAC;YACnB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAEjD,IAAI,CAAC,OAAO,IAAI,mDAAmD,CAAC;oBAEpE,IAAI,CAAC,QAAQ,IAAI,+CAA+C,CAAC;oBACjE,IAAI,CAAC,QAAQ,IAAI,6BAA6B,CAAC;oBAC/C,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,WAAW,CAAC;oBAC7E,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;oBACzB,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;oBACrB,MAAM;gBACP,CAAC;gBACD,KAAK,WAAW,CAAC,CAAC,CAAC;oBAClB,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAErD,IAAI,CAAC,OAAO,IAAI,mDAAmD,CAAC;oBAEpE,IAAI,CAAC,QAAQ,IAAI,+CAA+C,CAAC;oBACjE,IAAI,CAAC,QAAQ,IAAI,gCAAgC,CAAC;oBAClD,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,WAAW,CAAC;oBAC7E,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;oBACzB,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;oBACrB,MAAM;gBACP,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAExD,IAAI,CAAC,OAAO,IAAI,mDAAmD,CAAC;oBAEpE,IAAI,CAAC,QAAQ,IAAI,+CAA+C,CAAC;oBACjE,IAAI,CAAC,QAAQ,IAAI,mCAAmC,CAAC;oBACrD,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,WAAW,CAAC;oBAC7E,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;oBACzB,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;oBACrB,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACf,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC9C,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACf,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAE9C,IAAI,CAAC,OAAO,IAAI,mDAAmD,CAAC;oBAEpE,IAAI,CAAC,QAAQ,IAAI,+CAA+C,CAAC;oBACjE,IAAI,CAAC,QAAQ,IAAI,yBAAyB,CAAC;oBAC3C,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,WAAW,CAAC;oBAC7E,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;oBACzB,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;oBACrB,MAAM;gBACP,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,MAAM,GAAG,GAAG,IAAI,cAAc,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;oBAC5D,MAAM;gBACP,CAAC;gBACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACvB,uBAAuB;oBACvB,SAAS;gBACV,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACT,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC5C,MAAM;gBACP,CAAC;YACF,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,UAAU,OAAO,MAAM,MAAM,KAAK,CAAC;YAEtD,IAAI,CAAC,UAAU,IAAI,QAAQ,UAAU,yBAAyB,OAAO,KAAK,CAAC;YAE3E,IAAI,CAAC,OAAO,IAAI,oBAAoB,UAAU,kBAAkB,UAAU,kBAAkB,CAAC;YAE7F,IAAI,CAAC,OAAO,IAAI,gBAAgB,OAAO,OAAO,OAAO,OAAO,UAAU,WAAW,CAAC;YAElF,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,WAAW,IAAI,iDAAiD,UAAU,wBAAwB,CAAC;oBACzG,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,WAAW,IAAI,+BAA+B,CAAC;oBACrD,CAAC;oBAED,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;wBACxB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC1C,IAAI,CAAC,WAAW,IAAI,yDAAyD,UAAU,wBAAwB,CAAC;wBACjH,CAAC;6BAAM,CAAC;4BACP,IAAI,CAAC,WAAW,IAAI,8CAA8C,UAAU,sBAAsB,CAAC;wBACpG,CAAC;oBACF,CAAC;yBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACvB,IAAI,CAAC,WAAW,IAAI,8CAA8C,UAAU,sBAAsB,CAAC;oBACpG,CAAC;oBAED,MAAM;gBACP,CAAC;gBACD,KAAK,WAAW,CAAC,CAAC,CAAC;oBAClB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,WAAW,IAAI,iDAAiD,UAAU,wBAAwB,CAAC;oBACzG,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,WAAW,IAAI,+BAA+B,CAAC;oBACrD,CAAC;oBAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;wBACvB,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACzC,IAAI,CAAC,WAAW,IAAI,wDAAwD,UAAU,uBAAuB,CAAC;wBAC/G,CAAC;6BAAM,CAAC;4BACP,IAAI,CAAC,WAAW,IAAI,6CAA6C,UAAU,qBAAqB,CAAC;wBAClG,CAAC;oBACF,CAAC;yBAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBACtB,IAAI,CAAC,WAAW,IAAI,6CAA6C,UAAU,qBAAqB,CAAC;oBAClG,CAAC;oBAED,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;wBACxB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC1C,IAAI,CAAC,WAAW,IAAI,yDAAyD,UAAU,wBAAwB,CAAC;wBACjH,CAAC;6BAAM,CAAC;4BACP,IAAI,CAAC,WAAW,IAAI,8CAA8C,UAAU,sBAAsB,CAAC;wBACpG,CAAC;oBACF,CAAC;yBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACvB,IAAI,CAAC,WAAW,IAAI,8CAA8C,UAAU,sBAAsB,CAAC;oBACpG,CAAC;oBAED,MAAM;gBACP,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,WAAW,IAAI,iDAAiD,UAAU,wBAAwB,CAAC;oBACzG,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,WAAW,IAAI,+BAA+B,CAAC;oBACrD,CAAC;oBAED,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;wBACzB,IAAI,CAAC,WAAW,IAAI,uCAAuC,UAAU,uBAAuB,CAAC;oBAC9F,CAAC;oBAED,MAAM;gBACP,CAAC;gBAED,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,CAAC;gBACd,KAAK,QAAQ,CAAC;gBACd,KAAK,SAAS,CAAC,CAAC,CAAC;oBAChB,IAAI,CAAC,UAAU,IAAI,oBAAoB,WAAW,CAAC,KAAK,CAAC,gCAAgC,OAAO,QAAQ,CAAC;oBACzG,MAAM;gBACP,CAAC;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,SAAS,CAAC;gBACf,KAAK,OAAO,CAAC;gBACb,KAAK,UAAU,CAAC;gBAChB,KAAK,SAAS,CAAC;gBACf,KAAK,QAAQ,CAAC;gBACd,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,IAAI,CAAC,UAAU,IAAI,eAAe,WAAW,CAAC,KAAK,CAAC,0BAA0B,OAAO,MAAM,CAAC;oBAC5F,MAAM;gBACP,CAAC;YACF,CAAC;QACF,CAAC;QAED,CAAC;YACA,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAErC,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,CAAC,CAAC;gBACX,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,CAAC;gBACV,CAAC;gBAED,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE1B,IAAI,KAAK,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;oBAE9D,IAAI,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/B,QAAQ,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,CAAC;oBAED,IAAI,CAAC,OAAO,IAAI,eAAe,WAAW,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC1E,SAAS;gBACV,CAAC;gBAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE1D,IAAI,QAAQ,EAAE,CAAC;oBACd,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAEjC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC1B,IAAI,CAAC,OAAO,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC1E,CAAC;6BAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BACrC,IAAI,CAAC,OAAO,IAAI,eAAe,WAAW,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC3E,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,OAAO,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;oBAClF,CAAC;oBAED,SAAS;gBACV,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,8BAA8B,EAAE,aAAa,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,QAAQ;YAClB,IAAI,EACH,IAAI,CAAC,OAAO;gBACZ,MAAM;gBACN,IAAI,CAAC,UAAU;gBACf,MAAM;gBACN,IAAI,CAAC,UAAU;gBACf,MAAM;gBACN,IAAI,CAAC,OAAO;gBACZ,MAAM;gBACN,IAAI,CAAC,OAAO;gBACZ,MAAM;gBACN,IAAI,CAAC,UAAU;gBACf,MAAM;gBACN,IAAI,CAAC,WAAW;gBAChB,MAAM;gBACN,IAAI,CAAC,QAAQ;SACd,CAAC,CAAC;IACJ,CAAC;IAED,CAAC;QACA,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YAChC,IAAI,IAAI,eAAe,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,KAAK,CAAC;QACnH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,IAAI;SACV,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAkB,EAAE,MAAc,EAAE,IAAkB,EAAU,EAAE;IAC5F,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAE9D,OAAO,GAAG,IAAI,YAAY,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,kBAAkB,MAAM,eAAe,MAAM,KAAK,CAAC;AACxG,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,OAAkB,EAAE,MAAc,EAAE,IAAsB,EAAU,EAAE;IACpG,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAE9D,OAAO,GAAG,IAAI,gBAAgB,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,kBAAkB,MAAM,cAAc,KAAK,eAAe,MAAM,KAAK,CAAC;AAC/H,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,OAAkB,EAAE,MAAc,EAAE,IAAyB,EAAU,EAAE;IAC1G,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;IAEpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAExE,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,KAAK,IAAI,aAAa,MAAM,GAAG,CAAC;IAEhC,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,KAAK,IAAI,6BAA6B,GAAG,KAAK,CAAC;IAChD,CAAC;SAAM,CAAC;QACP,KAAK,IAAI,kBAAkB,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,IAAI,mBAAmB,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAAkB,EAAE,MAAc,EAAE,IAA6B,EAAU,EAAE;IACtG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE/B,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,KAAK,IAAI,gBAAgB,CAAC;QAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE5D,KAAK,IAAI,aAAa,GAAG,GAAG,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAElD,KAAK,IAAI,4BAA4B,GAAG,KAAK,CAAC;QAC/C,CAAC;QAED,OAAO,MAAM,KAAK,GAAG,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,KAAK,IAAI,iBAAiB,CAAC;QAE3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5C,KAAK,IAAI,eAAe,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QACvC,CAAC;QAED,OAAO,MAAM,KAAK,GAAG,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC9B,OAAkB,EAClB,MAAc,EACd,IAAmC,EAC1B,EAAE;IACX,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3C,IAAI,qBAAkE,CAAC;IAEvE,IAAI,kBAAkB,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACnE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,SAAS;gBACV,CAAC;gBAED,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;oBACzC,qBAAqB,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;gBACnD,CAAC;gBAED,qBAAqB,CAAC,IAAI,CAAC,GAAG;oBAC7B,GAAG,QAAQ;oBACX,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC/C,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,IAAI,GAAc;QACvB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,qBAAqB,IAAI,kBAAkB;KACvD,CAAC;IAEF,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAkB,EAAE,MAAc,EAAE,IAAe,EAAU,EAAE;IACtF,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAExE,IAAI,GAAG,GAAG,GAAG,IAAI,aAAa,CAAC;IAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACxB,GAAG,GAAG,GAAG,IAAI,gBAAgB,CAAC;QAC/B,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YAChC,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,GAAG,GAAG,GAAG,IAAI,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;QACtE,CAAC;IACF,CAAC;IAED,OAAO,GAAG,IAAI,aAAa,GAAG,KAAK,MAAM,GAAG,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACtB,OAAkB,EAClB,MAAc,EACd,IAAe,EACf,YAA8C,UAAU,EAC/C,EAAE;IACX,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,QAAQ,SAAS,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,CAAC,CAAC;YACjB,KAAK,IAAI,YAAY,IAAI,eAAe,IAAI,cAAc,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;YAC1F,MAAM;QACP,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YACjB,KAAK,IAAI,YAAY,IAAI,cAAc,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YACtE,MAAM;QACP,CAAC;IACF,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;QACvF,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACV,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEzD,IAAI,MAAM,EAAE,CAAC;YACZ,IAAI,GAAG,GAAG,IAAI,eAAe,IAAI,GAAG,CAAC;QACtC,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,eAAe,IAAI,GAAG,CAAC;QACtC,CAAC;QAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACV,KAAK,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,KAAK,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;QACnC,CAAC;IACF,CAAC;IAED,OAAO,GAAG,IAAI,gBAAgB,KAAK,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,yCAAyC,CAAC;AAC1E,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAElE,MAAM,kBAAkB,GAAG,CAAC,IAA8C,EAAE,EAAE;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;aACzB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aACxB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;aACpB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QAET,IAAI,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9E,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,8CAA8C;IAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM;QACP,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM;QACP,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM;QACP,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM;QACP,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM;QACP,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnF,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,MAAM;QACP,CAAC;IACF,CAAC;IAED,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,IAAI,OAAO,CAAC;QAEf,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC;QACvB,CAAC;QAED,GAAG,IAAI,IAAI,CAAC;IACb,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAkB,EAAE,MAAc,EAAE,IAAuB,EAAE,IAAI,GAAG,KAAK,EAAU,EAAE;IAC1G,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,gBAAgB;QAChB,KAAK,KAAK,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAErB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAExB,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;gBACnC,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEhB,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;YACtD,CAAC;QACF,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI;iBAC9B,GAAG,CAAC,CAAC,GAAG,EAAU,EAAE;gBACpB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,GAAG,CAAC;gBACZ,CAAC;gBAED,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,OAAO,IAAI,EAAE,EAAE,CAAC;gBACjB,CAAC;gBAED,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YACtB,CAAC,CAAC;iBACD,IAAI,EAAE,CAAC;YAET,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAU,EAAE;gBAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAExB,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEhB,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;gBACtD,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAChF,CAAC;QAED,WAAW;QACX,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;gBACzE,IAAI,GAAG,mBAAmB,IAAI,MAAM,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,GAAa,EAAE,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC/D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzF,CAAC;YACF,CAAC;YAED,IAAI,IAAI,GAAG,GAAG,IAAI,YAAY,IAAI,GAAG,CAAC;YAEtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,IAAI,gBAAgB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAED,eAAe;QACf,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,GAAG,GAAG,IAAI,cAAc,CAAC;YAEjC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,GAAG,GAAG,IAAI,cAAc,IAAI,CAAC,KAAK,GAAG,CAAC;YAC3C,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,GAAG,GAAG,IAAI,eAAe,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,IAAI,IAAI,GAAa,EAAE,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC3D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACtF,CAAC;YACF,CAAC;YAED,IAAI,IAAI,GAAG,GAAG,IAAI,cAAc,CAAC;YAEjC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,GAAG,GAAG,IAAI,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,GAAG,GAAG,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;YAC9D,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,GAAG,GAAG,IAAI,gBAAgB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,GAAG,GAAG,IAAI,eAAe,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,GAAa,EAAE,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC/D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1F,CAAC;YACF,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACrC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,sBAAsB,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,sBAAsB,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACnG,CAAC;YACF,CAAC;YAED,IAAI,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC;YAEhC,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAC9B,IAAI,GAAG,GAAG,IAAI,aAAa,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAClG,CAAC;YAED,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,eAAe,CAAC,CAAC,CAAC;oBACtB,IAAI,GAAG,GAAG,IAAI,4BAA4B,CAAC;oBAC3C,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,wBAAwB,CAAC;oBACvC,MAAM;gBACP,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,IAAI,GAAG,GAAG,IAAI,gBAAgB,CAAC;oBAC/B,MAAM;gBACP,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBACjB,IAAI,GAAG,GAAG,IAAI,qBAAqB,CAAC;oBACpC,MAAM;gBACP,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,IAAI,GAAG,GAAG,IAAI,gBAAgB,CAAC;oBAC/B,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,mBAAmB,CAAC;oBAClC,MAAM;gBACP,CAAC;gBACD,KAAK,UAAU,CAAC,CAAC,CAAC;oBACjB,IAAI,GAAG,GAAG,IAAI,yBAAyB,CAAC;oBACxC,MAAM;gBACP,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,IAAI,GAAG,GAAG,IAAI,iBAAiB,CAAC;oBAChC,MAAM;gBACP,CAAC;gBACD,KAAK,YAAY,CAAC,CAAC,CAAC;oBACnB,IAAI,GAAG,GAAG,IAAI,sBAAsB,CAAC;oBACrC,MAAM;gBACP,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,IAAI,GAAG,GAAG,IAAI,gBAAgB,CAAC;oBAC/B,MAAM;gBACP,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,IAAI,GAAG,GAAG,IAAI,uBAAuB,CAAC;oBACtC,MAAM;gBACP,CAAC;YACF,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,GAAG,GAAG,IAAI,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,GAAG,GAAG,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;YAC9D,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,GAAG,GAAG,IAAI,gBAAgB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,GAAG,GAAG,IAAI,eAAe,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,OAAO,GAAG,IAAI,cAAc,CAAC;QAC9B,CAAC;QAED,UAAU;QACV,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,OAAO,GAAG,IAAI,WAAW,CAAC;QAC3B,CAAC;QAED,cAAc;QACd,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,GAAa,EAAE,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC/D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACvF,CAAC;YACF,CAAC;YAED,IAAI,IAAI,GAAG,GAAG,IAAI,YAAY,CAAC;YAE/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,IAAI,gBAAgB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/D,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YACjB,OAAO,GAAG,IAAI,cAAc,CAAC;QAC9B,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAuB,EAAyB,EAAE;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAU,EAAE;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAU,EAAE;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;IACzC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE;IACzC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type InferValue } from '@optique/core/parser';
|
|
2
|
+
export declare const exportCommandSchema: import("@optique/core/parser").Parser<{
|
|
3
|
+
readonly type: "export";
|
|
4
|
+
} & {
|
|
5
|
+
readonly config: string | undefined;
|
|
6
|
+
}, ["matched", string] | ["parsing", Record<string | symbol, unknown>] | undefined>;
|
|
7
|
+
export type ExportCommand = InferValue<typeof exportCommandSchema>;
|
|
8
|
+
/**
|
|
9
|
+
* runs the export command to write lexicon documents as JSON files
|
|
10
|
+
* @param args parsed command arguments
|
|
11
|
+
*/
|
|
12
|
+
export declare const runExport: (args: {
|
|
13
|
+
readonly type: "export";
|
|
14
|
+
} & {
|
|
15
|
+
readonly config: string | undefined;
|
|
16
|
+
}) => Promise<void>;
|
|
17
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASvD,eAAO,MAAM,mBAAmB;;;;mFAY/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AA0CnE;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;mBA8BrB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { merge, object } from '@optique/core/constructs';
|
|
4
|
+
import { message } from '@optique/core/message';
|
|
5
|
+
import {} from '@optique/core/parser';
|
|
6
|
+
import { command, constant } from '@optique/core/primitives';
|
|
7
|
+
import pc from 'picocolors';
|
|
8
|
+
import prettier from 'prettier';
|
|
9
|
+
import { loadConfig } from '../config.js';
|
|
10
|
+
import { loadLexicons } from '../lexicon-loader.js';
|
|
11
|
+
import { sharedOptions } from '../shared-options.js';
|
|
12
|
+
export const exportCommandSchema = command('export', merge(object({
|
|
13
|
+
type: constant('export'),
|
|
14
|
+
}), sharedOptions), {
|
|
15
|
+
brief: message `export lexicon documents as JSON files`,
|
|
16
|
+
description: message `exports lexicon documents (from JSON or builder files) to JSON format for publishing or distribution.`,
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* ensures export configuration is present
|
|
20
|
+
* @param config the normalized config
|
|
21
|
+
* @returns the export config
|
|
22
|
+
*/
|
|
23
|
+
const ensureExportConfig = (config) => {
|
|
24
|
+
if (!config.export) {
|
|
25
|
+
console.error(pc.bold(pc.red(`export configuration missing`)));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
return config.export;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* writes a lexicon document to disk as formatted JSON
|
|
32
|
+
* @param outdir output directory
|
|
33
|
+
* @param nsid the NSID of the lexicon
|
|
34
|
+
* @param doc the lexicon document
|
|
35
|
+
* @param prettierConfig prettier configuration
|
|
36
|
+
*/
|
|
37
|
+
const writeLexicon = async (outdir, nsid, doc, prettierConfig) => {
|
|
38
|
+
const nsidPath = nsid.replaceAll('.', '/');
|
|
39
|
+
const target = path.join(outdir, `${nsidPath}.json`);
|
|
40
|
+
const dirname = path.dirname(target);
|
|
41
|
+
const code = await prettier.format(JSON.stringify(doc, null, 2), {
|
|
42
|
+
...(prettierConfig ?? {}),
|
|
43
|
+
parser: 'json',
|
|
44
|
+
});
|
|
45
|
+
await fs.mkdir(dirname, { recursive: true });
|
|
46
|
+
await fs.writeFile(target, code);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* runs the export command to write lexicon documents as JSON files
|
|
50
|
+
* @param args parsed command arguments
|
|
51
|
+
*/
|
|
52
|
+
export const runExport = async (args) => {
|
|
53
|
+
const config = await loadConfig(args.config);
|
|
54
|
+
const exportConfig = ensureExportConfig(config);
|
|
55
|
+
// use export.files if specified, otherwise fall back to root files config
|
|
56
|
+
const files = exportConfig.files ?? config.files;
|
|
57
|
+
const outdir = path.resolve(config.root, exportConfig.outdir);
|
|
58
|
+
const prettierConfig = await prettier.resolveConfig(config.root, { editorconfig: true });
|
|
59
|
+
// load lexicons from files
|
|
60
|
+
const loaded = await loadLexicons(files, config.root);
|
|
61
|
+
if (loaded.length === 0) {
|
|
62
|
+
console.warn(pc.yellow(`warning: no lexicons found to export`));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// clean output directory if requested
|
|
66
|
+
if (exportConfig.clean) {
|
|
67
|
+
await fs.rm(outdir, { recursive: true, force: true });
|
|
68
|
+
}
|
|
69
|
+
await fs.mkdir(outdir, { recursive: true });
|
|
70
|
+
// write each lexicon as JSON
|
|
71
|
+
for (const { nsid, doc } of loaded) {
|
|
72
|
+
await writeLexicon(outdir, nsid, doc, prettierConfig);
|
|
73
|
+
}
|
|
74
|
+
console.log(pc.green(`exported ${loaded.length} lexicon(s) to ${outdir}`));
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type InferValue } from '@optique/core/parser';
|
|
2
|
+
export declare const generateCommandSchema: import("@optique/core/parser").Parser<{
|
|
3
|
+
readonly type: "generate";
|
|
4
|
+
} & {
|
|
5
|
+
readonly config: string | undefined;
|
|
6
|
+
}, ["matched", string] | ["parsing", Record<string | symbol, unknown>] | undefined>;
|
|
7
|
+
export type GenerateCommand = InferValue<typeof generateCommandSchema>;
|
|
8
|
+
/**
|
|
9
|
+
* runs the generate command to create type definitions from lexicon documents
|
|
10
|
+
* @param args parsed command arguments
|
|
11
|
+
*/
|
|
12
|
+
export declare const runGenerate: (args: {
|
|
13
|
+
readonly type: "generate";
|
|
14
|
+
} & {
|
|
15
|
+
readonly config: string | undefined;
|
|
16
|
+
}) => Promise<void>;
|
|
17
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAiHvD,eAAO,MAAM,qBAAqB;;;;mFAYjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;mBA+BvB,CAAC"}
|