tnp-helpers 16.444.18 → 16.444.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base/base-git.mjs +34 -4
  4. package/browser/esm2022/lib/base/base-library-build.mjs +39 -27
  5. package/browser/esm2022/lib/base/base-linked-projects.mjs +15 -4
  6. package/browser/esm2022/lib/base/base-npm-helpers.mjs +16 -6
  7. package/browser/esm2022/lib/base/base-project-resolver.mjs +10 -1
  8. package/browser/esm2022/lib/base/base-project.mjs +67 -9
  9. package/browser/esm2022/lib/base/base-vscode.mjs +66 -0
  10. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  11. package/browser/esm2022/lib/base/linked-project.mjs +2 -7
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/fesm2022/tnp-helpers.mjs +175 -51
  14. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/browser/lib/base/base-git.d.ts +11 -0
  16. package/browser/lib/base/base-library-build.d.ts +31 -6
  17. package/browser/lib/base/base-npm-helpers.d.ts +0 -1
  18. package/browser/lib/base/base-project-resolver.d.ts +9 -8
  19. package/browser/lib/base/base-project.d.ts +9 -4
  20. package/browser/lib/base/base-vscode.d.ts +6 -0
  21. package/browser/lib/base/core-project.d.ts +14 -3
  22. package/browser/lib/models.d.ts +1 -5
  23. package/client/README.md +24 -24
  24. package/client/esm2022/lib/base/base-git.mjs +34 -4
  25. package/client/esm2022/lib/base/base-library-build.mjs +39 -27
  26. package/client/esm2022/lib/base/base-linked-projects.mjs +15 -4
  27. package/client/esm2022/lib/base/base-npm-helpers.mjs +16 -6
  28. package/client/esm2022/lib/base/base-project-resolver.mjs +10 -1
  29. package/client/esm2022/lib/base/base-project.mjs +67 -9
  30. package/client/esm2022/lib/base/base-vscode.mjs +66 -0
  31. package/client/esm2022/lib/base/core-project.mjs +1 -1
  32. package/client/esm2022/lib/base/linked-project.mjs +2 -7
  33. package/client/esm2022/lib/models.mjs +1 -1
  34. package/client/fesm2022/tnp-helpers.mjs +175 -51
  35. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  36. package/client/lib/base/base-git.d.ts +11 -0
  37. package/client/lib/base/base-library-build.d.ts +31 -6
  38. package/client/lib/base/base-npm-helpers.d.ts +0 -1
  39. package/client/lib/base/base-project-resolver.d.ts +9 -8
  40. package/client/lib/base/base-project.d.ts +9 -4
  41. package/client/lib/base/base-vscode.d.ts +6 -0
  42. package/client/lib/base/core-project.d.ts +14 -3
  43. package/client/lib/models.d.ts +1 -5
  44. package/client/package.json +25 -25
  45. package/firedev.jsonc +61 -61
  46. package/lib/base/base-command-line.backend.d.ts +7 -1
  47. package/lib/base/base-command-line.backend.js +83 -7
  48. package/lib/base/base-command-line.backend.js.map +1 -1
  49. package/lib/base/base-git.d.ts +11 -0
  50. package/lib/base/base-git.js +92 -56
  51. package/lib/base/base-git.js.map +1 -1
  52. package/lib/base/base-library-build.d.ts +39 -8
  53. package/lib/base/base-library-build.js +256 -231
  54. package/lib/base/base-library-build.js.map +1 -1
  55. package/lib/base/base-linked-projects.js +14 -4
  56. package/lib/base/base-linked-projects.js.map +1 -1
  57. package/lib/base/base-npm-helpers.d.ts +0 -1
  58. package/lib/base/base-npm-helpers.js +15 -8
  59. package/lib/base/base-npm-helpers.js.map +1 -1
  60. package/lib/base/base-project-resolver.d.ts +10 -9
  61. package/lib/base/base-project-resolver.js +11 -1
  62. package/lib/base/base-project-resolver.js.map +1 -1
  63. package/lib/base/base-project.d.ts +10 -5
  64. package/lib/base/base-project.js +84 -22
  65. package/lib/base/base-project.js.map +1 -1
  66. package/lib/base/base-vscode.d.ts +5 -0
  67. package/lib/base/base-vscode.js +79 -0
  68. package/lib/base/base-vscode.js.map +1 -0
  69. package/lib/base/command-line-feature.backend.d.ts +6 -1
  70. package/lib/base/command-line-feature.backend.js +67 -1
  71. package/lib/base/command-line-feature.backend.js.map +1 -1
  72. package/lib/base/core-project.d.ts +14 -3
  73. package/lib/base/core-project.js.map +1 -1
  74. package/lib/base/linked-project.js +8 -10
  75. package/lib/base/linked-project.js.map +1 -1
  76. package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +16 -8
  77. package/lib/helpers/for-backend/helpers-file-folders.backend.js +156 -65
  78. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  79. package/lib/helpers/for-backend/helpers-git.backend.d.ts +2 -0
  80. package/lib/helpers/for-backend/helpers-git.backend.js +72 -0
  81. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  82. package/lib/helpers/for-backend/helpers-process.backend.js +3 -1
  83. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  84. package/lib/helpers/for-browser/angular.helper.js +3 -3
  85. package/lib/models.d.ts +1 -5
  86. package/lib/old/base-component.js +3 -3
  87. package/lib/old/base-formly-component.js +3 -3
  88. package/lib/old/dual-component-ctrl.js +3 -3
  89. package/package.json +4 -4
  90. package/tmp-environment.json +30 -30
  91. package/websql/README.md +24 -24
  92. package/websql/esm2022/lib/base/base-git.mjs +34 -4
  93. package/websql/esm2022/lib/base/base-library-build.mjs +39 -27
  94. package/websql/esm2022/lib/base/base-linked-projects.mjs +15 -4
  95. package/websql/esm2022/lib/base/base-npm-helpers.mjs +16 -6
  96. package/websql/esm2022/lib/base/base-project-resolver.mjs +10 -1
  97. package/websql/esm2022/lib/base/base-project.mjs +76 -18
  98. package/websql/esm2022/lib/base/base-vscode.mjs +66 -0
  99. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  100. package/websql/esm2022/lib/base/linked-project.mjs +2 -7
  101. package/websql/esm2022/lib/models.mjs +1 -1
  102. package/websql/fesm2022/tnp-helpers.mjs +183 -59
  103. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  104. package/websql/lib/base/base-git.d.ts +11 -0
  105. package/websql/lib/base/base-library-build.d.ts +31 -6
  106. package/websql/lib/base/base-npm-helpers.d.ts +0 -1
  107. package/websql/lib/base/base-project-resolver.d.ts +9 -8
  108. package/websql/lib/base/base-project.d.ts +10 -8
  109. package/websql/lib/base/base-vscode.d.ts +6 -0
  110. package/websql/lib/base/core-project.d.ts +14 -3
  111. package/websql/lib/models.d.ts +1 -5
@@ -1,6 +1,7 @@
1
1
  /* */
2
2
  /* */
3
3
  import { _ } from 'tnp-core/browser';
4
+ import { Helpers } from '../index';
4
5
  import { BaseFeatureForProject } from './base-feature-for-project';
5
6
  import { config } from 'tnp-config/browser';
6
7
  export class BaseNpmHelpers extends BaseFeatureForProject {
@@ -162,6 +163,12 @@ export class BaseNpmHelpers extends BaseFeatureForProject {
162
163
  /* */
163
164
  /* */
164
165
  /* */
166
+ /* */
167
+ /* */
168
+ /* */
169
+ /* */
170
+ /* */
171
+ /* */
165
172
  return (void 0);
166
173
  }
167
174
  reinstalNodeModules(options) {
@@ -276,12 +283,15 @@ export class BaseNpmHelpers extends BaseFeatureForProject {
276
283
  .map(k => `--${k} ${additionalArguments[k]}`)
277
284
  .join(' ');
278
285
  }
279
- return this.project.run(`npm run ${taskName} ${additionalArguments ? ' -- ' + additionalArguments : ''}`, { output: true });
286
+ const command = `npm run ${taskName} ${additionalArguments ? ' -- ' + additionalArguments : ''}`;
287
+ Helpers.info(`Starting npm task: "${command}"`);
288
+ return this.project.run(command, { output: true, biggerBuffer: true });
280
289
  }
281
290
  async prepareCommand(optiosn) {
282
- const { pkg, remove, silent, useYarn, force, removeYarnOrPackageJsonLock, generateYarnOrPackageJsonLock, ignoreOptional, } = optiosn || {};
291
+ let { pkg, remove, silent, useYarn, force, removeYarnOrPackageJsonLock, generateYarnOrPackageJsonLock, ignoreOptional, } = optiosn || {};
292
+ force = true; // TODO QUICK_FIX
283
293
  let command = '';
284
- const commonOptions = `--ignore-engines --no-audit`;
294
+ const commonOptions = `--ignore-engines`;
285
295
  if (useYarn) {
286
296
  const argsForFasterInstall = `${force ? '--force' : ''} ${commonOptions} `;
287
297
  command =
@@ -289,13 +299,13 @@ export class BaseNpmHelpers extends BaseFeatureForProject {
289
299
  ? `rm ${config.file.yarn_lock} ` +
290
300
  `&& touch ${config.file.yarn_lock} && `
291
301
  : ''}` +
292
- `yarn ${remove ? 'remove' : 'add'} ${pkg ? pkg.name : ''} ` +
302
+ `yarn ${pkg ? (remove ? 'remove' : 'add') : 'install'} ${pkg ? pkg.name : ''} ` +
293
303
  ` ${generateYarnOrPackageJsonLock ? '' : '--no-lockfile'} ` +
294
304
  ` ${argsForFasterInstall} ` +
295
305
  ` ${pkg && pkg.installType && pkg.installType === '--save-dev' ? '-dev' : ''} `;
296
306
  }
297
307
  else {
298
- const argsForFasterInstall = `${force ? '--force' : ''} ${commonOptions} ` +
308
+ const argsForFasterInstall = `${force ? '--force' : ''} ${commonOptions} --no-audit ` +
299
309
  `${silent ? '--silent --no-progress' : ''} `;
300
310
  command =
301
311
  `${removeYarnOrPackageJsonLock
@@ -314,4 +324,4 @@ export class BaseNpmHelpers extends BaseFeatureForProject {
314
324
  }
315
325
  ;
316
326
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-npm-helpers.ts
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ucG0taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUs1QyxNQUFNLE9BQU8sY0FFWCxTQUFRLHFCQUFxQjtJQUU3QixZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFHRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFJRDs7T0FFRztJQUNILGFBQWE7SUFDYixJQUFJLFlBQVk7UUFDbEIsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxhQUFhO0lBQ2IsSUFBSSxZQUFZO1FBQ2xCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNI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fSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBCYXNlRmVhdHVyZUZvclByb2plY3QgfSBmcm9tICcuL2Jhc2UtZmVhdHVyZS1mb3ItcHJvamVjdCc7XG5pbXBvcnQgdHlwZSB7IEJhc2VQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLXByb2plY3QnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcblxuXG5leHBvcnQgY2xhc3MgQmFzZU5wbUhlbHBlcnM8XG4gIFBST0pDRVQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IGFueSxcbj4gZXh0ZW5kcyBCYXNlRmVhdHVyZUZvclByb2plY3Qge1xuICBwcml2YXRlIHBhY2thZ2VKU09OOiBQYWNrYWdlSnNvbjtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUFJPSkNFVCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMucGFja2FnZUpTT04gPSBwcm9qZWN0LnJlYWRKc29uKGNvbmZpZy5maWxlLnBhY2thZ2VfanNvbik7XG4gIH1cblxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/Lm5hbWUgfHwgJyc7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24gLT4gcHJvcGVydHkgdmVyc2lvblxuICAgKi9cbiAgZ2V0IHZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWNrYWdlSlNPTj8udmVyc2lvbjtcbiAgfVxuXG5cblxuICAvKipcbiAgICogTWFqb3IgVmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbWFqb3JWZXJzaW9uKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIE1pbm9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgZ2V0IG1pbm9yVmVyc2lvbigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGFzeW5jIGJ1bXBQYXRjaFZlcnNpb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHZlcnNpb25QYXRoQXNOdW1iZXIoKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBucG0gZGVwZW5kZW5jaWVzIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwZWVyRGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IHBlZXJEZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5wZWVyRGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBkZXZEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgZGV2RGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGV2RGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiByZXNvbHV0aW9ucyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCByZXNvbHV0aW9ucygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OWydyZXNvbHV0aW9ucyddIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBvYmplY3Qgd2l0bCBhbGwgZGVwcyBmcm9tIGN1cnJlbnQgcHJvamVjdCBwYWNrYWdlIGpzb25cbiAgICovXG4gIGdldCBhbGxEZXBlbmRlbmNpZXMoKTogeyBbcGFja2FnZU5hbWU6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gdGhpcy5hbGxEZXBzRnJvbVBhY2thZ2VKc29uKHRoaXMucGFja2FnZUpTT04pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIG9iamVjdCB3aXRsIGFsbCBkZXBzIGZyb20gcGFja2FnZSBqc29uXG4gICAqL1xuICBhbGxEZXBzRnJvbVBhY2thZ2VKc29uKHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbikge1xuICAgIHJldHVybiBfLm1lcmdlKHtcbiAgICAgIC4uLihwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMgfHwge30pLFxuICAgICAgLi4uKHBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXMgfHwge30pLFxuICAgICAgLi4uKHBhY2thZ2VKc29uLmRlcGVuZGVuY2llcyB8fCB7fSksXG4gICAgICAuLi4ocGFja2FnZUpzb24ucmVzb2x1dGlvbnMgfHwge30pLFxuICAgIH0pIGFzIGFueTtcbiAgfVxuXG5cblxuICBjaGVja0lmTG9nZ2luSW5Ub05wbSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgbGlua05vZGVNb2R1bGVzVG8ocHJvajogUGFydGlhbDxCYXNlUHJvamVjdD4pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcmVmZXJZYXJuT3Zlck5wbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG5cbiAgYXN5bmMgbWFrZVN1cmVOb2RlTW9kdWxlc0luc3RhbGxlZChvcHRpb25zPzoge1xuICAgIGNoZWNrUGFja2FnZXM/OiBib29sZWFuO1xuICAgIHVzZVlhcm4/OiBib29sZWFuO1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgfSkge1xuICAgIGlmICh0aGlzLmVtcHR5Tm9kZU1vZHVsZXMpIHtcbiAgICAgIHRoaXMucmVpbnN0YWxOb2RlTW9kdWxlcyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgZGVsZXRlTm9kZU1vZHVsZXMoKSB7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZShjb25maWcuZm9sZGVyLm5vZGVfbW9kdWxlcyk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcmVpbnN0YWxsTm9kZU1vZHVsZXMoZm9yY2VyUmVtb3ZlTm9kZU1vZHVsZXMgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlaW5zdGFsTm9kZU1vZHVsZXMob3B0aW9ucz86IHsgdXNlWWFybj86IGJvb2xlYW47IGZvcmNlPzogYm9vbGVhbiB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIG5vZGVfbW9kdWxlcyBmb2xkZXIgaXMgZW1wdHlcbiAgICovXG4gIGdldCBlbXB0eU5vZGVNb2R1bGVzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlc2V0UGFja2FnZUxvY2tKc29uKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHN0YXJ0TnBtVGFzayh0YXNrTmFtZTogc3RyaW5nLCBhZGRpdGlvbmFsQXJndW1lbnRzPzogc3RyaW5nIHwgb2JqZWN0KSB7XG4gICAgaWYgKF8uaXNPYmplY3QoYWRkaXRpb25hbEFyZ3VtZW50cykpIHtcbiAgICAgIGFkZGl0aW9uYWxBcmd1bWVudHMgPSBPYmplY3Qua2V5cyhhZGRpdGlvbmFsQXJndW1lbnRzKVxuICAgICAgICAubWFwKGsgPT4gYC0tJHtrfSAke2FkZGl0aW9uYWxBcmd1bWVudHNba119YClcbiAgICAgICAgLmpvaW4oJyAnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdC5ydW4oXG4gICAgICBgbnBtIHJ1biAke3Rhc2tOYW1lfSAke2FkZGl0aW9uYWxBcmd1bWVudHMgPyAnIC0tICcgKyBhZGRpdGlvbmFsQXJndW1lbnRzIDogJyd9YCxcbiAgICAgIHsgb3V0cHV0OiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG5cblxuICBhc3luYyBwcmVwYXJlQ29tbWFuZChcbiAgICBvcHRpb3NuPzogQ29yZU1vZGVscy5OcG1JbnN0YWxsT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7XG4gICAgICBwa2csXG4gICAgICByZW1vdmUsXG4gICAgICBzaWxlbnQsXG4gICAgICB1c2VZYXJuLFxuICAgICAgZm9yY2UsXG4gICAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2ssXG4gICAgICBnZW5lcmF0ZVlhcm5PclBhY2thZ2VKc29uTG9jayxcbiAgICAgIGlnbm9yZU9wdGlvbmFsLFxuICAgIH0gPSBvcHRpb3NuIHx8IHt9O1xuXG4gICAgbGV0IGNvbW1hbmQgPSAnJztcbiAgICBjb25zdCBjb21tb25PcHRpb25zID0gYC0taWdub3JlLWVuZ2luZXMgLS1uby1hdWRpdGA7XG5cbiAgICBpZiAodXNlWWFybikge1xuXG4gICAgICBjb25zdCBhcmdzRm9yRmFzdGVySW5zdGFsbCA9IGAke2ZvcmNlID8gJy0tZm9yY2UnIDogJyd9ICR7Y29tbW9uT3B0aW9uc30gYDtcbiAgICAgIGNvbW1hbmQgPVxuICAgICAgICBgJHtcbiAgICAgICAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2tcbiAgICAgICAgICAgID8gYHJtICR7Y29uZmlnLmZpbGUueWFybl9sb2NrfSBgICtcbiAgICAgICAgICAgICAgYCYmIHRvdWNoICR7Y29uZmlnLmZpbGUueWFybl9sb2NrfSAmJiBgXG4gICAgICAgICAgICA6ICcnXG4gICAgICAgIH1gICtcbiAgICAgICAgYHlhcm4gJHtyZW1vdmUgPyAncmVtb3ZlJyA6ICdhZGQnfSAke3BrZyA/IHBrZy5uYW1lIDogJyd9IGAgK1xuICAgICAgICBgICR7Z2VuZXJhdGVZYXJuT3JQYWNrYWdlSnNvbkxvY2sgPyAnJyA6ICctLW5vLWxvY2tmaWxlJ30gYCArXG4gICAgICAgIGAgJHthcmdzRm9yRmFzdGVySW5zdGFsbH0gYCArXG4gICAgICAgIGAgJHtwa2cgJiYgcGtnLmluc3RhbGxUeXBlICYmIHBrZy5pbnN0YWxsVHlwZSA9PT0gJy0tc2F2ZS1kZXYnID8gJy1kZXYnIDogJyd9IGA7XG5cbiAgICB9IGVsc2Uge1xuXG4gICAgICBjb25zdCBhcmdzRm9yRmFzdGVySW5zdGFsbCA9XG4gICAgICAgIGAke2ZvcmNlID8gJy0tZm9yY2UnIDogJyd9ICR7Y29tbW9uT3B0aW9uc30gYCArXG4gICAgICAgIGAke3NpbGVudCA/ICctLXNpbGVudCAtLW5vLXByb2dyZXNzJyA6ICcnfSAgIGA7XG5cbiAgICAgIGNvbW1hbmQgPVxuICAgICAgICBgJHtcbiAgICAgICAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2tcbiAgICAgICAgICAgID8gYHJtICR7Y29uZmlnLmZpbGUucGFja2FnZV9sb2NrX2pzb259IGAgK1xuICAgICAgICAgICAgICBgJiYgdG91Y2ggJHtjb25maWcuZmlsZS5wYWNrYWdlX2xvY2tfanNvbn0gICYmIGBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfWAgK1xuICAgICAgICBgbnB4IC0tbm9kZS1vcHRpb25zPS0tbWF4LW9sZC1zcGFjZS1zaXplPTgwMDAgbnBtIGAgK1xuICAgICAgICBgJHtyZW1vdmUgPyAndW5pbnN0YWxsJyA6ICdpbnN0YWxsJ30gJHtwa2cgPyBwa2cubmFtZSA6ICcnfSBgICtcbiAgICAgICAgYCAke2dlbmVyYXRlWWFybk9yUGFja2FnZUpzb25Mb2NrID8gJycgOiAnLS1uby1wYWNrYWdlLWxvY2snfSBgICtcbiAgICAgICAgYCAke2lnbm9yZU9wdGlvbmFsID8gJy0taWdub3JlLW9wdGlvbmFsJyA6ICcnfSBgICtcbiAgICAgICAgYCAke3BrZyAmJiBwa2cuaW5zdGFsbFR5cGUgPyBwa2cuaW5zdGFsbFR5cGUgOiAnJ30gYCArXG4gICAgICAgIGAgJHthcmdzRm9yRmFzdGVySW5zdGFsbH0gYDtcblxuICAgIH1cbiAgICByZXR1cm4gY29tbWFuZDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl19
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ucG0taGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSzVDLE1BQU0sT0FBTyxjQUVYLFNBQVEscUJBQXFCO0lBRTdCLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUdELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUlEOztPQUVHO0lBQ0gsYUFBYTtJQUNiLElBQUksWUFBWTtRQUNsQixLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILGFBQWE7SUFDYixJQUFJLFlBQVk7UUFDbEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUss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Q0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxLQUFLLENBQUMsb0JBQW9CO1FBQzVCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELFlBQVksQ0FBQyxRQUFnQixFQUFFLG1CQUFxQztRQUNsRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNuQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2lCQUNuRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtRQUNELE1BQU0sT0FBTyxHQUFHLFdBQVcsUUFBUSxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBQ2hHLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQzdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUMsSUFBSSxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDO0lBSUQsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsT0FBc0M7UUFFdEMsSUFBSSxFQUNGLEdBQUcsRUFDSCxNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sRUFDUCxLQUFLLEVBQ0wsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixjQUFjLEdBQ2YsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWxCLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxpQkFBaUI7UUFFL0IsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO1FBRXpDLElBQUksT0FBTyxFQUFFO1lBRVgsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksYUFBYSxHQUFHLENBQUM7WUFDM0UsT0FBTztnQkFDTCxHQUNFLDJCQUEyQjtvQkFDekIsQ0FBQyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUc7d0JBQzlCLFlBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLE1BQU07b0JBQ3pDLENBQUMsQ0FBQyxFQUNOLEVBQUU7b0JBQ0YsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUc7b0JBQy9FLElBQUksNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFHO29CQUMzRCxJQUFJLG9CQUFvQixHQUFHO29CQUMzQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1NBRW5GO2FBQU07WUFFTCxNQUFNLG9CQUFvQixHQUN4QixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksYUFBYSxjQUFjO2dCQUN4RCxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO1lBRWpELE9BQU87Z0JBQ0wsR0FDRSwyQkFBMkI7b0JBQ3pCLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUc7d0JBQ3RDLFlBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsT0FBTztvQkFDbEQsQ0FBQyxDQUFDLEVBQ04sRUFBRTtvQkFDRixtREFBbUQ7b0JBQ25ELEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRztvQkFDN0QsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsR0FBRztvQkFDL0QsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUc7b0JBQ2hELElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRztvQkFDcEQsSUFBSSxvQkFBb0IsR0FBRyxDQUFDO1NBRS9CO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxRUFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG4vKiAqL1xuLyogKi9cbiAgXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IH0gZnJvbSAnLi9iYXNlLWZlYXR1cmUtZm9yLXByb2plY3QnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCB9IGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBQYWNrYWdlSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5pbXBvcnQgeyBDb3JlTW9kZWxzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cblxuZXhwb3J0IGNsYXNzIEJhc2VOcG1IZWxwZXJzPFxuICBQUk9KQ0VUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBhbnksXG4+IGV4dGVuZHMgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IHtcbiAgcHJpdmF0ZSBwYWNrYWdlSlNPTjogUGFja2FnZUpzb247XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFBST0pDRVQpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLnBhY2thZ2VKU09OID0gcHJvamVjdC5yZWFkSnNvbihjb25maWcuZmlsZS5wYWNrYWdlX2pzb24pO1xuICB9XG5cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhY2thZ2VKU09OPy5uYW1lIHx8ICcnO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB2ZXJzaW9uIGZyb20gcGFja2FnZS5qc29uIC0+IHByb3BlcnR5IHZlcnNpb25cbiAgICovXG4gIGdldCB2ZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/LnZlcnNpb247XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIE1ham9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgZ2V0IG1ham9yVmVyc2lvbigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBNaW5vciBWZXJzaW9uIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICAvLyBAdHMtaWdub3JlXG4gIGdldCBtaW5vclZlcnNpb24oKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBhc3luYyBidW1wUGF0Y2hWZXJzaW9uKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCB2ZXJzaW9uUGF0aEFzTnVtYmVyKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogbnBtIGRlcGVuZGVuY2llcyBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgZ2V0IGRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLmRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcGVlckRlcGVuZGVuY2llcyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCBwZWVyRGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04ucGVlckRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZGV2RGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IGRldkRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLmRldkRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcmVzb2x1dGlvbnMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgcmVzb2x1dGlvbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTlsncmVzb2x1dGlvbnMnXSA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQHJldHVybnMgb2JqZWN0IHdpdGwgYWxsIGRlcHMgZnJvbSBjdXJyZW50IHByb2plY3QgcGFja2FnZSBqc29uXG4gICAqL1xuICBnZXQgYWxsRGVwZW5kZW5jaWVzKCk6IHsgW3BhY2thZ2VOYW1lOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsRGVwc0Zyb21QYWNrYWdlSnNvbih0aGlzLnBhY2thZ2VKU09OKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBvYmplY3Qgd2l0bCBhbGwgZGVwcyBmcm9tIHBhY2thZ2UganNvblxuICAgKi9cbiAgYWxsRGVwc0Zyb21QYWNrYWdlSnNvbihwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pIHtcbiAgICByZXR1cm4gXy5tZXJnZSh7XG4gICAgICAuLi4ocGFja2FnZUpzb24uZGV2RGVwZW5kZW5jaWVzIHx8IHt9KSxcbiAgICAgIC4uLihwYWNrYWdlSnNvbi5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9KSxcbiAgICAgIC4uLihwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMgfHwge30pLFxuICAgICAgLi4uKHBhY2thZ2VKc29uLnJlc29sdXRpb25zIHx8IHt9KSxcbiAgICB9KSBhcyBhbnk7XG4gIH1cblxuXG5cbiAgY2hlY2tJZkxvZ2dpbkluVG9OcG0oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGxpbmtOb2RlTW9kdWxlc1RvKHByb2o6IFBhcnRpYWw8QmFzZVByb2plY3Q+KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJlZmVyWWFybk92ZXJOcG0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIGFzeW5jIG1ha2VTdXJlTm9kZU1vZHVsZXNJbnN0YWxsZWQob3B0aW9ucz86IHtcbiAgICB1c2VZYXJuPzogYm9vbGVhbjtcbiAgICBmb3JjZT86IGJvb2xlYW47XG4gIH0pIHtcbiAgICBpZiAodGhpcy5lbXB0eU5vZGVNb2R1bGVzKSB7XG4gICAgICB0aGlzLnJlaW5zdGFsTm9kZU1vZHVsZXMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cblxuXG4gIGRlbGV0ZU5vZGVNb2R1bGVzKCkge1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmUoY29uZmlnLmZvbGRlci5ub2RlX21vZHVsZXMpO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlaW5zdGFsbE5vZGVNb2R1bGVzKGZvcmNlclJlbW92ZU5vZGVNb2R1bGVzID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZWluc3RhbE5vZGVNb2R1bGVzKG9wdGlvbnM/OiB7IHVzZVlhcm4/OiBib29sZWFuOyBmb3JjZT86IGJvb2xlYW4gfSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBub2RlX21vZHVsZXMgZm9sZGVyIGlzIGVtcHR5XG4gICAqL1xuICBnZXQgZW1wdHlOb2RlTW9kdWxlcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyByZXNldFBhY2thZ2VMb2NrSnNvbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzdGFydE5wbVRhc2sodGFza05hbWU6IHN0cmluZywgYWRkaXRpb25hbEFyZ3VtZW50cz86IHN0cmluZyB8IG9iamVjdCkge1xuICAgIGlmIChfLmlzT2JqZWN0KGFkZGl0aW9uYWxBcmd1bWVudHMpKSB7XG4gICAgICBhZGRpdGlvbmFsQXJndW1lbnRzID0gT2JqZWN0LmtleXMoYWRkaXRpb25hbEFyZ3VtZW50cylcbiAgICAgICAgLm1hcChrID0+IGAtLSR7a30gJHthZGRpdGlvbmFsQXJndW1lbnRzW2tdfWApXG4gICAgICAgIC5qb2luKCcgJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbW1hbmQgPSBgbnBtIHJ1biAke3Rhc2tOYW1lfSAke2FkZGl0aW9uYWxBcmd1bWVudHMgPyAnIC0tICcgKyBhZGRpdGlvbmFsQXJndW1lbnRzIDogJyd9YFxuICAgIEhlbHBlcnMuaW5mbyhgU3RhcnRpbmcgbnBtIHRhc2s6IFwiJHtjb21tYW5kfVwiYCk7XG5cbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LnJ1bihjb21tYW5kLFxuICAgICAgeyBvdXRwdXQ6IHRydWUsIGJpZ2dlckJ1ZmZlcjp0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG5cblxuICBhc3luYyBwcmVwYXJlQ29tbWFuZChcbiAgICBvcHRpb3NuPzogQ29yZU1vZGVscy5OcG1JbnN0YWxsT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBsZXQge1xuICAgICAgcGtnLFxuICAgICAgcmVtb3ZlLFxuICAgICAgc2lsZW50LFxuICAgICAgdXNlWWFybixcbiAgICAgIGZvcmNlLFxuICAgICAgcmVtb3ZlWWFybk9yUGFja2FnZUpzb25Mb2NrLFxuICAgICAgZ2VuZXJhdGVZYXJuT3JQYWNrYWdlSnNvbkxvY2ssXG4gICAgICBpZ25vcmVPcHRpb25hbCxcbiAgICB9ID0gb3B0aW9zbiB8fCB7fTtcblxuICAgIGZvcmNlID0gdHJ1ZTsgLy8gVE9ETyBRVUlDS19GSVhcblxuICAgIGxldCBjb21tYW5kID0gJyc7XG4gICAgY29uc3QgY29tbW9uT3B0aW9ucyA9IGAtLWlnbm9yZS1lbmdpbmVzYDtcblxuICAgIGlmICh1c2VZYXJuKSB7XG5cbiAgICAgIGNvbnN0IGFyZ3NGb3JGYXN0ZXJJbnN0YWxsID0gYCR7Zm9yY2UgPyAnLS1mb3JjZScgOiAnJ30gJHtjb21tb25PcHRpb25zfSBgO1xuICAgICAgY29tbWFuZCA9XG4gICAgICAgIGAke1xuICAgICAgICAgIHJlbW92ZVlhcm5PclBhY2thZ2VKc29uTG9ja1xuICAgICAgICAgICAgPyBgcm0gJHtjb25maWcuZmlsZS55YXJuX2xvY2t9IGAgK1xuICAgICAgICAgICAgICBgJiYgdG91Y2ggJHtjb25maWcuZmlsZS55YXJuX2xvY2t9ICYmIGBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfWAgK1xuICAgICAgICBgeWFybiAke3BrZyA/IChyZW1vdmUgPyAncmVtb3ZlJyA6ICdhZGQnKSA6ICdpbnN0YWxsJ30gJHtwa2cgPyBwa2cubmFtZSA6ICcnfSBgICtcbiAgICAgICAgYCAke2dlbmVyYXRlWWFybk9yUGFja2FnZUpzb25Mb2NrID8gJycgOiAnLS1uby1sb2NrZmlsZSd9IGAgK1xuICAgICAgICBgICR7YXJnc0ZvckZhc3Rlckluc3RhbGx9IGAgK1xuICAgICAgICBgICR7cGtnICYmIHBrZy5pbnN0YWxsVHlwZSAmJiBwa2cuaW5zdGFsbFR5cGUgPT09ICctLXNhdmUtZGV2JyA/ICctZGV2JyA6ICcnfSBgO1xuXG4gICAgfSBlbHNlIHtcblxuICAgICAgY29uc3QgYXJnc0ZvckZhc3Rlckluc3RhbGwgPVxuICAgICAgICBgJHtmb3JjZSA/ICctLWZvcmNlJyA6ICcnfSAke2NvbW1vbk9wdGlvbnN9IC0tbm8tYXVkaXQgYCArXG4gICAgICAgIGAke3NpbGVudCA/ICctLXNpbGVudCAtLW5vLXByb2dyZXNzJyA6ICcnfSAgIGA7XG5cbiAgICAgIGNvbW1hbmQgPVxuICAgICAgICBgJHtcbiAgICAgICAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2tcbiAgICAgICAgICAgID8gYHJtICR7Y29uZmlnLmZpbGUucGFja2FnZV9sb2NrX2pzb259IGAgK1xuICAgICAgICAgICAgICBgJiYgdG91Y2ggJHtjb25maWcuZmlsZS5wYWNrYWdlX2xvY2tfanNvbn0gICYmIGBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfWAgK1xuICAgICAgICBgbnB4IC0tbm9kZS1vcHRpb25zPS0tbWF4LW9sZC1zcGFjZS1zaXplPTgwMDAgbnBtIGAgK1xuICAgICAgICBgJHtyZW1vdmUgPyAndW5pbnN0YWxsJyA6ICdpbnN0YWxsJ30gJHtwa2cgPyBwa2cubmFtZSA6ICcnfSBgICtcbiAgICAgICAgYCAke2dlbmVyYXRlWWFybk9yUGFja2FnZUpzb25Mb2NrID8gJycgOiAnLS1uby1wYWNrYWdlLWxvY2snfSBgICtcbiAgICAgICAgYCAke2lnbm9yZU9wdGlvbmFsID8gJy0taWdub3JlLW9wdGlvbmFsJyA6ICcnfSBgICtcbiAgICAgICAgYCAke3BrZyAmJiBwa2cuaW5zdGFsbFR5cGUgPyBwa2cuaW5zdGFsbFR5cGUgOiAnJ30gYCArXG4gICAgICAgIGAgJHthcmdzRm9yRmFzdGVySW5zdGFsbH0gYDtcblxuICAgIH1cbiAgICByZXR1cm4gY29tbWFuZDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLW5wbS1oZWxwZXJzLnRzIl19
@@ -232,6 +232,15 @@ export class BaseProjectResolver {
232
232
  /* */
233
233
  /* */
234
234
  /* */
235
+ /* */
236
+ /* */
237
+ /* */
238
+ /* */
239
+ /* */
240
+ /* */
241
+ return (void 0);
242
+ }
243
+ allProjectsFromFolder(folderLocation) {
235
244
  /* */
236
245
  /* */
237
246
  /* */
@@ -268,4 +277,4 @@ export class BaseProjectResolver {
268
277
  }
269
278
  ;
270
279
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project-resolver.ts
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1uQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsWUFBc0IsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFsQmxDOztXQUVHO1FBQ0ksWUFBTyxHQUFXLFNBQVMsQ0FBQztRQUNuQyxhQUFRLEdBQW1CLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FBb0IsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHckMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUM3Qjs7O1dBR0c7UUFDTyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztJQUlILENBQUM7SUFJdEMsSUFBSSxZQUFZO1FBQ2xCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxhQUFhLEdBQUcsS0FBSztRQUNsRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFJLENBQUMsaUJBQW9DLEVBQUUsT0FBYTtRQUkxRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFJRCxTQUFTLENBQ1AsZ0JBQXdCLEVBQ3hCLE9BSUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsT0FBVTtRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUlELE1BQU0sQ0FBQyxPQUFVO1FBQ25CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSUQsR0FBRyxDQUFDLE9BQVU7UUFDaEIsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBS0QsY0FBYyxDQUFDLGdCQUF3QixFQUFFLFlBQW9CLEdBQUc7UUFDbEUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSU0sa0JBQWtCLENBQ3ZCLFFBQWEsRUFDYixlQUFzQyxFQUN0QyxpQkFBc0M7UUFFdEMsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBK0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUV2QixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQVUsRUFBRSxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBRXJDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsbURBQW1ELGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ2hGLENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtnQkFDeEMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUMzQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBRXpDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDaEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUV6QyxPQUFPLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQztvQkFDN0MsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxnQkFBZ0IsRUFBRTt3QkFDcEIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7cUJBQ3pCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUVILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQztRQUVGLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQztJQUVoQixDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBFQUEwRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IC8qICovIC8qICovIC8qICovICAgIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBwYXRoLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3QgfSBmcm9tICcuL2Jhc2UtcHJvamVjdCc7XG5pbXBvcnQgeyBMb3cgfSBmcm9tICdsb3dkYic7XG5pbXBvcnQgeyBDb25maWdEYXRhYmFzZSB9IGZyb20gJy4vY29uZmlnLWRhdGFiYXNlJztcbmltcG9ydCB7IFByb2plY3REYXRhYmFzZSB9IGZyb20gJy4vcHJvamVjdC1kYXRhYmFzZSc7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuZXhwb3J0IGNsYXNzIEJhc2VQcm9qZWN0UmVzb2x2ZXI8VCBleHRlbmRzIFBhcnRpYWw8QmFzZVByb2plY3Q+ID0gYW55PiB7XG4gIC8qKlxuICAgKiBnZW5lcmFsIG5hbWUgZm9yIHByb2plY3QgY29tcGFueVxuICAgKi9cbiAgcHVibGljIG9yZ05hbWU6IHN0cmluZyA9ICdmaXJlZGV2JztcbiAgY29uZmlnRGI6IENvbmZpZ0RhdGFiYXNlID0gbmV3IENvbmZpZ0RhdGFiYXNlKHRoaXMpO1xuICBwcm9qZWN0c0RiOiBQcm9qZWN0RGF0YWJhc2UgPSBuZXcgUHJvamVjdERhdGFiYXNlKHRoaXMpO1xuXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE5QTV9QUk9KRUNUX0tFWSA9ICducG0nO1xuICBwcm90ZWN0ZWQgcHJvamVjdHM6IFRbXSA9IFtdO1xuICAvKipcbiAgICogVG8gc3BlZWQgdXAgY2hlY2tpbmcgZm9sZGVyIEkgYW0ga2VlcGluZyBwYXRoZXMgZm9yIGFsdGVyZHkgY2hlY2tlZCBmb2xkZXJcbiAgICogVGhpcyBtYXkgYnJlYWsgdGhpbmdzIHRoYXQgYXJlIGNyZWF0aW5nIG5ldyBwcm9qZWN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGVtcHR5TG9jYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG5cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2xhc3NGbjogYW55KSB7fVxuXG5cblxuICBnZXQgYWxsb3dlZFR5cGVzKCk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHByb2plY3QgZnJvbSBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICBnZXQgQ3VycmVudCgpOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBvdmVycmlkZSB0aGlzXG4gICAqL1xuICB0eXBlRnJvbShsb2NhdGlvbjogc3RyaW5nLCByZWNydXNpdmVDYWxsID0gZmFsc2UpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIEZyb20obG9jYXRpb25PZlByb2plY3Q6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zPzogYW55KTogVCB7XG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBuZWFyZXN0VG8oXG4gICAgYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICB0eXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgICBmaW5kR2l0Um9vdD86IGJvb2xlYW47XG4gICAgICBvbmx5T3V0U2lkZU5vZGVNb2R1bGVzPzogYm9vbGVhbjtcbiAgICB9LFxuICApOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB1bmxvYWQocHJvamVjdDogVCkge1xuICAgIHRoaXMucHJvamVjdHMgPSB0aGlzLnByb2plY3RzLmZpbHRlcihmID0+IGYgIT09IHByb2plY3QpO1xuICB9XG5cblxuXG4gIHJlbW92ZShwcm9qZWN0OiBUKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhZGQocHJvamVjdDogVCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG5cbiAgYWxsUHJvamVjdEZyb20oYWJzb2x1dGVMb2NhdGlvbjogc3RyaW5nLCBzdG9wT25Dd2Q6IHN0cmluZyA9ICcvJykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBzb3J0R3JvdXBPZlByb2plY3Q8VCBleHRlbmRzIEJhc2VQcm9qZWN0ID0gQmFzZVByb2plY3Q+KFxuICAgIHByb2plY3RzOiBUW10sXG4gICAgcmVzb3ZlRGVwc0FycmF5OiAocHJvajogVCkgPT4gc3RyaW5nW10sXG4gICAgcHJvak5hbWVUb0NvbXBhcmU6IChwcm9qOiBUKSA9PiBzdHJpbmcsXG4gICk6IFRbXSB7XG4gICAgY29uc3QgdmlzaXRlZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCBzdGFjazogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xuXG4gICAgY29uc3QgdmlzaXQgPSAocHJvamVjdDogVCkgPT4ge1xuICAgICAgaWYgKHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuXG4gICAgICAgIEhlbHBlcnMuZXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgaW52b2x2aW5nIHByb2plY3Q6ICR7cHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCl9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF2aXNpdGVkW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuICAgICAgICB2aXNpdGVkW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IHRydWU7XG4gICAgICAgIHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZGVwc1Jlc29sdmVkID0gcmVzb3ZlRGVwc0FycmF5KHByb2plY3QpO1xuICAgICAgICBkZXBzUmVzb2x2ZWQuZm9yRWFjaChkZXBlbmRlbmN5ID0+IHtcbiAgICAgICAgICBjb25zdCBkZXBlbmRlbnRQcm9qZWN0ID0gcHJvamVjdHMuZmluZChwID0+IHtcblxuICAgICAgICAgICAgcmV0dXJuIHByb2pOYW1lVG9Db21wYXJlKHApID09PSBkZXBlbmRlbmN5O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChkZXBlbmRlbnRQcm9qZWN0KSB7XG4gICAgICAgICAgICB2aXNpdChkZXBlbmRlbnRQcm9qZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IGZhbHNlO1xuICAgICAgICByZXN1bHQucHVzaChwcm9qZWN0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJvamVjdHMuZm9yRWFjaChwcm9qZWN0ID0+IHZpc2l0KHByb2plY3QpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS1wcm9qZWN0LXJlc29sdmVyLnRzIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1uQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsWUFBc0IsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFsQmxDOztXQUVHO1FBQ0ksWUFBTyxHQUFXLFNBQVMsQ0FBQztRQUNuQyxhQUFRLEdBQW1CLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FBb0IsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHckMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUNuQzs7O1dBR0c7UUFDTyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztJQUlILENBQUM7SUFJdEMsSUFBSSxZQUFZO1FBQ2xCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxhQUFhLEdBQUcsS0FBSztRQUNsRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFJLENBQUMsaUJBQW9DLEVBQUUsT0FBYTtRQUkxRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFJRCxTQUFTLENBQ1AsZ0JBQXdCLEVBQ3hCLE9BSUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxNQUFNLENBQUMsT0FBZ0I7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBSUQsTUFBTSxDQUFDLE9BQWdCO1FBQ3pCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSUQsR0FBRyxDQUFDLE9BQWdCO1FBQ3RCLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUtELGNBQWMsQ0FBQyxnQkFBd0IsRUFBRSxZQUFvQixHQUFHO1FBQ2xFLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQscUJBQXFCLENBQUMsY0FBc0I7UUFDOUMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJTSxrQkFBa0IsQ0FDdkIsUUFBYSxFQUNiLGVBQXNDLEVBQ3RDLGlCQUFzQztRQUV0QyxNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUErQixFQUFFLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBRXZCLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBVSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtnQkFFckMsT0FBTyxDQUFDLEtBQUssQ0FDWCxtREFBbUQsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDaEYsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUN4QyxPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQzNDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFFekMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUNoQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBRXpDLE9BQU8saUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDO29CQUM3QyxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLGdCQUFnQixFQUFFO3dCQUNwQixLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztxQkFDekI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDO0lBRWhCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEVBQTBFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgLyogKi8gLyogKi8gLyogKi8gICAgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICd0bnAtY29uZmlnL2Jyb3dzZXInO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCB9IGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmltcG9ydCB7IExvdyB9IGZyb20gJ2xvd2RiJztcbmltcG9ydCB7IENvbmZpZ0RhdGFiYXNlIH0gZnJvbSAnLi9jb25maWctZGF0YWJhc2UnO1xuaW1wb3J0IHsgUHJvamVjdERhdGFiYXNlIH0gZnJvbSAnLi9wcm9qZWN0LWRhdGFiYXNlJztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5leHBvcnQgY2xhc3MgQmFzZVByb2plY3RSZXNvbHZlcjxQUk9KRUNUIGV4dGVuZHMgUGFydGlhbDxCYXNlUHJvamVjdD4gPSBhbnk+IHtcbiAgLyoqXG4gICAqIGdlbmVyYWwgbmFtZSBmb3IgcHJvamVjdCBjb21wYW55XG4gICAqL1xuICBwdWJsaWMgb3JnTmFtZTogc3RyaW5nID0gJ2ZpcmVkZXYnO1xuICBjb25maWdEYjogQ29uZmlnRGF0YWJhc2UgPSBuZXcgQ29uZmlnRGF0YWJhc2UodGhpcyk7XG4gIHByb2plY3RzRGI6IFByb2plY3REYXRhYmFzZSA9IG5ldyBQcm9qZWN0RGF0YWJhc2UodGhpcyk7XG5cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTlBNX1BST0pFQ1RfS0VZID0gJ25wbSc7XG4gIHByb3RlY3RlZCBwcm9qZWN0czogUFJPSkVDVFtdID0gW107XG4gIC8qKlxuICAgKiBUbyBzcGVlZCB1cCBjaGVja2luZyBmb2xkZXIgSSBhbSBrZWVwaW5nIHBhdGhlcyBmb3IgYWx0ZXJkeSBjaGVja2VkIGZvbGRlclxuICAgKiBUaGlzIG1heSBicmVhayB0aGluZ3MgdGhhdCBhcmUgY3JlYXRpbmcgbmV3IHByb2plY3RzXG4gICAqL1xuICBwcm90ZWN0ZWQgZW1wdHlMb2NhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cblxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjbGFzc0ZuOiBhbnkpIHt9XG5cblxuXG4gIGdldCBhbGxvd2VkVHlwZXMoKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcHJvamVjdCBmcm9tIHByb2Nlc3MuY3dkKClcbiAgICovXG4gIGdldCBDdXJyZW50KCk6IFBST0pFQ1Qge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG92ZXJyaWRlIHRoaXNcbiAgICovXG4gIHR5cGVGcm9tKGxvY2F0aW9uOiBzdHJpbmcsIHJlY3J1c2l2ZUNhbGwgPSBmYWxzZSk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgRnJvbShsb2NhdGlvbk9mUHJvamVjdDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBhbnkpOiBQUk9KRUNUIHtcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIG5lYXJlc3RUbyhcbiAgICBhYnNvbHV0ZUxvY2F0aW9uOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgIGZpbmRHaXRSb290PzogYm9vbGVhbjtcbiAgICAgIG9ubHlPdXRTaWRlTm9kZU1vZHVsZXM/OiBib29sZWFuO1xuICAgIH0sXG4gICk6IFBST0pFQ1Qge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHVubG9hZChwcm9qZWN0OiBQUk9KRUNUKSB7XG4gICAgdGhpcy5wcm9qZWN0cyA9IHRoaXMucHJvamVjdHMuZmlsdGVyKGYgPT4gZiAhPT0gcHJvamVjdCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlKHByb2plY3Q6IFBST0pFQ1QpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGFkZChwcm9qZWN0OiBQUk9KRUNUKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cblxuICBhbGxQcm9qZWN0RnJvbShhYnNvbHV0ZUxvY2F0aW9uOiBzdHJpbmcsIHN0b3BPbkN3ZDogc3RyaW5nID0gJy8nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIGFsbFByb2plY3RzRnJvbUZvbGRlcihmb2xkZXJMb2NhdGlvbjogc3RyaW5nKTogUFJPSkVDVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBzb3J0R3JvdXBPZlByb2plY3Q8VCBleHRlbmRzIEJhc2VQcm9qZWN0ID0gQmFzZVByb2plY3Q+KFxuICAgIHByb2plY3RzOiBUW10sXG4gICAgcmVzb3ZlRGVwc0FycmF5OiAocHJvajogVCkgPT4gc3RyaW5nW10sXG4gICAgcHJvak5hbWVUb0NvbXBhcmU6IChwcm9qOiBUKSA9PiBzdHJpbmcsXG4gICk6IFRbXSB7XG4gICAgY29uc3QgdmlzaXRlZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCBzdGFjazogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xuXG4gICAgY29uc3QgdmlzaXQgPSAocHJvamVjdDogVCkgPT4ge1xuICAgICAgaWYgKHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuXG4gICAgICAgIEhlbHBlcnMuZXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgaW52b2x2aW5nIHByb2plY3Q6ICR7cHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCl9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF2aXNpdGVkW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuICAgICAgICB2aXNpdGVkW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IHRydWU7XG4gICAgICAgIHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZGVwc1Jlc29sdmVkID0gcmVzb3ZlRGVwc0FycmF5KHByb2plY3QpO1xuICAgICAgICBkZXBzUmVzb2x2ZWQuZm9yRWFjaChkZXBlbmRlbmN5ID0+IHtcbiAgICAgICAgICBjb25zdCBkZXBlbmRlbnRQcm9qZWN0ID0gcHJvamVjdHMuZmluZChwID0+IHtcblxuICAgICAgICAgICAgcmV0dXJuIHByb2pOYW1lVG9Db21wYXJlKHApID09PSBkZXBlbmRlbmN5O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChkZXBlbmRlbnRQcm9qZWN0KSB7XG4gICAgICAgICAgICB2aXNpdChkZXBlbmRlbnRQcm9qZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSA9IGZhbHNlO1xuICAgICAgICByZXN1bHQucHVzaChwcm9qZWN0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJvamVjdHMuZm9yRWFjaChwcm9qZWN0ID0+IHZpc2l0KHByb2plY3QpKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS1wcm9qZWN0LXJlc29sdmVyLnRzIl19
@@ -5,7 +5,7 @@
5
5
  /* */
6
6
  /* */
7
7
  /* */
8
- import { path } from 'tnp-core/browser';
8
+ import { path, crossPlatformPath } from 'tnp-core/browser';
9
9
  import { _ } from 'tnp-core/browser';
10
10
  import { CoreProject, Helpers, } from '../index'; /* */
11
11
  /* */
@@ -22,12 +22,27 @@ class BaseProject {
22
22
  get globalCache() {
23
23
  return BaseProject.cache;
24
24
  }
25
+ get location() {
26
+ return this.__location;
27
+ }
28
+ set location(v) {
29
+ this.__location = crossPlatformPath(v);
30
+ }
25
31
  // @ts-ignore
26
32
  constructor(
27
33
  /**
28
34
  * doesn't need to be real path -> can be link
29
35
  */
30
36
  location) {
37
+ this.cache = {};
38
+ this.type = 'unknow';
39
+ this.toString = () => {
40
+ return `${this.name}=>${this.location}`;
41
+ };
42
+ this.location = location;
43
+ /* */
44
+ /* */
45
+ /* */
31
46
  /* */
32
47
  /* */
33
48
  /* */
@@ -41,12 +56,6 @@ class BaseProject {
41
56
  /* */
42
57
  /* */
43
58
  /* */
44
- this.location = location;
45
- this.cache = {};
46
- this.type = 'unknow';
47
- this.toString = () => {
48
- return `${this.name}=>${this.location}`;
49
- };
50
59
  }
51
60
  get isMonorepo() {
52
61
  return false;
@@ -226,8 +235,28 @@ class BaseProject {
226
235
  /* */
227
236
  /* */
228
237
  /* */
238
+ /* */
239
+ /* */
240
+ /* */
241
+ /* */
242
+ /* */
243
+ /* */
244
+ /* */
245
+ /* */
229
246
  return (void 0);
230
247
  }
248
+ checkAndBoldenPath(fullPath) {
249
+ const parts = fullPath.split('/');
250
+ const result = parts.map((part, index) => {
251
+ const pathTocheck = parts.slice(0, index + 1).join('/');
252
+ /* */
253
+ /* */
254
+ /* */
255
+ /* */
256
+ return part;
257
+ });
258
+ return result.join('/');
259
+ }
231
260
  /**
232
261
  * same has project.hasFile();
233
262
  */
@@ -331,6 +360,7 @@ class BaseProject {
331
360
  /* */
332
361
  /* */
333
362
  /* */
363
+ /* */
334
364
  return (void 0);
335
365
  }
336
366
  /**
@@ -539,6 +569,29 @@ class BaseProject {
539
569
  /* */
540
570
  /* */
541
571
  }
572
+ setValueToJSON(relativePath, lodashGetPath, value) {
573
+ /* */
574
+ /* */
575
+ return (void 0);
576
+ }
577
+ getValueFromJSON(relativePath, lodashGetPath, defaultValue = void 0) {
578
+ /* */
579
+ /* */
580
+ /* */
581
+ /* */
582
+ /* */
583
+ /* */
584
+ return (void 0);
585
+ }
586
+ getValueFromJSONC(relativePath, lodashGetPath, defaultValue = void 0) {
587
+ /* */
588
+ /* */
589
+ /* */
590
+ /* */
591
+ /* */
592
+ /* */
593
+ return (void 0);
594
+ }
542
595
  writeFile(relativePath, content) {
543
596
  /* */
544
597
  /* */
@@ -641,7 +694,12 @@ ${proj?.children.map(c => '+' + c.genericName).join('\n')}
641
694
  linked porject prefix: "${this.linkedProjects.linkedProjectsPrefix}"
642
695
 
643
696
  linked projects from json (${this.linkedProjects.linkedProjects?.length || 0}):
644
- ${(this.linkedProjects.linkedProjects || []).map(c => '- ' + c.relativeClonePath).join('\n')}
697
+ ${(this.linkedProjects.linkedProjects || [])
698
+ .map(c => {
699
+ const proj = this.ins.From(this.pathFor(c.relativeClonePath));
700
+ return '- ' + proj ? proj.genericName : c.relativeClonePath;
701
+ })
702
+ .join('\n')}
645
703
 
646
704
  `);
647
705
  }
@@ -649,4 +707,4 @@ ${(this.linkedProjects.linkedProjects || []).map(c => '- ' + c.relativeClonePath
649
707
  export { BaseProject };
650
708
  ;
651
709
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project.ts
652
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsT0FBTyxFQUFFLElBQUksRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckMsT0FBTyxFQUFrQixXQUFXLEVBQUksT0FBTyxHQUE0RCxNQUFNLFVBQVUsQ0FBQyxDQUFBLEtBQUs7QUFDakksS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBRUwsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFhOUQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBRXRCLE1BQXNCLFdBQVc7YUFPeEIsUUFBRyxHQUFHLElBQUksbUJBQW1CLENBQWMsV0FBVyxDQUFDLEFBQXBELENBQXFEO2FBT2pELFVBQUssR0FBUSxFQUFFLEFBQVYsQ0FBVztJQUM5QixJQUFXLFdBQVc7UUFDcEIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFvQkQsYUFBYTtJQUNiO0lBQ0U7O09BRUc7SUFDYSxRQUFnQjtRQUVwQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBZGUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQTdC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RCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsY0FBYztRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxVQUFVLENBQUMsY0FBc0IsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUNsRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksTUFBTTtRQUNaLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksT0FBTztRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFJLFdBQVc7UUFDakIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FB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QUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO0VBQ3ZGLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0NBQ3hEO1lBQ087MEJBQ2tCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9COzs2QkFFckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsTUFBTSxJQUFJLENBQUM7RUFDMUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs7R0FFekYsQ0FDRSxDQUFDO0lBSUosQ0FBQzs7U0F4MkJtQixXQUFXO0FBNDJCaEMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jbGkvYnJvd3Nlcic7XG5pbXBvcnQgeyBwYXRoLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7ICAgQ29tbWl0RGF0YSwgICBDb3JlUHJvamVjdCwgICBIZWxwZXJzLCAgIExpbmtlZFBvcmplY3RzQ29uZmlnLCAgIExpbmtlZFByb2plY3QsICAgVHlwZU9mQ29tbWl0LCB9IGZyb20gJy4uL2luZGV4JzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSAnLi9iYXNlLXByb2plY3QtcmVzb2x2ZXInO1xuaW1wb3J0IHsgICBCYXNlUHJvamVjdFR5cGUsICAgTGlicmFyaWVzQnVpbGRPcHRpb25zLCAgIExpYnJhcnlCdWlsZENvbW1hbmRPcHRpb25zLCAgIE5nUHJvamVjdCwgfSBmcm9tICcuLi9tb2RlbHMnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VMaWJyYXJ5QnVpbGQgfSBmcm9tICcuL2Jhc2UtbGlicmFyeS1idWlsZCc7XG5pbXBvcnQgeyBCYXNlTnBtSGVscGVycyB9IGZyb20gJy4vYmFzZS1ucG0taGVscGVycyc7XG5pbXBvcnQgeyBCYXNlTGlua2VkUHJvamVjdHMgfSBmcm9tICcuL2Jhc2UtbGlua2VkLXByb2plY3RzJztcbmltcG9ydCB7IEJhc2VHaXQgfSBmcm9tICcuL2Jhc2UtZ2l0JztcblxuXG5jb25zdCB0YWtlblBvcnRzID0gW107XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUHJvamVjdDxcbiAgUFJPSkNFVCBleHRlbmRzIEJhc2VQcm9qZWN0ID0gYW55LFxuICBUWVBFID0gQmFzZVByb2plY3RUeXBlLFxuPiB7XG5cblxuXG4gIHN0YXRpYyBpbnMgPSBuZXcgQmFzZVByb2plY3RSZXNvbHZlcjxCYXNlUHJvamVjdD4oQmFzZVByb2plY3QpO1xuXG5cblxuXG5cbiAgcHVibGljIGNhY2hlOiBhbnkgPSB7fTtcbiAgcHVibGljIHN0YXRpYyBjYWNoZTogYW55ID0ge307XG4gIHB1YmxpYyBnZXQgZ2xvYmFsQ2FjaGUoKSB7XG4gICAgcmV0dXJuIEJhc2VQcm9qZWN0LmNhY2hlO1xuICB9XG4gIHJlYWRvbmx5IHR5cGU6IFRZUEUgfCBzdHJpbmcgPSAndW5rbm93JztcblxuICAvKipcbiAgICogcmVzb2x2ZSBpbnN0YW5jZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pDRVQ+O1xuICAvKipcbiAgICogVW5pcXVlIGZyZWUgcG9ydCBmb3IgcHJvamVjdCBpbnN0YW5jZVxuICAgKiBvbmx5IGF2YWlsYWJsZSBhZnRlciBleGVjdXRpbmcgKnRoaXMuYXNzaWduRnJlZVBvcnQoKSpcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IHN0cmluZztcblxuICBwdWJsaWMgbGlicmFyeUJ1aWxkOiBCYXNlTGlicmFyeUJ1aWxkO1xuICBwdWJsaWMgbnBtSGVscGVyczogQmFzZU5wbUhlbHBlcnM7XG4gIHB1YmxpYyBsaW5rZWRQcm9qZWN0czogQmFzZUxpbmtlZFByb2plY3RzO1xuICBwdWJsaWMgZ2l0OiBCYXNlR2l0O1xuXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIGRvZXNuJ3QgbmVlZCB0byBiZSByZWFsIHBhdGggLT4gY2FuIGJlIGxpbmtcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZyxcbiAgKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBnZXQgaXNNb25vcmVwbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIG9yZGVyQ29yZVByb2plY3RzKGNvcmVQcm9qZWN0czogQ29yZVByb2plY3RbXSk6IENvcmVQcm9qZWN0W10ge1xuICAgIGNvbnN0IHByb2plY3RNYXAgPSBuZXcgTWFwPENvcmVQcm9qZWN0LCBDb3JlUHJvamVjdFtdPigpO1xuXG5cbiAgICBmb3IgKGNvbnN0IHByb2plY3Qgb2YgY29yZVByb2plY3RzKSB7XG4gICAgICBwcm9qZWN0TWFwLnNldChwcm9qZWN0LCBbXSk7XG4gICAgfVxuXG5cbiAgICBmb3IgKGNvbnN0IHByb2plY3Qgb2YgY29yZVByb2plY3RzKSB7XG4gICAgICBpZiAoIXByb2plY3RNYXAuaGFzKHByb2plY3QuZXh0ZW5kcykpIHtcbiAgICAgICAgcHJvamVjdE1hcC5zZXQocHJvamVjdC5leHRlbmRzLCBbXSk7XG4gICAgICB9XG4gICAgICBwcm9qZWN0TWFwLmdldChwcm9qZWN0LmV4dGVuZHMpIS5wdXNoKHByb2plY3QpO1xuICAgIH1cblxuICAgIGNvbnN0IG9yZGVyZWRQcm9qZWN0czogQ29yZVByb2plY3RbXSA9IFtdO1xuICAgIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PENvcmVQcm9qZWN0PigpO1xuXG4gICAgY29uc3QgdmlzaXQgPSAocHJvamVjdDogQ29yZVByb2plY3QpID0+IHtcbiAgICAgIGlmICghdmlzaXRlZC5oYXMocHJvamVjdCkpIHtcbiAgICAgICAgdmlzaXRlZC5hZGQocHJvamVjdCk7XG4gICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHByb2plY3RNYXAuZ2V0KHByb2plY3QpO1xuICAgICAgICBpZiAoZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICB2aXNpdChkZXApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvcmRlcmVkUHJvamVjdHMucHVzaChwcm9qZWN0KTtcbiAgICAgIH1cbiAgICB9O1xuXG5cbiAgICBmb3IgKGNvbnN0IHByb2plY3Qgb2YgY29yZVByb2plY3RzKSB7XG4gICAgICB2aXNpdChwcm9qZWN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3JkZXJlZFByb2plY3RzLnJldmVyc2UoKTtcbiAgfVxuXG5cblxuXG4gIGdldCBjb3JlKCk6IENvcmVQcm9qZWN0IHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5jYWNoZVsnY29yZSddKSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVbJ2NvcmUnXTtcbiAgICB9XG5cbiAgICBsZXQgY29yZVByb2plY3RzID0gQ29yZVByb2plY3QuY29yZVByb2plY3RzLmZpbHRlcihwID0+XG4gICAgICBwLnJlY29nbml6ZWRGbih0aGlzIGFzIGFueSksXG4gICAgKTtcbiAgICBjb3JlUHJvamVjdHMgPSB0aGlzLm9yZGVyQ29yZVByb2plY3RzKGNvcmVQcm9qZWN0cyk7XG5cblxuICAgIHRoaXMuY2FjaGVbJ2NvcmUnXSA9IF8uZmlyc3QoY29yZVByb2plY3RzKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVsnY29yZSddO1xuICB9XG5cblxuXG4gIGdldCBsaW5rZWRQcm9qZWN0c0V4aXN0ZWQoKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBzZXRUeXBlKHR5cGU6IFRZUEUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHlwZUlzKC4uLnR5cGVzOiBUWVBFW10pIHtcbiAgICByZXR1cm4gdGhpcy50eXBlICYmIHR5cGVzLmluY2x1ZGVzKHRoaXMudHlwZSBhcyBhbnkpO1xuICB9XG5cblxuXG4gIHB1YmxpYyB0eXBlSXNOb3QoLi4udHlwZXM6IFRZUEVbXSkge1xuICAgIHJldHVybiAhdGhpcy50eXBlSXMoLi4udHlwZXMpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwcm9qZWN0IGZvbGRlciBiYXNlbmFtZVxuICAgKi9cbiAgZ2V0IGJhc2VuYW1lKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG5hbWUgZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubnBtSGVscGVycz8ubmFtZSB8fCB0aGlzLm5hbWVGcm9tUG9tWE1MO1xuICB9XG5cbiAgZ2V0IG5hbWVGcm9tUG9tWE1MKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXJ0aWZhY3RJZFBhdHRlcm4gPSAvPGFydGlmYWN0SWQ+KFtePF0rKTxcXC9hcnRpZmFjdElkPi87XG4gICAgY29uc3QgbWF0Y2ggPSAodGhpcy5yZWFkRmlsZSgncG9tLnhtbCcpIHx8ICcnKS5tYXRjaChhcnRpZmFjdElkUGF0dGVybik7XG4gICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICByZXR1cm4gbWF0Y2hbMV07XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgZ2V0Rm9sZGVyc0ZvclBvc3NpYmxlUHJvamVjdENoaWxkcmVuKCk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGdldEFsbENoaWxkcmVuKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWxpYXMgdG8gZ2V0QWxsQ2hpbGRyZW5cbiAgICovXG4gIGdldCBjaGlsZHJlbigpOiBQUk9KQ0VUW10ge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldENoaWxkQnkobmFtZU9yQmFzZW5hbWU6IHN0cmluZywgZXJyb3JzID0gdHJ1ZSk6IFBST0pDRVQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHBhcmVudCgpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgZ3JhbmRwYSgpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGdlbmVyaWNOYW1lKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgaGFzIHByb2plY3QuaGFzRmlsZSgpO1xuICAgKi9cbiAgcGF0aEV4aXN0cyhyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRmlsZShyZWxhdGl2ZVBhdGgpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHByb2plY3QucGF0aEV4aXN0cygpO1xuICAgKi9cbiAgaGFzRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgaGFzRm9sZGVyKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhoYXNGaWxlRXhpc3RzKCk7XG4gICAqIGJ1dCB3aXRoIHBhdGgucmVzb2x2ZVxuICAgKi9cbiAgY29udGFpbnNGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKFxuICAgICAgcGF0aC5qb2luKHRoaXMubG9jYXRpb24sIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGgpLFxuICAgICk7XG4gICAgcmV0dXJuIEhlbHBlcnMuZXhpc3RzKGZ1bGxQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWJzb2x1dGUgcGF0aDpcbiAgICogY29uY2F0ZWQgcHJvamVjdCBsb2NhdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGhcbiAgICovXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHdyaXRlSnNvbihyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzIGV4ZWN1dGUgaW5zdGVhZFxuICAgKiB1c2Ugb3V0cHV0IGZyb20gb3IgbW9yZSBwcmVjaWVzZSBjcmFmdGVkIGFwaVxuICAgKi9cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8Q29yZU1vZGVscy5SdW5PcHRpb25zLCAnY3dkJz4pIHtcbiAgICBsZXQgb3B0OiBDb3JlTW9kZWxzLlJ1bk9wdGlvbnM7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIEhlbHBlcnMucnVuKGNvbW1hbmQsIG9wdCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcnVuIGJ1dCBhc3luY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGUoXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDb3JlTW9kZWxzLkV4ZWN1dGVPcHRpb25zICYgeyBzaG93Q29tbWFuZD86IGJvb2xlYW4gfSxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHRyeSBydW4gYnV0IGNvbnRpbnVlIHdoZW4gaXQgZmFpbHNcbiAgICogQHBhcmFtIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHRyeVJ1blN5bmMoXG4gICAgY29tbWFuZDogc3RyaW5nLFxuLyogKi9cbi8qICovXG4gIFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgb3V0cHV0RnJvbShcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4vKiAqL1xuLyogKi9cbiAgXG4gICkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUZpbGUoZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVhZEZpbGUoZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVhZEpzb248VCA9IHt9PihmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpOiBUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGV4YWN0UGF0aCA9IHRydWUpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgcmVtb3ZlRm9sZGVyQnlSZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoVG9Gb2xkZXI6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGFzeW5jIGFzc2lnbkZyZWVQb3J0KFxuICAgIHN0YXJ0RnJvbTogbnVtYmVyID0gNDIwMCxcbiAgICBob3dNYW55RnJlZVBvcnRzQWZ0ZXJUaGF0UG9ydDogbnVtYmVyID0gMCxcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlSXRzZWxmKCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBQdXJwb3NlOiBub3QgaW5pdGlhbGl6aW5nIGFsbCBjbGFzc2VzIGF0IHRoZSBiZWdpbm5pbmdcbiAgICogT25seSBmb3IgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IGNsYXNzXG4gICAqL1xuICBkZWZpbmVQcm9wZXJ0eTxQUk9KRUNUPihcbiAgICB2YXJpYWJsZU5hbWU6IGtleW9mIFBST0pFQ1QsXG4gICAgY2xhc3NGbjogRnVuY3Rpb24sXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGN1c3RvbUluc3RhbmNlUmV0dXJuPzogKCkgPT4gb2JqZWN0O1xuICAgIH0sXG4gICkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGZzLmNvcHkgb3B0aW9uIGZpbHRlciBmdW5jdGlvbiBmb3IgY29weWluZyBvbmx5IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJPbmx5Q29weShiYXNlUGF0aEZvbGRlcnNPbmx5VG9JbmNsdWRlOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBub3Qgc2VsZWN0ZWQgZm9sZGVycyBmcm9tIHByb2plY3RcbiAgICovXG4gIGZpbHRlckRvbnRDb3B5KGJhc2VQYXRoRm9sZGVyc1Rvc1NraXA6IHN0cmluZ1tdKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdlbmVyYWwgZGVmYXVsdCBkZXZlbG9wbWVudCBicmFuY2ggZm9yIGFsbCBraW5kcyBvZiBwcm9qZWN0c1xuICAgKi9cbiAgZ2V0RGVmYXVsdERldmVsb3BtZW50QnJhbmNoKCkge1xuICAgIHJldHVybiAnZGV2ZWxvcCc7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG1haW4vZGVmYXVsdCBoYXJkY29kZWQgYnJhbmNoZXNcbiAgICovXG4gIGdldE1haW5CcmFuY2hlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnbWFzdGVyJywgJ2RldmVsb3AnLCAnc3RhZ2UnLCAncHJvZCcsICd0ZXN0J107XG4gIH1cblxuXG5cbiAgaXNVbnNpbmdBY3Rpb25Db21taXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlc2V0UHJvY2VzcyhvdmVycmlkZUJyYW5jaD86IHN0cmluZywgcmVjcnVzaXZlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBsaW5rVG8oZGVzdFBhY2thZ2VMb2NhdGlvbjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cblxuICB3cml0ZUZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHB1YmxpYyBydW5Db21tYW5kR2V0U3RyaW5nKHRoaXM6IEJhc2VQcm9qZWN0LCBjb21tYW5kOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHRvU3RyaW5nID0gKCkgPT4ge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9PT4ke3RoaXMubG9jYXRpb259YDtcbiAgfTtcblxuXG5cbiAgZ2V0IHBhcmVudHNOYW1lcygpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgb3BlbkxvY2F0aW9uKHJlbGF0aXZlRm9sZGVyUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIHByaXZhdGUgZmluZFBhcmVudHNOYW1lcyhcbiAgICBwcm9qZWN0PzogUFJPSkNFVCxcbiAgICBwYXJlbnQ/OiBQUk9KQ0VULFxuICAgIHJlc3VsdCA9IFtdLFxuICApOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdHJ5S2lsbEFsbEVsZWN0cm9uSW5zdGFuY2VzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgcHJvamVjdCBmaWxlcyBzdHJ1Y3R1cmUgYW5kIGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBpbml0KGluaXRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnbG9iYWxseSBsaW5rIG5wbSBhcyBwYWNrYWdlXG4gICAqL1xuICBhc3luYyBsaW5rKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSB3aXRob3V0IGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBzdHJ1Y3QoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgYW5kIGJ1aWxkKCkgcHJvamVjdFxuICAgKi9cbiAgYXN5bmMgYnVpbGQoYnVpbGRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBsaW50IHBvcmplY3RcbiAgICovXG4gIGFzeW5jIGxpbnQobGludE9wdGlvbnM/OiBhbnkpIHtcbiAgICBIZWxwZXJzLmluZm8oYFxuXG5cbiAgICBDT01NSVQgTElOVCBOT1QgSU1QTEVNRU5URURcblxuXG4gICAgYCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdldCBpbmZvIGFib3V0IHBvcmplY3RcbiAgICovXG4gIGFzeW5jIGluZm8oKSB7XG4gICAgY29uc3QgcHJvaiA9IHRoaXM7XG4gICAgSGVscGVycy5pbmZvKFxuICAgICAgYFxuXG4gIG5hbWU6ICR7cHJvaj8ubmFtZX1cbiAgdHlwZTogJHtwcm9qPy50eXBlfVxuICBjb3JlIHByb2plY3QgbmFtZTogJyR7cHJvaj8uY29yZT8ubmFtZX0nXG4gIGVtYmVkZGVkIHByb2plY3Q6ICR7cHJvaj8ubGlua2VkUHJvamVjdHMuZW1iZWRkZWRQcm9qZWN0Py5nZW5lcmljTmFtZSB8fCAnPCBub25lID4nfVxuICBjaGlsZHJlbiAoJHtwcm9qPy5jaGlsZHJlbi5sZW5ndGh9KTogJHshcHJvaiB8fCAhcHJvai5jaGlsZHJlbi5sZW5ndGggPyAnPCBub25lID4nIDogJyd9XG4ke3Byb2o/LmNoaWxkcmVuLm1hcChjID0+ICcrJyArIGMuZ2VuZXJpY05hbWUpLmpvaW4oJ1xcbicpfVxuYCArXG4gICAgICAgIGBcbmxpbmtlZCBwb3JqZWN0IHByZWZpeDogXCIke3RoaXMubGlua2VkUHJvamVjdHMubGlua2VkUHJvamVjdHNQcmVmaXh9XCJcblxubGlua2VkIHByb2plY3RzIGZyb20ganNvbiAoJHt0aGlzLmxpbmtlZFByb2plY3RzLmxpbmtlZFByb2plY3RzPy5sZW5ndGggfHwgMH0pOlxuJHsodGhpcy5saW5rZWRQcm9qZWN0cy5saW5rZWRQcm9qZWN0cyB8fCBbXSkubWFwKGMgPT4gJy0gJyArIGMucmVsYXRpdmVDbG9uZVBhdGgpLmpvaW4oJ1xcbicpfVxuXG4gIGAsXG4gICAgKTtcblxuXG5cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLXByb2plY3QudHMiXX0=
710
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQWtCLFdBQVcsRUFBSSxPQUFPLEdBQTRELE1BQU0sVUFBVSxDQUFDLENBQUEsS0FBSztBQUNqSSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWM5RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFdEIsTUFBc0IsV0FBVzthQU94QixRQUFHLEdBQUcsSUFBSSxtQkFBbUIsQ0FBYyxXQUFXLENBQUMsQUFBcEQsQ0FBcUQ7YUFPakQsVUFBSyxHQUFRLEVBQUUsQUFBVixDQUFXO0lBQzlCLElBQVcsV0FBVztRQUNwQixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQXFCRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLENBQVM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBR0QsYUFBYTtJQUNiO0lBQ0U7O09BRUc7SUFDSCxRQUFnQjtRQXRD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SztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsY0FBYztRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxVQUFVLENBQUMsY0FBc0IsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUNsRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksTUFBTTtRQUNaLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQUksT0FBTztRQUNiLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJ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QUFpRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgQ0xJIH0gZnJvbSAndG5wLWNsaS9icm93c2VyJztcbmltcG9ydCB7IHBhdGgsIGNyb3NzUGxhdGZvcm1QYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICd0bnAtY29uZmlnL2Jyb3dzZXInO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgICBDb21taXREYXRhLCAgIENvcmVQcm9qZWN0LCAgIEhlbHBlcnMsICAgTGlua2VkUG9yamVjdHNDb25maWcsICAgTGlua2VkUHJvamVjdCwgICBUeXBlT2ZDb21taXQsIH0gZnJvbSAnLi4vaW5kZXgnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEJhc2VQcm9qZWN0UmVzb2x2ZXIgfSBmcm9tICcuL2Jhc2UtcHJvamVjdC1yZXNvbHZlcic7XG5pbXBvcnQgeyAgIEJhc2VQcm9qZWN0VHlwZSwgICBMaWJyYXJpZXNCdWlsZE9wdGlvbnMsICAgTGlicmFyeUJ1aWxkQ29tbWFuZE9wdGlvbnMsICAgTmdQcm9qZWN0LCB9IGZyb20gJy4uL21vZGVscyc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB0eXBlIHsgQmFzZUxpYnJhcnlCdWlsZCB9IGZyb20gJy4vYmFzZS1saWJyYXJ5LWJ1aWxkJztcbmltcG9ydCB7IEJhc2VOcG1IZWxwZXJzIH0gZnJvbSAnLi9iYXNlLW5wbS1oZWxwZXJzJztcbmltcG9ydCB7IEJhc2VMaW5rZWRQcm9qZWN0cyB9IGZyb20gJy4vYmFzZS1saW5rZWQtcHJvamVjdHMnO1xuaW1wb3J0IHsgQmFzZUdpdCB9IGZyb20gJy4vYmFzZS1naXQnO1xuaW1wb3J0IHsgQmFzZVZzY29kZUhlbHBlcnMgfSBmcm9tICcuL2Jhc2UtdnNjb2RlJztcblxuXG5jb25zdCB0YWtlblBvcnRzID0gW107XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUHJvamVjdDxcbiAgUFJPSkNFVCBleHRlbmRzIEJhc2VQcm9qZWN0ID0gYW55LFxuICBUWVBFID0gQmFzZVByb2plY3RUeXBlLFxuPiB7XG5cblxuXG4gIHN0YXRpYyBpbnMgPSBuZXcgQmFzZVByb2plY3RSZXNvbHZlcjxCYXNlUHJvamVjdD4oQmFzZVByb2plY3QpO1xuXG5cblxuXG5cbiAgcHVibGljIGNhY2hlOiBhbnkgPSB7fTtcbiAgcHVibGljIHN0YXRpYyBjYWNoZTogYW55ID0ge307XG4gIHB1YmxpYyBnZXQgZ2xvYmFsQ2FjaGUoKSB7XG4gICAgcmV0dXJuIEJhc2VQcm9qZWN0LmNhY2hlO1xuICB9XG4gIHJlYWRvbmx5IHR5cGU6IFRZUEUgfCBzdHJpbmcgPSAndW5rbm93JztcblxuICAvKipcbiAgICogcmVzb2x2ZSBpbnN0YW5jZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pDRVQ+O1xuICAvKipcbiAgICogVW5pcXVlIGZyZWUgcG9ydCBmb3IgcHJvamVjdCBpbnN0YW5jZVxuICAgKiBvbmx5IGF2YWlsYWJsZSBhZnRlciBleGVjdXRpbmcgKnRoaXMuYXNzaWduRnJlZVBvcnQoKSpcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IHN0cmluZztcblxuICBwdWJsaWMgbGlicmFyeUJ1aWxkOiBCYXNlTGlicmFyeUJ1aWxkO1xuICBwdWJsaWMgbnBtSGVscGVyczogQmFzZU5wbUhlbHBlcnM7XG4gIHB1YmxpYyBsaW5rZWRQcm9qZWN0czogQmFzZUxpbmtlZFByb2plY3RzO1xuICBwdWJsaWMgdnNDb2RlSGVscGVyczogQmFzZVZzY29kZUhlbHBlcnM7XG4gIHB1YmxpYyBnaXQ6IEJhc2VHaXQ7XG5cblxuICBwcml2YXRlIF9fbG9jYXRpb246IHN0cmluZztcbiAgZ2V0IGxvY2F0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX19sb2NhdGlvbjtcbiAgfVxuICBzZXQgbG9jYXRpb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5fX2xvY2F0aW9uID0gY3Jvc3NQbGF0Zm9ybVBhdGgodik7XG4gIH1cblxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwgcGF0aCAtPiBjYW4gYmUgbGlua1xuICAgICAqL1xuICAgIGxvY2F0aW9uOiBzdHJpbmcsXG4gICkge1xuICAgIHRoaXMubG9jYXRpb24gPSBsb2NhdGlvbjtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGdldCBpc01vbm9yZXBvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgb3JkZXJDb3JlUHJvamVjdHMoY29yZVByb2plY3RzOiBDb3JlUHJvamVjdFtdKTogQ29yZVByb2plY3RbXSB7XG4gICAgY29uc3QgcHJvamVjdE1hcCA9IG5ldyBNYXA8Q29yZVByb2plY3QsIENvcmVQcm9qZWN0W10+KCk7XG5cblxuICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiBjb3JlUHJvamVjdHMpIHtcbiAgICAgIHByb2plY3RNYXAuc2V0KHByb2plY3QsIFtdKTtcbiAgICB9XG5cblxuICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiBjb3JlUHJvamVjdHMpIHtcbiAgICAgIGlmICghcHJvamVjdE1hcC5oYXMocHJvamVjdC5leHRlbmRzKSkge1xuICAgICAgICBwcm9qZWN0TWFwLnNldChwcm9qZWN0LmV4dGVuZHMsIFtdKTtcbiAgICAgIH1cbiAgICAgIHByb2plY3RNYXAuZ2V0KHByb2plY3QuZXh0ZW5kcykhLnB1c2gocHJvamVjdCk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JkZXJlZFByb2plY3RzOiBDb3JlUHJvamVjdFtdID0gW107XG4gICAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8Q29yZVByb2plY3Q+KCk7XG5cbiAgICBjb25zdCB2aXNpdCA9IChwcm9qZWN0OiBDb3JlUHJvamVjdCkgPT4ge1xuICAgICAgaWYgKCF2aXNpdGVkLmhhcyhwcm9qZWN0KSkge1xuICAgICAgICB2aXNpdGVkLmFkZChwcm9qZWN0KTtcbiAgICAgICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcHJvamVjdE1hcC5nZXQocHJvamVjdCk7XG4gICAgICAgIGlmIChkZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIHZpc2l0KGRlcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9yZGVyZWRQcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuICAgICAgfVxuICAgIH07XG5cblxuICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiBjb3JlUHJvamVjdHMpIHtcbiAgICAgIHZpc2l0KHByb2plY3QpO1xuICAgIH1cblxuICAgIHJldHVybiBvcmRlcmVkUHJvamVjdHMucmV2ZXJzZSgpO1xuICB9XG5cblxuXG5cbiAgZ2V0IGNvcmUoKTogQ29yZVByb2plY3Qge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmNhY2hlWydjb3JlJ10pKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZVsnY29yZSddO1xuICAgIH1cblxuICAgIGxldCBjb3JlUHJvamVjdHMgPSBDb3JlUHJvamVjdC5jb3JlUHJvamVjdHMuZmlsdGVyKHAgPT5cbiAgICAgIHAucmVjb2duaXplZEZuKHRoaXMgYXMgYW55KSxcbiAgICApO1xuICAgIGNvcmVQcm9qZWN0cyA9IHRoaXMub3JkZXJDb3JlUHJvamVjdHMoY29yZVByb2plY3RzKTtcblxuXG4gICAgdGhpcy5jYWNoZVsnY29yZSddID0gXy5maXJzdChjb3JlUHJvamVjdHMpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlWydjb3JlJ107XG4gIH1cblxuXG5cbiAgZ2V0IGxpbmtlZFByb2plY3RzRXhpc3RlZCgpOiBQUk9KQ0VUW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHVibGljIHNldFR5cGUodHlwZTogVFlQRSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cblxuXG4gIHB1YmxpYyB0eXBlSXMoLi4udHlwZXM6IFRZUEVbXSkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgJiYgdHlwZXMuaW5jbHVkZXModGhpcy50eXBlIGFzIGFueSk7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJc05vdCguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuICF0aGlzLnR5cGVJcyguLi50eXBlcyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHByb2plY3QgZm9sZGVyIGJhc2VuYW1lXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogbmFtZSBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ucG1IZWxwZXJzPy5uYW1lIHx8IHRoaXMubmFtZUZyb21Qb21YTUw7XG4gIH1cblxuICBnZXQgbmFtZUZyb21Qb21YTUwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcnRpZmFjdElkUGF0dGVybiA9IC88YXJ0aWZhY3RJZD4oW148XSspPFxcL2FydGlmYWN0SWQ+LztcbiAgICBjb25zdCBtYXRjaCA9ICh0aGlzLnJlYWRGaWxlKCdwb20ueG1sJykgfHwgJycpLm1hdGNoKGFydGlmYWN0SWRQYXR0ZXJuKTtcbiAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgIHJldHVybiBtYXRjaFsxXTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRGb2xkZXJzRm9yUG9zc2libGVQcm9qZWN0Q2hpbGRyZW4oKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgZ2V0QWxsQ2hpbGRyZW4oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBhbGlhcyB0byBnZXRBbGxDaGlsZHJlblxuICAgKi9cbiAgZ2V0IGNoaWxkcmVuKCk6IFBST0pDRVRbXSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0Q2hpbGRCeShuYW1lT3JCYXNlbmFtZTogc3RyaW5nLCBlcnJvcnMgPSB0cnVlKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgcGFyZW50KCk6IFBST0pDRVQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBncmFuZHBhKCk6IFBST0pDRVQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgZ2VuZXJpY05hbWUoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByaXZhdGUgY2hlY2tBbmRCb2xkZW5QYXRoKGZ1bGxQYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZ1bGxQYXRoLnNwbGl0KCcvJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBwYXJ0cy5tYXAoKHBhcnQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBwYXRoVG9jaGVjayA9IHBhcnRzLnNsaWNlKDAsIGluZGV4ICsgMSkuam9pbignLycpO1xuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgIHJldHVybiBwYXJ0O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5qb2luKCcvJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgaGFzIHByb2plY3QuaGFzRmlsZSgpO1xuICAgKi9cbiAgcGF0aEV4aXN0cyhyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRmlsZShyZWxhdGl2ZVBhdGgpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHByb2plY3QucGF0aEV4aXN0cygpO1xuICAgKi9cbiAgaGFzRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cbiAgaGFzRm9sZGVyKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhoYXNGaWxlRXhpc3RzKCk7XG4gICAqIGJ1dCB3aXRoIHBhdGgucmVzb2x2ZVxuICAgKi9cbiAgY29udGFpbnNGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKFxuICAgICAgcGF0aC5qb2luKHRoaXMubG9jYXRpb24sIGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGgpLFxuICAgICk7XG4gICAgcmV0dXJuIEhlbHBlcnMuZXhpc3RzKGZ1bGxQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWJzb2x1dGUgcGF0aDpcbiAgICogY29uY2F0ZWQgcHJvamVjdCBsb2NhdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGhcbiAgICovXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHdyaXRlSnNvbihyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzIGV4ZWN1dGUgaW5zdGVhZFxuICAgKiB1c2Ugb3V0cHV0IGZyb20gb3IgbW9yZSBwcmVjaWVzZSBjcmFmdGVkIGFwaVxuICAgKi9cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8Q29yZU1vZGVscy5SdW5PcHRpb25zLCAnY3dkJz4pIHtcbiAgICBsZXQgb3B0OiBDb3JlTW9kZWxzLlJ1bk9wdGlvbnM7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIEhlbHBlcnMucnVuKGNvbW1hbmQsIG9wdCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcnVuIGJ1dCBhc3luY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGUoXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDb3JlTW9kZWxzLkV4ZWN1dGVPcHRpb25zICYgeyBzaG93Q29tbWFuZD86IGJvb2xlYW4gfSxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB0cnkgcnVuIGJ1dCBjb250aW51ZSB3aGVuIGl0IGZhaWxzXG4gICAqIEBwYXJhbSBjb21tYW5kXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB0cnlSdW5TeW5jKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbi8qICovXG4vKiAqL1xuICBcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIG91dHB1dEZyb20oXG4gICAgY29tbWFuZDogc3RyaW5nLFxuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmVGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlYWRGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlYWRKc29uPFQgPSB7fT4oZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKTogVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlKHJlbGF0aXZlUGF0aDogc3RyaW5nLCBleGFjdFBhdGggPSB0cnVlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHJlbW92ZUZvbGRlckJ5UmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aFRvRm9sZGVyOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhc3luYyBhc3NpZ25GcmVlUG9ydChcbiAgICBzdGFydEZyb206IG51bWJlciA9IDQyMDAsXG4gICAgaG93TWFueUZyZWVQb3J0c0FmdGVyVGhhdFBvcnQ6IG51bWJlciA9IDAsXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUl0c2VsZigpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICAvKipcbiAgICogUHVycG9zZTogbm90IGluaXRpYWxpemluZyBhbGwgY2xhc3NlcyBhdCB0aGUgYmVnaW5uaW5nXG4gICAqIE9ubHkgZm9yIEJhc2VGZWF0dXJlRm9yUHJvamVjdCBjbGFzc1xuICAgKi9cbiAgZGVmaW5lUHJvcGVydHk8UFJPSkVDVD4oXG4gICAgdmFyaWFibGVOYW1lOiBrZXlvZiBQUk9KRUNULFxuICAgIGNsYXNzRm46IEZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBjdXN0b21JbnN0YW5jZVJldHVybj86ICgpID0+IG9iamVjdDtcbiAgICB9LFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBzZWxlY3RlZCBmb2xkZXJzIGZyb20gcHJvamVjdFxuICAgKi9cbiAgZmlsdGVyT25seUNvcHkoYmFzZVBhdGhGb2xkZXJzT25seVRvSW5jbHVkZTogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZnMuY29weSBvcHRpb24gZmlsdGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIG9ubHkgbm90IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJEb250Q29weShiYXNlUGF0aEZvbGRlcnNUb3NTa2lwOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnZW5lcmFsIGRlZmF1bHQgZGV2ZWxvcG1lbnQgYnJhbmNoIGZvciBhbGwga2luZHMgb2YgcHJvamVjdHNcbiAgICovXG4gIGdldERlZmF1bHREZXZlbG9wbWVudEJyYW5jaCgpIHtcbiAgICByZXR1cm4gJ2RldmVsb3AnO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBtYWluL2RlZmF1bHQgaGFyZGNvZGVkIGJyYW5jaGVzXG4gICAqL1xuICBnZXRNYWluQnJhbmNoZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ21hc3RlcicsICdkZXZlbG9wJywgJ3N0YWdlJywgJ3Byb2QnLCAndGVzdCddO1xuICB9XG5cblxuXG4gIGlzVW5zaW5nQWN0aW9uQ29tbWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBhc3luYyByZXNldFByb2Nlc3Mob3ZlcnJpZGVCcmFuY2g/OiBzdHJpbmcsIHJlY3J1c2l2ZSA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgbGlua1RvKGRlc3RQYWNrYWdlTG9jYXRpb246IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHNldFZhbHVlVG9KU09OKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55LFxuICApOiB2b2lkIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXRWYWx1ZUZyb21KU09OKFxuICAgIHJlbGF0aXZlUGF0aDogc3RyaW5nLFxuICAgIGxvZGFzaEdldFBhdGg6IHN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6IGFueSA9IHZvaWQgMCxcbiAgKTogYW55IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0VmFsdWVGcm9tSlNPTkMoXG4gICAgcmVsYXRpdmVQYXRoOiBzdHJpbmcsXG4gICAgbG9kYXNoR2V0UGF0aDogc3RyaW5nLFxuICAgIGRlZmF1bHRWYWx1ZTogYW55ID0gdm9pZCAwLFxuICApOiBhbnkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG4gIHdyaXRlRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgcHVibGljIHJ1bkNvbW1hbmRHZXRTdHJpbmcodGhpczogQmFzZVByb2plY3QsIGNvbW1hbmQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdG9TdHJpbmcgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGAke3RoaXMubmFtZX09PiR7dGhpcy5sb2NhdGlvbn1gO1xuICB9O1xuXG5cblxuICBnZXQgcGFyZW50c05hbWVzKCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBvcGVuTG9jYXRpb24ocmVsYXRpdmVGb2xkZXJQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBmaW5kUGFyZW50c05hbWVzKFxuICAgIHByb2plY3Q/OiBQUk9KQ0VULFxuICAgIHBhcmVudD86IFBST0pDRVQsXG4gICAgcmVzdWx0ID0gW10sXG4gICk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB0cnlLaWxsQWxsRWxlY3Ryb25JbnN0YW5jZXMoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSBhbmQgZGVwZWRlbmNpZXNcbiAgICovXG4gIGFzeW5jIGluaXQoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdsb2JhbGx5IGxpbmsgbnBtIGFzIHBhY2thZ2VcbiAgICovXG4gIGFzeW5jIGxpbmsoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBpbml0IHByb2plY3QgZmlsZXMgc3RydWN0dXJlIHdpdGhvdXQgZGVwZWRlbmNpZXNcbiAgICovXG4gIGFzeW5jIHN0cnVjdChpbml0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBhbmQgYnVpbGQoKSBwcm9qZWN0XG4gICAqL1xuICBhc3luYyBidWlsZChidWlsZE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGxpbnQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgbGludChsaW50T3B0aW9ucz86IGFueSkge1xuICAgIEhlbHBlcnMuaW5mbyhgXG5cblxuICAgIENPTU1JVCBMSU5UIE5PVCBJTVBMRU1FTlRFRFxuXG5cbiAgICBgKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZ2V0IGluZm8gYWJvdXQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgaW5mbygpIHtcbiAgICBjb25zdCBwcm9qID0gdGhpcztcbiAgICBIZWxwZXJzLmluZm8oXG4gICAgICBgXG5cbiAgbmFtZTogJHtwcm9qPy5uYW1lfVxuICB0eXBlOiAke3Byb2o/LnR5cGV9XG4gIGNvcmUgcHJvamVjdCBuYW1lOiAnJHtwcm9qPy5jb3JlPy5uYW1lfSdcbiAgZW1iZWRkZWQgcHJvamVjdDogJHtwcm9qPy5saW5rZWRQcm9qZWN0cy5lbWJlZGRlZFByb2plY3Q/LmdlbmVyaWNOYW1lIHx8ICc8IG5vbmUgPid9XG4gIGNoaWxkcmVuICgke3Byb2o/LmNoaWxkcmVuLmxlbmd0aH0pOiAkeyFwcm9qIHx8ICFwcm9qLmNoaWxkcmVuLmxlbmd0aCA/ICc8IG5vbmUgPicgOiAnJ31cbiR7cHJvaj8uY2hpbGRyZW4ubWFwKGMgPT4gJysnICsgYy5nZW5lcmljTmFtZSkuam9pbignXFxuJyl9XG5gICtcbiAgICAgICAgYFxubGlua2VkIHBvcmplY3QgcHJlZml4OiBcIiR7dGhpcy5saW5rZWRQcm9qZWN0cy5saW5rZWRQcm9qZWN0c1ByZWZpeH1cIlxuXG5saW5rZWQgcHJvamVjdHMgZnJvbSBqc29uICgke3RoaXMubGlua2VkUHJvamVjdHMubGlua2VkUHJvamVjdHM/Lmxlbmd0aCB8fCAwfSk6XG4keyh0aGlzLmxpbmtlZFByb2plY3RzLmxpbmtlZFByb2plY3RzIHx8IFtdKVxuICAubWFwKGMgPT4ge1xuICAgIGNvbnN0IHByb2ogPSB0aGlzLmlucy5Gcm9tKHRoaXMucGF0aEZvcihjLnJlbGF0aXZlQ2xvbmVQYXRoKSk7XG4gICAgcmV0dXJuICctICcgKyBwcm9qID8gcHJvai5nZW5lcmljTmFtZSA6IGMucmVsYXRpdmVDbG9uZVBhdGg7XG4gIH0pXG4gIC5qb2luKCdcXG4nKX1cblxuICBgLFxuICAgICk7XG5cblxuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS1wcm9qZWN0LnRzIl19
@@ -0,0 +1,66 @@
1
+ import { Helpers } from '../index';
2
+ import { BaseFeatureForProject } from './base-feature-for-project';
3
+ export class BaseVscodeHelpers extends BaseFeatureForProject {
4
+ get extensions() {
5
+ return Helpers.uniqArray([
6
+ /* */
7
+ /* */
8
+ /* */
9
+ /* */
10
+ /* */
11
+ /* */
12
+ /* */
13
+ /* */
14
+ /* */
15
+ /* */
16
+ /* */
17
+ /* */
18
+ /* */
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ /* */
29
+ /* */
30
+ /* */
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ /* */
45
+ /* */
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ ]);
62
+ }
63
+ }
64
+ ;
65
+ ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-vscode.ts
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12c2NvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvYmFzZS12c2NvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRSxNQUFNLE9BQU8saUJBRVgsU0FBUSxxQkFBcUI7SUFDN0IsSUFBSSxVQUFVO1FBQ1osT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQzdCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7U0FFQSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdFQUFnRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCB9IGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmltcG9ydCB7IEJhc2VGZWF0dXJlRm9yUHJvamVjdCB9IGZyb20gJy4vYmFzZS1mZWF0dXJlLWZvci1wcm9qZWN0JztcblxuZXhwb3J0IGNsYXNzIEJhc2VWc2NvZGVIZWxwZXJzPFxuICBQUk9KQ0VUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBhbnksXG4+IGV4dGVuZHMgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IHtcbiAgZ2V0IGV4dGVuc2lvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBIZWxwZXJzLnVuaXFBcnJheShbXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICBdKTtcbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS12c2NvZGUudHMiXX0=
@@ -113,4 +113,4 @@ export const CoreAngularProject = CoreProject.from({
113
113
  });
114
114
  ;
115
115
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/core-project.ts
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2NvcmUtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQWlCOUQsTUFBTSxTQUFTLEdBQUc7SUFDaEIsUUFBUSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBc0JGLE1BQWEsV0FBVzthQUlSLGlCQUFZLEdBQXVCLEVBQUUsQUFBekIsQ0FBMEI7SUFJcEQsTUFBTSxDQUFDLElBQUksQ0FDVCxPQUEyRDtRQUUvRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQU1EO1FBMkJBOztXQUVHO1FBQ0gsaUJBQVksR0FBOEIsRUFBRSxDQUFDO0lBOUJ0QixDQUFDO0lBOEN4Qjs7T0FFRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNELENBQUM7O1NBNUdVLFdBQVc7QUFnSHhCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQWM7SUFFakUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztJQUMvQixPQUFPLEVBQUUseUNBQXlDO0lBQ2xELFlBQVksRUFBRSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRTtRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRTtRQUNoQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1FBQ3ZDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQWM7SUFFOUQsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO0lBQy9CLE9BQU8sRUFBRSx3Q0FBd0M7SUFDakQsWUFBWSxFQUFFLEVBQUU7SUFDaEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRTtRQUM1QixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRTtRQUM1QixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUVGLENBQUMsQ0FBQztBQUVGLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgXywgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3QgfSBmcm9tICcuL2Jhc2UtcHJvamVjdCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5cblxuXG5leHBvcnQgdHlwZSBDb3JlUHJvamVjdEVudmlyb25tZW50ID0ge1xuICBzaG9ydE5hbWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBvbmxpbmVMaW5rPzogc3RyaW5nO1xufTtcblxuXG5cblxuY29uc3QgZGVmYXVsdERiID0ge1xuICBwcm9qZWN0czogW10sXG59O1xuXG5cblxuXG5leHBvcnQgdHlwZSBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVCBleHRlbmRzIEJhc2VQcm9qZWN0PiA9IHtcbiAgcHJvamVjdD86IFBST0pFQ1Q7XG4gIC8qKlxuICAgKiB3YXRjaCBtb2RlXG4gICAqL1xuICB3YXRjaD86IGJvb2xlYW47XG4gIHByb2Q/OiBib29sZWFuO1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBmaXJzdCBhcmcgZnJvbSBjb21tYW5kIGxpbmVcbiAgICovXG4gIGZpcnN0QXJnPzogc3RyaW5nO1xuICBhcmdzV2l0aFBhcmFtcz86IHN0cmluZztcbiAgZXhpdENhbGxiYWNrPzogKCkgPT4gdm9pZDtcbn07XG5cblxuZXhwb3J0IGNsYXNzIENvcmVQcm9qZWN0PFBST0pFQ1QgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PiB7XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgY29yZVByb2plY3RzOiBDb3JlUHJvamVjdDxhbnk+W10gPSBbXTtcblxuXG5cbiAgc3RhdGljIGZyb208UHJvaiBleHRlbmRzIEJhc2VQcm9qZWN0ID0gQmFzZVByb2plY3Q+KFxuICAgIG9wdGlvbnM6IE9taXQ8Q29yZVByb2plY3Q8UHJvaj4sICduYW1lJyB8ICd1cmwnIHwgJ2JyYW5jaCc+LFxuICApOiBDb3JlUHJvamVjdDxQcm9qPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cblxuXG4gIGV4dGVuZHM/OiBDb3JlUHJvamVjdDxhbnk+O1xuICBjb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlY29uZCBjb2xvciBmb3IgcHJvamVjdCAob3B0aW9uYWwpXG4gICAqL1xuICBzZWNvbmRDb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlY29uZCBjb2xvciBmb3IgcHJvamVjdCAob3B0aW9uYWwpXG4gICAqL1xuICB0aGlyZENvbG9yPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNzaCB1cmwgZm9yIGdpdCByZXBvXG4gICAqL1xuICB1cmxTU0g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBodHRwcyB1cmwgZm9yIGdpdCByZXBvXG4gICAqL1xuICB1cmxIdHRwPzogc3RyaW5nO1xuICAvKipcbiAgICogbWFpbiBicmFuY2hlcyAtIGZpcnN0IGlzIGRlZmF1bHRcbiAgICovXG4gIGJyYW5jaGVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIHByb2plY3QgZW52aXJvbm1lbnRzXG4gICAqL1xuICBlbnZpcm9ubWVudHM/OiBDb3JlUHJvamVjdEVudmlyb25tZW50W10gPSBbXTtcblxuXG5cbiAgc3RhcnRDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVsYXNlQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGRlcGxveUNvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICB0ZXN0Q29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGJ1aWxkQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGRvY3NDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gcmVjb2duaXplIHByb2plY3RcbiAgICovXG4gIHJlY29nbml6ZWRGbjogKHByb2plY3Q6IFBST0pFQ1QpID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNvcmUgcG9yamVjdCBuYW1lIGZyb20gcmVwbyBiYXNlbmFtZVxuICAgKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHBhdGguYmFzZW5hbWUodGhpcy51cmwpLnJlcGxhY2UoL1xcLmdpdCQvLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogbWFpbiAoZGVmYXVsdCBmb3IgcmVzZXQpIGJyYW5jaFxuICAgKi9cbiAgZ2V0IGJyYW5jaCgpIHtcbiAgICByZXR1cm4gXy5maXJzdCh0aGlzLmJyYW5jaGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cmwgZm9yIGdpdCByZXBvXG4gICAqL1xuICBnZXQgdXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLnVybEh0dHAgPyB0aGlzLnVybEh0dHAgOiB0aGlzLnVybFNTSCkgfHwgJyc7XG4gIH1cblxufVxuXG5leHBvcnQgY29uc3QgQ29yZVR5cGVzY3JpcHRQcm9qZWN0ID0gQ29yZVByb2plY3QuZnJvbTxCYXNlUHJvamVjdD4oe1xuXG4gIGJyYW5jaGVzOiBbJ21hc3RlcicsICdkZXZlbG9wJ10sXG4gIHVybEh0dHA6ICdodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQnLFxuICBlbnZpcm9ubWVudHM6IFtdLFxuICByZWNvZ25pemVkRm46IHByb2plY3QgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfSxcbiAgYXN5bmMgc3RhcnRDb21tYW5kKHsgcHJvamVjdCB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfSxcbiAgYXN5bmMgYnVpbGRDb21tYW5kKHsgcHJvamVjdCwgd2F0Y2ggfSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9LFxuXG59KTtcblxuZXhwb3J0IGNvbnN0IENvcmVBbmd1bGFyUHJvamVjdCA9IENvcmVQcm9qZWN0LmZyb208QmFzZVByb2plY3Q+KHtcblxuICBleHRlbmRzOiBDb3JlVHlwZXNjcmlwdFByb2plY3QsXG4gIGJyYW5jaGVzOiBbJ21hc3RlcicsICdkZXZlbG9wJ10sXG4gIHVybEh0dHA6ICdodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaScsXG4gIGVudmlyb25tZW50czogW10sXG4gIHJlY29nbml6ZWRGbjogcHJvamVjdCA9PiB7XG4gICAgcmV0dXJuIHByb2plY3QuaGFzRmlsZSgnYW5ndWxhci5qc29uJyk7XG4gIH0sXG4gIGFzeW5jIHN0YXJ0Q29tbWFuZCh7IHByb2plY3QgfSkge1xuICAgIGF3YWl0IHByb2plY3QubnBtSGVscGVycy5tYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKCk7XG4gICAgY29uc3QgcG9ydCA9IGF3YWl0IHByb2plY3QuYXNzaWduRnJlZVBvcnQoNDIwMCk7XG4gICAgcHJvamVjdC5ydW4oYG5wbS1ydW4gbmcgc2VydmUgLS1wb3J0ICR7cG9ydH1gKS5zeW5jKCk7XG4gIH0sXG4gIGFzeW5jIGJ1aWxkQ29tbWFuZCh7IHByb2plY3QgfSkge1xuICAgIGF3YWl0IHByb2plY3QubnBtSGVscGVycy5tYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKCk7XG4gICAgcHJvamVjdC5ydW4oYG5wbS1ydW4gbmcgYnVpbGRgKS5zeW5jKCk7XG4gIH0sXG5cbn0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvY29yZS1wcm9qZWN0LnRzIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2NvcmUtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQWlCOUQsTUFBTSxTQUFTLEdBQUc7SUFDaEIsUUFBUSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBZ0NGLE1BQWEsV0FBVzthQUlSLGlCQUFZLEdBQXVCLEVBQUUsQUFBekIsQ0FBMEI7SUFJcEQsTUFBTSxDQUFDLElBQUksQ0FDVCxPQUEyRDtRQUUvRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQU1EO1FBMkJBOztXQUVHO1FBQ0gsaUJBQVksR0FBOEIsRUFBRSxDQUFDO0lBOUJ0QixDQUFDO0lBOEN4Qjs7T0FFRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNELENBQUM7O1NBNUdVLFdBQVc7QUFnSHhCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQWM7SUFFakUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztJQUMvQixPQUFPLEVBQUUseUNBQXlDO0lBQ2xELFlBQVksRUFBRSxFQUFFO0lBQ2hCLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRTtRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRTtRQUNoQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1FBQ3ZDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUVGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQWM7SUFFOUQsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO0lBQy9CLE9BQU8sRUFBRSx3Q0FBd0M7SUFDakQsWUFBWSxFQUFFLEVBQUU7SUFDaEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRTtRQUM1QixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRTtRQUM1QixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUVGLENBQUMsQ0FBQztBQUVGLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgXywgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB0eXBlIHsgQmFzZVByb2plY3QgfSBmcm9tICcuL2Jhc2UtcHJvamVjdCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy9icm93c2VyJztcbmltcG9ydCB7IEhlbHBlcnMsIExpYnJhcmllc0J1aWxkT3B0aW9ucyB9IGZyb20gJy4uL2luZGV4JztcblxuXG5cbmV4cG9ydCB0eXBlIENvcmVQcm9qZWN0RW52aXJvbm1lbnQgPSB7XG4gIHNob3J0TmFtZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG9ubGluZUxpbms/OiBzdHJpbmc7XG59O1xuXG5cblxuXG5jb25zdCBkZWZhdWx0RGIgPSB7XG4gIHByb2plY3RzOiBbXSxcbn07XG5cblxuXG5cbmV4cG9ydCB0eXBlIENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUIGV4dGVuZHMgQmFzZVByb2plY3Q+ID0ge1xuICBwcm9qZWN0PzogUFJPSkVDVDtcbiAgLyoqXG4gICAqIHdhdGNoIG1vZGVcbiAgICovXG4gIHdhdGNoPzogYm9vbGVhbjtcbiAgcHJvZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgbGlicmFyeUJ1aWxkT3B0aW9ucz86IExpYnJhcmllc0J1aWxkT3B0aW9ucztcbiAgLyoqXG4gICAqIGZpcnN0IGFyZyBmcm9tIGNvbW1hbmQgbGluZVxuICAgKi9cbiAgZmlyc3RBcmc6IHN0cmluZztcbiAgLyoqXG4gICAqIG9yaWduYWwgYXJncyB3aXRoIHBhcmFtc1xuICAgKi9cbiAgYXJnc1dpdGhQYXJhbXM6IHN0cmluZztcbiAgY29weXRvPzogIHN0cmluZ1tdO1xuICBjb3B5dG9hbGw/OiBib29sZWFuO1xuICAvKipcbiAgICogYXJncyBmcm9tIGNvbW1hbmQgbGluZSAoY2xlYXJuIGZyb20gcGFyYW1zKVxuICAgKi9cbiAgYXJnczogc3RyaW5nW107XG4gIGV4aXRDYWxsYmFjazogKCkgPT4gdm9pZDtcbn07XG5cblxuZXhwb3J0IGNsYXNzIENvcmVQcm9qZWN0PFBST0pFQ1QgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PiB7XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgY29yZVByb2plY3RzOiBDb3JlUHJvamVjdDxhbnk+W10gPSBbXTtcblxuXG5cbiAgc3RhdGljIGZyb208UHJvaiBleHRlbmRzIEJhc2VQcm9qZWN0ID0gQmFzZVByb2plY3Q+KFxuICAgIG9wdGlvbnM6IE9taXQ8Q29yZVByb2plY3Q8UHJvaj4sICduYW1lJyB8ICd1cmwnIHwgJ2JyYW5jaCc+LFxuICApOiBDb3JlUHJvamVjdDxQcm9qPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cblxuXG4gIGV4dGVuZHM/OiBDb3JlUHJvamVjdDxhbnk+O1xuICBjb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlY29uZCBjb2xvciBmb3IgcHJvamVjdCAob3B0aW9uYWwpXG4gICAqL1xuICBzZWNvbmRDb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlY29uZCBjb2xvciBmb3IgcHJvamVjdCAob3B0aW9uYWwpXG4gICAqL1xuICB0aGlyZENvbG9yPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNzaCB1cmwgZm9yIGdpdCByZXBvXG4gICAqL1xuICB1cmxTU0g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBodHRwcyB1cmwgZm9yIGdpdCByZXBvXG4gICAqL1xuICB1cmxIdHRwPzogc3RyaW5nO1xuICAvKipcbiAgICogbWFpbiBicmFuY2hlcyAtIGZpcnN0IGlzIGRlZmF1bHRcbiAgICovXG4gIGJyYW5jaGVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIHByb2plY3QgZW52aXJvbm1lbnRzXG4gICAqL1xuICBlbnZpcm9ubWVudHM/OiBDb3JlUHJvamVjdEVudmlyb25tZW50W10gPSBbXTtcblxuXG5cbiAgc3RhcnRDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVsYXNlQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGRlcGxveUNvbW1hbmQ/OiAob3B0aW9uczogQ29yZUNvbW1hbmRBcmdPcHRpb25zPFBST0pFQ1Q+KSA9PiBQcm9taXNlPHZvaWQ+O1xuICB0ZXN0Q29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGJ1aWxkQ29tbWFuZD86IChvcHRpb25zOiBDb3JlQ29tbWFuZEFyZ09wdGlvbnM8UFJPSkVDVD4pID0+IFByb21pc2U8dm9pZD47XG4gIGRvY3NDb21tYW5kPzogKG9wdGlvbnM6IENvcmVDb21tYW5kQXJnT3B0aW9uczxQUk9KRUNUPikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogZnVuY3Rpb24gdG8gcmVjb2duaXplIHByb2plY3RcbiAgICovXG4gIHJlY29nbml6ZWRGbjogKHByb2plY3Q6IFBST0pFQ1QpID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNvcmUgcG9yamVjdCBuYW1lIGZyb20gcmVwbyBiYXNlbmFtZVxuICAgKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHBhdGguYmFzZW5hbWUodGhpcy51cmwpLnJlcGxhY2UoL1xcLmdpdCQvLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogbWFpbiAoZGVmYXVsdCBmb3IgcmVzZXQpIGJyYW5jaFxuICAgKi9cbiAgZ2V0IGJyYW5jaCgpIHtcbiAgICByZXR1cm4gXy5maXJzdCh0aGlzLmJyYW5jaGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cmwgZm9yIGdpdCByZXBvXG4gICAqL1xuICBnZXQgdXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLnVybEh0dHAgPyB0aGlzLnVybEh0dHAgOiB0aGlzLnVybFNTSCkgfHwgJyc7XG4gIH1cblxufVxuXG5leHBvcnQgY29uc3QgQ29yZVR5cGVzY3JpcHRQcm9qZWN0ID0gQ29yZVByb2plY3QuZnJvbTxCYXNlUHJvamVjdD4oe1xuXG4gIGJyYW5jaGVzOiBbJ21hc3RlcicsICdkZXZlbG9wJ10sXG4gIHVybEh0dHA6ICdodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQnLFxuICBlbnZpcm9ubWVudHM6IFtdLFxuICByZWNvZ25pemVkRm46IHByb2plY3QgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfSxcbiAgYXN5bmMgc3RhcnRDb21tYW5kKHsgcHJvamVjdCB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfSxcbiAgYXN5bmMgYnVpbGRDb21tYW5kKHsgcHJvamVjdCwgd2F0Y2ggfSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9LFxuXG59KTtcblxuZXhwb3J0IGNvbnN0IENvcmVBbmd1bGFyUHJvamVjdCA9IENvcmVQcm9qZWN0LmZyb208QmFzZVByb2plY3Q+KHtcblxuICBleHRlbmRzOiBDb3JlVHlwZXNjcmlwdFByb2plY3QsXG4gIGJyYW5jaGVzOiBbJ21hc3RlcicsICdkZXZlbG9wJ10sXG4gIHVybEh0dHA6ICdodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaScsXG4gIGVudmlyb25tZW50czogW10sXG4gIHJlY29nbml6ZWRGbjogcHJvamVjdCA9PiB7XG4gICAgcmV0dXJuIHByb2plY3QuaGFzRmlsZSgnYW5ndWxhci5qc29uJyk7XG4gIH0sXG4gIGFzeW5jIHN0YXJ0Q29tbWFuZCh7IHByb2plY3QgfSkge1xuICAgIGF3YWl0IHByb2plY3QubnBtSGVscGVycy5tYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKCk7XG4gICAgY29uc3QgcG9ydCA9IGF3YWl0IHByb2plY3QuYXNzaWduRnJlZVBvcnQoNDIwMCk7XG4gICAgcHJvamVjdC5ydW4oYG5wbS1ydW4gbmcgc2VydmUgLS1wb3J0ICR7cG9ydH1gKS5zeW5jKCk7XG4gIH0sXG4gIGFzeW5jIGJ1aWxkQ29tbWFuZCh7IHByb2plY3QgfSkge1xuICAgIGF3YWl0IHByb2plY3QubnBtSGVscGVycy5tYWtlU3VyZU5vZGVNb2R1bGVzSW5zdGFsbGVkKCk7XG4gICAgcHJvamVjdC5ydW4oYG5wbS1ydW4gbmcgYnVpbGRgKS5zeW5jKCk7XG4gIH0sXG5cbn0pO1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvY29yZS1wcm9qZWN0LnRzIl19