@annalib/anna-core 20.2.73 → 20.2.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/esm2022/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +5 -7
  2. package/esm2022/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +4 -6
  3. package/esm2022/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +16 -13
  4. package/esm2022/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +5 -7
  5. package/esm2022/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +1 -1
  6. package/esm2022/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +4 -6
  7. package/esm2022/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +5 -7
  8. package/esm2022/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +5 -7
  9. package/esm2022/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +27 -34
  10. package/esm2022/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +5 -5
  11. package/esm2022/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +17 -15
  12. package/esm2022/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +1 -1
  13. package/esm2022/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +1 -1
  14. package/esm2022/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +2 -2
  15. package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.mjs +3 -3
  16. package/esm2022/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +3 -4
  17. package/esm2022/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +17 -19
  18. package/esm2022/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +2 -1
  19. package/esm2022/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +102 -81
  20. package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +381 -376
  21. package/esm2022/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +29 -31
  22. package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +1 -1
  23. package/esm2022/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +21 -15
  24. package/esm2022/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +6 -7
  25. package/esm2022/lib/anna-core-shared-lib/services/anna-sort.service.mjs +41 -43
  26. package/esm2022/lib/anna-core.module.mjs +28 -47
  27. package/esm2022/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +19 -19
  28. package/esm2022/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +76 -88
  29. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +40 -36
  30. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +14 -13
  31. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +23 -23
  32. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +31 -34
  33. package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +108 -101
  34. package/esm2022/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +13 -9
  35. package/esm2022/public-api.mjs +27 -30
  36. package/fesm2022/annalib-anna-core.mjs +2842 -3565
  37. package/fesm2022/annalib-anna-core.mjs.map +1 -1
  38. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +2 -5
  39. package/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.d.ts +2 -5
  40. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +4 -6
  41. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +2 -5
  42. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +2 -5
  43. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +2 -5
  44. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +2 -5
  45. package/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.d.ts +1 -1
  46. package/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.d.ts +3 -3
  47. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +3 -3
  48. package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +1 -1
  49. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +1 -1
  50. package/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.d.ts +0 -1
  51. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +3 -1
  52. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +4 -4
  53. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +2 -2
  54. package/lib/anna-core-shared-lib/services/anna-persisting-filter.service.d.ts +0 -1
  55. package/lib/anna-core.module.d.ts +12 -15
  56. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +1 -1
  57. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +2 -2
  58. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.d.ts +4 -4
  59. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.d.ts +3 -3
  60. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.d.ts +4 -4
  61. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.d.ts +4 -4
  62. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +9 -9
  63. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +2 -2
  64. package/package.json +1 -1
  65. package/public-api.d.ts +14 -17
  66. package/src/lib/anna-common-scss/_filters.scss +12 -0
  67. package/src/lib/anna-common-scss/_show-hide-total-row.scss +1 -1
  68. package/esm2022/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -352
  69. package/esm2022/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +0 -204
  70. package/esm2022/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  71. package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -180
  72. package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  73. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  74. package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.d.ts +0 -89
  75. package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +0 -1
  76. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  77. package/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +0 -1
  78. package/src/lib/anna-common-scss/_drag-and-drop.scss +0 -22
@@ -1,10 +1,7 @@
1
- // Angular import statements
2
1
  import { Injectable } from "@angular/core";
3
2
  import { ActivatedRoute, Router } from "@angular/router";
4
- // Third party import statements
5
- import { Subject } from "rxjs";
6
3
  import { cloneDeep } from "lodash-es";
7
- //sub-entries of anna lib import statement
4
+ import { Subject } from "rxjs";
8
5
  import { AnnaFilterService } from "./anna-filter.service";
9
6
  import { AnnaSortService } from "./anna-sort.service";
10
7
  import * as i0 from "@angular/core";
@@ -20,13 +17,13 @@ export class AnnaGtHelperService {
20
17
  this.virtualScrollSubject = new Subject();
21
18
  }
22
19
  calculateNumberOfSkeletonColumnsForTable(tableHeaders) {
23
- let numberOfSkeletonColumns = [];
24
- var headersInEachColumn = 0;
20
+ const numberOfSkeletonColumns = [];
21
+ let headersInEachColumn = 0;
25
22
  tableHeaders.forEach((column) => {
26
23
  if (column.visible) {
27
24
  headersInEachColumn = 0;
28
25
  column.headerInfo.forEach(() => {
29
- headersInEachColumn++;
26
+ headersInEachColumn += 1;
30
27
  });
31
28
  numberOfSkeletonColumns.push(Array(headersInEachColumn).fill(0));
32
29
  }
@@ -42,12 +39,12 @@ export class AnnaGtHelperService {
42
39
  this.annaSortService.noSortingAppliedData = [];
43
40
  }
44
41
  enableOrDisableClearAllBtn() {
45
- let isFilterApplied = this.annaFilterService.appliedFiltersArray.length > 0;
46
- let isSortApplied = this.isSortingAppliedToTable();
47
- return isFilterApplied || isSortApplied ? false : true;
42
+ const isFilterApplied = this.annaFilterService.appliedFiltersArray.length > 0;
43
+ const isSortApplied = this.isSortingAppliedToTable();
44
+ return !(isFilterApplied || isSortApplied);
48
45
  }
49
46
  updateFiltersInURL() {
50
- let latestQueryParams = this.prepareQueryParamsOnFilter();
47
+ const latestQueryParams = this.prepareQueryParamsOnFilter();
51
48
  if (Object.keys(latestQueryParams).length > 0) {
52
49
  this.router.navigate([], {
53
50
  queryParams: { filters: JSON.stringify(latestQueryParams) },
@@ -62,23 +59,23 @@ export class AnnaGtHelperService {
62
59
  }
63
60
  }
64
61
  prepareQueryParamsOnFilter() {
65
- let query = {};
62
+ const query = {};
66
63
  if (this.annaFilterService.appliedFiltersArray.length > 0) {
67
- query["appliedFilters"] = this.annaFilterService.appliedFiltersArray;
68
- query["selectedFilterData"] = JSON.stringify(Array.from(this.annaFilterService.tooltipSelectedMap));
64
+ query.appliedFilters = this.annaFilterService.appliedFiltersArray;
65
+ query.selectedFilterData = JSON.stringify(Array.from(this.annaFilterService.tooltipSelectedMap));
69
66
  }
70
67
  if (this.checkIfSortingIsApplied()) {
71
- query["sortState"] = JSON.stringify(Array.from(this.annaSortService.columnSortState));
68
+ query.sortState = JSON.stringify(Array.from(this.annaSortService.columnSortState));
72
69
  }
73
70
  return query;
74
71
  }
75
72
  checkIfSortingIsApplied() {
76
73
  let isSortingApplied = false;
77
- for (let val of this.annaSortService.columnSortState.values()) {
78
- if (val == "ASC" || val == "DESC") {
74
+ this.annaSortService.columnSortState.forEach((value, key) => {
75
+ if (value === "ASC" || value === "DESC") {
79
76
  isSortingApplied = true;
80
77
  }
81
- }
78
+ });
82
79
  return isSortingApplied;
83
80
  }
84
81
  initTableFilters(clonedTableData) {
@@ -111,30 +108,31 @@ export class AnnaGtHelperService {
111
108
  return usersTable;
112
109
  }
113
110
  callSort(usersTable) {
114
- for (let [key, value] of this.annaSortService.columnSortState) {
115
- if (value == "ASC") {
116
- usersTable = this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(true, usersTable, key);
111
+ let sortedUsersTableData = usersTable;
112
+ this.annaSortService.columnSortState.forEach((value, key) => {
113
+ if (value === "ASC") {
114
+ sortedUsersTableData = this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(true, usersTable, key);
117
115
  }
118
- else if (value == "DESC") {
119
- usersTable = this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(false, usersTable, key);
116
+ else if (value === "DESC") {
117
+ sortedUsersTableData = this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(false, usersTable, key);
120
118
  }
121
- }
122
- return usersTable;
119
+ });
120
+ return sortedUsersTableData;
123
121
  }
124
122
  isSortingAppliedToTable() {
125
123
  let isSortingApplied = false;
126
- for (let val of this.annaSortService.columnSortState?.values()) {
127
- if (val == "ASC" || val == "DESC") {
124
+ this.annaSortService.columnSortState.forEach((value, key) => {
125
+ if (value === "ASC" || value === "DESC") {
128
126
  isSortingApplied = true;
129
127
  }
130
- }
128
+ });
131
129
  return isSortingApplied;
132
130
  }
133
131
  updateQueryParamsFilter(key, value, operation, queryParamObj) {
134
- if (operation == "ADD") {
132
+ if (operation === "ADD") {
135
133
  queryParamObj[key] = value;
136
134
  }
137
- else if (operation == "DELETE") {
135
+ else if (operation === "DELETE") {
138
136
  delete queryParamObj[key];
139
137
  }
140
138
  return queryParamObj;
@@ -148,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
148
146
  providedIn: "root",
149
147
  }]
150
148
  }], ctorParameters: function () { return [{ type: i1.AnnaFilterService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.AnnaSortService }]; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nZW5lcmljLXRhYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWdlbmVyaWMtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELGdDQUFnQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFLdEQsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QixZQUNZLGlCQUFvQyxFQUNwQyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsZUFBZ0M7UUFIaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTDVDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFNbEMsQ0FBQztJQUVKLHdDQUF3QyxDQUFDLFlBQW1CO1FBQ3hELElBQUksdUJBQXVCLEdBQVksRUFBRSxDQUFDO1FBQzFDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QixJQUFJLE1B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SUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM1RCxJQUFJLEdBQUcsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtnQkFDL0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQzNCO1NBQ0o7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLFNBQTJCLEVBQUUsYUFBa0I7UUFDNUYsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFO1lBQ3BCLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDOUI7YUFBTSxJQUFJLFNBQVMsSUFBSSxRQUFRLEVBQUU7WUFDOUIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDOytHQW5KUSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZoQixNQUFNOzs0RkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoLWVzXCI7XHJcblxyXG4vL3N1Yi1lbnRyaWVzIG9mIGFubmEgbGliIGltcG9ydCBzdGF0ZW1lbnRcclxuaW1wb3J0IHsgQW5uYUZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi9hbm5hLWZpbHRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFubmFTb3J0U2VydmljZSB9IGZyb20gXCIuL2FubmEtc29ydC5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFHdEhlbHBlclNlcnZpY2Uge1xyXG4gICAgdmlydHVhbFNjcm9sbFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhbm5hRmlsdGVyU2VydmljZTogQW5uYUZpbHRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGFubmFTb3J0U2VydmljZTogQW5uYVNvcnRTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIGNhbGN1bGF0ZU51bWJlck9mU2tlbGV0b25Db2x1bW5zRm9yVGFibGUodGFibGVIZWFkZXJzOiBhbnlbXSk6IG51bWJlcltdW10ge1xyXG4gICAgICAgIGxldCBudW1iZXJPZlNrZWxldG9uQ29sdW1uczogYW55W11bXSA9IFtdO1xyXG4gICAgICAgIHZhciBoZWFkZXJzSW5FYWNoQ29sdW1uID0gMDtcclxuICAgICAgICB0YWJsZUhlYWRlcnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW4udmlzaWJsZSkge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyc0luRWFjaENvbHVtbiA9IDA7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW4uaGVhZGVySW5mby5mb3JFYWNoKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzSW5FYWNoQ29sdW1uKys7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIG51bWJlck9mU2tlbGV0b25Db2x1bW5zLnB1c2goQXJyYXkoaGVhZGVyc0luRWFjaENvbHVtbikuZmlsbCgwKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbnVtYmVyT2ZTa2VsZXRvbkNvbHVtbnM7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdENvbHVtbkZpbHRlckFuZFNvcnRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS50b29sdGlwU2VsZWN0ZWRNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5zZWxlY3RlZFJhZGlvID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmluaXRpYWxWYWx1ZU1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICB0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uubm9Tb3J0aW5nQXBwbGllZERhdGEgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVPckRpc2FibGVDbGVhckFsbEJ0bigpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgaXNGaWx0ZXJBcHBsaWVkID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5Lmxlbmd0aCA+IDA7XHJcbiAgICAgICAgbGV0IGlzU29ydEFwcGxpZWQgPSB0aGlzLmlzU29ydGluZ0FwcGxpZWRUb1RhYmxlKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBpc0ZpbHRlckFwcGxpZWQgfHwgaXNTb3J0QXBwbGllZCA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVGaWx0ZXJzSW5VUkwoKSB7XHJcbiAgICAgICAgbGV0IGxhdGVzdFF1ZXJ5UGFyYW1zID0gdGhpcy5wcmVwYXJlUXVlcnlQYXJhbXNPbkZpbHRlcigpO1xyXG5cclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMobGF0ZXN0UXVlcnlQYXJhbXMpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGZpbHRlcnM6IEpTT04uc3RyaW5naWZ5KGxhdGVzdFF1ZXJ5UGFyYW1zKSB9LFxyXG4gICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZS5wYXJlbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCIsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLnBhcmVudCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByZXBhcmVRdWVyeVBhcmFtc09uRmlsdGVyKCkge1xyXG4gICAgICAgIGxldCBxdWVyeTogYW55ID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBxdWVyeVtcImFwcGxpZWRGaWx0ZXJzXCJdID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5O1xyXG4gICAgICAgICAgICBxdWVyeVtcInNlbGVjdGVkRmlsdGVyRGF0YVwiXSA9IEpTT04uc3RyaW5naWZ5KEFycmF5LmZyb20odGhpcy5hbm5hRmlsdGVyU2VydmljZS50b29sdGlwU2VsZWN0ZWRNYXApKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrSWZTb3J0aW5nSXNBcHBsaWVkKCkpIHtcclxuICAgICAgICAgICAgcXVlcnlbXCJzb3J0U3RhdGVcIl0gPSBKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrSWZTb3J0aW5nSXNBcHBsaWVkKCkge1xyXG4gICAgICAgIGxldCBpc1NvcnRpbmdBcHBsaWVkID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgdmFsIG9mIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZS52YWx1ZXMoKSkge1xyXG4gICAgICAgICAgICBpZiAodmFsID09IFwiQVNDXCIgfHwgdmFsID09IFwiREVTQ1wiKSB7XHJcbiAgICAgICAgICAgICAgICBpc1NvcnRpbmdBcHBsaWVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlzU29ydGluZ0FwcGxpZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFRhYmxlRmlsdGVycyhjbG9uZWRUYWJsZURhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UudG9vbHRpcFNlbGVjdGVkTWFwID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2Uuc2VsZWN0ZWRSYWRpbyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSA9IG5ldyBNYXAoKTtcclxuXHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uubm9Tb3J0aW5nQXBwbGllZERhdGEgPSBjbG9uZURlZXAoY2xvbmVkVGFibGVEYXRhKTtcclxuICAgICAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLnVwZGF0ZVN0YXRlT2ZBbGxUaGVLZXlzKHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdEZpbHRlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS50b29sdGlwU2VsZWN0ZWRNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5ID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGF0YUFzUGVyUGVyc2lzdGluZ0ZpbHRlcihpc1BlcnNpc3RpbmdGaWx0ZXI6IGJvb2xlYW4sIGNsb25lZFRhYmxlOiBhbnksIGZpbHRlcnM6IGFueSk6IGFueSB7XHJcbiAgICAgICAgbGV0IHVzZXJzVGFibGU7XHJcbiAgICAgICAgaWYgKGlzUGVyc2lzdGluZ0ZpbHRlcikge1xyXG4gICAgICAgICAgICB1c2Vyc1RhYmxlID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5maWx0ZXJEYXRhKGNsb25lZFRhYmxlLCBcIlwiKTtcclxuICAgICAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uubm9Tb3J0aW5nQXBwbGllZERhdGEgPSBjbG9uZURlZXAodXNlcnNUYWJsZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdXNlcnNUYWJsZSA9IGNsb25lZFRhYmxlO1xyXG4gICAgICAgICAgICB0aGlzLmFubmFTb3J0U2VydmljZS5ub1NvcnRpbmdBcHBsaWVkRGF0YSA9IGNsb25lRGVlcCh1c2Vyc1RhYmxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJzPy5zb3J0U3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2UuY29sdW1uU29ydFN0YXRlID0gbmV3IE1hcChKU09OLnBhcnNlKGZpbHRlcnMuc29ydFN0YXRlKSk7XHJcbiAgICAgICAgICAgIHVzZXJzVGFibGUgPSB0aGlzLmNhbGxTb3J0KHVzZXJzVGFibGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS51cGRhdGVTdGF0ZU9mQWxsVGhlS2V5cyh0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdXNlcnNUYWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxsU29ydCh1c2Vyc1RhYmxlOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiB0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUpIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09IFwiQVNDXCIpIHtcclxuICAgICAgICAgICAgICAgIHVzZXJzVGFibGUgPSB0aGlzLmFubmFTb3J0U2VydmljZS5zb3J0RGF0YUZvckNvbXBvbmVudE90aGVyVGhhbkx1ckFuZENzclBhZ2UodHJ1ZSwgdXNlcnNUYWJsZSwga2V5KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSBcIkRFU0NcIikge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNUYWJsZSA9IHRoaXMuYW5uYVNvcnRTZXJ2aWNlLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShmYWxzZSwgdXNlcnNUYWJsZSwga2V5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdXNlcnNUYWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBpc1NvcnRpbmdBcHBsaWVkVG9UYWJsZSgpIHtcclxuICAgICAgICBsZXQgaXNTb3J0aW5nQXBwbGllZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAobGV0IHZhbCBvZiB0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGU/LnZhbHVlcygpKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWwgPT0gXCJBU0NcIiB8fCB2YWwgPT0gXCJERVNDXCIpIHtcclxuICAgICAgICAgICAgICAgIGlzU29ydGluZ0FwcGxpZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXNTb3J0aW5nQXBwbGllZDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVRdWVyeVBhcmFtc0ZpbHRlcihrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgb3BlcmF0aW9uOiBcIkFERFwiIHwgXCJERUxFVEVcIiwgcXVlcnlQYXJhbU9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PSBcIkFERFwiKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1PYmpba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09IFwiREVMRVRFXCIpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1PYmpba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1PYmo7XHJcbiAgICB9XHJcbn1cclxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nZW5lcmljLXRhYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWdlbmVyaWMtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFLdEQsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QixZQUNZLGlCQUFvQyxFQUNwQyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsZUFBZ0M7UUFIaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBTDVDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFNbEMsQ0FBQztJQUVKLHdDQUF3QyxDQUFDLFlBQW1CO1FBQ3hELE1BQU0sdUJBQXVCLEdBQVksRUFBRSxDQUFDO1FBQzVDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLG1CQUFtQixHQUFHLENB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QUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN4RCxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDckMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLFNBQTJCLEVBQUUsYUFBa0I7UUFDNUYsSUFBSSxTQUFTLEtBQUssS0FBSyxFQUFFO1lBQ3JCLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDOUI7YUFBTSxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDL0IsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDOytHQTlKUSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZoQixNQUFNOzs0RkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBBbm5hRmlsdGVyU2VydmljZSB9IGZyb20gXCIuL2FubmEtZmlsdGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQW5uYVNvcnRTZXJ2aWNlIH0gZnJvbSBcIi4vYW5uYS1zb3J0LnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUd0SGVscGVyU2VydmljZSB7XHJcbiAgICB2aXJ0dWFsU2Nyb2xsU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFubmFGaWx0ZXJTZXJ2aWNlOiBBbm5hRmlsdGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByaXZhdGUgYW5uYVNvcnRTZXJ2aWNlOiBBbm5hU29ydFNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgY2FsY3VsYXRlTnVtYmVyT2ZTa2VsZXRvbkNvbHVtbnNGb3JUYWJsZSh0YWJsZUhlYWRlcnM6IGFueVtdKTogbnVtYmVyW11bXSB7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyT2ZTa2VsZXRvbkNvbHVtbnM6IGFueVtdW10gPSBbXTtcclxuICAgICAgICBsZXQgaGVhZGVyc0luRWFjaENvbHVtbiA9IDA7XHJcbiAgICAgICAgdGFibGVIZWFkZXJzLmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uLnZpc2libGUpIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnNJbkVhY2hDb2x1bW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uLmhlYWRlckluZm8uZm9yRWFjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc0luRWFjaENvbHVtbiArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBudW1iZXJPZlNrZWxldG9uQ29sdW1ucy5wdXNoKEFycmF5KGhlYWRlcnNJbkVhY2hDb2x1bW4pLmZpbGwoMCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG51bWJlck9mU2tlbGV0b25Db2x1bW5zO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRDb2x1bW5GaWx0ZXJBbmRTb3J0aW5nKCkge1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UudG9vbHRpcFNlbGVjdGVkTWFwID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2Uuc2VsZWN0ZWRSYWRpbyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5pbml0aWFsVmFsdWVNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2UuY29sdW1uU29ydFN0YXRlID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLm5vU29ydGluZ0FwcGxpZWREYXRhID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgZW5hYmxlT3JEaXNhYmxlQ2xlYXJBbGxCdG4oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgaXNGaWx0ZXJBcHBsaWVkID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5Lmxlbmd0aCA+IDA7XHJcbiAgICAgICAgY29uc3QgaXNTb3J0QXBwbGllZCA9IHRoaXMuaXNTb3J0aW5nQXBwbGllZFRvVGFibGUoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuICEoaXNGaWx0ZXJBcHBsaWVkIHx8IGlzU29ydEFwcGxpZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUZpbHRlcnNJblVSTCgpIHtcclxuICAgICAgICBjb25zdCBsYXRlc3RRdWVyeVBhcmFtcyA9IHRoaXMucHJlcGFyZVF1ZXJ5UGFyYW1zT25GaWx0ZXIoKTtcclxuXHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGxhdGVzdFF1ZXJ5UGFyYW1zKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBmaWx0ZXJzOiBKU09OLnN0cmluZ2lmeShsYXRlc3RRdWVyeVBhcmFtcykgfSxcclxuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUucGFyZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZS5wYXJlbnQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcmVwYXJlUXVlcnlQYXJhbXNPbkZpbHRlcigpIHtcclxuICAgICAgICBjb25zdCBxdWVyeTogYW55ID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBxdWVyeS5hcHBsaWVkRmlsdGVycyA9IHRoaXMuYW5uYUZpbHRlclNlcnZpY2UuYXBwbGllZEZpbHRlcnNBcnJheTtcclxuICAgICAgICAgICAgcXVlcnkuc2VsZWN0ZWRGaWx0ZXJEYXRhID0gSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbSh0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLnRvb2x0aXBTZWxlY3RlZE1hcCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tJZlNvcnRpbmdJc0FwcGxpZWQoKSkge1xyXG4gICAgICAgICAgICBxdWVyeS5zb3J0U3RhdGUgPSBKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrSWZTb3J0aW5nSXNBcHBsaWVkKCkge1xyXG4gICAgICAgIGxldCBpc1NvcnRpbmdBcHBsaWVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2UuY29sdW1uU29ydFN0YXRlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIkFTQ1wiIHx8IHZhbHVlID09PSBcIkRFU0NcIikge1xyXG4gICAgICAgICAgICAgICAgaXNTb3J0aW5nQXBwbGllZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGlzU29ydGluZ0FwcGxpZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFRhYmxlRmlsdGVycyhjbG9uZWRUYWJsZURhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UudG9vbHRpcFNlbGVjdGVkTWFwID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2Uuc2VsZWN0ZWRSYWRpbyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSA9IG5ldyBNYXAoKTtcclxuXHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uubm9Tb3J0aW5nQXBwbGllZERhdGEgPSBjbG9uZURlZXAoY2xvbmVkVGFibGVEYXRhKTtcclxuICAgICAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLnVwZGF0ZVN0YXRlT2ZBbGxUaGVLZXlzKHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmNvbHVtblNvcnRTdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdEZpbHRlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS50b29sdGlwU2VsZWN0ZWRNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS5hcHBsaWVkRmlsdGVyc0FycmF5ID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGF0YUFzUGVyUGVyc2lzdGluZ0ZpbHRlcihpc1BlcnNpc3RpbmdGaWx0ZXI6IGJvb2xlYW4sIGNsb25lZFRhYmxlOiBhbnksIGZpbHRlcnM6IGFueSk6IGFueSB7XHJcbiAgICAgICAgbGV0IHVzZXJzVGFibGU7XHJcbiAgICAgICAgaWYgKGlzUGVyc2lzdGluZ0ZpbHRlcikge1xyXG4gICAgICAgICAgICB1c2Vyc1RhYmxlID0gdGhpcy5hbm5hRmlsdGVyU2VydmljZS5maWx0ZXJEYXRhKGNsb25lZFRhYmxlLCBcIlwiKTtcclxuICAgICAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uubm9Tb3J0aW5nQXBwbGllZERhdGEgPSBjbG9uZURlZXAodXNlcnNUYWJsZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdXNlcnNUYWJsZSA9IGNsb25lZFRhYmxlO1xyXG4gICAgICAgICAgICB0aGlzLmFubmFTb3J0U2VydmljZS5ub1NvcnRpbmdBcHBsaWVkRGF0YSA9IGNsb25lRGVlcCh1c2Vyc1RhYmxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJzPy5zb3J0U3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2UuY29sdW1uU29ydFN0YXRlID0gbmV3IE1hcChKU09OLnBhcnNlKGZpbHRlcnMuc29ydFN0YXRlKSk7XHJcbiAgICAgICAgICAgIHVzZXJzVGFibGUgPSB0aGlzLmNhbGxTb3J0KHVzZXJzVGFibGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hbm5hRmlsdGVyU2VydmljZS51cGRhdGVTdGF0ZU9mQWxsVGhlS2V5cyh0aGlzLmFubmFTb3J0U2VydmljZS5jb2x1bW5Tb3J0U3RhdGUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdXNlcnNUYWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxsU29ydCh1c2Vyc1RhYmxlOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGxldCBzb3J0ZWRVc2Vyc1RhYmxlRGF0YSA9IHVzZXJzVGFibGU7XHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2UuY29sdW1uU29ydFN0YXRlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIkFTQ1wiKSB7XHJcbiAgICAgICAgICAgICAgICBzb3J0ZWRVc2Vyc1RhYmxlRGF0YSA9IHRoaXMuYW5uYVNvcnRTZXJ2aWNlLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShcclxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJzVGFibGUsXHJcbiAgICAgICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gXCJERVNDXCIpIHtcclxuICAgICAgICAgICAgICAgIHNvcnRlZFVzZXJzVGFibGVEYXRhID0gdGhpcy5hbm5hU29ydFNlcnZpY2Uuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJzVGFibGUsXHJcbiAgICAgICAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gc29ydGVkVXNlcnNUYWJsZURhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTb3J0aW5nQXBwbGllZFRvVGFibGUoKSB7XHJcbiAgICAgICAgbGV0IGlzU29ydGluZ0FwcGxpZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5hbm5hU29ydFNlcnZpY2UuY29sdW1uU29ydFN0YXRlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIkFTQ1wiIHx8IHZhbHVlID09PSBcIkRFU0NcIikge1xyXG4gICAgICAgICAgICAgICAgaXNTb3J0aW5nQXBwbGllZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGlzU29ydGluZ0FwcGxpZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUXVlcnlQYXJhbXNGaWx0ZXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIG9wZXJhdGlvbjogXCJBRERcIiB8IFwiREVMRVRFXCIsIHF1ZXJ5UGFyYW1PYmo6IGFueSkge1xyXG4gICAgICAgIGlmIChvcGVyYXRpb24gPT09IFwiQUREXCIpIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbU9ialtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09IFwiREVMRVRFXCIpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1PYmpba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1PYmo7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
132
132
  providedIn: "root",
133
133
  }]
134
134
  }], ctorParameters: function () { return []; } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nbG9iYWwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWdsb2JhbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQW1CM0MsTUFBTSxPQUFPLHVCQUF1QjtJQWVoQzs7TUFFRTtJQUNGO1FBQ0ksSUFBSSxDQUFDLGtDQUFrQyxHQUFHO1lBQ3RDLElBQUksRUFBRSxlQUFlO1lBQ3JCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGVBQWUsRUFBRSxjQUFjO1lBQy9CLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixjQUFjLEVBQUUsSUFBSTtZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxHQUFHO1lBQ2QscUJBQXFCLEVBQUUsSUFBSTtTQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzNCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLGlCQUFpQixFQUFFLFVBQVU7WUFDN0IsaUJBQWlCLEVBQUUsU0FBUztZQUM1QixhQUFhLEVBQUUsS0FBSztZQUNwQixXQUFXLEVBQUUsS0FBSztZQUNsQixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGlCQUFpQixFQUFFLEtBQUs7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyw0QkFBNEIsR0FBRztZQUNoQyxTQUFTLEVBQUUsS0FBSztZQUNoQixXQUFX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QUFFLElBQUksRUFBRTtTQUM3QyxDQUFDO0lBQ04sQ0FBQzsrR0FwSlEsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgSUFuZ3VsYXIyTXVsdGlTZWxlY3RTZXR0aW5ncyxcclxuICAgIElOZ3hBc2lkZVNldHRpbmdzLFxyXG4gICAgSU5nYkRhdGVQaWNrZXJTZXR0aW5ncyxcclxuICAgIElOZ1NlbGVjdFNldHRpbmdzLFxyXG4gICAgSU5neEluZmluaXRlU2Nyb2xsU2V0dGluZ3MsXHJcbiAgICBJTmd4U2tlbGV0b25Mb2FkZXJTZXR0aW5ncyxcclxuICAgIElSYWRpb0J1dHRvbkNvbXBvbmVudENvbmZpZyxcclxuICAgIElDb25maXJtYXRpb25Qb3B1cENvbmZpZyxcclxuICAgIElXZWVrQ2FsZW5kYXIsXHJcbiAgICBJQ3VzdG9tU2luZ2xlU2VsZWN0LFxyXG4gICAgSUN1c3RvbU11bHRpU2VsZWN0LFxyXG59IGZyb20gXCIuLi9tb2RlbHMvYW5uYS1nbG9iYWwtZHJvcGRvd24tY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IElHdEhlYWRlckNvbmZpZywgSUd0R2VuZXJhbENvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvYW5uYS1ub24tZWRpdGFibGUtZ3QtbW9kZWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFHbG9iYWxDb25maWdTZXJ2aWNlIHtcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRBbmd1bGFyMk11bHRpU2VsZWN0U2V0dGluZ3M6IElBbmd1bGFyMk11bHRpU2VsZWN0U2V0dGluZ3M7XHJcbiAgICByZWFkb25seSBkZWZhdWx0Tmd4QXNpZGVTZXR0aW5nczogSU5neEFzaWRlU2V0dGluZ3M7XHJcbiAgICByZWFkb25seSBkZWZhdWx0TmdiRGF0ZVBpY2tlclNldHRpbmdzOiBJTmdiRGF0ZVBpY2tlclNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5nU2VsZWN0U2V0dGluZ3M6IElOZ1NlbGVjdFNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5neEluZmluaXRlU2Nyb2xsU2V0dGluZ3M6IElOZ3hJbmZpbml0ZVNjcm9sbFNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5neFNrZWxldG9uTG9hZGVyU2V0dGluZ3M6IElOZ3hTa2VsZXRvbkxvYWRlclNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdFJhZGlvQnV0dG9uc0NvbXBvbmVudENvbmZpZzogSVJhZGlvQnV0dG9uQ29tcG9uZW50Q29uZmlnO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdENvbmZpcm1hdGlvblBvcHVwQ29uZmlnOiBJQ29uZmlybWF0aW9uUG9wdXBDb25maWc7XHJcbiAgICByZWFkb25seSBkZWZhdWx0V2Vla0NhbGVuZGFyQ29uZmlnOiBJV2Vla0NhbGVuZGFyO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdEd0SGVhZGVyQ29uZmlnOiBJR3RIZWFkZXJDb25maWc7XHJcbiAgICByZWFkb25seSBkZWZhdWx0R3RHZW5lcmFsQ29uZmlnOiBJR3RHZW5lcmFsQ29uZmlnO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdFNpbmdsZVNlbGVjdENvbmZpZzogSUN1c3RvbVNpbmdsZVNlbGVjdDtcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRNdWx0aVNlbGVjdENvbmZpZzogSUN1c3RvbU11bHRpU2VsZWN0O1xyXG5cclxuICAgIC8qXHJcbiAgICAgSW5pdGlhbGl6aW5nIGFsbCBkZWZhdWx0IHNldHRpbmdzXHJcbiAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICB0ZXh0OiBcIlNlbGVjdCBvcHRpb25cIixcclxuICAgICAgICAgICAgc2VsZWN0QWxsVGV4dDogXCJTZWxlY3QgQWxsXCIsXHJcbiAgICAgICAgICAgIHVuU2VsZWN0QWxsVGV4dDogXCJVblNlbGVjdCBBbGxcIixcclxuICAgICAgICAgICAgYmFkZ2VTaG93TGltaXQ6IDEsXHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGNsYXNzZXM6IFwiZmlsdGVyLWRyb3Bkb3duc1wiLFxyXG4gICAgICAgICAgICBlbmFibGVTZWFyY2hGaWx0ZXI6IHRydWUsXHJcbiAgICAgICAgICAgIGVuYWJsZUNoZWNrQWxsOiB0cnVlLFxyXG4gICAgICAgICAgICBhdXRvUG9zaXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBcImJvdHRvbVwiLFxyXG4gICAgICAgICAgICBsYXp5TG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dDaGVja2JveDogdHJ1ZSxcclxuICAgICAgICAgICAgbWF4SGVpZ2h0OiAzMDAsXHJcbiAgICAgICAgICAgIGVuYWJsZUZpbHRlclNlbGVjdEFsbDogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHROZ3hBc2lkZVNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1wiRmlsdGVyc1wiJyxcclxuICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGl0bGU6ICdcIkNhbmNlbFwiJyxcclxuICAgICAgICAgICAgc3VibWl0QnV0dG9uVGl0bGU6ICdcIkFwcGx5XCInLFxyXG4gICAgICAgICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcclxuICAgICAgICAgICAgc2hvd092ZXJsYXk6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93RGVmYXVsdEZvb3RlcjogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dEZWZhdWx0SGVhZGVyOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHROZ2JEYXRlUGlja2VyU2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIGF1dG9DbG9zZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIm1tLWRkLXl5eXlcIixcclxuICAgICAgICAgICAgZGlzcGxheU1vbnRoczogMSxcclxuICAgICAgICAgICAgZmlyc3REYXlPZldlZWs6IDEsXHJcbiAgICAgICAgICAgIHNob3dXZWVrTnVtYmVyczogZmFsc2UsXHJcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE5nU2VsZWN0U2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJTZWxlY3RcIixcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHROZ3hJbmZpbml0ZVNjcm9sbFNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBpbmZpbml0ZVNjcm9sbERpc3RhbmNlOiAxLFxyXG4gICAgICAgICAgICBpbmZpbml0ZVNjcm9sbFVwRGlzdGFuY2U6IDIsXHJcbiAgICAgICAgICAgIGluZmluaXRlU2Nyb2xsVGhyb3R0bGU6IDMwMCxcclxuICAgICAgICAgICAgc2Nyb2xsV2luZG93OiBmYWxzZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHROZ3hTa2VsZXRvbkxvYWRlclNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBudW1iZXJPZlNrZWxldG9uUm93czogQXJyYXkoNikuZmlsbCgwKSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRSYWRpb0J1dHRvbnNDb21wb25lbnRDb25maWcgPSB7XHJcbiAgICAgICAgICAgIGhlYWRpbmc6IFwiU2VsZWN0IE9wdGlvblwiLFxyXG4gICAgICAgICAgICByYWRpb0J1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJZZXNcIixcclxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJZZXNcIixcclxuICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiTm9cIixcclxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJOb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRDb25maXJtYXRpb25Qb3B1cENvbmZpZyA9IHtcclxuICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiQXJlIHlvdSBzdXJlID9cIixcclxuICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbEJ1dHRvbkxhYmVsOiBcIk5vXCIsXHJcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25MYWJlbDogXCJZZXNcIixcclxuICAgICAgICAgICAgc2hvd0Nsb3NlSWNvbjogdHJ1ZSxcclxuICAgICAgICAgICAgYmFja2Ryb3A6IFwic3RhdGljXCIsXHJcbiAgICAgICAgICAgIHdpbmRvd0NsYXNzOiBcIlwiLFxyXG4gICAgICAgICAgICBzaXplOiBcInNtXCIsXHJcbiAgICAgICAgICAgIGtleWJvYXJkOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRXZWVrQ2FsZW5kYXJDb25maWcgPSB7XHJcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrOiAxLFxyXG4gICAgICAgICAgICBzaG93V2Vla051bWJlcnM6IHRydWUsXHJcbiAgICAgICAgICAgIGRhdGVGb3JtYXRUb0Rpc3BsYXk6IFwiZCBNTU0geVwiLFxyXG4gICAgICAgICAgICBkYXRlRm9ybWF0Rm9yUmVxdWVzdDogXCJ5LU1NLWRkXCIsXHJcbiAgICAgICAgICAgIG1heFdlZWtzVG9TaG93V2l0aFJlbWFpbmluZ0NvdW50OiAyLFxyXG4gICAgICAgICAgICBudW1iZXJPZk1vbnRoc1RvRW5hYmxlSW5QYXN0OiAxLFxyXG4gICAgICAgICAgICBzZWxlY3RNdWx0aXBsZVdlZWtzOiBmYWxzZSxcclxuICAgICAgICAgICAgY3VzdG9tQ2xhc3M6IFwiXCIsXHJcbiAgICAgICAgICAgIGVtaXRNdWx0aXBsZVdlZWtPYmplY3RzOiB0cnVlLFxyXG4gICAgICAgICAgICBtYXhXZWVrc1RvU2VsZWN0OiAwLFxyXG4gICAgICAgICAgICBzaG93QXNEcm9wZG93bjogdHJ1ZSxcclxuICAgICAgICAgICAgc2VsZWN0Q3VycmVudFdlZWs6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0R3RIZWFkZXJDb25maWcgPSB7XHJcbiAgICAgICAgICAgIGljb25Db2x1bW46IGZhbHNlLFxyXG4gICAgICAgICAgICBjaGVja2JveENvbHVtbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGxhc3RDb2x1bW5LZXlzOiBbXSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRHdEdlbmVyYWxDb25maWcgPSB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogXCJcIixcclxuICAgICAgICAgICAgdG90YWxSb3c6IGZhbHNlLFxyXG4gICAgICAgICAgICBpc0hlYWRlckNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBkaXNhYmxlSGVhZGVyQ2hlY2tib3g6IGZhbHNlLFxyXG4gICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbE9mZnNldEZvckZpbHRlclRvb2x0aXA6IDAsXHJcbiAgICAgICAgICAgIGlzR3JvdXBlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dBbGxDb2x1bW5GaWx0ZXI6IHRydWUsXHJcbiAgICAgICAgICAgIGJ1ZmZlclNpemU6IDIwLFxyXG4gICAgICAgICAgICBwYWdlOiBcIlwiLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdFNpbmdsZVNlbGVjdENvbmZpZyA9IHtcclxuICAgICAgICAgICAgc2hvd1NlYXJjaEJhcjogZmFsc2UsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlNlbGVjdFwiLFxyXG4gICAgICAgICAgICBjbGFzc2VzOiBcIlwiLFxyXG4gICAgICAgICAgICBwb3NpdGlvbjogXCJCT1RUT01cIixcclxuICAgICAgICAgICAgbWF4SGVpZ2h0T2ZMaXN0OiAyMDAsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0TXVsdGlTZWxlY3RDb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdFNpbmdsZVNlbGVjdENvbmZpZyxcclxuICAgICAgICAgICAgLi4ueyBzaG93RXJyb3JXaGVuTm9PcHRpb25TZWxlY3RlZDogdHJ1ZSB9LFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nbG9iYWwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWdsb2JhbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQW9CM0MsTUFBTSxPQUFPLHVCQUF1QjtJQWVoQzs7TUFFRTtJQUNGO1FBQ0ksSUFBSSxDQUFDLGtDQUFrQyxHQUFHO1lBQ3RDLElBQUksRUFBRSxlQUFlO1lBQ3JCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGVBQWUsRUFBRSxjQUFjO1lBQy9CLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixjQUFjLEVBQUUsSUFBSTtZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxHQUFHO1lBQ2QscUJBQXFCLEVBQUUsSUFBSTtTQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHO1lBQzNCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLGlCQUFpQixFQUFFLFVBQVU7WUFDN0IsaUJBQWlCLEVBQUUsU0FBUztZQUM1QixhQUFhLEVBQUUsS0FBSztZQUNwQixXQUFXLEVBQUUsS0FBSztZQUNsQixpQkFBaUIsRUFBRSxLQUFLO1lBQ3hCLGlCQUFpQixFQUFFLEtBQUs7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyw0QkFBNEIsR0FBRztZQUNoQyxTQUFTLEVBQUUsS0FBSztZQUNoQixXQUFX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QUFFLElBQUksRUFBRTtTQUM3QyxDQUFDO0lBQ04sQ0FBQzsrR0FwSlEsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIElBbmd1bGFyMk11bHRpU2VsZWN0U2V0dGluZ3MsXHJcbiAgICBJQ29uZmlybWF0aW9uUG9wdXBDb25maWcsXHJcbiAgICBJQ3VzdG9tTXVsdGlTZWxlY3QsXHJcbiAgICBJQ3VzdG9tU2luZ2xlU2VsZWN0LFxyXG4gICAgSU5nYkRhdGVQaWNrZXJTZXR0aW5ncyxcclxuICAgIElOZ1NlbGVjdFNldHRpbmdzLFxyXG4gICAgSU5neEFzaWRlU2V0dGluZ3MsXHJcbiAgICBJTmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncyxcclxuICAgIElOZ3hTa2VsZXRvbkxvYWRlclNldHRpbmdzLFxyXG4gICAgSVJhZGlvQnV0dG9uQ29tcG9uZW50Q29uZmlnLFxyXG4gICAgSVdlZWtDYWxlbmRhcixcclxufSBmcm9tIFwiLi4vbW9kZWxzL2FubmEtZ2xvYmFsLWRyb3Bkb3duLWNvbmZpZy5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJR3RHZW5lcmFsQ29uZmlnLCBJR3RIZWFkZXJDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2FubmEtbm9uLWVkaXRhYmxlLWd0LW1vZGVsc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hR2xvYmFsQ29uZmlnU2VydmljZSB7XHJcbiAgICByZWFkb25seSBkZWZhdWx0QW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzOiBJQW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5neEFzaWRlU2V0dGluZ3M6IElOZ3hBc2lkZVNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5nYkRhdGVQaWNrZXJTZXR0aW5nczogSU5nYkRhdGVQaWNrZXJTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHROZ1NlbGVjdFNldHRpbmdzOiBJTmdTZWxlY3RTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHROZ3hJbmZpbml0ZVNjcm9sbFNldHRpbmdzOiBJTmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHROZ3hTa2VsZXRvbkxvYWRlclNldHRpbmdzOiBJTmd4U2tlbGV0b25Mb2FkZXJTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRSYWRpb0J1dHRvbnNDb21wb25lbnRDb25maWc6IElSYWRpb0J1dHRvbkNvbXBvbmVudENvbmZpZztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRDb25maXJtYXRpb25Qb3B1cENvbmZpZzogSUNvbmZpcm1hdGlvblBvcHVwQ29uZmlnO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdFdlZWtDYWxlbmRhckNvbmZpZzogSVdlZWtDYWxlbmRhcjtcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRHdEhlYWRlckNvbmZpZzogSUd0SGVhZGVyQ29uZmlnO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdEd0R2VuZXJhbENvbmZpZzogSUd0R2VuZXJhbENvbmZpZztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRTaW5nbGVTZWxlY3RDb25maWc6IElDdXN0b21TaW5nbGVTZWxlY3Q7XHJcbiAgICByZWFkb25seSBkZWZhdWx0TXVsdGlTZWxlY3RDb25maWc6IElDdXN0b21NdWx0aVNlbGVjdDtcclxuXHJcbiAgICAvKlxyXG4gICAgIEluaXRpYWxpemluZyBhbGwgZGVmYXVsdCBzZXR0aW5nc1xyXG4gICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEFuZ3VsYXIyTXVsdGlTZWxlY3RTZXR0aW5ncyA9IHtcclxuICAgICAgICAgICAgdGV4dDogXCJTZWxlY3Qgb3B0aW9uXCIsXHJcbiAgICAgICAgICAgIHNlbGVjdEFsbFRleHQ6IFwiU2VsZWN0IEFsbFwiLFxyXG4gICAgICAgICAgICB1blNlbGVjdEFsbFRleHQ6IFwiVW5TZWxlY3QgQWxsXCIsXHJcbiAgICAgICAgICAgIGJhZGdlU2hvd0xpbWl0OiAxLFxyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgICAgICAgICBjbGFzc2VzOiBcImZpbHRlci1kcm9wZG93bnNcIixcclxuICAgICAgICAgICAgZW5hYmxlU2VhcmNoRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICBlbmFibGVDaGVja0FsbDogdHJ1ZSxcclxuICAgICAgICAgICAgYXV0b1Bvc2l0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBwb3NpdGlvbjogXCJib3R0b21cIixcclxuICAgICAgICAgICAgbGF6eUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93Q2hlY2tib3g6IHRydWUsXHJcbiAgICAgICAgICAgIG1heEhlaWdodDogMzAwLFxyXG4gICAgICAgICAgICBlbmFibGVGaWx0ZXJTZWxlY3RBbGw6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Tmd4QXNpZGVTZXR0aW5ncyA9IHtcclxuICAgICAgICAgICAgdGl0bGU6ICdcIkZpbHRlcnNcIicsXHJcbiAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRpdGxlOiAnXCJDYW5jZWxcIicsXHJcbiAgICAgICAgICAgIHN1Ym1pdEJ1dHRvblRpdGxlOiAnXCJBcHBseVwiJyxcclxuICAgICAgICAgICAgY2xvc2VPbkVzY2FwZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dPdmVybGF5OiBmYWxzZSxcclxuICAgICAgICAgICAgc2hvd0RlZmF1bHRGb290ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93RGVmYXVsdEhlYWRlcjogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0TmdiRGF0ZVBpY2tlclNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBhdXRvQ2xvc2U6IGZhbHNlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJtbS1kZC15eXl5XCIsXHJcbiAgICAgICAgICAgIGRpc3BsYXlNb250aHM6IDEsXHJcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrOiAxLFxyXG4gICAgICAgICAgICBzaG93V2Vla051bWJlcnM6IGZhbHNlLFxyXG4gICAgICAgICAgICByZWFkb25seTogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHROZ1NlbGVjdFNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0XCIsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Tmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncyA9IHtcclxuICAgICAgICAgICAgaW5maW5pdGVTY3JvbGxEaXN0YW5jZTogMSxcclxuICAgICAgICAgICAgaW5maW5pdGVTY3JvbGxVcERpc3RhbmNlOiAyLFxyXG4gICAgICAgICAgICBpbmZpbml0ZVNjcm9sbFRocm90dGxlOiAzMDAsXHJcbiAgICAgICAgICAgIHNjcm9sbFdpbmRvdzogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Tmd4U2tlbGV0b25Mb2FkZXJTZXR0aW5ncyA9IHtcclxuICAgICAgICAgICAgbnVtYmVyT2ZTa2VsZXRvblJvd3M6IEFycmF5KDYpLmZpbGwoMCksXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0UmFkaW9CdXR0b25zQ29tcG9uZW50Q29uZmlnID0ge1xyXG4gICAgICAgICAgICBoZWFkaW5nOiBcIlNlbGVjdCBPcHRpb25cIixcclxuICAgICAgICAgICAgcmFkaW9CdXR0b25zOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiWWVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiWWVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTm9cIixcclxuICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlybWF0aW9uUG9wdXBDb25maWcgPSB7XHJcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkFyZSB5b3Ugc3VyZSA/XCIsXHJcbiAgICAgICAgICAgIHNob3dDb25maXJtQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICBjYW5jZWxCdXR0b25MYWJlbDogXCJOb1wiLFxyXG4gICAgICAgICAgICBjb25maXJtQnV0dG9uTGFiZWw6IFwiWWVzXCIsXHJcbiAgICAgICAgICAgIHNob3dDbG9zZUljb246IHRydWUsXHJcbiAgICAgICAgICAgIGJhY2tkcm9wOiBcInN0YXRpY1wiLFxyXG4gICAgICAgICAgICB3aW5kb3dDbGFzczogXCJcIixcclxuICAgICAgICAgICAgc2l6ZTogXCJzbVwiLFxyXG4gICAgICAgICAgICBrZXlib2FyZDogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0V2Vla0NhbGVuZGFyQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogMSxcclxuICAgICAgICAgICAgc2hvd1dlZWtOdW1iZXJzOiB0cnVlLFxyXG4gICAgICAgICAgICBkYXRlRm9ybWF0VG9EaXNwbGF5OiBcImQgTU1NIHlcIixcclxuICAgICAgICAgICAgZGF0ZUZvcm1hdEZvclJlcXVlc3Q6IFwieS1NTS1kZFwiLFxyXG4gICAgICAgICAgICBtYXhXZWVrc1RvU2hvd1dpdGhSZW1haW5pbmdDb3VudDogMixcclxuICAgICAgICAgICAgbnVtYmVyT2ZNb250aHNUb0VuYWJsZUluUGFzdDogMSxcclxuICAgICAgICAgICAgc2VsZWN0TXVsdGlwbGVXZWVrczogZmFsc2UsXHJcbiAgICAgICAgICAgIGN1c3RvbUNsYXNzOiBcIlwiLFxyXG4gICAgICAgICAgICBlbWl0TXVsdGlwbGVXZWVrT2JqZWN0czogdHJ1ZSxcclxuICAgICAgICAgICAgbWF4V2Vla3NUb1NlbGVjdDogMCxcclxuICAgICAgICAgICAgc2hvd0FzRHJvcGRvd246IHRydWUsXHJcbiAgICAgICAgICAgIHNlbGVjdEN1cnJlbnRXZWVrOiB0cnVlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdEd0SGVhZGVyQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBpY29uQ29sdW1uOiBmYWxzZSxcclxuICAgICAgICAgICAgY2hlY2tib3hDb2x1bW46IGZhbHNlLFxyXG4gICAgICAgICAgICBsYXN0Q29sdW1uS2V5czogW10sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0R3RHZW5lcmFsQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IFwiXCIsXHJcbiAgICAgICAgICAgIHRvdGFsUm93OiBmYWxzZSxcclxuICAgICAgICAgICAgaXNIZWFkZXJDaGVja2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgZGlzYWJsZUhlYWRlckNoZWNrYm94OiBmYWxzZSxcclxuICAgICAgICAgICAgdmVydGljYWxTY3JvbGxPZmZzZXRGb3JGaWx0ZXJUb29sdGlwOiAwLFxyXG4gICAgICAgICAgICBpc0dyb3VwZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93QWxsQ29sdW1uRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICBidWZmZXJTaXplOiAyMCxcclxuICAgICAgICAgICAgcGFnZTogXCJcIixcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRTaW5nbGVTZWxlY3RDb25maWcgPSB7XHJcbiAgICAgICAgICAgIHNob3dTZWFyY2hCYXI6IGZhbHNlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJTZWxlY3RcIixcclxuICAgICAgICAgICAgY2xhc3NlczogXCJcIixcclxuICAgICAgICAgICAgcG9zaXRpb246IFwiQk9UVE9NXCIsXHJcbiAgICAgICAgICAgIG1heEhlaWdodE9mTGlzdDogMjAwLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE11bHRpU2VsZWN0Q29uZmlnID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmRlZmF1bHRTaW5nbGVTZWxlY3RDb25maWcsXHJcbiAgICAgICAgICAgIC4uLnsgc2hvd0Vycm9yV2hlbk5vT3B0aW9uU2VsZWN0ZWQ6IHRydWUgfSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -2,44 +2,50 @@ import { Injectable } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class AnnaNumberFormatService {
4
4
  static GetRoundedValueWithUnits(inputValue, digitsToRoundDecimalPoint = 2) {
5
- let [value, unit] = AnnaNumberFormatService.GetValueInUnits(Math.abs(inputValue));
5
+ const result = AnnaNumberFormatService.GetValueInUnits(Math.abs(inputValue));
6
+ let value = result[0];
7
+ const unit = result[1];
6
8
  value = +(+value).toFixed(digitsToRoundDecimalPoint);
7
9
  if (inputValue < 0) {
8
- value = value * -1;
10
+ value *= -1;
9
11
  }
10
12
  return value.toString() + unit;
11
13
  // return (Math.Round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
12
14
  }
13
15
  static GetRoundedImpressionsWithUnits(inputValue, digitsToRoundDecimalPoint = 0) {
14
- let [value, unit] = this.GetValueInUnits(Math.abs(inputValue));
16
+ const result = this.GetValueInUnits(Math.abs(inputValue));
17
+ let value = result[0];
18
+ const unit = result[1];
15
19
  value = +value;
16
20
  if (inputValue < 0) {
17
- value = value * -1;
21
+ value *= -1;
18
22
  }
19
- if (digitsToRoundDecimalPoint == 0 && (unit == "M" || unit == "B" || unit == "K")) {
20
- digitsToRoundDecimalPoint = 2;
23
+ let digitToRoundOff = digitsToRoundDecimalPoint;
24
+ if (digitsToRoundDecimalPoint === 0 && (unit === "M" || unit === "B" || unit === "K")) {
25
+ digitToRoundOff = 2;
21
26
  }
22
- return Number.isInteger(value) ? value.toString() + unit : value.toFixed(digitsToRoundDecimalPoint) + unit;
27
+ return Number.isInteger(value) ? value.toString() + unit : value.toFixed(digitToRoundOff) + unit;
23
28
  // return (Math.round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
24
29
  }
25
30
  static GetValueInUnits(inputValue) {
26
31
  let unit = "";
27
- let thousand = 1000;
28
- let million = 1000000;
29
- let billion = 1000000000;
32
+ let updatedInputValue = inputValue;
33
+ const thousand = 1000;
34
+ const million = 1000000;
35
+ const billion = 1000000000;
30
36
  if (inputValue >= thousand && inputValue < million) {
31
- inputValue = inputValue / thousand;
37
+ updatedInputValue = inputValue / thousand;
32
38
  unit = "K";
33
39
  }
34
40
  else if (inputValue >= million && inputValue < billion) {
35
- inputValue = inputValue / million;
41
+ updatedInputValue = inputValue / million;
36
42
  unit = "M";
37
43
  }
38
44
  else if (inputValue >= billion) {
39
- inputValue = inputValue / billion;
45
+ updatedInputValue = inputValue / billion;
40
46
  unit = "B";
41
47
  }
42
- return [inputValue, unit];
48
+ return [updatedInputValue, unit];
43
49
  }
44
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaNumberFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
51
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaNumberFormatService, providedIn: "root" }); }
@@ -50,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
50
56
  providedIn: "root",
51
57
  }]
52
58
  }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1udW1iZXItZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLW51bWJlci1mb3JtYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMvQixpR0FBaUc7SUFDckcsQ0FBQztJQUVNLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxVQUFrQixFQUFFLDRCQUFvQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFDRCxJQUFJLHlCQUF5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDL0UseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzNHLCtGQUErRjtJQUNuRyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUV6QixJQUFJLFVBQVUsSUFBSSxRQUFRLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUNoRCxVQUFVLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUNuQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUN0RCxVQUFVLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDOUIsVUFBVSxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQTFDUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFOdW1iZXJGb3JtYXRTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZFZhbHVlV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCA9IDIpIHtcclxuICAgICAgICBsZXQgW3ZhbHVlLCB1bml0XSA9IEFubmFOdW1iZXJGb3JtYXRTZXJ2aWNlLkdldFZhbHVlSW5Vbml0cyhNYXRoLmFicyhpbnB1dFZhbHVlKSk7XHJcbiAgICAgICAgdmFsdWUgPSArKCt2YWx1ZSkudG9GaXhlZChkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50KTtcclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKSArIHVuaXQ7XHJcbiAgICAgICAgLy8gICByZXR1cm4gKE1hdGguUm91bmQodmFsdWUsIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQsIE1pZHBvaW50Um91bmRpbmcuQXdheUZyb21aZXJvKSArIHVuaXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZEltcHJlc3Npb25zV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludDogbnVtYmVyID0gMCkge1xyXG4gICAgICAgIGxldCBbdmFsdWUsIHVuaXRdID0gdGhpcy5HZXRWYWx1ZUluVW5pdHMoTWF0aC5hYnMoaW5wdXRWYWx1ZSkpO1xyXG4gICAgICAgIHZhbHVlID0gK3ZhbHVlO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICogLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID09IDAgJiYgKHVuaXQgPT0gXCJNXCIgfHwgdW5pdCA9PSBcIkJcIiB8fCB1bml0ID09IFwiS1wiKSkge1xyXG4gICAgICAgICAgICBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID0gMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSArIHVuaXQgOiB2YWx1ZS50b0ZpeGVkKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpICsgdW5pdDtcclxuICAgICAgICAvLyByZXR1cm4gKE1hdGgucm91bmQodmFsdWUsIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQsIE1pZHBvaW50Um91bmRpbmcuQXdheUZyb21aZXJvKSArIHVuaXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0VmFsdWVJblVuaXRzKGlucHV0VmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGxldCB1bml0ID0gXCJcIjtcclxuICAgICAgICBsZXQgdGhvdXNhbmQgPSAxMDAwO1xyXG4gICAgICAgIGxldCBtaWxsaW9uID0gMTAwMDAwMDtcclxuICAgICAgICBsZXQgYmlsbGlvbiA9IDEwMDAwMDAwMDA7XHJcblxyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlID49IHRob3VzYW5kICYmIGlucHV0VmFsdWUgPCBtaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gdGhvdXNhbmQ7XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIktcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGlucHV0VmFsdWUgPj0gbWlsbGlvbiAmJiBpbnB1dFZhbHVlIDwgYmlsbGlvbikge1xyXG4gICAgICAgICAgICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIG1pbGxpb247XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIk1cIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGlucHV0VmFsdWUgPj0gYmlsbGlvbikge1xyXG4gICAgICAgICAgICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIGJpbGxpb247XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIkJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbaW5wdXRWYWx1ZSwgdW5pdF07XHJcbiAgICB9XHJcbn1cclxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1udW1iZXItZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLW51bWJlci1mb3JtYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDcEYsTUFBTSxNQUFNLEdBQUcsdUJBQXVCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDL0IsaUdBQWlHO0lBQ3JHLENBQUM7SUFFTSxNQUFNLENBQUMsOEJBQThCLENBQUMsVUFBa0IsRUFBRSw0QkFBb0MsQ0FBQztRQUNsRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNmLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRTtZQUNoQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDZjtRQUVELElBQUksZUFBZSxHQUFHLHlCQUF5QixDQUFDO1FBQ2hELElBQUkseUJBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNuRixlQUFlLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqRywrRkFBK0Y7SUFDbkcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBa0I7UUFDNUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUM7UUFFM0IsSUFBSSxVQUFVLElBQUksUUFBUSxJQUFJLFVBQVUsR0FBRyxPQUFPLEVBQUU7WUFDaEQsaUJBQWlCLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUMxQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUN0RCxpQkFBaUIsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDO1lBQ3pDLElBQUksR0FBRyxHQUFHLENBQUM7U0FDZDthQUFNLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUM5QixpQkFBaUIsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDO1lBQ3pDLElBQUksR0FBRyxHQUFHLENBQUM7U0FDZDtRQUVELE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQW5EUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFOdW1iZXJGb3JtYXRTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZFZhbHVlV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCA9IDIpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBBbm5hTnVtYmVyRm9ybWF0U2VydmljZS5HZXRWYWx1ZUluVW5pdHMoTWF0aC5hYnMoaW5wdXRWYWx1ZSkpO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHJlc3VsdFswXTtcclxuICAgICAgICBjb25zdCB1bml0ID0gcmVzdWx0WzFdO1xyXG5cclxuICAgICAgICB2YWx1ZSA9ICsoK3ZhbHVlKS50b0ZpeGVkKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB2YWx1ZSAqPSAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkgKyB1bml0O1xyXG4gICAgICAgIC8vICAgcmV0dXJuIChNYXRoLlJvdW5kKHZhbHVlLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50LCBNaWRwb2ludFJvdW5kaW5nLkF3YXlGcm9tWmVybykgKyB1bml0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFJvdW5kZWRJbXByZXNzaW9uc1dpdGhVbml0cyhpbnB1dFZhbHVlOiBudW1iZXIsIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQ6IG51bWJlciA9IDApIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLkdldFZhbHVlSW5Vbml0cyhNYXRoLmFicyhpbnB1dFZhbHVlKSk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gcmVzdWx0WzBdO1xyXG4gICAgICAgIGNvbnN0IHVuaXQgPSByZXN1bHRbMV07XHJcblxyXG4gICAgICAgIHZhbHVlID0gK3ZhbHVlO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB2YWx1ZSAqPSAtMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBkaWdpdFRvUm91bmRPZmYgPSBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50O1xyXG4gICAgICAgIGlmIChkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID09PSAwICYmICh1bml0ID09PSBcIk1cIiB8fCB1bml0ID09PSBcIkJcIiB8fCB1bml0ID09PSBcIktcIikpIHtcclxuICAgICAgICAgICAgZGlnaXRUb1JvdW5kT2ZmID0gMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSArIHVuaXQgOiB2YWx1ZS50b0ZpeGVkKGRpZ2l0VG9Sb3VuZE9mZikgKyB1bml0O1xyXG4gICAgICAgIC8vIHJldHVybiAoTWF0aC5yb3VuZCh2YWx1ZSwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCwgTWlkcG9pbnRSb3VuZGluZy5Bd2F5RnJvbVplcm8pICsgdW5pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBHZXRWYWx1ZUluVW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHVuaXQgPSBcIlwiO1xyXG4gICAgICAgIGxldCB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWU7XHJcbiAgICAgICAgY29uc3QgdGhvdXNhbmQgPSAxMDAwO1xyXG4gICAgICAgIGNvbnN0IG1pbGxpb24gPSAxMDAwMDAwO1xyXG4gICAgICAgIGNvbnN0IGJpbGxpb24gPSAxMDAwMDAwMDAwO1xyXG5cclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSA+PSB0aG91c2FuZCAmJiBpbnB1dFZhbHVlIDwgbWlsbGlvbikge1xyXG4gICAgICAgICAgICB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyB0aG91c2FuZDtcclxuICAgICAgICAgICAgdW5pdCA9IFwiS1wiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXRWYWx1ZSA+PSBtaWxsaW9uICYmIGlucHV0VmFsdWUgPCBiaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIG1pbGxpb247XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIk1cIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGlucHV0VmFsdWUgPj0gYmlsbGlvbikge1xyXG4gICAgICAgICAgICB1cGRhdGVkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyBiaWxsaW9uO1xyXG4gICAgICAgICAgICB1bml0ID0gXCJCXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gW3VwZGF0ZWRJbnB1dFZhbHVlLCB1bml0XTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -2,7 +2,6 @@ import { Injectable } from "@angular/core";
2
2
  import hash from "object-hash";
3
3
  import * as i0 from "@angular/core";
4
4
  export class AnnaPersistingFilterService {
5
- constructor() { }
6
5
  storeKeyValueInLocalStorage(val, isFilterKey = true) {
7
6
  let filterOrdering;
8
7
  if (!localStorage.getItem("filterOrdering")) {
@@ -11,12 +10,12 @@ export class AnnaPersistingFilterService {
11
10
  else {
12
11
  filterOrdering = JSON.parse(localStorage.getItem("filterOrdering"));
13
12
  }
14
- let filterOrderingSet = new Set(filterOrdering);
13
+ const filterOrderingSet = new Set(filterOrdering);
15
14
  let hashCode = null;
16
15
  let key = null;
17
16
  try {
18
17
  hashCode = hash(val);
19
- key = isFilterKey ? "filter_" + hashCode : hashCode;
18
+ key = isFilterKey ? `filter_${hashCode}` : hashCode;
20
19
  localStorage.setItem(key, JSON.stringify(val));
21
20
  if (isFilterKey) {
22
21
  if (filterOrderingSet.has(key)) {
@@ -27,13 +26,13 @@ export class AnnaPersistingFilterService {
27
26
  }
28
27
  }
29
28
  catch (e) {
30
- let halfArrayLength = filterOrdering.length / 2;
29
+ const halfArrayLength = filterOrdering.length / 2;
31
30
  for (let i = 0; i < halfArrayLength; i++) {
32
31
  localStorage.removeItem(filterOrdering[i]);
33
32
  }
34
33
  filterOrdering.splice(0, filterOrdering.length / 2);
35
34
  hashCode = hash(val);
36
- let key = isFilterKey ? "filter_" + hashCode : hashCode;
35
+ key = isFilterKey ? `filter_${hashCode}` : hashCode;
37
36
  localStorage.setItem(key, JSON.stringify(val));
38
37
  if (isFilterKey) {
39
38
  if (filterOrderingSet.has(key)) {
@@ -61,5 +60,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
61
60
  args: [{
62
61
  providedIn: "root",
63
62
  }]
64
- }], ctorParameters: function () { return []; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvc2VydmljZXMvYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOztBQUsvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLGdCQUFlLENBQUM7SUFFaEIsMkJBQTJCLENBQUMsR0FBUSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQ3BELElBQUksY0FBcUIsQ0FBQztRQUUxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDdkI7YUFBTTtZQUNILGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRWYsSUFBSTtZQUNBLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUvQyxJQUFJLFdBQVcsRUFBRTtnQkFDYixJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDNUIsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQztnQkFDRCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO1NBQ0o7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksZUFBZSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWhELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUM7WUFFRCxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXBELFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRS9DLElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM1QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2pDO2dCQUNELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekY7U0FDSjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxZQUFpQjtRQUNyQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDOytHQTdEUSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQUZ4QixNQUFNOzs0RkFFVCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBoYXNoIGZyb20gXCJvYmplY3QtaGFzaFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hUGVyc2lzdGluZ0ZpbHRlclNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAgIHN0b3JlS2V5VmFsdWVJbkxvY2FsU3RvcmFnZSh2YWw6IGFueSwgaXNGaWx0ZXJLZXkgPSB0cnVlKSB7XHJcbiAgICAgICAgbGV0IGZpbHRlck9yZGVyaW5nOiBhbnlbXTtcclxuXHJcbiAgICAgICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZpbHRlck9yZGVyaW5nXCIpKSB7XHJcbiAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nID0gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmcgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmlsdGVyT3JkZXJpbmdcIikpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGZpbHRlck9yZGVyaW5nU2V0ID0gbmV3IFNldChmaWx0ZXJPcmRlcmluZyk7XHJcbiAgICAgICAgbGV0IGhhc2hDb2RlID0gbnVsbDtcclxuICAgICAgICBsZXQga2V5ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoKHZhbCk7XHJcbiAgICAgICAgICAgIGtleSA9IGlzRmlsdGVyS2V5ID8gXCJmaWx0ZXJfXCIgKyBoYXNoQ29kZSA6IGhhc2hDb2RlO1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbCkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzRmlsdGVyS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyT3JkZXJpbmdTZXQuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5kZWxldGUoa2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nU2V0LmFkZChrZXkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJmaWx0ZXJPcmRlcmluZ1wiLCBKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKGZpbHRlck9yZGVyaW5nU2V0KSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBsZXQgaGFsZkFycmF5TGVuZ3RoID0gZmlsdGVyT3JkZXJpbmcubGVuZ3RoIC8gMjtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGFsZkFycmF5TGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGZpbHRlck9yZGVyaW5nW2ldKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmcuc3BsaWNlKDAsIGZpbHRlck9yZGVyaW5nLmxlbmd0aCAvIDIpO1xyXG5cclxuICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoKHZhbCk7XHJcbiAgICAgICAgICAgIGxldCBrZXkgPSBpc0ZpbHRlcktleSA/IFwiZmlsdGVyX1wiICsgaGFzaENvZGUgOiBoYXNoQ29kZTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWwpKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpc0ZpbHRlcktleSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlck9yZGVyaW5nU2V0LmhhcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmdTZXQuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5hZGQoa2V5KTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiZmlsdGVyT3JkZXJpbmdcIiwgSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShmaWx0ZXJPcmRlcmluZ1NldCkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGtleTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3R1YWxRdWVyeVBhcmFtcyhrZXk6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRPYmpUb1F1ZXJ5U3RyaW5nKHBhcmFtc09iamVjdDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtc09iamVjdClcclxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1zT2JqZWN0W2tleV0pfWApXHJcbiAgICAgICAgICAgIC5qb2luKFwiJlwiKTtcclxuICAgIH1cclxufVxyXG4iXX0=
63
+ }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvc2VydmljZXMvYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOztBQUsvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxXQUFXLEdBQUcsSUFBSTtRQUNwRCxJQUFJLGNBQXFCLENBQUM7UUFFMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUN6QyxjQUFjLEdBQUcsRUFBRSxDQUFDO1NBQ3ZCO2FBQU07WUFDSCxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUVmLElBQUk7WUFDQSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNwRCxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxXQUFXLEVBQUU7Z0JBQ2IsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzVCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDakM7Z0JBQ0QsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6RjtTQUNKO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUVsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxZQUFZLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlDO1lBRUQsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVwRCxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNwRCxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxXQUFXLEVBQUU7Z0JBQ2IsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzVCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDakM7Z0JBQ0QsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6RjtTQUNKO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBVztRQUM1QixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELHVCQUF1QixDQUFDLFlBQWlCO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDM0IsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDbkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7K0dBM0RRLDJCQUEyQjttSEFBM0IsMkJBQTJCLGNBRnhCLE1BQU07OzRGQUVULDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IGhhc2ggZnJvbSBcIm9iamVjdC1oYXNoXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFQZXJzaXN0aW5nRmlsdGVyU2VydmljZSB7XHJcbiAgICBzdG9yZUtleVZhbHVlSW5Mb2NhbFN0b3JhZ2UodmFsOiBhbnksIGlzRmlsdGVyS2V5ID0gdHJ1ZSkge1xyXG4gICAgICAgIGxldCBmaWx0ZXJPcmRlcmluZzogYW55W107XHJcblxyXG4gICAgICAgIGlmICghbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmaWx0ZXJPcmRlcmluZ1wiKSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJPcmRlcmluZyA9IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZpbHRlck9yZGVyaW5nXCIpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlck9yZGVyaW5nU2V0ID0gbmV3IFNldChmaWx0ZXJPcmRlcmluZyk7XHJcbiAgICAgICAgbGV0IGhhc2hDb2RlID0gbnVsbDtcclxuICAgICAgICBsZXQga2V5ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoKHZhbCk7XHJcbiAgICAgICAgICAgIGtleSA9IGlzRmlsdGVyS2V5ID8gYGZpbHRlcl8ke2hhc2hDb2RlfWAgOiBoYXNoQ29kZTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWwpKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpc0ZpbHRlcktleSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlck9yZGVyaW5nU2V0LmhhcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmdTZXQuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5hZGQoa2V5KTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiZmlsdGVyT3JkZXJpbmdcIiwgSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShmaWx0ZXJPcmRlcmluZ1NldCkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc3QgaGFsZkFycmF5TGVuZ3RoID0gZmlsdGVyT3JkZXJpbmcubGVuZ3RoIC8gMjtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGFsZkFycmF5TGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGZpbHRlck9yZGVyaW5nW2ldKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmcuc3BsaWNlKDAsIGZpbHRlck9yZGVyaW5nLmxlbmd0aCAvIDIpO1xyXG5cclxuICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoKHZhbCk7XHJcbiAgICAgICAgICAgIGtleSA9IGlzRmlsdGVyS2V5ID8gYGZpbHRlcl8ke2hhc2hDb2RlfWAgOiBoYXNoQ29kZTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWwpKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpc0ZpbHRlcktleSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlck9yZGVyaW5nU2V0LmhhcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmdTZXQuZGVsZXRlKGtleSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5hZGQoa2V5KTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiZmlsdGVyT3JkZXJpbmdcIiwgSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShmaWx0ZXJPcmRlcmluZ1NldCkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGtleTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3R1YWxRdWVyeVBhcmFtcyhrZXk6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRPYmpUb1F1ZXJ5U3RyaW5nKHBhcmFtc09iamVjdDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtc09iamVjdClcclxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1zT2JqZWN0W2tleV0pfWApXHJcbiAgICAgICAgICAgIC5qb2luKFwiJlwiKTtcclxuICAgIH1cclxufVxyXG4iXX0=