@mdzip/editor 1.2.5 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -0
- package/README.md +38 -0
- package/dist/rendering.d.ts.map +1 -1
- package/dist/rendering.js +21 -2
- package/dist/rendering.js.map +1 -1
- package/dist/view-css.d.ts.map +1 -1
- package/dist/view-css.js +154 -4
- package/dist/view-css.js.map +1 -1
- package/dist/view.d.ts +105 -6
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +873 -67
- package/dist/view.js.map +1 -1
- package/dist/workspace.d.ts +63 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +369 -9
- package/dist/workspace.js.map +1 -1
- package/package.json +7 -4
package/dist/workspace.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MdzArchiveCore, MdzPackagerCore } from '@mdzip/core-js';
|
|
2
|
-
import { buildNewArchiveBytesWithTitle, blobToBytes, openedArchiveFromWorkspace, readBinaryFileFromArchive } from './archive-utils.js';
|
|
2
|
+
import { buildNewArchiveBytesWithTitle, blobToBytes, findOrphanedAssetPathsInArchive, openedArchiveFromWorkspace, readBinaryFileFromArchive } from './archive-utils.js';
|
|
3
3
|
import { displayTitleFromManifest, fileBaseNameFromPath, firstMarkdownHeading, suggestedTitleFromMarkdown } from './metadata.js';
|
|
4
4
|
export class MdzipReadOnlyError extends Error {
|
|
5
5
|
constructor(operation) {
|
|
@@ -15,6 +15,12 @@ export class MdzipWorkspaceService {
|
|
|
15
15
|
this.currentPathTypeValue = 'markdown';
|
|
16
16
|
this.dirtyValue = false;
|
|
17
17
|
this.pendingTextDirty = false;
|
|
18
|
+
// Ledger of entry-level changes not yet written to archiveBytes. Lets
|
|
19
|
+
// serializeWorkspaceBytes() patch the existing archive in place instead of
|
|
20
|
+
// rebuilding it from the workspace model (which would force every lazy
|
|
21
|
+
// document to be decompressed and recompressed).
|
|
22
|
+
this.pendingWrites = new Map();
|
|
23
|
+
this.pendingRemovals = new Map();
|
|
18
24
|
// Orphaned paths derived from the current in-memory text; null means use contentValue.
|
|
19
25
|
this.liveOrphanedPaths = null;
|
|
20
26
|
this.archiveBytes = bytes;
|
|
@@ -38,14 +44,16 @@ export class MdzipWorkspaceService {
|
|
|
38
44
|
const title = suggestedTitleFromMarkdown(markdown, fileBaseNameFromPath(resolvedOptions.fileName));
|
|
39
45
|
const archiveBytes = await buildNewArchiveBytesWithTitle(markdown, title);
|
|
40
46
|
const coreWorkspace = await MdzArchiveCore.openWorkspace(archiveBytes, {
|
|
41
|
-
includeOrphanedAssetAnalysis:
|
|
47
|
+
includeOrphanedAssetAnalysis: false,
|
|
48
|
+
includeLazyDocumentReaders: true
|
|
42
49
|
});
|
|
43
50
|
const workspace = new MdzipWorkspaceService(archiveBytes, coreWorkspace, await openedArchiveFromWorkspace(coreWorkspace), resolvedOptions);
|
|
44
51
|
workspace.currentTextValue = markdown;
|
|
45
52
|
return workspace;
|
|
46
53
|
}
|
|
47
54
|
const coreWorkspace = await MdzArchiveCore.openWorkspace(bytes, {
|
|
48
|
-
includeOrphanedAssetAnalysis:
|
|
55
|
+
includeOrphanedAssetAnalysis: false,
|
|
56
|
+
includeLazyDocumentReaders: true
|
|
49
57
|
});
|
|
50
58
|
return new MdzipWorkspaceService(bytes, coreWorkspace, await openedArchiveFromWorkspace(coreWorkspace), resolvedOptions);
|
|
51
59
|
}
|
|
@@ -55,7 +63,7 @@ export class MdzipWorkspaceService {
|
|
|
55
63
|
sourceFormat: options.sourceFormat ?? 'mdz',
|
|
56
64
|
fileName: options.fileName ?? 'document.mdz'
|
|
57
65
|
};
|
|
58
|
-
return new MdzipWorkspaceService(new Uint8Array(), workspace, await openedArchiveFromWorkspace(workspace), resolvedOptions);
|
|
66
|
+
return new MdzipWorkspaceService(options.archiveBytes ?? new Uint8Array(), workspace, await openedArchiveFromWorkspace(workspace), resolvedOptions);
|
|
59
67
|
}
|
|
60
68
|
subscribe(listener) {
|
|
61
69
|
this.listeners.add(listener);
|
|
@@ -200,6 +208,7 @@ export class MdzipWorkspaceService {
|
|
|
200
208
|
this.commitPendingTextToWorkspace();
|
|
201
209
|
const asset = await MdzPackagerCore.createWorkspaceAssetFromFile(fileBytes, archivePath);
|
|
202
210
|
this.upsertWorkspaceAsset(asset);
|
|
211
|
+
this.recordPendingWrite(archivePath, fileBytes);
|
|
203
212
|
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes());
|
|
204
213
|
this.dirtyValue = true;
|
|
205
214
|
this.emit('edit', ['asset'], archivePath);
|
|
@@ -220,20 +229,187 @@ export class MdzipWorkspaceService {
|
|
|
220
229
|
}
|
|
221
230
|
this.commitPendingTextToWorkspace();
|
|
222
231
|
if (options.requireOrphaned) {
|
|
223
|
-
const orphaned = this.
|
|
232
|
+
const orphaned = this.liveOrphanedPaths
|
|
233
|
+
?? this.workspaceValue.orphanedAssets?.orphanedAssetPaths
|
|
234
|
+
?? this.contentValue.orphanedAssetPaths;
|
|
224
235
|
if (!new Set(orphaned.map((path) => path.toLowerCase())).has(target.path.toLowerCase())) {
|
|
225
236
|
return false;
|
|
226
237
|
}
|
|
227
238
|
}
|
|
228
239
|
this.workspaceValue.assets = this.workspaceValue.assets.filter((asset) => asset.path.toLowerCase() !== target.path.toLowerCase());
|
|
240
|
+
this.recordPendingRemoval(target.path);
|
|
229
241
|
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes(), target.path);
|
|
230
242
|
this.dirtyValue = true;
|
|
231
243
|
this.emit('edit', ['asset'], target.path);
|
|
232
244
|
return true;
|
|
233
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Removes any deletable file from the archive: assets (like `removeAsset`)
|
|
248
|
+
* and non-entry markdown documents. The entry-point document and
|
|
249
|
+
* `manifest.json` are never removable; returns `false` for those.
|
|
250
|
+
*/
|
|
251
|
+
async removeFile(archivePath) {
|
|
252
|
+
this.assertEditable('remove file');
|
|
253
|
+
const target = this.findPath(archivePath);
|
|
254
|
+
if (!target) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
const lower = target.path.toLowerCase();
|
|
258
|
+
if (lower === 'manifest.json') {
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
const document = this.workspaceValue.documents.find((doc) => doc.path.toLowerCase() === lower);
|
|
262
|
+
if (!document) {
|
|
263
|
+
return this.removeAsset(target.path);
|
|
264
|
+
}
|
|
265
|
+
if (lower === this.entryPointPath().toLowerCase()) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
this.commitPendingTextToWorkspace();
|
|
269
|
+
this.workspaceValue.documents = this.workspaceValue.documents.filter((doc) => doc !== document);
|
|
270
|
+
this.recordPendingRemoval(target.path);
|
|
271
|
+
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes(), target.path);
|
|
272
|
+
this.dirtyValue = true;
|
|
273
|
+
this.emit('edit', ['document'], target.path);
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Makes an existing markdown document the archive entry point. Updates the
|
|
278
|
+
* manifest (`entryPoint`) and the in-memory workspace model, then reloads.
|
|
279
|
+
* Returns `false` when the path is not a document or is already the entry.
|
|
280
|
+
*/
|
|
281
|
+
async setEntryPoint(archivePath) {
|
|
282
|
+
this.assertEditable('set entry point');
|
|
283
|
+
if (this.sourceFormatValue !== 'mdz') {
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
const document = this.workspaceValue.documents.find((doc) => doc.path.toLowerCase() === archivePath.toLowerCase());
|
|
287
|
+
if (!document || document.path.toLowerCase() === this.entryPointPath().toLowerCase()) {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
this.commitPendingTextToWorkspace();
|
|
291
|
+
for (const doc of this.workspaceValue.documents) {
|
|
292
|
+
doc.isEntryPoint = doc === document;
|
|
293
|
+
}
|
|
294
|
+
this.workspaceValue.entryPoint = document.path;
|
|
295
|
+
this.workspaceValue.manifest = MdzPackagerCore.updateManifest(this.workspaceValue.manifest, { entryPoint: document.path });
|
|
296
|
+
if (this.archiveBytes.length > 0) {
|
|
297
|
+
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes());
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
// No bytes to patch (openWorkspace host) — keep the change in memory,
|
|
301
|
+
// mirroring setManifestTitle, so lazy documents are not all resolved.
|
|
302
|
+
const entryBytes = await this.readWorkspacePathBytes(document.path);
|
|
303
|
+
this.contentValue = {
|
|
304
|
+
...this.contentValue,
|
|
305
|
+
manifest: this.workspaceValue.manifest,
|
|
306
|
+
entryPoint: document.path,
|
|
307
|
+
markdownText: entryBytes ? new TextDecoder('utf-8').decode(entryBytes) : ''
|
|
308
|
+
};
|
|
309
|
+
this.liveOrphanedPaths = null;
|
|
310
|
+
}
|
|
311
|
+
this.dirtyValue = true;
|
|
312
|
+
this.emit('edit', ['manifest'], 'manifest.json');
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Renames (or moves, when the directory part changes) a file inside the
|
|
317
|
+
* archive. Markdown references to the file — and the file's own relative
|
|
318
|
+
* references when it is a moved document — are rewritten best-effort.
|
|
319
|
+
* Returns `false` on unknown source, invalid target, or collision.
|
|
320
|
+
*/
|
|
321
|
+
async renameFile(oldPath, newPath) {
|
|
322
|
+
this.assertEditable('rename file');
|
|
323
|
+
if (this.sourceFormatValue !== 'mdz') {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
const target = this.findPath(oldPath);
|
|
327
|
+
const normalized = normalizeArchivePath(newPath);
|
|
328
|
+
if (!target || !normalized
|
|
329
|
+
|| target.path.toLowerCase() === 'manifest.json'
|
|
330
|
+
|| normalized.toLowerCase() === 'manifest.json') {
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
333
|
+
if (normalized === target.path) {
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
if (normalized.toLowerCase() !== target.path.toLowerCase() && this.findPath(normalized)) {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
this.commitPendingTextToWorkspace();
|
|
340
|
+
const bytes = await this.readWorkspacePathBytes(target.path);
|
|
341
|
+
if (!bytes) {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
this.recordPendingRemoval(target.path);
|
|
345
|
+
this.recordPendingWrite(normalized, bytes);
|
|
346
|
+
const document = this.workspaceValue.documents.find((doc) => doc.path.toLowerCase() === target.path.toLowerCase());
|
|
347
|
+
const asset = this.workspaceValue.assets.find((item) => item.path.toLowerCase() === target.path.toLowerCase());
|
|
348
|
+
if (document) {
|
|
349
|
+
document.path = normalized;
|
|
350
|
+
}
|
|
351
|
+
else if (asset) {
|
|
352
|
+
asset.path = normalized;
|
|
353
|
+
}
|
|
354
|
+
if (this.entryPointPath().toLowerCase() === target.path.toLowerCase()) {
|
|
355
|
+
this.workspaceValue.entryPoint = normalized;
|
|
356
|
+
this.workspaceValue.manifest = MdzPackagerCore.updateManifest(this.workspaceValue.manifest, { entryPoint: normalized });
|
|
357
|
+
}
|
|
358
|
+
if (this.currentPathValue.toLowerCase() === target.path.toLowerCase()) {
|
|
359
|
+
this.currentPathValue = normalized;
|
|
360
|
+
}
|
|
361
|
+
await this.rewriteReferencesForRename(target.path, normalized);
|
|
362
|
+
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes());
|
|
363
|
+
this.dirtyValue = true;
|
|
364
|
+
this.emit('edit', document ? ['document'] : ['asset'], normalized);
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Sets (or clears, with `null`) the manifest `cover` field. The path must
|
|
369
|
+
* resolve to an existing image asset.
|
|
370
|
+
*/
|
|
371
|
+
async setCoverImage(archivePath) {
|
|
372
|
+
this.assertEditable('set cover image');
|
|
373
|
+
if (this.sourceFormatValue !== 'mdz') {
|
|
374
|
+
return false;
|
|
375
|
+
}
|
|
376
|
+
let coverPath = null;
|
|
377
|
+
if (archivePath !== null) {
|
|
378
|
+
const target = this.findPath(archivePath);
|
|
379
|
+
if (!target || !target.isImage) {
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
coverPath = target.path;
|
|
383
|
+
}
|
|
384
|
+
this.commitPendingTextToWorkspace();
|
|
385
|
+
this.workspaceValue.manifest = MdzPackagerCore.updateManifest(this.workspaceValue.manifest, { cover: coverPath });
|
|
386
|
+
if (this.archiveBytes.length > 0) {
|
|
387
|
+
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes());
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
this.contentValue = { ...this.contentValue, manifest: this.workspaceValue.manifest };
|
|
391
|
+
}
|
|
392
|
+
this.dirtyValue = true;
|
|
393
|
+
this.emit('edit', ['manifest'], 'manifest.json');
|
|
394
|
+
return true;
|
|
395
|
+
}
|
|
234
396
|
listAssets() {
|
|
235
397
|
return this.workspaceValue.assets.slice();
|
|
236
398
|
}
|
|
399
|
+
async ensureOrphanedAssetsAnalyzed() {
|
|
400
|
+
if (this.liveOrphanedPaths !== null) {
|
|
401
|
+
return false;
|
|
402
|
+
}
|
|
403
|
+
if (this.sourceFormatValue === 'markdown') {
|
|
404
|
+
this.liveOrphanedPaths = [];
|
|
405
|
+
return false;
|
|
406
|
+
}
|
|
407
|
+
const bytes = this.archiveBytes.length > 0
|
|
408
|
+
? this.archiveBytes
|
|
409
|
+
: await this.serializeWorkspaceBytes();
|
|
410
|
+
this.liveOrphanedPaths = await findOrphanedAssetPathsInArchive(bytes);
|
|
411
|
+
return true;
|
|
412
|
+
}
|
|
237
413
|
/**
|
|
238
414
|
* Embeds a pasted image into the current `.mdz` document and rebuilds the archive.
|
|
239
415
|
*
|
|
@@ -264,6 +440,7 @@ export class MdzipWorkspaceService {
|
|
|
264
440
|
this.currentTextValue = text;
|
|
265
441
|
this.commitPendingTextToWorkspace();
|
|
266
442
|
this.upsertWorkspaceAsset(await MdzPackagerCore.createWorkspaceAssetFromFile(options.bytes, archivePath));
|
|
443
|
+
this.recordPendingWrite(archivePath, options.bytes);
|
|
267
444
|
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes());
|
|
268
445
|
this.dirtyValue = true;
|
|
269
446
|
this.emit('edit', ['document', 'asset'], archivePath);
|
|
@@ -275,12 +452,32 @@ export class MdzipWorkspaceService {
|
|
|
275
452
|
cursor
|
|
276
453
|
};
|
|
277
454
|
}
|
|
455
|
+
/**
|
|
456
|
+
* Sets the manifest title.
|
|
457
|
+
*
|
|
458
|
+
* When archive bytes are available the manifest entry is patched into them
|
|
459
|
+
* incrementally (no document is read). When the workspace was opened via
|
|
460
|
+
* `openWorkspace` without `archiveBytes`, no archive is built at all: the
|
|
461
|
+
* manifest changes in memory only and is included whenever bytes are next
|
|
462
|
+
* serialized (`saveToBytes`, `exportBytes`, `flush`). Hosts holding the real
|
|
463
|
+
* archive bytes natively can instead apply the change themselves from the
|
|
464
|
+
* `['manifest']` change event — see `onManifestChanged` in the view options.
|
|
465
|
+
*/
|
|
278
466
|
async setManifestTitle(newTitle) {
|
|
279
467
|
this.assertEditable('set manifest title');
|
|
280
468
|
this.commitPendingTextToWorkspace();
|
|
281
469
|
this.workspaceValue.manifest = MdzPackagerCore.updateManifest(this.workspaceValue.manifest, { title: newTitle });
|
|
282
470
|
this.workspaceValue.title = newTitle;
|
|
283
|
-
|
|
471
|
+
if (this.archiveBytes.length > 0) {
|
|
472
|
+
await this.reloadPreservingCurrentText(await this.serializeWorkspaceBytes());
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
// No bytes to patch. A full buildWorkspace() here would resolve every
|
|
476
|
+
// lazy document (a webview round-trip per document in serialized-
|
|
477
|
+
// workspace hosts). Keep the change in memory; it is picked up by the
|
|
478
|
+
// next serialization.
|
|
479
|
+
this.contentValue = { ...this.contentValue, manifest: this.workspaceValue.manifest };
|
|
480
|
+
}
|
|
284
481
|
this.dirtyValue = true;
|
|
285
482
|
this.emit('edit', ['manifest'], 'manifest.json');
|
|
286
483
|
}
|
|
@@ -337,13 +534,15 @@ export class MdzipWorkspaceService {
|
|
|
337
534
|
async reload(bytes) {
|
|
338
535
|
this.archiveBytes = bytes;
|
|
339
536
|
this.workspaceValue = await MdzArchiveCore.openWorkspace(bytes, {
|
|
340
|
-
includeOrphanedAssetAnalysis:
|
|
537
|
+
includeOrphanedAssetAnalysis: false,
|
|
538
|
+
includeLazyDocumentReaders: true
|
|
341
539
|
});
|
|
342
540
|
this.contentValue = await openedArchiveFromWorkspace(this.workspaceValue);
|
|
343
541
|
this.currentTextValue = this.contentValue.markdownText;
|
|
344
542
|
this.currentPathValue = this.contentValue.entryPoint;
|
|
345
543
|
this.currentPathTypeValue = 'markdown';
|
|
346
544
|
this.liveOrphanedPaths = null;
|
|
545
|
+
this.clearPendingChanges();
|
|
347
546
|
}
|
|
348
547
|
async reloadPreservingCurrentText(bytes, removedPath) {
|
|
349
548
|
const currentText = this.currentTextValue;
|
|
@@ -351,11 +550,12 @@ export class MdzipWorkspaceService {
|
|
|
351
550
|
const currentPathType = this.currentPathTypeValue;
|
|
352
551
|
this.archiveBytes = bytes;
|
|
353
552
|
this.workspaceValue = await MdzArchiveCore.openWorkspace(bytes, {
|
|
354
|
-
includeOrphanedAssetAnalysis:
|
|
553
|
+
includeOrphanedAssetAnalysis: false,
|
|
554
|
+
includeLazyDocumentReaders: true
|
|
355
555
|
});
|
|
356
556
|
this.contentValue = await openedArchiveFromWorkspace(this.workspaceValue);
|
|
357
557
|
this.liveOrphanedPaths = null;
|
|
358
|
-
this.
|
|
558
|
+
this.clearPendingChanges();
|
|
359
559
|
if (removedPath && currentPath.toLowerCase() === removedPath.toLowerCase()) {
|
|
360
560
|
this.currentTextValue = this.contentValue.markdownText;
|
|
361
561
|
this.currentPathValue = this.contentValue.entryPoint;
|
|
@@ -369,6 +569,52 @@ export class MdzipWorkspaceService {
|
|
|
369
569
|
findPath(archivePath) {
|
|
370
570
|
return this.contentValue.paths.find((entry) => entry.path.toLowerCase() === archivePath.toLowerCase());
|
|
371
571
|
}
|
|
572
|
+
entryPointPath() {
|
|
573
|
+
return this.workspaceValue.entryPoint ?? this.contentValue.entryPoint;
|
|
574
|
+
}
|
|
575
|
+
// Rewrites markdown links/images across all documents after a rename so they
|
|
576
|
+
// still resolve: refs that pointed at oldPath now point at newPath, and the
|
|
577
|
+
// moved document's own relative refs are re-based to its new directory.
|
|
578
|
+
// Only refs that resolve to a known archive path are touched.
|
|
579
|
+
async rewriteReferencesForRename(oldPath, newPath) {
|
|
580
|
+
const oldLower = oldPath.toLowerCase();
|
|
581
|
+
const knownPaths = new Set(this.contentValue.paths.map((entry) => entry.path.toLowerCase()));
|
|
582
|
+
for (const doc of this.workspaceValue.documents) {
|
|
583
|
+
const wasRenamedDoc = doc.path.toLowerCase() === newPath.toLowerCase();
|
|
584
|
+
// Refs were authored relative to the document's pre-rename location.
|
|
585
|
+
const authoredDir = archiveDirName(wasRenamedDoc ? oldPath : doc.path);
|
|
586
|
+
const currentDir = archiveDirName(doc.path);
|
|
587
|
+
if (!wasRenamedDoc && doc.isLazy && !doc.text && !doc.readText) {
|
|
588
|
+
continue; // unreadable lazy doc; leave as-is rather than throwing
|
|
589
|
+
}
|
|
590
|
+
let text = doc.text;
|
|
591
|
+
if (doc.readText && !text) {
|
|
592
|
+
text = await doc.readText();
|
|
593
|
+
}
|
|
594
|
+
if (!text) {
|
|
595
|
+
continue;
|
|
596
|
+
}
|
|
597
|
+
const rewritten = rewriteArchiveRefs(text, (ref) => {
|
|
598
|
+
const resolved = resolveArchiveRef(ref, authoredDir);
|
|
599
|
+
const targetLower = resolved.toLowerCase();
|
|
600
|
+
if (targetLower !== oldLower && !knownPaths.has(targetLower)) {
|
|
601
|
+
return null;
|
|
602
|
+
}
|
|
603
|
+
const finalTarget = targetLower === oldLower ? newPath : resolved;
|
|
604
|
+
const next = relativeArchivePath(currentDir, finalTarget);
|
|
605
|
+
return next === ref ? null : next;
|
|
606
|
+
});
|
|
607
|
+
if (rewritten !== text) {
|
|
608
|
+
doc.text = rewritten;
|
|
609
|
+
delete doc.readText;
|
|
610
|
+
delete doc.isLazy;
|
|
611
|
+
this.recordPendingWrite(doc.path, rewritten);
|
|
612
|
+
if (doc.path.toLowerCase() === this.currentPathValue.toLowerCase()) {
|
|
613
|
+
this.currentTextValue = rewritten;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
372
618
|
commitPendingTextToWorkspace() {
|
|
373
619
|
if (!isEditableTextPath(this.currentPathTypeValue, this.currentPathValue)) {
|
|
374
620
|
return;
|
|
@@ -377,6 +623,9 @@ export class MdzipWorkspaceService {
|
|
|
377
623
|
if (document) {
|
|
378
624
|
if (document.text !== this.currentTextValue) {
|
|
379
625
|
document.text = this.currentTextValue;
|
|
626
|
+
delete document.readText;
|
|
627
|
+
delete document.isLazy;
|
|
628
|
+
this.recordPendingWrite(document.path, this.currentTextValue);
|
|
380
629
|
this.pendingTextDirty = true;
|
|
381
630
|
}
|
|
382
631
|
return;
|
|
@@ -390,11 +639,34 @@ export class MdzipWorkspaceService {
|
|
|
390
639
|
asset.byteSize = newByteSize;
|
|
391
640
|
delete asset.readBytes;
|
|
392
641
|
delete asset.readDataUri;
|
|
642
|
+
this.recordPendingWrite(asset.path, bytes);
|
|
393
643
|
this.pendingTextDirty = true;
|
|
394
644
|
}
|
|
395
645
|
}
|
|
396
646
|
}
|
|
647
|
+
recordPendingWrite(archivePath, content) {
|
|
648
|
+
const lower = archivePath.toLowerCase();
|
|
649
|
+
this.pendingRemovals.delete(lower);
|
|
650
|
+
this.pendingWrites.set(lower, { path: archivePath, content });
|
|
651
|
+
}
|
|
652
|
+
recordPendingRemoval(archivePath) {
|
|
653
|
+
const lower = archivePath.toLowerCase();
|
|
654
|
+
this.pendingWrites.delete(lower);
|
|
655
|
+
this.pendingRemovals.set(lower, archivePath);
|
|
656
|
+
}
|
|
657
|
+
clearPendingChanges() {
|
|
658
|
+
this.pendingWrites.clear();
|
|
659
|
+
this.pendingRemovals.clear();
|
|
660
|
+
this.pendingTextDirty = false;
|
|
661
|
+
}
|
|
397
662
|
async serializeWorkspaceBytes() {
|
|
663
|
+
// Patch the existing archive when we have its bytes: unchanged entries are
|
|
664
|
+
// copied verbatim, so large archives serialize in milliseconds instead of
|
|
665
|
+
// decompressing and recompressing every document.
|
|
666
|
+
if (this.archiveBytes.length > 0) {
|
|
667
|
+
const result = await MdzArchiveCore.updateFiles(this.archiveBytes, [...this.pendingWrites.values()].map((write) => ({ path: write.path, content: write.content })), [...this.pendingRemovals.values()], { manifest: this.workspaceValue.manifest });
|
|
668
|
+
return blobToBytes(result.blob);
|
|
669
|
+
}
|
|
398
670
|
return blobToBytes((await MdzPackagerCore.buildWorkspace(this.workspaceValue)).blob);
|
|
399
671
|
}
|
|
400
672
|
upsertWorkspaceAsset(asset) {
|
|
@@ -410,6 +682,14 @@ export class MdzipWorkspaceService {
|
|
|
410
682
|
}
|
|
411
683
|
const document = this.workspaceValue.documents.find((doc) => doc.path.toLowerCase() === archivePath.toLowerCase());
|
|
412
684
|
if (document) {
|
|
685
|
+
if (document.readText && !document.text) {
|
|
686
|
+
document.text = await document.readText();
|
|
687
|
+
delete document.readText;
|
|
688
|
+
delete document.isLazy;
|
|
689
|
+
}
|
|
690
|
+
else if (document.isLazy && !document.text) {
|
|
691
|
+
throw new Error(`ERR_LAZY_TEXT_UNAVAILABLE: document "${document.path}" was opened lazily but its readText() reader is missing — likely dropped by a serialization boundary (e.g. postMessage). Materialize document text before serializing the workspace, or rehydrate readText on the receiving side.`);
|
|
692
|
+
}
|
|
413
693
|
return new TextEncoder().encode(document.text);
|
|
414
694
|
}
|
|
415
695
|
const asset = this.workspaceValue.assets.find((item) => item.path.toLowerCase() === archivePath.toLowerCase());
|
|
@@ -474,6 +754,86 @@ function referencedImagePaths(markdown, baseDir) {
|
|
|
474
754
|
}
|
|
475
755
|
return refs;
|
|
476
756
|
}
|
|
757
|
+
function archiveDirName(path) {
|
|
758
|
+
return path.includes('/') ? path.slice(0, path.lastIndexOf('/')) : '';
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* Normalizes a user-supplied archive path: backslashes to slashes, collapsed
|
|
762
|
+
* separators, no leading/trailing slash. Returns `null` when the result is
|
|
763
|
+
* empty or contains `.`/`..` segments.
|
|
764
|
+
*/
|
|
765
|
+
export function normalizeArchivePath(path) {
|
|
766
|
+
const segments = path.trim().replace(/\\/g, '/').split('/')
|
|
767
|
+
.map((segment) => segment.trim())
|
|
768
|
+
.filter((segment) => segment.length > 0);
|
|
769
|
+
if (segments.length === 0 || segments.some((segment) => segment === '.' || segment === '..')) {
|
|
770
|
+
return null;
|
|
771
|
+
}
|
|
772
|
+
return segments.join('/');
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Builds the relative markdown reference from a directory (`''` = archive
|
|
776
|
+
* root) to an archive path, using `../` segments where needed.
|
|
777
|
+
*/
|
|
778
|
+
export function relativeArchivePath(fromDir, toPath) {
|
|
779
|
+
const fromParts = fromDir.split('/').filter(Boolean);
|
|
780
|
+
const toParts = toPath.split('/').filter(Boolean);
|
|
781
|
+
const toDir = toParts.slice(0, -1);
|
|
782
|
+
let common = 0;
|
|
783
|
+
while (common < fromParts.length && common < toDir.length && fromParts[common] === toDir[common]) {
|
|
784
|
+
common += 1;
|
|
785
|
+
}
|
|
786
|
+
return '../'.repeat(fromParts.length - common) + toParts.slice(common).join('/');
|
|
787
|
+
}
|
|
788
|
+
// Resolves a markdown ref against a base directory, handling ./ and ../ and
|
|
789
|
+
// leading-slash (archive-root) refs.
|
|
790
|
+
function resolveArchiveRef(ref, baseDir) {
|
|
791
|
+
const combined = ref.startsWith('/') ? ref.slice(1) : `${baseDir ? `${baseDir}/` : ''}${ref}`;
|
|
792
|
+
const out = [];
|
|
793
|
+
for (const segment of combined.split('/')) {
|
|
794
|
+
if (!segment || segment === '.') {
|
|
795
|
+
continue;
|
|
796
|
+
}
|
|
797
|
+
if (segment === '..') {
|
|
798
|
+
out.pop();
|
|
799
|
+
}
|
|
800
|
+
else {
|
|
801
|
+
out.push(segment);
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
return out.join('/');
|
|
805
|
+
}
|
|
806
|
+
// Applies mapRef to every markdown link/image target. mapRef receives the
|
|
807
|
+
// decoded path part (query/hash stripped) and returns the replacement path or
|
|
808
|
+
// null to leave the ref unchanged. External (scheme) and fragment-only refs
|
|
809
|
+
// are skipped.
|
|
810
|
+
function rewriteArchiveRefs(markdown, mapRef) {
|
|
811
|
+
const regex = /(!?\[[^\]]*\]\()(<[^>]*>|[^)\s]+)((?:\s+"[^"]*")?\))/g;
|
|
812
|
+
return markdown.replace(regex, (match, prefix, rawTarget, suffix) => {
|
|
813
|
+
const angled = rawTarget.startsWith('<') && rawTarget.endsWith('>');
|
|
814
|
+
const target = angled ? rawTarget.slice(1, -1) : rawTarget;
|
|
815
|
+
if (!target || target.startsWith('#') || /^[a-z][a-z0-9+.-]*:/i.test(target)) {
|
|
816
|
+
return match;
|
|
817
|
+
}
|
|
818
|
+
const splitAt = target.search(/[?#]/);
|
|
819
|
+
const pathPart = splitAt === -1 ? target : target.slice(0, splitAt);
|
|
820
|
+
const rest = splitAt === -1 ? '' : target.slice(splitAt);
|
|
821
|
+
let decoded;
|
|
822
|
+
try {
|
|
823
|
+
decoded = decodeURIComponent(pathPart);
|
|
824
|
+
}
|
|
825
|
+
catch {
|
|
826
|
+
return match;
|
|
827
|
+
}
|
|
828
|
+
const mapped = mapRef(decoded);
|
|
829
|
+
if (mapped === null) {
|
|
830
|
+
return match;
|
|
831
|
+
}
|
|
832
|
+
const encoded = mapped.split('/').map(encodeURIComponent).join('/');
|
|
833
|
+
const next = `${encoded}${rest}`;
|
|
834
|
+
return `${prefix}${angled ? `<${next}>` : next}${suffix}`;
|
|
835
|
+
});
|
|
836
|
+
}
|
|
477
837
|
function pathTypeForEntry(entry) {
|
|
478
838
|
if (entry.isImage) {
|
|
479
839
|
return 'image';
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EAMhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,6BAA6B,EAC7B,WAAW,EACX,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAyGvB,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,SAAiB;QAClC,KAAK,CAAC,UAAU,SAAS,2BAA2B,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IAsBhC,YACE,KAAiB,EACjB,SAAuB,EACvB,OAAsB,EACtB,OAA0C;QAzB3B,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QAI5D,qBAAgB,GAAG,EAAE,CAAC;QACtB,qBAAgB,GAAG,UAAU,CAAC;QAC9B,yBAAoB,GAAkB,UAAU,CAAC;QACjD,eAAU,GAAG,KAAK,CAAC;QACnB,qBAAgB,GAAG,KAAK,CAAC;QACjC,sEAAsE;QACtE,2EAA2E;QAC3E,uEAAuE;QACvE,iDAAiD;QAChC,kBAAa,GAAG,IAAI,GAAG,EAA0D,CAAC;QAClF,oBAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAI7D,uFAAuF;QAC/E,sBAAiB,GAAoB,IAAI,CAAC;QAQhD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,KAAiB,EACjB,UAAqC,EAAE;QAEvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC;QACpD,MAAM,eAAe,GAAsC;YACzD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC7E,QAAQ;SACT,CAAC;QAEF,IAAI,eAAe,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnG,MAAM,YAAY,GAAG,MAAM,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,YAAY,EAAE;gBACrE,4BAA4B,EAAE,KAAK;gBACnC,0BAA0B,EAAE,IAAI;aACjC,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,qBAAqB,CACzC,YAAY,EACZ,aAAa,EACb,MAAM,0BAA0B,CAAC,aAAa,CAAC,EAC/C,eAAe,CAChB,CAAC;YACF,SAAS,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE;YAC9D,4BAA4B,EAAE,KAAK;YACnC,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;QACH,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;IAC3H,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAC/B,SAAuB,EACvB,UAAqC,EAAE;QAEvC,MAAM,eAAe,GAAsC;YACzD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;YAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,cAAc;SAC7C,CAAC;QACF,OAAO,IAAI,qBAAqB,CAC9B,OAAO,CAAC,YAAY,IAAI,IAAI,UAAU,EAAE,EACxC,SAAS,EACT,MAAM,0BAA0B,CAAC,SAAS,CAAC,EAC3C,eAAe,CAChB,CAAC;IACJ,CAAC;IAEM,SAAS,CAAC,QAAqC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACb,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,KAAK,KAAK;YACpD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK;YACnC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI;YACpD,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACtE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,KAAK,UAAU;YACnD,CAAC,CAAC;gBACE,GAAG,cAAc;gBACjB,KAAK,EAAE,CAAC;wBACN,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACrC,UAAU,EAAE,IAAI;wBAChB,OAAO,EAAE,KAAK;wBACd,WAAW,EAAE,KAAK;qBACnB,CAAC;gBACF,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC3C,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI,GAAG,EAAkB;gBACjC,kBAAkB,EAAE,EAAE;aACvB;YACH,CAAC,CAAC,cAAc,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,eAAe,EAAE,IAAI,CAAC,oBAAoB;YAC1C,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,YAAY,EAAE,wBAAwB,CAAC,aAAa,EAAE,YAAY,CAAC;YACnE,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC5D,cAAc,EAAE,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC;YAC/E,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;YACxC,gBAAgB,EAAE,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;SACnF,CAAC;IACJ,CAAC;IAEM,SAAS;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;YAChC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;YACzC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;SAC/B,CAAC;IACJ,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC9D,MAAM,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,QAAQ,CAAC,OAAe;QAC7B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAmB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,IAAI,QAAQ,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QAErC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,SAAqB;QAC9D,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACzF,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,SAAqB;QAClE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,WAAmB,EACnB,UAAmC,EAAE;QAErC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACnH,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB;mBAClC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,kBAAkB;mBACtD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACxF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAClI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CAAC,WAAmB;QACzC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;QAChG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC5C,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CACjD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAC9D,CAAC;QACF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACrF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;YAChD,GAAG,CAAC,YAAY,GAAG,GAAG,KAAK,QAAQ,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,YAAY,GAAG;gBAClB,GAAG,IAAI,CAAC,YAAY;gBACpB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;gBACtC,UAAU,EAAE,QAAQ,CAAC,IAAI;gBACzB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;aAC5E,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,OAAe;QACtD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU;eACrB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe;eAC7C,UAAU,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CACjD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAC9D,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAChE,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtE,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,EAAE,UAAU,EAAE,UAAU,EAAE,CAC3B,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACrC,CAAC;QACD,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,aAAa,CAAC,WAA0B;QACnD,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,4BAA4B;QACvC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,YAAY;YACnB,CAAC,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,MAAM,+BAA+B,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,UAAU,CAAC,OAA+B;QACrD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,iBAAiB,KAAK,UAAU;eACpC,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC;eACrE,IAAI,CAAC,oBAAoB,KAAK,UAAU,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,mBAAmB,YAAY,GAAG,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3G,MAAM,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;QAE5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,oBAAoB,CAAC,MAAM,eAAe,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QAEtD,OAAO;YACL,WAAW;YACX,YAAY;YACZ,aAAa;YACb,IAAI;YACJ,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC5C,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC1C,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC;QACrC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,kEAAkE;YAClE,sEAAsE;YACtE,sBAAsB;YACtB,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;IACnD,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAClE,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,OAAO,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC9D,MAAM,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,kFAAkF;QAClF,0FAA0F;QAC1F,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,eAA2B,IAAI,CAAC,YAAY;QAC9D,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU;YAC1C,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACjD,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,KAAiB;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE;YAC9D,4BAA4B,EAAE,KAAK;YACnC,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QACrD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,KAAiB,EAAE,WAAoB;QAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE;YAC9D,4BAA4B,EAAE,KAAK;YACnC,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YACrD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC;IAC9C,CAAC;IAEO,QAAQ,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CACjC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAClE,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACxE,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,8DAA8D;IACtD,KAAK,CAAC,0BAA0B,CAAC,OAAe,EAAE,OAAe;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7F,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACvE,qEAAqE;YACrE,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC/D,SAAS,CAAC,wDAAwD;YACpE,CAAC;YACD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACpB,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,WAAW,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7D,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,WAAW,GAAG,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClE,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC1D,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;gBACrB,OAAO,GAAG,CAAC,QAAQ,CAAC;gBACpB,OAAO,GAAG,CAAC,MAAM,CAAC;gBAClB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC7C,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;oBACnE,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,4BAA4B;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7H,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACtC,OAAO,QAAQ,CAAC,QAAQ,CAAC;gBACzB,OAAO,QAAQ,CAAC,MAAM,CAAC;gBACvB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QACzH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;YACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACnC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpB,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAC7B,OAAO,KAAK,CAAC,SAAS,CAAC;gBACvB,OAAO,KAAK,CAAC,WAAW,CAAC;gBACzB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,WAAmB,EAAE,OAA4B;QAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,oBAAoB,CAAC,WAAmB;QAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,2EAA2E;QAC3E,0EAA0E;QAC1E,kDAAkD;QAClD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,WAAW,CAC7C,IAAI,CAAC,YAAY,EACjB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAC/F,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAClC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAC3C,CAAC;YACF,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,WAAW,CAAC,CAAC,MAAM,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IAEO,oBAAoB,CAAC,KAAwB;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG;YAC3B,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;YACzF,KAAK;SACN,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB;QACtD,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAClF,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QACnH,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC1C,OAAO,QAAQ,CAAC,QAAQ,CAAC;gBACzB,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,IAAI,oOAAoO,CAAC,CAAC;YAC7S,CAAC;YACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/G,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,YAAY,UAAU;gBAC7C,CAAC,CAAC,KAAK,CAAC,KAAK;gBACb,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,yBAAyB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;IAEO,cAAc,CAAC,KAAiB;QACtC,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;SACxB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,SAAiB;QACtC,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,wBAAwB,CAAC,YAAoB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjD,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5E,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEO,IAAI,CACV,MAAyB,EACzB,OAAmC,EACnC,IAAa;QAEb,MAAM,KAAK,GAA6B;YACtC,MAAM;YACN,OAAO;YACP,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC1B,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAED,+DAA+D;AAC/D,2FAA2F;AAC3F,SAAS,oBAAoB,CAAC,QAAgB,EAAE,OAAe;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,0CAA0C,CAAC;IACzD,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,+EAA+E;QAC/E,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1G,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;SACxD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,MAAc;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnF,CAAC;AAED,4EAA4E;AAC5E,qCAAqC;AACrC,SAAS,iBAAiB,CAAC,GAAW,EAAE,OAAe;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IAC9F,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,eAAe;AACf,SAAS,kBAAkB,CAAC,QAAgB,EAAE,MAAsC;IAClF,MAAM,KAAK,GAAG,uDAAuD,CAAC;IACtE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAE;QAC1F,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;QACjC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAgD;IACxE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;YAC5C,UAAU,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,eAA8B,EAAE,WAAmB;IAC7E,IAAI,eAAe,KAAK,UAAU,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvF,OAAO,QAAQ,KAAK,eAAe,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC;AAC5E,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,IAAI,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,MAAM,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;QAChB,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC;QACf,KAAK,WAAW,CAAC;QACjB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA6B,EAAE,SAAiB;IAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;IACnC,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEvF,IAAI,SAAS,GAAG,GAAG,MAAM,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAChD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC7C,SAAS,GAAG,GAAG,MAAM,GAAG,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAAC,YAAoB,EAAE,WAAmB;IAC1E,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;QACxC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAiB,EACjB,QAAiB;IAEjB,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACxC,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC;WACnB,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;WACjB,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;WACjB,CACD,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;eACrC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;eACxC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAC5C,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB,EAAE,eAAkC,KAAK;IAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAgB,CAAC;IACxG,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;QACxB,IAAI,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,uBAAuB;KAC5F,CAAC,CAAC;AACL,CAAC"}
|