tnp-config 13.0.28 → 13.0.31

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.
@@ -0,0 +1,718 @@
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
+ 'rm': 'release:major',
332
+ 'ra': 'release:all',
333
+ 'ar': 'auto:release',
334
+ // versopm
335
+ '--version': 'version',
336
+ '-v': 'version',
337
+ // open
338
+ 'occ': 'open:core:container',
339
+ 'ocp': 'open:core:project',
340
+ // test
341
+ 'twd': 'test:watch:debug',
342
+ 'tdw': 'test:watch:debug',
343
+ 'tw': 'test:watch',
344
+ 'td': 'test:debug',
345
+ 't': 'test',
346
+ // git push
347
+ 'pt': 'push:tag',
348
+ 'p': 'push',
349
+ 'pa': 'pushalll',
350
+ // other
351
+ 'sj': 'select:java',
352
+ 'scm': 'showcoremodules',
353
+ 'tpu': 'target:proj:update',
354
+ 'ugd': 'update:global:deps',
355
+ 'ud': 'update:deps',
356
+ 'dgl': 'detect:global:libs',
357
+ 'pr': 'print:relatives',
358
+ };
359
+ const areTrustedForPatchUpdate = [
360
+ '@angular',
361
+ '@ngrx',
362
+ 'rxjs',
363
+ 'zone.js',
364
+ 'tslib',
365
+ 'typescript',
366
+ 'webpack'
367
+ ];
368
+ export const config = {
369
+ packagesThat: {
370
+ areTrustedForPatchUpdate,
371
+ },
372
+ /* */
373
+ /* */
374
+ /* */
375
+ /* */
376
+ /* */
377
+ /* */
378
+ /* */
379
+ /* */
380
+ /* */
381
+ /* */
382
+ coreProjectVersions: ['v1', 'v2', 'v3'],
383
+ quickFixes: {
384
+ missingLibs: [
385
+ 'react-native-sqlite-storage'
386
+ ]
387
+ },
388
+ packageJsonSplit,
389
+ regexString: {
390
+ pathPartStringRegex: `(\/([a-zA-Z0-9]|\\-|\\_|\\+|\\.)*)`
391
+ },
392
+ placeholders: {
393
+ forProjectsInEnvironmentFile: '//<PLACEHOLDER_FOR_PROJECTS>'
394
+ },
395
+ array: {
396
+ isomorphicPackages: 'isomorphicPackages'
397
+ },
398
+ defaultFrameworkVersion: 'v3',
399
+ CONST: {
400
+ UNIT_TEST_TIMEOUT: 30000,
401
+ INTEGRATION_TEST: 30000,
402
+ BACKEND_HTTP_REQUEST_TIMEOUT: 3000,
403
+ },
404
+ debug: {
405
+ sourceModifier: [],
406
+ baselineSiteJoin: {
407
+ DEBUG_PATHES: [
408
+ // "src/apps/auth/AuthController.ts",
409
+ // '/src/app/+preview-components/preview-components.component.ts',
410
+ // '/src/controllers.ts',
411
+ // '/src/app/+preview-components/components/+preview-buildtnpprocess/preview-buildtnpprocess.component.ts'
412
+ ],
413
+ DEBUG_MERGE_PATHES: [
414
+ // "src/apps/auth/AuthController.ts",
415
+ // '/src/app/+preview-components/components/+preview-buildtnpprocess/preview-buildtnpprocess.component.ts'
416
+ // '/components/formly/base-components/editor/editor-wrapper.component.ts'
417
+ // '/src/app/+preview-components/components/+preview-buildtnpprocess/preview-buildtnpprocess.component.ts'
418
+ ]
419
+ }
420
+ },
421
+ /* */
422
+ /* */
423
+ frameworkNames: {
424
+ tnp: 'tnp',
425
+ firedev: 'firedev'
426
+ },
427
+ startPort: 6001,
428
+ frameworks: ['bootstrap', 'ionic', 'material'],
429
+ /* */
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
+ allowedEnvironments,
528
+ folder,
529
+ tempFolders,
530
+ // @ts-ignore
531
+ filesNotAllowedToClean: Object.keys(filesNotAllowedToClean).map(key => filesNotAllowedToClean[key]),
532
+ file,
533
+ default: {
534
+ cloud: {
535
+ environment: {
536
+ name: 'online'
537
+ }
538
+ }
539
+ },
540
+ SUBERIZED_PREFIX: `---stuberized`,
541
+ names: {
542
+ env: allowedEnvironmentsObj,
543
+ baseline: 'baseline',
544
+ defaultServer: 'default server',
545
+ },
546
+ reservedArgumentsNamesUglify: [
547
+ 'reservedExpOne',
548
+ 'reservedExpSec'
549
+ ],
550
+ extensions: {
551
+ /**
552
+ * Modify source: import,export, requires
553
+ */
554
+ get modificableByReplaceFn() {
555
+ return [
556
+ 'ts',
557
+ 'js',
558
+ ...stylesFilesExtension,
559
+ ].map(f => `.${f}`);
560
+ },
561
+ },
562
+ notFiredevProjects: [
563
+ 'unknow', 'unknow-npm-project', 'scenario', 'navi'
564
+ ],
565
+ /**
566
+ * Build allowed types
567
+ */
568
+ allowedTypes: {
569
+ /**
570
+ * Projects for build:app:watch command
571
+ */
572
+ app: [
573
+ GlobalLibTypeName.angularClient,
574
+ GlobalLibTypeName.angularLib,
575
+ GlobalLibTypeName.isomorphicLib,
576
+ GlobalLibTypeName.ionicClient,
577
+ GlobalLibTypeName.docker,
578
+ GlobalLibTypeName.container,
579
+ GlobalLibTypeName.vscodeExt,
580
+ ],
581
+ /**
582
+ * Projects for build:(dist|bundle):(watch) command
583
+ */
584
+ libs: [
585
+ GlobalLibTypeName.angularLib,
586
+ GlobalLibTypeName.isomorphicLib,
587
+ GlobalLibTypeName.workspace,
588
+ GlobalLibTypeName.container,
589
+ GlobalLibTypeName.docker,
590
+ GlobalLibTypeName.vscodeExt,
591
+ ]
592
+ },
593
+ moduleNameAngularLib,
594
+ moduleNameIsomorphicLib,
595
+ filesExtensions: {
596
+ filetemplate: 'filetemplate',
597
+ styles: stylesFilesExtension,
598
+ },
599
+ projectTypes: {
600
+ forNpmLibs: [
601
+ GlobalLibTypeName.angularLib,
602
+ GlobalLibTypeName.isomorphicLib,
603
+ ],
604
+ with: {
605
+ angularAsCore: [
606
+ GlobalLibTypeName.angularClient,
607
+ GlobalLibTypeName.angularLib,
608
+ GlobalLibTypeName.ionicClient,
609
+ ],
610
+ componetsAsSrc: [
611
+ GlobalLibTypeName.angularLib,
612
+ ],
613
+ }
614
+ },
615
+ // environmentName,
616
+ localLibs: [
617
+ 'eslint',
618
+ 'mkdirp',
619
+ 'gulp',
620
+ 'npm-run',
621
+ 'rimraf',
622
+ 'nodemon',
623
+ 'release-it',
624
+ 'tsc',
625
+ 'watch',
626
+ 'http-server',
627
+ 'ts-node',
628
+ 'sort-package-json',
629
+ 'concurrently',
630
+ 'sloc',
631
+ 'morphi'
632
+ ],
633
+ helpAlias: [
634
+ '-h',
635
+ '--help',
636
+ '-help',
637
+ 'help'
638
+ ],
639
+ required: {
640
+ npm: [
641
+ { name: '@angular/cli', version: '13' },
642
+ { name: 'extract-zip', version: '1.6.7' },
643
+ { name: 'watch', version: '1.0.2' },
644
+ { name: 'cpr' },
645
+ { name: 'check-node-version' },
646
+ { name: 'npm-run', version: '4.1.2' },
647
+ { name: 'rimraf' },
648
+ { name: 'mkdirp' },
649
+ { name: 'renamer', version: '2.0.1' },
650
+ { name: 'nodemon' },
651
+ { name: 'madge' },
652
+ { name: 'yarn' },
653
+ { name: 'http-server' },
654
+ { name: 'increase-memory-limit' },
655
+ { name: 'bower' },
656
+ { name: 'fkill', installName: 'fkill-cli' },
657
+ // { name: 'yo' },
658
+ { name: 'mocha' },
659
+ // { name: 'chai' },
660
+ { name: 'ts-node' },
661
+ { name: 'vsce' },
662
+ // { name: 'stmux' },
663
+ { name: 'webpack-bundle-analyzer' },
664
+ // { name: 'ng', installName: '@angular/cli' },
665
+ // { name: 'ngx-pwa-icons', version: '0.1.2' },
666
+ // { name: 'real-favicon', installName: 'cli-real-favicon' },
667
+ { name: 'babel', installName: 'babel-cli' },
668
+ { name: 'javascript-obfuscator', version: '4' },
669
+ { name: 'uglifyjs', installName: 'uglify-js' },
670
+ ],
671
+ niceTools: [
672
+ { name: 'speed-test' },
673
+ { name: 'npm-name' },
674
+ { name: 'vantage', platform: 'linux' },
675
+ { name: 'clinic', platform: 'linux' },
676
+ { name: 'vtop', platform: 'linux' },
677
+ { name: 'public-ip' },
678
+ { name: 'empty-trash' },
679
+ { name: 'is-up' },
680
+ { name: 'is-online' },
681
+ { name: 'ttystudio' },
682
+ { name: 'bcat' },
683
+ { name: 'wifi-password', installName: 'wifi-password-cli' },
684
+ { name: 'wallpaper', installName: 'wallpaper-cli' },
685
+ { name: 'brightness', installName: 'brightness-cli' },
686
+ { name: 'subdownloader' },
687
+ { name: 'rtail' },
688
+ { name: 'iponmap' },
689
+ { name: 'jsome' },
690
+ { name: 'drawille', isNotCli: true },
691
+ { name: 'columnify', isNotCli: true },
692
+ { name: 'multispinner', isNotCli: true },
693
+ { name: 'cfonts' }, // draw super nice fonts in console
694
+ ],
695
+ programs: [,
696
+ {
697
+ name: 'code',
698
+ website: 'https://code.visualstudio.com/'
699
+ }
700
+ ]
701
+ }
702
+ };
703
+ // export const GlobalIsomorphicDependencies: ConfigModels.GlobalDependencies = {
704
+ // npm: [
705
+ // { name: 'rimraf' },
706
+ // { name: 'npm-run', version: '4.1.2' },
707
+ // { name: 'cpr' },
708
+ // { name: 'check-node-version' },
709
+ // { name: 'vsce' },
710
+ // ],
711
+ // programs: [
712
+ // // {
713
+ // // name: 'code',
714
+ // // website: 'https://code.visualstudio.com/'
715
+ // // }
716
+ // ] as { name: string; website: string }[]
717
+ // };
718
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWNvbmZpZy9wcm9qZWN0cy90bnAtY29uZmlnL3NyYy9saWIvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxFQUFFLFdBQVcsSUFBSSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXdFekQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsU0FBUyxFQUFFLFdBQVc7SUFDdEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLGlCQUFpQixFQUFFLHFCQUFxQjtJQUN4QyxJQUFJLEVBQUUsTUFBTTtJQUNaLFFBQVEsRUFBRSxVQUFVO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQTJCO0lBQ2hELGlCQUFpQixDQUFDLFVBQVU7SUFDNUIsaUJBQWlCLENBQUMsYUFBYTtJQUMvQixpQkFBaUIsQ0FBQyxhQUFhO0lBQy9CLGlCQUFpQixDQUFDLFdBQVc7SUFDN0IsaUJBQWlCLENBQUMsY0FBYztJQUNoQyxpQkFBaUIsQ0FBQyxTQUFTO0lBQzNCLGlCQUFpQixDQUFDLFNBQVM7SUFDM0IsaUJBQWlCLENBQUMsTUFBTTtJQUN4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RUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7WUFDM0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUU7WUFDbkQsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtZQUNyRCxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDekIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNuQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDakIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDckMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDeEMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsbUNBQW1DO1NBQ3hEO1FBQ0QsUUFBUSxFQUFFLENBQUM7WUFDVDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsZ0NBQWdDO2FBQzFDO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFJRixpRkFBaUY7QUFDakYsV0FBVztBQUNYLDBCQUEwQjtBQUMxQiw2Q0FBNkM7QUFDN0MsdUJBQXVCO0FBQ3ZCLHNDQUFzQztBQUN0Qyx3QkFBd0I7QUFDeEIsT0FBTztBQUNQLGdCQUFnQjtBQUNoQixXQUFXO0FBQ1gseUJBQXlCO0FBQ3pCLHFEQUFxRDtBQUNyRCxXQUFXO0FBQ1gsNkNBQTZDO0FBQzdDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhcml1c3ogRmlsaXBpYWtcbiAqIEBhdXRob3IgZGFyZWtmNzdAZ21haWwuY29tXG4gKiBSZWNvbW1lbmRlZCBjb25maWcgZm9yIGFsbCBpc29tb3JwaGljIGxpYnMgKlxuICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuZXhwb3J0IHsgQ29yZUhlbHBlcnMgYXMgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbi8vI3JlZ2lvbiBjb25maWcgbW9kZWxzXG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29uZmlnTW9kZWxzIHtcbiAgZXhwb3J0IHR5cGUgRW52aXJvbm1lbnROYW1lID0gJ2xvY2FsJyB8ICdzdGF0aWMnIHwgJ2RldicgfCAnc3RhZ2UnIHwgJ3Byb2QnIHwgJ29ubGluZScgfCAndGVzdCcgfCAncWEnIHwgJ2N1c3RvbSc7XG4gIGV4cG9ydCB0eXBlIFVJRnJhbWV3b3JrID0gJ2Jvb3RzdHJhcCcgfCAnbWF0ZXJpYWwnIHwgJ2lvbmljJztcbiAgZXhwb3J0IHR5cGUgRnJhbWV3b3JrVmVyc2lvbiA9ICd2MScgfCAndjInIHwgJ3YzJztcbiAgZXhwb3J0IHR5cGUgQ3V0YWJsZUZpbGVFeHQgPSAnc2NzcycgfCAnY3NzJyB8ICdzYXNzJyB8ICdodG1sJyB8ICd0cyc7XG4gIGV4cG9ydCB0eXBlIEltYWdlRmlsZUV4dGVuc2lvbiA9ICdqcGcnIHwgJ2pwZWcnIHwgJ3BuZycgfCAnc3ZnJztcbiAgZXhwb3J0IHR5cGUgRmlsZUV4dGVuc2lvbiA9ICd0cycgfCAnanMnIHwgJ2pzb24nIHwgJ2h0bWwnIHwgSW1hZ2VGaWxlRXh0ZW5zaW9uIHwgJ3R4dCcgfCBDdXRhYmxlRmlsZUV4dDtcblxuXG4gIGV4cG9ydCB0eXBlIEh0dHBNZXRob2QgPSAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScgfCAncGF0Y2gnIHwgJ2hlYWQnIHwgJ2pzb25wJztcbiAgZXhwb3J0IHR5cGUgUGFyYW1UeXBlID0gJ1BhdGgnIHwgJ1F1ZXJ5JyB8ICdDb29raWUnIHwgJ0hlYWRlcicgfCAnQm9keSc7XG4gIGV4cG9ydCB0eXBlIFRzVXNhZ2UgPSAnaW1wb3J0JyB8ICdleHBvcnQnO1xuXG4gIGV4cG9ydCB0eXBlIExpYlR5cGUgPSAndW5rbm93J1xuICAgIHwgJ2lzb21vcnBoaWMtbGliJ1xuICAgIHwgJ2FuZ3VsYXItbGliJyAvLyBodHRwczovL2NsaS5hbmd1bGFyLmlvL1xuICAgIHwgJ2VsZWN0cm9uLWNsaWVudCcgLy8gaHR0cHM6Ly9naXRodWIuY29tL21heGltZWdyaXMvYW5ndWxhci1lbGVjdHJvblxuICAgIHwgJ2lvbmljLWxpYidcbiAgICB8ICdhbmd1bGFyLWNsaWVudCdcbiAgICB8ICdpb25pYy1jbGllbnQnXG4gICAgfCAnd29ya3NwYWNlJ1xuICAgIHwgJ2NvbnRhaW5lcidcbiAgICB8ICdkb2NrZXInXG4gICAgfCAndnNjb2RlLWV4dCdcbiAgICB8ICdjaHJvbWUtZXh0J1xuICAgIHwgJ3Vua25vdy1ucG0tcHJvamVjdCdcbiAgICB8ICdzY2VuYXJpbydcbiAgICB8ICduYXZpJ1xuICAgIHwgJ2xlYWYnXG4gICAgfCAnZ2FtZS1lbmdpbmUtbGliLXBpeGknIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waXhpanMvcGl4aS5qc1xuICAgIHwgJ2dhbWUtZW5naW5lLWxpYi1waGFzZXInIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waG90b25zdG9ybS9waGFzZXJcbiAgICB8ICdnYW1lLWVuZ2luZS1saWItZXhjYWxpYnVyJyAvLyBodHRwczovL2dpdGh1Yi5jb20vZXhjYWxpYnVyanMvRXhjYWxpYnVyXG4gICAgfCAnZ2FtZS1lbmdpbmUtbGliLWJhYnlsb24nIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CYWJ5bG9uSlMvQmFieWxvbi5qc1xuICAgIDtcblxuICBleHBvcnQgdHlwZSBOZXdGYWN0b3J5VHlwZSA9IExpYlR5cGUgfCAnbW9kZWwnIHwgJ3NpbmdsZS1maWxlLXByb2plY3QnO1xuICBleHBvcnQgdHlwZSBDb3JlTGliQ2F0ZWdvcnkgPSBMaWJUeXBlIHwgJ2NvbW1vbic7XG4gIGV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb24ge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFNpemUge1xuICAgIHc6IG51bWJlcjtcbiAgICBoOiBudW1iZXI7XG4gIH1cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsTnBtRGVwZW5kZW5jeSB7XG4gICAgbmFtZTogc3RyaW5nOyBpbnN0YWxsTmFtZT86IHN0cmluZzsgdmVyc2lvbj86IHN0cmluZyB8IG51bWJlcjtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsQ29tbWFuZExpbmVQcm9ncmFtRGVwZW5kZW5jeSB7XG4gICAgbmFtZTogc3RyaW5nOyB3ZWJzaXRlOiBzdHJpbmc7IHZlcnNpb24/OiBzdHJpbmc7XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBHbG9iYWxEZXBlbmRlbmNpZXMge1xuICAgIG5wbT86IEdsb2JhbE5wbURlcGVuZGVuY3lbXTtcbiAgICBwcm9ncmFtcz86IEdsb2JhbENvbW1hbmRMaW5lUHJvZ3JhbURlcGVuZGVuY3lbXTtcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIEZpbGVFdmVudCA9ICdjcmVhdGVkJyB8ICdjaGFuZ2VkJyB8ICdyZW1vdmVkJyB8ICdyZW5hbWUnO1xuICBleHBvcnQgdHlwZSBPdXRGb2xkZXIgPSAnZGlzdCcgfCAnYnVuZGxlJyB8ICdicm93c2VyJztcbiAgZXhwb3J0IHR5cGUgRm9ybWx5SW5wdXRUeXBlID0gJ2lucHV0JyB8ICdzd2l0Y2gnIHwgJ2RhdGVwaWNrZXInIHwgJ3JlcGVhdCcgfCAnZ3JvdXAnO1xuICBleHBvcnQgdHlwZSBEYXRhYmFzZVR5cGUgPSAnYmV0dGVyLXNxbGl0ZTMnIHwgJ3NxbGl0ZScgfCAnbXlzcWwnO1xuXG59XG5cblxuZXhwb3J0IGNvbnN0IEdsb2JhbExpYlR5cGVOYW1lID0ge1xuICBpc29tb3JwaGljTGliOiAnaXNvbW9ycGhpYy1saWInLFxuICBhbmd1bGFyTGliOiAnYW5ndWxhci1saWInLFxuICBlbGVjdHJvbkNsaWVudDogJ2VsZWN0cm9uLWNsaWVudCcsXG4gIGlvbmljTGliOiAnaW9uaWMtbGliJyxcbiAgYW5ndWxhckNsaWVudDogJ2FuZ3VsYXItY2xpZW50JyxcbiAgaW9uaWNDbGllbnQ6ICdpb25pYy1jbGllbnQnLFxuICB3b3Jrc3BhY2U6ICd3b3Jrc3BhY2UnLFxuICBjb250YWluZXI6ICdjb250YWluZXInLFxuICBkb2NrZXI6ICdkb2NrZXInLFxuICB1bmtub3dOcG1Qcm9qZWN0OiAndW5rbm93LW5wbS1wcm9qZWN0JyxcbiAgdnNjb2RlRXh0OiAndnNjb2RlLWV4dCcsXG4gIGNocm9tZUV4dDogJ2Nocm9tZS1leHQnLFxuICBzaW5nbGVGaWxlUHJvamVjdDogJ3NpbmdsZS1maWxlLXByb2plY3QnLFxuICBuYXZpOiAnbmF2aScsXG4gIHNjZW5hcmlvOiAnc2NlbmFyaW8nXG59O1xuXG5leHBvcnQgY29uc3QgTGliVHlwZUFycjogQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSA9IFtcbiAgR2xvYmFsTGliVHlwZU5hbWUuYW5ndWxhckxpYixcbiAgR2xvYmFsTGliVHlwZU5hbWUuaXNvbW9ycGhpY0xpYixcbiAgR2xvYmFsTGliVHlwZU5hbWUuYW5ndWxhckNsaWVudCxcbiAgR2xvYmFsTGliVHlwZU5hbWUuaW9uaWNDbGllbnQsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmVsZWN0cm9uQ2xpZW50LFxuICBHbG9iYWxMaWJUeXBlTmFtZS53b3Jrc3BhY2UsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmNvbnRhaW5lcixcbiAgR2xvYmFsTGliVHlwZU5hbWUuZG9ja2VyLFxuICBHbG9iYWxMaWJUeXBlTmFtZS51bmtub3dOcG1Qcm9qZWN0LFxuICBHbG9iYWxMaWJUeXBlTmFtZS52c2NvZGVFeHQsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmNocm9tZUV4dCxcbiAgR2xvYmFsTGliVHlwZU5hbWUubmF2aSxcbiAgR2xvYmFsTGliVHlwZU5hbWUuc2NlbmFyaW8sXG5dIGFzIENvbmZpZ01vZGVscy5MaWJUeXBlW107XG5cblxuZXhwb3J0IGNvbnN0IENvcmVMaWJDYXRlZ29yeUFycjogQ29uZmlnTW9kZWxzLkNvcmVMaWJDYXRlZ29yeVtdID0gWyAvLyBUT0RPIHRoaXMgaXMgZm9yIHdoYXQgP1xuICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyTGliLFxuICBHbG9iYWxMaWJUeXBlTmFtZS5pc29tb3JwaGljTGliLFxuICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyQ2xpZW50LFxuICBHbG9iYWxMaWJUeXBlTmFtZS5lbGVjdHJvbkNsaWVudCxcbiAgR2xvYmFsTGliVHlwZU5hbWUuaW9uaWNDbGllbnQsXG4gIEdsb2JhbExpYlR5cGVOYW1lLmRvY2tlcixcbiAgJ2NvbW1vbidcbl0gYXMgQ29uZmlnTW9kZWxzLkNvcmVMaWJDYXRlZ29yeVtdO1xuXG4vLyNlbmRyZWdpb25cblxuXG5cbmNvbnN0IGFsbG93ZWRFbnZpcm9ubWVudHM6IENvbmZpZ01vZGVscy5FbnZpcm9ubWVudE5hbWVbXSA9IFsnc3RhdGljJywgJ2RldicsICdwcm9kJywgJ3N0YWdlJywgJ29ubGluZScsICd0ZXN0JywgJ3FhJywgJ2N1c3RvbSddO1xuY29uc3QgYWxsb3dlZEVudmlyb25tZW50c09iaiA9IHt9O1xuYWxsb3dlZEVudmlyb25tZW50cy5mb3JFYWNoKHMgPT4ge1xuICAvLyBAdHMtaWdub3JlXG4gIGFsbG93ZWRFbnZpcm9ubWVudHNPYmpbc10gPSBzO1xufSk7XG5cbmNvbnN0IGZpcmVkZXYgPSAnZmlyZWRldic7XG5jb25zdCBtb3JwaGkgPSAnbW9ycGhpJztcbi8qICovXG4vKiAqL1xuICBcbmNvbnN0IHVybE1vcnBoaSA9ICdodHRwczovL2dpdGh1Yi5jb20vZGFyZWtmNzcvbW9ycGhpLmdpdCc7XG5cbmNvbnN0IGZpbGVzTm90QWxsb3dlZFRvQ2xlYW4gPSB7XG4gIF9naXRpZ25vcmU6ICcuZ2l0aWdub3JlJyxcbiAgX25wbXJjOiAnLm5wbXJjJyxcbiAgX25wbWlnbm9yZTogJy5ucG1pZ25vcmUnLFxuICB0c2xpbnRfanNvbjogJ3RzbGludC5qc29uJyxcbiAgX2VkaXRvcmNvbmZpZzogJy5lZGl0b3Jjb25maWcnLFxuICBfYW5ndWxhckNsaV9qc29uOiAnLmFuZ3VsYXItY2xpLmpzb24nLFxuICBfdnNjb2RlX2xhdW5jaF9qc29uOiAnLnZzY29kZS9sYXVuY2guanNvbicsXG59O1xuXG5jb25zdCBmaWxlID0ge1xuICBfYm93ZXJyYzogJy5ib3dlcnJjJyxcbiAgYm93ZXJfanNvbjogJ2Jvd2VyLmpzb24nLFxuICBjb250cm9sbGVyc190czogJ2NvbnRyb2xsZXJzLnRzJyxcbiAgZW50aXRpZXNfdHM6ICdlbnRpdGllcy50cycsXG4gIGFuZ3VsYXJfanNvbjogJ2FuZ3VsYXIuanNvbicsXG4gIGF1dG9iX2FjdGlvbnNfanM6ICdhdXRvLWFjdGlvbnMuanMnLFxuICBsb2NhbF9jb25maWdfanM6ICdsb2NhbC1jb25maWcuanMnLFxuICBidWlsZF9jb25maWdfanM6ICdidWlsZC1jb25maWcuanMnLFxuICBsb2NhbF9jb25maWc6ICdsb2NhbC1jb25maWcnLFxuICBzdGFydF9iYWNrZW5kX3RzOiAnc3RhcnQuYmFja2VuZC50cycsXG4gIHBhY2thZ2VfanNvbjogJ3BhY2thZ2UuanNvbicsXG4gIHJlc3VsdF9wYWNrYWdlc19qc29uOiAncmVzdWx0LXBhY2thZ2VzLmpzb24nLFxuICBwYWNrYWdlX2pzb241OiAncGFja2FnZS5qc29uNScsXG4gIHBhY2thZ2VfanNvbl9fdG5wX2pzb246ICdwYWNrYWdlLmpzb25fdG5wLmpzb24nLFxuICBwYWNrYWdlX2pzb25fX3RucF9qc29uNTogJ3BhY2thZ2UuanNvbl90bnAuanNvbjUnLFxuICBwYWNrYWdlX2pzb25fX2RldkRlcGVuZGVuY2llc19qc29uOiAncGFja2FnZS5qc29uX2RldkRlcGVuZGVuY2llcy5qc29uJyxcbiAgeWFybl9sb2NrOiAneWFybi5sb2NrJyxcbiAgcGFja2FnZV9sb2NrX2pzb246ICdwYWNrYWdlLWxvY2suanNvbicsXG4gIHRucEVudmlyb25tZW50X2pzb246ICd0bXAtZW52aXJvbm1lbnQuanNvbicsXG4gIGVudmlyb25tZW50OiAnZW52aXJvbm1lbnQnLFxuICBlbnZpcm9ubWVudF9qczogJ2Vudmlyb25tZW50LmpzJyxcbiAgdG1wX3RyYW5zYWN0aW9uX3BpZF90eHQ6ICd0bXAtdHJhbnNhY3Rpb24tcGlkLnR4dCcsXG4gIG1hbmlmZXN0X3dlYm1hbmlmZXN0OiAnbWFuaWZlc3Qud2VibWFuaWZlc3QnLFxuICBwdWJsaWNBcGlfdHM6ICdwdWJsaWNfYXBpLnRzJyxcbiAgcHVibGljQXBpX2RfdHM6ICdwdWJsaWNfYXBpLmQudHMnLFxuICBwdWJsaWNhcGlfdHM6ICdwdWJsaWMtYXBpLnRzJyxcbiAgX2JhYmVscmM6ICcuYmFiZWxyYycsXG4gIGluZGV4X2RfdHM6ICdpbmRleC5kLnRzJyxcbiAgaW5kZXhfdHM6ICdpbmRleC50cycsXG4gIGluZGV4X2pzOiAnaW5kZXguanMnLFxuICBpbmRleF9qc19tYXA6ICdpbmRleC5qcy5tYXAnLFxuICBkYl9qc29uOiAnZGIuanNvbicsXG4gIGRiX2Zvcl90ZXN0c19qc29uOiAnZGItZm9yLXRlc3RzLmpzb24nLFxuICB0bXBEb2NrZXJJbWFnZUlkOiAndG1wLWRvY2tlci1pbWFnZS1pZCcsXG4gIHRtcF9yZWNlbnRfanNvbjogJ3JlY2VudC5qc29uJyxcbiAgdG1wSXNvbW9ycGhpY1BhY2thZ2VzSnNvbjogJ3RtcC1pc29tb3JwaGljLXBhY2thZ2VzLmpzb24nLFxuICB0c2NvbmZpZ19qc29uOiAndHNjb25maWcuanNvbicsXG4gIFJFQURNRV9NRDogJ1JFQURNRS5tZCcsXG4gIHNlcnZlcl9rZXk6ICdzZXJ2ZXIua2V5JyxcbiAgc2VydmVyX2NlcnQ6ICdzZXJ2ZXIuY2VydCcsXG4gIHNlcnZlcl9jaGFpbl9jZXJ0OiAnc2VydmVyLWNoYWluLmNlcnQnLFxuICBtZXRhX2NvbmZpZ19tZDogJ21ldGEtY29udGVudC5tZCcsXG4gIC4uLmZpbGVzTm90QWxsb3dlZFRvQ2xlYW5cbn07XG5cbmNvbnN0IHBhY2thZ2VKc29uU3BsaXQgPSBbXG4gIGZpbGUucGFja2FnZV9qc29uX190bnBfanNvbixcbiAgZmlsZS5wYWNrYWdlX2pzb25fX3RucF9qc29uNSxcbiAgZmlsZS5wYWNrYWdlX2pzb25fX2RldkRlcGVuZGVuY2llc19qc29uLFxuXTtcblxuY29uc3QgdGVtcEZvbGRlcnMgPSB7XG4gIGJ1bmRsZTogJ2J1bmRsZScsXG4gIHZlbmRvcjogJ3ZlbmRvcicsXG4gIGRvY3M6ICdkb2NzJyxcbiAgZGlzdDogJ2Rpc3QnLFxuICB0bXA6ICd0bXAnLFxuICB0bXBCdW5kbGVSZWxlYXNlOiAndG1wLWJ1bmRsZS1yZWxlYXNlJyxcbiAgdGVtcFNyYzogJ3RtcC1zcmMnLFxuICB0ZW1wU3JjRGlzdDogJ3RtcC1zcmMtZGlzdCcsXG4gIHByZXZpZXdEaXN0QXBwOiAnZGlzdC1hcHAnLFxuICBwcmV2aWV3OiAncHJldmlldycsXG4gIGJyb3dzZXI6ICdicm93c2VyJyxcbiAgd2Vic3FsOiAnd2Vic3FsJyxcbiAgX2Jyb3dzZXI6ICcuYnJvd3NlcicsXG4gIG1vZHVsZTogJ21vZHVsZScsXG4gIGJhY2t1cDogJ2JhY2t1cCcsXG4gIG5vZGVfbW9kdWxlczogJ25vZGVfbW9kdWxlcycsXG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHRucF90ZXN0c19jb250ZXh0OiAndG1wLXRlc3RzLWNvbnRleHQnLFxuICB0bXBQYWNrYWdlOiAndG1wLXBhY2thZ2UnLFxuICB0bXBTY2VuYXJpb3M6ICd0bXAtc2NlbmFyaW9zJyxcbiAgdG1wVGVzdHNFbnZpcm9ubWVudHM6ICd0bXAtdGVzdHMtZW52aXJvbm1lbnRzJyxcbiAgdGVzdHNFbnZpcm9ubWVudHM6ICd0ZXN0cy1lbnZpcm9ubWVudHMnLFxufTtcblxuY29uc3Qgc3R5bGVzRmlsZXNFeHRlbnNpb24gPSBbXG4gICdjc3MnLFxuICAnc2FzcycsXG4gICdzY3NzJyxcbiAgJ2xlc3MnLFxuXTtcblxuY29uc3QgZm9sZGVyID0ge1xuICBzY3JpcHRzOiAnc2NyaXB0cycsXG4gIHNjZW5hcmlvczogJ3NjZW5hcmlvcycsXG4gIGJvd2VyOiAnYm93ZXInLFxuICBzcmM6ICdzcmMnLFxuICBvdXQ6ICdvdXQnLFxuICBsaWI6ICdsaWInLFxuICBjdXN0b206ICdjdXN0b20nLFxuICBjb21wb25lbnRzOiAnY29tcG9uZW50cycsXG4gIGFzc2V0czogJ2Fzc2V0cycsXG4gIGFwcHM6ICdhcHBzJyxcbiAgLy8gZW50aXRpZXM6ICdlbnRpdGllcycsXG4gIC8vIGNvbnRyb2xsZXJzOiAnY29udHJvbGxlcnMnLFxuICAvLyBwcm9qZWN0czogJ3Byb2plY3RzJyxcbiAgd29ya3NwYWNlOiAnd29ya3NwYWNlJyxcbiAgY29udGFpbmVyOiAnY29udGFpbmVyJyxcbiAgYmluOiAnYmluJyxcbiAgX2JpbjogJy5iaW4nLFxuICBfdnNjb2RlOiAnLnZzY29kZScsXG4gIHByb2plY3Q6ICdwcm9qZWN0JyxcbiAgZXh0ZXJuYWw6ICdleHRlcm5hbCcsXG4gIHRtcERpc3Q6ICd0bXAtZGlzdCcsXG4gIHRtcEZvcihkOiBDb25maWdNb2RlbHMuT3V0Rm9sZGVyKSB7XG4gICAgcmV0dXJuIGB0bXAtc3JjLSR7ZH1gO1xuICB9LFxuICB0YXJnZXRQcm9qZWN0czoge1xuICAgIERFRkFVTFRfUEFUSF9HRU5FUkFURUQ6ICd0bXAtdGFyZ2V0LXByb2plY3RzL2dlbmVyYXRlZCcsXG4gICAgREVGQVVMVF9QQVRIX09SSUdJTlM6ICd0bXAtdGFyZ2V0LXByb2plY3RzL29yaWdpbnMnLFxuICB9LFxuICAuLi50ZW1wRm9sZGVyc1xufTtcblxuLy8gQExBU1QgUkVTT0xWRSBUTlAgTE9DQVRJT04gISEhIGZvciBlYWNoIGNvbnRleHQgYW5kIFJFTEVBU0UgVE5QLUNPTkZJR1xubGV0IGRpcm5hbWVGb3JUbnA6IHN0cmluZztcbi8qICovXG4vKiAqL1xuICBcbmNvbnN0IGZpcmVkZXZQcm9qZWN0c1JlbGF0aXZlID0gYC4uL2ZpcmVkZXYtcHJvamVjdHNgO1xuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuY29uc3QgbW9kdWxlTmFtZUFuZ3VsYXJMaWIgPSBbXG4gIGZvbGRlci5jb21wb25lbnRzLFxuICBmb2xkZXIubW9kdWxlLFxuICBmb2xkZXIuZGlzdCxcbiAgZm9sZGVyLmJyb3dzZXIsXG5dO1xuXG5jb25zdCBtb2R1bGVOYW1lSXNvbW9ycGhpY0xpYiA9IFtcbiAgZm9sZGVyLnNyYyxcbiAgZm9sZGVyLmRpc3QsXG4gIGZvbGRlci5icm93c2VyLFxuXTtcblxuY29uc3QgYXJnc1JlcGxhY2VtZW50c0J1aWxkID0ge1xuICAvLyBTSE9SVENVVFNcbiAgJ2JhJzogJ2J1aWxkOmFwcCcsXG4gICdiYXcnOiAnYnVpbGQ6YXBwOndhdGNoJyxcbiAgJ2J3JzogJ2J1aWxkOndhdGNoJywgLy8gYnVpZCBkaXN0IHdhdGNoIHdpdGggYXV0b21hdGljIGNvbnRhaW5lci9wcmV2aWV3UHJvamVjdHMgcG9wdWlsYXRpb25cbiAgJ2JhcCc6ICdidWlsZDphcHA6cHJvZCcsXG4gICdiYXB3JzogJ2J1aWxkOmFwcDpwcm9kOndhdGNoJyxcblxuICAvLyAoZGlzdClhcHAgYnVpbGQgZm9yIG5vcm1hbCBkZXZlbG9wbWVudCAtIHdhdGNoIGlzIG5nIHNlcnZlXG4gICdiZGEnOiAnYnVpbGQ6ZGlzdDphcHAnLFxuICAnYmRhdyc6ICdidWlsZDpkaXN0OmFwcDp3YXRjaCcsXG5cbiAgLy8gKGRpc3QpYXBwIGJ1aWxkIGZvciBub3JtYWwgZGV2ZWxvcG1lbnQgKFBST0RVQ1RJT04gTUlOSUZJRUQgQ09ERSlcbiAgJ2JhZHB3JzogJ2J1aWxkOmFwcDpkaXN0OnByb2Q6d2F0Y2gnLFxuICAnYmFkcCc6ICdidWlsZDphcHA6ZGlzdDpwcm9kJyxcblxuICAvLyAoZGlzdClsaWIgYnVpbGQgLSB3YXRjaCBpcyBuZyBidWlsZFxuICAnYmQnOiAnYnVpbGQ6ZGlzdCcsICdiZHcnOiAnYnVpbGQ6ZGlzdDp3YXRjaCcsXG4gIC8vIChkaXN0KWxpYiBidWlsZCAtIHdhdGNoIGlzIG5nIGJ1aWxkIChQUk9EVUNUSU9OIE1JTklGSUVEIENPREUpXG4gICdiZHAnOiAnYnVpbGQ6ZGlzdDpwcm9kJywgJ2JkcHcnOiAnYnVpbGQ6ZGlzdDpwcm9kOndhdGNoJyxcblxuICAvLyAoYnVuZGxlKWFwcCBidWlsZCBmb3Igc3RhdGljIGNvZGUgKGZpcmVkZXYgcGx1Z2lucywgcHJvamVjdCBmaW5hbCBjb2RlLCBldGMuKVxuICAnYmJhJzogJ2J1aWxkOmJ1bmRsZTphcHAnLCAnYmJhdyc6ICdidWlsZDpidW5kbGU6YXBwOndhdGNoJyxcbiAgLy8gKGJ1bmxlKWxpYiBidWlsZCBmb3Igc3RhdGljIGNvZGUgKGZpcmVkZXYgcGx1Z2lucywgcHJvamVjdCBmaW5hbCBjb2RlLCBldGMuKVxuICAnYmInOiAnYnVpbGQ6YnVuZGxlJywgJ2Jidyc6ICdidWlsZDpidW5kbGU6d2F0Y2gnLFxuICAvLyAoYnVubGUpbGliIGJ1aWxkIGZvciBzdGF0aWMgY29kZSB3aXRoIG5nIGJ1aWxkIChQUk9EVUNUSU9OIE1JTklGSUVEIENPREUpXG4gICdiYnAnOiAnYnVpbGQ6YnVuZGxlOnByb2QnLCAnYmJwdyc6ICdidWlsZDpidW5kbGU6cHJvZDp3YXRjaCcsXG5cbiAgJ3NiJzogJ3N0YXRpYzpidWlsZCcsXG4gICdzYnAnOiAnc3RhdGljOmJ1aWxkOnByb2QnLFxuICAnc2JkJzogJ3N0YXRpYzpidWlsZDpkaXN0JyxcbiAgJ3NibCc6ICdzdGF0aWM6YnVpbGQ6bGliJyxcbiAgJ3NiYSc6ICdzdGF0aWM6YnVpbGQ6YXBwJyxcbiAgJ2NiJzogJ2NsZWFuOmJ1aWxkJ1xufTtcblxuY29uc3QgYXJnc1JlcGxhY2VtZW50c090aGVyID0ge1xuICAvLyBnaXRodWIgZG9jc1xuICAnZ2hwdXNoJzogJ2dpdGh1YnB1c2gnLFxuICAnZ2hwdWxsJzogJ2dpdGh1YnB1bGwnLFxuICAvLyBsYXN0XG4gICdsJzogJ2xhc3QnLFxuICAnc2wnOiAnc2hvdzpsYXN0JyxcbiAgJ2xiJzogJ2xhc3Q6YnVpbGQnLFxuICAvLyBpbnN0YWxsXG4gICdpJzogJ2luc3RhbGwnLFxuICAnc2knOiAnc2luc3RhbGwnLFxuICAnaWwnOiAnaW5zdGFsbDpsb2NhbGx5JyxcbiAgJ3JjJzogJ3JlY29tbWl0JyxcbiAgLy8gcmVsZWFzZVxuICAncnAnOiAncmVsZWFzZTpwcm9kJyxcbiAgJ3InOiAncmVsZWFzZScsXG4gICdybSc6ICdyZWxlYXNlOm1ham9yJyxcbiAgJ3JhJzogJ3JlbGVhc2U6YWxsJyxcbiAgJ2FyJzogJ2F1dG86cmVsZWFzZScsXG4gIC8vIHZlcnNvcG1cbiAgJy0tdmVyc2lvbic6ICd2ZXJzaW9uJyxcbiAgJy12JzogJ3ZlcnNpb24nLFxuICAvLyBvcGVuXG4gICdvY2MnOiAnb3Blbjpjb3JlOmNvbnRhaW5lcicsXG4gICdvY3AnOiAnb3Blbjpjb3JlOnByb2plY3QnLFxuICAvLyB0ZXN0XG4gICd0d2QnOiAndGVzdDp3YXRjaDpkZWJ1ZycsXG4gICd0ZHcnOiAndGVzdDp3YXRjaDpkZWJ1ZycsXG4gICd0dyc6ICd0ZXN0OndhdGNoJyxcbiAgJ3RkJzogJ3Rlc3Q6ZGVidWcnLFxuICAndCc6ICd0ZXN0JyxcbiAgLy8gZ2l0IHB1c2hcbiAgJ3B0JzogJ3B1c2g6dGFnJyxcbiAgJ3AnOiAncHVzaCcsXG4gICdwYSc6ICdwdXNoYWxsbCcsXG4gIC8vIG90aGVyXG4gICdzaic6ICdzZWxlY3Q6amF2YScsXG4gICdzY20nOiAnc2hvd2NvcmVtb2R1bGVzJyxcbiAgJ3RwdSc6ICd0YXJnZXQ6cHJvajp1cGRhdGUnLFxuICAndWdkJzogJ3VwZGF0ZTpnbG9iYWw6ZGVwcycsXG4gICd1ZCc6ICd1cGRhdGU6ZGVwcycsIC8vIHNhbWUgYXMgbnBtIGlcbiAgJ2RnbCc6ICdkZXRlY3Q6Z2xvYmFsOmxpYnMnLFxuICAncHInOiAncHJpbnQ6cmVsYXRpdmVzJyxcbn07XG5cbmNvbnN0IGFyZVRydXN0ZWRGb3JQYXRjaFVwZGF0ZSA9IFtcbiAgJ0Bhbmd1bGFyJyxcbiAgJ0BuZ3J4JyxcbiAgJ3J4anMnLFxuICAnem9uZS5qcycsXG4gICd0c2xpYicsXG4gICd0eXBlc2NyaXB0JyxcbiAgJ3dlYnBhY2snXG5dO1xuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICBwYWNrYWdlc1RoYXQ6IHtcbiAgICBhcmVUcnVzdGVkRm9yUGF0Y2hVcGRhdGUsXG4gIH0sXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgY29yZVByb2plY3RWZXJzaW9uczogWyd2MScsICd2MicsICd2MyddLFxuICBxdWlja0ZpeGVzOiB7XG4gICAgbWlzc2luZ0xpYnM6IFtcbiAgICAgICdyZWFjdC1uYXRpdmUtc3FsaXRlLXN0b3JhZ2UnXG4gICAgXVxuICB9LFxuICBwYWNrYWdlSnNvblNwbGl0LFxuICByZWdleFN0cmluZzoge1xuICAgIHBhdGhQYXJ0U3RyaW5nUmVnZXg6IGAoXFwvKFthLXpBLVowLTldfFxcXFwtfFxcXFxffFxcXFwrfFxcXFwuKSopYFxuICB9LFxuICBwbGFjZWhvbGRlcnM6IHtcbiAgICBmb3JQcm9qZWN0c0luRW52aXJvbm1lbnRGaWxlOiAnLy88UExBQ0VIT0xERVJfRk9SX1BST0pFQ1RTPidcbiAgfSxcbiAgYXJyYXk6IHtcbiAgICBpc29tb3JwaGljUGFja2FnZXM6ICdpc29tb3JwaGljUGFja2FnZXMnXG4gIH0sXG4gIGRlZmF1bHRGcmFtZXdvcmtWZXJzaW9uOiAndjMnIGFzIENvbmZpZ01vZGVscy5GcmFtZXdvcmtWZXJzaW9uLFxuICBDT05TVDoge1xuICAgIFVOSVRfVEVTVF9USU1FT1VUOiAzMDAwMCxcbiAgICBJTlRFR1JBVElPTl9URVNUOiAzMDAwMCxcbiAgICBCQUNLRU5EX0hUVFBfUkVRVUVTVF9USU1FT1VUOiAzMDAwLFxuICB9LFxuICBkZWJ1Zzoge1xuICAgIHNvdXJjZU1vZGlmaWVyOiBbXG5cbiAgICBdLFxuICAgIGJhc2VsaW5lU2l0ZUpvaW46IHtcbiAgICAgIERFQlVHX1BBVEhFUzogW1xuICAgICAgICAvLyBcInNyYy9hcHBzL2F1dGgvQXV0aENvbnRyb2xsZXIudHNcIixcbiAgICAgICAgLy8gJy9zcmMvYXBwLytwcmV2aWV3LWNvbXBvbmVudHMvcHJldmlldy1jb21wb25lbnRzLmNvbXBvbmVudC50cycsXG4gICAgICAgIC8vICcvc3JjL2NvbnRyb2xsZXJzLnRzJyxcbiAgICAgICAgLy8gJy9zcmMvYXBwLytwcmV2aWV3LWNvbXBvbmVudHMvY29tcG9uZW50cy8rcHJldmlldy1idWlsZHRucHByb2Nlc3MvcHJldmlldy1idWlsZHRucHByb2Nlc3MuY29tcG9uZW50LnRzJ1xuICAgICAgXSxcbiAgICAgIERFQlVHX01FUkdFX1BBVEhFUzogW1xuICAgICAgICAvLyBcInNyYy9hcHBzL2F1dGgvQXV0aENvbnRyb2xsZXIudHNcIixcbiAgICAgICAgLy8gJy9zcmMvYXBwLytwcmV2aWV3LWNvbXBvbmVudHMvY29tcG9uZW50cy8rcHJldmlldy1idWlsZHRucHByb2Nlc3MvcHJldmlldy1idWlsZHRucHByb2Nlc3MuY29tcG9uZW50LnRzJ1xuICAgICAgICAvLyAnL2NvbXBvbmVudHMvZm9ybWx5L2Jhc2UtY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLXdyYXBwZXIuY29tcG9uZW50LnRzJ1xuICAgICAgICAvLyAnL3NyYy9hcHAvK3ByZXZpZXctY29tcG9uZW50cy9jb21wb25lbnRzLytwcmV2aWV3LWJ1aWxkdG5wcHJvY2Vzcy9wcmV2aWV3LWJ1aWxkdG5wcHJvY2Vzcy5jb21wb25lbnQudHMnXG4gICAgICBdXG4gICAgfVxuICB9LFxuLyogKi9cbi8qICovXG4gIFxuICBmcmFtZXdvcmtOYW1lczoge1xuICAgIHRucDogJ3RucCcsXG4gICAgZmlyZWRldjogJ2ZpcmVkZXYnXG4gIH0sXG4gIHN0YXJ0UG9ydDogNjAwMSxcbiAgZnJhbWV3b3JrczogWydib290c3RyYXAnLCAnaW9uaWMnLCAnbWF0ZXJpYWwnXSBhcyBDb25maWdNb2RlbHMuVUlGcmFtZXdvcmtbXSxcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgYWxsb3dlZEVudmlyb25tZW50cyxcbiAgZm9sZGVyLFxuICB0ZW1wRm9sZGVycyxcbiAgLy8gQHRzLWlnbm9yZVxuICBmaWxlc05vdEFsbG93ZWRUb0NsZWFuOiBPYmplY3Qua2V5cyhmaWxlc05vdEFsbG93ZWRUb0NsZWFuKS5tYXAoa2V5ID0+IGZpbGVzTm90QWxsb3dlZFRvQ2xlYW5ba2V5XSkgYXMgc3RyaW5nW10sXG4gIGZpbGUsXG4gIGRlZmF1bHQ6IHtcbiAgICBjbG91ZDoge1xuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgbmFtZTogJ29ubGluZScgYXMgQ29uZmlnTW9kZWxzLkVudmlyb25tZW50TmFtZVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgU1VCRVJJWkVEX1BSRUZJWDogYC0tLXN0dWJlcml6ZWRgLFxuICBuYW1lczoge1xuICAgIGVudjogYWxsb3dlZEVudmlyb25tZW50c09iaixcbiAgICBiYXNlbGluZTogJ2Jhc2VsaW5lJyxcbiAgICBkZWZhdWx0U2VydmVyOiAnZGVmYXVsdCBzZXJ2ZXInLFxuICB9LFxuICByZXNlcnZlZEFyZ3VtZW50c05hbWVzVWdsaWZ5OiBbXG4gICAgJ3Jlc2VydmVkRXhwT25lJyxcbiAgICAncmVzZXJ2ZWRFeHBTZWMnXG4gIF0sXG4gIGV4dGVuc2lvbnM6IHtcbiAgICAvKipcbiAgICAgICAqIE1vZGlmeSBzb3VyY2U6IGltcG9ydCxleHBvcnQsIHJlcXVpcmVzXG4gICAgICAgKi9cbiAgICBnZXQgbW9kaWZpY2FibGVCeVJlcGxhY2VGbigpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgICd0cycsXG4gICAgICAgICdqcycsXG4gICAgICAgIC4uLnN0eWxlc0ZpbGVzRXh0ZW5zaW9uLFxuICAgICAgXS5tYXAoZiA9PiBgLiR7Zn1gKTtcbiAgICB9LFxuICB9LFxuICBub3RGaXJlZGV2UHJvamVjdHM6IFtcbiAgICAndW5rbm93JywgJ3Vua25vdy1ucG0tcHJvamVjdCcsICdzY2VuYXJpbycsICduYXZpJ1xuICBdIGFzIENvbmZpZ01vZGVscy5MaWJUeXBlW10sXG4gIC8qKlxuICAgKiBCdWlsZCBhbGxvd2VkIHR5cGVzXG4gICAqL1xuICBhbGxvd2VkVHlwZXM6IHtcbiAgICAvKipcbiAgICAgKiBQcm9qZWN0cyBmb3IgYnVpbGQ6YXBwOndhdGNoIGNvbW1hbmRcbiAgICAgKi9cbiAgICBhcHA6IFtcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJDbGllbnQsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyTGliLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuaXNvbW9ycGhpY0xpYixcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmlvbmljQ2xpZW50LFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuZG9ja2VyLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuY29udGFpbmVyLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUudnNjb2RlRXh0LFxuICAgIF0gYXMgQ29uZmlnTW9kZWxzLkxpYlR5cGVbXSxcbiAgICAvKipcbiAgICAgKiBQcm9qZWN0cyBmb3IgYnVpbGQ6KGRpc3R8YnVuZGxlKTood2F0Y2gpIGNvbW1hbmRcbiAgICAgKi9cbiAgICBsaWJzOiBbXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyTGliLFxuICAgICAgR2xvYmFsTGliVHlwZU5hbWUuaXNvbW9ycGhpY0xpYixcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLndvcmtzcGFjZSxcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmNvbnRhaW5lcixcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmRvY2tlcixcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLnZzY29kZUV4dCxcbiAgICBdIGFzIENvbmZpZ01vZGVscy5MaWJUeXBlW11cbiAgfSxcbiAgbW9kdWxlTmFtZUFuZ3VsYXJMaWIsXG4gIG1vZHVsZU5hbWVJc29tb3JwaGljTGliLFxuICBmaWxlc0V4dGVuc2lvbnM6IHtcbiAgICBmaWxldGVtcGxhdGU6ICdmaWxldGVtcGxhdGUnLFxuICAgIHN0eWxlczogc3R5bGVzRmlsZXNFeHRlbnNpb24sXG4gIH0sXG4gIHByb2plY3RUeXBlczoge1xuICAgIGZvck5wbUxpYnM6IFtcbiAgICAgIEdsb2JhbExpYlR5cGVOYW1lLmFuZ3VsYXJMaWIsXG4gICAgICBHbG9iYWxMaWJUeXBlTmFtZS5pc29tb3JwaGljTGliLFxuICAgIF0sXG4gICAgd2l0aDoge1xuICAgICAgYW5ndWxhckFzQ29yZTogW1xuICAgICAgICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyQ2xpZW50LFxuICAgICAgICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyTGliLFxuICAgICAgICBHbG9iYWxMaWJUeXBlTmFtZS5pb25pY0NsaWVudCxcbiAgICAgIF0sXG4gICAgICBjb21wb25ldHNBc1NyYzogW1xuICAgICAgICBHbG9iYWxMaWJUeXBlTmFtZS5hbmd1bGFyTGliLFxuICAgICAgXSxcbiAgICB9XG4gIH0sXG4gIC8vIGVudmlyb25tZW50TmFtZSxcbiAgbG9jYWxMaWJzOiBbXG4gICAgJ2VzbGludCcsXG4gICAgJ21rZGlycCcsXG4gICAgJ2d1bHAnLFxuICAgICducG0tcnVuJyxcbiAgICAncmltcmFmJyxcbiAgICAnbm9kZW1vbicsXG4gICAgJ3JlbGVhc2UtaXQnLFxuICAgICd0c2MnLFxuICAgICd3YXRjaCcsXG4gICAgJ2h0dHAtc2VydmVyJyxcbiAgICAndHMtbm9kZScsXG4gICAgJ3NvcnQtcGFja2FnZS1qc29uJyxcbiAgICAnY29uY3VycmVudGx5JyxcbiAgICAnc2xvYycsXG4gICAgJ21vcnBoaSdcbiAgXSxcbiAgaGVscEFsaWFzOiBbXG4gICAgJy1oJyxcbiAgICAnLS1oZWxwJyxcbiAgICAnLWhlbHAnLFxuICAgICdoZWxwJ1xuICBdLFxuICByZXF1aXJlZDoge1xuICAgIG5wbTogW1xuICAgICAgeyBuYW1lOiAnQGFuZ3VsYXIvY2xpJywgdmVyc2lvbjogJzEzJyB9LFxuICAgICAgeyBuYW1lOiAnZXh0cmFjdC16aXAnLCB2ZXJzaW9uOiAnMS42LjcnIH0sXG4gICAgICB7IG5hbWU6ICd3YXRjaCcsIHZlcnNpb246ICcxLjAuMicgfSxcbiAgICAgIHsgbmFtZTogJ2NwcicgfSxcbiAgICAgIHsgbmFtZTogJ2NoZWNrLW5vZGUtdmVyc2lvbicgfSxcbiAgICAgIHsgbmFtZTogJ25wbS1ydW4nLCB2ZXJzaW9uOiAnNC4xLjInIH0sXG4gICAgICB7IG5hbWU6ICdyaW1yYWYnIH0sXG4gICAgICB7IG5hbWU6ICdta2RpcnAnIH0sXG4gICAgICB7IG5hbWU6ICdyZW5hbWVyJywgdmVyc2lvbjogJzIuMC4xJyB9LFxuICAgICAgeyBuYW1lOiAnbm9kZW1vbicgfSxcbiAgICAgIHsgbmFtZTogJ21hZGdlJyB9LFxuICAgICAgeyBuYW1lOiAneWFybicgfSxcbiAgICAgIHsgbmFtZTogJ2h0dHAtc2VydmVyJyB9LFxuICAgICAgeyBuYW1lOiAnaW5jcmVhc2UtbWVtb3J5LWxpbWl0JyB9LFxuICAgICAgeyBuYW1lOiAnYm93ZXInIH0sXG4gICAgICB7IG5hbWU6ICdma2lsbCcsIGluc3RhbGxOYW1lOiAnZmtpbGwtY2xpJyB9LFxuICAgICAgLy8geyBuYW1lOiAneW8nIH0sXG4gICAgICB7IG5hbWU6ICdtb2NoYScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ2NoYWknIH0sXG4gICAgICB7IG5hbWU6ICd0cy1ub2RlJyB9LFxuICAgICAgeyBuYW1lOiAndnNjZScgfSxcbiAgICAgIC8vIHsgbmFtZTogJ3N0bXV4JyB9LFxuICAgICAgeyBuYW1lOiAnd2VicGFjay1idW5kbGUtYW5hbHl6ZXInIH0sXG4gICAgICAvLyB7IG5hbWU6ICduZycsIGluc3RhbGxOYW1lOiAnQGFuZ3VsYXIvY2xpJyB9LFxuICAgICAgLy8geyBuYW1lOiAnbmd4LXB3YS1pY29ucycsIHZlcnNpb246ICcwLjEuMicgfSxcbiAgICAgIC8vIHsgbmFtZTogJ3JlYWwtZmF2aWNvbicsIGluc3RhbGxOYW1lOiAnY2xpLXJlYWwtZmF2aWNvbicgfSxcbiAgICAgIHsgbmFtZTogJ2JhYmVsJywgaW5zdGFsbE5hbWU6ICdiYWJlbC1jbGknIH0sXG4gICAgICB7IG5hbWU6ICdqYXZhc2NyaXB0LW9iZnVzY2F0b3InLCB2ZXJzaW9uOiAnNCcgfSxcbiAgICAgIHsgbmFtZTogJ3VnbGlmeWpzJywgaW5zdGFsbE5hbWU6ICd1Z2xpZnktanMnIH0sXG4gICAgXSxcbiAgICBuaWNlVG9vbHM6IFtcbiAgICAgIHsgbmFtZTogJ3NwZWVkLXRlc3QnIH0sXG4gICAgICB7IG5hbWU6ICducG0tbmFtZScgfSwgLy8gY2hlY2sgaWYgbmFtZSBpcyBhdmFpbGFibGUgb24gbnBtXG4gICAgICB7IG5hbWU6ICd2YW50YWdlJywgcGxhdGZvcm06ICdsaW51eCcgfSwgLy8gaW5zcGVjdCB5b3UgbGl2ZSBhcHBsaWNhaXRvblxuICAgICAgeyBuYW1lOiAnY2xpbmljJywgcGxhdGZvcm06ICdsaW51eCcgfSwgLy8gY2hlY2sgd2h5IG5vZGVqcyBpcyBzbG93XG4gICAgICB7IG5hbWU6ICd2dG9wJywgcGxhdGZvcm06ICdsaW51eCcgfSwgLy8gaW5zcGVjdCB5b3UgbGl2ZSBhcHBsaWNhaXRvbixcbiAgICAgIHsgbmFtZTogJ3B1YmxpYy1pcCcgfSxcbiAgICAgIHsgbmFtZTogJ2VtcHR5LXRyYXNoJyB9LFxuICAgICAgeyBuYW1lOiAnaXMtdXAnIH0sIC8vIGNoZWNrIGlmIHdlYnNpdGUgaXMgb2tcbiAgICAgIHsgbmFtZTogJ2lzLW9ubGluZScgfSwgLy8gY2hlY2sgaWYgaW50ZXJuZXQgaXMgb2ssXG4gICAgICB7IG5hbWU6ICd0dHlzdHVkaW8nIH0sIC8vIHJlY29yZCB0ZXJtaW5hbCBhY3Rpb25zLFxuICAgICAgeyBuYW1lOiAnYmNhdCcgfSwgLy8gcmVkaXJlY3QgYW55IHN0cmVhbSB0byBicm93c2VyLFxuICAgICAgeyBuYW1lOiAnd2lmaS1wYXNzd29yZCcsIGluc3RhbGxOYW1lOiAnd2lmaS1wYXNzd29yZC1jbGknIH0sXG4gICAgICB7IG5hbWU6ICd3YWxscGFwZXInLCBpbnN0YWxsTmFtZTogJ3dhbGxwYXBlci1jbGknIH0sXG4gICAgICB7IG5hbWU6ICdicmlnaHRuZXNzJywgaW5zdGFsbE5hbWU6ICdicmlnaHRuZXNzLWNsaScgfSxcbiAgICAgIHsgbmFtZTogJ3N1YmRvd25sb2FkZXInIH0sXG4gICAgICB7IG5hbWU6ICdydGFpbCcgfSwgLy8gbW9uaXRvciBtdWx0aXBsZSBzZXJ2ZXJcbiAgICAgIHsgbmFtZTogJ2lwb25tYXAnIH0sIC8vIHNob3cgaXAgaW4gdGVybWluYWwgbWFwLFxuICAgICAgeyBuYW1lOiAnanNvbWUnIH0sIC8vIGRpc3BsYXkgY29sb3JlZCBqc29ucyxcbiAgICAgIHsgbmFtZTogJ2RyYXdpbGxlJywgaXNOb3RDbGk6IHRydWUgfSwgLy8gM2QgZHJ3YSBpbiB0ZW1yaW5hbFxuICAgICAgeyBuYW1lOiAnY29sdW1uaWZ5JywgaXNOb3RDbGk6IHRydWUgfSwgLy8gZHJhdyBuaWNlIGNvbHVtbnMgaW4gbm9kZSxcbiAgICAgIHsgbmFtZTogJ211bHRpc3Bpbm5lcicsIGlzTm90Q2xpOiB0cnVlIH0sIC8vIHByb2dyZXMgZm9yIG11bHRpcGxlIGFzeW5jIGFjdGlvbnNcbiAgICAgIHsgbmFtZTogJ2Nmb250cycgfSwgLy8gZHJhdyBzdXBlciBuaWNlIGZvbnRzIGluIGNvbnNvbGVcbiAgICBdLFxuICAgIHByb2dyYW1zOiBbLFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29kZScsXG4gICAgICAgIHdlYnNpdGU6ICdodHRwczovL2NvZGUudmlzdWFsc3R1ZGlvLmNvbS8nXG4gICAgICB9XG4gICAgXVxuICB9XG59O1xuXG5cblxuLy8gZXhwb3J0IGNvbnN0IEdsb2JhbElzb21vcnBoaWNEZXBlbmRlbmNpZXM6IENvbmZpZ01vZGVscy5HbG9iYWxEZXBlbmRlbmNpZXMgPSB7XG4vLyAgIG5wbTogW1xuLy8gICAgIHsgbmFtZTogJ3JpbXJhZicgfSxcbi8vICAgICB7IG5hbWU6ICducG0tcnVuJywgdmVyc2lvbjogJzQuMS4yJyB9LFxuLy8gICAgIHsgbmFtZTogJ2NwcicgfSxcbi8vICAgICB7IG5hbWU6ICdjaGVjay1ub2RlLXZlcnNpb24nIH0sXG4vLyAgICAgeyBuYW1lOiAndnNjZScgfSxcbi8vICAgXSxcbi8vICAgcHJvZ3JhbXM6IFtcbi8vICAgICAvLyB7XG4vLyAgICAgLy8gICBuYW1lOiAnY29kZScsXG4vLyAgICAgLy8gICB3ZWJzaXRlOiAnaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20vJ1xuLy8gICAgIC8vIH1cbi8vICAgXSBhcyB7IG5hbWU6IHN0cmluZzsgd2Vic2l0ZTogc3RyaW5nIH1bXVxuLy8gfTtcbiJdfQ==