vis-dev-utils 3.0.4 → 3.0.7
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/babel-register/index.js +2 -2
- package/babel-register/index.js.map +1 -1
- package/bin/ci-utils.js +2 -2
- package/bin/ci-utils.js.map +1 -1
- package/bin/generate-examples-index.js +6 -4
- package/bin/generate-examples-index.js.map +1 -1
- package/bin/test-e2e-interop.js +75 -22
- package/bin/test-e2e-interop.js.map +1 -1
- package/dist/vis-dev-utils.cjs.js +2 -2
- package/dist/vis-dev-utils.cjs.js.map +1 -1
- package/dist/vis-dev-utils.esm.js +2 -2
- package/dist/vis-dev-utils.esm.js.map +1 -1
- package/package.json +9 -9
package/bin/test-e2e-interop.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Development utilities for the Vis family projects.
|
|
8
8
|
*
|
|
9
|
-
* @version 3.0.
|
|
10
|
-
* @date 2022-03-
|
|
9
|
+
* @version 3.0.7
|
|
10
|
+
* @date 2022-03-12T19:51:10.352Z
|
|
11
11
|
*
|
|
12
12
|
* @copyright (c) 2011-2017 Almende B.V, http://almende.com
|
|
13
13
|
* @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
|
|
@@ -63,9 +63,9 @@ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-s
|
|
|
63
63
|
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
64
64
|
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
65
65
|
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
66
|
-
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
67
66
|
var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
|
|
68
67
|
var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
|
|
68
|
+
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
69
69
|
var _padStartInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/pad-start');
|
|
70
70
|
var child_process = require('child_process');
|
|
71
71
|
|
|
@@ -103,9 +103,9 @@ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefaultLega
|
|
|
103
103
|
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertyDescriptors);
|
|
104
104
|
var _Object$defineProperties__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperties);
|
|
105
105
|
var _Object$defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperty);
|
|
106
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
107
106
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
108
107
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
108
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
109
109
|
var _padStartInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_padStartInstanceProperty);
|
|
110
110
|
|
|
111
111
|
var y = yargs__default["default"].strict(true).usage("test-e2e-interop [options]").hide("version").config().help().option("fail-command", {
|
|
@@ -128,6 +128,11 @@ var y = yargs__default["default"].strict(true).usage("test-e2e-interop [options]
|
|
|
128
128
|
demandOption: false,
|
|
129
129
|
describe: "The working directory for E2E testing. If omitted a new tmp dir will be created and then disposed of.",
|
|
130
130
|
type: "string"
|
|
131
|
+
}).option("logs-to-stdout", {
|
|
132
|
+
demandOption: false,
|
|
133
|
+
default: false,
|
|
134
|
+
describe: "Output the logs to the stdout after the tests finished.",
|
|
135
|
+
type: "boolean"
|
|
131
136
|
});
|
|
132
137
|
/**
|
|
133
138
|
*
|
|
@@ -142,23 +147,46 @@ function parseArguments() {
|
|
|
142
147
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
143
148
|
|
|
144
149
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context8, _context9; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context8 = ownKeys(Object(source), !0)).call(_context8, function (key) { _defineProperty__default["default"](target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context9 = ownKeys(Object(source))).call(_context9, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
145
|
-
var ProjectState = /*#__PURE__*/_createClass__default["default"](
|
|
150
|
+
var ProjectState = /*#__PURE__*/_createClass__default["default"](
|
|
151
|
+
/**
|
|
152
|
+
* This will be resolved or rejected once all the tasks associated with this
|
|
153
|
+
* project finish.
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Run this to mark the project as successfully finished.
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Run this to mark the project as failed.
|
|
162
|
+
*/
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Provide information about current state of the project.
|
|
166
|
+
*/
|
|
167
|
+
function ProjectState() {
|
|
146
168
|
var _this = this;
|
|
147
169
|
|
|
148
170
|
_classCallCheck__default["default"](this, ProjectState);
|
|
149
171
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
172
|
+
_defineProperty__default["default"](this, "promise", void 0);
|
|
173
|
+
|
|
174
|
+
_defineProperty__default["default"](this, "resolve", void 0);
|
|
175
|
+
|
|
176
|
+
_defineProperty__default["default"](this, "reject", void 0);
|
|
177
|
+
|
|
178
|
+
_defineProperty__default["default"](this, "stage", "pending");
|
|
179
|
+
|
|
154
180
|
this.promise = new _Promise__default["default"](function (resolve, reject) {
|
|
155
181
|
_this.resolve = resolve;
|
|
156
182
|
_this.reject = reject;
|
|
157
183
|
});
|
|
158
184
|
});
|
|
159
185
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
186
|
+
* Output formatted error message to stderr.
|
|
187
|
+
*
|
|
188
|
+
* @param title - Some explanatory text as to what's going on.
|
|
189
|
+
* @param details - The error or some other message as to what went wrong.
|
|
162
190
|
*/
|
|
163
191
|
|
|
164
192
|
function logError(title, details) {
|
|
@@ -238,7 +266,7 @@ function createSpawner(logDir, getState) {
|
|
|
238
266
|
return new _Promise__default["default"](function (resolve, reject) {
|
|
239
267
|
var _context5;
|
|
240
268
|
|
|
241
|
-
var commandLogPath = path.join(logDir, _padStartInstanceProperty__default["default"](_context5 = "" + id).call(_context5, 3, "0")
|
|
269
|
+
var commandLogPath = path.join(logDir, [path.basename(cwd).replace(/[^a-zA-Z0-9]+/g, "-"), cmd.join("-").replace(/[^a-zA-Z0-9]+/g, "-"), "id-" + _padStartInstanceProperty__default["default"](_context5 = "" + id).call(_context5, 3, "0"), "log"].join("."));
|
|
242
270
|
var logStream = fsExtra.createWriteStream(commandLogPath, {
|
|
243
271
|
flags: "a"
|
|
244
272
|
});
|
|
@@ -252,6 +280,20 @@ function createSpawner(logDir, getState) {
|
|
|
252
280
|
});
|
|
253
281
|
child.stdout.pipe(logStream);
|
|
254
282
|
child.stderr.pipe(logStream);
|
|
283
|
+
/**
|
|
284
|
+
* Add status to the file name just before the .log extension on a best
|
|
285
|
+
* effort basis (no errors reported)..
|
|
286
|
+
*
|
|
287
|
+
* @param code - The code or other kind of status to append.
|
|
288
|
+
*/
|
|
289
|
+
|
|
290
|
+
function addStatusCodeToFilename(code) {
|
|
291
|
+
var newPath = _sliceInstanceProperty__default["default"](commandLogPath).call(commandLogPath, 0, -4) + ".status-" + code + ".log";
|
|
292
|
+
fsExtra.rename(commandLogPath, newPath).catch(function (error) {
|
|
293
|
+
console.error("Failed to rename log file to ".concat(newPath, "."), error);
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
|
|
255
297
|
var failed = false;
|
|
256
298
|
child.on("close", function (code) {
|
|
257
299
|
if (failed) ; else if (code !== 0) {
|
|
@@ -297,9 +339,11 @@ function createSpawner(logDir, getState) {
|
|
|
297
339
|
}, _callee, null, [[1, 8]]);
|
|
298
340
|
}))();
|
|
299
341
|
});
|
|
342
|
+
addStatusCodeToFilename(code !== null && code !== void 0 ? code : "null");
|
|
300
343
|
reject(new Error(errorMessage));
|
|
301
344
|
} else {
|
|
302
345
|
logInfo("Okay", getLogMessage());
|
|
346
|
+
addStatusCodeToFilename(code);
|
|
303
347
|
resolve();
|
|
304
348
|
}
|
|
305
349
|
});
|
|
@@ -307,6 +351,7 @@ function createSpawner(logDir, getState) {
|
|
|
307
351
|
failed = true;
|
|
308
352
|
logError("Fail", getLogMessage());
|
|
309
353
|
execFail(cwd, failCommand, error);
|
|
354
|
+
addStatusCodeToFilename("error");
|
|
310
355
|
reject(error);
|
|
311
356
|
});
|
|
312
357
|
});
|
|
@@ -791,6 +836,7 @@ function checkTmpPath(_x15) {
|
|
|
791
836
|
/**
|
|
792
837
|
* @param root0
|
|
793
838
|
* @param root0.failCommand
|
|
839
|
+
* @param root0.logsToStdout
|
|
794
840
|
* @param root0.packageScripts
|
|
795
841
|
* @param root0.projectPaths
|
|
796
842
|
* @param root0.tmpPath
|
|
@@ -836,7 +882,7 @@ function _test() {
|
|
|
836
882
|
_test = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee11(_ref2) {
|
|
837
883
|
var _context18;
|
|
838
884
|
|
|
839
|
-
var failCommand, packageScripts, projectPaths, tmpPath, data, projectStatuses, getStages, _context21, _context22, _context26, _context27, spawn, allSucceeded,
|
|
885
|
+
var failCommand, logsToStdout, packageScripts, projectPaths, tmpPath, data, projectStatuses, getStages, _context21, _context22, _context26, _context27, spawn, allSucceeded, _iterator3, _step3, _step3$value, projectName, promise, _context28, _context29, _context30, _context31;
|
|
840
886
|
|
|
841
887
|
return _regeneratorRuntime__default["default"].wrap(function _callee11$(_context32) {
|
|
842
888
|
while (1) {
|
|
@@ -856,7 +902,7 @@ function _test() {
|
|
|
856
902
|
});
|
|
857
903
|
};
|
|
858
904
|
|
|
859
|
-
failCommand = _ref2.failCommand, packageScripts = _ref2.packageScripts, projectPaths = _ref2.projectPaths, tmpPath = _ref2.tmpPath;
|
|
905
|
+
failCommand = _ref2.failCommand, logsToStdout = _ref2.logsToStdout, packageScripts = _ref2.packageScripts, projectPaths = _ref2.projectPaths, tmpPath = _ref2.tmpPath;
|
|
860
906
|
|
|
861
907
|
if (!(process.env.VIS_INTEROP === "1")) {
|
|
862
908
|
_context32.next = 5;
|
|
@@ -1096,7 +1142,7 @@ function _test() {
|
|
|
1096
1142
|
_context25.prev = 60;
|
|
1097
1143
|
_context25.t2 = _context25["catch"](1);
|
|
1098
1144
|
logError(_concatInstanceProperty__default["default"](_context24 = "Fail ".concat(projectName, " (")).call(_context24, state.stage, "):"), getStages().join("\n"));
|
|
1099
|
-
state.reject(_context25.t2);
|
|
1145
|
+
state.reject(_context25.t2 instanceof Error ? _context25.t2 : new Error("" + _context25.t2));
|
|
1100
1146
|
|
|
1101
1147
|
case 64:
|
|
1102
1148
|
case "end":
|
|
@@ -1187,7 +1233,11 @@ function _test() {
|
|
|
1187
1233
|
return _context32.finish(60);
|
|
1188
1234
|
|
|
1189
1235
|
case 63:
|
|
1190
|
-
|
|
1236
|
+
if (!logsToStdout) {
|
|
1237
|
+
_context32.next = 82;
|
|
1238
|
+
break;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1191
1241
|
logInfo("Outputs");
|
|
1192
1242
|
_context32.t14 = process.stdout;
|
|
1193
1243
|
_context32.t15 = _concatInstanceProperty__default["default"](_context28 = [""]);
|
|
@@ -1195,18 +1245,18 @@ function _test() {
|
|
|
1195
1245
|
_context32.t17 = _toConsumableArray__default["default"];
|
|
1196
1246
|
_context32.t18 = _Promise__default["default"];
|
|
1197
1247
|
_context32.t19 = _mapInstanceProperty__default["default"];
|
|
1198
|
-
_context32.next =
|
|
1248
|
+
_context32.next = 73;
|
|
1199
1249
|
return fsExtra.readdir(data.tmpLogsResolve());
|
|
1200
1250
|
|
|
1201
|
-
case
|
|
1251
|
+
case 73:
|
|
1202
1252
|
_context32.t20 = _context29 = _context32.sent;
|
|
1203
1253
|
_context32.t21 = (0, _context32.t19)(_context32.t20).call(_context29, function (filename) {
|
|
1204
1254
|
return fsExtra.readFile(data.tmpLogsResolve(filename), "UTF-8");
|
|
1205
1255
|
});
|
|
1206
|
-
_context32.next =
|
|
1256
|
+
_context32.next = 77;
|
|
1207
1257
|
return _context32.t18.all.call(_context32.t18, _context32.t21);
|
|
1208
1258
|
|
|
1209
|
-
case
|
|
1259
|
+
case 77:
|
|
1210
1260
|
_context32.t22 = _context32.sent;
|
|
1211
1261
|
_context32.t23 = (0, _context32.t17)(_context32.t22);
|
|
1212
1262
|
_context32.t24 = [""];
|
|
@@ -1214,15 +1264,16 @@ function _test() {
|
|
|
1214
1264
|
|
|
1215
1265
|
_context32.t14.write.call(_context32.t14, _context32.t25);
|
|
1216
1266
|
|
|
1267
|
+
case 82:
|
|
1217
1268
|
execFail(data.tmpDir.name, failCommand, "Allow the state to be inspected in debug mode before the data is lost.");
|
|
1218
1269
|
return _context32.finish(38);
|
|
1219
1270
|
|
|
1220
|
-
case
|
|
1271
|
+
case 84:
|
|
1221
1272
|
case "end":
|
|
1222
1273
|
return _context32.stop();
|
|
1223
1274
|
}
|
|
1224
1275
|
}
|
|
1225
|
-
}, _callee11, null, [[19,, 38,
|
|
1276
|
+
}, _callee11, null, [[19,, 38, 84], [41, 57, 60, 63], [45, 50]]);
|
|
1226
1277
|
}));
|
|
1227
1278
|
return _test.apply(this, arguments);
|
|
1228
1279
|
}
|
|
@@ -1299,8 +1350,10 @@ var packageScripts = _flatMapInstanceProperty__default["default"](rawPackageScri
|
|
|
1299
1350
|
|
|
1300
1351
|
var tmpPath = argv["tmp-dir"] ? path.resolve(argv["tmp-dir"]) : undefined;
|
|
1301
1352
|
var failCommand = argv["fail-command"];
|
|
1353
|
+
var logsToStdout = argv["logs-to-stdout"];
|
|
1302
1354
|
test({
|
|
1303
1355
|
failCommand: failCommand,
|
|
1356
|
+
logsToStdout: logsToStdout,
|
|
1304
1357
|
packageScripts: packageScripts,
|
|
1305
1358
|
projectPaths: projectPaths,
|
|
1306
1359
|
tmpPath: tmpPath
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-e2e-interop.js","sources":["../src/test-e2e-interop/cli.ts","../src/test-e2e-interop/util.ts","../src/test-e2e-interop/test.ts","../src/test-e2e-interop/index.ts"],"sourcesContent":["import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"test-e2e-interop [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"fail-command\", {\n demandOption: false,\n describe:\n 'This command will be run in a shell (therefore commands like \"$SHELL\" will work) after failure to inspect the state.',\n type: \"string\",\n })\n .option(\"package-script\", {\n array: true,\n default: [\"clean?\", \"build!\", \"test!\", \"generate-examples-index?\"],\n demandOption: false,\n describe:\n 'The package scripts to run with each package, either \"script-name!\" to fail or \"script-name?\" to skip if the script doesn\\'t exist in given package. By default the script is used for all packages, if you want to use it only for one add package name: \"package-name script-name!\". Scripts are invoked sequentially and command line order is preserved.',\n type: \"string\",\n })\n .option(\"project\", {\n array: true,\n default: [] as string[],\n demandOption: false,\n describe:\n 'Projects to clone using Git, copy from directory or install from tarball. The format is \"package-name URL/path\".',\n type: \"string\",\n })\n .option(\"tmp-dir\", {\n demandOption: false,\n describe:\n \"The working directory for E2E testing. If omitted a new tmp dir will be created and then disposed of.\",\n type: \"string\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { execSync, spawn } from \"child_process\";\nimport { join } from \"path\";\nimport { createWriteStream, readFile } from \"fs-extra\";\n\nexport class ProjectState {\n /**\n * This will be resolved or rejected once all the tasks associated with this\n * project finish.\n */\n public promise: Promise<void>;\n /**\n * Run this to mark the project as successfully finished.\n */\n public resolve!: () => void;\n /**\n * Run this to mark the project as failed.\n */\n public reject!: (reason: Error) => void;\n /**\n * Provide information about current state of the project.\n */\n public stage = \"pending\";\n\n public constructor() {\n this.promise = new Promise<void>((resolve, reject): void => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\n/**\n * @param title\n * @param details\n */\nexport function logError(title: string, details?: string | Error): void {\n const wrappedDetails =\n details != null\n ? `\\n${details instanceof Error ? details.message : details}`\n : \"\";\n process.stderr.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n/**\n * @param title\n * @param details\n */\nexport function logInfo(title: string, details?: string): void {\n const wrappedDetails = details ? `:\\n${details}` : \"\";\n process.stdout.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n\n/**\n * @param cwd\n * @param failCommand\n * @param error\n */\nexport function execFail(\n cwd: string,\n failCommand: string | null | undefined,\n error: Error | string\n): void {\n if (failCommand) {\n console.error(\"\\n\\nReason for debugging:\");\n console.error(error);\n console.error(\"\\n\\nDebuging:\");\n try {\n execSync(failCommand, {\n cwd,\n encoding: \"utf8\",\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"inherit\",\n });\n } catch (error) {\n console.error(error);\n console.error(\n \"The error above is the fail command exitting with non-zero status, not an actual failure in the interop test.\"\n );\n }\n }\n}\n\nexport type Spawn = (options: SpawnOrTrhowArgs) => Promise<void>;\n\nexport interface SpawnOrTrhowArgs {\n cmd: readonly string[];\n cwd: string;\n failCommand?: string;\n}\n/**\n * @param logDir\n * @param getState\n */\nexport function createSpawner(logDir: string, getState: () => string[]): Spawn {\n let nextId = 1;\n\n return function spawnThrow({ cmd, cwd, failCommand }): ReturnType<Spawn> {\n const id = nextId++;\n const getHeaderLines = (): string[] => [\n \"time: \" + new Date().toISOString(),\n \"id: \" + id,\n \"cwd: \" + cwd,\n \"cmd: \" + cmd.map((word): string => JSON.stringify(word)).join(\" \"),\n \"states:\",\n ...getState(),\n ];\n const getLogMessage = (): string =>\n getHeaderLines()\n .map((line): string => \" \" + line)\n .join(\"\\n\");\n\n logInfo(\"Start\", getLogMessage());\n\n return new Promise((resolve, reject): void => {\n const commandLogPath = join(logDir, (\"\" + id).padStart(3, \"0\") + \".log\");\n const logStream = createWriteStream(commandLogPath, {\n flags: \"a\",\n });\n\n logStream.write(getHeaderLines().join(\"\\n\") + \"\\n\\n\");\n\n const child = spawn(cmd[0], cmd.slice(1), {\n cwd,\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"pipe\",\n });\n\n child.stdout.pipe(logStream);\n child.stderr.pipe(logStream);\n\n let failed = false;\n child.on(\"close\", (code): void => {\n if (failed) {\n // noop\n } else if (code !== 0) {\n logError(\"Fail\", getLogMessage());\n\n const errorMessage = `${cmd\n .map((word): string => `\"${word}\"`)\n .join(\" \")}: exited with ${code}.`;\n\n logStream.end((): void => {\n (async (): Promise<void> => {\n let commandOutput = \"\";\n try {\n commandOutput += await readFile(commandLogPath, \"utf-8\");\n } catch (error) {\n commandOutput += \"Failed to log command output.\";\n }\n execFail(cwd, failCommand, commandOutput + \"\\n\\n\" + errorMessage);\n })();\n });\n\n reject(new Error(errorMessage));\n } else {\n logInfo(\"Okay\", getLogMessage());\n resolve();\n }\n });\n child.on(\"error\", (error): void => {\n failed = true;\n\n logError(\"Fail\", getLogMessage());\n\n execFail(cwd, failCommand, error);\n\n reject(error);\n });\n });\n };\n}\n","import { DirResult, dirSync, setGracefulCleanup } from \"tmp\";\nimport { resolve as resolvePath } from \"path\";\nimport findUp from \"find-up\";\nimport {\n Stats,\n copy,\n copyFile,\n lstat,\n mkdir,\n mkdirp,\n readFile,\n readdir,\n writeFile,\n unlink,\n} from \"fs-extra\";\n\nimport {\n ProjectState,\n Spawn,\n createSpawner,\n execFail,\n logError,\n logInfo,\n} from \"./util\";\n\n// Remove all temporary files on process exit.\nsetGracefulCleanup();\n\ninterface TestData {\n failCommand?: string;\n packageScripts: readonly PackageScript[];\n projectPaths: ProjectPaths;\n tmpDir: DirResult;\n tmpLogsResolve(...paths: string[]): string;\n tmpReposResolve(...paths: string[]): string;\n tmpRootResolve(...paths: string[]): string;\n visDevUtilsPath: string;\n}\n\nexport interface PackageScript {\n packageName: string | null;\n scriptName: string;\n skipIfMissing: boolean;\n}\n\nexport type ProjectPaths = Record<string, string>;\n\n/**\n * @param tmpPath\n */\nasync function prepareTmpDir(tmpPath?: string): Promise<DirResult> {\n if (tmpPath) {\n await mkdirp(tmpPath);\n\n return {\n name: tmpPath,\n removeCallback: (): void => {},\n };\n } else {\n return dirSync({ unsafeCleanup: true });\n }\n}\n\n/**\n * @param projectName\n */\nfunction getTarballName(projectName: string): string {\n return `${projectName}-0.0.0-no-version.tgz`;\n}\n\n/**\n * @param root0\n * @param root0.tmpRootResolve\n * @param projectName\n */\nfunction getTarballPath(\n { tmpRootResolve }: TestData,\n projectName: string\n): string {\n return tmpRootResolve(`${projectName}.tgz`);\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function copyTarball(data: TestData, projectName: string): Promise<void> {\n await copyFile(\n data.tmpReposResolve(projectName, getTarballName(projectName)),\n getTarballPath(data, projectName)\n );\n}\n\n/**\n * @param cwd\n */\nasync function getPackageDeps(cwd: string): Promise<string[]> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n return [\n ...new Set([\n ...Object.keys(packageJSON.dependencies || {}),\n ...Object.keys(packageJSON.devDependencies || {}),\n ...Object.keys(packageJSON.peerDependencies || {}),\n ]),\n ];\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function getPackageLocalDeps(\n data: TestData,\n projectName: string\n): Promise<string[]> {\n const { projectPaths, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n return (await getPackageDeps(cwd)).filter(\n (depName): boolean => projectPaths[depName] != null\n );\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function clone(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, projectPaths, tmpReposResolve } = data;\n\n const cwd = tmpReposResolve();\n const projectPath = projectPaths[projectName];\n\n if (/\\.git$/.test(projectPath)) {\n await spawn({\n cmd: [\n \"git\",\n \"clone\",\n projectPath,\n \"--single-branch\",\n \"--branch\",\n \"master\",\n \"--depth\",\n \"1\",\n ],\n cwd,\n failCommand,\n });\n } else {\n await copy(projectPath, tmpReposResolve(projectName), {\n filter(_src, dest): boolean {\n return (\n !/[\\\\/].git[\\\\/]/.test(dest) && !/[\\\\/]node_modules[\\\\/]/.test(dest)\n );\n },\n });\n }\n}\n\n/**\n * @param cwd\n * @param deps\n */\nasync function updatePackageDepVersions(\n cwd: string,\n deps: Record<string, string>\n): Promise<void> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n Object.keys(packageJSON.dependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.dependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.devDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.devDependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.peerDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.peerDependencies[key] = \"file:\" + deps[key];\n }\n });\n\n await writeFile(packageJSONPath, JSON.stringify(packageJSON, undefined, 4));\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function buildTestPack(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, packageScripts, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n\n await updatePackageDepVersions(\n cwd,\n (\n await getPackageLocalDeps(data, projectName)\n ).reduce<Record<string, string>>((acc, key): Record<string, string> => {\n acc[key] = getTarballPath(data, key);\n return acc;\n }, Object.create(null))\n );\n const packageLockPath = await findUp(\"package-lock.json\", { cwd });\n if (packageLockPath != null) {\n await unlink(packageLockPath);\n }\n await spawn({\n cmd: [\"npm\", \"install\"],\n cwd,\n failCommand,\n });\n\n for (const { packageName, scriptName, skipIfMissing } of packageScripts) {\n if (packageName != null && packageName !== projectName) {\n continue;\n } else if (skipIfMissing) {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName, \"--if-present\"],\n cwd,\n failCommand,\n });\n } else {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName],\n cwd,\n failCommand,\n });\n }\n }\n\n await spawn({ cmd: [\"npm\", \"pack\"], cwd, failCommand });\n\n await copyTarball(data, projectName);\n}\n\n/**\n * @param data\n */\nasync function checkTmpPath(data: TestData): Promise<void> {\n const tmpDir = data.tmpRootResolve();\n if ((await readdir(tmpDir)).length !== 0) {\n throw new Error(`The tmp dir (\"${tmpDir}\") is not empty.`);\n }\n}\n\nexport interface TestArgs {\n failCommand?: string;\n projectPaths: ProjectPaths;\n packageScripts: readonly PackageScript[];\n tmpPath?: string;\n}\n/**\n * @param root0\n * @param root0.failCommand\n * @param root0.packageScripts\n * @param root0.projectPaths\n * @param root0.tmpPath\n */\nexport async function test({\n failCommand,\n packageScripts,\n projectPaths,\n tmpPath,\n}: TestArgs): Promise<boolean> {\n if (process.env.VIS_INTEROP === \"1\") {\n // This would result in infinite loop otherwise.\n logInfo(\"Skipping interop test.\");\n return true;\n }\n\n const data = Object.freeze<TestData>({\n failCommand,\n packageScripts,\n projectPaths,\n tmpDir: await prepareTmpDir(\n tmpPath ? resolvePath(tmpPath, \"repos\") : undefined\n ),\n tmpLogsResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"logs\", ...paths),\n tmpReposResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"repos\", ...paths),\n tmpRootResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, ...paths),\n visDevUtilsPath: process.cwd(),\n });\n\n const projectStatuses = new Map<string, ProjectState>(\n Object.keys(data.projectPaths).map((project): [string, ProjectState] => [\n project,\n new ProjectState(),\n ])\n );\n /**\n *\n */\n function getStages(): string[] {\n return [...projectStatuses].map(\n ([key, { stage }]): string => ` ${key}: ${stage}`\n );\n }\n\n try {\n const spawn = createSpawner(data.tmpLogsResolve(), getStages);\n\n await checkTmpPath(data);\n\n // Prepare subdirectories under the root tmp directory.\n await Promise.all(\n [\"repos\", \"logs\"].map(\n (dir): Promise<void> => mkdir(resolvePath(data.tmpDir.name, dir))\n )\n );\n\n logInfo(\"Begin\", getStages().join(\"\\n\"));\n await Promise.all(\n [...projectStatuses].map(async ([projectName, state]): Promise<void> => {\n try {\n state.stage = \"preparing\";\n const projectPath = data.projectPaths[projectName];\n const stats = await (async (): Promise<Stats | null> => {\n try {\n return await lstat(projectPath);\n } catch {\n return null;\n }\n })();\n if (stats?.isFile()) {\n // The path points to a ready to install tarball.\n state.stage = \"copying tarball\";\n await copyFile(projectPath, getTarballPath(data, projectName));\n state.stage = \"tarball copied\";\n } else {\n // The path points to a repo (maybe remote) that has to be built,\n // tested and packed first.\n state.stage = \"cloning\";\n await clone(spawn, data, projectName);\n\n state.stage = \"gathering dependencies\";\n const failedDeps: string[] = [];\n const localDeps = await getPackageLocalDeps(data, projectName);\n state.stage = `waiting for dependencies (${localDeps.join(\", \")})`;\n for (const localDep of localDeps) {\n const depStatus = projectStatuses.get(localDep);\n if (depStatus == null) {\n throw new Error(`Dependency ${localDep} not found.`);\n }\n\n try {\n await depStatus.promise;\n } catch {\n failedDeps.push(localDep);\n }\n }\n if (failedDeps.length > 0) {\n state.stage = `dependencies failed: ${failedDeps.join(\", \")}`;\n throw new Error(state.stage);\n }\n\n state.stage = \"running CI tasks\";\n await buildTestPack(spawn, data, projectName);\n state.stage = \"cloned, built, tested and packed\";\n }\n\n logInfo(`Okay ${projectName}`, getStages().join(\"\\n\"));\n state.resolve();\n } catch (error) {\n logError(\n `Fail ${projectName} (${state.stage}):`,\n getStages().join(\"\\n\")\n );\n state.reject(error);\n }\n })\n );\n\n const allSucceeded = (\n await Promise.allSettled(\n [...projectStatuses.values()].map(\n (status): Promise<void> => status.promise\n )\n )\n ).every(({ status }): boolean => status === \"fulfilled\");\n\n if (allSucceeded) {\n return true;\n } else {\n return false;\n }\n } finally {\n // Wait for all the projects to finish and log the state summary and any\n // errors encountered.\n logInfo(\"End\", getStages().join(\"\\n\"));\n for (const [projectName, { promise }] of projectStatuses) {\n try {\n await promise;\n } catch (error) {\n logError(`${projectName} failed with`, error);\n }\n }\n\n // Print the detailed logs for inspection (especially in CI).\n logInfo(\"Outputs\");\n process.stdout.write(\n [\n \"\",\n ...(await Promise.all(\n (\n await readdir(data.tmpLogsResolve())\n ).map(\n (filename): Promise<string> =>\n readFile(data.tmpLogsResolve(filename), \"UTF-8\")\n )\n )),\n \"\",\n ].join(\"\\n\\n\" + (\"-\".repeat(80) + \"\\n\").repeat(2) + \"\\n\")\n );\n\n execFail(\n data.tmpDir.name,\n failCommand,\n \"Allow the state to be inspected in debug mode before the data is lost.\"\n );\n }\n}\n","import { parseArguments } from \"./cli\";\nimport { resolve } from \"path\";\nimport { ProjectPaths, PackageScript, test } from \"./test\";\n\nconst argv = parseArguments();\n\nconst projectPaths: ProjectPaths = argv[\"project\"]\n .map((raw): [string, string] => {\n const [name, path] = raw.split(\" \", 2);\n\n if (typeof name === \"string\" && typeof path === \"string\") {\n if (/^[a-zA-Z0-9]+:\\/\\//.test(path)) {\n // Remote URL, use as is.\n return [name, path];\n } else {\n // Local path, resolve to prevent CWD issues.\n return [name, resolve(path)];\n }\n } else {\n console.error(\n `--project-path should be in 'project-name ./path' format, got '${raw}'.`\n );\n process.exit(1);\n }\n })\n .reduce<ProjectPaths>((acc, [name, path]): ProjectPaths => {\n acc[name] = path;\n return acc;\n }, {});\n\nconst rawPackageScriptArg = argv[\"package-script\"];\nconst packageScripts: PackageScript[] = rawPackageScriptArg.flatMap(\n (raw): PackageScript[] => {\n const packageScripts: PackageScript[] = [];\n\n let packageName: string | null = null;\n for (const part of raw.split(\" \")) {\n const mode = part.slice(-1);\n\n if (mode === \"?\" || mode === \"!\") {\n packageScripts.push({\n packageName,\n scriptName: part.slice(0, -1),\n skipIfMissing: mode === \"?\",\n });\n } else {\n packageName = part;\n }\n }\n\n return packageScripts;\n }\n);\n\nconst tmpPath = argv[\"tmp-dir\"] ? resolve(argv[\"tmp-dir\"]) : undefined;\n\nconst failCommand = argv[\"fail-command\"];\n\ntest({ failCommand, packageScripts, projectPaths, tmpPath })\n .then((allSucceeded): void => {\n if (!allSucceeded) {\n process.exitCode = 1;\n }\n })\n .catch((reason): void => {\n console.error(reason);\n process.exitCode = 2;\n });\n"],"names":["y","yargs","strict","usage","hide","config","help","option","demandOption","describe","type","array","default","parseArguments","parserConfiguration","parseSync","ProjectState","promise","resolve","reject","logError","title","details","wrappedDetails","Error","message","process","stderr","write","logInfo","stdout","execFail","cwd","failCommand","error","console","execSync","encoding","env","VIS_INTEROP","stdio","createSpawner","logDir","getState","nextId","spawnThrow","cmd","id","getHeaderLines","Date","toISOString","_mapInstanceProperty","word","_JSON$stringify","join","getLogMessage","line","commandLogPath","_padStartInstanceProperty","logStream","createWriteStream","flags","child","spawn","_sliceInstanceProperty","pipe","failed","on","code","errorMessage","end","commandOutput","readFile","setGracefulCleanup","prepareTmpDir","tmpPath","mkdirp","name","removeCallback","dirSync","unsafeCleanup","getTarballName","projectName","getTarballPath","tmpRootResolve","copyTarball","data","copyFile","tmpReposResolve","getPackageDeps","findUp","packageJSONPath","JSON","packageJSON","parse","_Object$keys","dependencies","devDependencies","peerDependencies","getPackageLocalDeps","projectPaths","depName","clone","projectPath","test","copy","filter","_src","dest","updatePackageDepVersions","deps","key","Object","prototype","hasOwnProperty","call","writeFile","undefined","buildTestPack","packageScripts","acc","_Object$create","packageLockPath","unlink","packageName","scriptName","skipIfMissing","checkTmpPath","tmpDir","readdir","length","getStages","projectStatuses","stage","resolvePath","paths","tmpLogsResolve","visDevUtilsPath","project","_Promise","all","dir","mkdir","state","_asyncToGenerator","lstat","stats","isFile","failedDeps","localDeps","localDep","depStatus","get","push","allSettled","_valuesInstanceProperty","status","allSucceeded","filename","_repeatInstanceProperty","argv","_reduceInstanceProperty","raw","split","path","exit","rawPackageScriptArg","_flatMapInstanceProperty","part","mode","then","exitCode","catch","reason"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-e2e-interop.js","sources":["../src/test-e2e-interop/cli.ts","../src/test-e2e-interop/util.ts","../src/test-e2e-interop/test.ts","../src/test-e2e-interop/index.ts"],"sourcesContent":["import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"test-e2e-interop [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"fail-command\", {\n demandOption: false,\n describe:\n 'This command will be run in a shell (therefore commands like \"$SHELL\" will work) after failure to inspect the state.',\n type: \"string\",\n })\n .option(\"package-script\", {\n array: true,\n default: [\"clean?\", \"build!\", \"test!\", \"generate-examples-index?\"],\n demandOption: false,\n describe:\n 'The package scripts to run with each package, either \"script-name!\" to fail or \"script-name?\" to skip if the script doesn\\'t exist in given package. By default the script is used for all packages, if you want to use it only for one add package name: \"package-name script-name!\". Scripts are invoked sequentially and command line order is preserved.',\n type: \"string\",\n })\n .option(\"project\", {\n array: true,\n default: [] as string[],\n demandOption: false,\n describe:\n 'Projects to clone using Git, copy from directory or install from tarball. The format is \"package-name URL/path\".',\n type: \"string\",\n })\n .option(\"tmp-dir\", {\n demandOption: false,\n describe:\n \"The working directory for E2E testing. If omitted a new tmp dir will be created and then disposed of.\",\n type: \"string\",\n })\n .option(\"logs-to-stdout\", {\n demandOption: false,\n default: false,\n describe: \"Output the logs to the stdout after the tests finished.\",\n type: \"boolean\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { execSync, spawn } from \"child_process\";\nimport { basename, join } from \"path\";\nimport { createWriteStream, readFile, rename } from \"fs-extra\";\n\nexport class ProjectState {\n /**\n * This will be resolved or rejected once all the tasks associated with this\n * project finish.\n */\n public promise: Promise<void>;\n /**\n * Run this to mark the project as successfully finished.\n */\n public resolve!: () => void;\n /**\n * Run this to mark the project as failed.\n */\n public reject!: (reason: Error) => void;\n /**\n * Provide information about current state of the project.\n */\n public stage = \"pending\";\n\n public constructor() {\n this.promise = new Promise<void>((resolve, reject): void => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\n/**\n * Output formatted error message to stderr.\n *\n * @param title - Some explanatory text as to what's going on.\n * @param details - The error or some other message as to what went wrong.\n */\nexport function logError(title: string, details?: unknown): void {\n const wrappedDetails =\n details != null\n ? `\\n${details instanceof Error ? details.message : details}`\n : \"\";\n process.stderr.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n/**\n * @param title\n * @param details\n */\nexport function logInfo(title: string, details?: string): void {\n const wrappedDetails = details ? `:\\n${details}` : \"\";\n process.stdout.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n\n/**\n * @param cwd\n * @param failCommand\n * @param error\n */\nexport function execFail(\n cwd: string,\n failCommand: string | null | undefined,\n error: Error | string\n): void {\n if (failCommand) {\n console.error(\"\\n\\nReason for debugging:\");\n console.error(error);\n console.error(\"\\n\\nDebuging:\");\n try {\n execSync(failCommand, {\n cwd,\n encoding: \"utf8\",\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"inherit\",\n });\n } catch (error) {\n console.error(error);\n console.error(\n \"The error above is the fail command exitting with non-zero status, not an actual failure in the interop test.\"\n );\n }\n }\n}\n\nexport type Spawn = (options: SpawnOrTrhowArgs) => Promise<void>;\n\nexport interface SpawnOrTrhowArgs {\n cmd: readonly string[];\n cwd: string;\n failCommand?: string;\n}\n/**\n * @param logDir\n * @param getState\n */\nexport function createSpawner(logDir: string, getState: () => string[]): Spawn {\n let nextId = 1;\n\n return function spawnThrow({ cmd, cwd, failCommand }): ReturnType<Spawn> {\n const id = nextId++;\n const getHeaderLines = (): string[] => [\n \"time: \" + new Date().toISOString(),\n \"id: \" + id,\n \"cwd: \" + cwd,\n \"cmd: \" + cmd.map((word): string => JSON.stringify(word)).join(\" \"),\n \"states:\",\n ...getState(),\n ];\n const getLogMessage = (): string =>\n getHeaderLines()\n .map((line): string => \" \" + line)\n .join(\"\\n\");\n\n logInfo(\"Start\", getLogMessage());\n\n return new Promise((resolve, reject): void => {\n const commandLogPath = join(\n logDir,\n [\n basename(cwd).replace(/[^a-zA-Z0-9]+/g, \"-\"),\n cmd.join(\"-\").replace(/[^a-zA-Z0-9]+/g, \"-\"),\n \"id-\" + (\"\" + id).padStart(3, \"0\"),\n \"log\",\n ].join(\".\")\n );\n const logStream = createWriteStream(commandLogPath, {\n flags: \"a\",\n });\n\n logStream.write(getHeaderLines().join(\"\\n\") + \"\\n\\n\");\n\n const child = spawn(cmd[0], cmd.slice(1), {\n cwd,\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"pipe\",\n });\n\n child.stdout.pipe(logStream);\n child.stderr.pipe(logStream);\n\n /**\n * Add status to the file name just before the .log extension on a best\n * effort basis (no errors reported)..\n *\n * @param code - The code or other kind of status to append.\n */\n function addStatusCodeToFilename(code: string | number): void {\n const newPath =\n commandLogPath.slice(0, -4) + \".status-\" + code + \".log\";\n rename(commandLogPath, newPath).catch((error): void => {\n console.error(`Failed to rename log file to ${newPath}.`, error);\n });\n }\n\n let failed = false;\n child.on(\"close\", (code): void => {\n if (failed) {\n // noop\n } else if (code !== 0) {\n logError(\"Fail\", getLogMessage());\n\n const errorMessage = `${cmd\n .map((word): string => `\"${word}\"`)\n .join(\" \")}: exited with ${code}.`;\n\n logStream.end((): void => {\n (async (): Promise<void> => {\n let commandOutput = \"\";\n try {\n commandOutput += await readFile(commandLogPath, \"utf-8\");\n } catch (error) {\n commandOutput += \"Failed to log command output.\";\n }\n execFail(cwd, failCommand, commandOutput + \"\\n\\n\" + errorMessage);\n })();\n });\n\n addStatusCodeToFilename(code ?? \"null\");\n reject(new Error(errorMessage));\n } else {\n logInfo(\"Okay\", getLogMessage());\n addStatusCodeToFilename(code);\n resolve();\n }\n });\n child.on(\"error\", (error): void => {\n failed = true;\n\n logError(\"Fail\", getLogMessage());\n\n execFail(cwd, failCommand, error);\n\n addStatusCodeToFilename(\"error\");\n reject(error);\n });\n });\n };\n}\n","import { DirResult, dirSync, setGracefulCleanup } from \"tmp\";\nimport { resolve as resolvePath } from \"path\";\nimport findUp from \"find-up\";\nimport {\n Stats,\n copy,\n copyFile,\n lstat,\n mkdir,\n mkdirp,\n readFile,\n readdir,\n writeFile,\n unlink,\n} from \"fs-extra\";\n\nimport {\n ProjectState,\n Spawn,\n createSpawner,\n execFail,\n logError,\n logInfo,\n} from \"./util\";\n\n// Remove all temporary files on process exit.\nsetGracefulCleanup();\n\ninterface TestData {\n failCommand?: string;\n packageScripts: readonly PackageScript[];\n projectPaths: ProjectPaths;\n tmpDir: DirResult;\n tmpLogsResolve(...paths: string[]): string;\n tmpReposResolve(...paths: string[]): string;\n tmpRootResolve(...paths: string[]): string;\n visDevUtilsPath: string;\n}\n\nexport interface PackageScript {\n packageName: string | null;\n scriptName: string;\n skipIfMissing: boolean;\n}\n\nexport type ProjectPaths = Record<string, string>;\n\n/**\n * @param tmpPath\n */\nasync function prepareTmpDir(tmpPath?: string): Promise<DirResult> {\n if (tmpPath) {\n await mkdirp(tmpPath);\n\n return {\n name: tmpPath,\n removeCallback: (): void => {},\n };\n } else {\n return dirSync({ unsafeCleanup: true });\n }\n}\n\n/**\n * @param projectName\n */\nfunction getTarballName(projectName: string): string {\n return `${projectName}-0.0.0-no-version.tgz`;\n}\n\n/**\n * @param root0\n * @param root0.tmpRootResolve\n * @param projectName\n */\nfunction getTarballPath(\n { tmpRootResolve }: TestData,\n projectName: string\n): string {\n return tmpRootResolve(`${projectName}.tgz`);\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function copyTarball(data: TestData, projectName: string): Promise<void> {\n await copyFile(\n data.tmpReposResolve(projectName, getTarballName(projectName)),\n getTarballPath(data, projectName)\n );\n}\n\n/**\n * @param cwd\n */\nasync function getPackageDeps(cwd: string): Promise<string[]> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n return [\n ...new Set([\n ...Object.keys(packageJSON.dependencies || {}),\n ...Object.keys(packageJSON.devDependencies || {}),\n ...Object.keys(packageJSON.peerDependencies || {}),\n ]),\n ];\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function getPackageLocalDeps(\n data: TestData,\n projectName: string\n): Promise<string[]> {\n const { projectPaths, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n return (await getPackageDeps(cwd)).filter(\n (depName): boolean => projectPaths[depName] != null\n );\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function clone(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, projectPaths, tmpReposResolve } = data;\n\n const cwd = tmpReposResolve();\n const projectPath = projectPaths[projectName];\n\n if (/\\.git$/.test(projectPath)) {\n await spawn({\n cmd: [\n \"git\",\n \"clone\",\n projectPath,\n \"--single-branch\",\n \"--branch\",\n \"master\",\n \"--depth\",\n \"1\",\n ],\n cwd,\n failCommand,\n });\n } else {\n await copy(projectPath, tmpReposResolve(projectName), {\n filter(_src, dest): boolean {\n return (\n !/[\\\\/].git[\\\\/]/.test(dest) && !/[\\\\/]node_modules[\\\\/]/.test(dest)\n );\n },\n });\n }\n}\n\n/**\n * @param cwd\n * @param deps\n */\nasync function updatePackageDepVersions(\n cwd: string,\n deps: Record<string, string>\n): Promise<void> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n Object.keys(packageJSON.dependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.dependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.devDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.devDependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.peerDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.peerDependencies[key] = \"file:\" + deps[key];\n }\n });\n\n await writeFile(packageJSONPath, JSON.stringify(packageJSON, undefined, 4));\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function buildTestPack(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, packageScripts, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n\n await updatePackageDepVersions(\n cwd,\n (\n await getPackageLocalDeps(data, projectName)\n ).reduce<Record<string, string>>((acc, key): Record<string, string> => {\n acc[key] = getTarballPath(data, key);\n return acc;\n }, Object.create(null))\n );\n const packageLockPath = await findUp(\"package-lock.json\", { cwd });\n if (packageLockPath != null) {\n await unlink(packageLockPath);\n }\n await spawn({\n cmd: [\"npm\", \"install\"],\n cwd,\n failCommand,\n });\n\n for (const { packageName, scriptName, skipIfMissing } of packageScripts) {\n if (packageName != null && packageName !== projectName) {\n continue;\n } else if (skipIfMissing) {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName, \"--if-present\"],\n cwd,\n failCommand,\n });\n } else {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName],\n cwd,\n failCommand,\n });\n }\n }\n\n await spawn({ cmd: [\"npm\", \"pack\"], cwd, failCommand });\n\n await copyTarball(data, projectName);\n}\n\n/**\n * @param data\n */\nasync function checkTmpPath(data: TestData): Promise<void> {\n const tmpDir = data.tmpRootResolve();\n if ((await readdir(tmpDir)).length !== 0) {\n throw new Error(`The tmp dir (\"${tmpDir}\") is not empty.`);\n }\n}\n\nexport interface TestArgs {\n failCommand?: string;\n logsToStdout?: boolean;\n packageScripts: readonly PackageScript[];\n projectPaths: ProjectPaths;\n tmpPath?: string;\n}\n/**\n * @param root0\n * @param root0.failCommand\n * @param root0.logsToStdout\n * @param root0.packageScripts\n * @param root0.projectPaths\n * @param root0.tmpPath\n */\nexport async function test({\n failCommand,\n logsToStdout,\n packageScripts,\n projectPaths,\n tmpPath,\n}: TestArgs): Promise<boolean> {\n if (process.env.VIS_INTEROP === \"1\") {\n // This would result in infinite loop otherwise.\n logInfo(\"Skipping interop test.\");\n return true;\n }\n\n const data = Object.freeze<TestData>({\n failCommand,\n packageScripts,\n projectPaths,\n tmpDir: await prepareTmpDir(\n tmpPath ? resolvePath(tmpPath, \"repos\") : undefined\n ),\n tmpLogsResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"logs\", ...paths),\n tmpReposResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"repos\", ...paths),\n tmpRootResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, ...paths),\n visDevUtilsPath: process.cwd(),\n });\n\n const projectStatuses = new Map<string, ProjectState>(\n Object.keys(data.projectPaths).map((project): [string, ProjectState] => [\n project,\n new ProjectState(),\n ])\n );\n /**\n *\n */\n function getStages(): string[] {\n return [...projectStatuses].map(\n ([key, { stage }]): string => ` ${key}: ${stage}`\n );\n }\n\n try {\n const spawn = createSpawner(data.tmpLogsResolve(), getStages);\n\n await checkTmpPath(data);\n\n // Prepare subdirectories under the root tmp directory.\n await Promise.all(\n [\"repos\", \"logs\"].map(\n (dir): Promise<void> => mkdir(resolvePath(data.tmpDir.name, dir))\n )\n );\n\n logInfo(\"Begin\", getStages().join(\"\\n\"));\n await Promise.all(\n [...projectStatuses].map(async ([projectName, state]): Promise<void> => {\n try {\n state.stage = \"preparing\";\n const projectPath = data.projectPaths[projectName];\n const stats = await (async (): Promise<Stats | null> => {\n try {\n return await lstat(projectPath);\n } catch {\n return null;\n }\n })();\n if (stats?.isFile()) {\n // The path points to a ready to install tarball.\n state.stage = \"copying tarball\";\n await copyFile(projectPath, getTarballPath(data, projectName));\n state.stage = \"tarball copied\";\n } else {\n // The path points to a repo (maybe remote) that has to be built,\n // tested and packed first.\n state.stage = \"cloning\";\n await clone(spawn, data, projectName);\n\n state.stage = \"gathering dependencies\";\n const failedDeps: string[] = [];\n const localDeps = await getPackageLocalDeps(data, projectName);\n state.stage = `waiting for dependencies (${localDeps.join(\", \")})`;\n for (const localDep of localDeps) {\n const depStatus = projectStatuses.get(localDep);\n if (depStatus == null) {\n throw new Error(`Dependency ${localDep} not found.`);\n }\n\n try {\n await depStatus.promise;\n } catch {\n failedDeps.push(localDep);\n }\n }\n if (failedDeps.length > 0) {\n state.stage = `dependencies failed: ${failedDeps.join(\", \")}`;\n throw new Error(state.stage);\n }\n\n state.stage = \"running CI tasks\";\n await buildTestPack(spawn, data, projectName);\n state.stage = \"cloned, built, tested and packed\";\n }\n\n logInfo(`Okay ${projectName}`, getStages().join(\"\\n\"));\n state.resolve();\n } catch (error) {\n logError(\n `Fail ${projectName} (${state.stage}):`,\n getStages().join(\"\\n\")\n );\n state.reject(error instanceof Error ? error : new Error(\"\" + error));\n }\n })\n );\n\n const allSucceeded = (\n await Promise.allSettled(\n [...projectStatuses.values()].map(\n (status): Promise<void> => status.promise\n )\n )\n ).every(({ status }): boolean => status === \"fulfilled\");\n\n if (allSucceeded) {\n return true;\n } else {\n return false;\n }\n } finally {\n // Wait for all the projects to finish and log the state summary and any\n // errors encountered.\n logInfo(\"End\", getStages().join(\"\\n\"));\n for (const [projectName, { promise }] of projectStatuses) {\n try {\n await promise;\n } catch (error) {\n logError(`${projectName} failed with`, error);\n }\n }\n\n // Print the detailed logs for inspection (especially in CI).\n if (logsToStdout) {\n logInfo(\"Outputs\");\n process.stdout.write(\n [\n \"\",\n ...(await Promise.all(\n (\n await readdir(data.tmpLogsResolve())\n ).map(\n (filename): Promise<string> =>\n readFile(data.tmpLogsResolve(filename), \"UTF-8\")\n )\n )),\n \"\",\n ].join(\"\\n\\n\" + (\"-\".repeat(80) + \"\\n\").repeat(2) + \"\\n\")\n );\n }\n\n execFail(\n data.tmpDir.name,\n failCommand,\n \"Allow the state to be inspected in debug mode before the data is lost.\"\n );\n }\n}\n","import { parseArguments } from \"./cli\";\nimport { resolve } from \"path\";\nimport { ProjectPaths, PackageScript, test } from \"./test\";\n\nconst argv = parseArguments();\n\nconst projectPaths: ProjectPaths = argv[\"project\"]\n .map((raw): [string, string] => {\n const [name, path] = raw.split(\" \", 2);\n\n if (typeof name === \"string\" && typeof path === \"string\") {\n if (/^[a-zA-Z0-9]+:\\/\\//.test(path)) {\n // Remote URL, use as is.\n return [name, path];\n } else {\n // Local path, resolve to prevent CWD issues.\n return [name, resolve(path)];\n }\n } else {\n console.error(\n `--project-path should be in 'project-name ./path' format, got '${raw}'.`\n );\n process.exit(1);\n }\n })\n .reduce<ProjectPaths>((acc, [name, path]): ProjectPaths => {\n acc[name] = path;\n return acc;\n }, {});\n\nconst rawPackageScriptArg = argv[\"package-script\"];\nconst packageScripts: PackageScript[] = rawPackageScriptArg.flatMap(\n (raw): PackageScript[] => {\n const packageScripts: PackageScript[] = [];\n\n let packageName: string | null = null;\n for (const part of raw.split(\" \")) {\n const mode = part.slice(-1);\n\n if (mode === \"?\" || mode === \"!\") {\n packageScripts.push({\n packageName,\n scriptName: part.slice(0, -1),\n skipIfMissing: mode === \"?\",\n });\n } else {\n packageName = part;\n }\n }\n\n return packageScripts;\n }\n);\n\nconst tmpPath = argv[\"tmp-dir\"] ? resolve(argv[\"tmp-dir\"]) : undefined;\n\nconst failCommand = argv[\"fail-command\"];\n\nconst logsToStdout = argv[\"logs-to-stdout\"];\n\ntest({ failCommand, logsToStdout, packageScripts, projectPaths, tmpPath })\n .then((allSucceeded): void => {\n if (!allSucceeded) {\n process.exitCode = 1;\n }\n })\n .catch((reason): void => {\n console.error(reason);\n process.exitCode = 2;\n });\n"],"names":["y","yargs","strict","usage","hide","config","help","option","demandOption","describe","type","array","default","parseArguments","parserConfiguration","parseSync","ProjectState","_createClass","_classCallCheck","_defineProperty","promise","_Promise","resolve","reject","logError","title","details","wrappedDetails","Error","message","process","stderr","write","logInfo","stdout","execFail","cwd","failCommand","error","console","execSync","encoding","env","VIS_INTEROP","stdio","createSpawner","logDir","getState","nextId","spawnThrow","cmd","id","getHeaderLines","_concatInstanceProperty","Date","toISOString","_mapInstanceProperty","word","_JSON$stringify","join","getLogMessage","line","commandLogPath","basename","replace","_padStartInstanceProperty","logStream","createWriteStream","flags","child","spawn","_sliceInstanceProperty","pipe","addStatusCodeToFilename","code","newPath","rename","catch","failed","on","errorMessage","end","_asyncToGenerator","_regeneratorRuntime","commandOutput","readFile","setGracefulCleanup","prepareTmpDir","tmpPath","mkdirp","name","removeCallback","dirSync","unsafeCleanup","getTarballName","projectName","getTarballPath","tmpRootResolve","copyTarball","data","copyFile","tmpReposResolve","getPackageDeps","findUp","packageJSONPath","JSON","packageJSON","parse","_toConsumableArray","_Set","_Object$keys","dependencies","devDependencies","peerDependencies","getPackageLocalDeps","projectPaths","_filterInstanceProperty","depName","clone","projectPath","test","copy","filter","_src","dest","updatePackageDepVersions","deps","key","Object","prototype","hasOwnProperty","call","writeFile","undefined","buildTestPack","packageScripts","_reduceInstanceProperty","acc","_Object$create","packageLockPath","unlink","_createForOfIteratorHelper","packageName","scriptName","skipIfMissing","checkTmpPath","tmpDir","readdir","length","getStages","projectStatuses","_slicedToArray","stage","logsToStdout","_Object$freeze","resolvePath","paths","tmpLogsResolve","visDevUtilsPath","_Map","project","all","dir","mkdir","state","lstat","stats","isFile","failedDeps","localDeps","localDep","depStatus","get","push","_everyInstanceProperty","allSettled","_valuesInstanceProperty","status","allSucceeded","filename","_repeatInstanceProperty","argv","raw","split","path","exit","rawPackageScriptArg","_flatMapInstanceProperty","part","mode","then","exitCode","reason"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,CAAC,GAAGC,yBAAK,CACZC,MADO,CACA,IADA,CAEPC,CAAAA,KAFO,CAED,4BAFC,EAGPC,IAHO,CAGF,SAHE,CAAA,CAIPC,MAJO,EAAA,CAKPC,IALO,EAOPC,CAAAA,MAPO,CAOA,cAPA,EAOgB;AACtBC,EAAAA,YAAY,EAAE,KADQ;AAEtBC,EAAAA,QAAQ,EACN,sHAHoB;AAItBC,EAAAA,IAAI,EAAE,QAAA;AAJgB,CAPhB,CAaPH,CAAAA,MAbO,CAaA,gBAbA,EAakB;AACxBI,EAAAA,KAAK,EAAE,IADiB;AAExBC,EAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,QAAX,EAAqB,OAArB,EAA8B,0BAA9B,CAFe;AAGxBJ,EAAAA,YAAY,EAAE,KAHU;AAIxBC,EAAAA,QAAQ,EACN,8VALsB;AAMxBC,EAAAA,IAAI,EAAE,QAAA;AANkB,CAblB,CAqBPH,CAAAA,MArBO,CAqBA,SArBA,EAqBW;AACjBI,EAAAA,KAAK,EAAE,IADU;AAEjBC,EAAAA,OAAO,EAAE,EAFQ;AAGjBJ,EAAAA,YAAY,EAAE,KAHG;AAIjBC,EAAAA,QAAQ,EACN,kHALe;AAMjBC,EAAAA,IAAI,EAAE,QAAA;AANW,CArBX,CA6BPH,CAAAA,MA7BO,CA6BA,SA7BA,EA6BW;AACjBC,EAAAA,YAAY,EAAE,KADG;AAEjBC,EAAAA,QAAQ,EACN,uGAHe;AAIjBC,EAAAA,IAAI,EAAE,QAAA;AAJW,CA7BX,CAmCPH,CAAAA,MAnCO,CAmCA,gBAnCA,EAmCkB;AACxBC,EAAAA,YAAY,EAAE,KADU;AAExBI,EAAAA,OAAO,EAAE,KAFe;AAGxBH,EAAAA,QAAQ,EAAE,yDAHc;AAIxBC,EAAAA,IAAI,EAAE,SAAA;AAJkB,CAnClB,CAAV,CAAA;AA0CA;;AAEG;;SACaG,iBAAc;AAC5B,EAAOb,OAAAA,CAAC,CAACc,mBAAF,CAAsB;AAAE,IAAwB,sBAAA,EAAA,KAAA;AAA1B,GAAtB,CAAA,CAAyDC,SAAzD,EAAP,CAAA;AACD;;;;;AC7CD,IAAaC,YAAb,gBAAAC,gCAAA;AACE;;;AAGG;;AAEH;;AAEG;;AAEH;;AAEG;;AAEH;;AAEG;AAGH,SAAA,YAAA,GAAA;AAAA,EAAA,IAAA,KAAA,GAAA,IAAA,CAAA;;AAAA,EAAAC,mCAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;;AAAA,EAAAC,mCAAA,CAAA,IAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAAA,EAAAA,mCAAA,CAAA,IAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAAA,EAAAA,mCAAA,CAAA,IAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAAA,EAAAA,mCAAA,CAAA,IAAA,EAAA,OAAA,EAFe,SAEf,CAAA,CAAA;;AACE,EAAA,IAAA,CAAKC,OAAL,GAAe,IAAAC,4BAAA,CAAkB,UAACC,OAAD,EAAUC,MAAV,EAA0B;AACzD,IAAA,KAAI,CAACD,OAAL,GAAeA,OAAf,CAAA;AACA,IAAA,KAAI,CAACC,MAAL,GAAcA,MAAd,CAAA;AACD,GAHc,CAAf,CAAA;AAID,CAxBH,CAAA,CAAA;AA2BA;;;;;AAKG;;AACa,SAAAC,QAAA,CAASC,KAAT,EAAwBC,OAAxB,EAAyC;AAAA,EAAA,IAAA,QAAA,CAAA;;AACvD,EAAA,IAAMC,cAAc,GAClBD,OAAO,IAAI,IAAX,eACSA,OAAO,YAAYE,KAAnB,GAA2BF,OAAO,CAACG,OAAnC,GAA6CH,OADtD,IAEI,EAHN,CAAA;AAIAI,EAAAA,OAAO,CAACC,MAAR,CAAeC,KAAf,CAA8BP,2CAAAA,CAAAA,QAAAA,GAAAA,QAAAA,CAAAA,MAAAA,CAAAA,KAA9B,kBAAsCE,cAAtC,EAAA,IAAA,CAAA,CAAA,CAAA;AACD,CAAA;AACD;;;AAGG;;AACa,SAAAM,OAAA,CAAQR,KAAR,EAAuBC,OAAvB,EAAuC;AAAA,EAAA,IAAA,SAAA,CAAA;;AACrD,EAAA,IAAMC,cAAc,GAAGD,OAAO,GAASA,KAAAA,CAAAA,MAAAA,CAAAA,OAAT,IAAqB,EAAnD,CAAA;AACAI,EAAAA,OAAO,CAACI,MAAR,CAAeF,KAAf,CAA8BP,2CAAAA,CAAAA,SAAAA,GAAAA,QAAAA,CAAAA,MAAAA,CAAAA,KAA9B,mBAAsCE,cAAtC,EAAA,IAAA,CAAA,CAAA,CAAA;AACD,CAAA;AAED;;;;AAIG;;SACaQ,SACdC,KACAC,aACAC,OAAqB;AAErB,EAAA,IAAID,WAAJ,EAAiB;AACfE,IAAAA,OAAO,CAACD,KAAR,CAAc,2BAAd,CAAA,CAAA;AACAC,IAAAA,OAAO,CAACD,KAAR,CAAcA,KAAd,CAAA,CAAA;AACAC,IAAAA,OAAO,CAACD,KAAR,CAAc,eAAd,CAAA,CAAA;;AACA,IAAI,IAAA;AACFE,MAAAA,sBAAQ,CAACH,WAAD,EAAc;AACpBD,QAAAA,GAAG,EAAHA,GADoB;AAEpBK,QAAAA,QAAQ,EAAE,MAFU;AAGpBC,QAAAA,GAAG,EAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EAAOZ,OAAO,CAACY,GAAf,CAAA,EAAA,EAAA,EAAA;AAAoBC,UAAAA,WAAW,EAAE,GAAA;AAAjC,SAHiB,CAAA;AAIpBC,QAAAA,KAAK,EAAE,SAAA;AAJa,OAAd,CAAR,CAAA;AAMD,KAPD,CAOE,OAAON,KAAP,EAAc;AACdC,MAAAA,OAAO,CAACD,KAAR,CAAcA,KAAd,CAAA,CAAA;AACAC,MAAAA,OAAO,CAACD,KAAR,CACE,+GADF,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;AACF,CAAA;AASD;;;AAGG;;AACa,SAAAO,aAAA,CAAcC,MAAd,EAA8BC,QAA9B,EAAsD;AACpE,EAAIC,IAAAA,MAAM,GAAG,CAAb,CAAA;AAEA,EAAO,OAAA,SAASC,UAAT,CAA6C,IAAA,EAAA;AAAA,IAAvBC,IAAAA,GAAuB,QAAvBA,GAAuB;AAAA,QAAlBd,GAAkB,QAAlBA,GAAkB;AAAA,QAAbC,WAAa,QAAbA,WAAa,CAAA;AAClD,IAAMc,IAAAA,EAAE,GAAGH,MAAM,EAAjB,CAAA;;AACA,IAAMI,IAAAA,cAAc,GAAG,SAAjBA,cAAiB,GAAA;AAAA,MAAA,IAAA,SAAA,CAAA;;AAAA,MACrB,OAAAC,2CAAA,CAAA,SAAA,GAAA,CAAA,QAAA,GAAW,IAAIC,IAAJ,EAAA,CAAWC,WAAX,EADU,EAErB,SAASJ,EAFY,EAGrB,UAAUf,GAHW,EAIrB,UAAUoB,wCAAAN,CAAAA,GAAG,MAAH,CAAAA,GAAG,EAAK,UAACO,IAAD,EAAA;AAAA,QAAkB,OAAAC,mCAAA,CAAeD,IAAf,CAAlB,CAAA;AAAA,OAAL,CAAH,CAAgDE,IAAhD,CAAqD,GAArD,CAJW,EAKrB,SALqB,CAMlBZ,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,sCAAAA,CAAAA,QAAQ,EANU,CAAA,CAAA,CAAA;AAAA,KAAvB,CAAA;;AAQA,IAAMa,IAAAA,aAAa,GAAG,SAAhBA,aAAgB,GAAA;AAAA,MAAA,IAAA,SAAA,CAAA;;AAAA,MAAA,OACpBJ,wCAAAJ,CAAAA,SAAAA,GAAAA,cAAc,EAAd,CAAA,CAAA,IAAA,CAAA,SAAA,EACO,UAACS,IAAD,EAAA;AAAA,QAAA,OAAkB,OAAOA,IAAzB,CAAA;AAAA,OADP,CAEGF,CAAAA,IAFH,CAEQ,IAFR,CADoB,CAAA;AAAA,KAAtB,CAAA;;AAKA1B,IAAAA,OAAO,CAAC,OAAD,EAAU2B,aAAa,EAAvB,CAAP,CAAA;AAEA,IAAA,OAAO,IAAYvC,4BAAA,CAAA,UAACC,OAAD,EAAUC,MAAV,EAA0B;AAAA,MAAA,IAAA,SAAA,CAAA;;AAC3C,MAAMuC,IAAAA,cAAc,GAAGH,SAAI,CACzBb,MADyB,EAEzB,CACEiB,aAAQ,CAAC3B,GAAD,CAAR,CAAc4B,OAAd,CAAsB,gBAAtB,EAAwC,GAAxC,CADF,EAEEd,GAAG,CAACS,IAAJ,CAAS,GAAT,EAAcK,OAAd,CAAsB,gBAAtB,EAAwC,GAAxC,CAFF,EAGE,KAAA,GAAQC,6CAAC,CAAA,SAAA,GAAA,EAAA,GAAKd,EAAN,CAAA,CAAA,IAAA,CAAA,SAAA,EAAmB,CAAnB,EAAsB,GAAtB,CAHV,EAIE,KAJF,EAKEQ,IALF,CAKO,GALP,CAFyB,CAA3B,CAAA;AASA,MAAA,IAAMO,SAAS,GAAGC,yBAAiB,CAACL,cAAD,EAAiB;AAClDM,QAAAA,KAAK,EAAE,GAAA;AAD2C,OAAjB,CAAnC,CAAA;AAIAF,MAAAA,SAAS,CAAClC,KAAV,CAAgBoB,cAAc,GAAGO,IAAjB,CAAsB,IAAtB,CAAA,GAA8B,MAA9C,CAAA,CAAA;AAEA,MAAA,IAAMU,KAAK,GAAGC,mBAAK,CAACpB,GAAG,CAAC,CAAD,CAAJ,EAASqB,0CAAA,CAAArB,GAAG,CAAH,CAAA,IAAA,CAAAA,GAAG,EAAO,CAAP,CAAZ,EAAuB;AACxCd,QAAAA,GAAG,EAAHA,GADwC;AAExCM,QAAAA,GAAG,EAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EAAOZ,OAAO,CAACY,GAAf,CAAA,EAAA,EAAA,EAAA;AAAoBC,UAAAA,WAAW,EAAE,GAAA;AAAjC,SAFqC,CAAA;AAGxCC,QAAAA,KAAK,EAAE,MAAA;AAHiC,OAAvB,CAAnB,CAAA;AAMAyB,MAAAA,KAAK,CAACnC,MAAN,CAAasC,IAAb,CAAkBN,SAAlB,CAAA,CAAA;AACAG,MAAAA,KAAK,CAACtC,MAAN,CAAayC,IAAb,CAAkBN,SAAlB,CAAA,CAAA;AAEA;;;;;AAKG;;AACH,MAASO,SAAAA,uBAAT,CAAiCC,IAAjC,EAAsD;AACpD,QAAA,IAAMC,OAAO,GACXJ,0CAAA,CAAAT,cAAc,CAAd,CAAA,IAAA,CAAAA,cAAc,EAAO,CAAP,EAAU,CAAC,CAAX,CAAd,GAA8B,UAA9B,GAA2CY,IAA3C,GAAkD,MADpD,CAAA;AAEAE,QAAAA,cAAM,CAACd,cAAD,EAAiBa,OAAjB,CAAN,CAAgCE,KAAhC,CAAsC,UAACvC,KAAD,EAAgB;AACpDC,UAAAA,OAAO,CAACD,KAAR,CAA8CqC,+BAAAA,CAAAA,MAAAA,CAAAA,OAA9C,QAA0DrC,KAA1D,CAAA,CAAA;AACD,SAFD,CAAA,CAAA;AAGD,OAAA;;AAED,MAAIwC,IAAAA,MAAM,GAAG,KAAb,CAAA;AACAT,MAAAA,KAAK,CAACU,EAAN,CAAS,OAAT,EAAkB,UAACL,IAAD,EAAe;AAC/B,QAAII,IAAAA,MAAJ,EAAY,CAAZ,MAEO,IAAIJ,IAAI,KAAK,CAAb,EAAgB;AAAA,UAAA,IAAA,SAAA,CAAA;;AACrBlD,UAAAA,QAAQ,CAAC,MAAD,EAASoC,aAAa,EAAtB,CAAR,CAAA;;AAEA,UAAMoB,IAAAA,YAAY,qEAAMxB,wCAAAN,CAAAA,GAAG,MAAH,CAAAA,GAAG,EACpB,UAACO,IAAD,EAAA;AAAA,YAAA,OAAA,IAAA,CAAA,MAAA,CAAsBA,IAAtB,EAAA,IAAA,CAAA,CAAA;AAAA,WADoB,CAAH,CAErBE,IAFqB,CAEhB,GAFgB,CAAN,EAAA,gBAAA,CAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAEWe,IAFX,EAAlB,GAAA,CAAA,CAAA;;AAIAR,UAAAA,SAAS,CAACe,GAAV,CAAc,YAAW;AACvB,YAACC,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,OAAA,GAAA;AAAA,cAAA,IAAA,aAAA,CAAA;AAAA,cAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAAA,SAAA,EAAA;AAAA,gBAAA,OAAA,CAAA,EAAA;AAAA,kBAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,oBAAA,KAAA,CAAA;AACKC,sBAAAA,aADL,GACqB,EADrB,CAAA;AAAA,sBAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,sBAAA,SAAA,CAAA,EAAA,GAGGA,aAHH,CAAA;AAAA,sBAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,sBAAA,OAG0BC,gBAAQ,CAACvB,cAAD,EAAiB,OAAjB,CAHlC,CAAA;;AAAA,oBAAA,KAAA,CAAA;AAGGsB,sBAAAA,aAHH,GAAA,SAAA,CAAA,EAAA,IAAA,SAAA,CAAA,IAAA,CAAA;AAAA,sBAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,sBAAA,MAAA;;AAAA,oBAAA,KAAA,CAAA;AAAA,sBAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,sBAAA,SAAA,CAAA,EAAA,GAAA,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAKGA,sBAAAA,aAAa,IAAI,+BAAjB,CAAA;;AALH,oBAAA,KAAA,EAAA;AAOCjD,sBAAAA,QAAQ,CAACC,GAAD,EAAMC,WAAN,EAAmB+C,aAAa,GAAG,MAAhB,GAAyBJ,YAA5C,CAAR,CAAA;;AAPD,oBAAA,KAAA,EAAA,CAAA;AAAA,oBAAA,KAAA,KAAA;AAAA,sBAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,mBAAA;AAAA,iBAAA;AAAA,eAAA,EAAA,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAD,CAAA,CAAA,EAAA,CAAA;AASD,WAVD,CAAA,CAAA;AAYAP,UAAAA,uBAAuB,CAACC,IAAD,KAAA,IAAA,IAACA,IAAD,KAACA,KAAAA,CAAAA,GAAAA,IAAD,GAAS,MAAT,CAAvB,CAAA;AACAnD,UAAAA,MAAM,CAAC,IAAIK,KAAJ,CAAUoD,YAAV,CAAD,CAAN,CAAA;AACD,SArBM,MAqBA;AACL/C,UAAAA,OAAO,CAAC,MAAD,EAAS2B,aAAa,EAAtB,CAAP,CAAA;AACAa,UAAAA,uBAAuB,CAACC,IAAD,CAAvB,CAAA;AACApD,UAAAA,OAAO,EAAA,CAAA;AACR,SAAA;AACF,OA7BD,CAAA,CAAA;AA8BA+C,MAAAA,KAAK,CAACU,EAAN,CAAS,OAAT,EAAkB,UAACzC,KAAD,EAAgB;AAChCwC,QAAAA,MAAM,GAAG,IAAT,CAAA;AAEAtD,QAAAA,QAAQ,CAAC,MAAD,EAASoC,aAAa,EAAtB,CAAR,CAAA;AAEAzB,QAAAA,QAAQ,CAACC,GAAD,EAAMC,WAAN,EAAmBC,KAAnB,CAAR,CAAA;AAEAmC,QAAAA,uBAAuB,CAAC,OAAD,CAAvB,CAAA;AACAlD,QAAAA,MAAM,CAACe,KAAD,CAAN,CAAA;AACD,OATD,CAAA,CAAA;AAUD,KAhFM,CAAP,CAAA;AAiFD,GAlGD,CAAA;AAmGD;;;;;;;;AC1KDgD,sBAAkB,EAAA,CAAA;AAqBlB;;AAEG;;SACYC;;;AAaf;;AAEG;;;;AAfH,EAAA,cAAA,GAAAL,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,OAAA,CAA6BK,OAA7B,EAAA;AAAA,IAAA,OAAAL,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAAA,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,QAAA,CAAA,IAAA,GAAA,QAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,CACMK,OADN,EAAA;AAAA,cAAA,QAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,QAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAEUC,OAAAA,cAAM,CAACD,OAAD,CAFhB,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAIW,OAAA,QAAA,CAAA,MAAA,CAAA,QAAA,EAAA;AACLE,cAAAA,IAAI,EAAEF,OADD;AAELG,cAAAA,cAAc,EAAE,SAAA,cAAA,GAAW,EAAG;AAFzB,aAJX,CAAA,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,QAAA,CAAA,MAAA,CAAA,QAAA,EASWC,WAAO,CAAC;AAAEC,cAAAA,aAAa,EAAE,IAAA;AAAjB,aAAD,CATlB,CAAA,CAAA;;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,QAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,OAAA,CAAA,CAAA;AAAA;;;;AAgBA,SAASC,cAAT,CAAwBC,WAAxB,EAA2C;AACzC,EAAA,OAAA,EAAA,CAAA,MAAA,CAAUA,WAAV,EAAA,uBAAA,CAAA,CAAA;AACD,CAAA;AAED;;;;AAIG;;;AACH,SAASC,cAAT,CAEED,IAAAA,EAAAA,WAFF,EAEqB;AAAA,EADjBE,IAAAA,cACiB,QADjBA,cACiB,CAAA;AAEnB,EAAOA,OAAAA,cAAc,CAAIF,EAAAA,CAAAA,MAAAA,CAAAA,WAAJ,EAArB,MAAA,CAAA,CAAA,CAAA;AACD,CAAA;AAED;;;AAGG;;;SACYG;;;AAOf;;AAEG;;;;kHATH,SAA2BC,QAAAA,CAAAA,IAA3B,EAA2CJ,WAA3C,EAAA;AAAA,IAAA,OAAAZ,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YACQiB,OAAAA,gBAAQ,CACZD,IAAI,CAACE,eAAL,CAAqBN,WAArB,EAAkCD,cAAc,CAACC,WAAD,CAAhD,CADY,EAEZC,cAAc,CAACG,IAAD,EAAOJ,WAAP,CAFF,CADhB,CAAA;;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,CAAA,CAAA;AAAA;;;;SAUeO;;;AAgBf;;;AAGG;;;;AAnBH,EAAA,eAAA,GAAApB,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAA8B/C,GAA9B,EAAA;AAAA,IAAA,IAAA,SAAA,CAAA;;AAAA,IAAA,IAAA,eAAA,EAAA,WAAA,CAAA;AAAA,IAAA,OAAA+C,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YACgCoB,OAAAA,0BAAM,CAAC,cAAD,EAAiB;AAAEnE,cAAAA,GAAG,EAAHA,GAAAA;AAAF,aAAjB,CADtC,CAAA;;AAAA,UAAA,KAAA,CAAA;AACQoE,YAAAA,eADR,GAAA,SAAA,CAAA,IAAA,CAAA;;AAAA,YAEMA,IAAAA,EAAAA,eAAe,IAAI,IAFzB,CAAA,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,MAGU,IAAI5E,KAAJ,CAAU,wCAAV,CAHV,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAKsB6E,IALtB,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAKuCpB,gBAAQ,CAACmB,eAAD,EAAkB,MAAlB,CAL/C,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAAA,SAAA,CAAA,IAAA,CAAA;AAKQE,YAAAA,WALR,gBAK2BC,KAL3B,CAAA,IAAA,CAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA;AAAA,YAQO,OAAA,SAAA,CAAA,MAAA,CAAA,QAAA,EAAAC,sCAAA,CAAA,IAAAC,wBAAA,CAAAxD,2CAAA,CAAA,SAAA,GAAA,EAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAAAuD,sCAAA,CACEE,gCAAYJ,CAAAA,WAAW,CAACK,YAAZ,IAA4B,EAAxC,CADF,CAEE,EAAAH,sCAAA,CAAAE,gCAAA,CAAYJ,WAAW,CAACM,eAAZ,IAA+B,EAA3C,CAFF,CAAA,EAAAJ,sCAAA,CAGEE,gCAAYJ,CAAAA,WAAW,CAACO,gBAAZ,IAAgC,EAA5C,CAHF,CARP,CAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,CAAA,CAAA;AAAA;;;;SAoBeC;;;AAWf;;;;AAIG;;;;0HAfH,SACEf,QAAAA,CAAAA,IADF,EAEEJ,WAFF,EAAA;AAAA,IAAA,IAAA,SAAA,CAAA;;AAAA,IAAA,IAAA,YAAA,EAAA,eAAA,EAAA,GAAA,CAAA;AAAA,IAAA,OAAAZ,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAIUgC,YAAAA,YAJV,GAI4ChB,IAJ5C,CAIUgB,YAJV,EAIwBd,eAJxB,GAI4CF,IAJ5C,CAIwBE,eAJxB,CAAA;AAKQjE,YAAAA,GALR,GAKciE,eAAe,CAACN,WAAD,CAL7B,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAAAqB,2CAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAMgBd,OAAAA,cAAc,CAAClE,GAAD,CAN9B,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,EAAA,GAAA,SAAA,GAAA,SAAA,CAAA,IAAA,CAAA;AAAA,YAAA,OAAA,SAAA,CAAA,MAAA,CAAA,QAAA,EAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,SAAA,EAOI,UAACiF,OAAD,EAAA;AAAA,cAAA,OAAsBF,YAAY,CAACE,OAAD,CAAZ,IAAyB,IAA/C,CAAA;AAAA,aAPJ,CAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,CAAA,CAAA;AAAA;;;;SAgBeC;;;AAoCf;;;AAGG;;;;AAvCH,EAAA,MAAA,GAAApC,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CACEb,KADF,EAEE6B,IAFF,EAGEJ,WAHF,EAAA;AAAA,IAAA,IAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,GAAA,EAAA,WAAA,CAAA;AAAA,IAAA,OAAAZ,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,SAAA,CAAA,IAAA,GAAA,SAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAKU9C,YAAAA,WALV,GAKyD8D,IALzD,CAKU9D,WALV,EAKuB8E,YALvB,GAKyDhB,IALzD,CAKuBgB,YALvB,EAKqCd,eALrC,GAKyDF,IALzD,CAKqCE,eALrC,CAAA;AAOQjE,YAAAA,GAPR,GAOciE,eAAe,EAP7B,CAAA;AAQQkB,YAAAA,WARR,GAQsBJ,YAAY,CAACpB,WAAD,CARlC,CAAA;;AAAA,YAAA,IAAA,CAUM,QAASyB,CAAAA,IAAT,CAAcD,WAAd,CAVN,EAAA;AAAA,cAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAWUjD,KAAK,CAAC;AACVpB,cAAAA,GAAG,EAAE,CACH,KADG,EAEH,OAFG,EAGHqE,WAHG,EAIH,iBAJG,EAKH,UALG,EAMH,QANG,EAOH,SAPG,EAQH,GARG,CADK;AAWVnF,cAAAA,GAAG,EAAHA,GAXU;AAYVC,cAAAA,WAAW,EAAXA,WAAAA;AAZU,aAAD,CAXf,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YA0BUoF,OAAAA,YAAI,CAACF,WAAD,EAAclB,eAAe,CAACN,WAAD,CAA7B,EAA4C;AACpD2B,cAAAA,MADoD,EAAA,SAAA,MAAA,CAC7CC,IAD6C,EACvCC,IADuC,EACnC;AACf,gBAAA,OACE,CAAC,gBAAA,CAAiBJ,IAAjB,CAAsBI,IAAtB,CAAD,IAAgC,CAAC,wBAAyBJ,CAAAA,IAAzB,CAA8BI,IAA9B,CADnC,CAAA;AAGD,eAAA;AALmD,aAA5C,CA1Bd,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,SAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,CAAA,CAAA;AAAA;;;;SAwCeC;;;AA6Bf;;;;AAIG;;;;+HAjCH,SACEzF,QAAAA,CAAAA,GADF,EAEE0F,IAFF,EAAA;AAAA,IAAA,IAAA,SAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,CAAA;;AAAA,IAAA,IAAA,eAAA,EAAA,WAAA,CAAA;AAAA,IAAA,OAAA3C,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAIgCoB,OAAAA,0BAAM,CAAC,cAAD,EAAiB;AAAEnE,cAAAA,GAAG,EAAHA,GAAAA;AAAF,aAAjB,CAJtC,CAAA;;AAAA,UAAA,KAAA,CAAA;AAIQoE,YAAAA,eAJR,GAAA,UAAA,CAAA,IAAA,CAAA;;AAAA,YAKMA,IAAAA,EAAAA,eAAe,IAAI,IALzB,CAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,MAMU,IAAI5E,KAAJ,CAAU,wCAAV,CANV,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAQsB6E,IARtB,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAQuCpB,gBAAQ,CAACmB,eAAD,EAAkB,MAAlB,CAR/C,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,IAAA,CAAA;AAQQE,YAAAA,WARR,iBAQ2BC,KAR3B,CAAA,IAAA,CAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AAUE,YAAYD,4CAAAA,CAAAA,SAAAA,GAAAA,gCAAAA,CAAAA,CAAAA,qBAAAA,GAAAA,WAAW,CAACK,YAAxB,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,qBAAA,GAAwC,EAAxC,CAAoD,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAACgB,GAAD,EAAc;AAChE,cAAA,IAAIC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,IAArC,EAA2CC,GAA3C,CAAJ,EAAqD;AACnDrB,gBAAAA,WAAW,CAACK,YAAZ,CAAyBgB,GAAzB,IAAgC,OAAUD,GAAAA,IAAI,CAACC,GAAD,CAA9C,CAAA;AACD,eAAA;AACF,aAJD,CAAA,CAAA;;AAKA,YAAYrB,4CAAAA,CAAAA,SAAAA,GAAAA,gCAAAA,CAAAA,CAAAA,qBAAAA,GAAAA,WAAW,CAACM,eAAxB,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,qBAAA,GAA2C,EAA3C,CAAuD,CAAA,CAAA,IAAA,CAAA,SAAA,EAAA,UAACe,GAAD,EAAc;AACnE,cAAA,IAAIC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,IAArC,EAA2CC,GAA3C,CAAJ,EAAqD;AACnDrB,gBAAAA,WAAW,CAACM,eAAZ,CAA4Be,GAA5B,IAAmC,OAAUD,GAAAA,IAAI,CAACC,GAAD,CAAjD,CAAA;AACD,eAAA;AACF,aAJD,CAAA,CAAA;;AAKA,YAAYrB,4CAAAA,CAAAA,UAAAA,GAAAA,gCAAAA,CAAAA,CAAAA,qBAAAA,GAAAA,WAAW,CAACO,gBAAxB,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,qBAAA,GAA4C,EAA5C,CAAwD,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAACc,GAAD,EAAc;AACpE,cAAA,IAAIC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,IAArC,EAA2CC,GAA3C,CAAJ,EAAqD;AACnDrB,gBAAAA,WAAW,CAACO,gBAAZ,CAA6Bc,GAA7B,IAAoC,OAAUD,GAAAA,IAAI,CAACC,GAAD,CAAlD,CAAA;AACD,eAAA;AACF,aAJD,CAAA,CAAA;;AApBF,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YA0BQK,OAAAA,iBAAS,CAAC5B,eAAD,EAAkB9C,mCAAA,CAAegD,WAAf,EAA4B2B,SAA5B,EAAuC,CAAvC,CAAlB,CA1BjB,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,CAAA,CAAA;AAAA;;;;SAkCeC;;;AAkDf;;AAEG;;;;AApDH,EAAA,cAAA,GAAApD,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CACEb,KADF,EAEE6B,IAFF,EAGEJ,WAHF,EAAA;AAAA,IAAA,IAAA,UAAA,CAAA;;AAAA,IAAA,IAAA,WAAA,EAAA,cAAA,EAAA,eAAA,EAAA,GAAA,EAAA,eAAA,EAAA,SAAA,EAAA,KAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,CAAA;;AAAA,IAAA,OAAAZ,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAKU9C,YAAAA,WALV,GAK2D8D,IAL3D,CAKU9D,WALV,EAKuBkG,cALvB,GAK2DpC,IAL3D,CAKuBoC,cALvB,EAKuClC,eALvC,GAK2DF,IAL3D,CAKuCE,eALvC,CAAA;AAMQjE,YAAAA,GANR,GAMciE,eAAe,CAACN,WAAD,CAN7B,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAQQ8B,wBARR,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GASIzF,GATJ,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAAoG,2CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAWYtB,mBAAmB,CAACf,IAAD,EAAOJ,WAAP,CAX/B,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA,UAAA,GAAA,UAAA,CAAA,IAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA,IAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAYqC,UAAC0C,GAAD,EAAMV,GAAN,EAAqC;AACpEU,cAAAA,GAAG,CAACV,GAAD,CAAH,GAAW/B,cAAc,CAACG,IAAD,EAAO4B,GAAP,CAAzB,CAAA;AACA,cAAA,OAAOU,GAAP,CAAA;AACD,aAfL,EAeOC,kCAAc,CAAA,IAAd,CAfP,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAAA,IAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAiBgCnC,OAAAA,0BAAM,CAAC,mBAAD,EAAsB;AAAEnE,cAAAA,GAAG,EAAHA,GAAAA;AAAF,aAAtB,CAjBtC,CAAA;;AAAA,UAAA,KAAA,EAAA;AAiBQuG,YAAAA,eAjBR,GAAA,UAAA,CAAA,IAAA,CAAA;;AAAA,YAkBMA,IAAAA,EAAAA,eAAe,IAAI,IAlBzB,CAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAmBUC,OAAAA,cAAM,CAACD,eAAD,CAnBhB,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAqBQrE,KAAK,CAAC;AACVpB,cAAAA,GAAG,EAAE,CAAC,KAAD,EAAQ,SAAR,CADK;AAEVd,cAAAA,GAAG,EAAHA,GAFU;AAGVC,cAAAA,WAAW,EAAXA,WAAAA;AAHU,aAAD,CArBb,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,SAAA,GAAAwG,4BAAA,CA2B2DN,cA3B3D,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,YAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,CAAA,KAAA,GAAA,SAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YA2BeO,WAAAA,GAAAA,KAAAA,CAAAA,KAAAA,EAAAA,WA3Bf,GA2BeA,WAAAA,CAAAA,WA3Bf,EA2B4BC,UA3B5B,eA2B4BA,UA3B5B,EA2BwCC,aA3BxC,GAAA,WAAA,CA2BwCA,aA3BxC,CAAA;;AAAA,YAAA,IAAA,EA4BQF,WAAW,IAAI,IAAf,IAAuBA,WAAW,KAAK/C,WA5B/C,CAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,UAAA,EAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,CA8BeiD,aA9Bf,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OA+BY1E,KAAK,CAAC;AACVpB,cAAAA,GAAG,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe6F,UAAf,EAA2B,cAA3B,CADK;AAEV3G,cAAAA,GAAG,EAAHA,GAFU;AAGVC,cAAAA,WAAW,EAAXA,WAAAA;AAHU,aAAD,CA/BjB,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAqCYiC,KAAK,CAAC;AACVpB,cAAAA,GAAG,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe6F,UAAf,CADK;AAEV3G,cAAAA,GAAG,EAAHA,GAFU;AAGVC,cAAAA,WAAW,EAAXA,WAAAA;AAHU,aAAD,CArCjB,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,YAAA,SAAA,CAAA,CAAA,CAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,YAAA,SAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OA6CQiC,KAAK,CAAC;AAAEpB,cAAAA,GAAG,EAAE,CAAC,KAAD,EAAQ,MAAR,CAAP;AAAwBd,cAAAA,GAAG,EAAHA,GAAxB;AAA6BC,cAAAA,WAAW,EAAXA,WAAAA;AAA7B,aAAD,CA7Cb,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OA+CQ6D,WAAW,CAACC,IAAD,EAAOJ,WAAP,CA/CnB,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;SAqDekD;;;AAcf;;;;;;;AAOG;;;;AArBH,EAAA,aAAA,GAAA/D,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,CAA4BgB,IAA5B,EAAA;AAAA,IAAA,IAAA,MAAA,CAAA;AAAA,IAAA,OAAAhB,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AACQ+D,YAAAA,MADR,GACiB/C,IAAI,CAACF,cAAL,EADjB,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,YAEakD,OAAAA,eAAO,CAACD,MAAD,CAFpB,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,IAAA,CAE8BE,MAF9B,CAAA;;AAAA,YAAA,IAAA,EAAA,UAAA,CAAA,EAAA,KAEyC,CAFzC,CAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,MAGU,IAAIxH,KAAJ,CAA2BsH,iBAAAA,CAAAA,MAAAA,CAAAA,MAA3B,EAHV,mBAAA,CAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,QAAA,CAAA,CAAA;AAAA;;;;AAsBA,SAAsB1B,IAAtB,CAAA,IAAA,EAAA;AAAA,EAAA,OAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,CAAA;;;AAAO,EAAA,KAAA,GAAAtC,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,KAAA,EAAA;AAAA,IAAA,IAAA,UAAA,CAAA;;AAAA,IAAA,IAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,OAAA,EAAA,IAAA,EAAA,eAAA,EAsCIkE,SAtCJ,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA;;AAAA,IAAA,OAAAlE,uCAAA,CAAA,IAAA,CAAA,SAAA,UAAA,CAAA,UAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA;AAAA,QAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,UAAA,KAAA,CAAA;AAsCIkE,YAAAA,SAtCJ,GAsCa,SAAA,UAAA,GAAA;AAAA,cAAA,IAAA,UAAA,CAAA;;AAChB,cAAO,OAAA7F,wCAAA,CAAA,UAAA,GAAAoD,sCAAA,CAAI0C,eAAJ,CACL,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAAA,KAAA,EAAA;AAAA,gBAAA,IAAA,UAAA,CAAA;;AAAA,gBAAA,IAAA,KAAA,GAAAC,kCAAA,CAAA,KAAA,EAAA,CAAA,CAAA;AAAA,oBAAExB,GAAF,GAAA,KAAA,CAAA,CAAA,CAAA;AAAA,oBAASyB,KAAT,YAASA,KAAT,CAAA;;AAAA,gBAAmCzB,OAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,IAAAA,CAAAA,MAAAA,CAAAA,GAAnC,0BAA2CyB,KAA3C,CAAA,CAAA;AAAA,eADK,CAAP,CAAA;AAGD,aA1CI,CAAA;;AACLnH,YAAAA,WADK,GACLA,KAAAA,CAAAA,WADK,EAELoH,YAFK,GAAA,KAAA,CAELA,YAFK,EAGLlB,cAHK,GAGLA,KAAAA,CAAAA,cAHK,EAILpB,YAJK,GAAA,KAAA,CAILA,YAJK,EAKL3B,OALK,SAKLA,OALK,CAAA;;AAAA,YAAA,IAAA,EAOD1D,OAAO,CAACY,GAAR,CAAYC,WAAZ,KAA4B,GAP3B,CAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAQH;AACAV,YAAAA,OAAO,CAAC,wBAAD,CAAP,CAAA;AATG,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EAUI,IAVJ,CAAA,CAAA;;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAAyH,kCAAA,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAcHrH,WAdG,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAeHkG,cAfG,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAgBHpB,YAhBG,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAiBW5B,aAAa,CACzBC,OAAO,GAAGmE,YAAW,CAACnE,OAAD,EAAU,OAAV,CAAd,GAAmC6C,SADjB,CAjBxB,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,IAAA,CAAA;;AAAA,YAoBa,UAAA,CAAA,EAAA,GAAA,SAAA,cAAA,GAAA;AAAA,cAAA,IAAA,UAAA,CAAA;;AAAA,cAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAAIuB,KAAJ,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;AAAIA,gBAAAA,KAAJ,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,eAAA;;AAAA,cAAA,OACdD,YAAW,CAAA,KAAX,CAAYxD,KAAAA,CAAAA,EAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,CAAAA,IAAI,CAAC+C,MAAL,CAAYxD,IAAxB,EAA8B,MAA9B,CAAyCkE,CAAAA,CAAAA,IAAAA,CAAAA,UAAAA,EAAAA,KAAzC,CADc,CAAA,CAAA;AAAA,aApBb,CAAA;;AAAA,YAsBc,UAAA,CAAA,EAAA,GAAA,SAAA,eAAA,GAAA;AAAA,cAAA,IAAA,UAAA,CAAA;;AAAA,cAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAAIA,KAAJ,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;AAAIA,gBAAAA,KAAJ,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,eAAA;;AAAA,cAAA,OACfD,YAAW,CAAA,KAAX,CAAYxD,KAAAA,CAAAA,EAAAA,2CAAAA,CAAAA,UAAAA,GAAAA,CAAAA,IAAI,CAAC+C,MAAL,CAAYxD,IAAxB,EAA8B,OAA9B,CAA0CkE,CAAAA,CAAAA,IAAAA,CAAAA,UAAAA,EAAAA,KAA1C,CADe,CAAA,CAAA;AAAA,aAtBd,CAAA;;AAAA,YAwBa,UAAA,CAAA,EAAA,GAAA,SAAA,cAAA,GAAA;AAAA,cAAA,IAAA,UAAA,CAAA;;AAAA,cAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAAIA,KAAJ,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;AAAIA,gBAAAA,KAAJ,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,eAAA;;AAAA,cACdD,OAAAA,YAAW,CAAX,KAAA,CAAA,KAAA,CAAA,EAAAtG,2CAAA,CAAA,UAAA,GAAA,CAAY8C,IAAI,CAAC+C,MAAL,CAAYxD,IAAxB,CAAiCkE,CAAAA,CAAAA,IAAAA,CAAAA,UAAAA,EAAAA,KAAjC,CADc,CAAA,CAAA;AAAA,aAxBb,CAAA;;AAAA,YA0Bc9H,UAAAA,CAAAA,EAAAA,GAAAA,OAAO,CAACM,GAAR,EA1Bd,CAAA;AAAA,YAAA,UAAA,CAAA,EAAA,GAAA;AAcHC,cAAAA,WAdG,EAAA,UAAA,CAAA,EAAA;AAeHkG,cAAAA,cAfG,EAAA,UAAA,CAAA,EAAA;AAgBHpB,cAAAA,YAhBG,EAAA,UAAA,CAAA,EAAA;AAiBH+B,cAAAA,MAjBG,EAAA,UAAA,CAAA,EAAA;AAoBHW,cAAAA,cApBG,EAAA,UAAA,CAAA,EAAA;AAsBHxD,cAAAA,eAtBG,EAAA,UAAA,CAAA,EAAA;AAwBHJ,cAAAA,cAxBG,EAAA,UAAA,CAAA,EAAA;AA0BH6D,cAAAA,eA1BG,EAAA,UAAA,CAAA,EAAA;AAAA,aAAA,CAAA;AAaC3D,YAAAA,IAbD,GAAA,IAAA,UAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA;AA6BCmD,YAAAA,eA7BD,GA6BmB,IACtBS,wBAAA,CAAAvG,wCAAA,CAAA,UAAA,GAAAsD,gCAAA,CAAYX,IAAI,CAACgB,YAAjB,CAAmC,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAAC6C,OAAD,EAAA;AAAA,cAAA,OAAqC,CACtEA,OADsE,EAEtE,IAAIhJ,YAAJ,EAFsE,CAArC,CAAA;AAAA,aAAnC,CADsB,CA7BnB,CAAA;AAmCL;;AAEG;;AArCE,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AA6CGsD,YAAAA,KA7CH,GA6CWzB,aAAa,CAACsD,IAAI,CAAC0D,cAAL,EAAD,EAAwBR,SAAxB,CA7CxB,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YA+CGJ,OAAAA,YAAY,CAAC9C,IAAD,CA/Cf,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAkDG,OAAA9E,4BAAA,CAAQ4I,GAAR,CACJzG,wCAAA,CAAA,UAAA,GAAA,CAAC,OAAD,EAAU,MAAV,CACE,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAAC0G,GAAD,EAAA;AAAA,cAAA,OAAwBC,aAAK,CAACR,YAAW,CAACxD,IAAI,CAAC+C,MAAL,CAAYxD,IAAb,EAAmBwE,GAAnB,CAAZ,CAA7B,CAAA;AAAA,aADF,CADI,CAlDH,CAAA;;AAAA,UAAA,KAAA,EAAA;AAwDHjI,YAAAA,OAAO,CAAC,OAAD,EAAUoH,SAAS,GAAG1F,IAAZ,CAAiB,IAAjB,CAAV,CAAP,CAAA;AAxDG,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAyDGtC,4BAAQ4I,CAAAA,GAAR,CACJzG,wCAAA,CAAA,UAAA,GAAAoD,sCAAA,CAAI0C,eAAJ,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,eAAA,YAAA;AAAA,cAAyB,IAAA,KAAA,GAAApE,qCAAA,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,KAAA,EAAA;AAAA,gBAAA,IAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,CAAA;;AAAA,gBAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,UAAA,CAAA,UAAA,EAAA;AAAA,kBAAA,OAAA,CAAA,EAAA;AAAA,oBAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,sBAAA,KAAA,CAAA;AAAA,wBAAQY,KAAAA,GAAAA,kCAAAA,CAAAA,KAAAA,EAAAA,CAAAA,CAAAA,EAAAA,WAAR,aAAqBqE,KAArB,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAErBA,wBAAAA,KAAK,CAACZ,KAAN,GAAc,WAAd,CAAA;AACMjC,wBAAAA,WAHe,GAGDpB,IAAI,CAACgB,YAAL,CAAkBpB,WAAlB,CAHC,CAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,wBAAA,OAIDb,qCAAC,eAAAC,uCAAA,CAAA,IAAA,CAAA,SAAA,QAAA,GAAA;AAAA,0BAAA,OAAAA,uCAAA,CAAA,IAAA,CAAA,SAAA,SAAA,CAAA,UAAA,EAAA;AAAA,4BAAA,OAAA,CAAA,EAAA;AAAA,8BAAA,QAAA,UAAA,CAAA,IAAA,GAAA,UAAA,CAAA,IAAA;AAAA,gCAAA,KAAA,CAAA;AAAA,kCAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,kCAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,kCAEJkF,OAAAA,aAAK,CAAC9C,WAAD,CAFD,CAAA;;AAAA,gCAAA,KAAA,CAAA;AAAA,kCAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA,IAAA,CAAA,CAAA;;AAAA,gCAAA,KAAA,CAAA;AAAA,kCAAA,UAAA,CAAA,IAAA,GAAA,CAAA,CAAA;AAAA,kCAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,kCAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EAIV,IAJU,CAAA,CAAA;;AAAA,gCAAA,KAAA,CAAA,CAAA;AAAA,gCAAA,KAAA,KAAA;AAAA,kCAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,+BAAA;AAAA,6BAAA;AAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,yBAAD,CAJC,CAAA,EAAA,CAAA;;AAAA,sBAAA,KAAA,CAAA;AAIf+C,wBAAAA,KAJe,GAAA,UAAA,CAAA,IAAA,CAAA;;AAAA,wBAAA,IAAA,EAWjBA,KAXiB,KAWjBA,IAAAA,IAAAA,KAXiB,eAWjBA,KAAK,CAAEC,MAAP,EAXiB,CAAA,EAAA;AAAA,0BAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,0BAAA,MAAA;AAAA,yBAAA;;AAYnB;AACAH,wBAAAA,KAAK,CAACZ,KAAN,GAAc,iBAAd,CAAA;AAbmB,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAcbpD,OAAAA,gBAAQ,CAACmB,WAAD,EAAcvB,cAAc,CAACG,IAAD,EAAOJ,WAAP,CAA5B,CAdK,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAenBqE,wBAAAA,KAAK,CAACZ,KAAN,GAAc,gBAAd,CAAA;AAfmB,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;;AAAA,sBAAA,KAAA,EAAA;AAiBnB;AACA;AACAY,wBAAAA,KAAK,CAACZ,KAAN,GAAc,SAAd,CAAA;AAnBmB,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,OAoBblC,KAAK,CAAChD,KAAD,EAAQ6B,IAAR,EAAcJ,WAAd,CApBQ,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAsBnBqE,wBAAAA,KAAK,CAACZ,KAAN,GAAc,wBAAd,CAAA;AACMgB,wBAAAA,UAvBa,GAuBU,EAvBV,CAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,OAwBKtD,mBAAmB,CAACf,IAAD,EAAOJ,WAAP,CAxBxB,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAwBb0E,wBAAAA,SAxBa,GAAA,UAAA,CAAA,IAAA,CAAA;AAyBnBL,wBAAAA,KAAK,CAACZ,KAAN,GAAA,4BAAA,CAAA,MAAA,CAA2CiB,SAAS,CAAC9G,IAAV,CAAe,IAAf,CAA3C,EAAA,GAAA,CAAA,CAAA;AAzBmB,wBAAA,UAAA,GAAAkF,4BAAA,CA0BI4B,SA1BJ,CAAA,CAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,wBAAA,UAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,IAAA,CAAA,MAAA,GAAA,UAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA;AAAA,0BAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,0BAAA,MAAA;AAAA,yBAAA;;AA0BRC,wBAAAA,QA1BQ,GAAA,MAAA,CAAA,KAAA,CAAA;AA2BXC,wBAAAA,SA3BW,GA2BCrB,eAAe,CAACsB,GAAhB,CAAoBF,QAApB,CA3BD,CAAA;;AAAA,wBA4BbC,IAAAA,EAAAA,SAAS,IAAI,IA5BA,CAAA,EAAA;AAAA,0BAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,0BAAA,MAAA;AAAA,yBAAA;;AAAA,wBAAA,MA6BT,IAAI/I,KAAJ,CAAwB8I,aAAAA,CAAAA,MAAAA,CAAAA,QAAxB,EA7BS,aAAA,CAAA,CAAA,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAiCTC,OAAAA,SAAS,CAACvJ,OAjCD,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAmCfoJ,wBAAAA,UAAU,CAACK,IAAX,CAAgBH,QAAhB,CAAA,CAAA;;AAnCe,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,wBAAA,UAAA,CAAA,CAAA,CAAA,UAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,wBAAA,UAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,wBAAA,OAAA,UAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,IAAA,EAsCfF,UAAU,CAACpB,MAAX,GAAoB,CAtCL,CAAA,EAAA;AAAA,0BAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,0BAAA,MAAA;AAAA,yBAAA;;AAuCjBgB,wBAAAA,KAAK,CAACZ,KAAN,GAAA,uBAAA,CAAA,MAAA,CAAsCgB,UAAU,CAAC7G,IAAX,CAAgB,IAAhB,CAAtC,CAAA,CAAA;AAvCiB,wBAAA,MAwCX,IAAI/B,KAAJ,CAAUwI,KAAK,CAACZ,KAAhB,CAxCW,CAAA;;AAAA,sBAAA,KAAA,EAAA;AA2CnBY,wBAAAA,KAAK,CAACZ,KAAN,GAAc,kBAAd,CAAA;AA3CmB,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,OA4CblB,aAAa,CAAChE,KAAD,EAAQ6B,IAAR,EAAcJ,WAAd,CA5CA,CAAA;;AAAA,sBAAA,KAAA,EAAA;AA6CnBqE,wBAAAA,KAAK,CAACZ,KAAN,GAAc,kCAAd,CAAA;;AA7CmB,sBAAA,KAAA,EAAA;AAgDrBvH,wBAAAA,OAAO,CAAS8D,OAAAA,CAAAA,MAAAA,CAAAA,WAAT,CAAwBsD,EAAAA,SAAS,GAAG1F,IAAZ,CAAiB,IAAjB,CAAxB,CAAP,CAAA;AACAyG,wBAAAA,KAAK,CAAC9I,OAAN,EAAA,CAAA;AAjDqB,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,MAAA;;AAAA,sBAAA,KAAA,EAAA;AAAA,wBAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,wBAAA,UAAA,CAAA,EAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAmDrBE,wBAAAA,QAAQ,CAAA6B,2CAAA,CAAA,UAAA,GAAA,OAAA,CAAA,MAAA,CACE0C,WADF,EAAA,IAAA,CAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EACkBqE,KAAK,CAACZ,KADxB,EAENH,IAAAA,CAAAA,EAAAA,SAAS,EAAG1F,CAAAA,IAAZ,CAAiB,IAAjB,CAFM,CAAR,CAAA;AAIAyG,wBAAAA,KAAK,CAAC7I,MAAN,CAAa,UAAA,CAAA,EAAA,YAAiBK,KAAjB,GAAA,UAAA,CAAA,EAAA,GAAiC,IAAIA,KAAJ,CAAU,EAAA,GAAA,UAAA,CAAA,EAAV,CAA9C,CAAA,CAAA;;AAvDqB,sBAAA,KAAA,EAAA,CAAA;AAAA,sBAAA,KAAA,KAAA;AAAA,wBAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,qBAAA;AAAA,mBAAA;AAAA,iBAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,eAAzB,CAAA,CAAA,CAAA;;AAAA,cAAA,OAAA,UAAA,IAAA,EAAA;AAAA,gBAAA,OAAA,KAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,eAAA,CAAA;AAAA,aAAA,EAAA,CADI,CAzDH,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAAkJ,0CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAuHKzJ,4BAAQ0J,CAAAA,UAAR,CACJvH,wCAAA,CAAA,UAAA,GAAAoD,sCAAA,CAAIoE,2CAAA1B,CAAAA,eAAe,CAAf,CAAA,IAAA,CAAAA,eAAe,CAAnB,CACE,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAAC2B,MAAD,EAAA;AAAA,cAA2BA,OAAAA,MAAM,CAAC7J,OAAlC,CAAA;AAAA,aADF,CADI,CAvHL,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,GAAA,UAAA,CAAA,IAAA,CAAA;AAsHG8J,YAAAA,YAtHH,GA4HK,IAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,UAAA,KAAA,EAAA;AAAA,cAAGD,IAAAA,MAAH,SAAGA,MAAH,CAAA;AAAA,cAAyBA,OAAAA,MAAM,KAAK,WAApC,CAAA;AAAA,aA5HL,CAAA,CAAA;;AAAA,YAAA,IAAA,CA8HCC,YA9HD,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EA+HM,IA/HN,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,QAAA,EAiIM,KAjIN,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAoIH;AACA;AACAjJ,YAAAA,OAAO,CAAC,KAAD,EAAQoH,SAAS,GAAG1F,IAAZ,CAAiB,IAAjB,CAAR,CAAP,CAAA;AAtIG,YAAA,UAAA,GAAAkF,4BAAA,CAuIsCS,eAvItC,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,YAAA,UAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,CAAA,MAAA,GAAA,UAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAAA,YAAA,YAAA,GAAAC,kCAAA,CAAA,MAAA,CAAA,KAAA,EAAA,CAAA,CAAA,EAuISxD,WAvIT,GAAA,YAAA,CAAA,CAAA,CAAA,EAuIwB3E,OAvIxB,GAAA,YAAA,CAAA,CAAA,CAAA,CAuIwBA,OAvIxB,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAyIOA,OAzIP,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AA2ICI,YAAAA,QAAQ,CAAIuE,EAAAA,CAAAA,MAAAA,CAAAA,WAAJ,EAAR,cAAA,CAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA;;AA3ID,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,YAAA,UAAA,CAAA,CAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;;AAAA,YAAA,UAAA,CAAA,CAAA,EAAA,CAAA;;AAAA,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,CAgJC0D,YAhJD,EAAA;AAAA,cAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;;AAiJDxH,YAAAA,OAAO,CAAC,SAAD,CAAP,CAAA;AAjJC,YAkJDH,UAAAA,CAAAA,GAAAA,GAAAA,OAAO,CAACI,MAlJP,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAAmB,2CAAA,CAAA,UAAA,GAAA,CAoJG,EApJH,CAAA,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAAuD,sCAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAAvF,4BAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAAmC,wCAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAuJa2F,eAAO,CAAChD,IAAI,CAAC0D,cAAL,EAAD,CAvJpB,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,GAAA,UAAA,CAAA,IAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,IAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAyJO,UAACsB,QAAD,EAAA;AAAA,cACE9F,OAAAA,gBAAQ,CAACc,IAAI,CAAC0D,cAAL,CAAoBsB,QAApB,CAAD,EAAgC,OAAhC,CADV,CAAA;AAAA,aAzJP,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OAAA,UAAA,CAAA,GAAA,CAqJqBlB,GArJrB,CAAA,IAAA,CAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,CAAA,IAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,IAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,CA6JG,EA7JH,CAAA,CAAA;AAAA,YAAA,UAAA,CAAA,GAAA,GAAA,UAAA,CAAA,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CA8JGtG,IA9JH,CA8JQ,MAAS,GAAAyH,2CAAA,CAAA,UAAA,GAACA,2CAAW,CAAA,UAAA,GAAA,GAAA,CAAA,CAAA,IAAA,CAAA,UAAA,EAAA,EAAX,CAAiB,GAAA,IAAlB,CAA+B,CAAA,IAAA,CAAA,UAAA,EAAA,CAA/B,CAAT,GAA6C,IA9JrD,CAAA,CAAA;;AAAA,YAAA,UAAA,CAAA,GAAA,CAkJcpJ,KAlJd,CAAA,IAAA,CAAA,UAAA,CAAA,GAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA;AAkKHG,YAAAA,QAAQ,CACNgE,IAAI,CAAC+C,MAAL,CAAYxD,IADN,EAENrD,WAFM,EAGN,wEAHM,CAAR,CAAA;AAlKG,YAAA,OAAA,UAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;AAAA,YAAA,OAAA,UAAA,CAAA,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA;AAAA,KAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;;;;;;;;ACrRP,IAAMgJ,IAAI,GAAGxK,cAAc,EAA3B,CAAA;;AAEA,IAAMsG,YAAY,GAAiBqB,2CAAA,CAAA,QAAA,GAAAhF,wCAAA,CAAA,SAAA,GAAA6H,IAAI,CAAC,SAAD,CAAJ,CAAA,CAAA,IAAA,CAAA,SAAA,EAC5B,UAACC,GAAD,EAA0B;AAC7B,EAAA,IAAA,UAAA,GAAqBA,GAAG,CAACC,KAAJ,CAAU,GAAV,EAAe,CAAf,CAArB;AAAA,MAAA,WAAA,GAAAhC,kCAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAA,MAAO7D,IAAP,GAAA,WAAA,CAAA,CAAA,CAAA;AAAA,MAAa8F,MAAb,GAAA,WAAA,CAAA,CAAA,CAAA,CAAA;;AAEA,EAAI,IAAA,OAAO9F,IAAP,KAAgB,QAAhB,IAA4B,OAAO8F,MAAP,KAAgB,QAAhD,EAA0D;AACxD,IAAA,IAAI,oBAAqBhE,CAAAA,IAArB,CAA0BgE,MAA1B,CAAJ,EAAqC;AACnC;AACA,MAAA,OAAO,CAAC9F,IAAD,EAAO8F,MAAP,CAAP,CAAA;AACD,KAHD,MAGO;AACL;AACA,MAAA,OAAO,CAAC9F,IAAD,EAAOpE,YAAO,CAACkK,MAAD,CAAd,CAAP,CAAA;AACD,KAAA;AACF,GARD,MAQO;AACLjJ,IAAAA,OAAO,CAACD,KAAR,CAAA,iEAAA,CAAA,MAAA,CACoEgJ,GADpE,EAAA,IAAA,CAAA,CAAA,CAAA;AAGAxJ,IAAAA,OAAO,CAAC2J,IAAR,CAAa,CAAb,CAAA,CAAA;AACD,GAAA;AACF,CAlBgC,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,EAmBX,UAAChD,GAAD,EAAoC,IAAA,EAAA;AAAA,EAAA,IAAA,KAAA,GAAAc,kCAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AAAA,MAA7B7D,IAA6B,GAAA,KAAA,CAAA,CAAA,CAAA;AAAA,MAAvB8F,IAAuB,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;;AACxD/C,EAAAA,GAAG,CAAC/C,IAAD,CAAH,GAAY8F,IAAZ,CAAA;AACA,EAAA,OAAO/C,GAAP,CAAA;AACD,CAtBgC,EAsB9B,EAtB8B,CAAnC,CAAA;;AAwBA,IAAMiD,mBAAmB,GAAGL,IAAI,CAAC,gBAAD,CAAhC,CAAA;;AACA,IAAM9C,cAAc,GAAoBoD,4CAAA,CAAAD,mBAAmB,CAAA,CAAA,IAAnB,CAAAA,mBAAmB,EACzD,UAACJ,GAAD,EAAyB;AACvB,EAAM/C,IAAAA,cAAc,GAAoB,EAAxC,CAAA;AAEA,EAAIO,IAAAA,WAAW,GAAkB,IAAjC,CAAA;;AAHuB,EAAA,IAAA,SAAA,GAAA,0BAAA,CAIJwC,GAAG,CAACC,KAAJ,CAAU,GAAV,CAJI,CAAA;AAAA,MAAA,KAAA,CAAA;;AAAA,EAAA,IAAA;AAIvB,IAAmC,KAAA,SAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,KAAA,GAAA,SAAA,CAAA,CAAA,EAAA,EAAA,IAAA,GAAA;AAAA,MAAA,IAAxBK,IAAwB,GAAA,KAAA,CAAA,KAAA,CAAA;;AACjC,MAAMC,IAAAA,IAAI,GAAGtH,0CAAA,CAAAqH,IAAI,CAAA,CAAA,IAAJ,CAAAA,IAAI,EAAO,CAAC,CAAR,CAAjB,CAAA;;AAEA,MAAA,IAAIC,IAAI,KAAK,GAAT,IAAgBA,IAAI,KAAK,GAA7B,EAAkC;AAChCtD,QAAAA,cAAc,CAACsC,IAAf,CAAoB;AAClB/B,UAAAA,WAAW,EAAXA,WADkB;AAElBC,UAAAA,UAAU,EAAExE,0CAAAqH,CAAAA,IAAI,CAAJ,CAAA,IAAA,CAAAA,IAAI,EAAO,CAAP,EAAU,CAAC,CAAX,CAFE;AAGlB5C,UAAAA,aAAa,EAAE6C,IAAI,KAAK,GAAA;AAHN,SAApB,CAAA,CAAA;AAKD,OAND,MAMO;AACL/C,QAAAA,WAAW,GAAG8C,IAAd,CAAA;AACD,OAAA;AACF,KAAA;AAhBsB,GAAA,CAAA,OAAA,GAAA,EAAA;AAAA,IAAA,SAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,GAAA,SAAA;AAAA,IAAA,SAAA,CAAA,CAAA,EAAA,CAAA;AAAA,GAAA;;AAkBvB,EAAA,OAAOrD,cAAP,CAAA;AACD,CApBwD,CAA3D,CAAA;;AAuBA,IAAM/C,OAAO,GAAG6F,IAAI,CAAC,SAAD,CAAJ,GAAkB/J,YAAO,CAAC+J,IAAI,CAAC,SAAD,CAAL,CAAzB,GAA6ChD,SAA7D,CAAA;AAEA,IAAMhG,WAAW,GAAGgJ,IAAI,CAAC,cAAD,CAAxB,CAAA;AAEA,IAAM5B,YAAY,GAAG4B,IAAI,CAAC,gBAAD,CAAzB,CAAA;AAEA7D,IAAI,CAAC;AAAEnF,EAAAA,WAAW,EAAXA,WAAF;AAAeoH,EAAAA,YAAY,EAAZA,YAAf;AAA6BlB,EAAAA,cAAc,EAAdA,cAA7B;AAA6CpB,EAAAA,YAAY,EAAZA,YAA7C;AAA2D3B,EAAAA,OAAO,EAAPA,OAAAA;AAA3D,CAAD,CAAJ,CACGsG,IADH,CACQ,UAACZ,YAAD,EAAuB;AAC3B,EAAI,IAAA,CAACA,YAAL,EAAmB;AACjBpJ,IAAAA,OAAO,CAACiK,QAAR,GAAmB,CAAnB,CAAA;AACD,GAAA;AACF,CALH,CAMGlH,CAAAA,KANH,CAMS,UAACmH,MAAD,EAAiB;AACtBzJ,EAAAA,OAAO,CAACD,KAAR,CAAc0J,MAAd,CAAA,CAAA;AACAlK,EAAAA,OAAO,CAACiK,QAAR,GAAmB,CAAnB,CAAA;AACD,CATH,CAAA;;"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Development utilities for the Vis family projects.
|
|
6
6
|
*
|
|
7
|
-
* @version 3.0.
|
|
8
|
-
* @date 2022-03-
|
|
7
|
+
* @version 3.0.7
|
|
8
|
+
* @date 2022-03-12T19:51:10.352Z
|
|
9
9
|
*
|
|
10
10
|
* @copyright (c) 2011-2017 Almende B.V, http://almende.com
|
|
11
11
|
* @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
|