@fenge/eslint-config 0.8.3 → 0.9.1

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.
@@ -331,12 +331,157 @@ export declare function getTsBase(): {
331
331
  readonly unicorn: import("eslint").ESLint.Plugin & {
332
332
  configs: {
333
333
  recommended: import("eslint").Linter.FlatConfig;
334
+ unopinionated: import("eslint").Linter.FlatConfig;
334
335
  all: import("eslint").Linter.FlatConfig;
335
336
  "flat/all": import("eslint").Linter.FlatConfig;
336
337
  "flat/recommended": import("eslint").Linter.FlatConfig;
337
338
  };
338
339
  };
339
- readonly "es-x": unknown;
340
+ readonly "es-x": {
341
+ meta: {
342
+ name: string;
343
+ version: string;
344
+ };
345
+ configs: {
346
+ "flat/no-array-grouping": import("eslint").Linter.Config;
347
+ "flat/no-arraybuffer-base64": import("eslint").Linter.Config;
348
+ "flat/no-change-array-by-copy": import("eslint").Linter.Config;
349
+ "flat/no-class-fields": import("eslint").Linter.Config;
350
+ "flat/no-explicit-resource-management": import("eslint").Linter.Config;
351
+ "flat/no-float16array": import("eslint").Linter.Config;
352
+ "flat/no-import-attributes": import("eslint").Linter.Config;
353
+ "flat/no-intl-locale-info": import("eslint").Linter.Config;
354
+ "flat/no-intl-numberformat-v3": import("eslint").Linter.Config;
355
+ "flat/no-is-usv-string": import("eslint").Linter.Config;
356
+ "flat/no-iterator-helpers": import("eslint").Linter.Config;
357
+ "flat/no-json-parse-with-source": import("eslint").Linter.Config;
358
+ "flat/no-new-in-es5": import("eslint").Linter.Config;
359
+ "flat/no-new-in-es2015": import("eslint").Linter.Config;
360
+ "flat/no-new-in-es2015-intl-api": import("eslint").Linter.Config;
361
+ "flat/no-new-in-es2016": import("eslint").Linter.Config;
362
+ "flat/no-new-in-es2016-intl-api": import("eslint").Linter.Config;
363
+ "flat/no-new-in-es2017": import("eslint").Linter.Config;
364
+ "flat/no-new-in-es2017-intl-api": import("eslint").Linter.Config;
365
+ "flat/no-new-in-es2018": import("eslint").Linter.Config;
366
+ "flat/no-new-in-es2018-intl-api": import("eslint").Linter.Config;
367
+ "flat/no-new-in-es2019": import("eslint").Linter.Config;
368
+ "flat/no-new-in-es2019-intl-api": import("eslint").Linter.Config;
369
+ "flat/no-new-in-es2020": import("eslint").Linter.Config;
370
+ "flat/no-new-in-es2020-intl-api": import("eslint").Linter.Config;
371
+ "flat/no-new-in-es2021": import("eslint").Linter.Config;
372
+ "flat/no-new-in-es2021-intl-api": import("eslint").Linter.Config;
373
+ "flat/no-new-in-es2022": import("eslint").Linter.Config;
374
+ "flat/no-new-in-es2022-intl-api": import("eslint").Linter.Config;
375
+ "flat/no-new-in-es2023": import("eslint").Linter.Config;
376
+ "flat/no-new-in-es2023-intl-api": import("eslint").Linter.Config;
377
+ "flat/no-new-in-es2024": import("eslint").Linter.Config;
378
+ "flat/no-new-in-es2024-intl-api": import("eslint").Linter.Config;
379
+ "flat/no-new-in-es2025": import("eslint").Linter.Config;
380
+ "flat/no-new-in-es2025-intl-api": import("eslint").Linter.Config;
381
+ "flat/no-new-in-esnext": import("eslint").Linter.Config;
382
+ "flat/no-new-in-esnext-intl-api": import("eslint").Linter.Config;
383
+ "flat/no-relative-indexing-method": import("eslint").Linter.Config;
384
+ "flat/no-set-methods": import("eslint").Linter.Config;
385
+ "flat/no-string-matchall": import("eslint").Linter.Config;
386
+ "flat/no-temporal": import("eslint").Linter.Config;
387
+ "flat/no-upsert": import("eslint").Linter.Config;
388
+ "flat/restrict-to-es-intl-api-1st-edition": import("eslint").Linter.Config;
389
+ "flat/restrict-to-es3": import("eslint").Linter.Config;
390
+ "flat/restrict-to-es5": import("eslint").Linter.Config;
391
+ "flat/restrict-to-es2015": import("eslint").Linter.Config;
392
+ "flat/restrict-to-es2015-intl-api": import("eslint").Linter.Config;
393
+ "flat/restrict-to-es2016": import("eslint").Linter.Config;
394
+ "flat/restrict-to-es2016-intl-api": import("eslint").Linter.Config;
395
+ "flat/restrict-to-es2017": import("eslint").Linter.Config;
396
+ "flat/restrict-to-es2017-intl-api": import("eslint").Linter.Config;
397
+ "flat/restrict-to-es2018": import("eslint").Linter.Config;
398
+ "flat/restrict-to-es2018-intl-api": import("eslint").Linter.Config;
399
+ "flat/restrict-to-es2019": import("eslint").Linter.Config;
400
+ "flat/restrict-to-es2019-intl-api": import("eslint").Linter.Config;
401
+ "flat/restrict-to-es2020": import("eslint").Linter.Config;
402
+ "flat/restrict-to-es2020-intl-api": import("eslint").Linter.Config;
403
+ "flat/restrict-to-es2021": import("eslint").Linter.Config;
404
+ "flat/restrict-to-es2021-intl-api": import("eslint").Linter.Config;
405
+ "flat/restrict-to-es2022": import("eslint").Linter.Config;
406
+ "flat/restrict-to-es2022-intl-api": import("eslint").Linter.Config;
407
+ "flat/restrict-to-es2023": import("eslint").Linter.Config;
408
+ "flat/restrict-to-es2023-intl-api": import("eslint").Linter.Config;
409
+ "flat/restrict-to-es2024": import("eslint").Linter.Config;
410
+ "flat/restrict-to-es2024-intl-api": import("eslint").Linter.Config;
411
+ "no-array-grouping": import("eslint").Linter.LegacyConfig;
412
+ "no-arraybuffer-base64": import("eslint").Linter.LegacyConfig;
413
+ "no-change-array-by-copy": import("eslint").Linter.LegacyConfig;
414
+ "no-class-fields": import("eslint").Linter.LegacyConfig;
415
+ "no-explicit-resource-management": import("eslint").Linter.LegacyConfig;
416
+ "no-float16array": import("eslint").Linter.LegacyConfig;
417
+ "no-import-attributes": import("eslint").Linter.LegacyConfig;
418
+ "no-intl-locale-info": import("eslint").Linter.LegacyConfig;
419
+ "no-intl-numberformat-v3": import("eslint").Linter.LegacyConfig;
420
+ "no-is-usv-string": import("eslint").Linter.LegacyConfig;
421
+ "no-iterator-helpers": import("eslint").Linter.LegacyConfig;
422
+ "no-json-parse-with-source": import("eslint").Linter.LegacyConfig;
423
+ "no-new-in-es5": import("eslint").Linter.LegacyConfig;
424
+ "no-new-in-es2015": import("eslint").Linter.LegacyConfig;
425
+ "no-new-in-es2015-intl-api": import("eslint").Linter.LegacyConfig;
426
+ "no-new-in-es2016": import("eslint").Linter.LegacyConfig;
427
+ "no-new-in-es2016-intl-api": import("eslint").Linter.LegacyConfig;
428
+ "no-new-in-es2017": import("eslint").Linter.LegacyConfig;
429
+ "no-new-in-es2017-intl-api": import("eslint").Linter.LegacyConfig;
430
+ "no-new-in-es2018": import("eslint").Linter.LegacyConfig;
431
+ "no-new-in-es2018-intl-api": import("eslint").Linter.LegacyConfig;
432
+ "no-new-in-es2019": import("eslint").Linter.LegacyConfig;
433
+ "no-new-in-es2019-intl-api": import("eslint").Linter.LegacyConfig;
434
+ "no-new-in-es2020": import("eslint").Linter.LegacyConfig;
435
+ "no-new-in-es2020-intl-api": import("eslint").Linter.LegacyConfig;
436
+ "no-new-in-es2021": import("eslint").Linter.LegacyConfig;
437
+ "no-new-in-es2021-intl-api": import("eslint").Linter.LegacyConfig;
438
+ "no-new-in-es2022": import("eslint").Linter.LegacyConfig;
439
+ "no-new-in-es2022-intl-api": import("eslint").Linter.LegacyConfig;
440
+ "no-new-in-es2023": import("eslint").Linter.LegacyConfig;
441
+ "no-new-in-es2023-intl-api": import("eslint").Linter.LegacyConfig;
442
+ "no-new-in-es2024": import("eslint").Linter.LegacyConfig;
443
+ "no-new-in-es2024-intl-api": import("eslint").Linter.LegacyConfig;
444
+ "no-new-in-es2025": import("eslint").Linter.LegacyConfig;
445
+ "no-new-in-es2025-intl-api": import("eslint").Linter.LegacyConfig;
446
+ "no-new-in-esnext": import("eslint").Linter.LegacyConfig;
447
+ "no-new-in-esnext-intl-api": import("eslint").Linter.LegacyConfig;
448
+ "no-relative-indexing-method": import("eslint").Linter.LegacyConfig;
449
+ "no-set-methods": import("eslint").Linter.LegacyConfig;
450
+ "no-string-matchall": import("eslint").Linter.LegacyConfig;
451
+ "no-temporal": import("eslint").Linter.LegacyConfig;
452
+ "no-upsert": import("eslint").Linter.LegacyConfig;
453
+ "restrict-to-es-intl-api-1st-edition": import("eslint").Linter.LegacyConfig;
454
+ "restrict-to-es3": import("eslint").Linter.LegacyConfig;
455
+ "restrict-to-es5": import("eslint").Linter.LegacyConfig;
456
+ "restrict-to-es2015": import("eslint").Linter.LegacyConfig;
457
+ "restrict-to-es2015-intl-api": import("eslint").Linter.LegacyConfig;
458
+ "restrict-to-es2016": import("eslint").Linter.LegacyConfig;
459
+ "restrict-to-es2016-intl-api": import("eslint").Linter.LegacyConfig;
460
+ "restrict-to-es2017": import("eslint").Linter.LegacyConfig;
461
+ "restrict-to-es2017-intl-api": import("eslint").Linter.LegacyConfig;
462
+ "restrict-to-es2018": import("eslint").Linter.LegacyConfig;
463
+ "restrict-to-es2018-intl-api": import("eslint").Linter.LegacyConfig;
464
+ "restrict-to-es2019": import("eslint").Linter.LegacyConfig;
465
+ "restrict-to-es2019-intl-api": import("eslint").Linter.LegacyConfig;
466
+ "restrict-to-es2020": import("eslint").Linter.LegacyConfig;
467
+ "restrict-to-es2020-intl-api": import("eslint").Linter.LegacyConfig;
468
+ "restrict-to-es2021": import("eslint").Linter.LegacyConfig;
469
+ "restrict-to-es2021-intl-api": import("eslint").Linter.LegacyConfig;
470
+ "restrict-to-es2022": import("eslint").Linter.LegacyConfig;
471
+ "restrict-to-es2022-intl-api": import("eslint").Linter.LegacyConfig;
472
+ "restrict-to-es2023": import("eslint").Linter.LegacyConfig;
473
+ "restrict-to-es2023-intl-api": import("eslint").Linter.LegacyConfig;
474
+ "restrict-to-es2024": import("eslint").Linter.LegacyConfig;
475
+ "restrict-to-es2024-intl-api": import("eslint").Linter.LegacyConfig;
476
+ readonly "no-5": import("eslint").Linter.LegacyConfig;
477
+ readonly "no-2015": import("eslint").Linter.LegacyConfig;
478
+ readonly "no-2016": import("eslint").Linter.LegacyConfig;
479
+ readonly "no-2017": import("eslint").Linter.LegacyConfig;
480
+ readonly "no-2018": import("eslint").Linter.LegacyConfig;
481
+ readonly "no-2019": import("eslint").Linter.LegacyConfig;
482
+ };
483
+ rules: Record<string, import("eslint").Rule.RuleModule>;
484
+ };
340
485
  readonly "eslint-comments": typeof import("@eslint-community/eslint-plugin-eslint-comments");
341
486
  readonly esm: typeof import("eslint-plugin-esm");
342
487
  readonly "simple-import-sort": import("eslint").ESLint.Plugin;
@@ -476,63 +621,29 @@ export declare function getTsBase(): {
476
621
  readonly "@typescript-eslint/unbound-method": "error";
477
622
  readonly "@typescript-eslint/unified-signatures": "error";
478
623
  readonly "@typescript-eslint/use-unknown-in-catch-callback-variable": "error";
479
- readonly "default-param-last": "off";
480
- readonly "init-declarations": "off";
481
- readonly "max-params": "off";
482
- readonly "no-empty-function": "off";
483
- readonly "no-invalid-this": "off";
484
- readonly "no-shadow": "off";
485
- readonly "no-useless-constructor": "off";
486
624
  readonly "require-await": "off";
487
- readonly "no-array-constructor": "off";
488
- readonly "no-dupe-class-members": "off";
489
625
  readonly "no-implied-eval": "off";
490
626
  readonly "no-redeclare": "off";
491
627
  readonly "no-throw-literal": "off";
492
- readonly "no-unused-expressions": "off";
493
628
  readonly "no-unused-vars": "off";
494
- readonly "no-use-before-define": "off";
495
629
  readonly "prefer-promise-reject-errors": "off";
496
- readonly "@typescript-eslint/default-param-last": "error";
497
- readonly "@typescript-eslint/init-declarations": "error";
498
- readonly "@typescript-eslint/max-params": readonly ["error", {
499
- readonly max: 4;
500
- }];
501
- readonly "@typescript-eslint/no-array-constructor": "error";
502
- readonly "@typescript-eslint/no-dupe-class-members": "error";
503
- readonly "@typescript-eslint/no-empty-function": "error";
504
630
  readonly "@typescript-eslint/no-implied-eval": "error";
505
- readonly "@typescript-eslint/no-invalid-this": "error";
506
631
  readonly "@typescript-eslint/no-redeclare": readonly ["error", {
507
632
  readonly builtinGlobals: false;
508
633
  }];
509
- readonly "@typescript-eslint/no-shadow": readonly ["error", {
510
- readonly ignoreOnInitialization: true;
511
- }];
512
- readonly "@typescript-eslint/no-unused-expressions": readonly ["error", {
513
- readonly enforceForJSX: true;
514
- readonly allowShortCircuit: true;
515
- readonly allowTernary: true;
516
- readonly allowTaggedTemplates: true;
517
- }];
518
634
  readonly "@typescript-eslint/no-unused-vars": readonly ["error", {
519
635
  readonly args: "none";
520
636
  readonly caughtErrors: "none";
521
637
  readonly ignoreRestSiblings: true;
522
638
  readonly vars: "all";
523
639
  }];
524
- readonly "@typescript-eslint/no-use-before-define": readonly ["error", {
525
- readonly functions: false;
526
- readonly classes: false;
527
- readonly variables: false;
528
- }];
529
- readonly "@typescript-eslint/no-useless-constructor": "error";
530
640
  readonly "@typescript-eslint/prefer-promise-reject-errors": "error";
531
641
  readonly "@typescript-eslint/require-await": "error";
532
642
  readonly "arrow-body-style": readonly ["error", "as-needed"];
533
643
  readonly "simple-import-sort/exports": "error";
534
644
  readonly "unicorn/prefer-node-protocol": "error";
535
645
  readonly "unicorn/escape-case": "error";
646
+ readonly "default-param-last": "error";
536
647
  readonly "for-direction": "error";
537
648
  readonly "func-name-matching": "error";
538
649
  readonly "func-names": "error";
@@ -540,18 +651,23 @@ export declare function getTsBase(): {
540
651
  readonly allowArrowFunctions: true;
541
652
  }];
542
653
  readonly "getter-return": "error";
654
+ readonly "init-declarations": "error";
543
655
  readonly "logical-assignment-operators": readonly ["error", "always", {
544
656
  readonly enforceForIfStatements: true;
545
657
  }];
546
658
  readonly "max-depth": readonly ["error", {
547
659
  readonly max: 5;
548
660
  }];
661
+ readonly "max-params": readonly ["error", {
662
+ readonly max: 4;
663
+ }];
549
664
  readonly "no-bitwise": "error";
550
665
  readonly "no-console": "error";
551
666
  readonly "no-constant-binary-expression": "error";
552
667
  readonly "no-dupe-else-if": "error";
553
668
  readonly "no-duplicate-imports": "error";
554
669
  readonly "no-empty-static-block": "error";
670
+ readonly "no-empty-function": "error";
555
671
  readonly "no-implicit-coercion": readonly ["error", {
556
672
  readonly disallowTemplateShorthand: true;
557
673
  readonly allow: readonly ["!!"];
@@ -559,6 +675,7 @@ export declare function getTsBase(): {
559
675
  readonly "no-inner-declarations": readonly ["error", "functions", {
560
676
  readonly blockScopedFunctions: "disallow";
561
677
  }];
678
+ readonly "no-invalid-this": "error";
562
679
  readonly "no-lonely-if": "error";
563
680
  readonly "no-multi-assign": "error";
564
681
  readonly "no-new-native-nonconstructor": "error";
@@ -567,6 +684,10 @@ export declare function getTsBase(): {
567
684
  readonly "no-param-reassign": "error";
568
685
  readonly "no-plusplus": "error";
569
686
  readonly "no-setter-return": "error";
687
+ readonly "no-shadow": readonly ["error", {
688
+ readonly ignoreOnInitialization: true;
689
+ }];
690
+ readonly "no-unassigned-vars": "error";
570
691
  readonly "no-unsafe-optional-chaining": readonly ["error", {
571
692
  readonly disallowArithmeticOperators: true;
572
693
  }];
@@ -576,6 +697,7 @@ export declare function getTsBase(): {
576
697
  readonly "no-useless-call": "error";
577
698
  readonly "no-useless-catch": "error";
578
699
  readonly "no-useless-computed-key": "error";
700
+ readonly "no-useless-constructor": "error";
579
701
  readonly "no-useless-escape": "error";
580
702
  readonly "no-useless-rename": "error";
581
703
  readonly "no-useless-return": "error";
@@ -797,6 +919,12 @@ export declare function getTsBase(): {
797
919
  readonly "unicorn/no-accessor-recursion": "error";
798
920
  readonly "unicorn/no-array-callback-reference": "error";
799
921
  readonly "unicorn/no-array-method-this-argument": "error";
922
+ readonly "unicorn/no-array-reverse": readonly ["error", {
923
+ readonly allowExpressionStatement: false;
924
+ }];
925
+ readonly "unicorn/no-array-sort": readonly ["error", {
926
+ readonly allowExpressionStatement: false;
927
+ }];
800
928
  readonly "unicorn/no-await-in-promise-methods": "error";
801
929
  readonly "unicorn/no-for-loop": "error";
802
930
  readonly "unicorn/no-instanceof-builtins": "error";
@@ -815,15 +943,20 @@ export declare function getTsBase(): {
815
943
  readonly "unicorn/no-unnecessary-await": "error";
816
944
  readonly "unicorn/no-unreadable-array-destructuring": "error";
817
945
  readonly "unicorn/no-unreadable-iife": "error";
946
+ readonly "unicorn/no-useless-error-capture-stack-trace": "error";
818
947
  readonly "unicorn/no-useless-fallback-in-spread": "error";
819
948
  readonly "unicorn/no-useless-promise-resolve-reject": "error";
820
949
  readonly "unicorn/no-useless-spread": "error";
821
950
  readonly "unicorn/no-useless-switch-case": "error";
822
951
  readonly "unicorn/no-zero-fractions": "error";
823
952
  readonly "unicorn/prefer-array-flat-map": "error";
953
+ readonly "unicorn/prefer-bigint-literals": "error";
954
+ readonly "unicorn/prefer-class-fields": "error";
955
+ readonly "unicorn/prefer-classlist-toggle": "error";
824
956
  readonly "unicorn/prefer-date-now": "error";
825
957
  readonly "unicorn/prefer-export-from": "error";
826
958
  readonly "unicorn/prefer-global-this": "error";
959
+ readonly "unicorn/prefer-import-meta-properties": "error";
827
960
  readonly "unicorn/prefer-includes": "error";
828
961
  readonly "unicorn/prefer-logical-operator-over-ternary": "error";
829
962
  readonly "unicorn/prefer-math-min-max": "error";
@@ -839,6 +972,8 @@ export declare function getTsBase(): {
839
972
  readonly "unicorn/prefer-string-slice": "error";
840
973
  readonly "unicorn/prefer-ternary": "error";
841
974
  readonly "unicorn/require-array-join-separator": "error";
975
+ readonly "unicorn/require-module-attributes": "error";
976
+ readonly "unicorn/require-module-specifiers": "error";
842
977
  readonly "unicorn/require-number-to-fixed-digits-argument": "error";
843
978
  readonly "unicorn/text-encoding-identifier-case": "error";
844
979
  readonly "unicorn/throw-new-error": "error";
@@ -852,6 +987,7 @@ export declare function getTsBase(): {
852
987
  readonly "@fenge/no-top-level-arrow-function": "error";
853
988
  readonly "@fenge/no-triple-slash-directive": "error";
854
989
  readonly "@fenge/no-unnecessary-template-string": "error";
990
+ readonly "@fenge/no-used-underscore-param": "error";
855
991
  readonly "@typescript-eslint/ban-ts-comment": readonly ["error", {
856
992
  readonly "ts-expect-error": true;
857
993
  readonly "ts-ignore": true;
@@ -883,6 +1019,7 @@ export declare function getTsBase(): {
883
1019
  readonly capIsNew: false;
884
1020
  readonly properties: true;
885
1021
  }];
1022
+ readonly "no-array-constructor": "error";
886
1023
  readonly "no-async-promise-executor": "error";
887
1024
  readonly "no-caller": "error";
888
1025
  readonly "no-case-declarations": "error";
@@ -897,6 +1034,7 @@ export declare function getTsBase(): {
897
1034
  readonly "no-debugger": "error";
898
1035
  readonly "no-delete-var": "error";
899
1036
  readonly "no-dupe-args": "error";
1037
+ readonly "no-dupe-class-members": "error";
900
1038
  readonly "no-dupe-keys": "error";
901
1039
  readonly "no-duplicate-case": "error";
902
1040
  readonly "no-useless-backreference": "error";
@@ -954,6 +1092,17 @@ export declare function getTsBase(): {
954
1092
  readonly "no-unreachable-loop": "error";
955
1093
  readonly "no-unsafe-finally": "error";
956
1094
  readonly "no-unsafe-negation": "error";
1095
+ readonly "no-unused-expressions": readonly ["error", {
1096
+ readonly enforceForJSX: true;
1097
+ readonly allowShortCircuit: true;
1098
+ readonly allowTernary: true;
1099
+ readonly allowTaggedTemplates: true;
1100
+ }];
1101
+ readonly "no-use-before-define": readonly ["error", {
1102
+ readonly functions: false;
1103
+ readonly classes: false;
1104
+ readonly variables: false;
1105
+ }];
957
1106
  readonly "no-void": "error";
958
1107
  readonly "no-with": "error";
959
1108
  readonly "one-var": readonly ["error", {
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/config/ts/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AAGzD,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoQxB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/config/ts/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AAGzD,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqQxB"}
@@ -5,28 +5,29 @@ export function getTsBase() {
5
5
  const getTsExtensionRules = () => {
6
6
  // Key is js rule, value is ts rule
7
7
  // https://typescript-eslint.io/rules/?=extension
8
+ // Some rules are implemented by eslint core, so we comment them out.
8
9
  const extensionRuleMap = {
9
- "class-methods-use-this": "@typescript-eslint/class-methods-use-this",
10
+ // "class-methods-use-this": "@typescript-eslint/class-methods-use-this", // 9.23.0
10
11
  "consistent-return": "@typescript-eslint/consistent-return",
11
- "default-param-last": "@typescript-eslint/default-param-last",
12
+ // "default-param-last": "@typescript-eslint/default-param-last", // 9.23.0
12
13
  "dot-notation": "@typescript-eslint/dot-notation",
13
- "init-declarations": "@typescript-eslint/init-declarations",
14
- "max-params": "@typescript-eslint/max-params",
15
- "no-array-constructor": "@typescript-eslint/no-array-constructor",
16
- "no-dupe-class-members": "@typescript-eslint/no-dupe-class-members",
17
- "no-empty-function": "@typescript-eslint/no-empty-function",
14
+ // "init-declarations": "@typescript-eslint/init-declarations", // 9.24.0
15
+ // "max-params": "@typescript-eslint/max-params", // 9.27.0
16
+ // "no-array-constructor": "@typescript-eslint/no-array-constructor", // 9.24.0
17
+ // "no-dupe-class-members": "@typescript-eslint/no-dupe-class-members", // 9.24.0
18
+ // "no-empty-function": "@typescript-eslint/no-empty-function", // 9.25.0
18
19
  "no-implied-eval": "@typescript-eslint/no-implied-eval",
19
- "no-invalid-this": "@typescript-eslint/no-invalid-this",
20
- "no-loop-func": "@typescript-eslint/no-loop-func",
21
- // "no-loss-of-precision": "@typescript-eslint/no-loss-of-precision", // This rule has been deprecated
22
- "no-magic-numbers": "@typescript-eslint/no-magic-numbers",
20
+ // "no-invalid-this": "@typescript-eslint/no-invalid-this", // 9.25.0
21
+ // "no-loop-func": "@typescript-eslint/no-loop-func", // 9.25.0
22
+ // "no-loss-of-precision": "@typescript-eslint/no-loss-of-precision", // 9.24.0. And this rule has been deprecated
23
+ // "no-magic-numbers": "@typescript-eslint/no-magic-numbers", // 9.28.0
23
24
  "no-redeclare": "@typescript-eslint/no-redeclare",
24
25
  "no-restricted-imports": "@typescript-eslint/no-restricted-imports",
25
- "no-shadow": "@typescript-eslint/no-shadow",
26
- "no-unused-expressions": "@typescript-eslint/no-unused-expressions",
26
+ // "no-shadow": "@typescript-eslint/no-shadow", // 9.28.0
27
+ // "no-unused-expressions": "@typescript-eslint/no-unused-expressions", // 9.25.0
27
28
  "no-unused-vars": "@typescript-eslint/no-unused-vars",
28
- "no-use-before-define": "@typescript-eslint/no-use-before-define",
29
- "no-useless-constructor": "@typescript-eslint/no-useless-constructor",
29
+ // "no-use-before-define": "@typescript-eslint/no-use-before-define", // 9.28.0
30
+ // "no-useless-constructor": "@typescript-eslint/no-useless-constructor", // 9.23.0
30
31
  "no-throw-literal": "@typescript-eslint/only-throw-error",
31
32
  "prefer-destructuring": "@typescript-eslint/prefer-destructuring",
32
33
  "prefer-promise-reject-errors": "@typescript-eslint/prefer-promise-reject-errors",
@@ -232,4 +233,4 @@ export function getTsBase() {
232
233
  },
233
234
  };
234
235
  }
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvdHMvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxVQUFVLFNBQVM7SUFDdkIsTUFBTSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7UUFDL0IsbUNBQW1DO1FBQ25DLGlEQUFpRDtRQUNqRCxNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLHdCQUF3QixFQUFFLDJDQUEyQztZQUNyRSxtQkFBbUIsRUFBRSxzQ0FBc0M7WUFDM0Qsb0JBQW9CLEVBQUUsdUNBQXVDO1lBQzdELGNBQWMsRUFBRSxpQ0FBaUM7WUFDakQsbUJBQW1CLEVBQUUsc0NBQXNDO1lBQzNELFlBQVksRUFBRSwrQkFBK0I7WUFDN0Msc0JBQXNCLEVBQUUseUNBQXlDO1lBQ2pFLHVCQUF1QixFQUFFLDBDQUEwQztZQUNuRSxtQkFBbUIsRUFBRSxzQ0FBc0M7WUFDM0QsaUJBQWlCLEVBQUUsb0NBQW9DO1lBQ3ZELGlCQUFpQixFQUFFLG9DQUFvQztZQUN2RCxjQUFjLEVBQUUsaUNBQWlDO1lBQ2pELHNHQUFzRztZQUN0RyxrQkFBa0IsRUFBRSxxQ0FBcUM7WUFDekQsY0FBYyxFQUFFLGlDQUFpQztZQUNqRCx1QkFBdUIsRUFBRSwwQ0FBMEM7WUFDbkUsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyx1QkFBdUIsRUFBRSwwQ0FBMEM7WUFDbkUsZ0JBQWdCLEVBQUUsbUNBQW1DO1lBQ3JELHNCQUFzQixFQUFFLHlDQUF5QztZQUNqRSx3QkFBd0IsRUFBRSwyQ0FBMkM7WUFDckUsa0JBQWtCLEVBQUUscUNBQXFDO1lBQ3pELHNCQUFzQixFQUFFLHlDQUF5QztZQUNqRSw4QkFBOEIsRUFD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LG1CQUFtQjtvQkFDbkIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLFlBQVksRUFBRSxLQUFLO29CQUNuQixvQkFBb0IsRUFBRSxLQUFLO29CQUMzQixXQUFXLEVBQUUsS0FBSztvQkFDbEIsdUJBQXVCLEVBQUUsS0FBSztpQkFDL0I7YUFDRjtZQUNELGtEQUFrRCxFQUFFO2dCQUNsRCxPQUFPO2dCQUNQO29CQUNFLEtBQUssRUFBRSxFQUFFO29CQUNULG1CQUFtQjtvQkFDbkIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLFVBQVUsRUFBRSxLQUFLO29CQUNqQixZQUFZLEVBQUUsS0FBSztvQkFDbkIsc0JBQXNCO29CQUN0QixXQUFXLEVBQUUsS0FBSztpQkFDbkI7YUFDRjtZQUNELGdEQUFnRCxFQUFFLE9BQU87WUFDekQsaUNBQWlDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1lBQ3RELGdEQUFnRCxFQUFFO2dCQUNoRCxPQUFPO2dCQUNQLEVBQUUseUJBQXlCLEVBQUUsSUFBSSxFQUFFO2FBQ3BDO1lBQ0QsbUNBQW1DLEVBQUUsT0FBTztZQUM1Qyx1Q0FBdUMsRUFBRSxPQUFPO1lBQ2hELDJEQUEyRCxFQUFFLE9BQU87U0FDckU7S0FDTyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZlbmdlVHNQbHVnaW4gZnJvbSBcIkBmZW5nZS9lc2xpbnQtcGx1Z2luLXRzXCI7XG5pbXBvcnQgeyBnZXRKc0Jhc2UgfSBmcm9tIFwiLi4vanMvYmFzZS50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHNCYXNlKCkge1xuICBjb25zdCBqc0Jhc2UgPSBnZXRKc0Jhc2UoKTtcblxuICBjb25zdCBnZXRUc0V4dGVuc2lvblJ1bGVzID0gKCkgPT4ge1xuICAgIC8vIEtleSBpcyBqcyBydWxlLCB2YWx1ZSBpcyB0cyBydWxlXG4gICAgLy8gaHR0cHM6Ly90eXBlc2NyaXB0LWVzbGludC5pby9ydWxlcy8/PWV4dGVuc2lvblxuICAgIGNvbnN0IGV4dGVuc2lvblJ1bGVNYXAgPSB7XG4gICAgICBcImNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvY2xhc3MtbWV0aG9kcy11c2UtdGhpc1wiLFxuICAgICAgXCJjb25zaXN0ZW50LXJldHVyblwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXJldHVyblwiLFxuICAgICAgXCJkZWZhdWx0LXBhcmFtLWxhc3RcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvZGVmYXVsdC1wYXJhbS1sYXN0XCIsXG4gICAgICBcImRvdC1ub3RhdGlvblwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cIixcbiAgICAgIFwiaW5pdC1kZWNsYXJhdGlvbnNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvaW5pdC1kZWNsYXJhdGlvbnNcIixcbiAgICAgIFwibWF4LXBhcmFtc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9tYXgtcGFyYW1zXCIsXG4gICAgICBcIm5vLWFycmF5LWNvbnN0cnVjdG9yXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWFycmF5LWNvbnN0cnVjdG9yXCIsXG4gICAgICBcIm5vLWR1cGUtY2xhc3MtbWVtYmVyc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kdXBlLWNsYXNzLW1lbWJlcnNcIixcbiAgICAgIFwibm8tZW1wdHktZnVuY3Rpb25cIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cIixcbiAgICAgIFwibm8taW1wbGllZC1ldmFsXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWltcGxpZWQtZXZhbFwiLFxuICAgICAgXCJuby1pbnZhbGlkLXRoaXNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC10aGlzXCIsXG4gICAgICBcIm5vLWxvb3AtZnVuY1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1sb29wLWZ1bmNcIixcbiAgICAgIC8vIFwibm8tbG9zcy1vZi1wcmVjaXNpb25cIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbG9zcy1vZi1wcmVjaXNpb25cIiwgLy8gVGhpcyBydWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWRcbiAgICAgIFwibm8tbWFnaWMtbnVtYmVyc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1tYWdpYy1udW1iZXJzXCIsXG4gICAgICBcIm5vLXJlZGVjbGFyZVwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZWRlY2xhcmVcIixcbiAgICAgIFwibm8tcmVzdHJpY3RlZC1pbXBvcnRzXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1wiLFxuICAgICAgXCJuby1zaGFkb3dcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93XCIsXG4gICAgICBcIm5vLXVudXNlZC1leHByZXNzaW9uc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcIixcbiAgICAgIFwibm8tdW51c2VkLXZhcnNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcIixcbiAgICAgIFwibm8tdXNlLWJlZm9yZS1kZWZpbmVcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcIixcbiAgICAgIFwibm8tdXNlbGVzcy1jb25zdHJ1Y3RvclwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11c2VsZXNzLWNvbnN0cnVjdG9yXCIsXG4gICAgICBcIm5vLXRocm93LWxpdGVyYWxcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvb25seS10aHJvdy1lcnJvclwiLFxuICAgICAgXCJwcmVmZXItZGVzdHJ1Y3R1cmluZ1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZGVzdHJ1Y3R1cmluZ1wiLFxuICAgICAgXCJwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzXCI6XG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnNcIixcbiAgICAgIFwicmVxdWlyZS1hd2FpdFwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XCIsXG4gICAgICBcIm5vLXJldHVybi1hd2FpdFwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXR1cm4tYXdhaXRcIiwgLy8gbm8tcmV0dXJuLWF3YWl0IGhhcyBiZWVuIGRlcHJlY2F0ZWRcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgdHlwZSBKczJUc1J1bGVNYXAgPSB0eXBlb2YgZXh0ZW5zaW9uUnVsZU1hcDtcbiAgICB0eXBlIFRzMkpzUnVsZU1hcCA9IHtcbiAgICAgIFtLIGluIGtleW9mIEpzMlRzUnVsZU1hcCBhcyBKczJUc1J1bGVNYXBbS11dOiBLOyAvLyByZXZlcnNlXG4gICAgfTtcblxuICAgIHR5cGUgSnNFeHRlbnNpb25LZXkgPSBFeHRyYWN0PFxuICAgICAga2V5b2YgSnMyVHNSdWxlTWFwLFxuICAgICAga2V5b2YgdHlwZW9mIGpzQmFzZS5ydWxlc1xuICAgID47IC8vIEV4dHJhY3RcbiAgICB0eXBlIFRzRXh0ZW5zaW9uS2V5ID0gSnMyVHNSdWxlTWFwW0pzRXh0ZW5zaW9uS2V5XTtcblxuICAgIHR5cGUgSnNSZXN1bHQgPSBSZWNvcmQ8SnNFeHRlbnNpb25LZXksIFwib2ZmXCI+O1xuICAgIHR5cGUgVHNSZXN1bHQgPSB7XG4gICAgICBbS2V5IGluIFRzRXh0ZW5zaW9uS2V5XTogKHR5cGVvZiBqc0Jhc2UucnVsZXMpW1RzMkpzUnVsZU1hcFtLZXldXTtcbiAgICB9O1xuICAgIHR5cGUgUmVzdWx0ID0gSnNSZXN1bHQgJiBUc1Jlc3VsdDtcblxuICAgIGNvbnN0IGlzSW5FeHRlbnNpb25SdWxlTWFwID0gKFxuICAgICAga2V5OiBzdHJpbmcsXG4gICAgKToga2V5IGlzIGtleW9mIHR5cGVvZiBleHRlbnNpb25SdWxlTWFwID0+IGtleSBpbiBleHRlbnNpb25SdWxlTWFwO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc0Jhc2UucnVsZXMpLnJlZHVjZShcbiAgICAgIChyZXN1bHQsIFtqc1J1bGVLZXksIGpzUnVsZVZhbHVlXSkgPT5cbiAgICAgICAgaXNJbkV4dGVuc2lvblJ1bGVNYXAoanNSdWxlS2V5KVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgIFtqc1J1bGVLZXldOiBcIm9mZlwiLFxuICAgICAgICAgICAgICBbZXh0ZW5zaW9uUnVsZU1hcFtqc1J1bGVLZXldXToganNSdWxlVmFsdWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiByZXN1bHQsXG4gICAgICB7fSBhcyBSZXN1bHQsXG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIC4uLmpzQmFzZSxcbiAgICBuYW1lOiBcImZlbmdlL3R5cGVzY3JpcHRcIixcbiAgICBmaWxlczogW1wiKiovKi57dHMsY3RzLG10cyx0c3h9XCJdLFxuICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgLi4uanNCYXNlLmxhbmd1YWdlT3B0aW9ucyxcbiAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgLi4uanNCYXNlLmxhbmd1YWdlT3B0aW9ucy5wYXJzZXJPcHRpb25zLFxuICAgICAgICAvLyBTZXR0aW5nIGBwcm9qZWN0U2VydmljZTogdHJ1ZWAgb3IgYHByb2plY3Q6IHRydWVgIGlzIHByZXR0eSBzbG93IHdoZW4gbGludCBhIG1vbm9yZXBvIHdpdGggbWFueSB0c2NvbmZpZy5qc29uIGZpbGVzIGluIGVhY2ggc3ViLWFwcC5cbiAgICAgICAgLy8gQnV0IHNldHRpbmcgYHByb2plY3Q6IFwidHNjb25maWcuanNvblwiYCB3aWxsIGNhdXNlIHBhcnNlciBlcnJvciB3aGVuIHRoZSBwcm9qZWN0IHJvb3QgdHNjb25maWcuanNvbiBpcyBgeyBleHRlbmRzOiBcImZlbmdlL3RzY29uZmlnXCIgfWBcbiAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICB9LFxuICAgICAgZ2xvYmFsczoge1xuICAgICAgICAuLi5qc0Jhc2UubGFuZ3VhZ2VPcHRpb25zLmdsb2JhbHMsXG4gICAgICAgIE5vZGVKUzogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcGx1Z2luczoge1xuICAgICAgLi4uanNCYXNlLnBsdWdpbnMsXG4gICAgICBcIkBmZW5nZS10c1wiOiBmZW5nZVRzUGx1Z2luLFxuICAgIH0sXG4gICAgcnVsZXM6IHtcbiAgICAgIC4uLmpzQmFzZS5ydWxlcyxcbiAgICAgIC4uLmdldFRzRXh0ZW5zaW9uUnVsZXMoKSxcblxuICAgICAgLy8gZmVuZ2VcbiAgICAgIFwiQGZlbmdlLXRzL2V4YWN0LW1hcC1zZXQtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkBmZW5nZS10cy9uby1jb25zdC1lbnVtXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLWRlY2xhcmVzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLWV4cG9ydC1hc3NpZ25tZW50XCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLW1pc3VzZS1zcHJlYWRpbmctcGFyYW1ldGVyXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLXByb3BlcnR5LWRlY29yYXRvclwiOiBcImVycm9yXCIsXG4gICAgICBcIkBmZW5nZS10cy9uby11bnR5cGVkLWVtcHR5LWFycmF5XCI6IFwiZXJyb3JcIixcbiAgICAgIC8vIHR5cGVzY3JpcHRcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2FkamFjZW50LW92ZXJsb2FkLXNpZ25hdHVyZXNcIjogXCJlcnJvclwiLFxuICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvYXJyYXktdHlwZVwiOiBbXCJlcnJvclwiLCAnYXJyYXktc2ltcGxlJ10sIC8vIFRoZSBkZWZhdWx0IG9wdGlvbiBpcyAnYXJyYXknLiBOb3QgdmVyeSBzdXJlIGlmIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBvcHRpb24uIFNvIGRpc2FibGVkIGl0LlxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvYXdhaXQtdGhlbmFibGVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY2xhc3MtbGl0ZXJhbC1wcm9wZXJ0eS1zdHlsZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LWdlbmVyaWMtY29uc3RydWN0b3JzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtaW5kZXhlZC1vYmplY3Qtc3R5bGVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBhc3NlcnRpb25TdHlsZTogXCJhc1wiLFxuICAgICAgICAgIG9iamVjdExpdGVyYWxUeXBlQXNzZXJ0aW9uczogXCJhbGxvdy1hcy1wYXJhbWV0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtZGVmaW5pdGlvbnNcIjogW1wiZXJyb3JcIiwgXCJpbnRlcmZhY2VcIl0sIC8vIFRPRE8gc2hvdWxkIHdlIGNoYW5nZSB0byAndHlwZSc/XG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtZXhwb3J0c1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtaW1wb3J0c1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cIjogW1wiZXJyb3JcIiwgeyBhbGxvd0tleXdvcmRzOiB0cnVlIH1dLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblwiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdG9yOiBcImZ1bmN0aW9uXCIsXG4gICAgICAgICAgZm9ybWF0OiBbXCJjYW1lbENhc2VcIiwgXCJQYXNjYWxDYXNlXCJdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2VsZWN0b3I6IFwidmFyaWFibGVcIixcbiAgICAgICAgICB0eXBlczogW1wiZnVuY3Rpb25cIl0sXG4gICAgICAgICAgZm9ybWF0OiBbXCJjYW1lbENhc2VcIiwgXCJQYXNjYWxDYXNlXCJdLCAvLyBkZWNvcmF0b3JzIG5lZWQgUGFzY2FsQ2FzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2VsZWN0b3I6IFwiY2xhc3NcIixcbiAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RvcjogXCJpbnRlcmZhY2VcIixcbiAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RvcjogXCJ0eXBlQWxpYXNcIixcbiAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RvcjogXCJ0eXBlUGFyYW1ldGVyXCIsXG4gICAgICAgICAgZm9ybWF0OiBbXCJVUFBFUl9DQVNFXCIsIFwiUGFzY2FsQ2FzZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1hcnJheS1kZWxldGVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYmFzZS10by1zdHJpbmdcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgaWdub3JlZFR5cGVOYW1lczogW10gfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1jb25mdXNpbmctbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWNvbmZ1c2luZy12b2lkLWV4cHJlc3Npb25cIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgaWdub3JlQXJyb3dTaG9ydGhhbmQ6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kZXByZWNhdGVkXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWR1cGxpY2F0ZS1lbnVtLXZhbHVlc1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kdXBsaWNhdGUtdHlwZS1jb25zdGl0dWVudHNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcIjogXCJlcnJvclwiLFxuICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XCI6IFwid2FyblwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXh0cmEtbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIC8vIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4dHJhbmVvdXMtY2xhc3NcIjogXCJlcnJvclwiLCAvLyBDbGFzc2VzIGhhdmUgb25seSBzdGF0aWMgbWVtYmVyIGlzIHJlYXNvbmFibGUgc29tZXRpbWVzLiBOZXN0anMgbW9kdWxlcyB1c2UgaXQgYSBsb3QuXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1wiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZVZvaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWZvci1pbi1hcnJheVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbXBvcnQtdHlwZS1zaWRlLWVmZmVjdHNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW5mZXJyYWJsZS10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLW5ld1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtc3ByZWFkXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW1peGVkLWVudW1zXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVwiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgeyBhbGxvd0RlZmluaXRpb25GaWxlczogZmFsc2UgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRlZC1udWxsaXNoLWNvYWxlc2NpbmdcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0ZWQtb3B0aW9uYWwtY2hhaW5cIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktYm9vbGVhbi1saXRlcmFsLWNvbXBhcmVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAvLyBUT0RPOiBJZiBodHRwczovL2dpdGh1Yi5jb20vdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc2xpbnQvaXNzdWVzLzExOTc4IGlzIGZpeGVkLCBjaGFuZ2UgdG8gYGFsbG93Q29uc3RhbnRMb29wQ29uZGl0aW9uczogXCJvbmx5LWFsbG93ZWQtbGl0ZXJhbHNcImAuXG4gICAgICAgIHsgYWxsb3dDb25zdGFudExvb3BDb25kaXRpb25zOiBcImFsd2F5c1wiIH0sXG4gICAgICBdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktcGFyYW1ldGVyLXByb3BlcnR5LWFzc2lnbm1lbnRcIjpcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdGVtcGxhdGUtZXhwcmVzc2lvblwiOiBcImVycm9yXCIsIC8vIGpzIGFsc28gbmVlZCB0aGlzIHJ1bGVcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXJndW1lbnRzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtY29uc3RyYWludFwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWNvbnZlcnNpb25cIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWRlY2xhcmF0aW9uLW1lcmdpbmdcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvblwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZnVuY3Rpb24tdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXCI6IFwiZXJyb3JcIiwgLy8gVGhpcyBydWxlIGlzIG5vdCB2ZXJ5IHBlcmZlY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc2xpbnQvaXNzdWVzLzEwNDM5XG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdW5hcnktbWludXNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlbGVzcy1kZWZhdWx0LWFzc2lnbm1lbnRcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8td3JhcHBlci1vYmplY3QtdHlwZXNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm9uLW51bGxhYmxlLXR5cGUtYXNzZXJ0aW9uLXN0eWxlXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgYWxsb3dUaHJvd2luZ1Vua25vd246IGZhbHNlIH0sXG4gICAgICBdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWFzLWNvbnN0XCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mdW5jdGlvbi10eXBlXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1pbmNsdWRlc1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbGl0ZXJhbC1lbnVtLW1lbWJlclwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbmFtZXNwYWNlLWtleXdvcmRcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItb3B0aW9uYWwtY2hhaW5cIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLXJlYWRvbmx5XCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWdleHAtZXhlY1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmV0dXJuLXRoaXMtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBhbGxvd0FueTogZmFsc2UsXG4gICAgICAgICAgYWxsb3dCb29sZWFuOiBmYWxzZSxcbiAgICAgICAgICBhbGxvd051bGxpc2g6IGZhbHNlLFxuICAgICAgICAgIGFsbG93TnVtYmVyQW5kU3RyaW5nOiBmYWxzZSxcbiAgICAgICAgICBhbGxvd1JlZ0V4cDogZmFsc2UsXG4gICAgICAgICAgc2tpcENvbXBvdW5kQXNzaWdubWVudHM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXRlbXBsYXRlLWV4cHJlc3Npb25zXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7XG4gICAgICAgICAgYWxsb3c6IFtdLFxuICAgICAgICAgIC8vIGFsbG93QW55OiBmYWxzZSxcbiAgICAgICAgICBhbGxvd0Jvb2xlYW46IGZhbHNlLFxuICAgICAgICAgIGFsbG93TmV2ZXI6IGZhbHNlLFxuICAgICAgICAgIGFsbG93TnVsbGlzaDogZmFsc2UsXG4gICAgICAgICAgLy8gYWxsb3dOdW1iZXI6IGZhbHNlLFxuICAgICAgICAgIGFsbG93UmVnRXhwOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9yZWxhdGVkLWdldHRlci1zZXR0ZXItcGFpcnNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcmV0dXJuLWF3YWl0XCI6IFtcImVycm9yXCIsIFwiYWx3YXlzXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvc3dpdGNoLWV4aGF1c3RpdmVuZXNzLWNoZWNrXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7IHJlcXVpcmVEZWZhdWx0Rm9yTm9uVW5pb246IHRydWUgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmlmaWVkLXNpZ25hdHVyZXNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXNlLXVua25vd24taW4tY2F0Y2gtY2FsbGJhY2stdmFyaWFibGVcIjogXCJlcnJvclwiLFxuICAgIH0sXG4gIH0gYXMgY29uc3Q7XG59XG4iXX0=
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvdHMvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxVQUFVLFNBQVM7SUFDdkIsTUFBTSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7UUFDL0IsbUNBQW1DO1FBQ25DLGlEQUFpRDtRQUNqRCxxRUFBcUU7UUFDckUsTUFBTSxnQkFBZ0IsR0FBRztZQUN2QixtRkFBbUY7WUFDbkYsbUJBQW1CLEVBQUUsc0NBQXNDO1lBQzNELDJFQUEyRTtZQUMzRSxjQUFjLEVBQUUsaUNBQWlDO1lBQ2pELHlFQUF5RTtZQUN6RSwyREFBMkQ7WUFDM0QsK0VBQStFO1lBQy9FLGlGQUFpRjtZQUNqRix5RUFBeUU7WUFDekUsaUJBQWlCLEVBQUUsb0NBQW9DO1lBQ3ZELHFFQUFxRTtZQUNyRSwrREFBK0Q7WUFDL0Qsa0hBQWtIO1lBQ2xILHVFQUF1RTtZQUN2RSxjQUFjLEVBQUUsaUNBQWlDO1lBQ2pELHVCQUF1QixFQUFFLDBDQUEwQztZQUNuRSx5REFBeUQ7WUFDekQsaUZBQWlGO1lBQ2pGLGdCQUFnQixFQUFFLG1DQUFtQztZQUNyRCwrRUFBK0U7WUFDL0UsbUZBQW1GO1lBQ25GLGtCQUFrQixFQUFFLHFDQUFxQztZQUN6RCxzQkFBc0IsRUFBRSx5Q0FBeUM7WUFDakUsOEJBQThCLEVBQzVCLGlEQUFpRDtZQUNuRCxlQUFlLEVBQUUsa0NBQWtDO1lBQ25ELGlCQUFpQixFQUFFLGlDQUFpQyxFQUFFLHNDQUFzQztTQUNwRixDQUFDO1FBbUJYLE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsR0FBVyxFQUMyQixFQUFFLENBQUMsR0FBRyxJQUFJLGdCQUFnQixD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RTtnQkFDbEQsT0FBTztnQkFDUDtvQkFDRSxLQUFLLEVBQUUsRUFBRTtvQkFDVCxtQkFBbUI7b0JBQ25CLFlBQVksRUFBRSxLQUFLO29CQUNuQixVQUFVLEVBQUUsS0FBSztvQkFDakIsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLHNCQUFzQjtvQkFDdEIsV0FBVyxFQUFFLEtBQUs7aUJBQ25CO2FBQ0Y7WUFDRCxnREFBZ0QsRUFBRSxPQUFPO1lBQ3pELGlDQUFpQyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUN0RCxnREFBZ0QsRUFBRTtnQkFDaEQsT0FBTztnQkFDUCxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRTthQUNwQztZQUNELG1DQUFtQyxFQUFFLE9BQU87WUFDNUMsdUNBQXVDLEVBQUUsT0FBTztZQUNoRCwyREFBMkQsRUFBRSxPQUFPO1NBQ3JFO0tBQ08sQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmZW5nZVRzUGx1Z2luIGZyb20gXCJAZmVuZ2UvZXNsaW50LXBsdWdpbi10c1wiO1xuaW1wb3J0IHsgZ2V0SnNCYXNlIH0gZnJvbSBcIi4uL2pzL2Jhc2UudHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRzQmFzZSgpIHtcbiAgY29uc3QganNCYXNlID0gZ2V0SnNCYXNlKCk7XG5cbiAgY29uc3QgZ2V0VHNFeHRlbnNpb25SdWxlcyA9ICgpID0+IHtcbiAgICAvLyBLZXkgaXMganMgcnVsZSwgdmFsdWUgaXMgdHMgcnVsZVxuICAgIC8vIGh0dHBzOi8vdHlwZXNjcmlwdC1lc2xpbnQuaW8vcnVsZXMvPz1leHRlbnNpb25cbiAgICAvLyBTb21lIHJ1bGVzIGFyZSBpbXBsZW1lbnRlZCBieSBlc2xpbnQgY29yZSwgc28gd2UgY29tbWVudCB0aGVtIG91dC5cbiAgICBjb25zdCBleHRlbnNpb25SdWxlTWFwID0ge1xuICAgICAgLy8gXCJjbGFzcy1tZXRob2RzLXVzZS10aGlzXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L2NsYXNzLW1ldGhvZHMtdXNlLXRoaXNcIiwgLy8gOS4yMy4wXG4gICAgICBcImNvbnNpc3RlbnQtcmV0dXJuXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtcmV0dXJuXCIsXG4gICAgICAvLyBcImRlZmF1bHQtcGFyYW0tbGFzdFwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9kZWZhdWx0LXBhcmFtLWxhc3RcIiwgLy8gOS4yMy4wXG4gICAgICBcImRvdC1ub3RhdGlvblwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cIixcbiAgICAgIC8vIFwiaW5pdC1kZWNsYXJhdGlvbnNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvaW5pdC1kZWNsYXJhdGlvbnNcIiwgLy8gOS4yNC4wXG4gICAgICAvLyBcIm1heC1wYXJhbXNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbWF4LXBhcmFtc1wiLCAvLyA5LjI3LjBcbiAgICAgIC8vIFwibm8tYXJyYXktY29uc3RydWN0b3JcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYXJyYXktY29uc3RydWN0b3JcIiwgLy8gOS4yNC4wXG4gICAgICAvLyBcIm5vLWR1cGUtY2xhc3MtbWVtYmVyc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kdXBlLWNsYXNzLW1lbWJlcnNcIiwgLy8gOS4yNC4wXG4gICAgICAvLyBcIm5vLWVtcHR5LWZ1bmN0aW9uXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXCIsIC8vIDkuMjUuMFxuICAgICAgXCJuby1pbXBsaWVkLWV2YWxcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsXCIsXG4gICAgICAvLyBcIm5vLWludmFsaWQtdGhpc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXRoaXNcIiwgLy8gOS4yNS4wXG4gICAgICAvLyBcIm5vLWxvb3AtZnVuY1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1sb29wLWZ1bmNcIiwgLy8gOS4yNS4wXG4gICAgICAvLyBcIm5vLWxvc3Mtb2YtcHJlY2lzaW9uXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWxvc3Mtb2YtcHJlY2lzaW9uXCIsIC8vIDkuMjQuMC4gQW5kIHRoaXMgcnVsZSBoYXMgYmVlbiBkZXByZWNhdGVkXG4gICAgICAvLyBcIm5vLW1hZ2ljLW51bWJlcnNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWFnaWMtbnVtYmVyc1wiLCAvLyA5LjI4LjBcbiAgICAgIFwibm8tcmVkZWNsYXJlXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZGVjbGFyZVwiLFxuICAgICAgXCJuby1yZXN0cmljdGVkLWltcG9ydHNcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVzdHJpY3RlZC1pbXBvcnRzXCIsXG4gICAgICAvLyBcIm5vLXNoYWRvd1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcIiwgLy8gOS4yOC4wXG4gICAgICAvLyBcIm5vLXVudXNlZC1leHByZXNzaW9uc1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcIiwgLy8gOS4yNS4wXG4gICAgICBcIm5vLXVudXNlZC12YXJzXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXCIsXG4gICAgICAvLyBcIm5vLXVzZS1iZWZvcmUtZGVmaW5lXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXCIsIC8vIDkuMjguMFxuICAgICAgLy8gXCJuby11c2VsZXNzLWNvbnN0cnVjdG9yXCI6IFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZWxlc3MtY29uc3RydWN0b3JcIiwgLy8gOS4yMy4wXG4gICAgICBcIm5vLXRocm93LWxpdGVyYWxcIjogXCJAdHlwZXNjcmlwdC1lc2xpbnQvb25seS10aHJvdy1lcnJvclwiLFxuICAgICAgXCJwcmVmZXItZGVzdHJ1Y3R1cmluZ1wiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZGVzdHJ1Y3R1cmluZ1wiLFxuICAgICAgXCJwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzXCI6XG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnNcIixcbiAgICAgIFwicmVxdWlyZS1hd2FpdFwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XCIsXG4gICAgICBcIm5vLXJldHVybi1hd2FpdFwiOiBcIkB0eXBlc2NyaXB0LWVzbGludC9yZXR1cm4tYXdhaXRcIiwgLy8gbm8tcmV0dXJuLWF3YWl0IGhhcyBiZWVuIGRlcHJlY2F0ZWRcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgdHlwZSBKczJUc1J1bGVNYXAgPSB0eXBlb2YgZXh0ZW5zaW9uUnVsZU1hcDtcbiAgICB0eXBlIFRzMkpzUnVsZU1hcCA9IHtcbiAgICAgIFtLIGluIGtleW9mIEpzMlRzUnVsZU1hcCBhcyBKczJUc1J1bGVNYXBbS11dOiBLOyAvLyByZXZlcnNlXG4gICAgfTtcblxuICAgIHR5cGUgSnNFeHRlbnNpb25LZXkgPSBFeHRyYWN0PFxuICAgICAga2V5b2YgSnMyVHNSdWxlTWFwLFxuICAgICAga2V5b2YgdHlwZW9mIGpzQmFzZS5ydWxlc1xuICAgID47IC8vIEV4dHJhY3RcbiAgICB0eXBlIFRzRXh0ZW5zaW9uS2V5ID0gSnMyVHNSdWxlTWFwW0pzRXh0ZW5zaW9uS2V5XTtcblxuICAgIHR5cGUgSnNSZXN1bHQgPSBSZWNvcmQ8SnNFeHRlbnNpb25LZXksIFwib2ZmXCI+O1xuICAgIHR5cGUgVHNSZXN1bHQgPSB7XG4gICAgICBbS2V5IGluIFRzRXh0ZW5zaW9uS2V5XTogKHR5cGVvZiBqc0Jhc2UucnVsZXMpW1RzMkpzUnVsZU1hcFtLZXldXTtcbiAgICB9O1xuICAgIHR5cGUgUmVzdWx0ID0gSnNSZXN1bHQgJiBUc1Jlc3VsdDtcblxuICAgIGNvbnN0IGlzSW5FeHRlbnNpb25SdWxlTWFwID0gKFxuICAgICAga2V5OiBzdHJpbmcsXG4gICAgKToga2V5IGlzIGtleW9mIHR5cGVvZiBleHRlbnNpb25SdWxlTWFwID0+IGtleSBpbiBleHRlbnNpb25SdWxlTWFwO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc0Jhc2UucnVsZXMpLnJlZHVjZShcbiAgICAgIChyZXN1bHQsIFtqc1J1bGVLZXksIGpzUnVsZVZhbHVlXSkgPT5cbiAgICAgICAgaXNJbkV4dGVuc2lvblJ1bGVNYXAoanNSdWxlS2V5KVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgIFtqc1J1bGVLZXldOiBcIm9mZlwiLFxuICAgICAgICAgICAgICBbZXh0ZW5zaW9uUnVsZU1hcFtqc1J1bGVLZXldXToganNSdWxlVmFsdWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiByZXN1bHQsXG4gICAgICB7fSBhcyBSZXN1bHQsXG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIC4uLmpzQmFzZSxcbiAgICBuYW1lOiBcImZlbmdlL3R5cGVzY3JpcHRcIixcbiAgICBmaWxlczogW1wiKiovKi57dHMsY3RzLG10cyx0c3h9XCJdLFxuICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgLi4uanNCYXNlLmxhbmd1YWdlT3B0aW9ucyxcbiAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgLi4uanNCYXNlLmxhbmd1YWdlT3B0aW9ucy5wYXJzZXJPcHRpb25zLFxuICAgICAgICAvLyBTZXR0aW5nIGBwcm9qZWN0U2VydmljZTogdHJ1ZWAgb3IgYHByb2plY3Q6IHRydWVgIGlzIHByZXR0eSBzbG93IHdoZW4gbGludCBhIG1vbm9yZXBvIHdpdGggbWFueSB0c2NvbmZpZy5qc29uIGZpbGVzIGluIGVhY2ggc3ViLWFwcC5cbiAgICAgICAgLy8gQnV0IHNldHRpbmcgYHByb2plY3Q6IFwidHNjb25maWcuanNvblwiYCB3aWxsIGNhdXNlIHBhcnNlciBlcnJvciB3aGVuIHRoZSBwcm9qZWN0IHJvb3QgdHNjb25maWcuanNvbiBpcyBgeyBleHRlbmRzOiBcImZlbmdlL3RzY29uZmlnXCIgfWBcbiAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICB9LFxuICAgICAgZ2xvYmFsczoge1xuICAgICAgICAuLi5qc0Jhc2UubGFuZ3VhZ2VPcHRpb25zLmdsb2JhbHMsXG4gICAgICAgIE5vZGVKUzogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcGx1Z2luczoge1xuICAgICAgLi4uanNCYXNlLnBsdWdpbnMsXG4gICAgICBcIkBmZW5nZS10c1wiOiBmZW5nZVRzUGx1Z2luLFxuICAgIH0sXG4gICAgcnVsZXM6IHtcbiAgICAgIC4uLmpzQmFzZS5ydWxlcyxcbiAgICAgIC4uLmdldFRzRXh0ZW5zaW9uUnVsZXMoKSxcblxuICAgICAgLy8gZmVuZ2VcbiAgICAgIFwiQGZlbmdlLXRzL2V4YWN0LW1hcC1zZXQtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkBmZW5nZS10cy9uby1jb25zdC1lbnVtXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLWRlY2xhcmVzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLWV4cG9ydC1hc3NpZ25tZW50XCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLW1pc3VzZS1zcHJlYWRpbmctcGFyYW1ldGVyXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQGZlbmdlLXRzL25vLXByb3BlcnR5LWRlY29yYXRvclwiOiBcImVycm9yXCIsXG4gICAgICBcIkBmZW5nZS10cy9uby11bnR5cGVkLWVtcHR5LWFycmF5XCI6IFwiZXJyb3JcIixcbiAgICAgIC8vIHR5cGVzY3JpcHRcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2FkamFjZW50LW92ZXJsb2FkLXNpZ25hdHVyZXNcIjogXCJlcnJvclwiLFxuICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvYXJyYXktdHlwZVwiOiBbXCJlcnJvclwiLCAnYXJyYXktc2ltcGxlJ10sIC8vIFRoZSBkZWZhdWx0IG9wdGlvbiBpcyAnYXJyYXknLiBOb3QgdmVyeSBzdXJlIGlmIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBvcHRpb24uIFNvIGRpc2FibGVkIGl0LlxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvYXdhaXQtdGhlbmFibGVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY2xhc3MtbGl0ZXJhbC1wcm9wZXJ0eS1zdHlsZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LWdlbmVyaWMtY29uc3RydWN0b3JzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtaW5kZXhlZC1vYmplY3Qtc3R5bGVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBhc3NlcnRpb25TdHlsZTogXCJhc1wiLFxuICAgICAgICAgIG9iamVjdExpdGVyYWxUeXBlQXNzZXJ0aW9uczogXCJhbGxvdy1hcy1wYXJhbWV0ZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtZGVmaW5pdGlvbnNcIjogW1wiZXJyb3JcIiwgXCJpbnRlcmZhY2VcIl0sIC8vIFRPRE8gc2hvdWxkIHdlIGNoYW5nZSB0byAndHlwZSc/XG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtZXhwb3J0c1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtaW1wb3J0c1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cIjogW1wiZXJyb3JcIiwgeyBhbGxvd0tleXdvcmRzOiB0cnVlIH1dLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblwiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdG9yOiBcImZ1bmN0aW9uXCIsXG4gICAgICAgICAgZm9ybWF0OiBbXCJjYW1lbENhc2VcIiwgXCJQYXNjYWxDYXNlXCJdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2VsZWN0b3I6IFwidmFyaWFibGVcIixcbiAgICAgICAgICB0eXBlczogW1wiZnVuY3Rpb25cIl0sXG4gICAgICAgICAgZm9ybWF0OiBbXCJjYW1lbENhc2VcIiwgXCJQYXNjYWxDYXNlXCJdLCAvLyBkZWNvcmF0b3JzIG5lZWQgUGFzY2FsQ2FzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2VsZWN0b3I6IFwiY2xhc3NcIixcbiAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RvcjogXCJpbnRlcmZhY2VcIixcbiAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RvcjogXCJ0eXBlQWxpYXNcIixcbiAgICAgICAgICBmb3JtYXQ6IFtcIlBhc2NhbENhc2VcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RvcjogXCJ0eXBlUGFyYW1ldGVyXCIsXG4gICAgICAgICAgZm9ybWF0OiBbXCJVUFBFUl9DQVNFXCIsIFwiUGFzY2FsQ2FzZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1hcnJheS1kZWxldGVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYmFzZS10by1zdHJpbmdcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgaWdub3JlZFR5cGVOYW1lczogW10gfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1jb25mdXNpbmctbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWNvbmZ1c2luZy12b2lkLWV4cHJlc3Npb25cIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgaWdub3JlQXJyb3dTaG9ydGhhbmQ6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kZXByZWNhdGVkXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWR1cGxpY2F0ZS1lbnVtLXZhbHVlc1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1kdXBsaWNhdGUtdHlwZS1jb25zdGl0dWVudHNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcIjogXCJlcnJvclwiLFxuICAgICAgLy8gXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XCI6IFwid2FyblwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXh0cmEtbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIC8vIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4dHJhbmVvdXMtY2xhc3NcIjogXCJlcnJvclwiLCAvLyBDbGFzc2VzIGhhdmUgb25seSBzdGF0aWMgbWVtYmVyIGlzIHJlYXNvbmFibGUgc29tZXRpbWVzLiBOZXN0anMgbW9kdWxlcyB1c2UgaXQgYSBsb3QuXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1wiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZVZvaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLWZvci1pbi1hcnJheVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbXBvcnQtdHlwZS1zaWRlLWVmZmVjdHNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW5mZXJyYWJsZS10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLW5ld1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtc3ByZWFkXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW1peGVkLWVudW1zXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVwiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgeyBhbGxvd0RlZmluaXRpb25GaWxlczogZmFsc2UgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRlZC1udWxsaXNoLWNvYWxlc2NpbmdcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0ZWQtb3B0aW9uYWwtY2hhaW5cIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktYm9vbGVhbi1saXRlcmFsLWNvbXBhcmVcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAvLyBUT0RPOiBJZiBodHRwczovL2dpdGh1Yi5jb20vdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc2xpbnQvaXNzdWVzLzExOTc4IGlzIGZpeGVkLCBjaGFuZ2UgdG8gYGFsbG93Q29uc3RhbnRMb29wQ29uZGl0aW9uczogXCJvbmx5LWFsbG93ZWQtbGl0ZXJhbHNcImAuXG4gICAgICAgIHsgYWxsb3dDb25zdGFudExvb3BDb25kaXRpb25zOiBcImFsd2F5c1wiIH0sXG4gICAgICBdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktcGFyYW1ldGVyLXByb3BlcnR5LWFzc2lnbm1lbnRcIjpcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdGVtcGxhdGUtZXhwcmVzc2lvblwiOiBcImVycm9yXCIsIC8vIGpzIGFsc28gbmVlZCB0aGlzIHJ1bGVcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXJndW1lbnRzXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXNzZXJ0aW9uXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtY29uc3RyYWludFwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWNvbnZlcnNpb25cIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWRlY2xhcmF0aW9uLW1lcmdpbmdcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvblwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZnVuY3Rpb24tdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXCI6IFwiZXJyb3JcIiwgLy8gVGhpcyBydWxlIGlzIG5vdCB2ZXJ5IHBlcmZlY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc2xpbnQvaXNzdWVzLzEwNDM5XG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdW5hcnktbWludXNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlbGVzcy1kZWZhdWx0LWFzc2lnbm1lbnRcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm8td3JhcHBlci1vYmplY3QtdHlwZXNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvbm9uLW51bGxhYmxlLXR5cGUtYXNzZXJ0aW9uLXN0eWxlXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L29ubHktdGhyb3ctZXJyb3JcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHsgYWxsb3dUaHJvd2luZ1Vua25vd246IGZhbHNlIH0sXG4gICAgICBdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWFzLWNvbnN0XCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mdW5jdGlvbi10eXBlXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1pbmNsdWRlc1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbGl0ZXJhbC1lbnVtLW1lbWJlclwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbmFtZXNwYWNlLWtleXdvcmRcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItb3B0aW9uYWwtY2hhaW5cIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLXJlYWRvbmx5XCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWdleHAtZXhlY1wiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmV0dXJuLXRoaXMtdHlwZVwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXCI6IFwiZXJyb3JcIixcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXBsdXMtb3BlcmFuZHNcIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBhbGxvd0FueTogZmFsc2UsXG4gICAgICAgICAgYWxsb3dCb29sZWFuOiBmYWxzZSxcbiAgICAgICAgICBhbGxvd051bGxpc2g6IGZhbHNlLFxuICAgICAgICAgIGFsbG93TnVtYmVyQW5kU3RyaW5nOiBmYWxzZSxcbiAgICAgICAgICBhbGxvd1JlZ0V4cDogZmFsc2UsXG4gICAgICAgICAgc2tpcENvbXBvdW5kQXNzaWdubWVudHM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3Jlc3RyaWN0LXRlbXBsYXRlLWV4cHJlc3Npb25zXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7XG4gICAgICAgICAgYWxsb3c6IFtdLFxuICAgICAgICAgIC8vIGFsbG93QW55OiBmYWxzZSxcbiAgICAgICAgICBhbGxvd0Jvb2xlYW46IGZhbHNlLFxuICAgICAgICAgIGFsbG93TmV2ZXI6IGZhbHNlLFxuICAgICAgICAgIGFsbG93TnVsbGlzaDogZmFsc2UsXG4gICAgICAgICAgLy8gYWxsb3dOdW1iZXI6IGZhbHNlLFxuICAgICAgICAgIGFsbG93UmVnRXhwOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9yZWxhdGVkLWdldHRlci1zZXR0ZXItcGFpcnNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcmV0dXJuLWF3YWl0XCI6IFtcImVycm9yXCIsIFwiYWx3YXlzXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvc3dpdGNoLWV4aGF1c3RpdmVuZXNzLWNoZWNrXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7IHJlcXVpcmVEZWZhdWx0Rm9yTm9uVW5pb246IHRydWUgfSxcbiAgICAgIF0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFwiOiBcImVycm9yXCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmlmaWVkLXNpZ25hdHVyZXNcIjogXCJlcnJvclwiLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXNlLXVua25vd24taW4tY2F0Y2gtY2FsbGJhY2stdmFyaWFibGVcIjogXCJlcnJvclwiLFxuICAgIH0sXG4gIH0gYXMgY29uc3Q7XG59XG4iXX0=