@claude-flow/cli 3.6.30 → 3.7.0-alpha.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.
@@ -1,514 +1,9 @@
1
1
  /**
2
- * V3 CLI Output Formatter
3
- * Advanced output formatting with tables, progress bars, and colors
2
+ * V3 CLI Output Formatter — re-export shim (ADR-100, alpha.5).
3
+ *
4
+ * Authoritative source: @claude-flow/cli-core/output. Was a byte-identical
5
+ * 640-line copy. The OutputFormatter class and `output` instance plus all
6
+ * helper exports flow through unchanged. Edit cli-core for behavior changes.
4
7
  */
5
- // ============================================
6
- // Color Support
7
- // ============================================
8
- const COLORS = {
9
- // Standard colors
10
- reset: '\x1b[0m',
11
- bold: '\x1b[1m',
12
- dim: '\x1b[2m',
13
- italic: '\x1b[3m',
14
- underline: '\x1b[4m',
15
- // Foreground colors
16
- black: '\x1b[30m',
17
- red: '\x1b[31m',
18
- green: '\x1b[32m',
19
- yellow: '\x1b[33m',
20
- blue: '\x1b[34m',
21
- magenta: '\x1b[35m',
22
- cyan: '\x1b[36m',
23
- white: '\x1b[37m',
24
- gray: '\x1b[90m',
25
- // Bright foreground colors
26
- brightRed: '\x1b[91m',
27
- brightGreen: '\x1b[92m',
28
- brightYellow: '\x1b[93m',
29
- brightBlue: '\x1b[94m',
30
- brightMagenta: '\x1b[95m',
31
- brightCyan: '\x1b[96m',
32
- brightWhite: '\x1b[97m',
33
- // Background colors
34
- bgBlack: '\x1b[40m',
35
- bgRed: '\x1b[41m',
36
- bgGreen: '\x1b[42m',
37
- bgYellow: '\x1b[43m',
38
- bgBlue: '\x1b[44m',
39
- bgMagenta: '\x1b[45m',
40
- bgCyan: '\x1b[46m',
41
- bgWhite: '\x1b[47m'
42
- };
43
- export class OutputFormatter {
44
- colorEnabled;
45
- outputStream;
46
- errorStream;
47
- verbosity;
48
- constructor(options = {}) {
49
- this.colorEnabled = options.color ?? this.supportsColor();
50
- this.outputStream = process.stdout;
51
- this.errorStream = process.stderr;
52
- this.verbosity = options.verbosity ?? 'normal';
53
- }
54
- /**
55
- * Set verbosity level
56
- * - quiet: Only errors and direct results
57
- * - normal: Errors, warnings, info, and results
58
- * - verbose: All of normal + debug messages
59
- * - debug: All output including trace
60
- */
61
- setVerbosity(level) {
62
- this.verbosity = level;
63
- }
64
- getVerbosity() {
65
- return this.verbosity;
66
- }
67
- isQuiet() {
68
- return this.verbosity === 'quiet';
69
- }
70
- isVerbose() {
71
- return this.verbosity === 'verbose' || this.verbosity === 'debug';
72
- }
73
- isDebug() {
74
- return this.verbosity === 'debug';
75
- }
76
- supportsColor() {
77
- // Check for NO_COLOR environment variable
78
- if (process.env.NO_COLOR !== undefined)
79
- return false;
80
- // Check for FORCE_COLOR environment variable
81
- if (process.env.FORCE_COLOR !== undefined)
82
- return true;
83
- // Check if stdout is a TTY
84
- return process.stdout.isTTY ?? false;
85
- }
86
- // ============================================
87
- // Color Methods
88
- // ============================================
89
- color(text, ...colors) {
90
- if (!this.colorEnabled)
91
- return text;
92
- const codes = colors.map(c => COLORS[c]).join('');
93
- return `${codes}${text}${COLORS.reset}`;
94
- }
95
- bold(text) {
96
- return this.color(text, 'bold');
97
- }
98
- dim(text) {
99
- return this.color(text, 'dim');
100
- }
101
- success(text) {
102
- return this.color(text, 'green');
103
- }
104
- error(text) {
105
- return this.color(text, 'red');
106
- }
107
- warning(text) {
108
- return this.color(text, 'yellow');
109
- }
110
- info(text) {
111
- return this.color(text, 'blue');
112
- }
113
- highlight(text) {
114
- return this.color(text, 'cyan', 'bold');
115
- }
116
- // ============================================
117
- // Output Methods
118
- // ============================================
119
- write(text) {
120
- this.outputStream.write(text);
121
- }
122
- writeln(text = '') {
123
- this.outputStream.write(text + '\n');
124
- }
125
- writeError(text) {
126
- this.errorStream.write(text);
127
- }
128
- writeErrorln(text = '') {
129
- this.errorStream.write(text + '\n');
130
- }
131
- // ============================================
132
- // Formatted Output Methods
133
- // ============================================
134
- printSuccess(message) {
135
- // Success always shows (result output)
136
- const icon = this.color('[OK]', 'green', 'bold');
137
- this.writeln(`${icon} ${message}`);
138
- }
139
- printError(message, details) {
140
- // Errors always show
141
- const icon = this.color('[ERROR]', 'red', 'bold');
142
- this.writeErrorln(`${icon} ${message}`);
143
- if (details) {
144
- this.writeErrorln(this.dim(` ${details}`));
145
- }
146
- }
147
- printWarning(message) {
148
- // Warnings suppressed in quiet mode
149
- if (this.verbosity === 'quiet')
150
- return;
151
- const icon = this.color('[WARN]', 'yellow', 'bold');
152
- this.writeln(`${icon} ${message}`);
153
- }
154
- printInfo(message) {
155
- // Info suppressed in quiet mode
156
- if (this.verbosity === 'quiet')
157
- return;
158
- const icon = this.color('[INFO]', 'blue', 'bold');
159
- this.writeln(`${icon} ${message}`);
160
- }
161
- printDebug(message) {
162
- // Debug only shows in verbose/debug mode
163
- if (this.verbosity !== 'verbose' && this.verbosity !== 'debug')
164
- return;
165
- const icon = this.color('[DEBUG]', 'gray');
166
- this.writeln(`${icon} ${this.dim(message)}`);
167
- }
168
- printTrace(message) {
169
- // Trace only shows in debug mode
170
- if (this.verbosity !== 'debug')
171
- return;
172
- const icon = this.color('[TRACE]', 'gray', 'dim');
173
- this.writeln(`${icon} ${this.dim(message)}`);
174
- }
175
- // ============================================
176
- // Table Formatting
177
- // ============================================
178
- table(options) {
179
- const { columns, data, border = true, header = true, padding = 1, maxWidth } = options;
180
- // Calculate column widths
181
- const widths = this.calculateColumnWidths(columns, data, maxWidth);
182
- const lines = [];
183
- const pad = ' '.repeat(padding);
184
- // Border characters
185
- const borderChars = border ? {
186
- topLeft: '+', topRight: '+', bottomLeft: '+', bottomRight: '+',
187
- horizontal: '-', vertical: '|',
188
- leftT: '+', rightT: '+', topT: '+', bottomT: '+', cross: '+'
189
- } : {
190
- topLeft: '', topRight: '', bottomLeft: '', bottomRight: '',
191
- horizontal: '', vertical: ' ',
192
- leftT: '', rightT: '', topT: '', bottomT: '', cross: ''
193
- };
194
- // Top border
195
- if (border) {
196
- lines.push(this.createBorderLine(widths, borderChars, 'top', padding));
197
- }
198
- // Header row
199
- if (header) {
200
- const headerRow = columns.map((col, i) => {
201
- const text = this.truncate(col.header, widths[i]);
202
- return pad + this.alignText(this.bold(text), widths[i], col.align) + pad;
203
- }).join(borderChars.vertical);
204
- lines.push(`${borderChars.vertical}${headerRow}${borderChars.vertical}`);
205
- // Header separator
206
- if (border) {
207
- lines.push(this.createBorderLine(widths, borderChars, 'middle', padding));
208
- }
209
- }
210
- // Data rows
211
- for (const row of data) {
212
- const rowCells = columns.map((col, i) => {
213
- let value = row[col.key];
214
- // Apply formatter if provided
215
- if (col.format) {
216
- value = col.format(value);
217
- }
218
- else {
219
- value = String(value ?? '');
220
- }
221
- const text = this.truncate(String(value), widths[i]);
222
- return pad + this.alignText(text, widths[i], col.align) + pad;
223
- }).join(borderChars.vertical);
224
- lines.push(`${borderChars.vertical}${rowCells}${borderChars.vertical}`);
225
- }
226
- // Bottom border
227
- if (border) {
228
- lines.push(this.createBorderLine(widths, borderChars, 'bottom', padding));
229
- }
230
- return lines.join('\n');
231
- }
232
- printTable(options) {
233
- this.writeln(this.table(options));
234
- }
235
- calculateColumnWidths(columns, data, maxWidth) {
236
- const widths = columns.map((col, i) => {
237
- // Start with header width
238
- let width = col.header.length;
239
- // Check all data values
240
- for (const row of data) {
241
- let value = row[col.key];
242
- if (col.format) {
243
- value = col.format(value);
244
- }
245
- const len = this.stripAnsi(String(value ?? '')).length;
246
- width = Math.max(width, len);
247
- }
248
- // Apply column-specific width limit
249
- if (col.width) {
250
- width = Math.min(width, col.width);
251
- }
252
- return width;
253
- });
254
- // Apply max width constraint
255
- if (maxWidth) {
256
- const totalWidth = widths.reduce((a, b) => a + b, 0) + (columns.length * 3) + 1;
257
- if (totalWidth > maxWidth) {
258
- const reduction = (totalWidth - maxWidth) / columns.length;
259
- return widths.map(w => Math.max(3, Math.floor(w - reduction)));
260
- }
261
- }
262
- return widths;
263
- }
264
- createBorderLine(widths, chars, position, padding) {
265
- const cellWidth = (w) => chars.horizontal.repeat(w + (padding * 2));
266
- const cells = widths.map(cellWidth).join(position === 'top' ? chars.topT :
267
- position === 'bottom' ? chars.bottomT :
268
- chars.cross);
269
- const left = position === 'top' ? chars.topLeft : position === 'bottom' ? chars.bottomLeft : chars.leftT;
270
- const right = position === 'top' ? chars.topRight : position === 'bottom' ? chars.bottomRight : chars.rightT;
271
- return `${left}${cells}${right}`;
272
- }
273
- alignText(text, width, align = 'left') {
274
- const len = this.stripAnsi(text).length;
275
- const padding = width - len;
276
- if (padding <= 0)
277
- return text;
278
- switch (align) {
279
- case 'right':
280
- return ' '.repeat(padding) + text;
281
- case 'center':
282
- const left = Math.floor(padding / 2);
283
- const right = padding - left;
284
- return ' '.repeat(left) + text + ' '.repeat(right);
285
- default:
286
- return text + ' '.repeat(padding);
287
- }
288
- }
289
- truncate(text, maxLength) {
290
- const stripped = this.stripAnsi(text);
291
- if (stripped.length <= maxLength)
292
- return text;
293
- return stripped.slice(0, maxLength - 3) + '...';
294
- }
295
- stripAnsi(text) {
296
- return text.replace(/\x1b\[[0-9;]*m/g, '');
297
- }
298
- // ============================================
299
- // Progress Bar
300
- // ============================================
301
- createProgress(options) {
302
- return new Progress(this, options);
303
- }
304
- progressBar(current, total, width = 40) {
305
- const percent = Math.min(100, Math.max(0, (current / total) * 100));
306
- const filled = Math.round((width * percent) / 100);
307
- const empty = width - filled;
308
- const bar = this.color('#'.repeat(filled), 'green') +
309
- this.dim('-'.repeat(empty));
310
- return `[${bar}] ${percent.toFixed(1)}%`;
311
- }
312
- // ============================================
313
- // Spinner
314
- // ============================================
315
- createSpinner(options) {
316
- return new Spinner(this, options);
317
- }
318
- // ============================================
319
- // JSON Output
320
- // ============================================
321
- json(data, pretty = true) {
322
- return pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
323
- }
324
- printJson(data, pretty = true) {
325
- this.writeln(this.json(data, pretty));
326
- }
327
- // ============================================
328
- // List Output
329
- // ============================================
330
- list(items, bullet = '-') {
331
- return items.map(item => ` ${bullet} ${item}`).join('\n');
332
- }
333
- printList(items, bullet = '-') {
334
- this.writeln(this.list(items, bullet));
335
- }
336
- numberedList(items) {
337
- return items.map((item, i) => ` ${i + 1}. ${item}`).join('\n');
338
- }
339
- printNumberedList(items) {
340
- this.writeln(this.numberedList(items));
341
- }
342
- // ============================================
343
- // Box Output
344
- // ============================================
345
- box(content, title) {
346
- const lines = content.split('\n');
347
- const maxLen = Math.max(...lines.map(l => this.stripAnsi(l).length), title?.length ?? 0);
348
- const width = maxLen + 4;
349
- const border = {
350
- topLeft: '+', topRight: '+',
351
- bottomLeft: '+', bottomRight: '+',
352
- horizontal: '-', vertical: '|'
353
- };
354
- const result = [];
355
- // Top border with optional title
356
- if (title) {
357
- const titleText = ` ${title} `;
358
- const leftPad = Math.floor((width - titleText.length - 2) / 2);
359
- const rightPad = width - titleText.length - leftPad - 2;
360
- result.push(border.topLeft +
361
- border.horizontal.repeat(leftPad) +
362
- this.bold(titleText) +
363
- border.horizontal.repeat(rightPad) +
364
- border.topRight);
365
- }
366
- else {
367
- result.push(border.topLeft + border.horizontal.repeat(width - 2) + border.topRight);
368
- }
369
- // Content lines
370
- for (const line of lines) {
371
- const stripped = this.stripAnsi(line);
372
- const padding = maxLen - stripped.length;
373
- result.push(`${border.vertical} ${line}${' '.repeat(padding)} ${border.vertical}`);
374
- }
375
- // Bottom border
376
- result.push(border.bottomLeft + border.horizontal.repeat(width - 2) + border.bottomRight);
377
- return result.join('\n');
378
- }
379
- printBox(content, title) {
380
- this.writeln(this.box(content, title));
381
- }
382
- setColorEnabled(enabled) {
383
- this.colorEnabled = enabled;
384
- }
385
- isColorEnabled() {
386
- return this.colorEnabled;
387
- }
388
- }
389
- // ============================================
390
- // Progress Class
391
- // ============================================
392
- export class Progress {
393
- current;
394
- total;
395
- width;
396
- startTime;
397
- formatter;
398
- showPercentage;
399
- showETA;
400
- lastRender = '';
401
- constructor(formatter, options) {
402
- this.formatter = formatter;
403
- this.current = options.current ?? 0;
404
- this.total = options.total;
405
- this.width = options.width ?? 40;
406
- this.showPercentage = options.showPercentage ?? true;
407
- this.showETA = options.showETA ?? true;
408
- this.startTime = Date.now();
409
- }
410
- update(current) {
411
- this.current = current;
412
- this.render();
413
- }
414
- increment(amount = 1) {
415
- this.update(this.current + amount);
416
- }
417
- render() {
418
- const bar = this.formatter.progressBar(this.current, this.total, this.width);
419
- let output = bar;
420
- if (this.showETA && this.current > 0) {
421
- const elapsed = Date.now() - this.startTime;
422
- const rate = this.current / elapsed;
423
- const remaining = this.total - this.current;
424
- const eta = remaining / rate;
425
- if (isFinite(eta)) {
426
- output += ` ETA: ${this.formatTime(eta)}`;
427
- }
428
- }
429
- // Clear previous line and write new
430
- if (this.lastRender) {
431
- process.stdout.write('\r' + ' '.repeat(this.lastRender.length) + '\r');
432
- }
433
- process.stdout.write(output);
434
- this.lastRender = output;
435
- }
436
- finish() {
437
- this.current = this.total;
438
- this.render();
439
- process.stdout.write('\n');
440
- }
441
- formatTime(ms) {
442
- const seconds = Math.floor(ms / 1000);
443
- const minutes = Math.floor(seconds / 60);
444
- const hours = Math.floor(minutes / 60);
445
- if (hours > 0) {
446
- return `${hours}h ${minutes % 60}m`;
447
- }
448
- else if (minutes > 0) {
449
- return `${minutes}m ${seconds % 60}s`;
450
- }
451
- else {
452
- return `${seconds}s`;
453
- }
454
- }
455
- }
456
- // ============================================
457
- // Spinner Class
458
- // ============================================
459
- export class Spinner {
460
- formatter;
461
- text;
462
- frames;
463
- interval = null;
464
- frameIndex = 0;
465
- static SPINNERS = {
466
- dots: ['...', '..:', '.::', ':::', '::.', ':..',],
467
- line: ['-', '\\', '|', '/'],
468
- arc: ['◜', '◠', '◝', '◞', '◡', '◟'],
469
- circle: ['◐', '◓', '◑', '◒'],
470
- arrows: ['←', '↖', '↑', '↗', '→', '↘', '↓', '↙']
471
- };
472
- constructor(formatter, options) {
473
- this.formatter = formatter;
474
- this.text = options.text;
475
- this.frames = Spinner.SPINNERS[options.spinner ?? 'dots'];
476
- }
477
- start() {
478
- if (this.interval)
479
- return;
480
- this.interval = setInterval(() => {
481
- this.render();
482
- this.frameIndex = (this.frameIndex + 1) % this.frames.length;
483
- }, 100);
484
- this.interval.unref();
485
- this.render();
486
- }
487
- stop(message) {
488
- if (this.interval) {
489
- clearInterval(this.interval);
490
- this.interval = null;
491
- }
492
- // Clear the line
493
- process.stdout.write('\r' + ' '.repeat(this.text.length + 10) + '\r');
494
- if (message) {
495
- this.formatter.writeln(message);
496
- }
497
- }
498
- succeed(message) {
499
- this.stop(this.formatter.success(message ?? this.text));
500
- }
501
- fail(message) {
502
- this.stop(this.formatter.error(message ?? this.text));
503
- }
504
- render() {
505
- const frame = this.formatter.info(this.frames[this.frameIndex]);
506
- process.stdout.write(`\r${frame} ${this.text}`);
507
- }
508
- setText(text) {
509
- this.text = text;
510
- }
511
- }
512
- // Export singleton instance
513
- export const output = new OutputFormatter();
8
+ export * from '@claude-flow/cli-core/output';
514
9
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,MAAM,MAAM,GAAG;IACb,kBAAkB;IAClB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;IAEpB,oBAAoB;IACpB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAEhB,2BAA2B;IAC3B,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IAEvB,oBAAoB;IACpB,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;CACX,CAAC;AAMX,MAAM,OAAO,eAAe;IAClB,YAAY,CAAU;IACtB,YAAY,CAAqB;IACjC,WAAW,CAAqB;IAChC,SAAS,CAAiB;IAElC,YAAY,UAA2D,EAAE;QACvE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,KAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;IACpC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;IACpE,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;IACpC,CAAC;IAEO,aAAa;QACnB,0CAA0C;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAErD,6CAA6C;QAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEvD,2BAA2B;QAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;IACvC,CAAC;IAED,+CAA+C;IAC/C,gBAAgB;IAChB,+CAA+C;IAE/C,KAAK,CAAC,IAAY,EAAE,GAAG,MAAmB;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,+CAA+C;IAC/C,iBAAiB;IACjB,+CAA+C;IAE/C,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAe,EAAE;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,OAAe,EAAE;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,+CAA+C;IAC/C,2BAA2B;IAC3B,+CAA+C;IAE/C,YAAY,CAAC,OAAe;QAC1B,uCAAuC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,OAAgB;QAC1C,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,oCAAoC;QACpC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,gCAAgC;QAChC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,yCAAyC;QACzC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,iCAAiC;QACjC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,+CAA+C;IAC/C,mBAAmB;IACnB,+CAA+C;IAE/C,KAAK,CAAC,OAAqB;QACzB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAEvF,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhC,oBAAoB;QACpB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;YAC9D,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;YAC9B,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;SAC7D,CAAC,CAAC,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;YAC1D,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG;YAC7B,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;SACxD,CAAC;QAEF,aAAa;QACb,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,aAAa;QACb,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YAC3E,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE9B,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEzE,mBAAmB;YACnB,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,YAAY;QACZ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEzB,8BAA8B;gBAC9B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC9B,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YAChE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE9B,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,gBAAgB;QAChB,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,OAAqB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC;IAEO,qBAAqB,CAC3B,OAAsB,EACtB,IAA+B,EAC/B,QAAiB;QAEjB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACpC,0BAA0B;YAC1B,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAE9B,wBAAwB;YACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;YAED,oCAAoC;YACpC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAChF,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,gBAAgB,CACtB,MAAgB,EAChB,KAA6B,EAC7B,QAAqC,EACrC,OAAe;QAEf,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CACtC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,KAAK,CAAC,KAAK,CACZ,CAAC;QAEF,MAAM,IAAI,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QACzG,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAE7G,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;IACnC,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,QAAqC,MAAM;QACxF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC;QAE5B,IAAI,OAAO,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACpC,KAAK,QAAQ;gBACX,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;gBAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrD;gBACE,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,SAAiB;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,+CAA+C;IAC/C,eAAe;IACf,+CAA+C;IAE/C,cAAc,CAAC,OAAwB;QACrC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,QAAgB,EAAE;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAExC,OAAO,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,CAAC;IAED,+CAA+C;IAC/C,UAAU;IACV,+CAA+C;IAE/C,aAAa,CAAC,OAAuB;QACnC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,+CAA+C;IAC/C,cAAc;IACd,+CAA+C;IAE/C,IAAI,CAAC,IAAa,EAAE,SAAkB,IAAI;QACxC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,SAAS,CAAC,IAAa,EAAE,SAAkB,IAAI;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,+CAA+C;IAC/C,cAAc;IACd,+CAA+C;IAE/C,IAAI,CAAC,KAAe,EAAE,SAAiB,GAAG;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,CAAC,KAAe,EAAE,SAAiB,GAAG;QAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,KAAe;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB,CAAC,KAAe;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,+CAA+C;IAC/C,aAAa;IACb,+CAA+C;IAE/C,GAAG,CAAC,OAAe,EAAE,KAAc;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;YAC3B,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;YACjC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;SAC/B,CAAC;QAEF,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,iCAAiC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,IAAI,KAAK,GAAG,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACpB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtF,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,gBAAgB;QAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1F,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,KAAc;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,MAAM,OAAO,QAAQ;IACX,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,SAAS,CAAkB;IAC3B,cAAc,CAAU;IACxB,OAAO,CAAU;IACjB,UAAU,GAAW,EAAE,CAAC;IAEhC,YAAY,SAA0B,EAAE,OAAwB;QAC9D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,SAAiB,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7E,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5C,MAAM,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;YAE7B,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAEvC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,GAAG,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAED,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,MAAM,OAAO,OAAO;IACV,SAAS,CAAkB;IAC3B,IAAI,CAAS;IACb,MAAM,CAAW;IACjB,QAAQ,GAA0C,IAAI,CAAC;IACvD,UAAU,GAAW,CAAC,CAAC;IAEvB,MAAM,CAAU,QAAQ,GAA6B;QAC3D,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAG,KAAK,EAAE,KAAK,EAAG,KAAK,EAAE,KAAK,EAAG;QACpD,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;QAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACnC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KACjD,CAAC;IAEF,YAAY,SAA0B,EAAE,OAAuB;QAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/D,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEtB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAgB;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,iBAAiB;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAEtE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,OAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAEO,MAAM;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;;AAGH,4BAA4B;AAC5B,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,8BAA8B,CAAC"}