learngraph 0.1.1 → 0.2.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.
Files changed (96) hide show
  1. package/LICENSE +190 -21
  2. package/README.md +83 -2
  3. package/dist/cjs/parsers/base.js +189 -0
  4. package/dist/cjs/parsers/base.js.map +1 -0
  5. package/dist/cjs/parsers/demo.js +159 -0
  6. package/dist/cjs/parsers/demo.js.map +1 -0
  7. package/dist/cjs/parsers/extractor.js +191 -0
  8. package/dist/cjs/parsers/extractor.js.map +1 -0
  9. package/dist/cjs/parsers/index.js +43 -4
  10. package/dist/cjs/parsers/index.js.map +1 -1
  11. package/dist/cjs/parsers/json.js +157 -0
  12. package/dist/cjs/parsers/json.js.map +1 -0
  13. package/dist/cjs/parsers/markdown.js +168 -0
  14. package/dist/cjs/parsers/markdown.js.map +1 -0
  15. package/dist/cjs/parsers/samples.js +139 -0
  16. package/dist/cjs/parsers/samples.js.map +1 -0
  17. package/dist/cjs/storage/base.js +231 -0
  18. package/dist/cjs/storage/base.js.map +1 -0
  19. package/dist/cjs/storage/errors.js +128 -0
  20. package/dist/cjs/storage/errors.js.map +1 -0
  21. package/dist/cjs/storage/index.js +92 -5
  22. package/dist/cjs/storage/index.js.map +1 -1
  23. package/dist/cjs/storage/levelgraph.js +855 -0
  24. package/dist/cjs/storage/levelgraph.js.map +1 -0
  25. package/dist/cjs/storage/memory.js +447 -0
  26. package/dist/cjs/storage/memory.js.map +1 -0
  27. package/dist/cjs/storage/neo4j.js +866 -0
  28. package/dist/cjs/storage/neo4j.js.map +1 -0
  29. package/dist/cjs/storage/seeds.js +565 -0
  30. package/dist/cjs/storage/seeds.js.map +1 -0
  31. package/dist/cjs/types/parser.js +8 -0
  32. package/dist/cjs/types/parser.js.map +1 -0
  33. package/dist/esm/parsers/base.js +179 -0
  34. package/dist/esm/parsers/base.js.map +1 -0
  35. package/dist/esm/parsers/demo.js +154 -0
  36. package/dist/esm/parsers/demo.js.map +1 -0
  37. package/dist/esm/parsers/extractor.js +187 -0
  38. package/dist/esm/parsers/extractor.js.map +1 -0
  39. package/dist/esm/parsers/index.js +24 -5
  40. package/dist/esm/parsers/index.js.map +1 -1
  41. package/dist/esm/parsers/json.js +153 -0
  42. package/dist/esm/parsers/json.js.map +1 -0
  43. package/dist/esm/parsers/markdown.js +164 -0
  44. package/dist/esm/parsers/markdown.js.map +1 -0
  45. package/dist/esm/parsers/samples.js +136 -0
  46. package/dist/esm/parsers/samples.js.map +1 -0
  47. package/dist/esm/storage/base.js +221 -0
  48. package/dist/esm/storage/base.js.map +1 -0
  49. package/dist/esm/storage/errors.js +116 -0
  50. package/dist/esm/storage/errors.js.map +1 -0
  51. package/dist/esm/storage/index.js +71 -6
  52. package/dist/esm/storage/index.js.map +1 -1
  53. package/dist/esm/storage/levelgraph.js +818 -0
  54. package/dist/esm/storage/levelgraph.js.map +1 -0
  55. package/dist/esm/storage/memory.js +443 -0
  56. package/dist/esm/storage/memory.js.map +1 -0
  57. package/dist/esm/storage/neo4j.js +829 -0
  58. package/dist/esm/storage/neo4j.js.map +1 -0
  59. package/dist/esm/storage/seeds.js +561 -0
  60. package/dist/esm/storage/seeds.js.map +1 -0
  61. package/dist/esm/types/parser.js +7 -0
  62. package/dist/esm/types/parser.js.map +1 -0
  63. package/dist/types/parsers/base.d.ts +39 -0
  64. package/dist/types/parsers/base.d.ts.map +1 -0
  65. package/dist/types/parsers/demo.d.ts +87 -0
  66. package/dist/types/parsers/demo.d.ts.map +1 -0
  67. package/dist/types/parsers/extractor.d.ts +43 -0
  68. package/dist/types/parsers/extractor.d.ts.map +1 -0
  69. package/dist/types/parsers/index.d.ts +10 -0
  70. package/dist/types/parsers/index.d.ts.map +1 -1
  71. package/dist/types/parsers/json.d.ts +71 -0
  72. package/dist/types/parsers/json.d.ts.map +1 -0
  73. package/dist/types/parsers/markdown.d.ts +43 -0
  74. package/dist/types/parsers/markdown.d.ts.map +1 -0
  75. package/dist/types/parsers/samples.d.ts +27 -0
  76. package/dist/types/parsers/samples.d.ts.map +1 -0
  77. package/dist/types/storage/base.d.ts +39 -0
  78. package/dist/types/storage/base.d.ts.map +1 -0
  79. package/dist/types/storage/errors.d.ts +74 -0
  80. package/dist/types/storage/errors.d.ts.map +1 -0
  81. package/dist/types/storage/index.d.ts +50 -2
  82. package/dist/types/storage/index.d.ts.map +1 -1
  83. package/dist/types/storage/levelgraph.d.ts +92 -0
  84. package/dist/types/storage/levelgraph.d.ts.map +1 -0
  85. package/dist/types/storage/memory.d.ts +70 -0
  86. package/dist/types/storage/memory.d.ts.map +1 -0
  87. package/dist/types/storage/neo4j.d.ts +88 -0
  88. package/dist/types/storage/neo4j.d.ts.map +1 -0
  89. package/dist/types/storage/seeds.d.ts +27 -0
  90. package/dist/types/storage/seeds.d.ts.map +1 -0
  91. package/dist/types/types/index.d.ts +1 -0
  92. package/dist/types/types/index.d.ts.map +1 -1
  93. package/dist/types/types/parser.d.ts +208 -0
  94. package/dist/types/types/parser.d.ts.map +1 -0
  95. package/package.json +4 -2
  96. package/scripts/postinstall.js +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levelgraph.js","sourceRoot":"","sources":["../../../src/storage/levelgraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,447 @@
1
+ "use strict";
2
+ /**
3
+ * In-memory storage adapter for testing and prototyping
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.MemoryStorage = void 0;
9
+ const index_js_1 = require("../types/index.js");
10
+ const errors_js_1 = require("./errors.js");
11
+ const base_js_1 = require("./base.js");
12
+ /**
13
+ * In-memory graph storage adapter.
14
+ *
15
+ * Stores all data in memory - lost on process exit.
16
+ * Ideal for unit tests and rapid prototyping.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const storage = new MemoryStorage();
21
+ * await storage.connect({ backend: 'memory' });
22
+ *
23
+ * const skill = await storage.createSkill({
24
+ * name: 'Add Fractions',
25
+ * description: 'Add fractions with like denominators',
26
+ * bloomLevel: 'apply',
27
+ * difficulty: 0.4,
28
+ * isThresholdConcept: false,
29
+ * masteryThreshold: 0.8,
30
+ * estimatedMinutes: 30,
31
+ * tags: ['math', 'fractions'],
32
+ * metadata: {},
33
+ * });
34
+ *
35
+ * console.log(skill.id); // skill_abc123...
36
+ * ```
37
+ */
38
+ class MemoryStorage {
39
+ nodes = new Map();
40
+ edges = new Map();
41
+ _connected = false;
42
+ // ─────────────────────────────────────────────────────────────────────────────
43
+ // Connection Management
44
+ // ─────────────────────────────────────────────────────────────────────────────
45
+ async connect(config) {
46
+ if (config.backend !== 'memory') {
47
+ throw new Error('MemoryStorage only supports "memory" backend');
48
+ }
49
+ // Initialize with optional initial data
50
+ const memConfig = config;
51
+ if (memConfig.initialData) {
52
+ for (const node of memConfig.initialData.nodes) {
53
+ this.nodes.set(node.id, node);
54
+ }
55
+ for (const edge of memConfig.initialData.edges) {
56
+ this.edges.set(edge.id, edge);
57
+ }
58
+ }
59
+ this._connected = true;
60
+ }
61
+ async disconnect() {
62
+ this._connected = false;
63
+ this.nodes.clear();
64
+ this.edges.clear();
65
+ }
66
+ isConnected() {
67
+ return this._connected;
68
+ }
69
+ async getStatus() {
70
+ return {
71
+ connected: this._connected,
72
+ backend: 'memory',
73
+ latencyMs: 0,
74
+ lastChecked: new Date(),
75
+ };
76
+ }
77
+ // ─────────────────────────────────────────────────────────────────────────────
78
+ // Skill Node CRUD
79
+ // ─────────────────────────────────────────────────────────────────────────────
80
+ async createSkill(input) {
81
+ (0, base_js_1.requireConnection)(this._connected);
82
+ (0, base_js_1.validateSkillInput)(input);
83
+ const skill = (0, base_js_1.inputToSkillNode)(input);
84
+ if (this.nodes.has(skill.id)) {
85
+ throw new errors_js_1.DuplicateError('skill', skill.id);
86
+ }
87
+ this.nodes.set(skill.id, skill);
88
+ return skill;
89
+ }
90
+ async getSkill(id) {
91
+ (0, base_js_1.requireConnection)(this._connected);
92
+ return this.nodes.get(id) ?? null;
93
+ }
94
+ async getSkills(ids) {
95
+ (0, base_js_1.requireConnection)(this._connected);
96
+ const result = [];
97
+ for (const id of ids) {
98
+ const node = this.nodes.get(id);
99
+ if (node)
100
+ result.push(node);
101
+ }
102
+ return result;
103
+ }
104
+ async updateSkill(id, updates) {
105
+ (0, base_js_1.requireConnection)(this._connected);
106
+ const existing = this.nodes.get(id);
107
+ if (!existing) {
108
+ throw new errors_js_1.NotFoundError('skill', id);
109
+ }
110
+ const updated = {
111
+ ...existing,
112
+ ...updates,
113
+ id: existing.id,
114
+ createdAt: existing.createdAt,
115
+ updatedAt: (0, base_js_1.nowISO)(),
116
+ };
117
+ this.nodes.set(id, updated);
118
+ return updated;
119
+ }
120
+ async deleteSkill(id) {
121
+ (0, base_js_1.requireConnection)(this._connected);
122
+ // Delete the skill
123
+ this.nodes.delete(id);
124
+ // Delete all edges referencing this skill
125
+ for (const [edgeId, edge] of this.edges) {
126
+ if (edge.sourceId === id || edge.targetId === id) {
127
+ this.edges.delete(edgeId);
128
+ }
129
+ }
130
+ }
131
+ async findSkills(query) {
132
+ (0, base_js_1.requireConnection)(this._connected);
133
+ let results = Array.from(this.nodes.values());
134
+ // Apply filters
135
+ if (query.filters) {
136
+ for (const filter of query.filters) {
137
+ results = results.filter((skill) => {
138
+ const value = skill[filter.field];
139
+ switch (filter.operator) {
140
+ case 'eq':
141
+ return value === filter.value;
142
+ case 'neq':
143
+ return value !== filter.value;
144
+ case 'gt':
145
+ return typeof value === 'number' && value > filter.value;
146
+ case 'gte':
147
+ return typeof value === 'number' && value >= filter.value;
148
+ case 'lt':
149
+ return typeof value === 'number' && value < filter.value;
150
+ case 'lte':
151
+ return typeof value === 'number' && value <= filter.value;
152
+ case 'in':
153
+ return Array.isArray(filter.value) && filter.value.includes(value);
154
+ case 'contains':
155
+ if (Array.isArray(value)) {
156
+ return value.includes(filter.value);
157
+ }
158
+ if (typeof value === 'string') {
159
+ return value.includes(filter.value);
160
+ }
161
+ return false;
162
+ default:
163
+ return true;
164
+ }
165
+ });
166
+ }
167
+ }
168
+ // Apply sorting
169
+ if (query.sorting && query.sorting.length > 0) {
170
+ results.sort((a, b) => {
171
+ for (const sortItem of query.sorting) {
172
+ const aVal = a[sortItem.field];
173
+ const bVal = b[sortItem.field];
174
+ const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0;
175
+ if (cmp !== 0) {
176
+ return sortItem.direction === 'asc' ? cmp : -cmp;
177
+ }
178
+ }
179
+ return 0;
180
+ });
181
+ }
182
+ // Apply pagination
183
+ if (query.pagination) {
184
+ const { offset = 0, limit = 100 } = query.pagination;
185
+ results = results.slice(offset, offset + limit);
186
+ }
187
+ return results;
188
+ }
189
+ async countSkills(query) {
190
+ (0, base_js_1.requireConnection)(this._connected);
191
+ if (!query) {
192
+ return this.nodes.size;
193
+ }
194
+ // Use findSkills without pagination to count
195
+ const { pagination, ...queryWithoutPagination } = query;
196
+ const results = await this.findSkills(queryWithoutPagination);
197
+ return results.length;
198
+ }
199
+ // ─────────────────────────────────────────────────────────────────────────────
200
+ // Prerequisite Edge CRUD
201
+ // ─────────────────────────────────────────────────────────────────────────────
202
+ async createPrerequisite(input) {
203
+ (0, base_js_1.requireConnection)(this._connected);
204
+ (0, base_js_1.validateEdgeInput)(input);
205
+ // Verify source and target exist
206
+ if (!this.nodes.has(input.sourceId)) {
207
+ throw new errors_js_1.ReferenceError(input.id || 'new', input.sourceId, 'source');
208
+ }
209
+ if (!this.nodes.has(input.targetId)) {
210
+ throw new errors_js_1.ReferenceError(input.id || 'new', input.targetId, 'target');
211
+ }
212
+ const edge = (0, base_js_1.inputToEdge)(input);
213
+ if (this.edges.has(edge.id)) {
214
+ throw new errors_js_1.DuplicateError('edge', edge.id);
215
+ }
216
+ this.edges.set(edge.id, edge);
217
+ return edge;
218
+ }
219
+ async getPrerequisite(id) {
220
+ (0, base_js_1.requireConnection)(this._connected);
221
+ return this.edges.get(id) ?? null;
222
+ }
223
+ async deletePrerequisite(id) {
224
+ (0, base_js_1.requireConnection)(this._connected);
225
+ this.edges.delete(id);
226
+ }
227
+ async findPrerequisites(criteria) {
228
+ (0, base_js_1.requireConnection)(this._connected);
229
+ let results = Array.from(this.edges.values());
230
+ if (criteria.sourceId) {
231
+ results = results.filter((e) => e.sourceId === criteria.sourceId);
232
+ }
233
+ if (criteria.targetId) {
234
+ results = results.filter((e) => e.targetId === criteria.targetId);
235
+ }
236
+ if (criteria.type) {
237
+ results = results.filter((e) => e.type === criteria.type);
238
+ }
239
+ if (criteria.minStrength !== undefined) {
240
+ results = results.filter((e) => e.strength >= criteria.minStrength);
241
+ }
242
+ return results;
243
+ }
244
+ // ─────────────────────────────────────────────────────────────────────────────
245
+ // Graph Traversal
246
+ // ─────────────────────────────────────────────────────────────────────────────
247
+ async getPrerequisitesOf(skillId) {
248
+ (0, base_js_1.requireConnection)(this._connected);
249
+ const prerequisites = [];
250
+ for (const edge of this.edges.values()) {
251
+ if (edge.targetId === skillId) {
252
+ const source = this.nodes.get(edge.sourceId);
253
+ if (source)
254
+ prerequisites.push(source);
255
+ }
256
+ }
257
+ return prerequisites;
258
+ }
259
+ async getDependentsOf(skillId) {
260
+ (0, base_js_1.requireConnection)(this._connected);
261
+ const dependents = [];
262
+ for (const edge of this.edges.values()) {
263
+ if (edge.sourceId === skillId) {
264
+ const target = this.nodes.get(edge.targetId);
265
+ if (target)
266
+ dependents.push(target);
267
+ }
268
+ }
269
+ return dependents;
270
+ }
271
+ async getSubgraph(rootId, depth) {
272
+ (0, base_js_1.requireConnection)(this._connected);
273
+ const visitedNodes = new Set();
274
+ const subgraphNodes = [];
275
+ const subgraphEdges = [];
276
+ // BFS to collect nodes up to depth
277
+ const queue = [
278
+ { id: rootId, level: 0 },
279
+ ];
280
+ while (queue.length > 0) {
281
+ const { id, level } = queue.shift();
282
+ if (visitedNodes.has(id) || level > depth) {
283
+ continue;
284
+ }
285
+ visitedNodes.add(id);
286
+ const node = this.nodes.get(id);
287
+ if (node) {
288
+ subgraphNodes.push(node);
289
+ // Get prerequisites (go backwards)
290
+ for (const edge of this.edges.values()) {
291
+ if (edge.targetId === id) {
292
+ subgraphEdges.push(edge);
293
+ queue.push({ id: edge.sourceId, level: level + 1 });
294
+ }
295
+ }
296
+ }
297
+ }
298
+ return {
299
+ rootId,
300
+ depth,
301
+ nodes: subgraphNodes,
302
+ edges: subgraphEdges.filter((e) => visitedNodes.has(e.sourceId) &&
303
+ visitedNodes.has(e.targetId)),
304
+ };
305
+ }
306
+ async getRootSkills() {
307
+ (0, base_js_1.requireConnection)(this._connected);
308
+ const hasPrerequisite = new Set();
309
+ for (const edge of this.edges.values()) {
310
+ hasPrerequisite.add(edge.targetId);
311
+ }
312
+ return Array.from(this.nodes.values()).filter((node) => !hasPrerequisite.has(node.id));
313
+ }
314
+ async getLeafSkills() {
315
+ (0, base_js_1.requireConnection)(this._connected);
316
+ const hasDependents = new Set();
317
+ for (const edge of this.edges.values()) {
318
+ hasDependents.add(edge.sourceId);
319
+ }
320
+ return Array.from(this.nodes.values()).filter((node) => !hasDependents.has(node.id));
321
+ }
322
+ async getPath(fromId, toId) {
323
+ (0, base_js_1.requireConnection)(this._connected);
324
+ // BFS to find shortest path
325
+ const visited = new Set();
326
+ const parent = new Map();
327
+ const queue = [fromId];
328
+ visited.add(fromId);
329
+ while (queue.length > 0) {
330
+ const current = queue.shift();
331
+ if (current === toId) {
332
+ // Reconstruct path
333
+ const path = [];
334
+ let node = toId;
335
+ while (node) {
336
+ const skillNode = this.nodes.get(node);
337
+ if (skillNode)
338
+ path.unshift(skillNode);
339
+ node = parent.get(node);
340
+ }
341
+ return path;
342
+ }
343
+ // Get dependents (forward direction)
344
+ for (const edge of this.edges.values()) {
345
+ if (edge.sourceId === current) {
346
+ const targetId = edge.targetId;
347
+ if (!visited.has(targetId)) {
348
+ visited.add(targetId);
349
+ parent.set(targetId, current);
350
+ queue.push(edge.targetId);
351
+ }
352
+ }
353
+ }
354
+ }
355
+ return null; // No path found
356
+ }
357
+ // ─────────────────────────────────────────────────────────────────────────────
358
+ // Bulk Operations
359
+ // ─────────────────────────────────────────────────────────────────────────────
360
+ async importGraph(nodes, edges, options) {
361
+ (0, base_js_1.requireConnection)(this._connected);
362
+ const startTime = Date.now();
363
+ const result = {
364
+ nodesCreated: 0,
365
+ edgesCreated: 0,
366
+ nodesSkipped: 0,
367
+ edgesSkipped: 0,
368
+ errors: [],
369
+ durationMs: 0,
370
+ };
371
+ if (options?.clearExisting) {
372
+ await this.clearAll();
373
+ }
374
+ // Import nodes
375
+ for (const nodeInput of nodes) {
376
+ try {
377
+ const skill = (0, base_js_1.inputToSkillNode)(nodeInput);
378
+ if (this.nodes.has(skill.id)) {
379
+ result.nodesSkipped++;
380
+ }
381
+ else {
382
+ this.nodes.set(skill.id, skill);
383
+ result.nodesCreated++;
384
+ }
385
+ }
386
+ catch (error) {
387
+ result.errors.push({
388
+ type: 'node',
389
+ id: nodeInput.id || 'unknown',
390
+ error: error instanceof Error ? error.message : String(error),
391
+ });
392
+ }
393
+ }
394
+ // Import edges
395
+ for (const edgeInput of edges) {
396
+ try {
397
+ const edge = (0, base_js_1.inputToEdge)(edgeInput);
398
+ // Verify references
399
+ if (!this.nodes.has(edge.sourceId)) {
400
+ throw new Error(`Source skill not found: ${edge.sourceId}`);
401
+ }
402
+ if (!this.nodes.has(edge.targetId)) {
403
+ throw new Error(`Target skill not found: ${edge.targetId}`);
404
+ }
405
+ if (this.edges.has(edge.id)) {
406
+ result.edgesSkipped++;
407
+ }
408
+ else {
409
+ this.edges.set(edge.id, edge);
410
+ result.edgesCreated++;
411
+ }
412
+ }
413
+ catch (error) {
414
+ result.errors.push({
415
+ type: 'edge',
416
+ id: edgeInput.id || 'unknown',
417
+ error: error instanceof Error ? error.message : String(error),
418
+ });
419
+ }
420
+ }
421
+ result.durationMs = Date.now() - startTime;
422
+ return result;
423
+ }
424
+ async exportGraph() {
425
+ (0, base_js_1.requireConnection)(this._connected);
426
+ return {
427
+ version: index_js_1.GRAPH_VERSION,
428
+ exportedAt: (0, base_js_1.nowISO)(),
429
+ nodes: Array.from(this.nodes.values()),
430
+ edges: Array.from(this.edges.values()),
431
+ };
432
+ }
433
+ async clearAll() {
434
+ (0, base_js_1.requireConnection)(this._connected);
435
+ this.nodes.clear();
436
+ this.edges.clear();
437
+ }
438
+ // ─────────────────────────────────────────────────────────────────────────────
439
+ // Analytics
440
+ // ─────────────────────────────────────────────────────────────────────────────
441
+ async getStats() {
442
+ (0, base_js_1.requireConnection)(this._connected);
443
+ return (0, base_js_1.calculateStats)(Array.from(this.nodes.values()), Array.from(this.edges.values()));
444
+ }
445
+ }
446
+ exports.MemoryStorage = MemoryStorage;
447
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAoBH,gDAAkD;AAClD,2CAIqB;AACrB,uCAQmB;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,aAAa;IAChB,KAAK,GAA2B,IAAI,GAAG,EAAE,CAAC;IAC1C,KAAK,GAAkC,IAAI,GAAG,EAAE,CAAC;IACjD,UAAU,GAAG,KAAK,CAAC;IAE3B,gFAAgF;IAChF,wBAAwB;IACxB,gFAAgF;IAEhF,KAAK,CAAC,OAAO,CAAC,MAAqB;QACjC,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,wCAAwC;QACxC,MAAM,SAAS,GAAG,MAAsB,CAAC;QACzC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,kBAAkB;IAClB,gFAAgF;IAEhF,KAAK,CAAC,WAAW,CAAC,KAAqB;QACrC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAA,4BAAkB,EAAC,KAAK,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAY,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,0BAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAAY,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAY,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAW;QACxB,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAY,CAAC,IAAI,IAAI,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAc;QAC5B,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;YAC1C,IAAI,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAW,EAAE,OAAwB;QACrD,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,yBAAa,CAAC,OAAO,EAAE,EAAY,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAc;YACzB,GAAG,QAAQ;YACX,GAAG,OAAO;YACV,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,IAAA,gBAAM,GAAE;SACpB,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAY,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAW;QAC3B,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,mBAAmB;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAY,CAAC,CAAC;QAEhC,0CAA0C;QAC1C,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAA0B;QACzC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9C,gBAAgB;QAChB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjC,MAAM,KAAK,GAAI,KAA4C,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1E,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACxB,KAAK,IAAI;4BACP,OAAO,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;wBAChC,KAAK,KAAK;4BACR,OAAO,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;wBAChC,KAAK,IAAI;4BACP,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAI,MAAM,CAAC,KAAgB,CAAC;wBACvE,KAAK,KAAK;4BACR,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAK,MAAM,CAAC,KAAgB,CAAC;wBACxE,KAAK,IAAI;4BACP,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAI,MAAM,CAAC,KAAgB,CAAC;wBACvE,KAAK,KAAK;4BACR,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAK,MAAM,CAAC,KAAgB,CAAC;wBACxE,KAAK,IAAI;4BACP,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACrE,KAAK,UAAU;4BACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gCACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACtC,CAAC;4BACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gCAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;4BAChD,CAAC;4BACD,OAAO,KAAK,CAAC;wBACf;4BACE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,OAAQ,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAI,CAAwC,CAAC,QAAQ,CAAC,KAAK,CAAoB,CAAC;oBAC1F,MAAM,IAAI,GAAI,CAAwC,CAAC,QAAQ,CAAC,KAAK,CAAoB,CAAC;oBAC1F,MAAM,GAAG,GACP,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;wBACd,OAAO,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBACnD,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;YACrD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA2B;QAC3C,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACzB,CAAC;QAED,6CAA6C;QAC7C,MAAM,EAAE,UAAU,EAAE,GAAG,sBAAsB,EAAE,GAAG,KAAK,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,gFAAgF;IAChF,yBAAyB;IACzB,gFAAgF;IAEhF,KAAK,CAAC,kBAAkB,CAAC,KAA4B;QACnD,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAA,2BAAiB,EAAC,KAAK,CAAC,CAAC;QAEzB,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,0BAAqB,CAC7B,KAAK,CAAC,EAAY,IAAI,KAAK,EAC3B,KAAK,CAAC,QAAkB,EACxB,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,0BAAqB,CAC7B,KAAK,CAAC,EAAY,IAAI,KAAK,EAC3B,KAAK,CAAC,QAAkB,EACxB,QAAQ,CACT,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,0BAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAY,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAY,CAAC,IAAI,IAAI,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU;QACjC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAY,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAKvB;QACC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9C,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAY,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gFAAgF;IAChF,kBAAkB;IAClB,gFAAgF;IAEhF,KAAK,CAAC,kBAAkB,CAAC,OAAgB;QACvC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;gBACvD,IAAI,MAAM;oBAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgB;QACpC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;gBACvD,IAAI,MAAM;oBAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAe,EAAE,KAAa;QAC9C,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,MAAM,aAAa,GAAuB,EAAE,CAAC;QAE7C,mCAAmC;QACnC,MAAM,KAAK,GAA0C;YACnD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;SACzB,CAAC;QAEF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAErC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAY,CAAC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;YAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEzB,mCAAmC;gBACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;wBACzB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM;YACN,KAAK;YACL,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,aAAa,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAkB,CAAC;gBACtC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAkB,CAAC,CACzC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,CAAC,CAClD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe,EAAE,IAAa;QAC1C,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,4BAA4B;QAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,MAAM,KAAK,GAAc,CAAC,MAAM,CAAC,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,MAAgB,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAE/B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,mBAAmB;gBACnB,MAAM,IAAI,GAAgB,EAAE,CAAC;gBAC7B,IAAI,IAAI,GAAuB,IAAc,CAAC;gBAE9C,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,SAAS;wBAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACvC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAED,qCAAqC;YACrC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;oBACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAiB,CAAC,CAAC;wBACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,CAAC,gBAAgB;IAC/B,CAAC;IAED,gFAAgF;IAChF,kBAAkB;IAClB,gFAAgF;IAEhF,KAAK,CAAC,WAAW,CACf,KAAuB,EACvB,KAA8B,EAC9B,OAAqC;QAErC,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAiB;YAC3B,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,eAAe;QACf,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAA,0BAAgB,EAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAY,CAAC,EAAE,CAAC;oBACvC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAY,EAAE,KAAK,CAAC,CAAC;oBAC1C,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAG,SAAS,CAAC,EAAa,IAAI,SAAS;oBACzC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,eAAe;QACf,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,SAAS,CAAC,CAAC;gBAEpC,oBAAoB;gBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAkB,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAkB,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,CAAC;oBACxC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAG,SAAS,CAAC,EAAa,IAAI,SAAS;oBACzC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnC,OAAO;YACL,OAAO,EAAE,wBAAa;YACtB,UAAU,EAAE,IAAA,gBAAM,GAAE;YACpB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACvC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,gFAAgF;IAChF,YAAY;IACZ,gFAAgF;IAEhF,KAAK,CAAC,QAAQ;QACZ,IAAA,2BAAiB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAA,wBAAc,EACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAChC,CAAC;IACJ,CAAC;CACF;AAhgBD,sCAggBC"}