@elisra-devops/docgen-skins 0.23.0 → 0.24.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 (55) hide show
  1. package/.github/workflows/ci.yml +18 -9
  2. package/bin/index.d.ts +5 -1
  3. package/bin/index.js +43 -16
  4. package/bin/index.js.map +1 -1
  5. package/bin/models/json/JSONRun.js.map +1 -1
  6. package/bin/models/json/file/JSONFile.js.map +1 -1
  7. package/bin/models/json/paragraph/JSONParagraph.js.map +1 -1
  8. package/bin/models/json/paragraph/JSONRichTextParagraph.js.map +1 -1
  9. package/bin/models/json/paragraph/JSONTestSuiteHeaderParagraph.js.map +1 -1
  10. package/bin/models/json/table/JSONTable.d.ts +2 -1
  11. package/bin/models/json/table/JSONTable.js +20 -6
  12. package/bin/models/json/table/JSONTable.js.map +1 -1
  13. package/bin/models/json/table/JSONTableCell.js.map +1 -1
  14. package/bin/models/json/table/JSONTableRow.js.map +1 -1
  15. package/bin/services/logger.js +17 -7
  16. package/bin/services/logger.js.map +1 -1
  17. package/bin/test/JSONFile.test.js +48 -0
  18. package/bin/test/JSONFile.test.js.map +1 -0
  19. package/bin/test/JSONRun.test.d.ts +1 -0
  20. package/bin/test/JSONRun.test.js +93 -0
  21. package/bin/test/JSONRun.test.js.map +1 -0
  22. package/bin/test/JSONTable.test.d.ts +1 -0
  23. package/bin/test/JSONTable.test.js +79 -0
  24. package/bin/test/JSONTable.test.js.map +1 -0
  25. package/bin/test/JSONTableCell.test.d.ts +1 -0
  26. package/bin/test/JSONTableCell.test.js +129 -0
  27. package/bin/test/JSONTableCell.test.js.map +1 -0
  28. package/bin/test/JSONTableRow.test.d.ts +1 -0
  29. package/bin/test/JSONTableRow.test.js +40 -0
  30. package/bin/test/JSONTableRow.test.js.map +1 -0
  31. package/bin/test/JSONTestSuiteHeaderParagraph.test.d.ts +1 -0
  32. package/bin/test/JSONTestSuiteHeaderParagraph.test.js +39 -0
  33. package/bin/test/JSONTestSuiteHeaderParagraph.test.js.map +1 -0
  34. package/bin/test/SkinsEdgeCases.test.d.ts +1 -0
  35. package/bin/test/SkinsEdgeCases.test.js +399 -0
  36. package/bin/test/SkinsEdgeCases.test.js.map +1 -0
  37. package/bin/test/integration/skins.integration.test.d.ts +1 -0
  38. package/bin/test/integration/skins.integration.test.js +492 -0
  39. package/bin/test/integration/skins.integration.test.js.map +1 -0
  40. package/package.json +5 -5
  41. package/src/index.ts +45 -10
  42. package/src/models/json/table/JSONTable.ts +19 -3
  43. package/src/test/JSONFile.test.ts +59 -0
  44. package/src/test/JSONRun.test.ts +118 -0
  45. package/src/test/JSONTable.test.ts +126 -0
  46. package/src/test/JSONTableCell.test.ts +150 -0
  47. package/src/test/JSONTableRow.test.ts +42 -0
  48. package/src/test/JSONTestSuiteHeaderParagraph.test.ts +40 -0
  49. package/src/test/SkinsEdgeCases.test.ts +530 -0
  50. package/src/test/integration/skins.integration.test.ts +608 -0
  51. package/tsconfig.json +2 -2
  52. package/bin/test/skins.test.js +0 -126
  53. package/bin/test/skins.test.js.map +0 -1
  54. package/src/test/skins.test.ts +0 -189
  55. /package/bin/test/{skins.test.d.ts → JSONFile.test.d.ts} +0 -0
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const index_1 = __importDefault(require("../index"));
16
+ const logger_1 = __importDefault(require("../services/logger"));
17
+ const JSONRichTextParagraph_1 = __importDefault(require("../models/json/paragraph/JSONRichTextParagraph"));
18
+ jest.mock('../services/logger', () => ({
19
+ __esModule: true,
20
+ default: {
21
+ debug: jest.fn(),
22
+ info: jest.fn(),
23
+ warn: jest.fn(),
24
+ error: jest.fn(),
25
+ silly: jest.fn(),
26
+ },
27
+ }));
28
+ const getMockLogger = () => logger_1.default;
29
+ const baseStyles = {
30
+ isBold: false,
31
+ IsItalic: false,
32
+ IsUnderline: false,
33
+ Size: 10,
34
+ Uri: null,
35
+ Font: 'Arial',
36
+ InsertLineBreak: false,
37
+ InsertSpace: true,
38
+ };
39
+ const baseHeaderStyles = {
40
+ isBold: true,
41
+ IsItalic: false,
42
+ IsUnderline: false,
43
+ Size: 12,
44
+ Uri: null,
45
+ Font: 'Arial',
46
+ InsertLineBreak: false,
47
+ InsertSpace: false,
48
+ };
49
+ describe('Skins – edge cases and public API', () => {
50
+ beforeEach(() => {
51
+ jest.clearAllMocks();
52
+ });
53
+ test('addNewContentToDocumentSkin throws and logs for unknown skinType', () => __awaiter(void 0, void 0, void 0, function* () {
54
+ const skins = new index_1.default('json', 'c://template.dotx');
55
+ yield expect(skins.addNewContentToDocumentSkin('section-1', 'unknown-type', [], baseHeaderStyles, baseStyles, 0)).rejects.toThrow('Unknown skinType : unknown-type - not appended to document skin');
56
+ expect(getMockLogger().error).toHaveBeenCalledWith(expect.stringContaining('Fatal error happened when generate skin for : section-1'));
57
+ }));
58
+ test('generateQueryBasedTable throws and logs for invalid skin format', () => {
59
+ const skins = new index_1.default('xml', 'c://template.dotx');
60
+ const queryData = [
61
+ {
62
+ url: '',
63
+ level: 0,
64
+ Source: 1,
65
+ fields: [
66
+ { name: 'ID', value: 1, width: '' },
67
+ { name: 'Title', value: 'Item 1', width: '' },
68
+ ],
69
+ },
70
+ ];
71
+ expect(() => skins.generateQueryBasedTable(queryData, baseHeaderStyles, baseStyles, 1)).toThrow('Invalid skin format xml');
72
+ expect(getMockLogger().error).toHaveBeenCalledWith(expect.stringContaining('Error occurred in generateQueryBasedTable: Invalid skin format xml'));
73
+ });
74
+ test('generateInstallationSkin returns empty array and warns when no data', () => {
75
+ const skins = new index_1.default('json', 'c://template.dotx');
76
+ const result = skins.generateInstallationSkin([], baseStyles);
77
+ expect(result).toEqual([]);
78
+ expect(getMockLogger().warn).toHaveBeenCalledWith('No installation data provided to generate skin');
79
+ });
80
+ test('generateInstallationSkin converts attachments to JSONFile skins', () => {
81
+ const skins = new index_1.default('json', 'c://template.dotx');
82
+ const installationData = [
83
+ {
84
+ attachment: {
85
+ attachmentLink: 'http://server/file.docx',
86
+ attachmentFileName: 'file.docx',
87
+ attachmentType: 'asEmbedded',
88
+ includeAttachmentContent: true,
89
+ },
90
+ },
91
+ {
92
+ attachment: {
93
+ attachmentLink: 'http://server/image.png',
94
+ attachmentFileName: 'image.png',
95
+ attachmentType: 'asEmbedded',
96
+ includeAttachmentContent: true,
97
+ },
98
+ },
99
+ ];
100
+ const result = skins.generateInstallationSkin(installationData, baseStyles);
101
+ expect(result).toHaveLength(2);
102
+ expect(result[0]).toMatchObject({
103
+ type: 'File',
104
+ path: 'http://server/file.docx',
105
+ name: 'file',
106
+ isLinkedFile: true,
107
+ includeAttachmentContent: false,
108
+ });
109
+ expect(result[1]).toMatchObject({
110
+ type: 'Picture',
111
+ path: 'http://server/image.png',
112
+ name: 'image',
113
+ });
114
+ });
115
+ test('generateTestReporter returns [] when no data', () => {
116
+ const skins = new index_1.default('json', 'c://template.dotx');
117
+ const result = skins.generateTestReporter([], 'My Test Plan');
118
+ expect(result).toEqual([]);
119
+ });
120
+ test('generateTestReporter wraps data and plan name', () => {
121
+ const skins = new index_1.default('json', 'c://template.dotx');
122
+ const data = [{ id: 1, name: 'Suite 1' }];
123
+ const result = skins.generateTestReporter(data, 'Plan-1');
124
+ expect(result).toHaveLength(1);
125
+ expect(result[0]).toEqual({
126
+ type: 'testReporter',
127
+ testPlanName: 'Plan-1',
128
+ testSuites: data,
129
+ });
130
+ });
131
+ test('generateTraceTable builds header paragraph and table with grouped header', () => {
132
+ const skins = new index_1.default('json', 'c://template.dotx');
133
+ const traceData = {
134
+ title: {
135
+ fields: [{ name: 'Title', value: 'Trace Report' }],
136
+ level: 2,
137
+ },
138
+ adoptedData: [
139
+ {
140
+ url: '',
141
+ level: 0,
142
+ Source: 1,
143
+ fields: [
144
+ { name: 'ID', value: 1 },
145
+ { name: 'Name', value: 'Item 1' },
146
+ ],
147
+ },
148
+ ],
149
+ errorMessage: null,
150
+ groupedHeader: {
151
+ leftLabel: 'Requirements',
152
+ rightLabel: 'Tests',
153
+ },
154
+ };
155
+ const result = skins.generateTraceTable(traceData, baseHeaderStyles, baseStyles, 1);
156
+ expect(result).toHaveLength(2);
157
+ expect(result[0]).toMatchObject({ type: 'paragraph' });
158
+ expect(result[1]).toMatchObject({ type: 'table' });
159
+ const table = result[1];
160
+ expect(Array.isArray(table.Rows)).toBe(true);
161
+ const groupedRow = table.Rows[0];
162
+ expect(Array.isArray(groupedRow.Cells)).toBe(true);
163
+ expect(groupedRow.Cells[0].gridSpan).toBeGreaterThan(0);
164
+ });
165
+ test('generateTraceTable falls back to error paragraph when no adoptedData but errorMessage exists', () => {
166
+ const skins = new index_1.default('json', 'c://template.dotx');
167
+ const traceData = {
168
+ title: null,
169
+ adoptedData: [],
170
+ errorMessage: 'Something went wrong',
171
+ groupedHeader: undefined,
172
+ };
173
+ const result = skins.generateTraceTable(traceData, baseHeaderStyles, baseStyles, 0);
174
+ expect(result).toHaveLength(1);
175
+ expect(result[0]).toMatchObject({ type: 'paragraph' });
176
+ });
177
+ test('generateQueryBasedParagraphs handles Description rich text and normal fields', () => {
178
+ const skins = new index_1.default('json', 'c://template.dotx');
179
+ const data = [
180
+ {
181
+ url: '',
182
+ level: 1,
183
+ Source: 42,
184
+ fields: [
185
+ { name: 'Description: ', value: '<p>Hello</p>' },
186
+ { name: 'Other', value: 'Value' },
187
+ ],
188
+ },
189
+ ];
190
+ const result = skins.generateQueryBasedParagraphs(data, baseStyles, 1);
191
+ expect(result.length).toBe(2);
192
+ expect(Array.isArray(result[0])).toBe(true);
193
+ expect(result[1].type).toBe('paragraph');
194
+ });
195
+ test('generateQueryBasedParagraphs throws and logs for invalid skin format', () => {
196
+ const skins = new index_1.default('xml', 'c://template.dotx');
197
+ const data = [];
198
+ expect(() => skins.generateQueryBasedParagraphs(data, baseStyles, 0)).toThrow('Invalid skin format xml');
199
+ expect(getMockLogger().error).toHaveBeenCalledWith(expect.stringContaining('Error occurred in generateQueryBasedParagraphs: Invalid skin format xml'));
200
+ });
201
+ test('validateAndAppendContentControl creates and appends content controls', () => __awaiter(void 0, void 0, void 0, function* () {
202
+ const skins = new index_1.default('json', 'c://template.dotx');
203
+ const firstSkin = [{ type: 'paragraph', runs: [] }];
204
+ const secondSkin = [{ type: 'paragraph', runs: [{ text: 'second' }] }];
205
+ const firstResult = yield skins.validateAndAppendContentControl('section-1', firstSkin);
206
+ expect(firstResult).toBe(true);
207
+ let documentSkin = skins.getDocumentSkin();
208
+ expect(documentSkin.contentControls).toHaveLength(1);
209
+ expect(documentSkin.contentControls[0].title).toBe('section-1');
210
+ expect(documentSkin.contentControls[0].wordObjects).toEqual(firstSkin);
211
+ const secondResult = yield skins.validateAndAppendContentControl('section-1', secondSkin);
212
+ expect(secondResult).toBe(true);
213
+ documentSkin = skins.getDocumentSkin();
214
+ expect(documentSkin.contentControls).toHaveLength(1);
215
+ expect(documentSkin.contentControls[0].wordObjects).toEqual([...firstSkin, ...secondSkin]);
216
+ }));
217
+ test('validateAndAppendContentControl logs error and returns undefined on failure', () => __awaiter(void 0, void 0, void 0, function* () {
218
+ const skins = new index_1.default('json', 'c://template.dotx');
219
+ const consoleSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
220
+ skins.documentSkin = null;
221
+ const result = yield skins.validateAndAppendContentControl('bad-section', []);
222
+ expect(result).toBeUndefined();
223
+ expect(getMockLogger().error).toHaveBeenCalledWith('Error validating and appending to content control');
224
+ consoleSpy.mockRestore();
225
+ }));
226
+ test('generateTestBasedSkin throws and logs when suites data is missing', () => {
227
+ const skins = new index_1.default('json', 'c://template.dotx');
228
+ expect(() => skins.generateTestBasedSkin(null, baseHeaderStyles, baseStyles)).toThrow('No data provided to generate test based skin');
229
+ expect(getMockLogger().error).toHaveBeenCalledWith(expect.stringContaining('One or more errors occurred in generateTestBasedSkin: No data provided to generate test based skin'));
230
+ });
231
+ test('generateTestBasedSkin throws and logs for invalid skin format', () => {
232
+ const skins = new index_1.default('xml', 'c://template.dotx');
233
+ const suites = [];
234
+ expect(() => skins.generateTestBasedSkin(suites, baseHeaderStyles, baseStyles)).toThrow('Invalid skin format xml');
235
+ expect(getMockLogger().error).toHaveBeenCalledWith(expect.stringContaining('One or more errors occurred in generateTestBasedSkin: Invalid skin format xml'));
236
+ });
237
+ test('generateTestBasedSkin returns empty array when suites array is empty', () => {
238
+ const skins = new index_1.default('json', 'c://template.dotx');
239
+ const result = skins.generateTestBasedSkin([], baseHeaderStyles, baseStyles);
240
+ expect(result).toEqual([]);
241
+ expect(getMockLogger().error).not.toHaveBeenCalled();
242
+ });
243
+ test('generateTestBasedSkin inserts page break between single-test suites', () => {
244
+ const skins = new index_1.default('json', 'c://template.dotx');
245
+ const suites = [
246
+ {
247
+ suiteSkinData: {
248
+ fields: [
249
+ { name: 'Title', value: 'Suite 1' },
250
+ { name: 'ID', value: 1 },
251
+ ],
252
+ level: 1,
253
+ },
254
+ testCases: [
255
+ {
256
+ id: 101,
257
+ testCaseHeaderSkinData: {
258
+ fields: [
259
+ { name: 'Title', value: 'TC-1' },
260
+ { name: 'ID', value: 101 },
261
+ { name: 'Description: ', value: '<p>desc 1</p>' },
262
+ ],
263
+ level: 1,
264
+ },
265
+ testCaseRequirements: [],
266
+ testCaseLinkedMom: [],
267
+ testCaseBugs: [],
268
+ testCaseStepsSkinData: [],
269
+ testCaseAttachments: [],
270
+ },
271
+ ],
272
+ },
273
+ {
274
+ suiteSkinData: {
275
+ fields: [
276
+ { name: 'Title', value: 'Suite 2' },
277
+ { name: 'ID', value: 2 },
278
+ ],
279
+ level: 1,
280
+ },
281
+ testCases: [
282
+ {
283
+ id: 201,
284
+ testCaseHeaderSkinData: {
285
+ fields: [
286
+ { name: 'Title', value: 'TC-2' },
287
+ { name: 'ID', value: 201 },
288
+ { name: 'Description: ', value: '<p>desc 2</p>' },
289
+ ],
290
+ level: 1,
291
+ },
292
+ testCaseRequirements: [],
293
+ testCaseLinkedMom: [],
294
+ testCaseBugs: [],
295
+ testCaseStepsSkinData: [],
296
+ testCaseAttachments: [],
297
+ },
298
+ ],
299
+ },
300
+ ];
301
+ const result = skins.generateTestBasedSkin(suites, baseHeaderStyles, baseStyles, 0);
302
+ const pageBreakParagraphs = result.filter((x) => { var _a; return x.type === 'paragraph' && ((_a = x.runs) === null || _a === void 0 ? void 0 : _a.some((r) => r.InsertPageBreak)); });
303
+ expect(pageBreakParagraphs.length).toBe(1);
304
+ });
305
+ test('generateTestBasedSkin in html mode logs info and returns undefined', () => {
306
+ const skins = new index_1.default('html', 'c://template.dotx');
307
+ const suites = [
308
+ {
309
+ suiteSkinData: {
310
+ fields: [
311
+ { name: 'Title', value: 'Suite' },
312
+ { name: 'ID', value: 1 },
313
+ ],
314
+ level: 1,
315
+ },
316
+ testCases: [],
317
+ },
318
+ ];
319
+ const result = skins.generateTestBasedSkin(suites, baseHeaderStyles, baseStyles, 0);
320
+ expect(result).toBeUndefined();
321
+ expect(getMockLogger().info).toHaveBeenCalledWith('Generating html test data!');
322
+ });
323
+ test('AppendAttachmentContent logs error and records aggregated error when attachment build fails', () => {
324
+ const skins = new index_1.default('json', 'c://template.dotx');
325
+ const aggregatedErrors = [];
326
+ const testSkin = [];
327
+ const data = [
328
+ {
329
+ type: 'SubHeader',
330
+ field: undefined,
331
+ },
332
+ ];
333
+ skins.AppendAttachmentContent(data, testSkin, aggregatedErrors);
334
+ expect(aggregatedErrors.length).toBeGreaterThan(0);
335
+ expect(getMockLogger().error).toHaveBeenCalledWith(expect.stringContaining('Error occurred when building attachments'));
336
+ });
337
+ test('generateQueryBasedTable in html mode logs info and returns empty array', () => {
338
+ const skins = new index_1.default('html', 'c://template.dotx');
339
+ const queryData = [
340
+ {
341
+ url: '',
342
+ level: 0,
343
+ Source: 1,
344
+ fields: [
345
+ { name: 'ID', value: 1 },
346
+ { name: 'Title', value: 'Item 1' },
347
+ ],
348
+ },
349
+ ];
350
+ const result = skins.generateQueryBasedTable(queryData, baseHeaderStyles, baseStyles, 1);
351
+ expect(result).toEqual([]);
352
+ expect(getMockLogger().info).toHaveBeenCalledWith('Generating html table!');
353
+ });
354
+ test('generateCoverPageParagraphs in html mode logs info and returns empty array', () => {
355
+ const skins = new index_1.default('html', 'c://template.dotx');
356
+ const data = [
357
+ {
358
+ url: '',
359
+ level: 0,
360
+ Source: 1,
361
+ fields: [{ name: 'Title', value: 'Cover' }],
362
+ },
363
+ ];
364
+ const result = skins.generateCoverPageParagraphs(data, baseStyles, 0);
365
+ expect(result).toEqual([]);
366
+ expect(getMockLogger().info).toHaveBeenCalledWith('Generating html cover-page paragraphs!');
367
+ });
368
+ test('generateQueryBasedParagraphs in html mode logs info and returns empty array', () => {
369
+ const skins = new index_1.default('html', 'c://template.dotx');
370
+ const data = [
371
+ {
372
+ url: '',
373
+ level: 0,
374
+ Source: 1,
375
+ fields: [{ name: 'Title', value: 'Paragraph' }],
376
+ },
377
+ ];
378
+ const result = skins.generateQueryBasedParagraphs(data, baseStyles, 0);
379
+ expect(result).toEqual([]);
380
+ expect(getMockLogger().info).toHaveBeenCalledWith('Generating html paragraphs!');
381
+ });
382
+ test('generateTraceTable in html mode logs info and returns empty array', () => {
383
+ const skins = new index_1.default('html', 'c://template.dotx');
384
+ const traceData = {
385
+ title: null,
386
+ adoptedData: [],
387
+ errorMessage: null,
388
+ groupedHeader: undefined,
389
+ };
390
+ const result = skins.generateTraceTable(traceData, baseHeaderStyles, baseStyles, 0);
391
+ expect(result).toEqual([]);
392
+ expect(getMockLogger().info).toHaveBeenCalledWith('Generating html table!');
393
+ });
394
+ test('JSONRichTextParagraph throws for invalid field', () => {
395
+ expect(() => new JSONRichTextParagraph_1.default(null, baseStyles, 1, 0)).toThrow('Invalid field or missing value');
396
+ expect(() => new JSONRichTextParagraph_1.default({ name: 'Description: ', value: '' }, baseStyles, 1, 0)).toThrow('Invalid field or missing value');
397
+ });
398
+ });
399
+ //# sourceMappingURL=SkinsEdgeCases.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkinsEdgeCases.test.js","sourceRoot":"","sources":["../../src/test/SkinsEdgeCases.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,qDAA6B;AAC7B,gEAAwC;AACxC,2GAAmF;AAEnF,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;KACjB;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,aAAa,GAAG,GAAG,EAAE,CACzB,gBAMC,CAAC;AAEJ,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,IAAqB;IAC1B,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,IAAqB;IAC1B,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kEAAkE,EAAE,GAAS,EAAE;QAClF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,MAAM,CACV,KAAK,CAAC,2BAA2B,CAC/B,WAAW,EACX,cAAc,EACd,EAAE,EACF,gBAAuB,EACvB,UAAiB,EACjB,CAAC,CACF,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC;QAErF,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CAAC,yDAAyD,CAAC,CACnF,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAC3E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG;YAChB;gBACE,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;oBACnC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;iBAC9C;aACF;SACF,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CACV,KAAK,CAAC,uBAAuB,CAAC,SAAgB,EAAE,gBAAuB,EAAE,UAAiB,EAAE,CAAC,CAAC,CAC/F,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAErC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CAAC,oEAAoE,CAAC,CAC9F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC/E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAiB,CAAC,CAAC;QAErE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,gDAAgD,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAC3E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,gBAAgB,GAAG;YACvB;gBACE,UAAU,EAAE;oBACV,cAAc,EAAE,yBAAyB;oBACzC,kBAAkB,EAAE,WAAW;oBAC/B,cAAc,EAAE,YAAY;oBAC5B,wBAAwB,EAAE,IAAI;iBAC/B;aACF;YACD;gBACE,UAAU,EAAE;oBACV,cAAc,EAAE,yBAAyB;oBACzC,kBAAkB,EAAE,WAAW;oBAC/B,cAAc,EAAE,YAAY;oBAC5B,wBAAwB,EAAE,IAAI;iBAC/B;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC,gBAAuB,EAAE,UAAiB,CAAC,CAAC;QAE1F,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,IAAI;YAClB,wBAAwB,EAAE,KAAK;SAChC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAW,EAAE,QAAQ,CAAC,CAAC;QAEjE,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0EAA0E,EAAE,GAAG,EAAE;QACpF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE;gBACL,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;gBAClD,KAAK,EAAE,CAAC;aACT;YACD,WAAW,EAAE;gBACX;oBACE,GAAG,EAAE,EAAE;oBACP,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;wBACxB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;qBAClC;iBACF;aACF;YACD,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE;gBACb,SAAS,EAAE,cAAc;gBACzB,UAAU,EAAE,OAAO;aACpB;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,SAAgB,EAAE,gBAAuB,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAEzG,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnD,MAAM,KAAK,GAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8FAA8F,EAAE,GAAG,EAAE;QACxG,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,sBAAsB;YACpC,aAAa,EAAE,SAAS;SACzB,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,SAAgB,EAAE,gBAAuB,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAEzG,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACxF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACX;gBACE,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE;oBAChD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;iBAClC;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,4BAA4B,CAAC,IAAW,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAErF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAE,MAAM,CAAC,CAAC,CAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAChF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAU,EAAE,CAAC;QAEvB,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,IAAW,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACzF,yBAAyB,CAC1B,CAAC;QAEF,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CAAC,yEAAyE,CAAC,CACnG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sEAAsE,EAAE,GAAS,EAAE;QACtF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACxF,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEvE,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC1F,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QACvC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,6EAA6E,EAAE,GAAS,EAAE;QAC7F,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE1E,KAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAE9E,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,mDAAmD,CAAC,CAAC;QAExG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC7E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,CAAC,GAAG,EAAE,CACV,KAAK,CAAC,qBAAqB,CAAC,IAAW,EAAE,gBAAuB,EAAE,UAAiB,CAAC,CACrF,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAE1D,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CACrB,oGAAoG,CACrG,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACzE,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,MAAM,CAAC,GAAG,EAAE,CACV,KAAK,CAAC,qBAAqB,CAAC,MAAa,EAAE,gBAAuB,EAAE,UAAiB,CAAC,CACvF,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAErC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CAAC,+EAA+E,CAAC,CACzG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAChF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,EAAE,EAAE,gBAAuB,EAAE,UAAiB,CAAC,CAAC;QAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC/E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG;YACb;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;qBACzB;oBACD,KAAK,EAAE,CAAC;iBACT;gBACD,SAAS,EAAE;oBACT;wBACE,EAAE,EAAE,GAAG;wBACP,sBAAsB,EAAE;4BACtB,MAAM,EAAE;gCACN,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;gCAChC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;gCAC1B,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;6BAClD;4BACD,KAAK,EAAE,CAAC;yBACT;wBACD,oBAAoB,EAAE,EAAE;wBACxB,iBAAiB,EAAE,EAAE;wBACrB,YAAY,EAAE,EAAE;wBAChB,qBAAqB,EAAE,EAAE;wBACzB,mBAAmB,EAAE,EAAE;qBACxB;iBACF;aACF;YACD;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;qBACzB;oBACD,KAAK,EAAE,CAAC;iBACT;gBACD,SAAS,EAAE;oBACT;wBACE,EAAE,EAAE,GAAG;wBACP,sBAAsB,EAAE;4BACtB,MAAM,EAAE;gCACN,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;gCAChC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;gCAC1B,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;6BAClD;4BACD,KAAK,EAAE,CAAC;yBACT;wBACD,oBAAoB,EAAE,EAAE;wBACxB,iBAAiB,EAAE,EAAE;wBACrB,YAAY,EAAE,EAAE;wBAChB,qBAAqB,EAAE,EAAE;wBACzB,mBAAmB,EAAE,EAAE;qBACxB;iBACF;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAa,EAAE,gBAAuB,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAEzG,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CACvC,CAAC,CAAM,EAAE,EAAE,WAAC,OAAA,CAAC,CAAC,IAAI,KAAK,WAAW,KAAI,MAAA,CAAC,CAAC,IAAI,0CAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA,CAAA,EAAA,CAClF,CAAC;QAEF,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC9E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG;YACb;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBACjC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;qBACzB;oBACD,KAAK,EAAE,CAAC;iBACT;gBACD,SAAS,EAAE,EAAE;aACd;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,MAAa,EAAE,gBAAuB,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAEzG,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACvG,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,MAAM,IAAI,GAAG;YACX;gBACE,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,SAAS;aACjB;SACF,CAAC;QAED,KAAa,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAEzE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAClF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG;YAChB;gBACE,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;iBACnC;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,uBAAuB,CAC1C,SAAgB,EAChB,gBAAuB,EACvB,UAAiB,EACjB,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACtF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACX;gBACE,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aAC5C;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,2BAA2B,CAAC,IAAW,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAEpF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,wCAAwC,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACvF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACX;gBACE,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;aAChD;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,4BAA4B,CAAC,IAAW,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAErF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC7E,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,SAAS;SACzB,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,SAAgB,EAAE,gBAAuB,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;QAEzG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,+BAAqB,CAAC,IAAW,EAAE,UAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACnF,gCAAgC,CACjC,CAAC;QAEF,MAAM,CACJ,GAAG,EAAE,CAAC,IAAI,+BAAqB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAS,EAAE,UAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CACtG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};