every-plugin 0.4.13 → 0.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,86 +1,12 @@
1
1
  const require_chunk = require('../../chunk-zltIcp7o.cjs');
2
2
  const require_normalize = require('../../normalize-D4Qh0wVk.cjs');
3
- const require_package$1 = require('../../package-CMoV9xVN.cjs');
4
- let __rspack_core = require("@rspack/core");
3
+ const require_package$1 = require('../../package-CgNIVjVe.cjs');
4
+ let __module_federation_enhanced_rspack = require("@module-federation/enhanced/rspack");
5
5
  let node_path = require("node:path");
6
6
  node_path = require_chunk.__toESM(node_path);
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
 
10
- //#region src/build/rspack/utils.ts
11
- function getPluginInfo(context) {
12
- const pkgPath = node_path.default.join(context, "package.json");
13
- const pkg = JSON.parse(node_fs.default.readFileSync(pkgPath, "utf-8"));
14
- return {
15
- name: pkg.name,
16
- version: pkg.version,
17
- normalizedName: require_normalize.getNormalizedRemoteName(pkg.name),
18
- dependencies: pkg.dependencies || {},
19
- peerDependencies: pkg.peerDependencies || {}
20
- };
21
- }
22
- const loadedModules = /* @__PURE__ */ new Set();
23
- function loadDevConfig(devConfigPath) {
24
- try {
25
- const fullPath = node_path.default.resolve(devConfigPath);
26
- if (loadedModules.has(fullPath)) {
27
- delete require.cache[fullPath];
28
- const dirPath = node_path.default.dirname(fullPath);
29
- for (const key of Object.keys(require.cache)) if (key.startsWith(dirPath) && key !== fullPath) delete require.cache[key];
30
- }
31
- const module$1 = require(fullPath).default;
32
- loadedModules.add(fullPath);
33
- return module$1;
34
- } catch (error) {
35
- console.warn(`Could not load dev config from ${devConfigPath}:`, error.message);
36
- return null;
37
- }
38
- }
39
-
40
- //#endregion
41
- //#region src/build/rspack/module-federation.ts
42
- function buildSharedDependencies(pluginInfo) {
43
- const everyPluginPkg = require_package$1.require_package();
44
- return {
45
- "every-plugin": {
46
- version: everyPluginPkg.version,
47
- singleton: true,
48
- requiredVersion: `${everyPluginPkg.version}`,
49
- strictVersion: false,
50
- eager: false
51
- },
52
- effect: {
53
- version: everyPluginPkg.dependencies.effect,
54
- singleton: true,
55
- requiredVersion: `${everyPluginPkg.dependencies.effect}`,
56
- strictVersion: false,
57
- eager: false
58
- },
59
- zod: {
60
- version: everyPluginPkg.dependencies.zod,
61
- singleton: true,
62
- requiredVersion: `${everyPluginPkg.dependencies.zod}`,
63
- strictVersion: false,
64
- eager: false
65
- },
66
- "@orpc/contract": {
67
- version: everyPluginPkg.dependencies["@orpc/contract"],
68
- singleton: true,
69
- requiredVersion: `${everyPluginPkg.dependencies["@orpc/contract"]}`,
70
- strictVersion: false,
71
- eager: false
72
- },
73
- "@orpc/server": {
74
- version: everyPluginPkg.dependencies["@orpc/server"],
75
- singleton: true,
76
- requiredVersion: `${everyPluginPkg.dependencies["@orpc/server"]}`,
77
- strictVersion: false,
78
- eager: false
79
- }
80
- };
81
- }
82
-
83
- //#endregion
84
10
  //#region src/build/rspack/dev-server-middleware.ts
85
11
  const corsHeaders = {
86
12
  "Access-Control-Allow-Origin": "*",
@@ -278,6 +204,80 @@ function setupPluginMiddleware(devServer, pluginInfo, devConfig, port) {
278
204
  });
279
205
  }
280
206
 
207
+ //#endregion
208
+ //#region src/build/rspack/module-federation.ts
209
+ function buildSharedDependencies(pluginInfo) {
210
+ const everyPluginPkg = require_package$1.require_package();
211
+ return {
212
+ "every-plugin": {
213
+ version: everyPluginPkg.version,
214
+ singleton: true,
215
+ requiredVersion: `${everyPluginPkg.version}`,
216
+ strictVersion: false,
217
+ eager: false
218
+ },
219
+ effect: {
220
+ version: everyPluginPkg.dependencies.effect,
221
+ singleton: true,
222
+ requiredVersion: `${everyPluginPkg.dependencies.effect}`,
223
+ strictVersion: false,
224
+ eager: false
225
+ },
226
+ zod: {
227
+ version: everyPluginPkg.dependencies.zod,
228
+ singleton: true,
229
+ requiredVersion: `${everyPluginPkg.dependencies.zod}`,
230
+ strictVersion: false,
231
+ eager: false
232
+ },
233
+ "@orpc/contract": {
234
+ version: everyPluginPkg.dependencies["@orpc/contract"],
235
+ singleton: true,
236
+ requiredVersion: `${everyPluginPkg.dependencies["@orpc/contract"]}`,
237
+ strictVersion: false,
238
+ eager: false
239
+ },
240
+ "@orpc/server": {
241
+ version: everyPluginPkg.dependencies["@orpc/server"],
242
+ singleton: true,
243
+ requiredVersion: `${everyPluginPkg.dependencies["@orpc/server"]}`,
244
+ strictVersion: false,
245
+ eager: false
246
+ }
247
+ };
248
+ }
249
+
250
+ //#endregion
251
+ //#region src/build/rspack/utils.ts
252
+ function getPluginInfo(context) {
253
+ const pkgPath = node_path.default.join(context, "package.json");
254
+ const pkg = JSON.parse(node_fs.default.readFileSync(pkgPath, "utf-8"));
255
+ return {
256
+ name: pkg.name,
257
+ version: pkg.version,
258
+ normalizedName: require_normalize.getNormalizedRemoteName(pkg.name),
259
+ dependencies: pkg.dependencies || {},
260
+ peerDependencies: pkg.peerDependencies || {}
261
+ };
262
+ }
263
+ const loadedModules = /* @__PURE__ */ new Set();
264
+ function loadDevConfig(devConfigPath) {
265
+ try {
266
+ const fullPath = node_path.default.resolve(devConfigPath);
267
+ if (loadedModules.has(fullPath)) {
268
+ delete require.cache[fullPath];
269
+ const dirPath = node_path.default.dirname(fullPath);
270
+ for (const key of Object.keys(require.cache)) if (key.startsWith(dirPath) && key !== fullPath) delete require.cache[key];
271
+ }
272
+ const module$1 = require(fullPath).default;
273
+ loadedModules.add(fullPath);
274
+ return module$1;
275
+ } catch (error) {
276
+ console.warn(`Could not load dev config from ${devConfigPath}:`, error.message);
277
+ return null;
278
+ }
279
+ }
280
+
281
281
  //#endregion
282
282
  //#region src/build/rspack/plugin.ts
283
283
  var EveryPluginDevServer = class {
@@ -292,9 +292,11 @@ var EveryPluginDevServer = class {
292
292
  this.configureDefaults(compiler, pluginInfo);
293
293
  if (!compiler.options.devServer) compiler.options.devServer = {};
294
294
  this.configureDevServer(compiler, pluginInfo, devConfig, port);
295
- new __rspack_core.rspack.container.ModuleFederationPlugin({
295
+ new __module_federation_enhanced_rspack.ModuleFederationPlugin({
296
296
  name: pluginInfo.normalizedName,
297
297
  filename: "remoteEntry.js",
298
+ manifest: true,
299
+ dts: false,
298
300
  runtimePlugins: [require.resolve("@module-federation/node/runtimePlugin")],
299
301
  library: { type: "commonjs-module" },
300
302
  exposes: { "./plugin": "./src/index.ts" },
@@ -359,4 +361,4 @@ var EveryPluginDevServer = class {
359
361
 
360
362
  //#endregion
361
363
  exports.EveryPluginDevServer = EveryPluginDevServer;
362
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsicGF0aCIsImZzIiwiZ2V0Tm9ybWFsaXplZFJlbW90ZU5hbWUiLCJtb2R1bGUiLCJoYW5kbGVyczogeyBycGM6IGFueSwgYXBpOiBhbnkgfSIsImNsZWFudXA6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KSB8IG51bGwiLCJsaW5lczogc3RyaW5nW10iLCJvcHRpb25zOiBFdmVyeVBsdWdpbk9wdGlvbnMiLCJyc3BhY2siLCJwYXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay91dGlscy50cyIsIi4uLy4uLy4uL3NyYy9idWlsZC9yc3BhY2svbW9kdWxlLWZlZGVyYXRpb24udHMiLCIuLi8uLi8uLi9zcmMvYnVpbGQvcnNwYWNrL2Rldi1zZXJ2ZXItbWlkZGxld2FyZS50cyIsIi4uLy4uLy4uL3NyYy9idWlsZC9yc3BhY2svcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBnZXROb3JtYWxpemVkUmVtb3RlTmFtZSB9IGZyb20gJ2V2ZXJ5LXBsdWdpbi9ub3JtYWxpemUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgbm9ybWFsaXplZE5hbWU6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwZWVyRGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luSW5mbyhjb250ZXh0OiBzdHJpbmcpOiBQbHVnaW5JbmZvIHtcbiAgY29uc3QgcGtnUGF0aCA9IHBhdGguam9pbihjb250ZXh0LCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGYtOCcpKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBrZy5uYW1lLFxuICAgIHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICAgIG5vcm1hbGl6ZWROYW1lOiBnZXROb3JtYWxpemVkUmVtb3RlTmFtZShwa2cubmFtZSksXG4gICAgZGVwZW5kZW5jaWVzOiBwa2cuZGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIHBlZXJEZXBlbmRlbmNpZXM6IHBrZy5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9LFxuICB9O1xufVxuXG5jb25zdCBsb2FkZWRNb2R1bGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkRGV2Q29uZmlnKGRldkNvbmZpZ1BhdGg6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKGRldkNvbmZpZ1BhdGgpO1xuICAgIFxuICAgIGlmIChsb2FkZWRNb2R1bGVzLmhhcyhmdWxsUGF0aCkpIHtcbiAgICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW2Z1bGxQYXRoXTtcbiAgICAgIGNvbnN0IGRpclBhdGggPSBwYXRoLmRpcm5hbWUoZnVsbFBhdGgpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVxdWlyZS5jYWNoZSkpIHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGRpclBhdGgpICYmIGtleSAhPT0gZnVsbFBhdGgpIHtcbiAgICAgICAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG1vZHVsZSA9IHJlcXVpcmUoZnVsbFBhdGgpLmRlZmF1bHQ7XG4gICAgbG9hZGVkTW9kdWxlcy5hZGQoZnVsbFBhdGgpO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgbG9hZCBkZXYgY29uZmlnIGZyb20gJHtkZXZDb25maWdQYXRofTpgLCAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwRGV2Q29uZmlnKCkge1xuICBmb3IgKGNvbnN0IG1vZHVsZVBhdGggb2YgbG9hZGVkTW9kdWxlcykge1xuICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW21vZHVsZVBhdGhdO1xuICB9XG4gIGxvYWRlZE1vZHVsZXMuY2xlYXIoKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUGx1Z2luSW5mbyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTaGFyZWREZXBlbmRlbmNpZXMocGx1Z2luSW5mbzogUGx1Z2luSW5mbykge1xuICAvLyBHZXQgZXZlcnktcGx1Z2luIHBhY2thZ2UgaW5mbyBmb3IgdmVyc2lvbiBjb25zdHJhaW50c1xuICBjb25zdCBldmVyeVBsdWdpblBrZyA9IHJlcXVpcmUoJ2V2ZXJ5LXBsdWdpbi9wYWNrYWdlLmpzb24nKTtcblxuICByZXR1cm4ge1xuICAgICdldmVyeS1wbHVnaW4nOiB7XG4gICAgICB2ZXJzaW9uOiBldmVyeVBsdWdpblBrZy52ZXJzaW9uLFxuICAgICAgc2luZ2xldG9uOiB0cnVlLFxuICAgICAgcmVxdWlyZWRWZXJzaW9uOiBgJHtldmVyeVBsdWdpblBrZy52ZXJzaW9ufWAsXG4gICAgICBzdHJpY3RWZXJzaW9uOiBmYWxzZSxcbiAgICAgIGVhZ2VyOiBmYWxzZSxcbiAgICB9LFxuICAgIGVmZmVjdDoge1xuICAgICAgdmVyc2lvbjogZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzLmVmZmVjdCxcbiAgICAgIHNpbmdsZXRvbjogdHJ1ZSxcbiAgICAgIHJlcXVpcmVkVmVyc2lvbjogYCR7ZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzLmVmZmVjdH1gLFxuICAgICAgc3RyaWN0VmVyc2lvbjogZmFsc2UsXG4gICAgICBlYWdlcjogZmFsc2UsXG4gICAgfSxcbiAgICB6b2Q6IHtcbiAgICAgIHZlcnNpb246IGV2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llcy56b2QsXG4gICAgICBzaW5nbGV0b246IHRydWUsXG4gICAgICByZXF1aXJlZFZlcnNpb246IGAke2V2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llcy56b2R9YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgJ0BvcnBjL2NvbnRyYWN0Jzoge1xuICAgICAgdmVyc2lvbjogZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzWydAb3JwYy9jb250cmFjdCddLFxuICAgICAgc2luZ2xldG9uOiB0cnVlLFxuICAgICAgcmVxdWlyZWRWZXJzaW9uOiBgJHtldmVyeVBsdWdpblBrZy5kZXBlbmRlbmNpZXNbJ0BvcnBjL2NvbnRyYWN0J119YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgJ0BvcnBjL3NlcnZlcic6IHtcbiAgICAgIHZlcnNpb246IGV2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llc1snQG9ycGMvc2VydmVyJ10sXG4gICAgICBzaW5nbGV0b246IHRydWUsXG4gICAgICByZXF1aXJlZFZlcnNpb246IGAke2V2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llc1snQG9ycGMvc2VydmVyJ119YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgdHlwZSB7IFBsdWdpbkluZm8gfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgY29yc0hlYWRlcnMgPSB7XG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOiAnKicsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJzogJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnOiAnWC1SZXF1ZXN0ZWQtV2l0aCwgY29udGVudC10eXBlLCBBdXRob3JpemF0aW9uJ1xufTtcblxuY29uc3QgYXBwbHlDb3JzSGVhZGVycyA9IChyZXM6IGFueSkgPT4ge1xuICBPYmplY3QuZW50cmllcyhjb3JzSGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgfSk7XG59O1xuXG5jb25zdCBub3JtYWxpemVQcmVmaXggPSAocHJlZml4Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFwcmVmaXgpIHJldHVybiAnJztcbiAgY29uc3QgY2xlYW5lZCA9IHByZWZpeC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJyk7XG4gIHJldHVybiBjbGVhbmVkID8gYC8ke2NsZWFuZWR9YCA6ICcnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwUGx1Z2luTWlkZGxld2FyZShkZXZTZXJ2ZXI6IGFueSwgcGx1Z2luSW5mbzogUGx1Z2luSW5mbywgZGV2Q29uZmlnOiBhbnksIHBvcnQ6IG51bWJlcikge1xuICBjb25zdCBycGNQcmVmaXggPSBub3JtYWxpemVQcmVmaXgoZGV2Q29uZmlnPy5wcmVmaXgpO1xuICBsZXQgaGFuZGxlcnM6IHsgcnBjOiBhbnksIGFwaTogYW55IH0gPSB7IHJwYzogbnVsbCwgYXBpOiBudWxsIH07XG4gIGxldCBjbGVhbnVwOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBwZXJmb3JtQ2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoY2xlYW51cCkge1xuICAgICAgYXdhaXQgY2xlYW51cCgpO1xuICAgICAgY2xlYW51cCA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcGVyZm9ybUNsZWFudXAoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGNyZWF0ZVBsdWdpblJ1bnRpbWUgfSA9IGF3YWl0IGltcG9ydCgnZXZlcnktcGx1Z2luJyk7XG4gICAgICBjb25zdCB7IFJQQ0hhbmRsZXIgfSA9IGF3YWl0IGltcG9ydCgnQG9ycGMvc2VydmVyL2ZldGNoJyk7XG4gICAgICBjb25zdCB7IG9uRXJyb3IgfSA9IGF3YWl0IGltcG9ydCgnQG9ycGMvc2VydmVyJyk7XG4gICAgICBjb25zdCB7IE9wZW5BUElIYW5kbGVyIH0gPSBhd2FpdCBpbXBvcnQoJ0BvcnBjL29wZW5hcGkvZmV0Y2gnKTtcbiAgICAgIGNvbnN0IHsgT3BlbkFQSVJlZmVyZW5jZVBsdWdpbiB9ID0gYXdhaXQgaW1wb3J0KCdAb3JwYy9vcGVuYXBpL3BsdWdpbnMnKTtcbiAgICAgIGNvbnN0IHsgWm9kVG9Kc29uU2NoZW1hQ29udmVydGVyIH0gPSBhd2FpdCBpbXBvcnQoJ0BvcnBjL3pvZC96b2Q0Jyk7XG5cbiAgICAgIGNvbnN0IHBsdWdpbklkID0gZGV2Q29uZmlnPy5wbHVnaW5JZCB8fCBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lO1xuXG4gICAgICBjb25zdCBydW50aW1lID0gY3JlYXRlUGx1Z2luUnVudGltZSh7XG4gICAgICAgIHJlZ2lzdHJ5OiB7XG4gICAgICAgICAgW3BsdWdpbklkXToge1xuICAgICAgICAgICAgcmVtb3RlVXJsOiBgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L3JlbW90ZUVudHJ5LmpzYFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGxvYWRlZCA9IGF3YWl0IHJ1bnRpbWUudXNlUGx1Z2luKHBsdWdpbklkLCBkZXZDb25maWc/LmNvbmZpZyk7XG5cbiAgICAgIGNsZWFudXAgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChsb2FkZWQgJiYgdHlwZW9mIChsb2FkZWQgYXMgYW55KS5kaXNwb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgKGxvYWRlZCBhcyBhbnkpLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVudGltZSAmJiB0eXBlb2YgKHJ1bnRpbWUgYXMgYW55KS5jbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgKHJ1bnRpbWUgYXMgYW55KS5jbGVhbnVwKCk7XG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlcnMucnBjID0gbnVsbDtcbiAgICAgICAgaGFuZGxlcnMuYXBpID0gbnVsbDtcbiAgICAgICAgaWYgKGRldlNlcnZlci5hcHAubG9jYWxzLmhhbmRsZXJzKSB7XG4gICAgICAgICAgZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBmb3JtYXRFcnJvciA9IChlcnJvcjogYW55LCBjb250ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW2BcXG7wn5S0ICR7Y29udGV4dH0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcid9YF07XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuY2F1c2U/Lmlzc3VlcyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmNhdXNlLmlzc3VlcykpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKCdcXG7wn5OLIFZhbGlkYXRpb24gSXNzdWVzOicpO1xuICAgICAgICAgIGVycm9yLmNhdXNlLmlzc3Vlcy5mb3JFYWNoKChpc3N1ZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGAgICR7aW5kZXggKyAxfS4gJHtpc3N1ZS5wYXRoPy5qb2luKCcuJykgfHwgJ3Jvb3QnfWApO1xuICAgICAgICAgICAgbGluZXMucHVzaChgICAgICDilJzilIAgQ29kZTogJHtpc3N1ZS5jb2RlIHx8ICd1bmtub3duJ31gKTtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICAg4pSc4pSAIE1lc3NhZ2U6ICR7aXNzdWUubWVzc2FnZSB8fCAnTm8gbWVzc2FnZSd9YCk7XG4gICAgICAgICAgICBpZiAoaXNzdWUuZXhwZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgIOKUnOKUgCBFeHBlY3RlZDogJHtKU09OLnN0cmluZ2lmeShpc3N1ZS5leHBlY3RlZCl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNzdWUucmVjZWl2ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgIOKUlOKUgCBSZWNlaXZlZDogJHtKU09OLnN0cmluZ2lmeShpc3N1ZS5yZWNlaXZlZCl9YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgIOKUlOKUgCAoZW5kKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuZGF0YSAmJiB0eXBlb2YgZXJyb3IuZGF0YSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoZXJyb3IuZGF0YSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGxpbmVzLnB1c2goJ1xcbvCfk4ogRXJyb3IgRGF0YTonKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YVN0ciA9IEpTT04uc3RyaW5naWZ5KGVycm9yLmRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgICAgZGF0YVN0ci5zcGxpdCgnXFxuJykuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgICAgICAgbGluZXMucHVzaChgICAke2xpbmV9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgJHtTdHJpbmcoZXJyb3IuZGF0YSl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuY2F1c2U/LmRhdGEpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKCdcXG7wn5OmIFJlcXVlc3QgRGF0YTonKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YVN0ciA9IEpTT04uc3RyaW5naWZ5KGVycm9yLmNhdXNlLmRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgICAgZGF0YVN0ci5zcGxpdCgnXFxuJykuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgICAgICAgbGluZXMucHVzaChgICAke2xpbmV9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgJHtTdHJpbmcoZXJyb3IuY2F1c2UuZGF0YSl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuY29kZSkge1xuICAgICAgICAgIGxpbmVzLnB1c2goYFxcbuKaoO+4jyAgRXJyb3IgQ29kZTogJHtlcnJvci5jb2RlfWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgICAgbGluZXMucHVzaChg8J+TjSBTdGF0dXM6ICR7ZXJyb3Iuc3RhdHVzfWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihsaW5lcy5qb2luKCdcXG4nKSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vIHR5cGVcbiAgICAgIGhhbmRsZXJzLnJwYyA9IG5ldyBSUENIYW5kbGVyKGxvYWRlZC5yb3V0ZXIsIHtcbiAgICAgICAgaW50ZXJjZXB0b3JzOiBbXG4gICAgICAgICAgb25FcnJvcigoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgZm9ybWF0RXJyb3IoZXJyb3IsICdSUEMnKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm8gdHlwZVxuICAgICAgaGFuZGxlcnMuYXBpID0gbmV3IE9wZW5BUElIYW5kbGVyKGxvYWRlZC5yb3V0ZXIsIHtcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIG5ldyBPcGVuQVBJUmVmZXJlbmNlUGx1Z2luKHtcbiAgICAgICAgICAgIHNjaGVtYUNvbnZlcnRlcnM6IFtuZXcgWm9kVG9Kc29uU2NoZW1hQ29udmVydGVyKCldLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBpbnRlcmNlcHRvcnM6IFtcbiAgICAgICAgICBvbkVycm9yKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBmb3JtYXRFcnJvcihlcnJvciwgJ09wZW5BUEknKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnNvbGUubG9nKGDila3ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBgKTtcbiAgICAgIGNvbnNvbGUubG9nKGDilIIgIOKchSBQbHVnaW4gZGV2IHNlcnZlciByZWFkeTogYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSCICDwn5OhIFJQQzogICAgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L2FwaS9ycGMke3JwY1ByZWZpeH1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGDilIIgIPCfk5YgRG9jczogICBodHRwOi8vbG9jYWxob3N0OiR7cG9ydH0vYXBpYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSCICDwn5KaIEhlYWx0aDogaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L2ApO1xuICAgICAgY29uc29sZS5sb2coYOKVsOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgGApO1xuXG4gICAgICBkZXZTZXJ2ZXIuYXBwLmxvY2Fscy5oYW5kbGVycyA9IGhhbmRsZXJzO1xuXG4gICAgICBpZiAoZGV2U2VydmVyLnNlcnZlcikge1xuICAgICAgICBkZXZTZXJ2ZXIuc2VydmVyLm9uY2UoJ2Nsb3NlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfinYwgRmFpbGVkIHRvIGxvYWQgcGx1Z2luOicsIGVycm9yKTtcbiAgICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gICAgfVxuICB9KSgpO1xuXG4gIHByb2Nlc3Mub25jZSgnU0lHSU5UJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gIH0pO1xuICBwcm9jZXNzLm9uY2UoJ1NJR1RFUk0nLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcGVyZm9ybUNsZWFudXAoKTtcbiAgfSk7XG5cbiAgZGV2U2VydmVyLmFwcC5vcHRpb25zKCcqJywgKHJlcTogYW55LCByZXM6IGFueSkgPT4ge1xuICAgIGFwcGx5Q29yc0hlYWRlcnMocmVzKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuZW5kKCk7XG4gIH0pO1xuXG4gIGRldlNlcnZlci5hcHAuZ2V0KCcvJywgKHJlcTogYW55LCByZXM6IGFueSkgPT4ge1xuICAgIGFwcGx5Q29yc0hlYWRlcnMocmVzKTtcbiAgICByZXMuanNvbih7XG4gICAgICBvazogdHJ1ZSxcbiAgICAgIHBsdWdpbjogcGx1Z2luSW5mby5ub3JtYWxpemVkTmFtZSxcbiAgICAgIHZlcnNpb246IHBsdWdpbkluZm8udmVyc2lvbixcbiAgICAgIHN0YXR1czogZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnM/LnJwYyA/ICdyZWFkeScgOiAnbG9hZGluZycsXG4gICAgICBlbmRwb2ludHM6IHtcbiAgICAgICAgaGVhbHRoOiAnLycsXG4gICAgICAgIGRvY3M6ICcvYXBpJyxcbiAgICAgICAgcnBjOiBgL2FwaS9ycGMke3JwY1ByZWZpeH1gXG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBhbmQgUkVTVCBlbmRwb2ludHMgYXQgL2FwaSBhbmQgL2FwaS8qXG4gIGNvbnN0IGhhbmRsZUFwaVJlcXVlc3QgPSBhc3luYyAocmVxOiBhbnksIHJlczogYW55KSA9PiB7XG4gICAgYXBwbHlDb3JzSGVhZGVycyhyZXMpO1xuICAgIGNvbnN0IGFwaUhhbmRsZXIgPSBkZXZTZXJ2ZXIuYXBwLmxvY2Fscy5oYW5kbGVycz8uYXBpO1xuICAgIGlmICghYXBpSGFuZGxlcikge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNTAzKS5qc29uKHsgZXJyb3I6ICdQbHVnaW4gc3RpbGwgbG9hZGluZy4uLicgfSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IGBodHRwOi8vJHtyZXEuaGVhZGVycy5ob3N0fSR7cmVxLnVybH1gO1xuICAgICAgY29uc3Qgd2ViUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwge1xuICAgICAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLFxuICAgICAgICBib2R5OiByZXEubWV0aG9kICE9PSAnR0VUJyAmJiByZXEubWV0aG9kICE9PSAnSEVBRCcgPyByZXEgOiB1bmRlZmluZWQsXG4gICAgICAgIGR1cGxleDogcmVxLm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxLm1ldGhvZCAhPT0gJ0hFQUQnID8gJ2hhbGYnIDogdW5kZWZpbmVkXG4gICAgICB9IGFzIFJlcXVlc3RJbml0KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpSGFuZGxlci5oYW5kbGUod2ViUmVxdWVzdCwge1xuICAgICAgICBwcmVmaXg6ICcvYXBpJyxcbiAgICAgICAgY29udGV4dDoge31cbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc3BvbnNlKSB7XG4gICAgICAgIHJlcy5zdGF0dXMocmVzdWx0LnJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIHJlc3VsdC5yZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXN1bHQucmVzcG9uc2UudGV4dCgpO1xuICAgICAgICByZXMuc2VuZCh0ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKCdOb3QgRm91bmQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignT3BlbkFQSSBlcnJvcjonLCBlcnJvcik7XG4gICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7XG4gICAgfVxuICB9O1xuXG4gIGRldlNlcnZlci5hcHAuYWxsKCcvYXBpJywgaGFuZGxlQXBpUmVxdWVzdCk7XG4gIGRldlNlcnZlci5hcHAuYWxsKCcvYXBpLyonLCBoYW5kbGVBcGlSZXF1ZXN0KTtcblxuICBkZXZTZXJ2ZXIuYXBwLmFsbChgL2FwaS9ycGMke3JwY1ByZWZpeH0vKmAsIGFzeW5jIChyZXE6IGFueSwgcmVzOiBhbnkpID0+IHtcbiAgICBhcHBseUNvcnNIZWFkZXJzKHJlcyk7XG4gICAgY29uc3QgcnBjSGFuZGxlciA9IGRldlNlcnZlci5hcHAubG9jYWxzLmhhbmRsZXJzPy5ycGM7XG4gICAgaWYgKCFycGNIYW5kbGVyKSB7XG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg1MDMpLmpzb24oeyBlcnJvcjogJ1BsdWdpbiBzdGlsbCBsb2FkaW5nLi4uJyB9KTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gYGh0dHA6Ly8ke3JlcS5oZWFkZXJzLmhvc3R9JHtyZXEudXJsfWA7XG4gICAgICBjb25zdCB3ZWJSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCB7XG4gICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcbiAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMsXG4gICAgICAgIGJvZHk6IHJlcS5tZXRob2QgIT09ICdHRVQnICYmIHJlcS5tZXRob2QgIT09ICdIRUFEJyA/IHJlcSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZHVwbGV4OiByZXEubWV0aG9kICE9PSAnR0VUJyAmJiByZXEubWV0aG9kICE9PSAnSEVBRCcgPyAnaGFsZicgOiB1bmRlZmluZWRcbiAgICAgIH0gYXMgUmVxdWVzdEluaXQpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGNIYW5kbGVyLmhhbmRsZSh3ZWJSZXF1ZXN0LCB7XG4gICAgICAgIHByZWZpeDogYC9hcGkvcnBjJHtycGNQcmVmaXh9YCxcbiAgICAgICAgY29udGV4dDoge31cbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc3BvbnNlKSB7XG4gICAgICAgIHJlcy5zdGF0dXMocmVzdWx0LnJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIHJlc3VsdC5yZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXN1bHQucmVzcG9uc2UudGV4dCgpO1xuICAgICAgICByZXMuc2VuZCh0ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKCdOb3QgRm91bmQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignUlBDIGVycm9yOicsIGVycm9yKTtcbiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6IChlcnJvciBhcyBFcnJvcikubWVzc2FnZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuIiwiaW1wb3J0IHR5cGUgeyBDb21waWxlciwgUnNwYWNrUGx1Z2luSW5zdGFuY2UgfSBmcm9tICdAcnNwYWNrL2NvcmUnO1xuaW1wb3J0IHsgcnNwYWNrIH0gZnJvbSAnQHJzcGFjay9jb3JlJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBnZXRQbHVnaW5JbmZvIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBsb2FkRGV2Q29uZmlnIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBidWlsZFNoYXJlZERlcGVuZGVuY2llcyB9IGZyb20gJy4vbW9kdWxlLWZlZGVyYXRpb24nO1xuaW1wb3J0IHsgc2V0dXBQbHVnaW5NaWRkbGV3YXJlIH0gZnJvbSAnLi9kZXYtc2VydmVyLW1pZGRsZXdhcmUnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlcnlQbHVnaW5PcHRpb25zIHtcbiAgZGV2Q29uZmlnUGF0aD86IHN0cmluZzsgIC8vIGRlZmF1bHRzIHRvICcuL3BsdWdpbi5kZXYudHMnXG4gIHBvcnQ/OiBudW1iZXI7ICAgICAgICAgICAvLyBvdmVycmlkZSBwbHVnaW4uZGV2LnRzIHBvcnRcbiAgcGx1Z2luSWQ/OiBzdHJpbmc7ICAgICAgIC8vIG92ZXJyaWRlIGF1dG8tZGV0ZWN0ZWRcbn1cblxuZXhwb3J0IGNsYXNzIEV2ZXJ5UGx1Z2luRGV2U2VydmVyIGltcGxlbWVudHMgUnNwYWNrUGx1Z2luSW5zdGFuY2Uge1xuICBuYW1lID0gJ0V2ZXJ5UGx1Z2luRGV2U2VydmVyJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEV2ZXJ5UGx1Z2luT3B0aW9ucyA9IHt9KSB7fVxuXG4gIGFwcGx5KGNvbXBpbGVyOiBDb21waWxlcikge1xuICAgIC8vIExvYWQgY29uZmlndXJhdGlvblxuICAgIGNvbnN0IHBsdWdpbkluZm8gPSBnZXRQbHVnaW5JbmZvKGNvbXBpbGVyLm9wdGlvbnMuY29udGV4dCB8fCBwcm9jZXNzLmN3ZCgpKTtcbiAgICBjb25zdCBkZXZDb25maWcgPSBsb2FkRGV2Q29uZmlnKHRoaXMub3B0aW9ucy5kZXZDb25maWdQYXRoIHx8ICcuL3BsdWdpbi5kZXYudHMnKTtcbiAgICBjb25zdCBwb3J0ID0gdGhpcy5vcHRpb25zLnBvcnQgfHwgZGV2Q29uZmlnPy5wb3J0IHx8IDM5OTk7XG5cbiAgICAvLyBDb25maWd1cmUgZGVmYXVsdHMgaW1tZWRpYXRlbHkgKG5vIGhvb2tzIG5lZWRlZClcbiAgICB0aGlzLmNvbmZpZ3VyZURlZmF1bHRzKGNvbXBpbGVyLCBwbHVnaW5JbmZvKTtcblxuICAgIC8vIEluaXRpYWxpemUgZGV2U2VydmVyIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlciA9IHt9O1xuICAgIH1cblxuICAgIC8vIENvbmZpZ3VyZSBkZXYgc2VydmVyXG4gICAgdGhpcy5jb25maWd1cmVEZXZTZXJ2ZXIoY29tcGlsZXIsIHBsdWdpbkluZm8sIGRldkNvbmZpZywgcG9ydCk7XG5cbiAgICAvLyBBcHBseSBNb2R1bGUgRmVkZXJhdGlvbiBwbHVnaW5cbiAgICBuZXcgcnNwYWNrLmNvbnRhaW5lci5Nb2R1bGVGZWRlcmF0aW9uUGx1Z2luKHtcbiAgICAgIG5hbWU6IHBsdWdpbkluZm8ubm9ybWFsaXplZE5hbWUsXG4gICAgICBmaWxlbmFtZTogJ3JlbW90ZUVudHJ5LmpzJyxcbiAgICAgIHJ1bnRpbWVQbHVnaW5zOiBbXG4gICAgICAgIHJlcXVpcmUucmVzb2x2ZSgnQG1vZHVsZS1mZWRlcmF0aW9uL25vZGUvcnVudGltZVBsdWdpbicpLFxuICAgICAgXSxcbiAgICAgIGxpYnJhcnk6IHsgdHlwZTogJ2NvbW1vbmpzLW1vZHVsZScgfSxcbiAgICAgIGV4cG9zZXM6IHtcbiAgICAgICAgJy4vcGx1Z2luJzogJy4vc3JjL2luZGV4LnRzJyxcbiAgICAgIH0sXG4gICAgICBzaGFyZWQ6IGJ1aWxkU2hhcmVkRGVwZW5kZW5jaWVzKHBsdWdpbkluZm8pLFxuICAgIH0pLmFwcGx5KGNvbXBpbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlRGVmYXVsdHMoY29tcGlsZXI6IENvbXBpbGVyLCBwbHVnaW5JbmZvOiBhbnkpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gY29tcGlsZXIub3B0aW9ucy5jb250ZXh0IHx8IHByb2Nlc3MuY3dkKCk7XG5cbiAgICAvLyBDb25maWd1cmUgb3V0cHV0IGRlZmF1bHRzXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLm91dHB1dCkge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5vdXRwdXQgPSB7fTtcbiAgICB9XG4gICAgY29tcGlsZXIub3B0aW9ucy5vdXRwdXQudW5pcXVlTmFtZSA9IHBsdWdpbkluZm8ubm9ybWFsaXplZE5hbWU7XG4gICAgY29tcGlsZXIub3B0aW9ucy5vdXRwdXQucHVibGljUGF0aCA9ICdhdXRvJztcbiAgICBjb21waWxlci5vcHRpb25zLm91dHB1dC5wYXRoID0gcGF0aC5yZXNvbHZlKGNvbnRleHQsICdkaXN0Jyk7XG4gICAgY29tcGlsZXIub3B0aW9ucy5vdXRwdXQuY2xlYW4gPSB0cnVlO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LmxpYnJhcnkgPSB7IHR5cGU6ICdjb21tb25qcy1tb2R1bGUnIH07XG5cbiAgICAvLyBDb25maWd1cmUgdGFyZ2V0IGFuZCBtb2RlIGRlZmF1bHRzXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLnRhcmdldCkge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy50YXJnZXQgPSAnYXN5bmMtbm9kZSc7XG4gICAgfVxuXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLm1vZGUpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMubW9kZSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnID8gJ2RldmVsb3BtZW50JyA6ICdwcm9kdWN0aW9uJztcbiAgICB9XG5cbiAgICAvLyBDb25maWd1cmUgZGV2dG9vbFxuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5kZXZ0b29sKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLmRldnRvb2wgPSAnc291cmNlLW1hcCc7XG4gICAgfVxuXG4gICAgLy8gU3VwcHJlc3MgdmVyYm9zZSBpbmZyYXN0cnVjdHVyZSBsb2dnaW5nXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLmluZnJhc3RydWN0dXJlTG9nZ2luZykge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5pbmZyYXN0cnVjdHVyZUxvZ2dpbmcgPSB7XG4gICAgICAgIGxldmVsOiAnd2FybicsICAvLyBPbmx5IHNob3cgd2FybmluZ3MgYW5kIGVycm9yc1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBDb25maWd1cmUgbW9kdWxlIHJ1bGVzIC0gZW5zdXJlIFR5cGVTY3JpcHQgbG9hZGVyIGlzIHByZXNlbnRcbiAgICB0aGlzLmVuc3VyZVR5cGVTY3JpcHRMb2FkZXIoY29tcGlsZXIpO1xuXG4gICAgLy8gQ29uZmlndXJlIHJlc29sdmUgZXh0ZW5zaW9uc1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5yZXNvbHZlKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLnJlc29sdmUgPSB7fTtcbiAgICB9XG4gICAgY29tcGlsZXIub3B0aW9ucy5yZXNvbHZlLmV4dGVuc2lvbnMgPSBbJy4uLicsICcudHN4JywgJy50cyddO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVUeXBlU2NyaXB0TG9hZGVyKGNvbXBpbGVyOiBDb21waWxlcikge1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5tb2R1bGUpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMubW9kdWxlID0geyBydWxlczogW10gfSBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLm1vZHVsZS5ydWxlcykge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5tb2R1bGUucnVsZXMgPSBbXTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBUeXBlU2NyaXB0IGxvYWRlciBpcyBhbHJlYWR5IGNvbmZpZ3VyZWRcbiAgICBjb25zdCBoYXNUc0xvYWRlciA9IGNvbXBpbGVyLm9wdGlvbnMubW9kdWxlLnJ1bGVzLnNvbWUoKHJ1bGU6IGFueSkgPT5cbiAgICAgIHR5cGVvZiBydWxlID09PSAnb2JqZWN0JyAmJlxuICAgICAgcnVsZSAhPT0gbnVsbCAmJlxuICAgICAgJ3Rlc3QnIGluIHJ1bGUgJiZcbiAgICAgIHJ1bGUudGVzdCBpbnN0YW5jZW9mIFJlZ0V4cCAmJlxuICAgICAgcnVsZS50ZXN0LnRlc3QoJy50cycpXG4gICAgKTtcblxuICAgIC8vIEFkZCBUeXBlU2NyaXB0IGxvYWRlciBpZiBub3QgcHJlc2VudFxuICAgIGlmICghaGFzVHNMb2FkZXIpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMubW9kdWxlLnJ1bGVzLnB1c2goe1xuICAgICAgICB0ZXN0OiAvXFwudHN4PyQvLFxuICAgICAgICB1c2U6ICdidWlsdGluOnN3Yy1sb2FkZXInLFxuICAgICAgICBleGNsdWRlOiAvbm9kZV9tb2R1bGVzLyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlRGV2U2VydmVyKGNvbXBpbGVyOiBDb21waWxlciwgcGx1Z2luSW5mbzogYW55LCBkZXZDb25maWc6IGFueSwgcG9ydDogbnVtYmVyKSB7XG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLmRldlNlcnZlcikge1xuICAgICAgcmV0dXJuOyAvLyBTaG91bGQgbmV2ZXIgaGFwcGVuIGR1ZSB0byBjaGVjayBpbiBhcHBseSgpXG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IGNvbXBpbGVyLm9wdGlvbnMuY29udGV4dCB8fCBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IG9yaWdpbmFsU2V0dXAgPSBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzO1xuXG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIucG9ydCA9IHBvcnQ7XG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuc3RhdGljID0gcGF0aC5qb2luKGNvbnRleHQsICdkaXN0Jyk7XG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuaG90ID0gdHJ1ZTtcbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5kZXZNaWRkbGV3YXJlID0geyB3cml0ZVRvRGlzazogdHJ1ZSB9O1xuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLmhlYWRlcnMgPSB7XG4gICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJzogJyonLFxuICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnOiAnR0VULCBQT1NULCBQVVQsIERFTEVURSwgUEFUQ0gsIE9QVElPTlMnLFxuICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnOiAnWC1SZXF1ZXN0ZWQtV2l0aCwgY29udGVudC10eXBlLCBBdXRob3JpemF0aW9uJyxcbiAgICB9O1xuXG4gICAgLy8gU3VwcHJlc3MgdmVyYm9zZSBsb2dnaW5nXG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuY2xpZW50ID0ge1xuICAgICAgbG9nZ2luZzogJ3dhcm4nLCAgLy8gT25seSBzaG93IHdhcm5pbmdzIGFuZCBlcnJvcnNcbiAgICAgIG92ZXJsYXk6IHtcbiAgICAgICAgd2FybmluZ3M6IGZhbHNlLCAgLy8gRG9uJ3Qgc2hvdyB3YXJuaW5nIG92ZXJsYXlcbiAgICAgICAgZXJyb3JzOiB0cnVlLCAgICAgLy8gU3RpbGwgc2hvdyBlcnJvcnNcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLnNldHVwTWlkZGxld2FyZXMgPSAobWlkZGxld2FyZXMsIGRldlNlcnZlcikgPT4ge1xuICAgICAgc2V0dXBQbHVnaW5NaWRkbGV3YXJlKGRldlNlcnZlciwgcGx1Z2luSW5mbywgZGV2Q29uZmlnLCBwb3J0KTtcbiAgICAgIHJldHVybiBvcmlnaW5hbFNldHVwID8gb3JpZ2luYWxTZXR1cChtaWRkbGV3YXJlcywgZGV2U2VydmVyKSA6IG1pZGRsZXdhcmVzO1xuICAgIH07XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVlBLFNBQWdCLGNBQWMsU0FBNkI7Q0FDekQsTUFBTSxVQUFVQSxrQkFBSyxLQUFLLFNBQVMsZUFBZTtDQUNsRCxNQUFNLE1BQU0sS0FBSyxNQUFNQyxnQkFBRyxhQUFhLFNBQVMsUUFBUSxDQUFDO0FBRXpELFFBQU87RUFDTCxNQUFNLElBQUk7RUFDVixTQUFTLElBQUk7RUFDYixnQkFBZ0JDLDBDQUF3QixJQUFJLEtBQUs7RUFDakQsY0FBYyxJQUFJLGdCQUFnQixFQUFFO0VBQ3BDLGtCQUFrQixJQUFJLG9CQUFvQixFQUFFO0VBQzdDOztBQUdILE1BQU0sZ0NBQWdCLElBQUksS0FBYTtBQUV2QyxTQUFnQixjQUFjLGVBQXVCO0FBQ25ELEtBQUk7RUFDRixNQUFNLFdBQVdGLGtCQUFLLFFBQVEsY0FBYztBQUU1QyxNQUFJLGNBQWMsSUFBSSxTQUFTLEVBQUU7QUFDL0IsVUFBTyxRQUFRLE1BQU07R0FDckIsTUFBTSxVQUFVQSxrQkFBSyxRQUFRLFNBQVM7QUFDdEMsUUFBSyxNQUFNLE9BQU8sT0FBTyxLQUFLLFFBQVEsTUFBTSxDQUMx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
364
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsiaGFuZGxlcnM6IHsgcnBjOiBhbnksIGFwaTogYW55IH0iLCJjbGVhbnVwOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsIiwibGluZXM6IHN0cmluZ1tdIiwicGF0aCIsImZzIiwiZ2V0Tm9ybWFsaXplZFJlbW90ZU5hbWUiLCJtb2R1bGUiLCJvcHRpb25zOiBFdmVyeVBsdWdpbk9wdGlvbnMiLCJNb2R1bGVGZWRlcmF0aW9uUGx1Z2luIiwicGF0aCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC9yc3BhY2svZGV2LXNlcnZlci1taWRkbGV3YXJlLnRzIiwiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9tb2R1bGUtZmVkZXJhdGlvbi50cyIsIi4uLy4uLy4uL3NyYy9idWlsZC9yc3BhY2svdXRpbHMudHMiLCIuLi8uLi8uLi9zcmMvYnVpbGQvcnNwYWNrL3BsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBsdWdpbkluZm8gfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgY29yc0hlYWRlcnMgPSB7XG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOiAnKicsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJzogJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnOiAnWC1SZXF1ZXN0ZWQtV2l0aCwgY29udGVudC10eXBlLCBBdXRob3JpemF0aW9uJ1xufTtcblxuY29uc3QgYXBwbHlDb3JzSGVhZGVycyA9IChyZXM6IGFueSkgPT4ge1xuICBPYmplY3QuZW50cmllcyhjb3JzSGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgfSk7XG59O1xuXG5jb25zdCBub3JtYWxpemVQcmVmaXggPSAocHJlZml4Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFwcmVmaXgpIHJldHVybiAnJztcbiAgY29uc3QgY2xlYW5lZCA9IHByZWZpeC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJyk7XG4gIHJldHVybiBjbGVhbmVkID8gYC8ke2NsZWFuZWR9YCA6ICcnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwUGx1Z2luTWlkZGxld2FyZShkZXZTZXJ2ZXI6IGFueSwgcGx1Z2luSW5mbzogUGx1Z2luSW5mbywgZGV2Q29uZmlnOiBhbnksIHBvcnQ6IG51bWJlcikge1xuICBjb25zdCBycGNQcmVmaXggPSBub3JtYWxpemVQcmVmaXgoZGV2Q29uZmlnPy5wcmVmaXgpO1xuICBsZXQgaGFuZGxlcnM6IHsgcnBjOiBhbnksIGFwaTogYW55IH0gPSB7IHJwYzogbnVsbCwgYXBpOiBudWxsIH07XG4gIGxldCBjbGVhbnVwOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBwZXJmb3JtQ2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoY2xlYW51cCkge1xuICAgICAgYXdhaXQgY2xlYW51cCgpO1xuICAgICAgY2xlYW51cCA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcGVyZm9ybUNsZWFudXAoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGNyZWF0ZVBsdWdpblJ1bnRpbWUgfSA9IGF3YWl0IGltcG9ydCgnZXZlcnktcGx1Z2luJyk7XG4gICAgICBjb25zdCB7IFJQQ0hhbmRsZXIgfSA9IGF3YWl0IGltcG9ydCgnQG9ycGMvc2VydmVyL2ZldGNoJyk7XG4gICAgICBjb25zdCB7IG9uRXJyb3IgfSA9IGF3YWl0IGltcG9ydCgnQG9ycGMvc2VydmVyJyk7XG4gICAgICBjb25zdCB7IE9wZW5BUElIYW5kbGVyIH0gPSBhd2FpdCBpbXBvcnQoJ0BvcnBjL29wZW5hcGkvZmV0Y2gnKTtcbiAgICAgIGNvbnN0IHsgT3BlbkFQSVJlZmVyZW5jZVBsdWdpbiB9ID0gYXdhaXQgaW1wb3J0KCdAb3JwYy9vcGVuYXBpL3BsdWdpbnMnKTtcbiAgICAgIGNvbnN0IHsgWm9kVG9Kc29uU2NoZW1hQ29udmVydGVyIH0gPSBhd2FpdCBpbXBvcnQoJ0BvcnBjL3pvZC96b2Q0Jyk7XG5cbiAgICAgIGNvbnN0IHBsdWdpbklkID0gZGV2Q29uZmlnPy5wbHVnaW5JZCB8fCBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lO1xuXG4gICAgICBjb25zdCBydW50aW1lID0gY3JlYXRlUGx1Z2luUnVudGltZSh7XG4gICAgICAgIHJlZ2lzdHJ5OiB7XG4gICAgICAgICAgW3BsdWdpbklkXToge1xuICAgICAgICAgICAgcmVtb3RlVXJsOiBgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L3JlbW90ZUVudHJ5LmpzYFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGxvYWRlZCA9IGF3YWl0IHJ1bnRpbWUudXNlUGx1Z2luKHBsdWdpbklkLCBkZXZDb25maWc/LmNvbmZpZyk7XG5cbiAgICAgIGNsZWFudXAgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChsb2FkZWQgJiYgdHlwZW9mIChsb2FkZWQgYXMgYW55KS5kaXNwb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgKGxvYWRlZCBhcyBhbnkpLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVudGltZSAmJiB0eXBlb2YgKHJ1bnRpbWUgYXMgYW55KS5jbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgKHJ1bnRpbWUgYXMgYW55KS5jbGVhbnVwKCk7XG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlcnMucnBjID0gbnVsbDtcbiAgICAgICAgaGFuZGxlcnMuYXBpID0gbnVsbDtcbiAgICAgICAgaWYgKGRldlNlcnZlci5hcHAubG9jYWxzLmhhbmRsZXJzKSB7XG4gICAgICAgICAgZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBmb3JtYXRFcnJvciA9IChlcnJvcjogYW55LCBjb250ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW2BcXG7wn5S0ICR7Y29udGV4dH0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcid9YF07XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuY2F1c2U/Lmlzc3VlcyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmNhdXNlLmlzc3VlcykpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKCdcXG7wn5OLIFZhbGlkYXRpb24gSXNzdWVzOicpO1xuICAgICAgICAgIGVycm9yLmNhdXNlLmlzc3Vlcy5mb3JFYWNoKChpc3N1ZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGAgICR7aW5kZXggKyAxfS4gJHtpc3N1ZS5wYXRoPy5qb2luKCcuJykgfHwgJ3Jvb3QnfWApO1xuICAgICAgICAgICAgbGluZXMucHVzaChgICAgICDilJzilIAgQ29kZTogJHtpc3N1ZS5jb2RlIHx8ICd1bmtub3duJ31gKTtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgICAg4pSc4pSAIE1lc3NhZ2U6ICR7aXNzdWUubWVzc2FnZSB8fCAnTm8gbWVzc2FnZSd9YCk7XG4gICAgICAgICAgICBpZiAoaXNzdWUuZXhwZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgIOKUnOKUgCBFeHBlY3RlZDogJHtKU09OLnN0cmluZ2lmeShpc3N1ZS5leHBlY3RlZCl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNzdWUucmVjZWl2ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgIOKUlOKUgCBSZWNlaXZlZDogJHtKU09OLnN0cmluZ2lmeShpc3N1ZS5yZWNlaXZlZCl9YCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsaW5lcy5wdXNoKGAgICAgIOKUlOKUgCAoZW5kKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuZGF0YSAmJiB0eXBlb2YgZXJyb3IuZGF0YSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoZXJyb3IuZGF0YSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGxpbmVzLnB1c2goJ1xcbvCfk4ogRXJyb3IgRGF0YTonKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YVN0ciA9IEpTT04uc3RyaW5naWZ5KGVycm9yLmRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgICAgZGF0YVN0ci5zcGxpdCgnXFxuJykuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgICAgICAgbGluZXMucHVzaChgICAke2xpbmV9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgJHtTdHJpbmcoZXJyb3IuZGF0YSl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuY2F1c2U/LmRhdGEpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKCdcXG7wn5OmIFJlcXVlc3QgRGF0YTonKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YVN0ciA9IEpTT04uc3RyaW5naWZ5KGVycm9yLmNhdXNlLmRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgICAgZGF0YVN0ci5zcGxpdCgnXFxuJykuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgICAgICAgbGluZXMucHVzaChgICAke2xpbmV9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgJHtTdHJpbmcoZXJyb3IuY2F1c2UuZGF0YSl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3IuY29kZSkge1xuICAgICAgICAgIGxpbmVzLnB1c2goYFxcbuKaoO+4jyAgRXJyb3IgQ29kZTogJHtlcnJvci5jb2RlfWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgICAgbGluZXMucHVzaChg8J+TjSBTdGF0dXM6ICR7ZXJyb3Iuc3RhdHVzfWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihsaW5lcy5qb2luKCdcXG4nKSk7XG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vIHR5cGVcbiAgICAgIGhhbmRsZXJzLnJwYyA9IG5ldyBSUENIYW5kbGVyKGxvYWRlZC5yb3V0ZXIsIHtcbiAgICAgICAgaW50ZXJjZXB0b3JzOiBbXG4gICAgICAgICAgb25FcnJvcigoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgZm9ybWF0RXJyb3IoZXJyb3IsICdSUEMnKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igbm8gdHlwZVxuICAgICAgaGFuZGxlcnMuYXBpID0gbmV3IE9wZW5BUElIYW5kbGVyKGxvYWRlZC5yb3V0ZXIsIHtcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIG5ldyBPcGVuQVBJUmVmZXJlbmNlUGx1Z2luKHtcbiAgICAgICAgICAgIHNjaGVtYUNvbnZlcnRlcnM6IFtuZXcgWm9kVG9Kc29uU2NoZW1hQ29udmVydGVyKCldLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBpbnRlcmNlcHRvcnM6IFtcbiAgICAgICAgICBvbkVycm9yKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBmb3JtYXRFcnJvcihlcnJvciwgJ09wZW5BUEknKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnNvbGUubG9nKGDila3ilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBgKTtcbiAgICAgIGNvbnNvbGUubG9nKGDilIIgIOKchSBQbHVnaW4gZGV2IHNlcnZlciByZWFkeTogYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSCICDwn5OhIFJQQzogICAgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L2FwaS9ycGMke3JwY1ByZWZpeH1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGDilIIgIPCfk5YgRG9jczogICBodHRwOi8vbG9jYWxob3N0OiR7cG9ydH0vYXBpYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSCICDwn5KaIEhlYWx0aDogaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L2ApO1xuICAgICAgY29uc29sZS5sb2coYOKVsOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgGApO1xuXG4gICAgICBkZXZTZXJ2ZXIuYXBwLmxvY2Fscy5oYW5kbGVycyA9IGhhbmRsZXJzO1xuXG4gICAgICBpZiAoZGV2U2VydmVyLnNlcnZlcikge1xuICAgICAgICBkZXZTZXJ2ZXIuc2VydmVyLm9uY2UoJ2Nsb3NlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCfinYwgRmFpbGVkIHRvIGxvYWQgcGx1Z2luOicsIGVycm9yKTtcbiAgICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gICAgfVxuICB9KSgpO1xuXG4gIHByb2Nlc3Mub25jZSgnU0lHSU5UJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gIH0pO1xuICBwcm9jZXNzLm9uY2UoJ1NJR1RFUk0nLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcGVyZm9ybUNsZWFudXAoKTtcbiAgfSk7XG5cbiAgZGV2U2VydmVyLmFwcC5vcHRpb25zKCcqJywgKHJlcTogYW55LCByZXM6IGFueSkgPT4ge1xuICAgIGFwcGx5Q29yc0hlYWRlcnMocmVzKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuZW5kKCk7XG4gIH0pO1xuXG4gIGRldlNlcnZlci5hcHAuZ2V0KCcvJywgKHJlcTogYW55LCByZXM6IGFueSkgPT4ge1xuICAgIGFwcGx5Q29yc0hlYWRlcnMocmVzKTtcbiAgICByZXMuanNvbih7XG4gICAgICBvazogdHJ1ZSxcbiAgICAgIHBsdWdpbjogcGx1Z2luSW5mby5ub3JtYWxpemVkTmFtZSxcbiAgICAgIHZlcnNpb246IHBsdWdpbkluZm8udmVyc2lvbixcbiAgICAgIHN0YXR1czogZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnM/LnJwYyA/ICdyZWFkeScgOiAnbG9hZGluZycsXG4gICAgICBlbmRwb2ludHM6IHtcbiAgICAgICAgaGVhbHRoOiAnLycsXG4gICAgICAgIGRvY3M6ICcvYXBpJyxcbiAgICAgICAgcnBjOiBgL2FwaS9ycGMke3JwY1ByZWZpeH1gXG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBhbmQgUkVTVCBlbmRwb2ludHMgYXQgL2FwaSBhbmQgL2FwaS8qXG4gIGNvbnN0IGhhbmRsZUFwaVJlcXVlc3QgPSBhc3luYyAocmVxOiBhbnksIHJlczogYW55KSA9PiB7XG4gICAgYXBwbHlDb3JzSGVhZGVycyhyZXMpO1xuICAgIGNvbnN0IGFwaUhhbmRsZXIgPSBkZXZTZXJ2ZXIuYXBwLmxvY2Fscy5oYW5kbGVycz8uYXBpO1xuICAgIGlmICghYXBpSGFuZGxlcikge1xuICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNTAzKS5qc29uKHsgZXJyb3I6ICdQbHVnaW4gc3RpbGwgbG9hZGluZy4uLicgfSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IGBodHRwOi8vJHtyZXEuaGVhZGVycy5ob3N0fSR7cmVxLnVybH1gO1xuICAgICAgY29uc3Qgd2ViUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHVybCwge1xuICAgICAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLFxuICAgICAgICBib2R5OiByZXEubWV0aG9kICE9PSAnR0VUJyAmJiByZXEubWV0aG9kICE9PSAnSEVBRCcgPyByZXEgOiB1bmRlZmluZWQsXG4gICAgICAgIGR1cGxleDogcmVxLm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxLm1ldGhvZCAhPT0gJ0hFQUQnID8gJ2hhbGYnIDogdW5kZWZpbmVkXG4gICAgICB9IGFzIFJlcXVlc3RJbml0KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpSGFuZGxlci5oYW5kbGUod2ViUmVxdWVzdCwge1xuICAgICAgICBwcmVmaXg6ICcvYXBpJyxcbiAgICAgICAgY29udGV4dDoge31cbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc3BvbnNlKSB7XG4gICAgICAgIHJlcy5zdGF0dXMocmVzdWx0LnJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIHJlc3VsdC5yZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXN1bHQucmVzcG9uc2UudGV4dCgpO1xuICAgICAgICByZXMuc2VuZCh0ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKCdOb3QgRm91bmQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignT3BlbkFQSSBlcnJvcjonLCBlcnJvcik7XG4gICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7XG4gICAgfVxuICB9O1xuXG4gIGRldlNlcnZlci5hcHAuYWxsKCcvYXBpJywgaGFuZGxlQXBpUmVxdWVzdCk7XG4gIGRldlNlcnZlci5hcHAuYWxsKCcvYXBpLyonLCBoYW5kbGVBcGlSZXF1ZXN0KTtcblxuICBkZXZTZXJ2ZXIuYXBwLmFsbChgL2FwaS9ycGMke3JwY1ByZWZpeH0vKmAsIGFzeW5jIChyZXE6IGFueSwgcmVzOiBhbnkpID0+IHtcbiAgICBhcHBseUNvcnNIZWFkZXJzKHJlcyk7XG4gICAgY29uc3QgcnBjSGFuZGxlciA9IGRldlNlcnZlci5hcHAubG9jYWxzLmhhbmRsZXJzPy5ycGM7XG4gICAgaWYgKCFycGNIYW5kbGVyKSB7XG4gICAgICByZXR1cm4gcmVzLnN0YXR1cyg1MDMpLmpzb24oeyBlcnJvcjogJ1BsdWdpbiBzdGlsbCBsb2FkaW5nLi4uJyB9KTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gYGh0dHA6Ly8ke3JlcS5oZWFkZXJzLmhvc3R9JHtyZXEudXJsfWA7XG4gICAgICBjb25zdCB3ZWJSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCB7XG4gICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcbiAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMsXG4gICAgICAgIGJvZHk6IHJlcS5tZXRob2QgIT09ICdHRVQnICYmIHJlcS5tZXRob2QgIT09ICdIRUFEJyA/IHJlcSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZHVwbGV4OiByZXEubWV0aG9kICE9PSAnR0VUJyAmJiByZXEubWV0aG9kICE9PSAnSEVBRCcgPyAnaGFsZicgOiB1bmRlZmluZWRcbiAgICAgIH0gYXMgUmVxdWVzdEluaXQpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGNIYW5kbGVyLmhhbmRsZSh3ZWJSZXF1ZXN0LCB7XG4gICAgICAgIHByZWZpeDogYC9hcGkvcnBjJHtycGNQcmVmaXh9YCxcbiAgICAgICAgY29udGV4dDoge31cbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc3BvbnNlKSB7XG4gICAgICAgIHJlcy5zdGF0dXMocmVzdWx0LnJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIHJlc3VsdC5yZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXN1bHQucmVzcG9uc2UudGV4dCgpO1xuICAgICAgICByZXMuc2VuZCh0ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKCdOb3QgRm91bmQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignUlBDIGVycm9yOicsIGVycm9yKTtcbiAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgZXJyb3I6IChlcnJvciBhcyBFcnJvcikubWVzc2FnZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuIiwiaW1wb3J0IHR5cGUgeyBQbHVnaW5JbmZvIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNoYXJlZERlcGVuZGVuY2llcyhwbHVnaW5JbmZvOiBQbHVnaW5JbmZvKSB7XG4gIC8vIEdldCBldmVyeS1wbHVnaW4gcGFja2FnZSBpbmZvIGZvciB2ZXJzaW9uIGNvbnN0cmFpbnRzXG4gIGNvbnN0IGV2ZXJ5UGx1Z2luUGtnID0gcmVxdWlyZSgnZXZlcnktcGx1Z2luL3BhY2thZ2UuanNvbicpO1xuXG4gIHJldHVybiB7XG4gICAgJ2V2ZXJ5LXBsdWdpbic6IHtcbiAgICAgIHZlcnNpb246IGV2ZXJ5UGx1Z2luUGtnLnZlcnNpb24sXG4gICAgICBzaW5nbGV0b246IHRydWUsXG4gICAgICByZXF1aXJlZFZlcnNpb246IGAke2V2ZXJ5UGx1Z2luUGtnLnZlcnNpb259YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgZWZmZWN0OiB7XG4gICAgICB2ZXJzaW9uOiBldmVyeVBsdWdpblBrZy5kZXBlbmRlbmNpZXMuZWZmZWN0LFxuICAgICAgc2luZ2xldG9uOiB0cnVlLFxuICAgICAgcmVxdWlyZWRWZXJzaW9uOiBgJHtldmVyeVBsdWdpblBrZy5kZXBlbmRlbmNpZXMuZWZmZWN0fWAsXG4gICAgICBzdHJpY3RWZXJzaW9uOiBmYWxzZSxcbiAgICAgIGVhZ2VyOiBmYWxzZSxcbiAgICB9LFxuICAgIHpvZDoge1xuICAgICAgdmVyc2lvbjogZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzLnpvZCxcbiAgICAgIHNpbmdsZXRvbjogdHJ1ZSxcbiAgICAgIHJlcXVpcmVkVmVyc2lvbjogYCR7ZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzLnpvZH1gLFxuICAgICAgc3RyaWN0VmVyc2lvbjogZmFsc2UsXG4gICAgICBlYWdlcjogZmFsc2UsXG4gICAgfSxcbiAgICAnQG9ycGMvY29udHJhY3QnOiB7XG4gICAgICB2ZXJzaW9uOiBldmVyeVBsdWdpblBrZy5kZXBlbmRlbmNpZXNbJ0BvcnBjL2NvbnRyYWN0J10sXG4gICAgICBzaW5nbGV0b246IHRydWUsXG4gICAgICByZXF1aXJlZFZlcnNpb246IGAke2V2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llc1snQG9ycGMvY29udHJhY3QnXX1gLFxuICAgICAgc3RyaWN0VmVyc2lvbjogZmFsc2UsXG4gICAgICBlYWdlcjogZmFsc2UsXG4gICAgfSxcbiAgICAnQG9ycGMvc2VydmVyJzoge1xuICAgICAgdmVyc2lvbjogZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzWydAb3JwYy9zZXJ2ZXInXSxcbiAgICAgIHNpbmdsZXRvbjogdHJ1ZSxcbiAgICAgIHJlcXVpcmVkVmVyc2lvbjogYCR7ZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzWydAb3JwYy9zZXJ2ZXInXX1gLFxuICAgICAgc3RyaWN0VmVyc2lvbjogZmFsc2UsXG4gICAgICBlYWdlcjogZmFsc2UsXG4gICAgfSxcbiAgfTtcbn1cbiIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBnZXROb3JtYWxpemVkUmVtb3RlTmFtZSB9IGZyb20gJ2V2ZXJ5LXBsdWdpbi9ub3JtYWxpemUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgbm9ybWFsaXplZE5hbWU6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwZWVyRGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luSW5mbyhjb250ZXh0OiBzdHJpbmcpOiBQbHVnaW5JbmZvIHtcbiAgY29uc3QgcGtnUGF0aCA9IHBhdGguam9pbihjb250ZXh0LCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGYtOCcpKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBrZy5uYW1lLFxuICAgIHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICAgIG5vcm1hbGl6ZWROYW1lOiBnZXROb3JtYWxpemVkUmVtb3RlTmFtZShwa2cubmFtZSksXG4gICAgZGVwZW5kZW5jaWVzOiBwa2cuZGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIHBlZXJEZXBlbmRlbmNpZXM6IHBrZy5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9LFxuICB9O1xufVxuXG5jb25zdCBsb2FkZWRNb2R1bGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkRGV2Q29uZmlnKGRldkNvbmZpZ1BhdGg6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKGRldkNvbmZpZ1BhdGgpO1xuICAgIFxuICAgIGlmIChsb2FkZWRNb2R1bGVzLmhhcyhmdWxsUGF0aCkpIHtcbiAgICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW2Z1bGxQYXRoXTtcbiAgICAgIGNvbnN0IGRpclBhdGggPSBwYXRoLmRpcm5hbWUoZnVsbFBhdGgpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVxdWlyZS5jYWNoZSkpIHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGRpclBhdGgpICYmIGtleSAhPT0gZnVsbFBhdGgpIHtcbiAgICAgICAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG1vZHVsZSA9IHJlcXVpcmUoZnVsbFBhdGgpLmRlZmF1bHQ7XG4gICAgbG9hZGVkTW9kdWxlcy5hZGQoZnVsbFBhdGgpO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgbG9hZCBkZXYgY29uZmlnIGZyb20gJHtkZXZDb25maWdQYXRofTpgLCAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwRGV2Q29uZmlnKCkge1xuICBmb3IgKGNvbnN0IG1vZHVsZVBhdGggb2YgbG9hZGVkTW9kdWxlcykge1xuICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW21vZHVsZVBhdGhdO1xuICB9XG4gIGxvYWRlZE1vZHVsZXMuY2xlYXIoKTtcbn1cbiIsImltcG9ydCB7IE1vZHVsZUZlZGVyYXRpb25QbHVnaW4gfSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnNwYWNrJztcbmltcG9ydCB0eXBlIHsgQ29tcGlsZXIsIFJzcGFja1BsdWdpbkluc3RhbmNlIH0gZnJvbSAnQHJzcGFjay9jb3JlJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBzZXR1cFBsdWdpbk1pZGRsZXdhcmUgfSBmcm9tICcuL2Rldi1zZXJ2ZXItbWlkZGxld2FyZSc7XG5pbXBvcnQgeyBidWlsZFNoYXJlZERlcGVuZGVuY2llcyB9IGZyb20gJy4vbW9kdWxlLWZlZGVyYXRpb24nO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSW5mbywgbG9hZERldkNvbmZpZyB9IGZyb20gJy4vdXRpbHMnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlcnlQbHVnaW5PcHRpb25zIHtcbiAgZGV2Q29uZmlnUGF0aD86IHN0cmluZzsgIC8vIGRlZmF1bHRzIHRvICcuL3BsdWdpbi5kZXYudHMnXG4gIHBvcnQ/OiBudW1iZXI7ICAgICAgICAgICAvLyBvdmVycmlkZSBwbHVnaW4uZGV2LnRzIHBvcnRcbiAgcGx1Z2luSWQ/OiBzdHJpbmc7ICAgICAgIC8vIG92ZXJyaWRlIGF1dG8tZGV0ZWN0ZWRcbn1cblxuZXhwb3J0IGNsYXNzIEV2ZXJ5UGx1Z2luRGV2U2VydmVyIGltcGxlbWVudHMgUnNwYWNrUGx1Z2luSW5zdGFuY2Uge1xuICBuYW1lID0gJ0V2ZXJ5UGx1Z2luRGV2U2VydmVyJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEV2ZXJ5UGx1Z2luT3B0aW9ucyA9IHt9KSB7IH1cblxuICBhcHBseShjb21waWxlcjogQ29tcGlsZXIpIHtcbiAgICAvLyBMb2FkIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBwbHVnaW5JbmZvID0gZ2V0UGx1Z2luSW5mbyhjb21waWxlci5vcHRpb25zLmNvbnRleHQgfHwgcHJvY2Vzcy5jd2QoKSk7XG4gICAgY29uc3QgZGV2Q29uZmlnID0gbG9hZERldkNvbmZpZyh0aGlzLm9wdGlvbnMuZGV2Q29uZmlnUGF0aCB8fCAnLi9wbHVnaW4uZGV2LnRzJyk7XG4gICAgY29uc3QgcG9ydCA9IHRoaXMub3B0aW9ucy5wb3J0IHx8IGRldkNvbmZpZz8ucG9ydCB8fCAzOTk5O1xuXG4gICAgLy8gQ29uZmlndXJlIGRlZmF1bHRzIGltbWVkaWF0ZWx5IChubyBob29rcyBuZWVkZWQpXG4gICAgdGhpcy5jb25maWd1cmVEZWZhdWx0cyhjb21waWxlciwgcGx1Z2luSW5mbyk7XG5cbiAgICAvLyBJbml0aWFsaXplIGRldlNlcnZlciBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLmRldlNlcnZlcikge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIgPSB7fTtcbiAgICB9XG5cbiAgICAvLyBDb25maWd1cmUgZGV2IHNlcnZlclxuICAgIHRoaXMuY29uZmlndXJlRGV2U2VydmVyKGNvbXBpbGVyLCBwbHVnaW5JbmZvLCBkZXZDb25maWcsIHBvcnQpO1xuXG4gICAgLy8gQXBwbHkgTW9kdWxlIEZlZGVyYXRpb24gcGx1Z2luXG4gICAgbmV3IE1vZHVsZUZlZGVyYXRpb25QbHVnaW4oe1xuICAgICAgbmFtZTogcGx1Z2luSW5mby5ub3JtYWxpemVkTmFtZSxcbiAgICAgIGZpbGVuYW1lOiAncmVtb3RlRW50cnkuanMnLFxuICAgICAgbWFuaWZlc3Q6IHRydWUsICAvLyBFbmFibGUgTUYgMi4wIG1hbmlmZXN0IGdlbmVyYXRpb25cbiAgICAgIGR0czogZmFsc2UsXG4gICAgICBydW50aW1lUGx1Z2luczogW1xuICAgICAgICByZXF1aXJlLnJlc29sdmUoJ0Btb2R1bGUtZmVkZXJhdGlvbi9ub2RlL3J1bnRpbWVQbHVnaW4nKSxcbiAgICAgIF0sXG4gICAgICBsaWJyYXJ5OiB7IHR5cGU6ICdjb21tb25qcy1tb2R1bGUnIH0sXG4gICAgICBleHBvc2VzOiB7XG4gICAgICAgICcuL3BsdWdpbic6ICcuL3NyYy9pbmRleC50cycsXG4gICAgICB9LFxuICAgICAgc2hhcmVkOiBidWlsZFNoYXJlZERlcGVuZGVuY2llcyhwbHVnaW5JbmZvKSxcbiAgICB9KS5hcHBseShjb21waWxlcik7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZURlZmF1bHRzKGNvbXBpbGVyOiBDb21waWxlciwgcGx1Z2luSW5mbzogYW55KSB7XG4gICAgY29uc3QgY29udGV4dCA9IGNvbXBpbGVyLm9wdGlvbnMuY29udGV4dCB8fCBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgLy8gQ29uZmlndXJlIG91dHB1dCBkZWZhdWx0c1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5vdXRwdXQpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0ID0ge307XG4gICAgfVxuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LnVuaXF1ZU5hbWUgPSBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LnB1YmxpY1BhdGggPSAnYXV0byc7XG4gICAgY29tcGlsZXIub3B0aW9ucy5vdXRwdXQucGF0aCA9IHBhdGgucmVzb2x2ZShjb250ZXh0LCAnZGlzdCcpO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LmNsZWFuID0gdHJ1ZTtcbiAgICBjb21waWxlci5vcHRpb25zLm91dHB1dC5saWJyYXJ5ID0geyB0eXBlOiAnY29tbW9uanMtbW9kdWxlJyB9O1xuXG4gICAgLy8gQ29uZmlndXJlIHRhcmdldCBhbmQgbW9kZSBkZWZhdWx0c1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy50YXJnZXQpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMudGFyZ2V0ID0gJ2FzeW5jLW5vZGUnO1xuICAgIH1cblxuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5tb2RlKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLm1vZGUgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyA/ICdkZXZlbG9wbWVudCcgOiAncHJvZHVjdGlvbic7XG4gICAgfVxuXG4gICAgLy8gQ29uZmlndXJlIGRldnRvb2xcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMuZGV2dG9vbCkge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5kZXZ0b29sID0gJ3NvdXJjZS1tYXAnO1xuICAgIH1cblxuICAgIC8vIFN1cHByZXNzIHZlcmJvc2UgaW5mcmFzdHJ1Y3R1cmUgbG9nZ2luZ1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5pbmZyYXN0cnVjdHVyZUxvZ2dpbmcpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMuaW5mcmFzdHJ1Y3R1cmVMb2dnaW5nID0ge1xuICAgICAgICBsZXZlbDogJ3dhcm4nLCAgLy8gT25seSBzaG93IHdhcm5pbmdzIGFuZCBlcnJvcnNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQ29uZmlndXJlIG1vZHVsZSBydWxlcyAtIGVuc3VyZSBUeXBlU2NyaXB0IGxvYWRlciBpcyBwcmVzZW50XG4gICAgdGhpcy5lbnN1cmVUeXBlU2NyaXB0TG9hZGVyKGNvbXBpbGVyKTtcblxuICAgIC8vIENvbmZpZ3VyZSByZXNvbHZlIGV4dGVuc2lvbnNcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMucmVzb2x2ZSkge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5yZXNvbHZlID0ge307XG4gICAgfVxuICAgIGNvbXBpbGVyLm9wdGlvbnMucmVzb2x2ZS5leHRlbnNpb25zID0gWycuLi4nLCAnLnRzeCcsICcudHMnXTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlVHlwZVNjcmlwdExvYWRlcihjb21waWxlcjogQ29tcGlsZXIpIHtcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMubW9kdWxlKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLm1vZHVsZSA9IHsgcnVsZXM6IFtdIH0gYXMgYW55O1xuICAgIH1cblxuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5tb2R1bGUucnVsZXMpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMubW9kdWxlLnJ1bGVzID0gW107XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgVHlwZVNjcmlwdCBsb2FkZXIgaXMgYWxyZWFkeSBjb25maWd1cmVkXG4gICAgY29uc3QgaGFzVHNMb2FkZXIgPSBjb21waWxlci5vcHRpb25zLm1vZHVsZS5ydWxlcy5zb21lKChydWxlOiBhbnkpID0+XG4gICAgICB0eXBlb2YgcnVsZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHJ1bGUgIT09IG51bGwgJiZcbiAgICAgICd0ZXN0JyBpbiBydWxlICYmXG4gICAgICBydWxlLnRlc3QgaW5zdGFuY2VvZiBSZWdFeHAgJiZcbiAgICAgIHJ1bGUudGVzdC50ZXN0KCcudHMnKVxuICAgICk7XG5cbiAgICAvLyBBZGQgVHlwZVNjcmlwdCBsb2FkZXIgaWYgbm90IHByZXNlbnRcbiAgICBpZiAoIWhhc1RzTG9hZGVyKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLm1vZHVsZS5ydWxlcy5wdXNoKHtcbiAgICAgICAgdGVzdDogL1xcLnRzeD8kLyxcbiAgICAgICAgdXNlOiAnYnVpbHRpbjpzd2MtbG9hZGVyJyxcbiAgICAgICAgZXhjbHVkZTogL25vZGVfbW9kdWxlcy8sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZURldlNlcnZlcihjb21waWxlcjogQ29tcGlsZXIsIHBsdWdpbkluZm86IGFueSwgZGV2Q29uZmlnOiBhbnksIHBvcnQ6IG51bWJlcikge1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjsgLy8gU2hvdWxkIG5ldmVyIGhhcHBlbiBkdWUgdG8gY2hlY2sgaW4gYXBwbHkoKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHQgPSBjb21waWxlci5vcHRpb25zLmNvbnRleHQgfHwgcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBvcmlnaW5hbFNldHVwID0gY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuc2V0dXBNaWRkbGV3YXJlcztcblxuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLnBvcnQgPSBwb3J0O1xuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLnN0YXRpYyA9IHBhdGguam9pbihjb250ZXh0LCAnZGlzdCcpO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLmhvdCA9IHRydWU7XG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuZGV2TWlkZGxld2FyZSA9IHsgd3JpdGVUb0Rpc2s6IHRydWUgfTtcbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5oZWFkZXJzID0ge1xuICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbic6ICcqJyxcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJzogJ0dFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENILCBPUFRJT05TJyxcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJzogJ1gtUmVxdWVzdGVkLVdpdGgsIGNvbnRlbnQtdHlwZSwgQXV0aG9yaXphdGlvbicsXG4gICAgfTtcblxuICAgIC8vIFN1cHByZXNzIHZlcmJvc2UgbG9nZ2luZ1xuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLmNsaWVudCA9IHtcbiAgICAgIGxvZ2dpbmc6ICd3YXJuJywgIC8vIE9ubHkgc2hvdyB3YXJuaW5ncyBhbmQgZXJyb3JzXG4gICAgICBvdmVybGF5OiB7XG4gICAgICAgIHdhcm5pbmdzOiBmYWxzZSwgIC8vIERvbid0IHNob3cgd2FybmluZyBvdmVybGF5XG4gICAgICAgIGVycm9yczogdHJ1ZSwgICAgIC8vIFN0aWxsIHNob3cgZXJyb3JzXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzID0gKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpID0+IHtcbiAgICAgIHNldHVwUGx1Z2luTWlkZGxld2FyZShkZXZTZXJ2ZXIsIHBsdWdpbkluZm8sIGRldkNvbmZpZywgcG9ydCk7XG4gICAgICByZXR1cm4gb3JpZ2luYWxTZXR1cCA/IG9yaWdpbmFsU2V0dXAobWlkZGxld2FyZXMsIGRldlNlcnZlcikgOiBtaWRkbGV3YXJlcztcbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQSxNQUFNLGNBQWM7Q0FDbEIsK0JBQStCO0NBQy9CLGdDQUFnQztDQUNoQyxnQ0FBZ0M7Q0FDakM7QUFFRCxNQUFNLG9CQUFvQixRQUFhO0FBQ3JDLFFBQU8sUUFBUSxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssV0FBVztBQUNwRCxNQUFJLFVBQVUsS0FBSyxNQUFNO0dBQ3pCOztBQUdKLE1BQU0sbUJBQW1CLFdBQTRCO0FBQ25ELEtBQUksQ0FBQyxPQUFRLFFBQU87Q0FDcEIsTUFBTSxVQUFVLE9BQU8sUUFBUSxjQUFjLEdBQUc7QUFDaEQsUUFBTyxVQUFVLElBQUksWUFBWTs7QUFHbkMsU0FBZ0Isc0JBQXNCLFdBQWdCLFlBQXdCLFdBQWdCLE1BQWM7Q0FDMUcsTUFBTSxZQUFZLGdCQUFnQixXQUFXLE9BQU87Q0FDcEQsSUFBSUEsV0FBbUM7RUFBRSxLQUFLO0VBQU0s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
@@ -17,4 +17,4 @@ declare class EveryPluginDevServer implements RspackPluginInstance {
17
17
  }
18
18
  //#endregion
19
19
  export { EveryPluginDevServer, type EveryPluginOptions };
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6Ijs7O1VBU2lCLGtCQUFBOztFQUFBLElBQUEsQ0FBQSxFQUFBLE1BQUE7RUFNSixRQUFBLENBQUEsRUFBQSxNQUFBOztBQUtLLGNBTEwsb0JBQUEsWUFBZ0Msb0JBSzNCLENBQUE7RUFMMkIsUUFBQSxPQUFBO0VBQW9CLElBQUEsRUFBQSxNQUFBO3dCQUdsQztrQkFFYiJ9
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6Ijs7O1VBUWlCLGtCQUFBOztFQUFBLElBQUEsQ0FBQSxFQUFBLE1BQUE7RUFNSixRQUFBLENBQUEsRUFBQSxNQUFBOztBQUtLLGNBTEwsb0JBQUEsWUFBZ0Msb0JBSzNCLENBQUE7RUFMMkIsUUFBQSxPQUFBO0VBQW9CLElBQUEsRUFBQSxNQUFBO3dCQUdsQztrQkFFYiJ9
@@ -17,4 +17,4 @@ declare class EveryPluginDevServer implements RspackPluginInstance {
17
17
  }
18
18
  //#endregion
19
19
  export { EveryPluginDevServer, type EveryPluginOptions };
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6Ijs7O1VBU2lCLGtCQUFBOztFQUFBLElBQUEsQ0FBQSxFQUFBLE1BQUE7RUFNSixRQUFBLENBQUEsRUFBQSxNQUFBOztBQUtLLGNBTEwsb0JBQUEsWUFBZ0Msb0JBSzNCLENBQUE7RUFMMkIsUUFBQSxPQUFBO0VBQW9CLElBQUEsRUFBQSxNQUFBO3dCQUdsQztrQkFFYiJ9
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6Ijs7O1VBUWlCLGtCQUFBOztFQUFBLElBQUEsQ0FBQSxFQUFBLE1BQUE7RUFNSixRQUFBLENBQUEsRUFBQSxNQUFBOztBQUtLLGNBTEwsb0JBQUEsWUFBZ0Msb0JBSzNCLENBQUE7RUFMMkIsUUFBQSxPQUFBO0VBQW9CLElBQUEsRUFBQSxNQUFBO3dCQUdsQztrQkFFYiJ9