tnp-config 13.0.29 → 13.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app.js +1 -1
- package/browser/esm2020/lib/config.mjs +5 -3
- package/browser/fesm2015/tnp-config.mjs +4 -2
- package/browser/fesm2015/tnp-config.mjs.map +1 -1
- package/browser/fesm2020/tnp-config.mjs +4 -2
- package/browser/fesm2020/tnp-config.mjs.map +1 -1
- package/browser/lib/config.d.ts +2 -0
- package/client/esm2020/lib/config.mjs +5 -3
- package/client/fesm2015/tnp-config.mjs +4 -2
- package/client/fesm2015/tnp-config.mjs.map +1 -1
- package/client/fesm2020/tnp-config.mjs +4 -2
- package/client/fesm2020/tnp-config.mjs.map +1 -1
- package/client/lib/config.d.ts +2 -0
- package/index.js +1 -1
- package/lib/config.d.ts +4 -2
- package/lib/config.js +7 -5
- package/lib/config.js.map +1 -1
- package/lib/index.js +1 -1
- package/package.json +5 -5
- package/package.json_tnp.json5 +5 -0
- package/tmp-environment.json +59 -58
- package/websql/README.md +24 -0
- package/websql/esm2020/lib/config.mjs +719 -0
- package/websql/esm2020/lib/index.mjs +2 -0
- package/websql/esm2020/public-api.mjs +2 -0
- package/websql/esm2020/tnp-config.mjs +5 -0
- package/websql/fesm2015/tnp-config.mjs +654 -0
- package/websql/fesm2015/tnp-config.mjs.map +1 -0
- package/websql/fesm2020/tnp-config.mjs +719 -0
- package/websql/fesm2020/tnp-config.mjs.map +1 -0
- package/websql/lib/config.d.ts +316 -0
- package/websql/lib/index.d.ts +1 -0
- package/websql/package.json +31 -0
- package/websql/public-api.d.ts +1 -0
- package/websql/tnp-config.d.ts +5 -0
@@ -0,0 +1,719 @@
|
|
1
|
+
/**
|
2
|
+
* Dariusz Filipiak
|
3
|
+
* @author darekf77@gmail.com
|
4
|
+
* Recommended config for all isomorphic libs *
|
5
|
+
*/
|
6
|
+
/* */
|
7
|
+
/* */
|
8
|
+
/* */
|
9
|
+
/* */
|
10
|
+
/* */
|
11
|
+
/* */
|
12
|
+
/* */
|
13
|
+
export { CoreHelpers as Helpers } from 'tnp-core/websql';
|
14
|
+
export const GlobalLibTypeName = {
|
15
|
+
isomorphicLib: 'isomorphic-lib',
|
16
|
+
angularLib: 'angular-lib',
|
17
|
+
electronClient: 'electron-client',
|
18
|
+
ionicLib: 'ionic-lib',
|
19
|
+
angularClient: 'angular-client',
|
20
|
+
ionicClient: 'ionic-client',
|
21
|
+
workspace: 'workspace',
|
22
|
+
container: 'container',
|
23
|
+
docker: 'docker',
|
24
|
+
unknowNpmProject: 'unknow-npm-project',
|
25
|
+
vscodeExt: 'vscode-ext',
|
26
|
+
chromeExt: 'chrome-ext',
|
27
|
+
singleFileProject: 'single-file-project',
|
28
|
+
navi: 'navi',
|
29
|
+
scenario: 'scenario'
|
30
|
+
};
|
31
|
+
export const LibTypeArr = [
|
32
|
+
GlobalLibTypeName.angularLib,
|
33
|
+
GlobalLibTypeName.isomorphicLib,
|
34
|
+
GlobalLibTypeName.angularClient,
|
35
|
+
GlobalLibTypeName.ionicClient,
|
36
|
+
GlobalLibTypeName.electronClient,
|
37
|
+
GlobalLibTypeName.workspace,
|
38
|
+
GlobalLibTypeName.container,
|
39
|
+
GlobalLibTypeName.docker,
|
40
|
+
GlobalLibTypeName.unknowNpmProject,
|
41
|
+
GlobalLibTypeName.vscodeExt,
|
42
|
+
GlobalLibTypeName.chromeExt,
|
43
|
+
GlobalLibTypeName.navi,
|
44
|
+
GlobalLibTypeName.scenario,
|
45
|
+
];
|
46
|
+
export const CoreLibCategoryArr = [
|
47
|
+
GlobalLibTypeName.angularLib,
|
48
|
+
GlobalLibTypeName.isomorphicLib,
|
49
|
+
GlobalLibTypeName.angularClient,
|
50
|
+
GlobalLibTypeName.electronClient,
|
51
|
+
GlobalLibTypeName.ionicClient,
|
52
|
+
GlobalLibTypeName.docker,
|
53
|
+
'common'
|
54
|
+
];
|
55
|
+
//#endregion
|
56
|
+
const allowedEnvironments = ['static', 'dev', 'prod', 'stage', 'online', 'test', 'qa', 'custom'];
|
57
|
+
const allowedEnvironmentsObj = {};
|
58
|
+
allowedEnvironments.forEach(s => {
|
59
|
+
// @ts-ignore
|
60
|
+
allowedEnvironmentsObj[s] = s;
|
61
|
+
});
|
62
|
+
const firedev = 'firedev';
|
63
|
+
const morphi = 'morphi';
|
64
|
+
/* */
|
65
|
+
/* */
|
66
|
+
const urlMorphi = 'https://github.com/darekf77/morphi.git';
|
67
|
+
const filesNotAllowedToClean = {
|
68
|
+
_gitignore: '.gitignore',
|
69
|
+
_npmrc: '.npmrc',
|
70
|
+
_npmignore: '.npmignore',
|
71
|
+
tslint_json: 'tslint.json',
|
72
|
+
_editorconfig: '.editorconfig',
|
73
|
+
_angularCli_json: '.angular-cli.json',
|
74
|
+
_vscode_launch_json: '.vscode/launch.json',
|
75
|
+
};
|
76
|
+
const file = {
|
77
|
+
_bowerrc: '.bowerrc',
|
78
|
+
bower_json: 'bower.json',
|
79
|
+
controllers_ts: 'controllers.ts',
|
80
|
+
entities_ts: 'entities.ts',
|
81
|
+
angular_json: 'angular.json',
|
82
|
+
autob_actions_js: 'auto-actions.js',
|
83
|
+
local_config_js: 'local-config.js',
|
84
|
+
build_config_js: 'build-config.js',
|
85
|
+
local_config: 'local-config',
|
86
|
+
start_backend_ts: 'start.backend.ts',
|
87
|
+
package_json: 'package.json',
|
88
|
+
result_packages_json: 'result-packages.json',
|
89
|
+
package_json5: 'package.json5',
|
90
|
+
package_json__tnp_json: 'package.json_tnp.json',
|
91
|
+
package_json__tnp_json5: 'package.json_tnp.json5',
|
92
|
+
package_json__devDependencies_json: 'package.json_devDependencies.json',
|
93
|
+
yarn_lock: 'yarn.lock',
|
94
|
+
package_lock_json: 'package-lock.json',
|
95
|
+
tnpEnvironment_json: 'tmp-environment.json',
|
96
|
+
environment: 'environment',
|
97
|
+
environment_js: 'environment.js',
|
98
|
+
tmp_transaction_pid_txt: 'tmp-transaction-pid.txt',
|
99
|
+
manifest_webmanifest: 'manifest.webmanifest',
|
100
|
+
publicApi_ts: 'public_api.ts',
|
101
|
+
publicApi_d_ts: 'public_api.d.ts',
|
102
|
+
publicapi_ts: 'public-api.ts',
|
103
|
+
_babelrc: '.babelrc',
|
104
|
+
index_d_ts: 'index.d.ts',
|
105
|
+
index_ts: 'index.ts',
|
106
|
+
index_js: 'index.js',
|
107
|
+
index_js_map: 'index.js.map',
|
108
|
+
db_json: 'db.json',
|
109
|
+
db_for_tests_json: 'db-for-tests.json',
|
110
|
+
tmpDockerImageId: 'tmp-docker-image-id',
|
111
|
+
tmp_recent_json: 'recent.json',
|
112
|
+
tmpIsomorphicPackagesJson: 'tmp-isomorphic-packages.json',
|
113
|
+
tsconfig_json: 'tsconfig.json',
|
114
|
+
README_MD: 'README.md',
|
115
|
+
server_key: 'server.key',
|
116
|
+
server_cert: 'server.cert',
|
117
|
+
server_chain_cert: 'server-chain.cert',
|
118
|
+
meta_config_md: 'meta-content.md',
|
119
|
+
...filesNotAllowedToClean
|
120
|
+
};
|
121
|
+
const packageJsonSplit = [
|
122
|
+
file.package_json__tnp_json,
|
123
|
+
file.package_json__tnp_json5,
|
124
|
+
file.package_json__devDependencies_json,
|
125
|
+
];
|
126
|
+
const tempFolders = {
|
127
|
+
bundle: 'bundle',
|
128
|
+
vendor: 'vendor',
|
129
|
+
docs: 'docs',
|
130
|
+
dist: 'dist',
|
131
|
+
tmp: 'tmp',
|
132
|
+
tmpBundleRelease: 'tmp-bundle-release',
|
133
|
+
tempSrc: 'tmp-src',
|
134
|
+
tempSrcDist: 'tmp-src-dist',
|
135
|
+
previewDistApp: 'dist-app',
|
136
|
+
preview: 'preview',
|
137
|
+
browser: 'browser',
|
138
|
+
websql: 'websql',
|
139
|
+
_browser: '.browser',
|
140
|
+
module: 'module',
|
141
|
+
backup: 'backup',
|
142
|
+
node_modules: 'node_modules',
|
143
|
+
client: 'client',
|
144
|
+
tnp_tests_context: 'tmp-tests-context',
|
145
|
+
tmpPackage: 'tmp-package',
|
146
|
+
tmpScenarios: 'tmp-scenarios',
|
147
|
+
tmpTestsEnvironments: 'tmp-tests-environments',
|
148
|
+
testsEnvironments: 'tests-environments',
|
149
|
+
};
|
150
|
+
const stylesFilesExtension = [
|
151
|
+
'css',
|
152
|
+
'sass',
|
153
|
+
'scss',
|
154
|
+
'less',
|
155
|
+
];
|
156
|
+
const folder = {
|
157
|
+
scripts: 'scripts',
|
158
|
+
scenarios: 'scenarios',
|
159
|
+
bower: 'bower',
|
160
|
+
src: 'src',
|
161
|
+
out: 'out',
|
162
|
+
lib: 'lib',
|
163
|
+
custom: 'custom',
|
164
|
+
components: 'components',
|
165
|
+
assets: 'assets',
|
166
|
+
apps: 'apps',
|
167
|
+
// entities: 'entities',
|
168
|
+
// controllers: 'controllers',
|
169
|
+
// projects: 'projects',
|
170
|
+
workspace: 'workspace',
|
171
|
+
container: 'container',
|
172
|
+
bin: 'bin',
|
173
|
+
_bin: '.bin',
|
174
|
+
_vscode: '.vscode',
|
175
|
+
project: 'project',
|
176
|
+
external: 'external',
|
177
|
+
tmpDist: 'tmp-dist',
|
178
|
+
tmpFor(d) {
|
179
|
+
return `tmp-src-${d}`;
|
180
|
+
},
|
181
|
+
targetProjects: {
|
182
|
+
DEFAULT_PATH_GENERATED: 'tmp-target-projects/generated',
|
183
|
+
DEFAULT_PATH_ORIGINS: 'tmp-target-projects/origins',
|
184
|
+
},
|
185
|
+
...tempFolders
|
186
|
+
};
|
187
|
+
// @LAST RESOLVE TNP LOCATION !!! for each context and RELEASE TNP-CONFIG
|
188
|
+
let dirnameForTnp;
|
189
|
+
/* */
|
190
|
+
/* */
|
191
|
+
const firedevProjectsRelative = `../firedev-projects`;
|
192
|
+
/* */
|
193
|
+
/* */
|
194
|
+
/* */
|
195
|
+
/* */
|
196
|
+
/* */
|
197
|
+
/* */
|
198
|
+
/* */
|
199
|
+
/* */
|
200
|
+
/* */
|
201
|
+
/* */
|
202
|
+
/* */
|
203
|
+
/* */
|
204
|
+
/* */
|
205
|
+
/* */
|
206
|
+
/* */
|
207
|
+
/* */
|
208
|
+
/* */
|
209
|
+
/* */
|
210
|
+
/* */
|
211
|
+
/* */
|
212
|
+
/* */
|
213
|
+
/* */
|
214
|
+
/* */
|
215
|
+
/* */
|
216
|
+
/* */
|
217
|
+
/* */
|
218
|
+
/* */
|
219
|
+
/* */
|
220
|
+
/* */
|
221
|
+
/* */
|
222
|
+
/* */
|
223
|
+
/* */
|
224
|
+
/* */
|
225
|
+
/* */
|
226
|
+
/* */
|
227
|
+
/* */
|
228
|
+
/* */
|
229
|
+
/* */
|
230
|
+
/* */
|
231
|
+
/* */
|
232
|
+
/* */
|
233
|
+
/* */
|
234
|
+
/* */
|
235
|
+
/* */
|
236
|
+
/* */
|
237
|
+
/* */
|
238
|
+
/* */
|
239
|
+
/* */
|
240
|
+
/* */
|
241
|
+
/* */
|
242
|
+
/* */
|
243
|
+
/* */
|
244
|
+
/* */
|
245
|
+
/* */
|
246
|
+
/* */
|
247
|
+
/* */
|
248
|
+
/* */
|
249
|
+
/* */
|
250
|
+
/* */
|
251
|
+
/* */
|
252
|
+
/* */
|
253
|
+
/* */
|
254
|
+
/* */
|
255
|
+
/* */
|
256
|
+
/* */
|
257
|
+
/* */
|
258
|
+
/* */
|
259
|
+
/* */
|
260
|
+
/* */
|
261
|
+
/* */
|
262
|
+
/* */
|
263
|
+
/* */
|
264
|
+
/* */
|
265
|
+
/* */
|
266
|
+
/* */
|
267
|
+
/* */
|
268
|
+
/* */
|
269
|
+
/* */
|
270
|
+
/* */
|
271
|
+
/* */
|
272
|
+
/* */
|
273
|
+
/* */
|
274
|
+
const moduleNameAngularLib = [
|
275
|
+
folder.components,
|
276
|
+
folder.module,
|
277
|
+
folder.dist,
|
278
|
+
folder.browser,
|
279
|
+
];
|
280
|
+
const moduleNameIsomorphicLib = [
|
281
|
+
folder.src,
|
282
|
+
folder.dist,
|
283
|
+
folder.browser,
|
284
|
+
];
|
285
|
+
const argsReplacementsBuild = {
|
286
|
+
// SHORTCUTS
|
287
|
+
'ba': 'build:app',
|
288
|
+
'baw': 'build:app:watch',
|
289
|
+
'bw': 'build:watch',
|
290
|
+
'bap': 'build:app:prod',
|
291
|
+
'bapw': 'build:app:prod:watch',
|
292
|
+
// (dist)app build for normal development - watch is ng serve
|
293
|
+
'bda': 'build:dist:app',
|
294
|
+
'bdaw': 'build:dist:app:watch',
|
295
|
+
// (dist)app build for normal development (PRODUCTION MINIFIED CODE)
|
296
|
+
'badpw': 'build:app:dist:prod:watch',
|
297
|
+
'badp': 'build:app:dist:prod',
|
298
|
+
// (dist)lib build - watch is ng build
|
299
|
+
'bd': 'build:dist', 'bdw': 'build:dist:watch',
|
300
|
+
// (dist)lib build - watch is ng build (PRODUCTION MINIFIED CODE)
|
301
|
+
'bdp': 'build:dist:prod', 'bdpw': 'build:dist:prod:watch',
|
302
|
+
// (bundle)app build for static code (firedev plugins, project final code, etc.)
|
303
|
+
'bba': 'build:bundle:app', 'bbaw': 'build:bundle:app:watch',
|
304
|
+
// (bunle)lib build for static code (firedev plugins, project final code, etc.)
|
305
|
+
'bb': 'build:bundle', 'bbw': 'build:bundle:watch',
|
306
|
+
// (bunle)lib build for static code with ng build (PRODUCTION MINIFIED CODE)
|
307
|
+
'bbp': 'build:bundle:prod', 'bbpw': 'build:bundle:prod:watch',
|
308
|
+
'sb': 'static:build',
|
309
|
+
'sbp': 'static:build:prod',
|
310
|
+
'sbd': 'static:build:dist',
|
311
|
+
'sbl': 'static:build:lib',
|
312
|
+
'sba': 'static:build:app',
|
313
|
+
'cb': 'clean:build'
|
314
|
+
};
|
315
|
+
const argsReplacementsOther = {
|
316
|
+
// github docs
|
317
|
+
'ghpush': 'githubpush',
|
318
|
+
'ghpull': 'githubpull',
|
319
|
+
// last
|
320
|
+
'l': 'last',
|
321
|
+
'sl': 'show:last',
|
322
|
+
'lb': 'last:build',
|
323
|
+
// install
|
324
|
+
'i': 'install',
|
325
|
+
'si': 'sinstall',
|
326
|
+
'il': 'install:locally',
|
327
|
+
'rc': 'recommit',
|
328
|
+
// release
|
329
|
+
'rp': 'release:prod',
|
330
|
+
'r': 'release',
|
331
|
+
'rmajor': 'release:major',
|
332
|
+
'rminor': 'release:minor',
|
333
|
+
// 'ra': 'release:all',
|
334
|
+
'ar': 'auto:release',
|
335
|
+
// versopm
|
336
|
+
'--version': 'version',
|
337
|
+
'-v': 'version',
|
338
|
+
// open
|
339
|
+
'occ': 'open:core:container',
|
340
|
+
'ocp': 'open:core:project',
|
341
|
+
// test
|
342
|
+
'twd': 'test:watch:debug',
|
343
|
+
'tdw': 'test:watch:debug',
|
344
|
+
'tw': 'test:watch',
|
345
|
+
'td': 'test:debug',
|
346
|
+
't': 'test',
|
347
|
+
// git push
|
348
|
+
'pt': 'push:tag',
|
349
|
+
'p': 'push',
|
350
|
+
'pa': 'pushalll',
|
351
|
+
// other
|
352
|
+
'sj': 'select:java',
|
353
|
+
'scm': 'showcoremodules',
|
354
|
+
'tpu': 'target:proj:update',
|
355
|
+
'ugd': 'update:global:deps',
|
356
|
+
'ud': 'update:deps',
|
357
|
+
'dgl': 'detect:global:libs',
|
358
|
+
'pr': 'print:relatives',
|
359
|
+
};
|
360
|
+
const areTrustedForPatchUpdate = [
|
361
|
+
'@angular',
|
362
|
+
'@ngrx',
|
363
|
+
'rxjs',
|
364
|
+
'zone.js',
|
365
|
+
'tslib',
|
366
|
+
'typescript',
|
367
|
+
'webpack'
|
368
|
+
];
|
369
|
+
export const config = {
|
370
|
+
packagesThat: {
|
371
|
+
areTrustedForPatchUpdate,
|
372
|
+
},
|
373
|
+
/* */
|
374
|
+
/* */
|
375
|
+
/* */
|
376
|
+
/* */
|
377
|
+
/* */
|
378
|
+
/* */
|
379
|
+
/* */
|
380
|
+
/* */
|
381
|
+
/* */
|
382
|
+
/* */
|
383
|
+
coreProjectVersions: ['v1', 'v2', 'v3'],
|
384
|
+
quickFixes: {
|
385
|
+
missingLibs: [
|
386
|
+
'react-native-sqlite-storage'
|
387
|
+
]
|
388
|
+
},
|
389
|
+
packageJsonSplit,
|
390
|
+
regexString: {
|
391
|
+
pathPartStringRegex: `(\/([a-zA-Z0-9]|\\-|\\_|\\+|\\.)*)`
|
392
|
+
},
|
393
|
+
placeholders: {
|
394
|
+
forProjectsInEnvironmentFile: '//<PLACEHOLDER_FOR_PROJECTS>'
|
395
|
+
},
|
396
|
+
array: {
|
397
|
+
isomorphicPackages: 'isomorphicPackages'
|
398
|
+
},
|
399
|
+
defaultFrameworkVersion: 'v3',
|
400
|
+
CONST: {
|
401
|
+
UNIT_TEST_TIMEOUT: 30000,
|
402
|
+
INTEGRATION_TEST: 30000,
|
403
|
+
BACKEND_HTTP_REQUEST_TIMEOUT: 3000,
|
404
|
+
},
|
405
|
+
debug: {
|
406
|
+
sourceModifier: [],
|
407
|
+
baselineSiteJoin: {
|
408
|
+
DEBUG_PATHES: [
|
409
|
+
// "src/apps/auth/AuthController.ts",
|
410
|
+
// '/src/app/+preview-components/preview-components.component.ts',
|
411
|
+
// '/src/controllers.ts',
|
412
|
+
// '/src/app/+preview-components/components/+preview-buildtnpprocess/preview-buildtnpprocess.component.ts'
|
413
|
+
],
|
414
|
+
DEBUG_MERGE_PATHES: [
|
415
|
+
// "src/apps/auth/AuthController.ts",
|
416
|
+
// '/src/app/+preview-components/components/+preview-buildtnpprocess/preview-buildtnpprocess.component.ts'
|
417
|
+
// '/components/formly/base-components/editor/editor-wrapper.component.ts'
|
418
|
+
// '/src/app/+preview-components/components/+preview-buildtnpprocess/preview-buildtnpprocess.component.ts'
|
419
|
+
]
|
420
|
+
}
|
421
|
+
},
|
422
|
+
/* */
|
423
|
+
/* */
|
424
|
+
frameworkNames: {
|
425
|
+
tnp: 'tnp',
|
426
|
+
firedev: 'firedev'
|
427
|
+
},
|
428
|
+
startPort: 6001,
|
429
|
+
frameworks: ['bootstrap', 'ionic', 'material'],
|
430
|
+
/* */
|
431
|
+
/* */
|
432
|
+
/* */
|
433
|
+
/* */
|
434
|
+
/* */
|
435
|
+
/* */
|
436
|
+
/* */
|
437
|
+
/* */
|
438
|
+
/* */
|
439
|
+
/* */
|
440
|
+
/* */
|
441
|
+
/* */
|
442
|
+
/* */
|
443
|
+
/* */
|
444
|
+
/* */
|
445
|
+
/* */
|
446
|
+
/* */
|
447
|
+
/* */
|
448
|
+
/* */
|
449
|
+
/* */
|
450
|
+
/* */
|
451
|
+
/* */
|
452
|
+
/* */
|
453
|
+
/* */
|
454
|
+
/* */
|
455
|
+
/* */
|
456
|
+
/* */
|
457
|
+
/* */
|
458
|
+
/* */
|
459
|
+
/* */
|
460
|
+
/* */
|
461
|
+
/* */
|
462
|
+
/* */
|
463
|
+
/* */
|
464
|
+
/* */
|
465
|
+
/* */
|
466
|
+
/* */
|
467
|
+
/* */
|
468
|
+
/* */
|
469
|
+
/* */
|
470
|
+
/* */
|
471
|
+
/* */
|
472
|
+
/* */
|
473
|
+
/* */
|
474
|
+
/* */
|
475
|
+
/* */
|
476
|
+
/* */
|
477
|
+
/* */
|
478
|
+
/* */
|
479
|
+
/* */
|
480
|
+
/* */
|
481
|
+
/* */
|
482
|
+
/* */
|
483
|
+
/* */
|
484
|
+
/* */
|
485
|
+
/* */
|
486
|
+
/* */
|
487
|
+
/* */
|
488
|
+
/* */
|
489
|
+
/* */
|
490
|
+
/* */
|
491
|
+
/* */
|
492
|
+
/* */
|
493
|
+
/* */
|
494
|
+
/* */
|
495
|
+
/* */
|
496
|
+
/* */
|
497
|
+
/* */
|
498
|
+
/* */
|
499
|
+
/* */
|
500
|
+
/* */
|
501
|
+
/* */
|
502
|
+
/* */
|
503
|
+
/* */
|
504
|
+
/* */
|
505
|
+
/* */
|
506
|
+
/* */
|
507
|
+
/* */
|
508
|
+
/* */
|
509
|
+
/* */
|
510
|
+
/* */
|
511
|
+
/* */
|
512
|
+
/* */
|
513
|
+
/* */
|
514
|
+
/* */
|
515
|
+
/* */
|
516
|
+
/* */
|
517
|
+
/* */
|
518
|
+
/* */
|
519
|
+
/* */
|
520
|
+
/* */
|
521
|
+
/* */
|
522
|
+
/* */
|
523
|
+
/* */
|
524
|
+
/* */
|
525
|
+
/* */
|
526
|
+
/* */
|
527
|
+
/* */
|
528
|
+
allowedEnvironments,
|
529
|
+
folder,
|
530
|
+
tempFolders,
|
531
|
+
// @ts-ignore
|
532
|
+
filesNotAllowedToClean: Object.keys(filesNotAllowedToClean).map(key => filesNotAllowedToClean[key]),
|
533
|
+
file,
|
534
|
+
default: {
|
535
|
+
cloud: {
|
536
|
+
environment: {
|
537
|
+
name: 'online'
|
538
|
+
}
|
539
|
+
}
|
540
|
+
},
|
541
|
+
SUBERIZED_PREFIX: `---stuberized`,
|
542
|
+
names: {
|
543
|
+
env: allowedEnvironmentsObj,
|
544
|
+
baseline: 'baseline',
|
545
|
+
defaultServer: 'default server',
|
546
|
+
},
|
547
|
+
reservedArgumentsNamesUglify: [
|
548
|
+
'reservedExpOne',
|
549
|
+
'reservedExpSec'
|
550
|
+
],
|
551
|
+
extensions: {
|
552
|
+
/**
|
553
|
+
* Modify source: import,export, requires
|
554
|
+
*/
|
555
|
+
get modificableByReplaceFn() {
|
556
|
+
return [
|
557
|
+
'ts',
|
558
|
+
'js',
|
559
|
+
...stylesFilesExtension,
|
560
|
+
].map(f => `.${f}`);
|
561
|
+
},
|
562
|
+
},
|
563
|
+
notFiredevProjects: [
|
564
|
+
'unknow', 'unknow-npm-project', 'scenario', 'navi'
|
565
|
+
],
|
566
|
+
/**
|
567
|
+
* Build allowed types
|
568
|
+
*/
|
569
|
+
allowedTypes: {
|
570
|
+
/**
|
571
|
+
* Projects for build:app:watch command
|
572
|
+
*/
|
573
|
+
app: [
|
574
|
+
GlobalLibTypeName.angularClient,
|
575
|
+
GlobalLibTypeName.angularLib,
|
576
|
+
GlobalLibTypeName.isomorphicLib,
|
577
|
+
GlobalLibTypeName.ionicClient,
|
578
|
+
GlobalLibTypeName.docker,
|
579
|
+
GlobalLibTypeName.container,
|
580
|
+
GlobalLibTypeName.vscodeExt,
|
581
|
+
],
|
582
|
+
/**
|
583
|
+
* Projects for build:(dist|bundle):(watch) command
|
584
|
+
*/
|
585
|
+
libs: [
|
586
|
+
GlobalLibTypeName.angularLib,
|
587
|
+
GlobalLibTypeName.isomorphicLib,
|
588
|
+
GlobalLibTypeName.workspace,
|
589
|
+
GlobalLibTypeName.container,
|
590
|
+
GlobalLibTypeName.docker,
|
591
|
+
GlobalLibTypeName.vscodeExt,
|
592
|
+
]
|
593
|
+
},
|
594
|
+
moduleNameAngularLib,
|
595
|
+
moduleNameIsomorphicLib,
|
596
|
+
filesExtensions: {
|
597
|
+
filetemplate: 'filetemplate',
|
598
|
+
styles: stylesFilesExtension,
|
599
|
+
},
|
600
|
+
projectTypes: {
|
601
|
+
forNpmLibs: [
|
602
|
+
GlobalLibTypeName.angularLib,
|
603
|
+
GlobalLibTypeName.isomorphicLib,
|
604
|
+
],
|
605
|
+
with: {
|
606
|
+
angularAsCore: [
|
607
|
+
GlobalLibTypeName.angularClient,
|
608
|
+
GlobalLibTypeName.angularLib,
|
609
|
+
GlobalLibTypeName.ionicClient,
|
610
|
+
],
|
611
|
+
componetsAsSrc: [
|
612
|
+
GlobalLibTypeName.angularLib,
|
613
|
+
],
|
614
|
+
}
|
615
|
+
},
|
616
|
+
// environmentName,
|
617
|
+
localLibs: [
|
618
|
+
'eslint',
|
619
|
+
'mkdirp',
|
620
|
+
'gulp',
|
621
|
+
'npm-run',
|
622
|
+
'rimraf',
|
623
|
+
'nodemon',
|
624
|
+
'release-it',
|
625
|
+
'tsc',
|
626
|
+
'watch',
|
627
|
+
'http-server',
|
628
|
+
'ts-node',
|
629
|
+
'sort-package-json',
|
630
|
+
'concurrently',
|
631
|
+
'sloc',
|
632
|
+
'morphi'
|
633
|
+
],
|
634
|
+
helpAlias: [
|
635
|
+
'-h',
|
636
|
+
'--help',
|
637
|
+
'-help',
|
638
|
+
'help'
|
639
|
+
],
|
640
|
+
required: {
|
641
|
+
npm: [
|
642
|
+
{ name: '@angular/cli', version: '13' },
|
643
|
+
{ name: 'extract-zip', version: '1.6.7' },
|
644
|
+
{ name: 'watch', version: '1.0.2' },
|
645
|
+
{ name: 'cpr' },
|
646
|
+
{ name: 'check-node-version' },
|
647
|
+
{ name: 'npm-run', version: '4.1.2' },
|
648
|
+
{ name: 'rimraf' },
|
649
|
+
{ name: 'mkdirp' },
|
650
|
+
{ name: 'renamer', version: '2.0.1' },
|
651
|
+
{ name: 'nodemon' },
|
652
|
+
{ name: 'madge' },
|
653
|
+
{ name: 'yarn' },
|
654
|
+
{ name: 'http-server' },
|
655
|
+
{ name: 'increase-memory-limit' },
|
656
|
+
{ name: 'bower' },
|
657
|
+
{ name: 'fkill', installName: 'fkill-cli' },
|
658
|
+
// { name: 'yo' },
|
659
|
+
{ name: 'mocha' },
|
660
|
+
// { name: 'chai' },
|
661
|
+
{ name: 'ts-node' },
|
662
|
+
{ name: 'vsce' },
|
663
|
+
// { name: 'stmux' },
|
664
|
+
{ name: 'webpack-bundle-analyzer' },
|
665
|
+
// { name: 'ng', installName: '@angular/cli' },
|
666
|
+
// { name: 'ngx-pwa-icons', version: '0.1.2' },
|
667
|
+
// { name: 'real-favicon', installName: 'cli-real-favicon' },
|
668
|
+
{ name: 'babel', installName: 'babel-cli' },
|
669
|
+
{ name: 'javascript-obfuscator', version: '4' },
|
670
|
+
{ name: 'uglifyjs', installName: 'uglify-js' },
|
671
|
+
],
|
672
|
+
niceTools: [
|
673
|
+
{ name: 'speed-test' },
|
674
|
+
{ name: 'npm-name' },
|
675
|
+
{ name: 'vantage', platform: 'linux' },
|
676
|
+
{ name: 'clinic', platform: 'linux' },
|
677
|
+
{ name: 'vtop', platform: 'linux' },
|
678
|
+
{ name: 'public-ip' },
|
679
|
+
{ name: 'empty-trash' },
|
680
|
+
{ name: 'is-up' },
|
681
|
+
{ name: 'is-online' },
|
682
|
+
{ name: 'ttystudio' },
|
683
|
+
{ name: 'bcat' },
|
684
|
+
{ name: 'wifi-password', installName: 'wifi-password-cli' },
|
685
|
+
{ name: 'wallpaper', installName: 'wallpaper-cli' },
|
686
|
+
{ name: 'brightness', installName: 'brightness-cli' },
|
687
|
+
{ name: 'subdownloader' },
|
688
|
+
{ name: 'rtail' },
|
689
|
+
{ name: 'iponmap' },
|
690
|
+
{ name: 'jsome' },
|
691
|
+
{ name: 'drawille', isNotCli: true },
|
692
|
+
{ name: 'columnify', isNotCli: true },
|
693
|
+
{ name: 'multispinner', isNotCli: true },
|
694
|
+
{ name: 'cfonts' }, // draw super nice fonts in console
|
695
|
+
],
|
696
|
+
programs: [,
|
697
|
+
{
|
698
|
+
name: 'code',
|
699
|
+
website: 'https://code.visualstudio.com/'
|
700
|
+
}
|
701
|
+
]
|
702
|
+
}
|
703
|
+
};
|
704
|
+
// export const GlobalIsomorphicDependencies: ConfigModels.GlobalDependencies = {
|
705
|
+
// npm: [
|
706
|
+
// { name: 'rimraf' },
|
707
|
+
// { name: 'npm-run', version: '4.1.2' },
|
708
|
+
// { name: 'cpr' },
|
709
|
+
// { name: 'check-node-version' },
|
710
|
+
// { name: 'vsce' },
|
711
|
+
// ],
|
712
|
+
// programs: [
|
713
|
+
// // {
|
714
|
+
// // name: 'code',
|
715
|
+
// // website: 'https://code.visualstudio.com/'
|
716
|
+
// // }
|
717
|
+
// ] as { name: string; website: string }[]
|
718
|
+
// };
|
719
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWNvbmZpZy9wcm9qZWN0cy90bnAtY29uZmlnL3NyYy9saWIvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxFQUFFLFdBQVcsSUFBSSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXdFekQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsU0FBUyxFQUFFLFdBQVc7SUFDdEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLGlCQUFpQixFQUFFLHFCQUFxQjtJQUN4QyxJQUFJLEVBQUUsTUFBTTtJQUNaLFFBQVEsRUFBRSxVQUFVO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQTJCO0lBQ2hELGlCQUFpQixDQUFDLFVBQVU7SUFDNUIsaUJBQWlCLENBQUMsYUFBYTtJQUMvQixpQkFBaUIsQ0FBQyxhQUFhO0lBQy9CLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsY0FBYztJQUNoQyxpQkFBaUIsQ0FBQyxTQUFTO0lBQzNCLGlCQUFpQixDQUFDLFNBQVM7SUFDM0IsaUJBQWlCLENBQUMsTUFBTTtJQUN4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VyxFQUFFO1lBQ3JCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1lBQzNELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO1lBQ25ELEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUU7WUFDckQsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3pCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNqQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDbkIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3BDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQ3hDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLG1DQUFtQztTQUN4RDtRQUNELFFBQVEsRUFBRSxDQUFDO1lBQ1Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osT0FBTyxFQUFFLGdDQUFnQzthQUMxQztTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBSUYsaUZBQWlGO0FBQ2pGLFdBQVc7QUFDWCwwQkFBMEI7QUFDMUIsNkNBQTZDO0FBQzdDLHVCQUF1QjtBQUN2QixzQ0FBc0M7QUFDdEMsd0JBQXdCO0FBQ3hCLE9BQU87QUFDUCxnQkFBZ0I7QUFDaEIsV0FBVztBQUNYLHlCQUF5QjtBQUN6QixxREFBcUQ7QUFDckQsV0FBVztBQUNYLDZDQUE2QztBQUM3QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEYXJpdXN6IEZpbGlwaWFrXG4gKiBAYXV0aG9yIGRhcmVrZjc3QGdtYWlsLmNvbVxuICogUmVjb21tZW5kZWQgY29uZmlnIGZvciBhbGwgaXNvbW9ycGhpYyBsaWJzICpcbiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbmV4cG9ydCB7IENvcmVIZWxwZXJzIGFzIEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuXG4vLyNyZWdpb24gY29uZmlnIG1vZGVsc1xuXG5leHBvcnQgbmFtZXNwYWNlIENvbmZpZ01vZGVscyB7XG4gIGV4cG9ydCB0eXBlIEVudmlyb25tZW50TmFtZSA9ICdsb2NhbCcgfCAnc3RhdGljJyB8ICdkZXYnIHwgJ3N0YWdlJyB8ICdwcm9kJyB8ICdvbmxpbmUnIHwgJ3Rlc3QnIHwgJ3FhJyB8ICdjdXN0b20nO1xuICBleHBvcnQgdHlwZSBVSUZyYW1ld29yayA9ICdib290c3RyYXAnIHwgJ21hdGVyaWFsJyB8ICdpb25pYyc7XG4gIGV4cG9ydCB0eXBlIEZyYW1ld29ya1ZlcnNpb24gPSAndjEnIHwgJ3YyJyB8ICd2Myc7XG4gIGV4cG9ydCB0eXBlIEN1dGFibGVGaWxlRXh0ID0gJ3Njc3MnIHwgJ2NzcycgfCAnc2FzcycgfCAnaHRtbCcgfCAndHMnO1xuICBleHBvcnQgdHlwZSBJbWFnZUZpbGVFeHRlbnNpb24gPSAnanBnJyB8ICdqcGVnJyB8ICdwbmcnIHwgJ3N2Zyc7XG4gIGV4cG9ydCB0eXBlIEZpbGVFeHRlbnNpb24gPSAndHMnIHwgJ2pzJyB8ICdqc29uJyB8ICdodG1sJyB8IEltYWdlRmlsZUV4dGVuc2lvbiB8ICd0eHQnIHwgQ3V0YWJsZUZpbGVFeHQ7XG5cblxuICBleHBvcnQgdHlwZSBIdHRwTWV0aG9kID0gJ2dldCcgfCAncG9zdCcgfCAncHV0JyB8ICdkZWxldGUnIHwgJ3BhdGNoJyB8ICdoZWFkJyB8ICdqc29ucCc7XG4gIGV4cG9ydCB0eXBlIFBhcmFtVHlwZSA9ICdQYXRoJyB8ICdRdWVyeScgfCAnQ29va2llJyB8ICdIZWFkZXInIHwgJ0JvZHknO1xuICBleHBvcnQgdHlwZSBUc1VzYWdlID0gJ2ltcG9ydCcgfCAnZXhwb3J0JztcblxuICBleHBvcnQgdHlwZSBMaWJUeXBlID0gJ3Vua25vdydcbiAgICB8ICdpc29tb3JwaGljLWxpYidcbiAgICB8ICdhbmd1bGFyLWxpYicgLy8gaHR0cHM6Ly9jbGkuYW5ndWxhci5pby9cbiAgICB8ICdlbGVjdHJvbi1jbGllbnQnIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhpbWVncmlzL2FuZ3VsYXItZWxlY3Ryb25cbiAgICB8ICdpb25pYy1saWInXG4gICAgfCAnYW5ndWxhci1jbGllbnQnXG4gICAgfCAnaW9uaWMtY2xpZW50J1xuICAgIHwgJ3dvcmtzcGFjZSdcbiAgICB8ICdjb250YWluZXInXG4gICAgfCAnZG9ja2VyJ1xuICAgIHwgJ3ZzY29kZS1leHQnXG4gICAgfCAnY2hyb21lLWV4dCdcbiAgICB8ICd1bmtub3ctbnBtLXByb2plY3QnXG4gICAgfCAnc2NlbmFyaW8nXG4gICAgfCAnbmF2aSdcbiAgICB8ICdsZWFmJ1xuICAgIHwgJ2dhbWUtZW5naW5lLWxpYi1waXhpJyAvLyBodHRwczovL2dpdGh1Yi5jb20vcGl4aWpzL3BpeGkuanNcbiAgICB8ICdnYW1lLWVuZ2luZS1saWItcGhhc2VyJyAvLyBodHRwczovL2dpdGh1Yi5jb20vcGhvdG9uc3Rvcm0vcGhhc2VyXG4gICAgfCAnZ2FtZS1lbmdpbmUtbGliLWV4Y2FsaWJ1cicgLy8gaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWJ1cmpzL0V4Y2FsaWJ1clxuICAgIHwgJ2dhbWUtZW5naW5lLWxpYi1iYWJ5bG9uJyAvLyBodHRwczovL2dpdGh1Yi5jb20vQmFieWxvbkpTL0JhYnlsb24uanNcbiAgICA7XG5cbiAgZXhwb3J0IHR5cGUgTmV3RmFjdG9yeVR5cGUgPSBMaWJUeXBlIHwgJ21vZGVsJyB8ICdzaW5nbGUtZmlsZS1wcm9qZWN0JztcbiAgZXhwb3J0IHR5cGUgQ29yZUxpYkNhdGVnb3J5ID0gTGliVHlwZSB8ICdjb21tb24nO1xuICBleHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBTaXplIHtcbiAgICB3OiBudW1iZXI7XG4gICAgaDogbnVtYmVyO1xuICB9XG5cblxuICBleHBvcnQgaW50ZXJmYWNlIEdsb2JhbE5wbURlcGVuZGVuY3kge1xuICAgIG5hbWU6IHN0cmluZzsgaW5zdGFsbE5hbWU/OiBzdHJpbmc7IHZlcnNpb24/OiBzdHJpbmcgfCBudW1iZXI7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEdsb2JhbENvbW1hbmRMaW5lUHJvZ3JhbURlcGVuZGVuY3kge1xuICAgIG5hbWU6IHN0cmluZzsgd2Vic2l0ZTogc3RyaW5nOyB2ZXJzaW9uPzogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsRGVwZW5kZW5jaWVzIHtcbiAgICBucG0/OiBHbG9iYWxOcG1EZXBlbmRlbmN5W107XG4gICAgcHJvZ3JhbXM/OiBHbG9iYWxDb21tYW5kTGluZVByb2dyYW1EZXBlbmRlbmN5W107XG4gIH1cblxuICBleHBvcnQgdHlwZSBGaWxlRXZlbnQgPSAnY3JlYXRlZCcgfCAnY2hhbmdlZCcgfCAncmVtb3ZlZCcgfCAncmVuYW1lJztcbiAgZXhwb3J0IHR5cGUgT3V0Rm9sZGVyID0gJ2Rpc3QnIHwgJ2J1bmRsZScgfCAnYnJvd3Nlcic7XG4gIGV4cG9ydCB0eXBlIEZvcm1seUlucHV0VHlwZSA9ICdpbnB1dCcgfCAnc3dpdGNoJyB8ICdkYXRlcGlja2VyJyB8ICdyZXBlYXQnIHwgJ2dyb3VwJztcbiAgZXhwb3J0IHR5cGUgRGF0YWJhc2VUeXBlID0gJ2JldHRlci1zcWxpdGUzJyB8ICdzcWxpdGUnIHwgJ215c3FsJztcblxufVxuXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxMaWJUeXBlTmFtZSA9IHtcbiAgaXNvbW9ycGhpY0xpYjogJ2lzb21vcnBoaWMtbGliJyxcbiAgYW5ndWxhckxpYjogJ2FuZ3VsYXItbGliJyxcbiAgZWxlY3Ryb25DbGllbnQ6ICdlbGVjdHJvbi1jbGllbnQnLFxuICBpb25pY0xpYjogJ2lvbmljLWxpYicsXG4gIGFuZ3VsYXJDbGllbnQ6ICdhbmd1bGFyLWNsaWVudCcsXG4gIGlvbmljQ2xpZW50OiAnaW9uaWMtY2xpZW50JyxcbiAgd29ya3NwYWNlOiAnd29ya3NwYWNlJyxcbiAgY29udGFpbmVyOiAnY29udGFpbmVyJyxcbiAgZG9ja2VyOiAnZG9ja2VyJyxcbiAgdW5rbm93TnBtUHJvamVjdDogJ3Vua25vdy1ucG0tcHJvamVjdCcsXG4gIHZzY29kZUV4dDogJ3ZzY29kZS1leHQnLFxuICBjaHJvbWVFeHQ6ICdjaHJvbWUtZXh0JyxcbiAgc2luZ2xlRmlsZVByb2plY3Q6ICdzaW5nbGUtZmlsZS1wcm9qZWN0JyxcbiAgbmF2aTogJ25hdmknLFxuICBzY2VuYXJpbzogJ3NjZW5hcmlvJ1xufTtcblxuZXhwb3J0IGNvbnN0IExpYlR5cGVBcnI6IENvbmZpZ01vZGVscy5MaWJUeXBlW10gPSBbXG4gIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJMaWIsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmlzb21vcnBoaWNMaWIsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJDbGllbnQsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmlvbmljQ2xpZW50LFxuICBHbG9iYWxMaWJUeXBlTmFtZS5lbGVjdHJvbkNsaWVudCxcbiAgR2xvYmFsTGliVHlwZU5hbWUud29ya3NwYWNlLFxuICBHbG9iYWxMaWJUeXBlTmFtZS5jb250YWluZXIsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmRvY2tlcixcbiAgR2xvYmFsTGliVHlwZU5hbWUudW5rbm93TnBtUHJvamVjdCxcbiAgR2xvYmFsTGliVHlwZU5hbWUudnNjb2RlRXh0LFxuICBHbG9iYWxMaWJUeXBlTmFtZS5jaHJvbWVFeHQsXG4gIEdsb2JhbExpYlR5cGVOYW1lLm5hdmksXG4gIEdsb2JhbExpYlR5cGVOYW1lLnNjZW5hcmlvLFxuXSBhcyBDb25maWdNb2RlbHMuTGliVHlwZVtdO1xuXG5cbmV4cG9ydCBjb25zdCBDb3JlTGliQ2F0ZWdvcnlBcnI6IENvbmZpZ01vZGVscy5Db3JlTGliQ2F0ZWdvcnlbXSA9IFsgLy8gVE9ETyB0aGlzIGlzIGZvciB3aGF0ID9cbiAgR2xvYmFsTGliVHlwZU5hbWUuYW5ndWxhckxpYixcbiAgR2xvYmFsTGliVHlwZU5hbWUuaXNvbW9ycGhpY0xpYixcbiAgR2xvYmFsTGliVHlwZU5hbWUuYW5ndWxhckNsaWVudCxcbiAgR2xvYmFsTGliVHlwZU5hbWUuZWxlY3Ryb25DbGllbnQsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmlvbmljQ2xpZW50LFxuICBHbG9iYWxMaWJUeXBlTmFtZS5kb2NrZXIsXG4gICdjb21tb24nXG5dIGFzIENvbmZpZ01vZGVscy5Db3JlTGliQ2F0ZWdvcnlbXTtcblxuLy8jZW5kcmVnaW9uXG5cblxuXG5jb25zdCBhbGxvd2VkRW52aXJvbm1lbnRzOiBDb25maWdNb2RlbHMuRW52aXJvbm1lbnROYW1lW10gPSBbJ3N0YXRpYycsICdkZXYnLCAncHJvZCcsICdzdGFnZScsICdvbmxpbmUnLCAndGVzdCcsICdxYScsICdjdXN0b20nXTtcbmNvbnN0IGFsbG93ZWRFbnZpcm9ubWVudHNPYmogPSB7fTtcbmFsbG93ZWRFbnZpcm9ubWVudHMuZm9yRWFjaChzID0+IHtcbiAgLy8gQHRzLWlnbm9yZVxuICBhbGxvd2VkRW52aXJvbm1lbnRzT2JqW3NdID0gcztcbn0pO1xuXG5jb25zdCBmaXJlZGV2ID0gJ2ZpcmVkZXYnO1xuY29uc3QgbW9ycGhpID0gJ21vcnBoaSc7XG4vKiAqL1xuLyogKi9cbiAgXG5jb25zdCB1cmxNb3JwaGkgPSAnaHR0cHM6Ly9naXRodWIuY29tL2RhcmVrZjc3L21vcnBoaS5naXQnO1xuXG5jb25zdCBmaWxlc05vdEFsbG93ZWRUb0NsZWFuID0ge1xuICBfZ2l0aWdub3JlOiAnLmdpdGlnbm9yZScsXG4gIF9ucG1yYzogJy5ucG1yYycsXG4gIF9ucG1pZ25vcmU6ICcubnBtaWdub3JlJyxcbiAgdHNsaW50X2pzb246ICd0c2xpbnQuanNvbicsXG4gIF9lZGl0b3Jjb25maWc6ICcuZWRpdG9yY29uZmlnJyxcbiAgX2FuZ3VsYXJDbGlfanNvbjogJy5hbmd1bGFyLWNsaS5qc29uJyxcbiAgX3ZzY29kZV9sYXVuY2hfanNvbjogJy52c2NvZGUvbGF1bmNoLmpzb24nLFxufTtcblxuY29uc3QgZmlsZSA9IHtcbiAgX2Jvd2VycmM6ICcuYm93ZXJyYycsXG4gIGJvd2VyX2pzb246ICdib3dlci5qc29uJyxcbiAgY29udHJvbGxlcnNfdHM6ICdjb250cm9sbGVycy50cycsXG4gIGVudGl0aWVzX3RzOiAnZW50aXRpZXMudHMnLFxuICBhbmd1bGFyX2pzb246ICdhbmd1bGFyLmpzb24nLFxuICBhdXRvYl9hY3Rpb25zX2pzOiAnYXV0by1hY3Rpb25zLmpzJyxcbiAgbG9jYWxfY29uZmlnX2pzOiAnbG9jYWwtY29uZmlnLmpzJyxcbiAgYnVpbGRfY29uZmlnX2pzOiAnYnVpbGQtY29uZmlnLmpzJyxcbiAgbG9jYWxfY29uZmlnOiAnbG9jYWwtY29uZmlnJyxcbiAgc3RhcnRfYmFja2VuZF90czogJ3N0YXJ0LmJhY2tlbmQudHMnLFxuICBwYWNrYWdlX2pzb246ICdwYWNrYWdlLmpzb24nLFxuICByZXN1bHRfcGFja2FnZXNfanNvbjogJ3Jlc3VsdC1wYWNrYWdlcy5qc29uJyxcbiAgcGFja2FnZV9qc29uNTogJ3BhY2thZ2UuanNvbjUnLFxuICBwYWNrYWdlX2pzb25fX3RucF9qc29uOiAncGFja2FnZS5qc29uX3RucC5qc29uJyxcbiAgcGFja2FnZV9qc29uX190bnBfanNvbjU6ICdwYWNrYWdlLmpzb25fdG5wLmpzb241JyxcbiAgcGFja2FnZV9qc29uX19kZXZEZXBlbmRlbmNpZXNfanNvbjogJ3BhY2thZ2UuanNvbl9kZXZEZXBlbmRlbmNpZXMuanNvbicsXG4gIHlhcm5fbG9jazogJ3lhcm4ubG9jaycsXG4gIHBhY2thZ2VfbG9ja19qc29uOiAncGFja2FnZS1sb2NrLmpzb24nLFxuICB0bnBFbnZpcm9ubWVudF9qc29uOiAndG1wLWVudmlyb25tZW50Lmpzb24nLFxuICBlbnZpcm9ubWVudDogJ2Vudmlyb25tZW50JyxcbiAgZW52aXJvbm1lbnRfanM6ICdlbnZpcm9ubWVudC5qcycsXG4gIHRtcF90cmFuc2FjdGlvbl9waWRfdHh0OiAndG1wLXRyYW5zYWN0aW9uLXBpZC50eHQnLFxuICBtYW5pZmVzdF93ZWJtYW5pZmVzdDogJ21hbmlmZXN0LndlYm1hbmlmZXN0JyxcbiAgcHVibGljQXBpX3RzOiAncHVibGljX2FwaS50cycsXG4gIHB1YmxpY0FwaV9kX3RzOiAncHVibGljX2FwaS5kLnRzJyxcbiAgcHVibGljYXBpX3RzOiAncHVibGljLWFwaS50cycsXG4gIF9iYWJlbHJjOiAnLmJhYmVscmMnLFxuICBpbmRleF9kX3RzOiAnaW5kZXguZC50cycsXG4gIGluZGV4X3RzOiAnaW5kZXgudHMnLFxuICBpbmRleF9qczogJ2luZGV4LmpzJyxcbiAgaW5kZXhfanNfbWFwOiAnaW5kZXguanMubWFwJyxcbiAgZGJfanNvbjogJ2RiLmpzb24nLFxuICBkYl9mb3JfdGVzdHNfanNvbjogJ2RiLWZvci10ZXN0cy5qc29uJyxcbiAgdG1wRG9ja2VySW1hZ2VJZDogJ3RtcC1kb2NrZXItaW1hZ2UtaWQnLFxuICB0bXBfcmVjZW50X2pzb246ICdyZWNlbnQuanNvbicsXG4gIHRtcElzb21vcnBoaWNQYWNrYWdlc0pzb246ICd0bXAtaXNvbW9ycGhpYy1wYWNrYWdlcy5qc29uJyxcbiAgdHNjb25maWdfanNvbjogJ3RzY29uZmlnLmpzb24nLFxuICBSRUFETUVfTUQ6ICdSRUFETUUubWQnLFxuICBzZXJ2ZXJfa2V5OiAnc2VydmVyLmtleScsXG4gIHNlcnZlcl9jZXJ0OiAnc2VydmVyLmNlcnQnLFxuICBzZXJ2ZXJfY2hhaW5fY2VydDogJ3NlcnZlci1jaGFpbi5jZXJ0JyxcbiAgbWV0YV9jb25maWdfbWQ6ICdtZXRhLWNvbnRlbnQubWQnLFxuICAuLi5maWxlc05vdEFsbG93ZWRUb0NsZWFuXG59O1xuXG5jb25zdCBwYWNrYWdlSnNvblNwbGl0ID0gW1xuICBmaWxlLnBhY2thZ2VfanNvbl9fdG5wX2pzb24sXG4gIGZpbGUucGFja2FnZV9qc29uX190bnBfanNvbjUsXG4gIGZpbGUucGFja2FnZV9qc29uX19kZXZEZXBlbmRlbmNpZXNfanNvbixcbl07XG5cbmNvbnN0IHRlbXBGb2xkZXJzID0ge1xuICBidW5kbGU6ICdidW5kbGUnLFxuICB2ZW5kb3I6ICd2ZW5kb3InLFxuICBkb2NzOiAnZG9jcycsXG4gIGRpc3Q6ICdkaXN0JyxcbiAgdG1wOiAndG1wJyxcbiAgdG1wQnVuZGxlUmVsZWFzZTogJ3RtcC1idW5kbGUtcmVsZWFzZScsXG4gIHRlbXBTcmM6ICd0bXAtc3JjJyxcbiAgdGVtcFNyY0Rpc3Q6ICd0bXAtc3JjLWRpc3QnLFxuICBwcmV2aWV3RGlzdEFwcDogJ2Rpc3QtYXBwJyxcbiAgcHJldmlldzogJ3ByZXZpZXcnLFxuICBicm93c2VyOiAnYnJvd3NlcicsXG4gIHdlYnNxbDogJ3dlYnNxbCcsXG4gIF9icm93c2VyOiAnLmJyb3dzZXInLFxuICBtb2R1bGU6ICdtb2R1bGUnLFxuICBiYWNrdXA6ICdiYWNrdXAnLFxuICBub2RlX21vZHVsZXM6ICdub2RlX21vZHVsZXMnLFxuICBjbGllbnQ6ICdjbGllbnQnLFxuICB0bnBfdGVzdHNfY29udGV4dDogJ3RtcC10ZXN0cy1jb250ZXh0JyxcbiAgdG1wUGFja2FnZTogJ3RtcC1wYWNrYWdlJyxcbiAgdG1wU2NlbmFyaW9zOiAndG1wLXNjZW5hcmlvcycsXG4gIHRtcFRlc3RzRW52aXJvbm1lbnRzOiAndG1wLXRlc3RzLWVudmlyb25tZW50cycsXG4gIHRlc3RzRW52aXJvbm1lbnRzOiAndGVzdHMtZW52aXJvbm1lbnRzJyxcbn07XG5cbmNvbnN0IHN0eWxlc0ZpbGVzRXh0ZW5zaW9uID0gW1xuICAnY3NzJyxcbiAgJ3Nhc3MnLFxuICAnc2NzcycsXG4gICdsZXNzJyxcbl07XG5cbmNvbnN0IGZvbGRlciA9IHtcbiAgc2NyaXB0czogJ3NjcmlwdHMnLFxuICBzY2VuYXJpb3M6ICdzY2VuYXJpb3MnLFxuICBib3dlcjogJ2Jvd2VyJyxcbiAgc3JjOiAnc3JjJyxcbiAgb3V0OiAnb3V0JyxcbiAgbGliOiAnbGliJyxcbiAgY3VzdG9tOiAnY3VzdG9tJyxcbiAgY29tcG9uZW50czogJ2NvbXBvbmVudHMnLFxuICBhc3NldHM6ICdhc3NldHMnLFxuICBhcHBzOiAnYXBwcycsXG4gIC8vIGVudGl0aWVzOiAnZW50aXRpZXMnLFxuICAvLyBjb250cm9sbGVyczogJ2NvbnRyb2xsZXJzJyxcbiAgLy8gcHJvamVjdHM6ICdwcm9qZWN0cycsXG4gIHdvcmtzcGFjZTogJ3dvcmtzcGFjZScsXG4gIGNvbnRhaW5lcjogJ2NvbnRhaW5lcicsXG4gIGJpbjogJ2JpbicsXG4gIF9iaW46ICcuYmluJyxcbiAgX3ZzY29kZTogJy52c2NvZGUnLFxuICBwcm9qZWN0OiAncHJvamVjdCcsXG4gIGV4dGVybmFsOiAnZXh0ZXJuYWwnLFxuICB0bXBEaXN0OiAndG1wLWRpc3QnLFxuICB0bXBGb3IoZDogQ29uZmlnTW9kZWxzLk91dEZvbGRlcikge1xuICAgIHJldHVybiBgdG1wLXNyYy0ke2R9YDtcbiAgfSxcbiAgdGFyZ2V0UHJvamVjdHM6IHtcbiAgICBERUZBVUxUX1BBVEhfR0VORVJBVEVEOiAndG1wLXRhcmdldC1wcm9qZWN0cy9nZW5lcmF0ZWQnLFxuICAgIERFRkFVTFRfUEFUSF9PUklHSU5TOiAndG1wLXRhcmdldC1wcm9qZWN0cy9vcmlnaW5zJyxcbiAgfSxcbiAgLi4udGVtcEZvbGRlcnNcbn07XG5cbi8vIEBMQVNUIFJFU09MVkUgVE5QIExPQ0FUSU9OICEhISBmb3IgZWFjaCBjb250ZXh0IGFuZCBSRUxFQVNFIFROUC1DT05GSUdcbmxldCBkaXJuYW1lRm9yVG5wOiBzdHJpbmc7XG4vKiAqL1xuLyogKi9cbiAgXG5jb25zdCBmaXJlZGV2UHJvamVjdHNSZWxhdGl2ZSA9IGAuLi9maXJlZGV2LXByb2plY3RzYDtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbmNvbnN0IG1vZHVsZU5hbWVBbmd1bGFyTGliID0gW1xuICBmb2xkZXIuY29tcG9uZW50cyxcbiAgZm9sZGVyLm1vZHVsZSxcbiAgZm9sZGVyLmRpc3QsXG4gIGZvbGRlci5icm93c2VyLFxuXTtcblxuY29uc3QgbW9kdWxlTmFtZUlzb21vcnBoaWNMaWIgPSBbXG4gIGZvbGRlci5zcmMsXG4gIGZvbGRlci5kaXN0LFxuICBmb2xkZXIuYnJvd3Nlcixcbl07XG5cbmNvbnN0IGFyZ3NSZXBsYWNlbWVudHNCdWlsZCA9IHtcbiAgLy8gU0hPUlRDVVRTXG4gICdiYSc6ICdidWlsZDphcHAnLFxuICAnYmF3JzogJ2J1aWxkOmFwcDp3YXRjaCcsXG4gICdidyc6ICdidWlsZDp3YXRjaCcsIC8vIGJ1aWQgZGlzdCB3YXRjaCB3aXRoIGF1dG9tYXRpYyBjb250YWluZXIvcHJldmlld1Byb2plY3RzIHBvcHVpbGF0aW9uXG4gICdiYXAnOiAnYnVpbGQ6YXBwOnByb2QnLFxuICAnYmFwdyc6ICdidWlsZDphcHA6cHJvZDp3YXRjaCcsXG5cbiAgLy8gKGRpc3QpYXBwIGJ1aWxkIGZvciBub3JtYWwgZGV2ZWxvcG1lbnQgLSB3YXRjaCBpcyBuZyBzZXJ2ZVxuICAnYmRhJzogJ2J1aWxkOmRpc3Q6YXBwJyxcbiAgJ2JkYXcnOiAnYnVpbGQ6ZGlzdDphcHA6d2F0Y2gnLFxuXG4gIC8vIChkaXN0KWFwcCBidWlsZCBmb3Igbm9ybWFsIGRldmVsb3BtZW50IChQUk9EVUNUSU9OIE1JTklGSUVEIENPREUpXG4gICdiYWRwdyc6ICdidWlsZDphcHA6ZGlzdDpwcm9kOndhdGNoJyxcbiAgJ2JhZHAnOiAnYnVpbGQ6YXBwOmRpc3Q6cHJvZCcsXG5cbiAgLy8gKGRpc3QpbGliIGJ1aWxkIC0gd2F0Y2ggaXMgbmcgYnVpbGRcbiAgJ2JkJzogJ2J1aWxkOmRpc3QnLCAnYmR3JzogJ2J1aWxkOmRpc3Q6d2F0Y2gnLFxuICAvLyAoZGlzdClsaWIgYnVpbGQgLSB3YXRjaCBpcyBuZyBidWlsZCAoUFJPRFVDVElPTiBNSU5JRklFRCBDT0RFKVxuICAnYmRwJzogJ2J1aWxkOmRpc3Q6cHJvZCcsICdiZHB3JzogJ2J1aWxkOmRpc3Q6cHJvZDp3YXRjaCcsXG5cbiAgLy8gKGJ1bmRsZSlhcHAgYnVpbGQgZm9yIHN0YXRpYyBjb2RlIChmaXJlZGV2IHBsdWdpbnMsIHByb2plY3QgZmluYWwgY29kZSwgZXRjLilcbiAgJ2JiYSc6ICdidWlsZDpidW5kbGU6YXBwJywgJ2JiYXcnOiAnYnVpbGQ6YnVuZGxlOmFwcDp3YXRjaCcsXG4gIC8vIChidW5sZSlsaWIgYnVpbGQgZm9yIHN0YXRpYyBjb2RlIChmaXJlZGV2IHBsdWdpbnMsIHByb2plY3QgZmluYWwgY29kZSwgZXRjLilcbiAgJ2JiJzogJ2J1aWxkOmJ1bmRsZScsICdiYncnOiAnYnVpbGQ6YnVuZGxlOndhdGNoJyxcbiAgLy8gKGJ1bmxlKWxpYiBidWlsZCBmb3Igc3RhdGljIGNvZGUgd2l0aCBuZyBidWlsZCAoUFJPRFVDVElPTiBNSU5JRklFRCBDT0RFKVxuICAnYmJwJzogJ2J1aWxkOmJ1bmRsZTpwcm9kJywgJ2JicHcnOiAnYnVpbGQ6YnVuZGxlOnByb2Q6d2F0Y2gnLFxuXG4gICdzYic6ICdzdGF0aWM6YnVpbGQnLFxuICAnc2JwJzogJ3N0YXRpYzpidWlsZDpwcm9kJyxcbiAgJ3NiZCc6ICdzdGF0aWM6YnVpbGQ6ZGlzdCcsXG4gICdzYmwnOiAnc3RhdGljOmJ1aWxkOmxpYicsXG4gICdzYmEnOiAnc3RhdGljOmJ1aWxkOmFwcCcsXG4gICdjYic6ICdjbGVhbjpidWlsZCdcbn07XG5cbmNvbnN0IGFyZ3NSZXBsYWNlbWVudHNPdGhlciA9IHtcbiAgLy8gZ2l0aHViIGRvY3NcbiAgJ2docHVzaCc6ICdnaXRodWJwdXNoJyxcbiAgJ2docHVsbCc6ICdnaXRodWJwdWxsJyxcbiAgLy8gbGFzdFxuICAnbCc6ICdsYXN0JyxcbiAgJ3NsJzogJ3Nob3c6bGFzdCcsXG4gICdsYic6ICdsYXN0OmJ1aWxkJyxcbiAgLy8gaW5zdGFsbFxuICAnaSc6ICdpbnN0YWxsJyxcbiAgJ3NpJzogJ3NpbnN0YWxsJyxcbiAgJ2lsJzogJ2luc3RhbGw6bG9jYWxseScsXG4gICdyYyc6ICdyZWNvbW1pdCcsXG4gIC8vIHJlbGVhc2VcbiAgJ3JwJzogJ3JlbGVhc2U6cHJvZCcsXG4gICdyJzogJ3JlbGVhc2UnLFxuICAncm1ham9yJzogJ3JlbGVhc2U6bWFqb3InLFxuICAncm1pbm9yJzogJ3JlbGVhc2U6bWlub3InLFxuICAvLyAncmEnOiAncmVsZWFzZTphbGwnLFxuICAnYXInOiAnYXV0bzpyZWxlYXNlJyxcbiAgLy8gdmVyc29wbVxuICAnLS12ZXJzaW9uJzogJ3ZlcnNpb24nLFxuICAnLXYnOiAndmVyc2lvbicsXG4gIC8vIG9wZW5cbiAgJ29jYyc6ICdvcGVuOmNvcmU6Y29udGFpbmVyJyxcbiAgJ29jcCc6ICdvcGVuOmNvcmU6cHJvamVjdCcsXG4gIC8vIHRlc3RcbiAgJ3R3ZCc6ICd0ZXN0OndhdGNoOmRlYnVnJyxcbiAgJ3Rkdyc6ICd0ZXN0OndhdGNoOmRlYnVnJyxcbiAgJ3R3JzogJ3Rlc3Q6d2F0Y2gnLFxuICAndGQnOiAndGVzdDpkZWJ1ZycsXG4gICd0JzogJ3Rlc3QnLFxuICAvLyBnaXQgcHVzaFxuICAncHQnOiAncHVzaDp0YWcnLFxuICAncCc6ICdwdXNoJyxcbiAgJ3BhJzogJ3B1c2hhbGxsJyxcbiAgLy8gb3RoZXJcbiAgJ3NqJzogJ3NlbGVjdDpqYXZhJyxcbiAgJ3NjbSc6ICdzaG93Y29yZW1vZHVsZXMnLFxuICAndHB1JzogJ3RhcmdldDpwcm9qOnVwZGF0ZScsXG4gICd1Z2QnOiAndXBkYXRlOmdsb2JhbDpkZXBzJyxcbiAgJ3VkJzogJ3VwZGF0ZTpkZXBzJywgLy8gc2FtZSBhcyBucG0gaVxuICAnZGdsJzogJ2RldGVjdDpnbG9iYWw6bGlicycsXG4gICdwcic6ICdwcmludDpyZWxhdGl2ZXMnLFxufTtcblxuY29uc3QgYXJlVHJ1c3RlZEZvclBhdGNoVXBkYXRlID0gW1xuICAnQGFuZ3VsYXInLFxuICAnQG5ncngnLFxuICAncnhqcycsXG4gICd6b25lLmpzJyxcbiAgJ3RzbGliJyxcbiAgJ3R5cGVzY3JpcHQnLFxuICAnd2VicGFjaydcbl07XG5cbmV4cG9ydCBjb25zdCBjb25maWcgPSB7XG4gIHBhY2thZ2VzVGhhdDoge1xuICAgIGFyZVRydXN0ZWRGb3JQYXRjaFVwZGF0ZSxcbiAgfSxcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICBjb3JlUHJvamVjdFZlcnNpb25zOiBbJ3YxJywgJ3YyJywgJ3YzJ10sXG4gIHF1aWNrRml4ZXM6IHtcbiAgICBtaXNzaW5nTGliczogW1xuICAgICAgJ3JlYWN0LW5hdGl2ZS1zcWxpdGUtc3RvcmFnZSdcbiAgICBdXG4gIH0sXG4gIHBhY2thZ2VKc29uU3BsaXQsXG4gIHJlZ2V4U3RyaW5nOiB7XG4gICAgcGF0aFBhcnRTdHJpbmdSZWdleDogYChcXC8oW2EtekEtWjAtOV18XFxcXC18XFxcXF98XFxcXCt8XFxcXC4pKilgXG4gIH0sXG4gIHBsYWNlaG9sZGVyczoge1xuICAgIGZvclByb2plY3RzSW5FbnZpcm9ubWVudEZpbGU6ICcvLzxQTEFDRUhPTERFUl9GT1JfUFJPSkVDVFM+J1xuICB9LFxuICBhcnJheToge1xuICAgIGlzb21vcnBoaWNQYWNrYWdlczogJ2lzb21vcnBoaWNQYWNrYWdlcydcbiAgfSxcbiAgZGVmYXVsdEZyYW1ld29ya1ZlcnNpb246ICd2MycgYXMgQ29uZmlnTW9kZWxzLkZyYW1ld29ya1ZlcnNpb24sXG4gIENPTlNUOiB7XG4gICAgVU5JVF9URVNUX1RJTUVPVVQ6IDMwMDAwLFxuICAgIElOVEVHUkFUSU9OX1RFU1Q6IDMwMDAwLFxuICAgIEJBQ0tFTkRfSFRUUF9SRVFVRVNUX1RJTUVPVVQ6IDMwMDAsXG4gIH0sXG4gIGRlYnVnOiB7XG4gICAgc291cmNlTW9kaWZpZXI6IFtcblxuICAgIF0sXG4gICAgYmFzZWxpbmVTaXRlSm9pbjoge1xuICAgICAgREVCVUdfUEFUSEVTOiBbXG4gICAgICAgIC8vIFwic3JjL2FwcHMvYXV0aC9BdXRoQ29udHJvbGxlci50c1wiLFxuICAgICAgICAvLyAnL3NyYy9hcHAvK3ByZXZpZXctY29tcG9uZW50cy9wcmV2aWV3LWNvbXBvbmVudHMuY29tcG9uZW50LnRzJyxcbiAgICAgICAgLy8gJy9zcmMvY29udHJvbGxlcnMudHMnLFxuICAgICAgICAvLyAnL3NyYy9hcHAvK3ByZXZpZXctY29tcG9uZW50cy9jb21wb25lbnRzLytwcmV2aWV3LWJ1aWxkdG5wcHJvY2Vzcy9wcmV2aWV3LWJ1aWxkdG5wcHJvY2Vzcy5jb21wb25lbnQudHMnXG4gICAgICBdLFxuICAgICAgREVCVUdfTUVSR0VfUEFUSEVTOiBbXG4gICAgICAgIC8vIFwic3JjL2FwcHMvYXV0aC9BdXRoQ29udHJvbGxlci50c1wiLFxuICAgICAgICAvLyAnL3NyYy9hcHAvK3ByZXZpZXctY29tcG9uZW50cy9jb21wb25lbnRzLytwcmV2aWV3LWJ1aWxkdG5wcHJvY2Vzcy9wcmV2aWV3LWJ1aWxkdG5wcHJvY2Vzcy5jb21wb25lbnQudHMnXG4gICAgICAgIC8vICcvY29tcG9uZW50cy9mb3JtbHkvYmFzZS1jb21wb25lbnRzL2VkaXRvci9lZGl0b3Itd3JhcHBlci5jb21wb25lbnQudHMnXG4gICAgICAgIC8vICcvc3JjL2FwcC8rcHJldmlldy1jb21wb25lbnRzL2NvbXBvbmVudHMvK3ByZXZpZXctYnVpbGR0bnBwcm9jZXNzL3ByZXZpZXctYnVpbGR0bnBwcm9jZXNzLmNvbXBvbmVudC50cydcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4vKiAqL1xuLyogKi9cbiAgXG4gIGZyYW1ld29ya05hbWVzOiB7XG4gICAgdG5wOiAndG5wJyxcbiAgICBmaXJlZGV2OiAnZmlyZWRldidcbiAgfSxcbiAgc3RhcnRQb3J0OiA2MDAxLFxuICBmcmFtZXdvcmtzOiBbJ2Jvb3RzdHJhcCcsICdpb25pYycsICdtYXRlcmlhbCddIGFzIENvbmZpZ01vZGVscy5VSUZyYW1ld29ya1tdLFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICBhbGxvd2VkRW52aXJvbm1lbnRzLFxuICBmb2xkZXIsXG4gIHRlbXBGb2xkZXJzLFxuICAvLyBAdHMtaWdub3JlXG4gIGZpbGVzTm90QWxsb3dlZFRvQ2xlYW46IE9iamVjdC5rZXlzKGZpbGVzTm90QWxsb3dlZFRvQ2xlYW4pLm1hcChrZXkgPT4gZmlsZXNOb3RBbGxvd2VkVG9DbGVhbltrZXldKSBhcyBzdHJpbmdbXSxcbiAgZmlsZSxcbiAgZGVmYXVsdDoge1xuICAgIGNsb3VkOiB7XG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBuYW1lOiAnb25saW5lJyBhcyBDb25maWdNb2RlbHMuRW52aXJvbm1lbnROYW1lXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBTVUJFUklaRURfUFJFRklYOiBgLS0tc3R1YmVyaXplZGAsXG4gIG5hbWVzOiB7XG4gICAgZW52OiBhbGxvd2VkRW52aXJvbm1lbnRzT2JqLFxuICAgIGJhc2VsaW5lOiAnYmFzZWxpbmUnLFxuICAgIGRlZmF1bHRTZXJ2ZXI6ICdkZWZhdWx0IHNlcnZlcicsXG4gIH0sXG4gIHJlc2VydmVkQXJndW1lbnRzTmFtZXNVZ2xpZnk6IFtcbiAgICAncmVzZXJ2ZWRFeHBPbmUnLFxuICAgICdyZXNlcnZlZEV4cFNlYydcbiAgXSxcbiAgZXh0ZW5zaW9uczoge1xuICAgIC8qKlxuICAgICAgICogTW9kaWZ5IHNvdXJjZTogaW1wb3J0LGV4cG9ydCwgcmVxdWlyZXNcbiAgICAgICAqL1xuICAgIGdldCBtb2RpZmljYWJsZUJ5UmVwbGFjZUZuKCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgJ3RzJyxcbiAgICAgICAgJ2pzJyxcbiAgICAgICAgLi4uc3R5bGVzRmlsZXNFeHRlbnNpb24sXG4gICAgICBdLm1hcChmID0+IGAuJHtmfWApO1xuICAgIH0sXG4gIH0sXG4gIG5vdEZpcmVkZXZQcm9qZWN0czogW1xuICAgICd1bmtub3cnLCAndW5rbm93LW5wbS1wcm9qZWN0JywgJ3NjZW5hcmlvJywgJ25hdmknXG4gIF0gYXMgQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSxcbiAgLyoqXG4gICAqIEJ1aWxkIGFsbG93ZWQgdHlwZXNcbiAgICovXG4gIGFsbG93ZWRUeXBlczoge1xuICAgIC8qKlxuICAgICAqIFByb2plY3RzIGZvciBidWlsZDphcHA6d2F0Y2ggY29tbWFuZFxuICAgICAqL1xuICAgIGFwcDogW1xuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuYW5ndWxhckNsaWVudCxcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJMaWIsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5pc29tb3JwaGljTGliLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuaW9uaWNDbGllbnQsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5kb2NrZXIsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5jb250YWluZXIsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS52c2NvZGVFeHQsXG4gICAgXSBhcyBDb25maWdNb2RlbHMuTGliVHlwZVtdLFxuICAgIC8qKlxuICAgICAqIFByb2plY3RzIGZvciBidWlsZDooZGlzdHxidW5kbGUpOih3YXRjaCkgY29tbWFuZFxuICAgICAqL1xuICAgIGxpYnM6IFtcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJMaWIsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5pc29tb3JwaGljTGliLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUud29ya3NwYWNlLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuY29udGFpbmVyLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuZG9ja2VyLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUudnNjb2RlRXh0LFxuICAgIF0gYXMgQ29uZmlnTW9kZWxzLkxpYlR5cGVbXVxuICB9LFxuICBtb2R1bGVOYW1lQW5ndWxhckxpYixcbiAgbW9kdWxlTmFtZUlzb21vcnBoaWNMaWIsXG4gIGZpbGVzRXh0ZW5zaW9uczoge1xuICAgIGZpbGV0ZW1wbGF0ZTogJ2ZpbGV0ZW1wbGF0ZScsXG4gICAgc3R5bGVzOiBzdHlsZXNGaWxlc0V4dGVuc2lvbixcbiAgfSxcbiAgcHJvamVjdFR5cGVzOiB7XG4gICAgZm9yTnBtTGliczogW1xuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuYW5ndWxhckxpYixcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmlzb21vcnBoaWNMaWIsXG4gICAgXSxcbiAgICB3aXRoOiB7XG4gICAgICBhbmd1bGFyQXNDb3JlOiBbXG4gICAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJDbGllbnQsXG4gICAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJMaWIsXG4gICAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmlvbmljQ2xpZW50LFxuICAgICAgXSxcbiAgICAgIGNvbXBvbmV0c0FzU3JjOiBbXG4gICAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJMaWIsXG4gICAgICBdLFxuICAgIH1cbiAgfSxcbiAgLy8gZW52aXJvbm1lbnROYW1lLFxuICBsb2NhbExpYnM6IFtcbiAgICAnZXNsaW50JyxcbiAgICAnbWtkaXJwJyxcbiAgICAnZ3VscCcsXG4gICAgJ25wbS1ydW4nLFxuICAgICdyaW1yYWYnLFxuICAgICdub2RlbW9uJyxcbiAgICAncmVsZWFzZS1pdCcsXG4gICAgJ3RzYycsXG4gICAgJ3dhdGNoJyxcbiAgICAnaHR0cC1zZXJ2ZXInLFxuICAgICd0cy1ub2RlJyxcbiAgICAnc29ydC1wYWNrYWdlLWpzb24nLFxuICAgICdjb25jdXJyZW50bHknLFxuICAgICdzbG9jJyxcbiAgICAnbW9ycGhpJ1xuICBdLFxuICBoZWxwQWxpYXM6IFtcbiAgICAnLWgnLFxuICAgICctLWhlbHAnLFxuICAgICctaGVscCcsXG4gICAgJ2hlbHAnXG4gIF0sXG4gIHJlcXVpcmVkOiB7XG4gICAgbnBtOiBbXG4gICAgICB7IG5hbWU6ICdAYW5ndWxhci9jbGknLCB2ZXJzaW9uOiAnMTMnIH0sXG4gICAgICB7IG5hbWU6ICdleHRyYWN0LXppcCcsIHZlcnNpb246ICcxLjYuNycgfSxcbiAgICAgIHsgbmFtZTogJ3dhdGNoJywgdmVyc2lvbjogJzEuMC4yJyB9LFxuICAgICAgeyBuYW1lOiAnY3ByJyB9LFxuICAgICAgeyBuYW1lOiAnY2hlY2stbm9kZS12ZXJzaW9uJyB9LFxuICAgICAgeyBuYW1lOiAnbnBtLXJ1bicsIHZlcnNpb246ICc0LjEuMicgfSxcbiAgICAgIHsgbmFtZTogJ3JpbXJhZicgfSxcbiAgICAgIHsgbmFtZTogJ21rZGlycCcgfSxcbiAgICAgIHsgbmFtZTogJ3JlbmFtZXInLCB2ZXJzaW9uOiAnMi4wLjEnIH0sXG4gICAgICB7IG5hbWU6ICdub2RlbW9uJyB9LFxuICAgICAgeyBuYW1lOiAnbWFkZ2UnIH0sXG4gICAgICB7IG5hbWU6ICd5YXJuJyB9LFxuICAgICAgeyBuYW1lOiAnaHR0cC1zZXJ2ZXInIH0sXG4gICAgICB7IG5hbWU6ICdpbmNyZWFzZS1tZW1vcnktbGltaXQnIH0sXG4gICAgICB7IG5hbWU6ICdib3dlcicgfSxcbiAgICAgIHsgbmFtZTogJ2ZraWxsJywgaW5zdGFsbE5hbWU6ICdma2lsbC1jbGknIH0sXG4gICAgICAvLyB7IG5hbWU6ICd5bycgfSxcbiAgICAgIHsgbmFtZTogJ21vY2hhJyB9LFxuICAgICAgLy8geyBuYW1lOiAnY2hhaScgfSxcbiAgICAgIHsgbmFtZTogJ3RzLW5vZGUnIH0sXG4gICAgICB7IG5hbWU6ICd2c2NlJyB9LFxuICAgICAgLy8geyBuYW1lOiAnc3RtdXgnIH0sXG4gICAgICB7IG5hbWU6ICd3ZWJwYWNrLWJ1bmRsZS1hbmFseXplcicgfSxcbiAgICAgIC8vIHsgbmFtZTogJ25nJywgaW5zdGFsbE5hbWU6ICdAYW5ndWxhci9jbGknIH0sXG4gICAgICAvLyB7IG5hbWU6ICduZ3gtcHdhLWljb25zJywgdmVyc2lvbjogJzAuMS4yJyB9LFxuICAgICAgLy8geyBuYW1lOiAncmVhbC1mYXZpY29uJywgaW5zdGFsbE5hbWU6ICdjbGktcmVhbC1mYXZpY29uJyB9LFxuICAgICAgeyBuYW1lOiAnYmFiZWwnLCBpbnN0YWxsTmFtZTogJ2JhYmVsLWNsaScgfSxcbiAgICAgIHsgbmFtZTogJ2phdmFzY3JpcHQtb2JmdXNjYXRvcicsIHZlcnNpb246ICc0JyB9LFxuICAgICAgeyBuYW1lOiAndWdsaWZ5anMnLCBpbnN0YWxsTmFtZTogJ3VnbGlmeS1qcycgfSxcbiAgICBdLFxuICAgIG5pY2VUb29sczogW1xuICAgICAgeyBuYW1lOiAnc3BlZWQtdGVzdCcgfSxcbiAgICAgIHsgbmFtZTogJ25wbS1uYW1lJyB9LCAvLyBjaGVjayBpZiBuYW1lIGlzIGF2YWlsYWJsZSBvbiBucG1cbiAgICAgIHsgbmFtZTogJ3ZhbnRhZ2UnLCBwbGF0Zm9ybTogJ2xpbnV4JyB9LCAvLyBpbnNwZWN0IHlvdSBsaXZlIGFwcGxpY2FpdG9uXG4gICAgICB7IG5hbWU6ICdjbGluaWMnLCBwbGF0Zm9ybTogJ2xpbnV4JyB9LCAvLyBjaGVjayB3aHkgbm9kZWpzIGlzIHNsb3dcbiAgICAgIHsgbmFtZTogJ3Z0b3AnLCBwbGF0Zm9ybTogJ2xpbnV4JyB9LCAvLyBpbnNwZWN0IHlvdSBsaXZlIGFwcGxpY2FpdG9uLFxuICAgICAgeyBuYW1lOiAncHVibGljLWlwJyB9LFxuICAgICAgeyBuYW1lOiAnZW1wdHktdHJhc2gnIH0sXG4gICAgICB7IG5hbWU6ICdpcy11cCcgfSwgLy8gY2hlY2sgaWYgd2Vic2l0ZSBpcyBva1xuICAgICAgeyBuYW1lOiAnaXMtb25saW5lJyB9LCAvLyBjaGVjayBpZiBpbnRlcm5ldCBpcyBvayxcbiAgICAgIHsgbmFtZTogJ3R0eXN0dWRpbycgfSwgLy8gcmVjb3JkIHRlcm1pbmFsIGFjdGlvbnMsXG4gICAgICB7IG5hbWU6ICdiY2F0JyB9LCAvLyByZWRpcmVjdCBhbnkgc3RyZWFtIHRvIGJyb3dzZXIsXG4gICAgICB7IG5hbWU6ICd3aWZpLXBhc3N3b3JkJywgaW5zdGFsbE5hbWU6ICd3aWZpLXBhc3N3b3JkLWNsaScgfSxcbiAgICAgIHsgbmFtZTogJ3dhbGxwYXBlcicsIGluc3RhbGxOYW1lOiAnd2FsbHBhcGVyLWNsaScgfSxcbiAgICAgIHsgbmFtZTogJ2JyaWdodG5lc3MnLCBpbnN0YWxsTmFtZTogJ2JyaWdodG5lc3MtY2xpJyB9LFxuICAgICAgeyBuYW1lOiAnc3ViZG93bmxvYWRlcicgfSxcbiAgICAgIHsgbmFtZTogJ3J0YWlsJyB9LCAvLyBtb25pdG9yIG11bHRpcGxlIHNlcnZlclxuICAgICAgeyBuYW1lOiAnaXBvbm1hcCcgfSwgLy8gc2hvdyBpcCBpbiB0ZXJtaW5hbCBtYXAsXG4gICAgICB7IG5hbWU6ICdqc29tZScgfSwgLy8gZGlzcGxheSBjb2xvcmVkIGpzb25zLFxuICAgICAgeyBuYW1lOiAnZHJhd2lsbGUnLCBpc05vdENsaTogdHJ1ZSB9LCAvLyAzZCBkcndhIGluIHRlbXJpbmFsXG4gICAgICB7IG5hbWU6ICdjb2x1bW5pZnknLCBpc05vdENsaTogdHJ1ZSB9LCAvLyBkcmF3IG5pY2UgY29sdW1ucyBpbiBub2RlLFxuICAgICAgeyBuYW1lOiAnbXVsdGlzcGlubmVyJywgaXNOb3RDbGk6IHRydWUgfSwgLy8gcHJvZ3JlcyBmb3IgbXVsdGlwbGUgYXN5bmMgYWN0aW9uc1xuICAgICAgeyBuYW1lOiAnY2ZvbnRzJyB9LCAvLyBkcmF3IHN1cGVyIG5pY2UgZm9udHMgaW4gY29uc29sZVxuICAgIF0sXG4gICAgcHJvZ3JhbXM6IFssXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb2RlJyxcbiAgICAgICAgd2Vic2l0ZTogJ2h0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tLydcbiAgICAgIH1cbiAgICBdXG4gIH1cbn07XG5cblxuXG4vLyBleHBvcnQgY29uc3QgR2xvYmFsSXNvbW9ycGhpY0RlcGVuZGVuY2llczogQ29uZmlnTW9kZWxzLkdsb2JhbERlcGVuZGVuY2llcyA9IHtcbi8vICAgbnBtOiBbXG4vLyAgICAgeyBuYW1lOiAncmltcmFmJyB9LFxuLy8gICAgIHsgbmFtZTogJ25wbS1ydW4nLCB2ZXJzaW9uOiAnNC4xLjInIH0sXG4vLyAgICAgeyBuYW1lOiAnY3ByJyB9LFxuLy8gICAgIHsgbmFtZTogJ2NoZWNrLW5vZGUtdmVyc2lvbicgfSxcbi8vICAgICB7IG5hbWU6ICd2c2NlJyB9LFxuLy8gICBdLFxuLy8gICBwcm9ncmFtczogW1xuLy8gICAgIC8vIHtcbi8vICAgICAvLyAgIG5hbWU6ICdjb2RlJyxcbi8vICAgICAvLyAgIHdlYnNpdGU6ICdodHRwczovL2NvZGUudmlzdWFsc3R1ZGlvLmNvbS8nXG4vLyAgICAgLy8gfVxuLy8gICBdIGFzIHsgbmFtZTogc3RyaW5nOyB3ZWJzaXRlOiBzdHJpbmcgfVtdXG4vLyB9O1xuIl19
|