tnp-core 18.0.47 → 18.0.49

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 (101) hide show
  1. package/README.md +1 -1
  2. package/assets/shared/shared_folder_info.txt +1 -1
  3. package/browser/esm2022/lib/core-imports.mjs +66 -5
  4. package/browser/esm2022/lib/core-models.mjs +51 -48
  5. package/browser/esm2022/lib/helpers-messages.mjs +9 -4
  6. package/browser/esm2022/lib/helpers.mjs +152 -369
  7. package/browser/esm2022/lib/utils.mjs +521 -8
  8. package/browser/fesm2022/tnp-core.mjs +1469 -1105
  9. package/browser/fesm2022/tnp-core.mjs.map +1 -1
  10. package/browser/lib/core-imports.d.ts +41 -1
  11. package/browser/lib/core-models.d.ts +51 -83
  12. package/browser/lib/helpers-messages.d.ts +6 -3
  13. package/browser/lib/helpers.d.ts +22 -0
  14. package/browser/lib/utils.d.ts +48 -0
  15. package/cli.backend.d.ts +1 -0
  16. package/cli.backend.js +15 -2
  17. package/cli.backend.js.map +1 -1
  18. package/client/esm2022/lib/core-imports.mjs +66 -5
  19. package/client/esm2022/lib/core-models.mjs +51 -48
  20. package/client/esm2022/lib/helpers-messages.mjs +9 -4
  21. package/client/esm2022/lib/helpers.mjs +152 -369
  22. package/client/esm2022/lib/utils.mjs +521 -8
  23. package/client/fesm2022/tnp-core.mjs +1469 -1105
  24. package/client/fesm2022/tnp-core.mjs.map +1 -1
  25. package/client/lib/core-imports.d.ts +41 -1
  26. package/client/lib/core-models.d.ts +51 -83
  27. package/client/lib/helpers-messages.d.ts +6 -3
  28. package/client/lib/helpers.d.ts +22 -0
  29. package/client/lib/utils.d.ts +48 -0
  30. package/index.js +15 -2
  31. package/index.js.map +1 -1
  32. package/lib/build-info._auto-generated_.js.map +1 -1
  33. package/lib/command-exists.js +20 -20
  34. package/lib/command-exists.js.map +1 -1
  35. package/lib/core-cli.js +49 -66
  36. package/lib/core-cli.js.map +1 -1
  37. package/lib/core-config.js.map +1 -1
  38. package/lib/core-imports.d.ts +41 -20
  39. package/lib/core-imports.js +202 -78
  40. package/lib/core-imports.js.map +1 -1
  41. package/lib/core-models.d.ts +51 -83
  42. package/lib/core-models.js +52 -47
  43. package/lib/core-models.js.map +1 -1
  44. package/lib/framework-name.js +2 -2
  45. package/lib/framework-name.js.map +1 -1
  46. package/lib/helpers-isomorphic.js +33 -52
  47. package/lib/helpers-isomorphic.js.map +1 -1
  48. package/lib/helpers-messages.d.ts +6 -3
  49. package/lib/helpers-messages.js +79 -102
  50. package/lib/helpers-messages.js.map +1 -1
  51. package/lib/helpers.d.ts +21 -3
  52. package/lib/helpers.js +718 -967
  53. package/lib/helpers.js.map +1 -1
  54. package/lib/index._auto-generated_.js.map +1 -1
  55. package/lib/index.js +23 -10
  56. package/lib/index.js.map +1 -1
  57. package/lib/node-chalk-mock.js +2 -2
  58. package/lib/node-chalk-mock.js.map +1 -1
  59. package/lib/node-path-mock.js +2 -2
  60. package/lib/node-path-mock.js.map +1 -1
  61. package/lib/progress-data.js +21 -23
  62. package/lib/progress-data.js.map +1 -1
  63. package/lib/public-api.js +19 -6
  64. package/lib/public-api.js.map +1 -1
  65. package/lib/required-global-npm-packages.js.map +1 -1
  66. package/lib/required.d.ts +44 -0
  67. package/lib/safe-types/glob.d.ts +102 -0
  68. package/lib/safe-types/minimatch/assert-valid-pattern.d.ts +1 -0
  69. package/lib/safe-types/minimatch/ast.d.ts +17 -0
  70. package/lib/safe-types/minimatch/brace-expressions.d.ts +7 -0
  71. package/lib/safe-types/minimatch/escape.d.ts +11 -0
  72. package/lib/safe-types/minimatch/index.d copy.d.ts +93 -0
  73. package/lib/safe-types/minimatch/index.d.ts +93 -0
  74. package/lib/safe-types/minimatch/unescapd.d.ts +16 -0
  75. package/lib/safe-types/minimatch/unescape.d.ts +16 -0
  76. package/lib/safe-types/minimatch.d.ts +0 -0
  77. package/lib/safe-types/rimraf.d.ts +28 -0
  78. package/lib/utils.d.ts +48 -1
  79. package/lib/utils.js +1252 -1146
  80. package/lib/utils.js.map +1 -1
  81. package/migrations/index.js +15 -2
  82. package/migrations/index.js.map +1 -1
  83. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  84. package/package.json +25 -89
  85. package/src.d.ts +1 -1
  86. package/tmp-environment.json +8 -403
  87. package/websql/esm2022/lib/core-imports.mjs +66 -5
  88. package/websql/esm2022/lib/core-models.mjs +51 -48
  89. package/websql/esm2022/lib/helpers-messages.mjs +9 -4
  90. package/websql/esm2022/lib/helpers.mjs +152 -369
  91. package/websql/esm2022/lib/utils.mjs +521 -8
  92. package/websql/fesm2022/tnp-core.mjs +1466 -1102
  93. package/websql/fesm2022/tnp-core.mjs.map +1 -1
  94. package/websql/lib/core-imports.d.ts +41 -1
  95. package/websql/lib/core-models.d.ts +51 -83
  96. package/websql/lib/helpers-messages.d.ts +6 -3
  97. package/websql/lib/helpers.d.ts +22 -0
  98. package/websql/lib/utils.d.ts +48 -0
  99. package/browser/package.json +0 -25
  100. package/taon.jsonc +0 -64
  101. package/websql/package.json +0 -25
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
  import { Helpers } from 'tnp-core';
15
15
  ```
16
16
 
17
- - in any frontend browser apps (except taon lib/apps)
17
+ - in any frontend browser apps (except taon libs/apps)
18
18
  ```ts
19
19
  import { Helpers } from 'tnp-core/browser';
20
20
  ```
@@ -1,6 +1,6 @@
1
1
  THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
2
2
 
3
- Assets from this folder are being shipped with this npm package (tnp-core@18.0.47)
3
+ Assets from this folder are being shipped with this npm package (tnp-core@18.0.44)
4
4
  created from this project.
5
5
 
6
6
  THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
@@ -24,6 +24,7 @@ let forceTrace = false;
24
24
  /* */
25
25
  /* */
26
26
  /* */
27
+ /* */
27
28
  import jQuery from 'jquery';
28
29
  import { chalk as chalkMock } from './node-chalk-mock';
29
30
  import { path as pathMock } from './node-path-mock';
@@ -33,6 +34,8 @@ import * as moment from 'moment';
33
34
  import * as dateformat from 'dateformat';
34
35
  import * as json5 from 'json5';
35
36
  import { Helpers } from './index';
37
+ /* */
38
+ /* */
36
39
  let $;
37
40
  $ = jQuery;
38
41
  /* */
@@ -47,9 +50,70 @@ let chalk = void 0;
47
50
  /* */
48
51
  // @ts-ignore
49
52
  chalk = chalkMock;
53
+ let glob = void 0;
54
+ /* */
55
+ /* */
56
+ let fse = void 0;
57
+ /* */
58
+ /* */
59
+ let os = void 0;
60
+ /* */
61
+ /* */
62
+ let child_process = void 0;
63
+ /* */
64
+ /* */
65
+ let http = void 0;
66
+ /* */
67
+ /* */
68
+ let https = void 0;
69
+ /* */
70
+ /* */
71
+ let isRoot = void 0;
72
+ /* */
73
+ /* */
74
+ let isAdmin = void 0;
75
+ /* */
76
+ /* */
77
+ /**
78
+ * check if the current process is elevated
79
+ * - sudo in unix/macos
80
+ * - admin in windows
81
+ */
82
+ let isElevated = void 0;
83
+ /* */
50
84
  /* */
85
+ let fkill = void 0;
51
86
  /* */
52
87
  /* */
88
+ let psList = void 0;
89
+ /* */
90
+ /* */
91
+ let net = void 0;
92
+ /* */
93
+ /* */
94
+ let spawn = void 0;
95
+ /* */
96
+ /* */
97
+ let minimatch = void 0;
98
+ /* */
99
+ /* */
100
+ let rimraf = void 0;
101
+ /* */
102
+ /* */
103
+ let chokidar = void 0;
104
+ /* */
105
+ /* */
106
+ let mkdirp = void 0;
107
+ /* */
108
+ /* */
109
+ let ncp = void 0;
110
+ /* */
111
+ /* */
112
+ let ps = void 0;
113
+ /* */
114
+ /* */
115
+ let fg = void 0;
116
+ /* */
53
117
  /* */
54
118
  /**
55
119
  * transform unix path to win32 path
@@ -107,10 +171,7 @@ const crossPlatformPath = (pathStringOrPathParts) => {
107
171
  }
108
172
  return pathStringOrPathParts;
109
173
  };
110
- export { _, q, moment, dateformat, crossPlatformPath, win32Path, path, chalk, json5, $, }; /* */
111
- /* */
112
- /* */
113
- /* */
174
+ export { _, q, moment, dateformat, crossPlatformPath, win32Path, path, chalk, json5, $, glob, fse, os, child_process, http, https, isElevated, fkill, psList, spawn, minimatch, fg, chokidar, mkdirp, ncp, rimraf, net, ps, }; /* */
114
175
  /* */
115
176
  /* */
116
177
  /* */
@@ -141,4 +202,4 @@ export { _, q, moment, dateformat, crossPlatformPath, win32Path, path, chalk, js
141
202
  /* */
142
203
  ;
143
204
  ({}); // @--end-of-file-for-module=tnp-core lib/core-imports.ts
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWNvcmUvcHJvamVjdHMvdG5wLWNvcmUvc3JjL2xpYi9jb3JlLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBQ3ZCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHTCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBSy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFLbEMsSUFBSSxDQUFhLENBQUM7QUFFbEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUVYLEtBQUs7QUFDTCxLQUFLO0FBTUwsSUFBSSxJQUFJLEdBQUcsS0FB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QUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBWUQsT0FBTyxxQkFBcUIsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFJRixPQUFPLEVBQUksQ0FBQyxFQUFJLENBQUMsRUFBSSxNQUFNLEVBQUksVUFBVSxFQUFJLGlCQUFpQixFQUFJLFNBQVMsRUFBSSxJQUFJLEVBQUksS0FBSyxFQUFJLEtBQUssRUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLEtBQUs7QUFDbkgsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUlKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMseURBQXlEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxubGV0IGZvcmNlVHJhY2UgPSBmYWxzZTtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5pbXBvcnQgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBjaGFsayBhcyBjaGFsa01vY2sgfSBmcm9tICcuL25vZGUtY2hhbGstbW9jayc7XG5pbXBvcnQgeyBwYXRoIGFzIHBhdGhNb2NrIH0gZnJvbSAnLi9ub2RlLXBhdGgtbW9jayc7XG5cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIHEgZnJvbSAncSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCAqIGFzIGRhdGVmb3JtYXQgZnJvbSAnZGF0ZWZvcm1hdCc7XG5pbXBvcnQgeyBDaGFsayB9IGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGpzb241IGZyb20gJ2pzb241JztcbmltcG9ydCB0eXBlIGpRdWVyeVR5cGUgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB0eXBlIGNoYWxrQmFzZVR5cGUgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgKiBhcyBwYXRoQmFzZVR5cGUgZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuL2luZGV4JztcblxuXG5cblxubGV0ICQ6IGpRdWVyeVR5cGU7XG5cbiQgPSBqUXVlcnk7XG5cbi8qICovXG4vKiAqL1xuICBcblxuXG5cblxubGV0IHBhdGggPSB2b2lkIDAgYXMgdHlwZW9mIHBhdGhCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG4vLyBAdHMtaWdub3JlXG5wYXRoID0gcGF0aE1vY2s7XG5cblxuXG5cblxubGV0IGNoYWxrOiBDaGFsayA9IHZvaWQgMCBhcyB0eXBlb2YgY2hhbGtCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG4vLyBAdHMtaWdub3JlXG5jaGFsayA9IGNoYWxrTW9jaztcblxuXG5cblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuLyoqXG4gKiB0cmFuc2Zvcm0gdW5peCBwYXRoIHRvIHdpbjMyIHBhdGhcbiAqL1xuY29uc3Qgd2luMzJQYXRoID0gKHA6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgaWYgKC9eXFwvW2Etel1cXC8vLnRlc3QocCkpIHtcbiAgICBwID0gcC5yZXBsYWNlKC9eXFwvW2Etel1cXC8vLCBgJHtwLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfTovYCk7XG4gIH1cbiAgcmV0dXJuIHBhdGgud2luMzIubm9ybWFsaXplKHApO1xufTtcblxuXG5cbi8qKlxuICogVGhpcyBmdW5jaXRvbiB3aWxsIHJlcGxhY2UgLy8gdG8gL1xuICovXG5jb25zdCBjcm9zc1BsYXRmb3JtUGF0aCA9IChcbiAgcGF0aFN0cmluZ09yUGF0aFBhcnRzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbik6IHN0cmluZyA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHBhdGhTdHJpbmdPclBhdGhQYXJ0cykpIHtcbiAgICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSBwYXRoU3RyaW5nT3JQYXRoUGFydHMuam9pbignLycpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXRoU3RyaW5nT3JQYXRoUGFydHMgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhdGhTdHJpbmdPclBhdGhQYXJ0cztcbiAgfVxuXG5cblxuICBpZiAoXG4gICAgdHlwZW9mIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9PT0gJ3N0cmluZycgJiZcbiAgICAvXltBLVpdXFw6Ly50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cylcbiAgKSB7XG4gICAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gXy5sb3dlckZpcnN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7XG4gIH1cblxuICBjb25zdCBpc0V4dGVuZGVkTGVuZ3RoUGF0aCA9IC9eXFxcXFxcXFxcXD9cXFxcLy50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7XG4gIGNvbnN0IGhhc05vbkFzY2lpID0gL1teXFx1MDAwMC1cXHUwMDgwXSsvLnRlc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIGlmIChpc0V4dGVuZGVkTGVuZ3RoUGF0aCkge1xuICAgIGNvbnNvbGUud2FybihgW3Rhb24tY29yZV1bY3Jvc3NQbGF0Zm9ybVBhdGhdOiBQYXRoIHN0YXJ0cyB3aXRoIFxcXFxcXFxcLFxuICAgIHRoaXMgaXMgbm90IHN1cHBvcnRlZCBpbiBjcm9zc1BsYXRmb3JtUGF0aGApO1xuICAgIGlmIChmb3JjZVRyYWNlKSB7XG4gICAgICBjb25zb2xlLnRyYWNlKGBwYXRoOiBcIiR7cGF0aFN0cmluZ09yUGF0aFBhcnRzfVwiYCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc05vbkFzY2lpKSB7XG4gICAgY29uc3QgYWxsTm9uQXNjaWkgPSBwYXRoU3RyaW5nT3JQYXRoUGFydHMubWF0Y2goL1teXFx1MDAwMC1cXHUwMDgwXSsvZykgfHwgJyc7XG4gICAgSGVscGVycy5sb2dXYXJuKFxuICAgICAgYFt0YW9uLWNvcmVdW2Nyb3NzUGxhdGZvcm1QYXRoXTogUGF0aCBjb250YWlucyBub24tYXNjaWkgY2hhcmFjdGVyczogJHthbGxOb25Bc2NpaX1gLFxuICAgICk7XG4gICAgSGVscGVycy5sb2dXYXJuKHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7XG4gIH1cblxuICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSAocGF0aFN0cmluZ09yUGF0aFBhcnRzIHx8ICcnKVxuICAgIC5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICAucmVwbGFjZSgvXFwvXFwvL2csICcvJylcbiAgICAucmVwbGFjZSgvXFwvXFwvL2csICcvJyk7IC8vIFRPRE8gcHJvYmFibHkgbm90IG5lZWRlZFxuXG4gIGxldCBpc1dpbmRvd3MgPSBmYWxzZTtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4gIGNvbnN0IHJlZ2V4V2luUGF0aDEgPSAvXihcXC8pW2EtekEtWl1cXDovO1xuXG5cbiAgaWYgKGlzV2luZG93cyAmJiByZWdleFdpblBhdGgxLnRlc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKSkge1xuICAgIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9IHBhdGhTdHJpbmdPclBhdGhQYXJ0cy5zbGljZSgxKTtcbiAgfVxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgcmV0dXJuIHBhdGhTdHJpbmdPclBhdGhQYXJ0cztcbn07XG5cblxuXG5leHBvcnQgeyAgIF8sICAgcSwgICBtb21lbnQsICAgZGF0ZWZvcm1hdCwgICBjcm9zc1BsYXRmb3JtUGF0aCwgICB3aW4zMlBhdGgsICAgcGF0aCwgICBjaGFsaywgICBqc29uNSwgICAkLCB9Oy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi9jb3JlLWltcG9ydHMudHMiXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWNvcmUvcHJvamVjdHMvdG5wLWNvcmUvc3JjL2xpYi9jb3JlLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBQ3ZCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQztBQUV6QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQXFCL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdsQyxLQUFLO0FBQ0wsS0FBSztBQU9MLElBQUksQ0FBYSxDQUFDO0FBRWxCLENBQUMsR0FBRyxNQUFNLENBQUM7QUFFWCxLQUFLO0FB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S0FBSztBQUNMLEtBQUs7QUFLSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlEQUF5RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5sZXQgZm9yY2VUcmFjZSA9IGZhbHNlO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cbmltcG9ydCBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNoYWxrIGFzIGNoYWxrTW9jayB9IGZyb20gJy4vbm9kZS1jaGFsay1tb2NrJztcbmltcG9ydCB7IHBhdGggYXMgcGF0aE1vY2sgfSBmcm9tICcuL25vZGUtcGF0aC1tb2NrJztcblxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgcSBmcm9tICdxJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0ICogYXMgZGF0ZWZvcm1hdCBmcm9tICdkYXRlZm9ybWF0JztcbmltcG9ydCB7IENoYWxrIH0gZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMganNvbjUgZnJvbSAnanNvbjUnO1xuaW1wb3J0IHR5cGUgalF1ZXJ5VHlwZSBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHR5cGUgY2hhbGtCYXNlVHlwZSBmcm9tICdjaGFsayc7XG5pbXBvcnQgdHlwZSAqIGFzIHBhdGhCYXNlVHlwZSBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgZ2xvYkJhc2VUeXBlIGZyb20gJ2dsb2InO1xuaW1wb3J0IHR5cGUgKiBhcyBmc2VCYXNlVHlwZSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSAqIGFzIG9zQmFzZVR5cGUgZnJvbSAnb3MnO1xuaW1wb3J0IHR5cGUgKiBhcyBjaGlsZF9wcm9jZXNzVHlwZSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB0eXBlICogYXMgaHR0cEJhc2VUeXBlIGZyb20gJ2h0dHAnO1xuaW1wb3J0IHR5cGUgKiBhcyBodHRwc0Jhc2VUeXBlIGZyb20gJ2h0dHBzJztcbmltcG9ydCB0eXBlICogYXMgZmtpbGxCYXNlVHlwZSBmcm9tICdma2lsbCc7XG5pbXBvcnQgdHlwZSAqIGFzIHBzTGlzdEJhc2VUeXBlIGZyb20gJ3BzLWxpc3QnO1xuaW1wb3J0IHR5cGUgKiBhcyBuZXRCYXNlVHlwZSBmcm9tICduZXQnO1xuaW1wb3J0IHR5cGUgKiBhcyBzcGF3bkJhc2VUeXBlIGZyb20gJ2Nyb3NzLXNwYXduJztcbmltcG9ydCB0eXBlICogYXMgZmdCYXNlVHlwZSBmcm9tICdmYXN0LWdsb2InO1xuaW1wb3J0IHR5cGUgeyBtaW5pbWF0Y2ggYXMgbWluaW1hdGNoQmFzZVR5cGUgfSBmcm9tICdtaW5pbWF0Y2gnO1xuaW1wb3J0IHR5cGUgKiBhcyByaW1yYWZCYXNlVHlwZSBmcm9tICdyaW1yYWYnO1xuaW1wb3J0IHR5cGUgKiBhcyBjaG9raWRhckJhc2VUeXBlIGZyb20gJ2Nob2tpZGFyJztcbmltcG9ydCB0eXBlICogYXMgbWtkaXJwQmFzZVR5cGUgZnJvbSAnbWtkaXJwJztcbmltcG9ydCB0eXBlICogYXMgbmNwQmFzZVR5cGUgZnJvbSAnY29weS1wYXN0ZSc7XG5pbXBvcnQgdHlwZSAqIGFzIHBzQmFzZVR5cGUgZnJvbSAncHMtbm9kZSc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5cblxuLyogKi9cbi8qICovXG4gIFxuXG5cblxuXG5cbmxldCAkOiBqUXVlcnlUeXBlO1xuXG4kID0galF1ZXJ5O1xuXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cbmxldCBwYXRoID0gdm9pZCAwIGFzIHR5cGVvZiBwYXRoQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuLy8gQHRzLWlnbm9yZVxucGF0aCA9IHBhdGhNb2NrO1xuXG5cblxuXG5cbmxldCBjaGFsazogQ2hhbGsgPSB2b2lkIDAgYXMgdHlwZW9mIGNoYWxrQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuLy8gQHRzLWlnbm9yZVxuY2hhbGsgPSBjaGFsa01vY2s7XG5cblxuXG5cbmxldCBnbG9iID0gdm9pZCAwIGFzIHR5cGVvZiBnbG9iQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cblxuXG5sZXQgZnNlID0gdm9pZCAwIGFzIHR5cGVvZiBmc2VCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cblxuXG5cbmxldCBvcyA9IHZvaWQgMCBhcyB0eXBlb2Ygb3NCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cblxuXG5cbmxldCBjaGlsZF9wcm9jZXNzID0gdm9pZCAwIGFzIHR5cGVvZiBjaGlsZF9wcm9jZXNzVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBodHRwID0gdm9pZCAwIGFzIHR5cGVvZiBodHRwQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgaHR0cHMgPSB2b2lkIDAgYXMgdHlwZW9mIGh0dHBzQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgaXNSb290ID0gdm9pZCAwIGFzICgpID0+IFByb21pc2U8Ym9vbGVhbj47XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgaXNBZG1pbiA9IHZvaWQgMCBhcyAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuLyoqXG4gKiBjaGVjayBpZiB0aGUgY3VycmVudCBwcm9jZXNzIGlzIGVsZXZhdGVkXG4gKiAtIHN1ZG8gaW4gdW5peC9tYWNvc1xuICogLSBhZG1pbiBpbiB3aW5kb3dzXG4gKi9cbmxldCBpc0VsZXZhdGVkID0gdm9pZCAwIGFzICgpID0+IFByb21pc2U8Ym9vbGVhbj47XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgZmtpbGwgPSB2b2lkIDAgYXMgdHlwZW9mIGZraWxsQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgcHNMaXN0ID0gdm9pZCAwIGFzIHR5cGVvZiBwc0xpc3RCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBuZXQgPSB2b2lkIDAgYXMgdHlwZW9mIG5ldEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IHNwYXduID0gdm9pZCAwIGFzIHR5cGVvZiBzcGF3bkJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IG1pbmltYXRjaCA9IHZvaWQgMCBhcyB0eXBlb2YgbWluaW1hdGNoQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgcmltcmFmID0gdm9pZCAwIGFzIHR5cGVvZiByaW1yYWZCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBjaG9raWRhciA9IHZvaWQgMCBhcyB0eXBlb2YgY2hva2lkYXJCYXNlVHlwZTtcbi8qICovXG4vKiAqL1xuICBcblxuXG5cbmxldCBta2RpcnAgPSB2b2lkIDAgYXMgdHlwZW9mIG1rZGlycEJhc2VUeXBlO1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxubGV0IG5jcCA9IHZvaWQgMCBhcyB0eXBlb2YgbmNwQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgcHMgPSB2b2lkIDAgYXMgdHlwZW9mIHBzQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5sZXQgZmcgPSB2b2lkIDAgYXMgdHlwZW9mIGZnQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cblxuXG5cbi8qKlxuICogdHJhbnNmb3JtIHVuaXggcGF0aCB0byB3aW4zMiBwYXRoXG4gKi9cbmNvbnN0IHdpbjMyUGF0aCA9IChwOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIGlmICgvXlxcL1thLXpdXFwvLy50ZXN0KHApKSB7XG4gICAgcCA9IHAucmVwbGFjZSgvXlxcL1thLXpdXFwvLywgYCR7cC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX06L2ApO1xuICB9XG4gIHJldHVybiBwYXRoLndpbjMyLm5vcm1hbGl6ZShwKTtcbn07XG5cblxuLyoqXG4gKiBUaGlzIGZ1bmNpdG9uIHdpbGwgcmVwbGFjZSAvLyB0byAvXG4gKi9cbmNvbnN0IGNyb3NzUGxhdGZvcm1QYXRoID0gKFxuICBwYXRoU3RyaW5nT3JQYXRoUGFydHM6IHN0cmluZyB8IHN0cmluZ1tdLFxuKTogc3RyaW5nID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGF0aFN0cmluZ09yUGF0aFBhcnRzKSkge1xuICAgIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9IHBhdGhTdHJpbmdPclBhdGhQYXJ0cy5qb2luKCcvJyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGF0aFN0cmluZ09yUGF0aFBhcnRzO1xuICB9XG5cblxuXG4gIGlmIChcbiAgICB0eXBlb2YgcGF0aFN0cmluZ09yUGF0aFBhcnRzID09PSAnc3RyaW5nJyAmJlxuICAgIC9eW0EtWl1cXDovLnRlc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKVxuICApIHtcbiAgICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSBfLmxvd2VyRmlyc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKTtcbiAgfVxuXG4gIGNvbnN0IGlzRXh0ZW5kZWRMZW5ndGhQYXRoID0gL15cXFxcXFxcXFxcP1xcXFwvLnRlc3QocGF0aFN0cmluZ09yUGF0aFBhcnRzKTtcbiAgY29uc3QgaGFzTm9uQXNjaWkgPSAvW15cXHUwMDAwLVxcdTAwODBdKy8udGVzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnRyb2wtcmVnZXhcbiAgaWYgKGlzRXh0ZW5kZWRMZW5ndGhQYXRoKSB7XG4gICAgY29uc29sZS53YXJuKGBbdGFvbi1jb3JlXVtjcm9zc1BsYXRmb3JtUGF0aF06IFBhdGggc3RhcnRzIHdpdGggXFxcXFxcXFwsXG4gICAgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIGNyb3NzUGxhdGZvcm1QYXRoYCk7XG4gICAgaWYgKGZvcmNlVHJhY2UpIHtcbiAgICAgIGNvbnNvbGUudHJhY2UoYHBhdGg6IFwiJHtwYXRoU3RyaW5nT3JQYXRoUGFydHN9XCJgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaGFzTm9uQXNjaWkpIHtcbiAgICBjb25zdCBhbGxOb25Bc2NpaSA9IHBhdGhTdHJpbmdPclBhdGhQYXJ0cy5tYXRjaCgvW15cXHUwMDAwLVxcdTAwODBdKy9nKSB8fCAnJztcbiAgICBIZWxwZXJzLmxvZ1dhcm4oXG4gICAgICBgW3Rhb24tY29yZV1bY3Jvc3NQbGF0Zm9ybVBhdGhdOiBQYXRoIGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzOiAke2FsbE5vbkFzY2lpfWAsXG4gICAgKTtcbiAgICBIZWxwZXJzLmxvZ1dhcm4ocGF0aFN0cmluZ09yUGF0aFBhcnRzKTtcbiAgfVxuXG4gIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9IChwYXRoU3RyaW5nT3JQYXRoUGFydHMgfHwgJycpXG4gICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgIC5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKVxuICAgIC5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKTsgLy8gVE9ETyBwcm9iYWJseSBub3QgbmVlZGVkXG5cbiAgbGV0IGlzV2luZG93cyA9IGZhbHNlO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgY29uc3QgcmVnZXhXaW5QYXRoMSA9IC9eKFxcLylbYS16QS1aXVxcOi87XG5cblxuICBpZiAoaXNXaW5kb3dzICYmIHJlZ2V4V2luUGF0aDEudGVzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpKSB7XG4gICAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gcGF0aFN0cmluZ09yUGF0aFBhcnRzLnNsaWNlKDEpO1xuICB9XG5cblxuXG5cblxuXG5cblxuXG5cblxuICByZXR1cm4gcGF0aFN0cmluZ09yUGF0aFBhcnRzO1xufTtcblxuXG5cbmV4cG9ydCB7ICAgXywgICBxLCAgIG1vbWVudCwgICBkYXRlZm9ybWF0LCAgIGNyb3NzUGxhdGZvcm1QYXRoLCAgIHdpbjMyUGF0aCwgICBwYXRoLCAgIGNoYWxrLCAgIGpzb241LCAgICQsICAgZ2xvYiwgICBmc2UsICAgb3MsICAgY2hpbGRfcHJvY2VzcywgICBodHRwLCAgIGh0dHBzLCAgIGlzRWxldmF0ZWQsICAgZmtpbGwsICAgcHNMaXN0LCAgIHNwYXduLCAgIG1pbmltYXRjaCwgICBmZywgICBjaG9raWRhciwgICBta2RpcnAsICAgbmNwLCAgIHJpbXJhZiwgICBuZXQsICAgcHMsIH07LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvY29yZS1pbXBvcnRzLnRzIl19
@@ -1,69 +1,72 @@
1
1
  export var CoreModels;
2
2
  (function (CoreModels) {
3
3
  CoreModels.InstalationTypeArr = ['-g', '--save', '--save-dev'];
4
- CoreModels.PackageJsonDependencyObjArr = [
5
- 'dependencies',
6
- 'devDependencies',
7
- 'peerDependencies',
8
- 'resolutions',
4
+ CoreModels.NpmSpecialVersions = [
5
+ 'latest',
6
+ 'next',
7
+ 'beta',
8
+ 'alpha',
9
+ 'rc',
10
+ 'lts',
9
11
  ];
10
- CoreModels.ReleaseArtifactTaonNames = Object.freeze({
11
- ANGULAR_ELECTRON_APP: 'angular-electron-app',
12
+ /**
13
+ * Available application environments.
14
+ */
15
+ CoreModels.EnvironmentName = Object.freeze({
12
16
  /**
13
- * Angular frontend webapp (pwa) inside docker
17
+ * Default environment, typically for artifact without application
18
+ * or for storing common data
14
19
  */
15
- ANGULAR_FRONTEND_WEBAPP: 'angular-frontend-webapp',
20
+ __: '__',
16
21
  /**
17
- * Angular + Ionic
22
+ * Local development environment, typically the developer's machine.
18
23
  */
19
- ANGULAR_IONIC_APP: 'angular-ionic-app',
24
+ LOCALHOST: 'localhost',
20
25
  /**
21
- * MkDocs documentation webapp (pwa) inside docker
26
+ * Development environment used by engineers to deploy and test new features.
22
27
  */
23
- MKDOCS_DOCS_WEBAPP: 'mkdocs-docs-webapp',
28
+ DEV: 'dev',
24
29
  /**
25
- * Nodejs backend server inside docker
26
- * (could be backend or frontend or microservice)
30
+ * Staging environment used for final validations before production.
27
31
  */
28
- NODEJS_BACKEND_SERVER: 'nodejs-backend-server',
32
+ STAGE: 'stage',
29
33
  /**
30
- * Npm lib package and global cli tool
34
+ * Production environment serving live users.
31
35
  */
32
- NPM_LIB_PKG_AND_CLI_TOOL: 'npm-lib-pkg-and-cli-tool',
36
+ PROD: 'prod',
33
37
  /**
34
- * Visual Studio Code extension
38
+ * Automated test environment for running unit, integration, or automated tests.
35
39
  */
36
- VSCODE_EXTENSION: 'vscode-extension',
37
- });
38
- CoreModels.ReleaseArtifactTaonNamesArr = Object.values(CoreModels.ReleaseArtifactTaonNames);
39
- /**
40
- * Object with all possible local release types for taon
41
- * inside LOCAL release
42
- */
43
- CoreModels.LocalReleaseArtifactTaonNames = Object.freeze({
44
- DOCKER_BACKEND_FRONTEND_APP: 'docker-backend-frontend-app',
40
+ TEST: 'test',
41
+ /**
42
+ * Quality assurance environment designated for manual and exploratory testing.
43
+ */
44
+ QA: 'qa',
45
+ /**
46
+ * Sandbox environment for experimenting and integration without affecting other environments.
47
+ */
48
+ SANDBOX: 'sandbox',
45
49
  /**
46
- * Global CLI tool
50
+ * User Acceptance Testing environment where clients or stakeholders validate the release candidate.
47
51
  */
48
- GLOBAL_CLI_TOOL: 'global-cli-tool',
52
+ UAT: 'uat',
49
53
  /**
50
- * Visual Studio Code extension
54
+ * Pre-production environment, closely mirroring production for final testing and validation.
51
55
  */
52
- VSCODE_EXTENSION: 'vscode-extension',
56
+ PREPROD: 'preprod',
57
+ /**
58
+ * Demonstration environment specifically configured for client presentations and demos.
59
+ */
60
+ DEMO: 'demo',
61
+ /**
62
+ * Continuous Integration environment used by CI/CD pipelines for automated builds and deployments.
63
+ */
64
+ CI: 'ci',
65
+ /**
66
+ * Training environment dedicated to internal team onboarding and training activities.
67
+ */
68
+ TRAINING: 'training',
53
69
  });
54
- /**
55
- * Array with all possible local release types for taon
56
- * inside LOCAL release
57
- */
58
- CoreModels.LocalReleaseArtifactTaonNamesArr = Object.values(CoreModels.LocalReleaseArtifactTaonNames);
59
- CoreModels.NpmSpecialVersions = [
60
- 'latest',
61
- 'next',
62
- 'beta',
63
- 'alpha',
64
- 'rc',
65
- 'lts',
66
- ];
67
70
  CoreModels.ImageFileExtensionArr = [
68
71
  'jpg',
69
72
  'jpeg',
@@ -74,8 +77,8 @@ export var CoreModels;
74
77
  'typescript',
75
78
  'angular',
76
79
  'angular-lib',
77
- 'unknow',
78
- 'unknow-npm-project',
80
+ 'unknown',
81
+ 'unknown-npm-project',
79
82
  ];
80
83
  CoreModels.mimeTypes = {
81
84
  '.aac': 'audio/aac',
@@ -170,4 +173,4 @@ export var CoreModels;
170
173
  })(CoreModels || (CoreModels = {}));
171
174
  ;
172
175
  ({}); // @--end-of-file-for-module=tnp-core lib/core-models.ts
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL2NvcmUtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sS0FBVyxVQUFVLENBb3FCMUI7QUFwcUJELFdBQWlCLFVBQVU7SUEwQ1osNkJBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBVXBELHNDQUEyQixHQUFHO1FBQ3pDLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGFBQWE7S0FDZ0IsQ0FBQztJQW1CbkIsbUNBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNwRCxvQkFBb0IsRUFBRSxzQkFBNkM7UUFDbkU7O1dBRUc7UUFDSCx1QkFBdUIsRUFBRSx5QkFBZ0Q7UUFDekU7O1dBRUc7UUFDSCxpQkFBaUIsRUFBRSxtQkFBMEM7UUFDN0Q7O1dBRUc7UUFDSCxrQkFBa0IsRUFBRSxvQkFBMkM7UUFDL0Q7OztXQUdHO1FBQ0gscUJBQXFCLEVBQUUsdUJBQThDO1FBQ3JFOztXQUVHO1FBQ0gsd0JBQXdCLEVBQUUsMEJBQWlEO1FBQzNFOztXQUVHO1FBQ0gsZ0JBQWdCLEVBQUUsa0JBQXlDO0tBQzVELENBQUMsQ0FBQztJQUVVLHNDQUEyQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ3RELFdBQUEsd0JBQXdCLENBQ3pCLENBQUM7SUFXRjs7O09BR0c7SUFDVSx3Q0FBNkIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3pELDJCQUEyQixFQUN6Qiw2QkFBeUQ7UUFDM0Q7O1dBRUc7UUFDSCxlQUFlLEVBQUUsaUJBQTZDO1FBQzlEOztXQUVHO1FBQ0gsZ0JBQWdCLEVBQUUsa0JBQThDO0tBQ2pFLENBQUMsQ0FBQztJQUVIOzs7T0FHRztJQUNVLDJDQUFnQyxHQUFHLE1B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O1FBQ2pDLE1BQU0sRUFBRSwwQkFBMEI7UUFDbEMsT0FBTyxFQUNMLG1FQUFtRTtRQUNyRSxNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE1BQU0sRUFBRSxpQ0FBaUM7UUFDekMsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUUsWUFBWTtRQUNwQixNQUFNLEVBQUUsYUFBYTtRQUNyQixLQUFLLEVBQUUsNkJBQTZCO0tBQzVCLENBQUM7SUFzQkUsMEJBQWUsR0FBRztRQUM3QixNQUFNO1FBQ04sT0FBTztRQUNQLE9BQU87UUFDUCxPQUFPO1FBQ1AsTUFBTTtRQUNOLGFBQWE7UUFDYixXQUFXO1FBQ1gsU0FBUztRQUNULE9BQU87S0FDTyxDQUFDO0lBR0osdUJBQVksR0FBRyxXQUFBLFNBQVMsQ0FBQztBQXVKeEMsQ0FBQyxFQXBxQmdCLFVBQVUsS0FBVixVQUFVLFFBb3FCMUI7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdEQUF3RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgbmFtZXNwYWNlIENvcmVNb2RlbHMge1xuXG4gIGV4cG9ydCB0eXBlIFBhY2thZ2UgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgaW5zdGFsbFR5cGU/OiBJbnN0YWxhdGlvblR5cGU7XG4gIH07XG5cblxuXG4gIGV4cG9ydCB0eXBlIE5wbUluc3RhbGxPcHRpb25zID0ge1xuICAgIHBrZz86IENvcmVNb2RlbHMuUGFja2FnZTtcbiAgICAvKipcbiAgICAgKiBmYWxzZSBieSBkZWZhdWx0XG4gICAgICovXG4gICAgc2lsZW50PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBmYWxzZSBieSBkZWZhdWx0XG4gICAgICovXG4gICAgdXNlWWFybj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogZmFsc2UgYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIGluc3RhbGxpbmcgcGFja2FnZShzKVxuICAgICAqL1xuICAgIHJlYXNvbj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiB0cnVlIGJ5IGRlZmF1bHRcbiAgICAgKi9cbiAgICByZW1vdmVZYXJuT3JQYWNrYWdlSnNvbkxvY2s/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIGZhbHNlIGJ5IGRlZmF1bHRcbiAgICAgKi9cbiAgICBnZW5lcmF0ZVlhcm5PclBhY2thZ2VKc29uTG9jaz86IGJvb2xlYW47XG4gIH07XG5cblxuXG4gIGV4cG9ydCB0eXBlIEluc3RhbGF0aW9uVHlwZSA9ICctZycgfCAnLS1zYXZlJyB8ICctLXNhdmUtZGV2JyB8ICdyZW1vdmUnO1xuXG4gIGV4cG9ydCBjb25zdCBJbnN0YWxhdGlvblR5cGVBcnIgPSBbJy1nJywgJy0tc2F2ZScsICctLXNhdmUtZGV2J107XG5cblxuXG4gIGV4cG9ydCB0eXBlIFBhY2thZ2VKc29uRGVwZW5kZW5jeU9iaiA9XG4gICAgfCAnZGVwZW5kZW5jaWVzJ1xuICAgIHwgJ2RldkRlcGVuZGVuY2llcydcbiAgICB8ICdwZWVyRGVwZW5kZW5jaWVzJ1xuICAgIHwgJ3Jlc29sdXRpb25zJztcblxuICBleHBvcnQgY29uc3QgUGFja2FnZUpzb25EZXBlbmRlbmN5T2JqQXJyID0gW1xuICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICdkZXZEZXBlbmRlbmNpZXMnLFxuICAgICdwZWVyRGVwZW5kZW5jaWVzJyxcbiAgICAncmVzb2x1dGlvbnMnLFxuICBdIGFzIFBhY2thZ2VKc29uRGVwZW5kZW5jeU9ialtdO1xuXG5cblxuICBleHBvcnQgdHlwZSBSZWxlYXNlUHJvY2Vzc1R5cGUgPSAnbWFudWFsJyB8ICdsb2NhbCcgfCAnY2xvdWQnO1xuXG4gIC8qKlxuICAgKiBBbGwgcG9zc2libGUgcmVsZWFzZSB0eXBlcyBmb3IgdGFvblxuICAgKiBmb3IgTUFOVUFML0NMT1VEIHJlbGVhc2VcbiAgICovXG4gIGV4cG9ydCB0eXBlIFJlbGVhc2VBcnRpZmFjdFRhb24gPVxuICAgIHwgJ2FuZ3VsYXItZWxlY3Ryb24tYXBwJ1xuICAgIHwgJ2FuZ3VsYXItZnJvbnRlbmQtd2ViYXBwJ1xuICAgIHwgJ2FuZ3VsYXItaW9uaWMtYXBwJ1xuICAgIHwgJ21rZG9jcy1kb2NzLXdlYmFwcCdcbiAgICB8ICdub2RlanMtYmFja2VuZC1zZXJ2ZXInXG4gICAgfCAnbnBtLWxpYi1wa2ctYW5kLWNsaS10b29sJ1xuICAgIHwgJ3ZzY29kZS1leHRlbnNpb24nO1xuXG4gIGV4cG9ydCBjb25zdCBSZWxlYXNlQXJ0aWZhY3RUYW9uTmFtZXMgPSBPYmplY3QuZnJlZXplKHtcbiAgICBBTkdVTEFSX0VMRUNUUk9OX0FQUDogJ2FuZ3VsYXItZWxlY3Ryb24tYXBwJyBhcyBSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICAgIC8qKlxuICAgICAqIEFuZ3VsYXIgZnJvbnRlbmQgd2ViYXBwIChwd2EpIGluc2lkZSBkb2NrZXJcbiAgICAgKi9cbiAgICBBTkdVTEFSX0ZST05URU5EX1dFQkFQUDogJ2FuZ3VsYXItZnJvbnRlbmQtd2ViYXBwJyBhcyBSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICAgIC8qKlxuICAgICAqIEFuZ3VsYXIgKyBJb25pY1xuICAgICAqL1xuICAgIEFOR1VMQVJfSU9OSUNfQVBQOiAnYW5ndWxhci1pb25pYy1hcHAnIGFzIFJlbGVhc2VBcnRpZmFjdFRhb24sXG4gICAgLyoqXG4gICAgICogTWtEb2NzIGRvY3VtZW50YXRpb24gd2ViYXBwIChwd2EpIGluc2lkZSBkb2NrZXJcbiAgICAgKi9cbiAgICBNS0RPQ1NfRE9DU19XRUJBUFA6ICdta2RvY3MtZG9jcy13ZWJhcHAnIGFzIFJlbGVhc2VBcnRpZmFjdFRhb24sXG4gICAgLyoqXG4gICAgICogTm9kZWpzIGJhY2tlbmQgc2VydmVyIGluc2lkZSBkb2NrZXJcbiAgICAgKiAoY291bGQgYmUgYmFja2VuZCBvciBmcm9udGVuZCBvciBtaWNyb3NlcnZpY2UpXG4gICAgICovXG4gICAgTk9ERUpTX0JBQ0tFTkRfU0VSVkVSOiAnbm9kZWpzLWJhY2tlbmQtc2VydmVyJyBhcyBSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICAgIC8qKlxuICAgICAqIE5wbSBsaWIgcGFja2FnZSBhbmQgZ2xvYmFsIGNsaSB0b29sXG4gICAgICovXG4gICAgTlBNX0xJQl9QS0dfQU5EX0NMSV9UT09MOiAnbnBtLWxpYi1wa2ctYW5kLWNsaS10b29sJyBhcyBSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICAgIC8qKlxuICAgICAqIFZpc3VhbCBTdHVkaW8gQ29kZSBleHRlbnNpb25cbiAgICAgKi9cbiAgICBWU0NPREVfRVhURU5TSU9OOiAndnNjb2RlLWV4dGVuc2lvbicgYXMgUmVsZWFzZUFydGlmYWN0VGFvbixcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IFJlbGVhc2VBcnRpZmFjdFRhb25OYW1lc0FyciA9IE9iamVjdC52YWx1ZXMoXG4gICAgUmVsZWFzZUFydGlmYWN0VGFvbk5hbWVzLFxuICApO1xuXG4gIC8qKlxuICAgKiBBbGwgcG9zc2libGUgbG9jYWwgcmVsZWFzZSB0eXBlcyBmb3IgdGFvblxuICAgKiBmb3IgTE9DQUwgcmVsZWFzZVxuICAgKi9cbiAgZXhwb3J0IHR5cGUgTG9jYWxSZWxlYXNlQXJ0aWZhY3RUYW9uID1cbiAgICB8ICdkb2NrZXItYmFja2VuZC1mcm9udGVuZC1hcHAnXG4gICAgfCAnZ2xvYmFsLWNsaS10b29sJ1xuICAgIHwgJ3ZzY29kZS1leHRlbnNpb24nO1xuXG4gIC8qKlxuICAgKiBPYmplY3Qgd2l0aCBhbGwgcG9zc2libGUgbG9jYWwgcmVsZWFzZSB0eXBlcyBmb3IgdGFvblxuICAgKiBpbnNpZGUgTE9DQUwgcmVsZWFzZVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IExvY2FsUmVsZWFzZUFydGlmYWN0VGFvbk5hbWVzID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgRE9DS0VSX0JBQ0tFTkRfRlJPTlRFTkRfQVBQOlxuICAgICAgJ2RvY2tlci1iYWNrZW5kLWZyb250ZW5kLWFwcCcgYXMgTG9jYWxSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICAgIC8qKlxuICAgICAqIEdsb2JhbCBDTEkgdG9vbFxuICAgICAqL1xuICAgIEdMT0JBTF9DTElfVE9PTDogJ2dsb2JhbC1jbGktdG9vbCcgYXMgTG9jYWxSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICAgIC8qKlxuICAgICAqIFZpc3VhbCBTdHVkaW8gQ29kZSBleHRlbnNpb25cbiAgICAgKi9cbiAgICBWU0NPREVfRVhURU5TSU9OOiAndnNjb2RlLWV4dGVuc2lvbicgYXMgTG9jYWxSZWxlYXNlQXJ0aWZhY3RUYW9uLFxuICB9KTtcblxuICAvKipcbiAgICogQXJyYXkgd2l0aCBhbGwgcG9zc2libGUgbG9jYWwgcmVsZWFzZSB0eXBlcyBmb3IgdGFvblxuICAgKiBpbnNpZGUgTE9DQUwgcmVsZWFzZVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IExvY2FsUmVsZWFzZUFydGlmYWN0VGFvbk5hbWVzQXJyID0gT2JqZWN0LnZhbHVlcyhcbiAgICBMb2NhbFJlbGVhc2VBcnRpZmFjdFRhb25OYW1lcyxcbiAgKTtcblxuICBleHBvcnQgdHlwZSBSZWxlYXNlVmVyc2lvblR5cGUgPSAnbWFqb3InIHwgJ21pbm9yJyB8ICdwYXRjaCc7XG4gIGV4cG9ydCB0eXBlIFByZVJlbGVhc2VWZXJzaW9uVGFnID0gJ2FscGhhJyB8ICdiZXRhJyB8ICdyYycgfCAnbmV4dCc7XG4gIGV4cG9ydCBjb25zdCBOcG1TcGVjaWFsVmVyc2lvbnMgPSBbXG4gICAgJ2xhdGVzdCcsXG4gICAgJ25leHQnLFxuICAgICdiZXRhJyxcbiAgICAnYWxwaGEnLFxuICAgICdyYycsXG4gICAgJ2x0cycsXG4gIF07XG5cblxuXG4gIGV4cG9ydCB0eXBlIFBST0dSRVNTX0RBVEFfVFlQRSA9ICdpbmZvJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZXZlbnQnO1xuXG5cblxuICBleHBvcnQgdHlwZSBFbnZpcm9ubWVudE5hbWUgPVxuICAgIHwgJ2xvY2FsJ1xuICAgIHwgJ3N0YXRpYydcbiAgICB8ICdkZXYnXG4gICAgfCAnc3RhZ2UnXG4gICAgfCAncHJvZCdcbiAgICB8ICdvbmxpbmUnXG4gICAgfCAndGVzdCdcbiAgICB8ICdxYSdcbiAgICB8ICdjdXN0b20nO1xuXG5cblxuICBleHBvcnQgdHlwZSBQVVNIVFlQRSA9XG4gICAgfCAnZmVhdCdcbiAgICB8ICdjaG9yZSdcbiAgICB8ICdmZWF0dXJlJ1xuICAgIHwgJ3JlZmFjdG9yJ1xuICAgIHwgJ3BlcmYnXG4gICAgfCAnc3R5bGVzJ1xuICAgIHwgJ2NpJ1xuICAgIHwgJ2J1aWxkJ1xuICAgIHwgJ2ZpeCdcbiAgICB8ICdidWdmaXgnXG4gICAgfCAncmVsZWFzZSdcbiAgICB8ICdkb2NzJztcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgdHlwZSBVSUZyYW1ld29yayA9ICdib290c3RyYXAnIHwgJ21hdGVyaWFsJyB8ICdpb25pYyc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEZyYW1ld29ya1ZlcnNpb24gPVxuICAgIHwgJ3YxJ1xuICAgIHwgJ3YyJ1xuICAgIHwgJ3YzJ1xuICAgIHwgJ3Y0J1xuICAgIHwgJ3YxNidcbiAgICB8ICd2MTgnXG4gICAgfCAndjIwJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgQ3V0YWJsZUZpbGVFeHQgPVxuICAgIHwgJ3Njc3MnXG4gICAgfCAnY3NzJ1xuICAgIHwgJ2xlc3MnXG4gICAgfCAnc2FzcydcbiAgICB8ICdodG1sJ1xuICAgIHwgJ3RzJ1xuICAgIHwgJ3RzeCdcbiAgICB8ICdqcyc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEltYWdlRmlsZUV4dGVuc2lvbiA9ICdqcGcnIHwgJ2pwZWcnIHwgJ3BuZycgfCAnc3ZnJztcbiAgZXhwb3J0IGNvbnN0IEltYWdlRmlsZUV4dGVuc2lvbkFycjogQ29yZU1vZGVscy5JbWFnZUZpbGVFeHRlbnNpb25bXSA9IFtcbiAgICAnanBnJyxcbiAgICAnanBlZycsXG4gICAgJ3BuZycsXG4gICAgJ3N2ZycsXG4gIF07XG5cblxuXG4gIGV4cG9ydCB0eXBlIEZpbGVFeHRlbnNpb24gPVxuICAgIHwgJ2pzb24nXG4gICAgfCAnaHRtbCdcbiAgICB8IEltYWdlRmlsZUV4dGVuc2lvblxuICAgIHwgJ3R4dCdcbiAgICB8ICdtZCdcbiAgICB8IEN1dGFibGVGaWxlRXh0O1xuXG5cblxuICBleHBvcnQgdHlwZSBIdHRwTWV0aG9kID1cbiAgICB8ICdnZXQnXG4gICAgfCAncG9zdCdcbiAgICB8ICdwdXQnXG4gICAgfCAnZGVsZXRlJ1xuICAgIHwgJ3BhdGNoJ1xuICAgIHwgJ2hlYWQnXG4gICAgfCAnanNvbnAnO1xuXG5cblxuICBleHBvcnQgdHlwZSBQYXJhbVR5cGUgPSAnUGF0aCcgfCAnUXVlcnknIHwgJ0Nvb2tpZScgfCAnSGVhZGVyJyB8ICdCb2R5JztcblxuXG5cbiAgZXhwb3J0IHR5cGUgVHNVc2FnZSA9ICdpbXBvcnQnIHwgJ2V4cG9ydCc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEJhc2VQcm9qZWN0VHlwZSA9XG4gICAgfCAndHlwZXNjcmlwdCdcbiAgICB8ICdhbmd1bGFyJ1xuICAgIHwgJ2FuZ3VsYXItbGliJ1xuICAgIHwgJ3Vua25vdydcbiAgICB8ICd1bmtub3ctbnBtLXByb2plY3QnO1xuXG5cblxuICBleHBvcnQgY29uc3QgQmFzZVByb2plY3RUeXBlQXJyID0gW1xuICAgICd0eXBlc2NyaXB0JyxcbiAgICAnYW5ndWxhcicsXG4gICAgJ2FuZ3VsYXItbGliJyxcbiAgICAndW5rbm93JyxcbiAgICAndW5rbm93LW5wbS1wcm9qZWN0JyxcbiAgXTtcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHRoZXJlIHdpbGwgYmUgb25seSBvbmUgbGliIHR5cGUgXCJpc29tb3JwaGljLWxpYlwiXG4gICAqL1xuICBleHBvcnQgdHlwZSBMaWJUeXBlID1cbiAgICB8IEJhc2VQcm9qZWN0VHlwZVxuICAgIHwgJ2lzb21vcnBoaWMtbGliJyAvLyArIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhpbWVncmlzL2FuZ3VsYXItZWxlY3Ryb25cbiAgICB8ICdjb250YWluZXInXG4gICAgfCAnZG9ja2VyJ1xuICAgIHwgJ3ZzY29kZS1leHQnXG4gICAgfCAnY2hyb21lLWV4dCdcbiAgICB8ICd1bmtub3ctbnBtLXByb2plY3QnO1xuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCB0eXBlIE5ld0ZhY3RvcnlUeXBlID0gTGliVHlwZSB8ICdtb2RlbCcgfCAnc2luZ2xlLWZpbGUtcHJvamVjdCc7XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IHR5cGUgQ29yZUxpYkNhdGVnb3J5ID0gTGliVHlwZSB8ICdjb21tb24nO1xuXG5cblxuICBleHBvcnQgdHlwZSBGaWxlRXZlbnQgPSAnY3JlYXRlZCcgfCAnY2hhbmdlZCcgfCAncmVtb3ZlZCcgfCAncmVuYW1lJztcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgdHlwZSBPdXRGb2xkZXIgPSAnZGlzdCcgfCAnYnJvd3Nlcic7XG5cblxuXG4gIGV4cG9ydCB0eXBlIERhdGFiYXNlVHlwZSA9ICc6aW5tZW1vcnknIHwgJ215c3FsJyB8ICdzcWxqcyc7XG5cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkZWRCYWNrZW5kRmlsZSB7XG4gICAgZGF0YTpcbiAgICAgIHwgYW55XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgZW5jb2Rpbmc6IHN0cmluZztcbiAgICBtZDU6IHN0cmluZztcbiAgICB0ZW1wRmlsZVBhdGg6IHN0cmluZztcbiAgICBtaW1ldHlwZTogQ29udGVudFR5cGU7XG4gICAgbXY6IChwYXRoLCBjYWxsYmFjaykgPT4gYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0cnVuY2F0ZWQ6IGJvb2xlYW47XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVPcHRpb25zIHtcbiAgICAvKiogRXh0cmFjdCBzdHJpbmcgZnJvbSBsaW5lICovXG4gICAgZXh0cmFjdEZyb21MaW5lPzogKHN0cmluZyB8IEZ1bmN0aW9uKVtdO1xuICAgIC8qKlxuICAgICAqIE1vZGlmeSBvdXRwdXQgbGluZSBieSBsaW5lXG4gICAgICovXG4gICAgb3V0cHV0TGluZVJlcGxhY2U/OiAob3V0cHV0TGluZTogc3RyaW5nKSA9PiBzdHJpbmc7XG4gICAgcmVzb2x2ZVByb21pc2VNc2c/OiB7XG4gICAgICBzdGRvdXQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgIHN0ZGVycj86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIH07XG4gICAgcmVzb2x2ZVByb21pc2VNc2dDYWxsYmFjaz86IHtcbiAgICAgIHN0ZG91dD86ICgpID0+IGFueTtcbiAgICAgIHN0ZGVycj86ICgpID0+IGFueTtcbiAgICB9O1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBkZXRhY2g/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRyeSBjb21tYW5kIGFnYWluIGFmdGVyIGZhaWwgYWZ0ZXIgbiBtaWxpc2Vjb25kc1xuICAgICAqL1xuICAgIHRyeUFnYWluV2hlbkZhaWxBZnRlcj86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiAgVE9ETyBATEFTVCBpbXBsZW1lbnQgdGhpc1xuICAgICAqXG4gICAgICogT3V0cHV0IGZyb20gcHJvY2Vzc2Ugd2l0aCB0aGlzIGtleVxuICAgICAqIHdpbGwgbm90IGJlIGRpc3BsYXllZCB0d2ljZSB3aGVuXG4gICAgICogMiBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcgYXQgdGhlIHNhbWUgdGltZVxuICAgICAqL1xuICAgIHNpbWlsYXJQcm9jZXNzS2V5Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVXNlIGJpZyBidWZmZXIgZm9yIGJpZyB3ZWJwYWNrIGxvZ3NcbiAgICAgKi9cbiAgICBiaWdnZXJCdWZmZXI/OiBib29sZWFuO1xuICAgIGFza1RvVHJ5QWdhaW5PbkVycm9yPzogYm9vbGVhbjtcbiAgICBleGl0T25FcnJvckNhbGxiYWNrPzogKGNvZGU6IG51bWJlcikgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBGcm9tIGRpc3BsYXlpbmcgaW4gY29uc29sZVxuICAgICAqL1xuICAgIGhpZGVPdXRwdXQ/OiB7XG4gICAgICBzdGRvdXQ/OiBib29sZWFuO1xuICAgICAgc3RkZXJyPzogYm9vbGVhbjtcbiAgICAgIGFjY2VwdEFsbEV4aXRDb2RlQXNTdWNjZXNzPzogYm9vbGVhbjtcbiAgICB9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBSdW5PcHRpb25zIGV4dGVuZHMgRXhlY3V0ZU9wdGlvbnMge1xuICAgIHNob3dDb21tYW5kPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNob3cgcHJvY2VzcyBvdXRwdXRcbiAgICAgKi9cbiAgICBvdXRwdXQ/OiBib29sZWFuO1xuXG4gICAgc2lsZW5jZT86IGJvb2xlYW47XG4gICAgc3RkaW8/OiBhbnk7XG5cblxuICAgIGN3ZD86IHN0cmluZztcbiAgfVxuXG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IG1pbWVUeXBlcyA9IHtcbiAgICAnLmFhYyc6ICdhdWRpby9hYWMnLFxuICAgICcuYWJ3JzogJ2FwcGxpY2F0aW9uL3gtYWJpd29yZCcsXG4gICAgJy5hcmMnOiAnYXBwbGljYXRpb24veC1mcmVlYXJjJyxcbiAgICAnLmF2aSc6ICd2aWRlby94LW1zdmlkZW8nLFxuICAgICcuYXp3JzogJ2FwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2snLFxuICAgICcuYmluJzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgJy5ibXAnOiAnaW1hZ2UvYm1wJyxcbiAgICAnLmJ6JzogJ2FwcGxpY2F0aW9uL3gtYnppcCcsXG4gICAgJy5iejInOiAnYXBwbGljYXRpb24veC1iemlwMicsXG4gICAgJy5jc2gnOiAnYXBwbGljYXRpb24veC1jc2gnLFxuICAgICcuY3NzJzogJ3RleHQvY3NzJyxcbiAgICAnLmNzdic6ICd0ZXh0L2NzdicsXG4gICAgJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAnLmRvY3gnOlxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAnLmVvdCc6ICdhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdCcsXG4gICAgJy5lcHViJzogJ2FwcGxpY2F0aW9uL2VwdWIremlwJyxcbiAgICAnLmd6JzogJ2FwcGxpY2F0aW9uL2d6aXAnLFxuICAgICcuZ2lmJzogJ2ltYWdlL2dpZicsXG4gICAgJy5odG0nOiAndGV4dC9odG1sJyxcbiAgICAnLmh0bWwnOiAndGV4dC9odG1sJyxcbiAgICAnLmljbyc6ICdpbWFnZS92bmQubWljcm9zb2Z0Lmljb24nLFxuICAgICcuaWNzJzogJ3RleHQvY2FsZW5kYXInLFxuICAgICcuamFyJzogJ2FwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZScsXG4gICAgJy5qcGVnJzogJ2ltYWdlL2pwZWcnLFxuICAgICcuanBnJzogJ2ltYWdlL2pwZWcnLFxuICAgICcuanMnOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgICAnLmpzb24nOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgJy5qc29ubGQnOiAnYXBwbGljYXRpb24vbGQranNvbicsXG4gICAgJy5taWQnOiAnYXBwbGljYXRpb24vbWlkaScsXG4gICAgJy5taWRpJzogJ2FwcGxpY2F0aW9uL21pZGknLFxuICAgICcubWpzJzogJ3RleHQvamF2YXNjcmlwdCcsXG4gICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgJy5tcDQnOiAndmlkZW8vbXA0JyxcbiAgICAnLm1wZWcnOiAndmlkZW8vbXBlZycsXG4gICAgJy5tcGtnJzogJ2FwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sJyxcbiAgICAnLm9kcCc6ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbicsXG4gICAgJy5vZHMnOiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCcsXG4gICAgJy5vZHQnOiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0JyxcbiAgICAnLm9nYSc6ICdhdWRpby9vZ2cnLFxuICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgJy5vZ3YnOiAndmlkZW8vb2dnJyxcbiAgICAnLm9neCc6ICdhcHBsaWNhdGlvbi9vZ2cnLFxuICAgICcub3B1cyc6ICdhdWRpby9vcHVzJyxcbiAgICAnLm90Zic6ICdmb250L290ZicsXG4gICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAnLnBkZic6ICdhcHBsaWNhdGlvbi9wZGYnLFxuICAgICcucGhwJzogJ2FwcGxpY2F0aW9uL3BocCcsXG4gICAgJy5wcHQnOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFxuICAgICcucHB0eCc6XG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgJy5yYXInOiAnYXBwbGljYXRpb24vdm5kLnJhcicsXG4gICAgJy5ydGYnOiAnYXBwbGljYXRpb24vcnRmJyxcbiAgICAnLnNoJzogJ2FwcGxpY2F0aW9uL3gtc2gnLFxuICAgICcuc3ZnJzogJ2ltYWdlL3N2Zyt4bWwnLFxuICAgICcuc3dmJzogJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJyxcbiAgICAnLnRhcic6ICdhcHBsaWNhdGlvbi94LXRhcicsXG4gICAgJy50aWYnOiAnaW1hZ2UvdGlmZicsXG4gICAgJy50aWZmJzogJ2ltYWdlL3RpZmYnLFxuICAgICcudHMnOiAndmlkZW8vbXAydCcsXG4gICAgJy50dGYnOiAnZm9udC90dGYnLFxuICAgICcudHh0JzogJ3RleHQvcGxhaW4nLFxuICAgICcudnNkJzogJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbycsXG4gICAgJy53YXYnOiAnYXVkaW8vd2F2JyxcbiAgICAnLndlYmEnOiAnYXVkaW8vd2VibScsXG4gICAgJy53ZWJtJzogJ3ZpZGVvL3dlYm0nLFxuICAgICcud2VicCc6ICdpbWFnZS93ZWJwJyxcbiAgICAnLndvZmYnOiAnZm9udC93b2ZmJyxcbiAgICAnLndvZmYyJzogJ2ZvbnQvd29mZjInLFxuICAgICcueGh0bWwnOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcbiAgICAnLnhscyc6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICcueGxzeCc6XG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgICcueG1sJzogJ2FwcGxpY2F0aW9uL3htbCcsXG4gICAgJy54dWwnOiAnYXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbCcsXG4gICAgJy56aXAnOiAnYXBwbGljYXRpb24vemlwJyxcbiAgICAnLjNncCc6ICd2aWRlby8zZ3BwJyxcbiAgICAnLjNnMic6ICd2aWRlby8zZ3BwMicsXG4gICAgJy43eic6ICdhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIGV4cG9ydCB0eXBlIENvbnRlbnRUeXBlS2V5cyA9IGtleW9mIHR5cGVvZiBtaW1lVHlwZXM7XG4gIGV4cG9ydCB0eXBlIENvbnRlbnRUeXBlID1cbiAgICB8ICh0eXBlb2YgbWltZVR5cGVzKVtDb250ZW50VHlwZUtleXNdXG4gICAgfCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gIHR5cGUgQ29udGVudFR5cGVfID0gQ29udGVudFR5cGU7XG5cbiAgLyoqXG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvTUlNRV90eXBlc1xuICAgKi9cbiAgZXhwb3J0IHR5cGUgTWVkaWFUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ2ltYWdlJ1xuICAgIHwgJ2F1ZGlvJ1xuICAgIHwgJ2ZvbnQnXG4gICAgfCAndmlkZW8nXG4gICAgfCAnYXBwbGljYXRpb24nXG4gICAgfCAnbXVsdGlwYXJ0J1xuICAgIHwgJ21lc3NhZ2UnXG4gICAgfCAnbW9kZWwnO1xuXG4gIGV4cG9ydCBjb25zdCBNZWRpYVR5cGVBbGxBcnIgPSBbXG4gICAgJ3RleHQnLFxuICAgICdpbWFnZScsXG4gICAgJ2F1ZGlvJyxcbiAgICAndmlkZW8nLFxuICAgICdmb250JyxcbiAgICAnYXBwbGljYXRpb24nLFxuICAgICdtdWx0aXBhcnQnLFxuICAgICdtZXNzYWdlJyxcbiAgICAnbW9kZWwnLFxuICBdIGFzIE1lZGlhVHlwZVtdO1xuXG4gIGV4cG9ydCB0eXBlIE1pbWVUeXBlID0ga2V5b2YgdHlwZW9mIG1pbWVUeXBlcztcbiAgZXhwb3J0IGNvbnN0IE1pbWVUeXBlc09iaiA9IG1pbWVUeXBlcztcblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBNYW5pZmVzdEljb24ge1xuICAgIHNyYzogc3RyaW5nOyAvLyBcImFzc2V0cy9pY29ucy9pY29uLTk2eDk2LnBuZ1wiLFxuICAgIHNpemVzOiBzdHJpbmc7IC8vIFwiOTZ4OTZcIixcbiAgICB0eXBlOiBzdHJpbmc7IC8vIFwiaW1hZ2UvcG5nXCIsXG4gICAgcHVycG9zZTogc3RyaW5nOyAvLyBcIm1hc2thYmxlIGFueVwiXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFB3YU1hbmlmZXN0IHtcbiAgICBuYW1lOiBzdHJpbmc7IC8vICBcImFwcFwiLFxuICAgIHNob3J0X25hbWU6IHN0cmluZzsgLy8gIFwiYXBwXCIsXG4gICAgdGhlbWVfY29sb3I6IHN0cmluZzsgLy8gXCIjMTk3NmQyXCIsXG4gICAgYmFja2dyb3VuZF9jb2xvcjogc3RyaW5nOyAvLyAgXCIjZmFmYWZhXCIsXG4gICAgZGlzcGxheTogJ3N0YW5kYWxvbmUnO1xuICAgIHNjb3BlOiBzdHJpbmc7IC8vIFwiLi9cIixcbiAgICBzdGFydF91cmw6IHN0cmluZzsgLy8gIFwic3RhcnRfdXJsXCI6IFwiLi9cIiwgPT4gXCJzdGFydF91cmxcIiBcImh0dHBzOi8vZGFyZWtmNzcuZ2l0aHViLmlvL2JzNC1icmVha3BvaW50L1wiXG4gICAgaWNvbnM6IE1hbmlmZXN0SWNvbltdO1xuICB9XG5cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVlNDb2RlU2V0dGluZ3Mge1xuICAgICdmaWxlcy5leGNsdWRlJzogeyBbZmlsZXM6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgICAnd29ya2JlbmNoLmNvbG9yVGhlbWUnOiAnRGVmYXVsdCBMaWdodCsnIHwgJ0tpbWJpZSBEYXJrJztcbiAgICAnd29ya2JlbmNoLmNvbG9yQ3VzdG9taXphdGlvbnMnOiB7XG4gICAgICAnYWN0aXZpdHlCYXIuYmFja2dyb3VuZCc/OiBzdHJpbmc7XG4gICAgICAnYWN0aXZpdHlCYXIuZm9yZWdyb3VuZCc/OiBzdHJpbmc7XG4gICAgICAnc3RhdHVzQmFyLmJhY2tncm91bmQnPzogc3RyaW5nO1xuICAgIH07XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBTaXplIHtcbiAgICB3OiBudW1iZXI7XG4gICAgaDogbnVtYmVyO1xuICB9XG5cblxuXG4gIGludGVyZmFjZSBHbG9iYWxOcG1EZXBlbmRlbmN5IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaW5zdGFsbE5hbWU/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZyB8IG51bWJlcjtcbiAgfVxuXG4gIGludGVyZmFjZSBHbG9iYWxDb21tYW5kTGluZVByb2dyYW1EZXBlbmRlbmN5IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgd2Vic2l0ZTogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBHbG9iYWxEZXBlbmRlbmNpZXMge1xuICAgIG5wbT86IEdsb2JhbE5wbURlcGVuZGVuY3lbXTtcbiAgICBwcm9ncmFtcz86IEdsb2JhbENvbW1hbmRMaW5lUHJvZ3JhbURlcGVuZGVuY3lbXTtcbiAgfVxuXG5cblxuICBpbnRlcmZhY2UgQW5ndWxhckNvbXBpbGVyT3B0aW9ucyB7XG4gICAgZnVsbFRlbXBsYXRlVHlwZUNoZWNrOiBib29sZWFuO1xuICAgIHN0cmljdEluamVjdGlvblBhcmFtZXRlcnM6IGJvb2xlYW47XG4gICAgY29tcGlsYXRpb25Nb2RlOiBzdHJpbmc7XG4gICAgcHJlc2VydmVTeW1saW5rczogYm9vbGVhbjtcbiAgICBlbmFibGVJdnk6IGJvb2xlYW47XG4gIH1cblxuICBpbnRlcmZhY2UgQ29tcGlsZXJPcHRpb25zIHtcbiAgICBiYXNlVXJsOiBzdHJpbmc7XG4gICAgb3V0RGlyOiBzdHJpbmc7XG4gICAgc291cmNlTWFwOiBib29sZWFuO1xuICAgIGRlY2xhcmF0aW9uOiBib29sZWFuO1xuICAgIHN0cmljdE51bGxDaGVja3M6IGJvb2xlYW47XG4gICAgZG93bmxldmVsSXRlcmF0aW9uOiBib29sZWFuO1xuICAgIGV4cGVyaW1lbnRhbERlY29yYXRvcnM6IGJvb2xlYW47XG4gICAgZW1pdERlY29yYXRvck1ldGFkYXRhOiBib29sZWFuO1xuICAgIGVzTW9kdWxlSW50ZXJvcDogYm9vbGVhbjtcbiAgICBtb2R1bGU6IHN0cmluZztcbiAgICBtb2R1bGVSZXNvbHV0aW9uOiBzdHJpbmc7XG4gICAgaW1wb3J0SGVscGVyczogYm9vbGVhbjtcbiAgICBza2lwTGliQ2hlY2s6IGJvb2xlYW47XG4gICAgdGFyZ2V0OiBzdHJpbmc7XG4gICAgdHlwZVJvb3RzOiBzdHJpbmdbXTtcbiAgICB0eXBlczogc3RyaW5nW107XG4gICAgbGliOiBzdHJpbmdbXTtcbiAgICBwYXRoczogeyBbZnVsbFBhY2thZ2VOYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuICAgIHVzZURlZmluZUZvckNsYXNzRmllbGRzOiBib29sZWFuO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgVHNDb25maWdKc29uIHtcbiAgICBleHRlbmRzOiBzdHJpbmc7XG4gICAgZXhjbHVkZTogc3RyaW5nW107XG4gICAgY29tcGlsZU9uU2F2ZTogYm9vbGVhbjtcbiAgICBjb21waWxlck9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucztcbiAgICBhbmd1bGFyQ29tcGlsZXJPcHRpb25zOiBBbmd1bGFyQ29tcGlsZXJPcHRpb25zO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBUc2NDb21waWxlT3B0aW9ucyB7XG4gICAgY3dkOiBzdHJpbmc7XG4gICAgd2F0Y2g/OiBib29sZWFuO1xuICAgIG91dERpcj86ICdkaXN0JztcbiAgICBnZW5lcmF0ZURlY2xhcmF0aW9ucz86IGJvb2xlYW47XG4gICAgdHNFeGU/OiBzdHJpbmc7XG4gICAgZGlhZ25vc3RpY3M/OiBib29sZWFuO1xuICAgIGhpZGVFcnJvcnM/OiBib29sZWFuO1xuICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgfVxuXG5cblxuICBleHBvcnQgaW50ZXJmYWNlIFRhb25Kc29uIHtcbiAgICB0eXBlOiBDb3JlTW9kZWxzLkxpYlR5cGU7XG4gICAgdmVyc2lvbj86IENvcmVNb2RlbHMuRnJhbWV3b3JrVmVyc2lvbjtcbiAgICBzbWFydENvbnRhaW5lckJ1aWxkVGFyZ2V0Pzogc3RyaW5nO1xuICAgIHNtYXJ0PzogYm9vbGVhbjtcbiAgICBtb25vcmVwbz86IGJvb2xlYW47XG4gICAgbGliUmVsZWFzZU9wdGlvbnM6IHtcbiAgICAgIGNsaUJ1aWxkT2JzY3VyZT86IGJvb2xlYW47XG4gICAgICBjbGlCdWlsZFVnbGlmeT86IGJvb2xlYW47XG4gICAgICBjbGlCdWlsZE5vRHRzPzogYm9vbGVhbjtcbiAgICAgIGNsaUJ1aWxkSW5jbHVkZU5vZGVNb2R1bGVzPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIHByb2plY3QgaXMgdGVtcGxhdGUgZm9yIG90aGVyIHByb2plY3RcbiAgICAgKi9cbiAgICBpc0NvcmVQcm9qZWN0OiBib29sZWFuO1xuICAgIHNjcmlwdHM/OiB7IFtzY3JpcHQgaW4gc3RyaW5nXTogc3RyaW5nIH07XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbGljZW5zZT86IHN0cmluZztcbiAgICBwcml2YXRlPzogYm9vbGVhbjtcbiAgICBhdXRob3I/OiBzdHJpbmc7XG4gICAgaG9tZXBhZ2U/OiBzdHJpbmc7XG4gICAgb3ZlcnJpZGVkOiB7XG4gICAgICBkZXBlbmRlbmNpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICB9O1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi9jb3JlLW1vZGVscy50cyJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL2NvcmUtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sS0FBVyxVQUFVLENBa21CMUI7QUFsbUJELFdBQWlCLFVBQVU7SUEwQ1osNkJBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBS3BELDZCQUFrQixHQUFHO1FBQ2hDLFFBQVE7UUFDUixNQUFNO1FBQ04sTUFBTTtRQUNOLE9BQU87UUFDUCxJQUFJO1FBQ0osS0FBSztLQUNOLENBQUM7SUFPRjs7T0FFRztJQUNVLDBCQUFlLEdBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1Qzs7O1dBR0c7UUFDSCxFQUFFLEVBQUcsSUFBSTtRQUVUOztXQUVHO1FBQ0gsU0FBUyxFQUFHLFdBQVc7UUFFdkI7O1dBRUc7UUFDSCxHQUFHLEVBQUcsS0FBSztRQUVYOztXQUVHO1FBQ0gsS0FBSyxFQUFFLE9BQU87UUFFZDs7V0FFRztRQUNILElBQUksRUFBRyxNQUFNO1FBRWI7O1dBRUc7UUFDSCxJQUFJLEVBQUUsTUFBTTtRQUVaOztXQUVHO1FBQ0gsRUFBRSxFQUFHLElBQUk7UUFFVDs7V0FFRztRQUNILE9BQU8sRUFBRyxTQUFTO1FBRW5COztXQUVHO1FBQ0gsR0FBRyxFQUFHLEtBQUs7UUFFWDs7V0FFRztRQUNILE9BQU8sRUFBRyxTQUFTO1FBRW5COztXQUVHO1FBQ0gsSUFBSSxFQUFHLE1BQU07UUFFYjs7V0FFRztRQUNILEVBQUUsRUFBRSxJQUFJO1FBRVI7O1dBRUc7UUFDSCxRQUFRLEVBQUcsVUFBVTtLQUN0QixDQUFDLENBQUM7SUF1RFUsZ0NBQXFCLEdBQW9DO1FBQ3BFLEtBQUs7UUFDTCxNQUFNO1FBQ04sS0FBSztRQUNMLEtBQUs7S0FDTixD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RSwwQkFBZSxHQUFHO1FBQzdCLE1BQU07UUFDTixPQUFPO1FBQ1AsT0FBTztRQUNQLE9BQU87UUFDUCxNQUFNO1FBQ04sYUFBYTtRQUNiLFdBQVc7UUFDWCxTQUFTO1FBQ1QsT0FBTztLQUNPLENBQUM7SUFHSix1QkFBWSxHQUFHLFdBQUEsU0FBUyxDQUFDO0FBMEh4QyxDQUFDLEVBbG1CZ0IsVUFBVSxLQUFWLFVBQVUsUUFrbUIxQjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0RBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmltcG9ydCB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcblxuZXhwb3J0IG5hbWVzcGFjZSBDb3JlTW9kZWxzIHtcblxuICBleHBvcnQgdHlwZSBQYWNrYWdlID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIGluc3RhbGxUeXBlPzogSW5zdGFsYXRpb25UeXBlO1xuICB9O1xuXG5cblxuICBleHBvcnQgdHlwZSBOcG1JbnN0YWxsT3B0aW9ucyA9IHtcbiAgICBwa2c/OiBDb3JlTW9kZWxzLlBhY2thZ2U7XG4gICAgLyoqXG4gICAgICogZmFsc2UgYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIHNpbGVudD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogZmFsc2UgYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIHVzZVlhcm4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIGZhbHNlIGJ5IGRlZmF1bHRcbiAgICAgKi9cbiAgICBmb3JjZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUmVhc29uIGZvciBpbnN0YWxsaW5nIHBhY2thZ2UocylcbiAgICAgKi9cbiAgICByZWFzb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogdHJ1ZSBieSBkZWZhdWx0XG4gICAgICovXG4gICAgcmVtb3ZlWWFybk9yUGFja2FnZUpzb25Mb2NrPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBmYWxzZSBieSBkZWZhdWx0XG4gICAgICovXG4gICAgZ2VuZXJhdGVZYXJuT3JQYWNrYWdlSnNvbkxvY2s/OiBib29sZWFuO1xuICB9O1xuXG5cblxuICBleHBvcnQgdHlwZSBJbnN0YWxhdGlvblR5cGUgPSAnLWcnIHwgJy0tc2F2ZScgfCAnLS1zYXZlLWRldicgfCAncmVtb3ZlJztcblxuICBleHBvcnQgY29uc3QgSW5zdGFsYXRpb25UeXBlQXJyID0gWyctZycsICctLXNhdmUnLCAnLS1zYXZlLWRldiddO1xuXG5cbiAgZXhwb3J0IHR5cGUgUmVsZWFzZVZlcnNpb25UeXBlID0gJ21ham9yJyB8ICdtaW5vcicgfCAncGF0Y2gnO1xuICBleHBvcnQgdHlwZSBQcmVSZWxlYXNlVmVyc2lvblRhZyA9ICdhbHBoYScgfCAnYmV0YScgfCAncmMnIHwgJ25leHQnO1xuICBleHBvcnQgY29uc3QgTnBtU3BlY2lhbFZlcnNpb25zID0gW1xuICAgICdsYXRlc3QnLFxuICAgICduZXh0JyxcbiAgICAnYmV0YScsXG4gICAgJ2FscGhhJyxcbiAgICAncmMnLFxuICAgICdsdHMnLFxuICBdO1xuXG5cbiAgZXhwb3J0IHR5cGUgUFJPR1JFU1NfREFUQV9UWVBFID0gJ2luZm8nIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdldmVudCc7XG5cblxuXG4gIC8qKlxuICAgKiBBdmFpbGFibGUgYXBwbGljYXRpb24gZW52aXJvbm1lbnRzLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEVudmlyb25tZW50TmFtZSA9ICBPYmplY3QuZnJlZXplKHtcbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IGVudmlyb25tZW50LCB0eXBpY2FsbHkgZm9yIGFydGlmYWN0IHdpdGhvdXQgYXBwbGljYXRpb25cbiAgICAgKiBvciBmb3Igc3RvcmluZyBjb21tb24gZGF0YVxuICAgICAqL1xuICAgIF9fIDogJ19fJyxcblxuICAgIC8qKlxuICAgICAqIExvY2FsIGRldmVsb3BtZW50IGVudmlyb25tZW50LCB0eXBpY2FsbHkgdGhlIGRldmVsb3BlcidzIG1hY2hpbmUuXG4gICAgICovXG4gICAgTE9DQUxIT1NUIDogJ2xvY2FsaG9zdCcsXG5cbiAgICAvKipcbiAgICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCB1c2VkIGJ5IGVuZ2luZWVycyB0byBkZXBsb3kgYW5kIHRlc3QgbmV3IGZlYXR1cmVzLlxuICAgICAqL1xuICAgIERFViA6ICdkZXYnLFxuXG4gICAgLyoqXG4gICAgICogU3RhZ2luZyBlbnZpcm9ubWVudCB1c2VkIGZvciBmaW5hbCB2YWxpZGF0aW9ucyBiZWZvcmUgcHJvZHVjdGlvbi5cbiAgICAgKi9cbiAgICBTVEFHRSA6J3N0YWdlJyxcblxuICAgIC8qKlxuICAgICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgc2VydmluZyBsaXZlIHVzZXJzLlxuICAgICAqL1xuICAgIFBST0QgOiAncHJvZCcsXG5cbiAgICAvKipcbiAgICAgKiBBdXRvbWF0ZWQgdGVzdCBlbnZpcm9ubWVudCBmb3IgcnVubmluZyB1bml0LCBpbnRlZ3JhdGlvbiwgb3IgYXV0b21hdGVkIHRlc3RzLlxuICAgICAqL1xuICAgIFRFU1Q6ICd0ZXN0JyxcblxuICAgIC8qKlxuICAgICAqIFF1YWxpdHkgYXNzdXJhbmNlIGVudmlyb25tZW50IGRlc2lnbmF0ZWQgZm9yIG1hbnVhbCBhbmQgZXhwbG9yYXRvcnkgdGVzdGluZy5cbiAgICAgKi9cbiAgICBRQSA6ICdxYScsXG5cbiAgICAvKipcbiAgICAgKiBTYW5kYm94IGVudmlyb25tZW50IGZvciBleHBlcmltZW50aW5nIGFuZCBpbnRlZ3JhdGlvbiB3aXRob3V0IGFmZmVjdGluZyBvdGhlciBlbnZpcm9ubWVudHMuXG4gICAgICovXG4gICAgU0FOREJPWCA6ICdzYW5kYm94JyxcblxuICAgIC8qKlxuICAgICAqIFVzZXIgQWNjZXB0YW5jZSBUZXN0aW5nIGVudmlyb25tZW50IHdoZXJlIGNsaWVudHMgb3Igc3Rha2Vob2xkZXJzIHZhbGlkYXRlIHRoZSByZWxlYXNlIGNhbmRpZGF0ZS5cbiAgICAgKi9cbiAgICBVQVQgOiAndWF0JyxcblxuICAgIC8qKlxuICAgICAqIFByZS1wcm9kdWN0aW9uIGVudmlyb25tZW50LCBjbG9zZWx5IG1pcnJvcmluZyBwcm9kdWN0aW9uIGZvciBmaW5hbCB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIFBSRVBST0QgOiAncHJlcHJvZCcsXG5cbiAgICAvKipcbiAgICAgKiBEZW1vbnN0cmF0aW9uIGVudmlyb25tZW50IHNwZWNpZmljYWxseSBjb25maWd1cmVkIGZvciBjbGllbnQgcHJlc2VudGF0aW9ucyBhbmQgZGVtb3MuXG4gICAgICovXG4gICAgREVNTyA6ICdkZW1vJyxcblxuICAgIC8qKlxuICAgICAqIENvbnRpbnVvdXMgSW50ZWdyYXRpb24gZW52aXJvbm1lbnQgdXNlZCBieSBDSS9DRCBwaXBlbGluZXMgZm9yIGF1dG9tYXRlZCBidWlsZHMgYW5kIGRlcGxveW1lbnRzLlxuICAgICAqL1xuICAgIENJIDonY2knLFxuXG4gICAgLyoqXG4gICAgICogVHJhaW5pbmcgZW52aXJvbm1lbnQgZGVkaWNhdGVkIHRvIGludGVybmFsIHRlYW0gb25ib2FyZGluZyBhbmQgdHJhaW5pbmcgYWN0aXZpdGllcy5cbiAgICAgKi9cbiAgICBUUkFJTklORyA6ICd0cmFpbmluZycsXG4gIH0pO1xuXG4gIGV4cG9ydCB0eXBlIEVudmlyb25tZW50TmFtZVRhb24gPVxuICAodHlwZW9mIEVudmlyb25tZW50TmFtZSlba2V5b2YgdHlwZW9mIEVudmlyb25tZW50TmFtZV07XG5cblxuXG5cbiAgZXhwb3J0IHR5cGUgUFVTSFRZUEUgPVxuICAgIHwgJ2ZlYXQnXG4gICAgfCAnY2hvcmUnXG4gICAgfCAnZmVhdHVyZSdcbiAgICB8ICdyZWZhY3RvcidcbiAgICB8ICdwZXJmJ1xuICAgIHwgJ3N0eWxlcydcbiAgICB8ICdjaSdcbiAgICB8ICdidWlsZCdcbiAgICB8ICdmaXgnXG4gICAgfCAnYnVnZml4J1xuICAgIHwgJ3JlbGVhc2UnXG4gICAgfCAnZG9jcyc7XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IHR5cGUgVUlGcmFtZXdvcmsgPSAnYm9vdHN0cmFwJyB8ICdtYXRlcmlhbCcgfCAnaW9uaWMnO1xuXG5cblxuICBleHBvcnQgdHlwZSBGcmFtZXdvcmtWZXJzaW9uID1cbiAgICB8ICd2MSdcbiAgICB8ICd2MidcbiAgICB8ICd2MydcbiAgICB8ICd2NCdcbiAgICB8ICd2MTYnXG4gICAgfCAndjE4J1xuICAgIHwgJ3YyMCc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEN1dGFibGVGaWxlRXh0ID1cbiAgICB8ICdzY3NzJ1xuICAgIHwgJ2NzcydcbiAgICB8ICdsZXNzJ1xuICAgIHwgJ3Nhc3MnXG4gICAgfCAnaHRtbCdcbiAgICB8ICd0cydcbiAgICB8ICd0c3gnXG4gICAgfCAnanMnO1xuXG5cblxuICBleHBvcnQgdHlwZSBJbWFnZUZpbGVFeHRlbnNpb24gPSAnanBnJyB8ICdqcGVnJyB8ICdwbmcnIHwgJ3N2Zyc7XG4gIGV4cG9ydCBjb25zdCBJbWFnZUZpbGVFeHRlbnNpb25BcnI6IENvcmVNb2RlbHMuSW1hZ2VGaWxlRXh0ZW5zaW9uW10gPSBbXG4gICAgJ2pwZycsXG4gICAgJ2pwZWcnLFxuICAgICdwbmcnLFxuICAgICdzdmcnLFxuICBdO1xuXG5cblxuICBleHBvcnQgdHlwZSBGaWxlRXh0ZW5zaW9uID1cbiAgICB8ICdqc29uJ1xuICAgIHwgJ2h0bWwnXG4gICAgfCBJbWFnZUZpbGVFeHRlbnNpb25cbiAgICB8ICd0eHQnXG4gICAgfCAnbWQnXG4gICAgfCBDdXRhYmxlRmlsZUV4dDtcblxuXG5cbiAgZXhwb3J0IHR5cGUgSHR0cE1ldGhvZCA9XG4gICAgfCAnZ2V0J1xuICAgIHwgJ3Bvc3QnXG4gICAgfCAncHV0J1xuICAgIHwgJ2RlbGV0ZSdcbiAgICB8ICdwYXRjaCdcbiAgICB8ICdoZWFkJ1xuICAgIHwgJ2pzb25wJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgUGFyYW1UeXBlID0gJ1BhdGgnIHwgJ1F1ZXJ5JyB8ICdDb29raWUnIHwgJ0hlYWRlcicgfCAnQm9keSc7XG5cblxuXG4gIGV4cG9ydCB0eXBlIFRzVXNhZ2UgPSAnaW1wb3J0JyB8ICdleHBvcnQnO1xuXG5cblxuICBleHBvcnQgdHlwZSBCYXNlUHJvamVjdFR5cGUgPVxuICAgIHwgJ3R5cGVzY3JpcHQnXG4gICAgfCAnYW5ndWxhcidcbiAgICB8ICdhbmd1bGFyLWxpYidcbiAgICB8ICd1bmtub3duJ1xuICAgIHwgJ3Vua25vd24tbnBtLXByb2plY3QnO1xuXG5cblxuICBleHBvcnQgY29uc3QgQmFzZVByb2plY3RUeXBlQXJyID0gW1xuICAgICd0eXBlc2NyaXB0JyxcbiAgICAnYW5ndWxhcicsXG4gICAgJ2FuZ3VsYXItbGliJyxcbiAgICAndW5rbm93bicsXG4gICAgJ3Vua25vd24tbnBtLXByb2plY3QnLFxuICBdO1xuXG5cblxuICBleHBvcnQgdHlwZSBMaWJUeXBlID1cbiAgICB8IEJhc2VQcm9qZWN0VHlwZVxuICAgIHwgJ2lzb21vcnBoaWMtbGliJyAvLyArIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhpbWVncmlzL2FuZ3VsYXItZWxlY3Ryb25cbiAgICB8ICdjb250YWluZXInXG4gICAgfCAndW5rbm93bi1ucG0tcHJvamVjdCc7XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IHR5cGUgTmV3RmFjdG9yeVR5cGUgPSBMaWJUeXBlIHwgJ21vZGVsJyB8ICdzaW5nbGUtZmlsZS1wcm9qZWN0JztcblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgdHlwZSBDb3JlTGliQ2F0ZWdvcnkgPSBMaWJUeXBlIHwgJ2NvbW1vbic7XG5cblxuXG4gIGV4cG9ydCB0eXBlIEZpbGVFdmVudCA9ICdjcmVhdGVkJyB8ICdjaGFuZ2VkJyB8ICdyZW1vdmVkJyB8ICdyZW5hbWUnO1xuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCB0eXBlIE91dEZvbGRlciA9ICdkaXN0JyB8ICdicm93c2VyJztcblxuXG5cbiAgZXhwb3J0IHR5cGUgRGF0YWJhc2VUeXBlID0gJzppbm1lbW9yeScgfCAnbXlzcWwnIHwgJ3NxbGpzJztcblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBVcGxvYWRlZEJhY2tlbmRGaWxlIHtcbiAgICBkYXRhOlxuICAgICAgfCBhbnlcbi8qICovXG4vKiAqL1xuICBcbiAgICBlbmNvZGluZzogc3RyaW5nO1xuICAgIG1kNTogc3RyaW5nO1xuICAgIHRlbXBGaWxlUGF0aDogc3RyaW5nO1xuICAgIG1pbWV0eXBlOiBDb250ZW50VHlwZTtcbiAgICBtdjogKHBhdGgsIGNhbGxiYWNrKSA9PiBhbnk7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRydW5jYXRlZDogYm9vbGVhbjtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZU9wdGlvbnMge1xuICAgIC8qKiBFeHRyYWN0IHN0cmluZyBmcm9tIGxpbmUgKi9cbiAgICBleHRyYWN0RnJvbUxpbmU/OiAoc3RyaW5nIHwgRnVuY3Rpb24pW107XG4gICAgLyoqXG4gICAgICogTW9kaWZ5IG91dHB1dCBsaW5lIGJ5IGxpbmVcbiAgICAgKi9cbiAgICBvdXRwdXRMaW5lUmVwbGFjZT86IChvdXRwdXRMaW5lOiBzdHJpbmcpID0+IHN0cmluZztcbiAgICByZXNvbHZlUHJvbWlzZU1zZz86IHtcbiAgICAgIHN0ZG91dD86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgc3RkZXJyPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgfTtcbiAgICByZXNvbHZlUHJvbWlzZU1zZ0NhbGxiYWNrPzoge1xuICAgICAgc3Rkb3V0PzogKCkgPT4gYW55O1xuICAgICAgc3RkZXJyPzogKCkgPT4gYW55O1xuICAgICAgZXhpdENvZGU/OiAoZXhpdENvZGU6IG51bWJlcikgPT4gYW55O1xuICAgIH07XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIGRldGFjaD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVHJ5IGNvbW1hbmQgYWdhaW4gYWZ0ZXIgZmFpbCBhZnRlciBuIG1pbGlzZWNvbmRzXG4gICAgICovXG4gICAgdHJ5QWdhaW5XaGVuRmFpbEFmdGVyPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqICBUT0RPIEBMQVNUIGltcGxlbWVudCB0aGlzXG4gICAgICpcbiAgICAgKiBPdXRwdXQgZnJvbSBwcm9jZXNzZSB3aXRoIHRoaXMga2V5XG4gICAgICogd2lsbCBub3QgYmUgZGlzcGxheWVkIHR3aWNlIHdoZW5cbiAgICAgKiAyIHByb2Nlc3NlcyBhcmUgcnVubmluZyBhdCB0aGUgc2FtZSB0aW1lXG4gICAgICovXG4gICAgc2ltaWxhclByb2Nlc3NLZXk/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBVc2UgYmlnIGJ1ZmZlciBmb3IgYmlnIHdlYnBhY2sgbG9nc1xuICAgICAqL1xuICAgIGJpZ2dlckJ1ZmZlcj86IGJvb2xlYW47XG4gICAgYXNrVG9UcnlBZ2Fpbk9uRXJyb3I/OiBib29sZWFuO1xuICAgIG9uQ2hpbGRQcm9jZXNzQ2hhbmdlPzogKGNoaWxkUHJvY2VzczogQ2hpbGRQcm9jZXNzKSA9PiB2b2lkO1xuICAgIGV4aXRPbkVycm9yQ2FsbGJhY2s/OiAoY29kZTogbnVtYmVyKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEZyb20gZGlzcGxheWluZyBpbiBjb25zb2xlXG4gICAgICovXG4gICAgaGlkZU91dHB1dD86IHtcbiAgICAgIHN0ZG91dD86IGJvb2xlYW47XG4gICAgICBzdGRlcnI/OiBib29sZWFuO1xuICAgICAgYWNjZXB0QWxsRXhpdENvZGVBc1N1Y2Nlc3M/OiBib29sZWFuO1xuICAgIH07XG4gICAgb3V0cHV0QnVmZmVyPzogc3RyaW5nW107XG4gICAgb3V0cHV0QnVmZmVyTWF4U2l6ZT86IG51bWJlcjtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyBleHRlbmRzIEV4ZWN1dGVPcHRpb25zIHtcbiAgICBzaG93Q29tbWFuZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHByb2Nlc3Mgb3V0cHV0XG4gICAgICovXG4gICAgb3V0cHV0PzogYm9vbGVhbjtcblxuICAgIHNpbGVuY2U/OiBib29sZWFuO1xuICAgIHN0ZGlvPzogYW55O1xuXG5cbiAgICBjd2Q/OiBzdHJpbmc7XG4gIH1cblxuXG5cblxuXG4gIGV4cG9ydCBjb25zdCBtaW1lVHlwZXMgPSB7XG4gICAgJy5hYWMnOiAnYXVkaW8vYWFjJyxcbiAgICAnLmFidyc6ICdhcHBsaWNhdGlvbi94LWFiaXdvcmQnLFxuICAgICcuYXJjJzogJ2FwcGxpY2F0aW9uL3gtZnJlZWFyYycsXG4gICAgJy5hdmknOiAndmlkZW8veC1tc3ZpZGVvJyxcbiAgICAnLmF6dyc6ICdhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rJyxcbiAgICAnLmJpbic6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICcuYm1wJzogJ2ltYWdlL2JtcCcsXG4gICAgJy5ieic6ICdhcHBsaWNhdGlvbi94LWJ6aXAnLFxuICAgICcuYnoyJzogJ2FwcGxpY2F0aW9uL3gtYnppcDInLFxuICAgICcuY3NoJzogJ2FwcGxpY2F0aW9uL3gtY3NoJyxcbiAgICAnLmNzcyc6ICd0ZXh0L2NzcycsXG4gICAgJy5jc3YnOiAndGV4dC9jc3YnLFxuICAgICcuZG9jJzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgJy5kb2N4JzpcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgJy5lb3QnOiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgICcuZXB1Yic6ICdhcHBsaWNhdGlvbi9lcHViK3ppcCcsXG4gICAgJy5neic6ICdhcHBsaWNhdGlvbi9nemlwJyxcbiAgICAnLmdpZic6ICdpbWFnZS9naWYnLFxuICAgICcuaHRtJzogJ3RleHQvaHRtbCcsXG4gICAgJy5odG1sJzogJ3RleHQvaHRtbCcsXG4gICAgJy5pY28nOiAnaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uJyxcbiAgICAnLmljcyc6ICd0ZXh0L2NhbGVuZGFyJyxcbiAgICAnLmphcic6ICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnLFxuICAgICcuanBlZyc6ICdpbWFnZS9qcGVnJyxcbiAgICAnLmpwZyc6ICdpbWFnZS9qcGVnJyxcbiAgICAnLmpzJzogJ3RleHQvamF2YXNjcmlwdCcsXG4gICAgJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICcuanNvbmxkJzogJ2FwcGxpY2F0aW9uL2xkK2pzb24nLFxuICAgICcubWlkJzogJ2FwcGxpY2F0aW9uL21pZGknLFxuICAgICcubWlkaSc6ICdhcHBsaWNhdGlvbi9taWRpJyxcbiAgICAnLm1qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICcubXAzJzogJ2F1ZGlvL21wZWcnLFxuICAgICcubXA0JzogJ3ZpZGVvL21wNCcsXG4gICAgJy5tcGVnJzogJ3ZpZGVvL21wZWcnLFxuICAgICcubXBrZyc6ICdhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbCcsXG4gICAgJy5vZHAnOiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24nLFxuICAgICcub2RzJzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnLFxuICAgICcub2R0JzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dCcsXG4gICAgJy5vZ2EnOiAnYXVkaW8vb2dnJyxcbiAgICAnLm9nZyc6ICdhdWRpby9vZ2cnLFxuICAgICcub2d2JzogJ3ZpZGVvL29nZycsXG4gICAgJy5vZ3gnOiAnYXBwbGljYXRpb24vb2dnJyxcbiAgICAnLm9wdXMnOiAnYXVkaW8vb3B1cycsXG4gICAgJy5vdGYnOiAnZm9udC9vdGYnLFxuICAgICcucG5nJzogJ2ltYWdlL3BuZycsXG4gICAgJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAnLnBocCc6ICdhcHBsaWNhdGlvbi9waHAnLFxuICAgICcucHB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbiAgICAnLnBwdHgnOlxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAgICcucmFyJzogJ2FwcGxpY2F0aW9uL3ZuZC5yYXInLFxuICAgICcucnRmJzogJ2FwcGxpY2F0aW9uL3J0ZicsXG4gICAgJy5zaCc6ICdhcHBsaWNhdGlvbi94LXNoJyxcbiAgICAnLnN2Zyc6ICdpbWFnZS9zdmcreG1sJyxcbiAgICAnLnN3Zic6ICdhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcsXG4gICAgJy50YXInOiAnYXBwbGljYXRpb24veC10YXInLFxuICAgICcudGlmJzogJ2ltYWdlL3RpZmYnLFxuICAgICcudGlmZic6ICdpbWFnZS90aWZmJyxcbiAgICAnLnRzJzogJ3ZpZGVvL21wMnQnLFxuICAgICcudHRmJzogJ2ZvbnQvdHRmJyxcbiAgICAnLnR4dCc6ICd0ZXh0L3BsYWluJyxcbiAgICAnLnZzZCc6ICdhcHBsaWNhdGlvbi92bmQudmlzaW8nLFxuICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgJy53ZWJhJzogJ2F1ZGlvL3dlYm0nLFxuICAgICcud2VibSc6ICd2aWRlby93ZWJtJyxcbiAgICAnLndlYnAnOiAnaW1hZ2Uvd2VicCcsXG4gICAgJy53b2ZmJzogJ2ZvbnQvd29mZicsXG4gICAgJy53b2ZmMic6ICdmb250L3dvZmYyJyxcbiAgICAnLnhodG1sJzogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG4gICAgJy54bHMnOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAnLnhsc3gnOlxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAnLnhtbCc6ICdhcHBsaWNhdGlvbi94bWwnLFxuICAgICcueHVsJzogJ2FwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWwnLFxuICAgICcuemlwJzogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgJy4zZ3AnOiAndmlkZW8vM2dwcCcsXG4gICAgJy4zZzInOiAndmlkZW8vM2dwcDInLFxuICAgICcuN3onOiAnYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICBleHBvcnQgdHlwZSBDb250ZW50VHlwZUtleXMgPSBrZXlvZiB0eXBlb2YgbWltZVR5cGVzO1xuICBleHBvcnQgdHlwZSBDb250ZW50VHlwZSA9XG4gICAgfCAodHlwZW9mIG1pbWVUeXBlcylbQ29udGVudFR5cGVLZXlzXVxuICAgIHwgJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICB0eXBlIENvbnRlbnRUeXBlXyA9IENvbnRlbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXNcbiAgICovXG4gIGV4cG9ydCB0eXBlIE1lZGlhVHlwZSA9XG4gICAgfCAndGV4dCdcbiAgICB8ICdpbWFnZSdcbiAgICB8ICdhdWRpbydcbiAgICB8ICdmb250J1xuICAgIHwgJ3ZpZGVvJ1xuICAgIHwgJ2FwcGxpY2F0aW9uJ1xuICAgIHwgJ211bHRpcGFydCdcbiAgICB8ICdtZXNzYWdlJ1xuICAgIHwgJ21vZGVsJztcblxuICBleHBvcnQgY29uc3QgTWVkaWFUeXBlQWxsQXJyID0gW1xuICAgICd0ZXh0JyxcbiAgICAnaW1hZ2UnLFxuICAgICdhdWRpbycsXG4gICAgJ3ZpZGVvJyxcbiAgICAnZm9udCcsXG4gICAgJ2FwcGxpY2F0aW9uJyxcbiAgICAnbXVsdGlwYXJ0JyxcbiAgICAnbWVzc2FnZScsXG4gICAgJ21vZGVsJyxcbiAgXSBhcyBNZWRpYVR5cGVbXTtcblxuICBleHBvcnQgdHlwZSBNaW1lVHlwZSA9IGtleW9mIHR5cGVvZiBtaW1lVHlwZXM7XG4gIGV4cG9ydCBjb25zdCBNaW1lVHlwZXNPYmogPSBtaW1lVHlwZXM7XG5cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3RJY29uIHtcbiAgICBzcmM6IHN0cmluZzsgLy8gXCJhc3NldHMvaWNvbnMvaWNvbi05Nng5Ni5wbmdcIixcbiAgICBzaXplczogc3RyaW5nOyAvLyBcIjk2eDk2XCIsXG4gICAgdHlwZTogc3RyaW5nOyAvLyBcImltYWdlL3BuZ1wiLFxuICAgIHB1cnBvc2U6IHN0cmluZzsgLy8gXCJtYXNrYWJsZSBhbnlcIlxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBQd2FNYW5pZmVzdCB7XG4gICAgbmFtZTogc3RyaW5nOyAvLyAgXCJhcHBcIixcbiAgICBzaG9ydF9uYW1lOiBzdHJpbmc7IC8vICBcImFwcFwiLFxuICAgIHRoZW1lX2NvbG9yOiBzdHJpbmc7IC8vIFwiIzE5NzZkMlwiLFxuICAgIGJhY2tncm91bmRfY29sb3I6IHN0cmluZzsgLy8gIFwiI2ZhZmFmYVwiLFxuICAgIGRpc3BsYXk6ICdzdGFuZGFsb25lJztcbiAgICBzY29wZTogc3RyaW5nOyAvLyBcIi4vXCIsXG4gICAgc3RhcnRfdXJsOiBzdHJpbmc7IC8vICBcInN0YXJ0X3VybFwiOiBcIi4vXCIsID0+IFwic3RhcnRfdXJsXCIgXCJodHRwczovL2RhcmVrZjc3LmdpdGh1Yi5pby9iczQtYnJlYWtwb2ludC9cIlxuICAgIGljb25zOiBNYW5pZmVzdEljb25bXTtcbiAgfVxuXG5cblxuICBleHBvcnQgaW50ZXJmYWNlIFZTQ29kZVNldHRpbmdzIHtcbiAgICAnZmlsZXMuZXhjbHVkZSc6IHsgW2ZpbGVzOiBzdHJpbmddOiBib29sZWFuIH07XG4gICAgJ3dvcmtiZW5jaC5jb2xvclRoZW1lJzogJ0RlZmF1bHQgTGlnaHQrJyB8ICdLaW1iaWUgRGFyayc7XG4gICAgJ3dvcmtiZW5jaC5jb2xvckN1c3RvbWl6YXRpb25zJzoge1xuICAgICAgJ2FjdGl2aXR5QmFyLmJhY2tncm91bmQnPzogc3RyaW5nO1xuICAgICAgJ2FjdGl2aXR5QmFyLmZvcmVncm91bmQnPzogc3RyaW5nO1xuICAgICAgJ3N0YXR1c0Jhci5iYWNrZ3JvdW5kJz86IHN0cmluZztcbiAgICB9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBpbnRlcmZhY2UgU2l6ZSB7XG4gICAgdzogbnVtYmVyO1xuICAgIGg6IG51bWJlcjtcbiAgfVxuXG5cblxuICBpbnRlcmZhY2UgR2xvYmFsTnBtRGVwZW5kZW5jeSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGluc3RhbGxOYW1lPzogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmcgfCBudW1iZXI7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsQ29tbWFuZExpbmVQcm9ncmFtRGVwZW5kZW5jeSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHdlYnNpdGU6IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsRGVwZW5kZW5jaWVzIHtcbiAgICBucG0/OiBHbG9iYWxOcG1EZXBlbmRlbmN5W107XG4gICAgcHJvZ3JhbXM/OiBHbG9iYWxDb21tYW5kTGluZVByb2dyYW1EZXBlbmRlbmN5W107XG4gIH1cblxuXG5cbiAgaW50ZXJmYWNlIEFuZ3VsYXJDb21waWxlck9wdGlvbnMge1xuICAgIGZ1bGxUZW1wbGF0ZVR5cGVDaGVjazogYm9vbGVhbjtcbiAgICBzdHJpY3RJbmplY3Rpb25QYXJhbWV0ZXJzOiBib29sZWFuO1xuICAgIGNvbXBpbGF0aW9uTW9kZTogc3RyaW5nO1xuICAgIHByZXNlcnZlU3ltbGlua3M6IGJvb2xlYW47XG4gICAgZW5hYmxlSXZ5OiBib29sZWFuO1xuICB9XG5cbiAgaW50ZXJmYWNlIENvbXBpbGVyT3B0aW9ucyB7XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIG91dERpcjogc3RyaW5nO1xuICAgIHNvdXJjZU1hcDogYm9vbGVhbjtcbiAgICBkZWNsYXJhdGlvbjogYm9vbGVhbjtcbiAgICBzdHJpY3ROdWxsQ2hlY2tzOiBib29sZWFuO1xuICAgIGRvd25sZXZlbEl0ZXJhdGlvbjogYm9vbGVhbjtcbiAgICBleHBlcmltZW50YWxEZWNvcmF0b3JzOiBib29sZWFuO1xuICAgIGVtaXREZWNvcmF0b3JNZXRhZGF0YTogYm9vbGVhbjtcbiAgICBlc01vZHVsZUludGVyb3A6IGJvb2xlYW47XG4gICAgbW9kdWxlOiBzdHJpbmc7XG4gICAgbW9kdWxlUmVzb2x1dGlvbjogc3RyaW5nO1xuICAgIGltcG9ydEhlbHBlcnM6IGJvb2xlYW47XG4gICAgc2tpcExpYkNoZWNrOiBib29sZWFuO1xuICAgIHRhcmdldDogc3RyaW5nO1xuICAgIHR5cGVSb290czogc3RyaW5nW107XG4gICAgdHlwZXM6IHN0cmluZ1tdO1xuICAgIGxpYjogc3RyaW5nW107XG4gICAgcGF0aHM6IHsgW2Z1bGxQYWNrYWdlTmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgICB1c2VEZWZpbmVGb3JDbGFzc0ZpZWxkczogYm9vbGVhbjtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIFRzQ29uZmlnSnNvbiB7XG4gICAgZXh0ZW5kczogc3RyaW5nO1xuICAgIGV4Y2x1ZGU6IHN0cmluZ1tdO1xuICAgIGNvbXBpbGVPblNhdmU6IGJvb2xlYW47XG4gICAgY29tcGlsZXJPcHRpb25zOiBDb21waWxlck9wdGlvbnM7XG4gICAgYW5ndWxhckNvbXBpbGVyT3B0aW9uczogQW5ndWxhckNvbXBpbGVyT3B0aW9ucztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVHNjQ29tcGlsZU9wdGlvbnMge1xuICAgIGN3ZDogc3RyaW5nO1xuICAgIHdhdGNoPzogYm9vbGVhbjtcbiAgICBvdXREaXI/OiAnZGlzdCc7XG4gICAgZ2VuZXJhdGVEZWNsYXJhdGlvbnM/OiBib29sZWFuO1xuICAgIHRzRXhlPzogc3RyaW5nO1xuICAgIGRpYWdub3N0aWNzPzogYm9vbGVhbjtcbiAgICBoaWRlRXJyb3JzPzogYm9vbGVhbjtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWNvcmUgbGliL2NvcmUtbW9kZWxzLnRzIl19
@@ -93,11 +93,16 @@ export class HelpersMessages extends HelpersIsomorphic {
93
93
  }
94
94
  }
95
95
  /**
96
- * Throw error and exit process
97
- * make sure browser or nodejs will not continue
98
- * @param details
96
+ * throw error
99
97
  */
100
98
  throw(details) {
99
+ throw new Error(details);
100
+ }
101
+ /**
102
+ * throw error and stop application
103
+ * @param details
104
+ */
105
+ stopApplication(details) {
101
106
  if (this.isBrowser) {
102
107
  document.body.innerHTML =
103
108
  '<h1>Application has encountered an error and stopped.</h1>';
@@ -543,4 +548,4 @@ export class HelpersMessages extends HelpersIsomorphic {
543
548
  }
544
549
  ;
545
550
  ({}); // @--end-of-file-for-module=tnp-core lib/helpers-messages.ts
546
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1jb3JlL3Byb2plY3RzL3RucC1jb3JlL3NyYy9saWIvaGVscGVycy1tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFLTCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTXpELE1BQU0sR0FBRyxHQUFHO0lBQ1YsVUFBVSxFQUFFLE1BQU0sRUFBRTtJQUNwQixTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ25CLFNBQVMsRUFBRSxNQUFNLEVBQUU7SUFDbkIsUUFBUSxFQUFFLE1BQU0sRUFBRTtJQUNsQixZQUFZLEVBQUUsTUFBTSxFQUFFO0lBQ3RCLGlCQUFpQixFQUFFLE1BQU0sRUFBRTtJQUMzQixjQUFjLEVBQUUsTUFBTSxFQUFFO0NBQ3pCLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRztJQUNoQixVQUFVLEVBQUUsTUFBTSxFQUFFO0lBQ3BCLFNBQVMsRUFBRSxNQUFNLEVBQUU7SUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFBRTtJQUNuQixRQUFRLEVBQUUsTUFBTSxFQUFFO0lBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQUU7SUFDdEIsaUJBQWlCLEVBQUUsTUFBTSxFQUFFO0lBQzNCLGNBQWMsRUFBRSxNQUFNLEVBQUU7Q0FDekIsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHO0lBQ3RCLFVBQVUsRUFBRSxNQUFNLEVBQUU7SUFDcEIsU0FBUyxFQUFFLE1BQU0sRUFBRTtJQUNuQixTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ25CLFFBQVEsRUFBRSxNQUFNLEVBQUU7SUFDbEIsWUFBWSxFQUFFLE1BQU0sRUFBRTtJQUN0QixpQkFBaUIsRUFBRSxNQUFNLEVBQUU7SUFDM0IsY0FBYyxFQUFFLE1BQU0sRUFBRTtDQUN6QixDQUFDO0FBRUYsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBR2pCOzs7R0FHRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBWSxFQUFVLEVBQUU7SUFDN0MsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUloQyxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBQ3BELGFBQWE7UUFDZixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVTtRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVuQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ1osS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1FBRUQsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUNyQiw0REFBNEQsQ0FBQztZQUMvRCxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1lBRWpELEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7UUFFRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBWSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFFakQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUdMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUlELElBQUksQ0FBQyxPQUFlLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDMUMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSUQsT0FBTyxDQUFDLE9BQXFCO1FBQzNCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE9BQXFCLEVBQUUsWUFBcUIsS0FBSztRQUMzRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBR0QsUUFBUSxDQUFDLE9BQXNCLEVBQUUsZUFBZSxHQUFHLEtBQUs7UUFDdEQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBR0QsSUFBSSxhQUFhO1FBRWYsT0FBTyxJQUFJLENBQUMsQ0FBQyxnQ0FBZ0M7UUFFakQsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBR0Q7O09BRUc7SUFDSCxHQUFHLENBQUMsT0FBWSxFQUFFLFVBQVUsR0FBRyxDQUFDO1FBQzlCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFHRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxPQUFxQjtRQUNsQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBVSxHQUFHLEtBQUs7UUFDN0MsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsT0FBWSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDeEQsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBR0Q7O09BRUc7SUFDSCxPQUFPLENBQUMsT0FBZSxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3hDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUdELElBQUksQ0FBQyxPQUFlLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDakMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDZEQUE2RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuaW1wb3J0IHsgXyB9IGZyb20gJy4vY29yZS1pbXBvcnRzJztcblxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBIZWxwZXJzSXNvbW9ycGhpYyB9IGZyb20gJy4vaGVscGVycy1pc29tb3JwaGljJztcbmltcG9ydCB7IFBST0dSRVNTX0RBVEEgfSBmcm9tICcuL3Byb2dyZXNzLWRhdGEnO1xuaW1wb3J0IHsgZnJhbWV3b3JrTmFtZSB9IGZyb20gJy4vZnJhbWV3b3JrLW5hbWUnO1xuXG5cblxuY29uc3QgS0VZID0ge1xuICBMQVNUX0VSUk9SOiBTeW1ib2woKSxcbiAgTEFTVF9JTkZPOiBTeW1ib2woKSxcbiAgTEFTVF9XQVJOOiBTeW1ib2woKSxcbiAgTEFTVF9MT0c6IFN5bWJvbCgpLFxuICBMQVNUX1NVQ0NFU1M6IFN5bWJvbCgpLFxuICBMQVNUX1RBU0tfU1RBUlRFRDogU3ltYm9sKCksXG4gIExBU1RfVEFTS19ET05FOiBTeW1ib2woKSxcbn07XG5cbmNvbnN0IEtFWV9DT1VOVCA9IHtcbiAgTEFTVF9FUlJPUjogU3ltYm9sKCksXG4gIExBU1RfSU5GTzogU3ltYm9sKCksXG4gIExBU1RfV0FSTjogU3ltYm9sKCksXG4gIExBU1RfTE9HOiBTeW1ib2woKSxcbiAgTEFTVF9TVUNDRVNTOiBTeW1ib2woKSxcbiAgTEFTVF9UQVNLX1NUQVJURUQ6IFN5bWJvbCgpLFxuICBMQVNUX1RBU0tfRE9ORTogU3ltYm9sKCksXG59O1xuXG5jb25zdCBLRVlfSU1QT1JUQU5UQ0UgPSB7XG4gIExBU1RfRVJST1I6IFN5bWJvbCgpLFxuICBMQVNUX0lORk86IFN5bWJvbCgpLFxuICBMQVNUX1dBUk46IFN5bWJvbCgpLFxuICBMQVNUX0xPRzogU3ltYm9sKCksXG4gIExBU1RfU1VDQ0VTUzogU3ltYm9sKCksXG4gIExBU1RfVEFTS19TVEFSVEVEOiBTeW1ib2woKSxcbiAgTEFTVF9UQVNLX0RPTkU6IFN5bWJvbCgpLFxufTtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuY29uc3QgTElNSVQgPSAxMDtcblxuXG4vKipcbiAqIEBwYXJhbSBkZXRhaWxzIGFueSBkYXRhIHRvIGJlIHRyYW5zZm9ybWVkXG4gKiBAcmV0dXJucyBzdHJpbmcgcmVhZHkgdG8gYmUgZGlzcGxheWVkXG4gKi9cbmNvbnN0IHRyYW5zZm9ybURhdGEgPSAoZGV0YWlsczogYW55KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBkZXRhaWxzID09PSAnb2JqZWN0Jykge1xuXG5cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkoZGV0YWlscywgbnVsbCwgMik7XG4gICAgICBkZXRhaWxzID0ganNvbjtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGRldGFpbHM7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZXRhaWxzO1xufTtcblxuXG5leHBvcnQgY2xhc3MgSGVscGVyc01lc3NhZ2VzIGV4dGVuZHMgSGVscGVyc0lzb21vcnBoaWMge1xuICBtc2dDYWNoZUNsZWFyKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgcmVuZGVyRXJyb3IoZXJyOiBFcnJvcikge1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgfSBlbHNlIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRocm93IGVycm9yIGFuZCBleGl0IHByb2Nlc3NcbiAgICogbWFrZSBzdXJlIGJyb3dzZXIgb3Igbm9kZWpzIHdpbGwgbm90IGNvbnRpbnVlXG4gICAqIEBwYXJhbSBkZXRhaWxzXG4gICAqL1xuICB0aHJvdyhkZXRhaWxzOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcblxuICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPVxuICAgICAgICAnPGgxPkFwcGxpY2F0aW9uIGhhcyBlbmNvdW50ZXJlZCBhbiBlcnJvciBhbmQgc3RvcHBlZC48L2gxPic7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoZGV0YWlscyk7XG4gIH1cblxuICB0cnlDYXRjaEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICBIZWxwZXJzLmVycm9yKGVycm9yLCB0cnVlLCB0cnVlKTtcbiAgfVxuXG4gIGVycm9yKGRldGFpbHM6IGFueSwgbm9FeGl0ID0gZmFsc2UsIG5vVHJhY2UgPSBmYWxzZSkge1xuXG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGRldGFpbHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgaW5mbyhkZXRhaWxzOiBzdHJpbmcsIHJlcGVhdGFibGUgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBzdWNjZXNzKGRldGFpbHM6IGFueSB8IHN0cmluZykge1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgY29uc29sZS5pbmZvKGRldGFpbHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGRldGFpbHNcbiAgICogQHBhcmFtIGlzTG9nVGFzayBpcyBsZXNzIGltcG9ydGFudCBsb2cgdGFza1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdGFza1N0YXJ0ZWQoZGV0YWlsczogYW55IHwgc3RyaW5nLCBpc0xvZ1Rhc2s6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgY29uc29sZS5pbmZvKGRldGFpbHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cbiAgdGFza0RvbmUoZGV0YWlscz86IGFueSB8IHN0cmluZywgaXNMZXNzSW1wb3J0YW50ID0gZmFsc2UpIHtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cbiAgZ2V0IGlzVmVyYm9zZU1vZGUoKSB7XG5cbiAgICByZXR1cm4gdHJ1ZTsgLy8gVE9ETyB3aGF0IGl0IG1lYW5zIGluIGJyb3dzZXJcblxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuICAvKipcbiAgICogbG9nIG1lc3NhZ2VzIG9ubHkgYXZhaWxhYmxlIGluIHZlcmJvc2UgbW9kZVxuICAgKi9cbiAgbG9nKGRldGFpbHM6IGFueSwgZGVidWdMZXZlbCA9IDApIHtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIGNvbnNvbGUubG9nKGRldGFpbHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cbiAgLyoqXG4gICAqIExvZ3Mgbm90IHZpc2libGUgaW4gbm9ybWFsIHVzZSBvZiB0YW9uLWNsaVxuICAgKi9cbiAgbG9nU3VjY2VzcyhkZXRhaWxzOiBhbnkgfCBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIG5vdCB2aXNpYmxlIGluIG5vcm1hbCB1c2Ugb2YgdGFvbi1jbGlcbiAgICovXG4gIGxvZ0luZm8oZGV0YWlsczogc3RyaW5nLCByZXBlYXRhYmxlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIG5vdCB2aXNpYmxlIGluIG5vcm1hbCB1c2Ugb2YgdGFvbi1jbGlcbiAgICovXG4gIGxvZ0Vycm9yKGRldGFpbHM6IGFueSwgbm9FeGl0ID0gZmFsc2UsIG5vVHJhY2UgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICAvKipcbiAgICogTG9ncyBub3QgdmlzaWJsZSBpbiBub3JtYWwgdXNlIG9mIHRhb24tY2xpXG4gICAqL1xuICBsb2dXYXJuKGRldGFpbHM6IHN0cmluZywgdHJhY2UgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICB3YXJuKGRldGFpbHM6IHN0cmluZywgdHJhY2UgPSBmYWxzZSkge1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgY29uc29sZS53YXJuKGRldGFpbHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWNvcmUgbGliL2hlbHBlcnMtbWVzc2FnZXMudHMiXX0=
551
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3RucC1jb3JlL3Byb2plY3RzL3RucC1jb3JlL3NyYy9saWIvaGVscGVycy1tZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFLTCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTXpELE1BQU0sR0FBRyxHQUFHO0lBQ1YsVUFBVSxFQUFFLE1BQU0sRUFBRTtJQUNwQixTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ25CLFNBQVMsRUFBRSxNQUFNLEVBQUU7SUFDbkIsUUFBUSxFQUFFLE1BQU0sRUFBRTtJQUNsQixZQUFZLEVBQUUsTUFBTSxFQUFFO0lBQ3RCLGlCQUFpQixFQUFFLE1BQU0sRUFBRTtJQUMzQixjQUFjLEVBQUUsTUFBTSxFQUFFO0NBQ3pCLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRztJQUNoQixVQUFVLEVBQUUsTUFBTSxFQUFFO0lBQ3BCLFNBQVMsRUFBRSxNQUFNLEVBQUU7SUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFBRTtJQUNuQixRQUFRLEVBQUUsTUFBTSxFQUFFO0lBQ2xCLFlBQVksRUFBRSxNQUFNLEVBQUU7SUFDdEIsaUJBQWlCLEVBQUUsTUFBTSxFQUFFO0lBQzNCLGNBQWMsRUFBRSxNQUFNLEVBQUU7Q0FDekIsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHO0lBQ3RCLFVBQVUsRUFBRSxNQUFNLEVBQUU7SUFDcEIsU0FBUyxFQUFFLE1BQU0sRUFBRTtJQUNuQixTQUFTLEVBQUUsTUFBTSxFQUFFO0lBQ25CLFFBQVEsRUFBRSxNQUFNLEVBQUU7SUFDbEIsWUFBWSxFQUFFLE1BQU0sRUFBRTtJQUN0QixpQkFBaUIsRUFBRSxNQUFNLEVBQUU7SUFDM0IsY0FBYyxFQUFFLE1BQU0sRUFBRTtDQUN6QixDQUFDO0FBRUYsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBR2pCOzs7R0FHRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBWSxFQUFVLEVBQUU7SUFDN0MsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUloQyxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBQ3BELGFBQWE7UUFDZixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVTtRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVuQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxDQUFDO1lBQ1osS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1FBRUQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFlO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxPQUFlO1FBQzdCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRW5CLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUztnQkFDckIsNERBQTRELENBQUM7WUFDL0QsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUVqRCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1FBRUQsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBRyxLQUFLO1FBRWpELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFHTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFJRCxJQUFJLENBQUMsT0FBZSxFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQzFDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUlELE9BQU8sQ0FBQyxPQUFxQjtRQUMzQixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFxQixFQUFFLFlBQXFCLEtBQUs7UUFDM0QsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUdELFFBQVEsQ0FBQyxPQUFzQixFQUFFLGVBQWUsR0FBRyxLQUFLO1FBQ3RELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUdELElBQUksYUFBYTtRQUVmLE9BQU8sSUFBSSxDQUFDLENBQUMsZ0NBQWdDO1FBRWpELEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUdEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLE9BQVksRUFBRSxVQUFVLEdBQUcsQ0FBQztRQUM5QixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBR0Q7O09BRUc7SUFDSCxVQUFVLENBQUMsT0FBcUI7UUFDbEMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsT0FBZSxFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQzdDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLE9BQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBRyxLQUFLO1FBQ3hELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUdEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE9BQWUsRUFBRSxLQUFLLEdBQUcsS0FBSztRQUN4QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFHRCxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ2pDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw2REFBNkQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IF8gfSBmcm9tICcuL2NvcmUtaW1wb3J0cyc7XG5cblxuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgSGVscGVyc0lzb21vcnBoaWMgfSBmcm9tICcuL2hlbHBlcnMtaXNvbW9ycGhpYyc7XG5pbXBvcnQgeyBQUk9HUkVTU19EQVRBIH0gZnJvbSAnLi9wcm9ncmVzcy1kYXRhJztcbmltcG9ydCB7IGZyYW1ld29ya05hbWUgfSBmcm9tICcuL2ZyYW1ld29yay1uYW1lJztcblxuXG5cbmNvbnN0IEtFWSA9IHtcbiAgTEFTVF9FUlJPUjogU3ltYm9sKCksXG4gIExBU1RfSU5GTzogU3ltYm9sKCksXG4gIExBU1RfV0FSTjogU3ltYm9sKCksXG4gIExBU1RfTE9HOiBTeW1ib2woKSxcbiAgTEFTVF9TVUNDRVNTOiBTeW1ib2woKSxcbiAgTEFTVF9UQVNLX1NUQVJURUQ6IFN5bWJvbCgpLFxuICBMQVNUX1RBU0tfRE9ORTogU3ltYm9sKCksXG59O1xuXG5jb25zdCBLRVlfQ09VTlQgPSB7XG4gIExBU1RfRVJST1I6IFN5bWJvbCgpLFxuICBMQVNUX0lORk86IFN5bWJvbCgpLFxuICBMQVNUX1dBUk46IFN5bWJvbCgpLFxuICBMQVNUX0xPRzogU3ltYm9sKCksXG4gIExBU1RfU1VDQ0VTUzogU3ltYm9sKCksXG4gIExBU1RfVEFTS19TVEFSVEVEOiBTeW1ib2woKSxcbiAgTEFTVF9UQVNLX0RPTkU6IFN5bWJvbCgpLFxufTtcblxuY29uc3QgS0VZX0lNUE9SVEFOVENFID0ge1xuICBMQVNUX0VSUk9SOiBTeW1ib2woKSxcbiAgTEFTVF9JTkZPOiBTeW1ib2woKSxcbiAgTEFTVF9XQVJOOiBTeW1ib2woKSxcbiAgTEFTVF9MT0c6IFN5bWJvbCgpLFxuICBMQVNUX1NVQ0NFU1M6IFN5bWJvbCgpLFxuICBMQVNUX1RBU0tfU1RBUlRFRDogU3ltYm9sKCksXG4gIExBU1RfVEFTS19ET05FOiBTeW1ib2woKSxcbn07XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbmNvbnN0IExJTUlUID0gMTA7XG5cblxuLyoqXG4gKiBAcGFyYW0gZGV0YWlscyBhbnkgZGF0YSB0byBiZSB0cmFuc2Zvcm1lZFxuICogQHJldHVybnMgc3RyaW5nIHJlYWR5IHRvIGJlIGRpc3BsYXllZFxuICovXG5jb25zdCB0cmFuc2Zvcm1EYXRhID0gKGRldGFpbHM6IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgZGV0YWlscyA9PT0gJ29iamVjdCcpIHtcblxuXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KGRldGFpbHMsIG51bGwsIDIpO1xuICAgICAgZGV0YWlscyA9IGpzb247XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBkZXRhaWxzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGV0YWlscztcbn07XG5cblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNNZXNzYWdlcyBleHRlbmRzIEhlbHBlcnNJc29tb3JwaGljIHtcbiAgbXNnQ2FjaGVDbGVhcigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG4gIHJlbmRlckVycm9yKGVycjogRXJyb3IpIHtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcblxuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH0gZWxzZSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0aHJvdyBlcnJvclxuICAgKi9cbiAgdGhyb3coZGV0YWlsczogc3RyaW5nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGRldGFpbHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRocm93IGVycm9yIGFuZCBzdG9wIGFwcGxpY2F0aW9uXG4gICAqIEBwYXJhbSBkZXRhaWxzXG4gICAqL1xuICBzdG9wQXBwbGljYXRpb24oZGV0YWlsczogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG5cbiAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID1cbiAgICAgICAgJzxoMT5BcHBsaWNhdGlvbiBoYXMgZW5jb3VudGVyZWQgYW4gZXJyb3IgYW5kIHN0b3BwZWQuPC9oMT4nO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGRldGFpbHMpO1xuICB9XG5cbiAgdHJ5Q2F0Y2hFcnJvcihlcnJvcjogYW55KSB7XG4gICAgSGVscGVycy5lcnJvcihlcnJvciwgdHJ1ZSwgdHJ1ZSk7XG4gIH1cblxuICBlcnJvcihkZXRhaWxzOiBhbnksIG5vRXhpdCA9IGZhbHNlLCBub1RyYWNlID0gZmFsc2UpIHtcblxuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgY29uc29sZS5lcnJvcihkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGluZm8oZGV0YWlsczogc3RyaW5nLCByZXBlYXRhYmxlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICBjb25zb2xlLmluZm8oZGV0YWlscyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgc3VjY2VzcyhkZXRhaWxzOiBhbnkgfCBzdHJpbmcpIHtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBkZXRhaWxzXG4gICAqIEBwYXJhbSBpc0xvZ1Rhc2sgaXMgbGVzcyBpbXBvcnRhbnQgbG9nIHRhc2tcbiAgICogQHJldHVybnNcbiAgICovXG4gIHRhc2tTdGFydGVkKGRldGFpbHM6IGFueSB8IHN0cmluZywgaXNMb2dUYXNrOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG4gIHRhc2tEb25lKGRldGFpbHM/OiBhbnkgfCBzdHJpbmcsIGlzTGVzc0ltcG9ydGFudCA9IGZhbHNlKSB7XG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICBjb25zb2xlLmluZm8oZGV0YWlscyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG4gIGdldCBpc1ZlcmJvc2VNb2RlKCkge1xuXG4gICAgcmV0dXJuIHRydWU7IC8vIFRPRE8gd2hhdCBpdCBtZWFucyBpbiBicm93c2VyXG5cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cbiAgLyoqXG4gICAqIGxvZyBtZXNzYWdlcyBvbmx5IGF2YWlsYWJsZSBpbiB2ZXJib3NlIG1vZGVcbiAgICovXG4gIGxvZyhkZXRhaWxzOiBhbnksIGRlYnVnTGV2ZWwgPSAwKSB7XG4gICAgaWYgKEhlbHBlcnMuaXNCcm93c2VyKSB7XG4gICAgICBjb25zb2xlLmxvZyhkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG4gIC8qKlxuICAgKiBMb2dzIG5vdCB2aXNpYmxlIGluIG5vcm1hbCB1c2Ugb2YgdGFvbi1jbGlcbiAgICovXG4gIGxvZ1N1Y2Nlc3MoZGV0YWlsczogYW55IHwgc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICAvKipcbiAgICogTG9ncyBub3QgdmlzaWJsZSBpbiBub3JtYWwgdXNlIG9mIHRhb24tY2xpXG4gICAqL1xuICBsb2dJbmZvKGRldGFpbHM6IHN0cmluZywgcmVwZWF0YWJsZSA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuICAvKipcbiAgICogTG9ncyBub3QgdmlzaWJsZSBpbiBub3JtYWwgdXNlIG9mIHRhb24tY2xpXG4gICAqL1xuICBsb2dFcnJvcihkZXRhaWxzOiBhbnksIG5vRXhpdCA9IGZhbHNlLCBub1RyYWNlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIExvZ3Mgbm90IHZpc2libGUgaW4gbm9ybWFsIHVzZSBvZiB0YW9uLWNsaVxuICAgKi9cbiAgbG9nV2FybihkZXRhaWxzOiBzdHJpbmcsIHRyYWNlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgd2FybihkZXRhaWxzOiBzdHJpbmcsIHRyYWNlID0gZmFsc2UpIHtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIGNvbnNvbGUud2FybihkZXRhaWxzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi9oZWxwZXJzLW1lc3NhZ2VzLnRzIl19