@appland/appmap 3.65.5 → 3.66.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/CHANGELOG.md +16 -0
- package/built/cmds/sequenceDiagram/buildSequenceDiagramFromAppMap.js +11 -0
- package/built/cmds/sequenceDiagram/buildSequenceDiagramFromAppMap.js.map +1 -0
- package/built/cmds/sequenceDiagram/readDiagramFile.js +11 -0
- package/built/cmds/sequenceDiagram/readDiagramFile.js.map +1 -0
- package/built/cmds/sequenceDiagram.js +38 -24
- package/built/cmds/sequenceDiagram.js.map +1 -1
- package/built/cmds/sequenceDiagramDiff.js +36 -45
- package/built/cmds/sequenceDiagramDiff.js.map +1 -1
- package/built/html/page.js +145 -52
- package/built/html/page.js.map +4 -4
- package/built/sequenceDiagramDiff/DiffDiagrams.js +87 -0
- package/built/sequenceDiagramDiff/DiffDiagrams.js.map +1 -0
- package/built/sequenceDiagramDiff/buildActionName.js +13 -0
- package/built/sequenceDiagramDiff/buildActionName.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
# [@appland/appmap-v3.66.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.65.6...@appland/appmap-v3.66.0) (2023-02-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Create multiple sequence diagrams with one invocation ([8e829a6](https://github.com/getappmap/appmap-js/commit/8e829a6280e78d6002327de16a11b5979d9595f1))
|
|
7
|
+
* Optionally skip loop rollup ([fa04ca9](https://github.com/getappmap/appmap-js/commit/fa04ca99e1950ed0a79cfe0e63cc0074ad1b3138))
|
|
8
|
+
* Seq diagram diff include and exclude ([fc12f5c](https://github.com/getappmap/appmap-js/commit/fc12f5c9db117030f1c7ee34a1c46d45708a5165))
|
|
9
|
+
|
|
10
|
+
# [@appland/appmap-v3.65.6](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.65.5...@appland/appmap-v3.65.6) (2023-02-24)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* Release notarized Mac OS binaries ([f13e619](https://github.com/getappmap/appmap-js/commit/f13e619648903dbb1989a72c64aab65aa1adf8dc))
|
|
16
|
+
|
|
1
17
|
# [@appland/appmap-v3.65.5](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.65.4...@appland/appmap-v3.65.5) (2023-02-23)
|
|
2
18
|
|
|
3
19
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSequenceDiagramFromAppMapFile = void 0;
|
|
4
|
+
const sequence_diagram_1 = require("@appland/sequence-diagram");
|
|
5
|
+
const models_1 = require("@appland/models");
|
|
6
|
+
function buildSequenceDiagramFromAppMapFile(fileName, appMapData) {
|
|
7
|
+
const appmap = (0, models_1.buildAppMap)(appMapData).build();
|
|
8
|
+
return (0, sequence_diagram_1.buildDiagram)(fileName, appmap, sequence_diagram_1.Specification.build(appmap, {}));
|
|
9
|
+
}
|
|
10
|
+
exports.buildSequenceDiagramFromAppMapFile = buildSequenceDiagramFromAppMapFile;
|
|
11
|
+
//# sourceMappingURL=buildSequenceDiagramFromAppMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSequenceDiagramFromAppMap.js","sourceRoot":"","sources":["../../../src/cmds/sequenceDiagram/buildSequenceDiagramFromAppMap.ts"],"names":[],"mappings":";;;AAAA,gEAAiF;AACjF,4CAA8C;AAE9C,SAAgB,kCAAkC,CAAC,QAAgB,EAAE,UAAe;IAClF,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,OAAO,IAAA,+BAAY,EAAC,QAAQ,EAAE,MAAM,EAAE,gCAAa,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAHD,gFAGC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readDiagramFile = void 0;
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
5
|
+
const sequence_diagram_1 = require("@appland/sequence-diagram");
|
|
6
|
+
async function readDiagramFile(fileName) {
|
|
7
|
+
const jsonData = JSON.parse(await (0, promises_1.readFile)(fileName, 'utf-8'));
|
|
8
|
+
return (0, sequence_diagram_1.unparseDiagram)(jsonData);
|
|
9
|
+
}
|
|
10
|
+
exports.readDiagramFile = readDiagramFile;
|
|
11
|
+
//# sourceMappingURL=readDiagramFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readDiagramFile.js","sourceRoot":"","sources":["../../../src/cmds/sequenceDiagram/readDiagramFile.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,gEAAoE;AAE7D,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAQ,CAAC;IACtE,OAAO,IAAA,iCAAc,EAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAHD,0CAGC"}
|
|
@@ -7,12 +7,12 @@ const handleWorkingDirectory_1 = require("../lib/handleWorkingDirectory");
|
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
8
|
const models_1 = require("@appland/models");
|
|
9
9
|
const sequence_diagram_1 = require("@appland/sequence-diagram");
|
|
10
|
-
exports.command = 'sequence-diagram appmap';
|
|
10
|
+
exports.command = 'sequence-diagram <appmap...>';
|
|
11
11
|
exports.describe = 'Generate a sequence diagram for an AppMap';
|
|
12
12
|
const builder = (args) => {
|
|
13
13
|
args.positional('appmap', {
|
|
14
14
|
type: 'string',
|
|
15
|
-
|
|
15
|
+
array: true,
|
|
16
16
|
});
|
|
17
17
|
args.option('directory', {
|
|
18
18
|
describe: 'program working directory',
|
|
@@ -22,8 +22,14 @@ const builder = (args) => {
|
|
|
22
22
|
args.option('output-dir', {
|
|
23
23
|
describe: 'directory in which to save the sequence diagrams',
|
|
24
24
|
});
|
|
25
|
+
args.option('loops', {
|
|
26
|
+
describe: 'identify loops and collect under a Loop object',
|
|
27
|
+
type: 'boolean',
|
|
28
|
+
default: true,
|
|
29
|
+
});
|
|
25
30
|
args.option('format', {
|
|
26
31
|
describe: 'output format',
|
|
32
|
+
alias: 'f',
|
|
27
33
|
choices: ['plantuml', 'json'],
|
|
28
34
|
default: 'plantuml',
|
|
29
35
|
});
|
|
@@ -46,28 +52,36 @@ const handler = async (argv) => {
|
|
|
46
52
|
process.exitCode = 1;
|
|
47
53
|
return;
|
|
48
54
|
}
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
55
|
+
const generateDiagram = async (appmapFileName) => {
|
|
56
|
+
const appmapData = JSON.parse(await (0, promises_1.readFile)(appmapFileName, 'utf-8'));
|
|
57
|
+
const appmap = (0, models_1.buildAppMap)().source(appmapData).build();
|
|
58
|
+
const specOptions = {
|
|
59
|
+
loops: argv.loops,
|
|
60
|
+
};
|
|
61
|
+
if (argv.exclude)
|
|
62
|
+
specOptions.exclude = Array.isArray(argv.exclude) ? argv.exclude : [argv.exclude];
|
|
63
|
+
const specification = sequence_diagram_1.Specification.build(appmap, specOptions);
|
|
64
|
+
const diagram = (0, sequence_diagram_1.buildDiagram)(appmapFileName, appmap, specification);
|
|
65
|
+
const template = (0, sequence_diagram_1.format)(argv.format, diagram, appmapFileName);
|
|
66
|
+
if (argv.outputDir)
|
|
67
|
+
await (0, promises_1.mkdir)(argv.outputDir, { recursive: true });
|
|
68
|
+
const outputFileName = [
|
|
69
|
+
(0, path_1.basename)(appmapFileName, '.appmap.json'),
|
|
70
|
+
'.sequence',
|
|
71
|
+
template.extension,
|
|
72
|
+
].join('');
|
|
73
|
+
let outputPath;
|
|
74
|
+
if (argv.outputDir)
|
|
75
|
+
outputPath = (0, path_1.join)(argv.outputDir, outputFileName);
|
|
76
|
+
else
|
|
77
|
+
outputPath = (0, path_1.join)((0, path_1.dirname)(appmapFileName), outputFileName);
|
|
78
|
+
await (0, promises_1.writeFile)(outputPath, template.diagram);
|
|
79
|
+
console.log(`Printed diagram ${outputPath}`);
|
|
80
|
+
};
|
|
81
|
+
for (let i = 0; i < argv.appmap.length; i++) {
|
|
82
|
+
const appmapFile = argv.appmap[i];
|
|
83
|
+
await generateDiagram(appmapFile);
|
|
84
|
+
}
|
|
71
85
|
};
|
|
72
86
|
exports.handler = handler;
|
|
73
87
|
//# sourceMappingURL=sequenceDiagram.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceDiagram.js","sourceRoot":"","sources":["../../src/cmds/sequenceDiagram.ts"],"names":[],"mappings":";;;AAAA,0CAAyD;AACzD,+BAA+C;AAE/C,0EAAuE;AACvE,oCAAmC;AACnC,4CAA8C;AAC9C,gEAMmC;AAEtB,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"sequenceDiagram.js","sourceRoot":"","sources":["../../src/cmds/sequenceDiagram.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ const handleWorkingDirectory_1 = require("../lib/handleWorkingDirectory");
|
|
|
10
10
|
const sequence_diagram_1 = require("@appland/sequence-diagram");
|
|
11
11
|
const utils_1 = require("../utils");
|
|
12
12
|
const path_1 = require("path");
|
|
13
|
+
const DiffDiagrams_1 = require("../sequenceDiagramDiff/DiffDiagrams");
|
|
14
|
+
const readDiagramFile_1 = require("./sequenceDiagram/readDiagramFile");
|
|
13
15
|
exports.command = 'sequence-diagram-diff base-diagram head-diagram';
|
|
14
16
|
exports.describe = 'Diff sequence diagrams that are represented as JSON';
|
|
15
17
|
const builder = (args) => {
|
|
@@ -30,48 +32,20 @@ const builder = (args) => {
|
|
|
30
32
|
});
|
|
31
33
|
args.option('format', {
|
|
32
34
|
describe: 'output format',
|
|
33
|
-
|
|
35
|
+
alias: 'f',
|
|
36
|
+
choices: ['plantuml', 'json', 'text'],
|
|
34
37
|
default: 'plantuml',
|
|
35
38
|
});
|
|
39
|
+
args.option('include', {
|
|
40
|
+
describe: 'code objects to include in the diagram (inclusive of descendants)',
|
|
41
|
+
});
|
|
42
|
+
args.option('exclude', {
|
|
43
|
+
describe: 'code objects to exclude from the diagram',
|
|
44
|
+
});
|
|
36
45
|
return args.strict();
|
|
37
46
|
};
|
|
38
47
|
exports.builder = builder;
|
|
39
|
-
async function
|
|
40
|
-
const diagram = JSON.parse(await (0, promises_1.readFile)(fileName, 'utf-8'));
|
|
41
|
-
const actors = new Map();
|
|
42
|
-
diagram.actors.forEach((actor) => actors.set(actor.id, actor));
|
|
43
|
-
const resolveActors = (action) => {
|
|
44
|
-
if (action.caller)
|
|
45
|
-
action.caller = actors.get(action.caller);
|
|
46
|
-
if (action.callee)
|
|
47
|
-
action.callee = actors.get(action.callee);
|
|
48
|
-
if (action.children)
|
|
49
|
-
action.children.forEach((child) => resolveActors(child));
|
|
50
|
-
};
|
|
51
|
-
diagram.rootActions.forEach((action) => (0, sequence_diagram_1.setParent)(action));
|
|
52
|
-
diagram.rootActions.forEach((action) => resolveActors(action));
|
|
53
|
-
return diagram;
|
|
54
|
-
}
|
|
55
|
-
async function performDiff(format, outputFileName, baseFileName, base, head, headFileName) {
|
|
56
|
-
const result = (0, sequence_diagram_1.diff)(base, head, {});
|
|
57
|
-
const changes = result.moves.filter((move) => move.moveType !== sequence_diagram_1.MoveType.AdvanceBoth);
|
|
58
|
-
if (changes.length === 0) {
|
|
59
|
-
if (headFileName) {
|
|
60
|
-
console.log(`${baseFileName} and ${headFileName} are identical`);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
console.log(`${baseFileName} are identical`);
|
|
64
|
-
}
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const diagram = (0, sequence_diagram_1.buildDiffDiagram)(result);
|
|
68
|
-
let description;
|
|
69
|
-
if (headFileName) {
|
|
70
|
-
description = `Diff ${baseFileName} with ${headFileName}`;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
description = `Diff ${baseFileName}`;
|
|
74
|
-
}
|
|
48
|
+
async function printDiff(diagram, format, outputFileName, description) {
|
|
75
49
|
const template = (0, sequence_diagram_1.format)(format, diagram, description);
|
|
76
50
|
const outputPath = [outputFileName, template.extension].join('');
|
|
77
51
|
await (0, promises_1.writeFile)(outputPath, template.diagram);
|
|
@@ -88,14 +62,24 @@ const handler = async (argv) => {
|
|
|
88
62
|
(0, handleWorkingDirectory_1.handleWorkingDirectory)(argv.directory);
|
|
89
63
|
await (0, promises_1.mkdir)(argv.outputDir, { recursive: true });
|
|
90
64
|
const { baseDiagram: baseDiagramFile, headDiagram: headDiagramFile } = argv;
|
|
65
|
+
const diffDiagrams = new DiffDiagrams_1.DiffDiagrams();
|
|
66
|
+
if (argv.include)
|
|
67
|
+
(Array.isArray(argv.include) ? argv.include : [argv.include]).forEach((expr) => diffDiagrams.include(expr));
|
|
68
|
+
if (argv.exclude)
|
|
69
|
+
(Array.isArray(argv.exclude) ? argv.exclude : [argv.exclude]).forEach((expr) => diffDiagrams.exclude(expr));
|
|
91
70
|
[baseDiagramFile, headDiagramFile].forEach((fileName) => {
|
|
92
71
|
if (!(0, fs_1.existsSync)(fileName))
|
|
93
72
|
throw new Error(`${fileName} does not exist`);
|
|
94
73
|
});
|
|
95
74
|
const compareFiles = async () => {
|
|
96
|
-
const baseDiagram = await readDiagramFile(baseDiagramFile);
|
|
97
|
-
const headDiagram = await readDiagramFile(headDiagramFile);
|
|
98
|
-
|
|
75
|
+
const baseDiagram = await (0, readDiagramFile_1.readDiagramFile)(baseDiagramFile);
|
|
76
|
+
const headDiagram = await (0, readDiagramFile_1.readDiagramFile)(headDiagramFile);
|
|
77
|
+
const diffDiagram = diffDiagrams.diff(baseDiagram, headDiagram);
|
|
78
|
+
if (!diffDiagram) {
|
|
79
|
+
console.log(`${baseDiagramFile} and ${headDiagramFile} are identical`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
printDiff(diffDiagram, argv.format, (0, path_1.join)(argv.outputDir, 'diff'), `Diff ${baseDiagramFile} with ${headDiagramFile}`);
|
|
99
83
|
};
|
|
100
84
|
const compareDirectories = async () => {
|
|
101
85
|
const diagramData = new Map();
|
|
@@ -107,9 +91,9 @@ const handler = async (argv) => {
|
|
|
107
91
|
});
|
|
108
92
|
await Promise.all([...diagramData.keys()].map(async (dirName) => {
|
|
109
93
|
const data = diagramData.get(dirName);
|
|
110
|
-
await (0, util_1.promisify)(glob_1.glob)(`${dirName}/**/*.json`).then(async (matches) => {
|
|
94
|
+
await (0, util_1.promisify)(glob_1.glob)(`${dirName}/**/*.sequence.json`).then(async (matches) => {
|
|
111
95
|
const loader = (0, async_1.queue)(async (matchName) => {
|
|
112
|
-
const diagram = await readDiagramFile(matchName);
|
|
96
|
+
const diagram = await (0, readDiagramFile_1.readDiagramFile)(matchName);
|
|
113
97
|
const relativePath = matchName.slice(dirName.length + 1);
|
|
114
98
|
data.diagrams.set(relativePath, diagram);
|
|
115
99
|
}, 2);
|
|
@@ -123,15 +107,22 @@ const handler = async (argv) => {
|
|
|
123
107
|
for (const fileName of diagramData.get(headDiagramFile).diagrams.keys())
|
|
124
108
|
diagramNames.add(fileName);
|
|
125
109
|
for (const fileName of diagramNames) {
|
|
126
|
-
|
|
110
|
+
const baseDiagram = diagramData.get(baseDiagramFile).diagrams.get(fileName);
|
|
111
|
+
if (baseDiagram === undefined) {
|
|
127
112
|
console.log(`Diagram ${fileName} exists only in ${headDiagramFile}`);
|
|
128
113
|
continue;
|
|
129
114
|
}
|
|
130
|
-
|
|
115
|
+
const headDiagram = diagramData.get(headDiagramFile).diagrams.get(fileName);
|
|
116
|
+
if (headDiagram === undefined) {
|
|
131
117
|
console.log(`Diagram ${fileName} exists only in ${baseDiagramFile}`);
|
|
132
118
|
continue;
|
|
133
119
|
}
|
|
134
|
-
|
|
120
|
+
const diffDiagram = diffDiagrams.diff(baseDiagram, headDiagram);
|
|
121
|
+
if (!diffDiagram) {
|
|
122
|
+
console.log(`${fileName} is identical`);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
printDiff(diffDiagram, argv.format, [fileName, 'diff'].join('.'), `Diff ${fileName}`);
|
|
135
126
|
}
|
|
136
127
|
};
|
|
137
128
|
const isFile = [baseDiagramFile, headDiagramFile].map((fileName) => (0, fs_1.statSync)(fileName).isFile());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceDiagramDiff.js","sourceRoot":"","sources":["../../src/cmds/sequenceDiagramDiff.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,2BAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"sequenceDiagramDiff.js","sourceRoot":"","sources":["../../src/cmds/sequenceDiagramDiff.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,2BAA0C;AAC1C,0CAA+C;AAC/C,+BAA4B;AAC5B,+BAAiC;AAEjC,0EAAuE;AACvE,gEAKmC;AACnC,oCAAmC;AACnC,+BAA4B;AAC5B,sEAAmE;AACnE,uEAAoE;AAEvD,QAAA,OAAO,GAAG,iDAAiD,CAAC;AAC5D,QAAA,QAAQ,GAAG,qDAAqD,CAAC;AAEvE,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC1C,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;QAC9B,QAAQ,EAAE,2CAA2C;KACtD,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;QAC9B,QAAQ,EAAE,2CAA2C;KACtD,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QACvB,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QACxB,QAAQ,EAAE,kDAAkD;QAC5D,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;QACrC,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACrB,QAAQ,EAAE,mEAAmE;KAC9E,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACrB,QAAQ,EAAE,0CAA0C;KACrD,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB;AAEF,KAAK,UAAU,SAAS,CACtB,OAAgB,EAChB,MAAkB,EAClB,cAAsB,EACtB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAE7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,MAAM,OAAO,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;IACzC,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,IAAI,CAAC,6BAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;KACR;IAED,IAAA,+CAAsB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAA,gBAAK,EAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAE5E,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAExC,IAAI,IAAI,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CACrF,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAC3B,CAAC;IACJ,IAAI,IAAI,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CACrF,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAC3B,CAAC;IAEJ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtD,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,MAAM,WAAW,GAAG,MAAM,IAAA,iCAAe,EAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,IAAA,iCAAe,EAAC,eAAe,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,QAAQ,eAAe,gBAAgB,CAAC,CAAC;YACvE,OAAO;SACR;QAED,SAAS,CACP,WAAW,EACX,IAAI,CAAC,MAAM,EACX,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAC5B,QAAQ,eAAe,SAAS,eAAe,EAAE,CAClD,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACnD,MAAM,WAAW,GAAoD,IAAI,GAAG,EAAE,CAAC;QAC/E,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE;YAC/B,QAAQ,EAAE,IAAI,GAAG,EAAmB;SACrC,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE;YAC/B,QAAQ,EAAE,IAAI,GAAG,EAAmB;SACrC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YACvC,MAAM,IAAA,gBAAS,EAAC,WAAI,CAAC,CAAC,GAAG,OAAO,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5E,MAAM,MAAM,GAAG,IAAA,aAAK,EAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;oBAC/C,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC,SAAS,CAAC,CAAC;oBACjD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC3C,CAAC,EAAE,CAAC,CAAC,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;YACtE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;YACtE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7B,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;YACnC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,mBAAmB,eAAe,EAAE,CAAC,CAAC;gBACrE,SAAS;aACV;YAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,mBAAmB,eAAe,EAAE,CAAC,CAAC;gBACrE,SAAS;aACV;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,eAAe,CAAC,CAAC;gBACxC,SAAS;aACV;YAED,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;SACvF;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,YAAY,EAAE,CAAC;KACtB;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAClC,MAAM,kBAAkB,EAAE,CAAC;KAC5B;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;AACH,CAAC,CAAC;AA5GW,QAAA,OAAO,WA4GlB"}
|