@hestia-earth/ui-components 0.0.25 → 0.0.28

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 (53) hide show
  1. package/bundles/hestia-earth-ui-components.umd.js +457 -237
  2. package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
  3. package/common/blank-node-state/blank-node-state.component.d.ts +1 -10
  4. package/common/common.module.d.ts +8 -7
  5. package/common/index.d.ts +1 -0
  6. package/common/is-array.pipe.d.ts +7 -0
  7. package/common/link-key-value/link-key-value.component.d.ts +2 -0
  8. package/common/node-utils.d.ts +51 -0
  9. package/common/utils.d.ts +0 -41
  10. package/cycles/cycles-activity/cycles-activity.component.d.ts +1 -1
  11. package/cycles/cycles-emissions/cycles-emissions.component.d.ts +1 -1
  12. package/cycles/cycles-emissions-chart/cycles-emissions-chart.component.d.ts +1 -1
  13. package/cycles/cycles-practices/cycles-practices.component.d.ts +1 -1
  14. package/engine/engine-requirements-form/engine-requirements-form.component.d.ts +26 -0
  15. package/engine/engine.module.d.ts +6 -4
  16. package/engine/engine.service.d.ts +24 -5
  17. package/engine/index.d.ts +1 -0
  18. package/esm2015/common/blank-node-state/blank-node-state.component.js +12 -14
  19. package/esm2015/common/common.module.js +8 -4
  20. package/esm2015/common/index.js +2 -1
  21. package/esm2015/common/is-array.pipe.js +16 -0
  22. package/esm2015/common/link-key-value/link-key-value.component.js +6 -2
  23. package/esm2015/common/node-utils.js +80 -0
  24. package/esm2015/common/utils.js +2 -62
  25. package/esm2015/cycles/cycles-activity/cycles-activity.component.js +4 -3
  26. package/esm2015/cycles/cycles-activity-logs/cycles-activity-logs.component.js +3 -3
  27. package/esm2015/cycles/cycles-emissions/cycles-emissions.component.js +4 -3
  28. package/esm2015/cycles/cycles-emissions-chart/cycles-emissions-chart.component.js +3 -2
  29. package/esm2015/cycles/cycles-practices/cycles-practices.component.js +4 -3
  30. package/esm2015/cycles/cycles-result/cycles-result.component.js +3 -2
  31. package/esm2015/engine/engine-orchestrator-edit/engine-orchestrator-edit.component.js +2 -2
  32. package/esm2015/engine/engine-requirements-form/engine-requirements-form.component.js +75 -0
  33. package/esm2015/engine/engine.module.js +11 -6
  34. package/esm2015/engine/engine.service.js +22 -7
  35. package/esm2015/engine/index.js +2 -1
  36. package/esm2015/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.js +15 -8
  37. package/esm2015/impact-assessments/impact-assessments-indicators-chart/impact-assessments-indicators-chart.component.js +3 -2
  38. package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +4 -3
  39. package/esm2015/node/node-logs-models/node-logs-models.component.js +141 -61
  40. package/esm2015/node/node-value-details/node-value-details.component.js +4 -3
  41. package/esm2015/node/node.service.js +1 -1
  42. package/esm2015/sites/sites-measurements/sites-measurements.component.js +4 -3
  43. package/esm2015/sites/sites.model.js +1 -1
  44. package/fesm2015/hestia-earth-ui-components.js +369 -167
  45. package/fesm2015/hestia-earth-ui-components.js.map +1 -1
  46. package/impact-assessments/impact-assessments-indicators-chart/impact-assessments-indicators-chart.component.d.ts +1 -1
  47. package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +1 -1
  48. package/node/node-logs-models/node-logs-models.component.d.ts +26 -17
  49. package/node/node-value-details/node-value-details.component.d.ts +1 -1
  50. package/node/node.service.d.ts +16 -15
  51. package/package.json +1 -1
  52. package/sites/sites-measurements/sites-measurements.component.d.ts +2 -2
  53. package/sites/sites.model.d.ts +1 -1
@@ -1,7 +1,8 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { DataState } from '@hestia-earth/api';
3
3
  import { propertyValue } from '@hestia-earth/utils/dist/term';
4
- import { baseUrl, groupNodesByTerm, grouppedKeys, defaultLabel } from '../../common/utils';
4
+ import { groupNodesByTerm, grouppedKeys } from '../../common/node-utils';
5
+ import { baseUrl, defaultLabel } from '../../common/utils';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@fortawesome/angular-fontawesome";
7
8
  import * as i2 from "../../node/node-link/node-link.component";
@@ -63,7 +64,7 @@ export class CyclesEmissionsComponent {
63
64
  }
64
65
  }
65
66
  CyclesEmissionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesEmissionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
66
- CyclesEmissionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesEmissionsComponent, selector: "he-cycles-emissions", inputs: { originalValues: "originalValues", cycles: "cycles", selected: "selected", dataState: "dataState" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"emissions.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"cycles.length > 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.chart\" (click)=\"selectedView = View.chart\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"chart-bar\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Chart view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{emissions.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.name\"\n >\n <he-node-link [node]=\"emission.value.term\">\n <span>{{emission.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.units\"\n >{{emission.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr *ngIf=\"isSelected(cycle)\">\n <td class=\"width-auto\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{defaultLabel(cycle)}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let emission of emissions\">\n <span *ngIf=\"emission.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: emission.value.values[cycle['@id']], cycle: cycle, key: 'emissions' })\"\n >\n <span pointer>{{propertyValue(emission.value.values[cycle['@id']].value, emission.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"emission.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\" [showDeleted]=\"true\"></he-blank-node-state-notice>\n </div>\n\n <he-cycles-emissions-chart *ngIf=\"cycles.length > 1\" [class.is-hidden]=\"selectedView !== View.chart\"\n [cycles]=\"cycles\" [selected]=\"selected\"\n ></he-cycles-emissions-chart>\n\n <he-cycles-emissions-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [cycle]=\"cycles[0]\"\n [originalValues]=\"originalValues[0]?.emissions\"\n [recalculatedValues]=\"cycles[0]?.emissions\"\n ></he-cycles-emissions-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-emissions.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.emissions.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted", "showUnchanged"] }, { type: i6.CyclesEmissionsChartComponent, selector: "he-cycles-emissions-chart", inputs: ["cycles", "selected"] }, { type: i7.CyclesEmissionsLogsComponent, selector: "he-cycles-emissions-logs", inputs: ["cycle", "originalValues", "recalculatedValues"] }, { type: i8.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i9.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i12.EllipsisPipe, "default": i13.DefaultPipe, "precision": i14.PrecisionPipe } });
67
+ CyclesEmissionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesEmissionsComponent, selector: "he-cycles-emissions", inputs: { originalValues: "originalValues", cycles: "cycles", selected: "selected", dataState: "dataState" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"emissions.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"cycles.length > 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.chart\" (click)=\"selectedView = View.chart\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"chart-bar\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Chart view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{emissions.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.name\"\n >\n <he-node-link [node]=\"emission.value.term\">\n <span>{{emission.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let emission of emissions\"\n [attr.title]=\"emission.value.term.units\"\n >{{emission.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr *ngIf=\"isSelected(cycle)\">\n <td class=\"width-auto\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{defaultLabel(cycle)}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let emission of emissions\">\n <span *ngIf=\"emission.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: emission.value.values[cycle['@id']], cycle: cycle, key: 'emissions' })\"\n >\n <span pointer>{{propertyValue(emission.value.values[cycle['@id']].value, emission.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"emission.value.values[cycle['@id']].node\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\" [showDeleted]=\"true\"></he-blank-node-state-notice>\n </div>\n\n <he-cycles-emissions-chart *ngIf=\"cycles.length > 1\" [class.is-hidden]=\"selectedView !== View.chart\"\n [cycles]=\"cycles\" [selected]=\"selected\"\n ></he-cycles-emissions-chart>\n\n <he-cycles-emissions-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [cycle]=\"cycles[0]\"\n [originalValues]=\"originalValues[0]?.emissions\"\n [recalculatedValues]=\"cycles[0]?.emissions\"\n ></he-cycles-emissions-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-emissions.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.emissions.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted", "showUnchanged"] }, { type: i6.CyclesEmissionsChartComponent, selector: "he-cycles-emissions-chart", inputs: ["cycles", "selected"] }, { type: i7.CyclesEmissionsLogsComponent, selector: "he-cycles-emissions-logs", inputs: ["cycle", "originalValues", "recalculatedValues"] }, { type: i8.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i9.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i12.EllipsisPipe, "default": i13.DefaultPipe, "precision": i14.PrecisionPipe } });
67
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesEmissionsComponent, decorators: [{
68
69
  type: Component,
69
70
  args: [{
@@ -80,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
80
81
  }], dataState: [{
81
82
  type: Input
82
83
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFnQixZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFIekcsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFLMUMsSUFBSyxJQUlKO0FBSkQsV0FBSyxJQUFJO0lBQ1AsdUJBQWUsQ0FBQTtJQUNmLHVCQUFlLENBQUE7SUFDZixxQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpJLElBQUksS0FBSixJQUFJLFFBSVI7QUFPRCxNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBT1MsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRTVCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFJeEIsWUFBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFMUIsY0FBUyxHQUE2QixFQUFFLENBQUM7S0ErQmpEO0lBN0JDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLFdBQVcsSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTTtRQUNaLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQXlCLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7c0hBL0NVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDhMQ25CckMsd2tMQW9JQTs0RkRqSGEsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIEVtaXNzaW9uIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuY29uc3Qgb3JkZXJCeSA9IHJlcXVpcmUoJ2xvZGFzaC5vcmRlcmJ5Jyk7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuXG5pbXBvcnQgeyBiYXNlVXJsLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cywgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAndGFibGUnLFxuICBjaGFydCA9ICdjaGFydCcsXG4gIGxvZ3MgPSAnbG9ncydcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLWVtaXNzaW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtZW1pc3Npb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN5Y2xlc0VtaXNzaW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcmlnaW5hbFZhbHVlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YVN0YXRlPzogRGF0YVN0YXRlO1xuXG4gIHB1YmxpYyBiYXNlVXJsID0gYmFzZVVybCgpO1xuICBwdWJsaWMgcHJvcGVydHlWYWx1ZSA9IHByb3BlcnR5VmFsdWU7XG4gIHB1YmxpYyBkZWZhdWx0TGFiZWwgPSBkZWZhdWx0TGFiZWw7XG4gIHB1YmxpYyBzaG93RG93bmxvYWQgPSBmYWxzZTtcbiAgcHVibGljIFZpZXcgPSBWaWV3O1xuICBwdWJsaWMgc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcblxuICBwdWJsaWMgZW1pc3Npb25zOiBJR3JvdXBlZEtleXM8RW1pc3Npb24+W10gPSBbXTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdjeWNsZXMnIGluIGNoYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgICBpZiAoJ2RhdGFTdGF0ZScgaW4gY2hhbmdlcykge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5SWQoX2luZGV4OiBudW1iZXIsIGl0ZW06IElDeWNsZUpTT05MRCkge1xuICAgIHJldHVybiBpdGVtWydAaWQnXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcmlnaW5hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3RhdGUgPT09IERhdGFTdGF0ZS5vcmlnaW5hbDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIGNvbnN0IGVtaXNzaW9uc1BlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQsIEVtaXNzaW9uPih0aGlzLmN5Y2xlcywgJ2VtaXNzaW9ucycsIHRoaXMub3JpZ2luYWxWYWx1ZXMpO1xuICAgIHRoaXMuZW1pc3Npb25zID0gb3JkZXJCeShncm91cHBlZEtleXMoZW1pc3Npb25zUGVyQ3ljbGUpLCBbJ3ZhbHVlLm1ldGhvZFRpZXJPcmRlcicsICdrZXknXSwgWydhc2MnLCAnYXNjJ10pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBvcG92ZXIocG9wb3ZlcjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICByZXR1cm4gcG9wb3Zlci5pc09wZW4oKSA/IHBvcG92ZXIuY2xvc2UoKSA6IHBvcG92ZXIub3Blbihjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhjeWNsZVsnQGlkJ10pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZW1pc3Npb25zLmxlbmd0aDsgZWxzZSBlbXB0eVRhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLXZhcmlhYmxlIGlzLTIgbS0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1oaWRkZW4tbW9iaWxlXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LnRhYmxlXCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldyA9IFZpZXcudGFibGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwibGlzdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlRhYmxlIHZpZXc8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiICpuZ0lmPVwiY3ljbGVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcuY2hhcnRcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5jaGFydFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJjaGFydC1iYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5DaGFydCB2aWV3PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIiAqbmdJZj1cIiFpc09yaWdpbmFsICYmIGN5Y2xlcy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9nc1wiIChjbGljayk9XCJzZWxlY3RlZFZpZXcgPSBWaWV3LmxvZ3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwiY2FsY3VsYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlJlY2FsY3VsYXRpb25zIGxvZ3M8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJweC0zIHBiLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cInNlbGVjdGVkVmlldyAhPT0gVmlldy50YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoYXMtdGV4dC1yaWdodCBtYi0yXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGxcIiAoY2xpY2spPVwic2hvd0Rvd25sb2FkID0gdHJ1ZVwiPlxuICAgICAgICA8ZmEtaWNvbiBpY29uPVwiZG93bmxvYWRcIj48L2ZhLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPkRvd25sb2FkIChDU1YpPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyIGRhdGEtdGFibGUtY29udGFpbmVyIG1iLTFcIj5cbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGlzLW5hcnJvdyBkYXRhLXRhYmxlIGhhcy1jaGlsZHJlbi17e2VtaXNzaW9ucy5sZW5ndGh9fVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0b1wiPjwvdGg+XG4gICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgZW1pc3Npb24gb2YgZW1pc3Npb25zXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZW1pc3Npb24udmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJlbWlzc2lvbi52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tlbWlzc2lvbi52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczozMH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGVtaXNzaW9uIG9mIGVtaXNzaW9uc1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImVtaXNzaW9uLnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7ZW1pc3Npb24udmFsdWUudGVybS51bml0c319PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY3ljbGUgb2YgY3ljbGVzOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ciAqbmdJZj1cImlzU2VsZWN0ZWQoY3ljbGUpXCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG9cIiBbYXR0ci50aXRsZV09XCJkZWZhdWx0TGFiZWwoY3ljbGUpXCI+XG4gICAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJjeWNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpcy1ub3dyYXAgaGFzLXRleHQtZWxsaXBzaXNcIj57e2kgKyAxfX0uIHt7ZGVmYXVsdExhYmVsKGN5Y2xlKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgPGhlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZSBbY3ljbGVdPVwiY3ljbGVzWzBdXCI+PC9oZS1jeWNsZXMtZnVuY3Rpb25hbC11bml0LW1lYXN1cmU+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlzLW5vd3JhcFwiICpuZ0Zvcj1cImxldCBlbWlzc2lvbiBvZiBlbWlzc2lvbnNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVtaXNzaW9uLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dOyBlbHNlIGVtcHR5VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICAgICAgW25nYlBvcG92ZXJdPVwiZGV0YWlsc1wiIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCIgI3A9XCJuZ2JQb3BvdmVyXCIgcGxhY2VtZW50PVwibGVmdFwiIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIocCwgeyBkYXRhOiBlbWlzc2lvbi52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXSwgY3ljbGU6IGN5Y2xlLCBrZXk6ICdlbWlzc2lvbnMnIH0pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBwb2ludGVyPnt7cHJvcGVydHlWYWx1ZShlbWlzc2lvbi52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS52YWx1ZSwgZW1pc3Npb24udmFsdWUudGVybVsnQGlkJ10pIHwgcHJlY2lzaW9uOjMgfCBkZWZhdWx0OictJ319PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZW1pc3Npb24udmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0ubm9kZXNbMF1cIlxuICAgICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlXCIgW3Nob3dEZWxldGVkXT1cInRydWVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICA8L2Rpdj5cblxuICA8aGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydCAqbmdJZj1cImN5Y2xlcy5sZW5ndGggPiAxXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcuY2hhcnRcIlxuICAgIFtjeWNsZXNdPVwiY3ljbGVzXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgPjwvaGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydD5cblxuICA8aGUtY3ljbGVzLWVtaXNzaW9ucy1sb2dzICpuZ0lmPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3MgJiYgIWlzT3JpZ2luYWxcIlxuICAgIFtjeWNsZV09XCJjeWNsZXNbMF1cIlxuICAgIFtvcmlnaW5hbFZhbHVlc109XCJvcmlnaW5hbFZhbHVlc1swXT8uZW1pc3Npb25zXCJcbiAgICBbcmVjYWxjdWxhdGVkVmFsdWVzXT1cImN5Y2xlc1swXT8uZW1pc3Npb25zXCJcbiAgPjwvaGUtY3ljbGVzLWVtaXNzaW9ucy1sb2dzPlxuPC9uZy1jb250YWluZXI+XG5cbjxoZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybSAqbmdJZj1cInNob3dEb3dubG9hZFwiXG4gIFtub2Rlc109XCJjeWNsZXNcIiBmaWxlbmFtZT1cImN5Y2xlLWVtaXNzaW9ucy5jc3ZcIiBbaXNVcGxvYWRdPVwiZmFsc2VcIlxuICBbaGVhZGVyS2V5c109XCJbJ2N5Y2xlLmlkJywgJ2N5Y2xlLkBpZCcsICdjeWNsZS5lbWlzc2lvbnMuJ11cIlxuICAoY2xvc2VkKT1cInNob3dEb3dubG9hZCA9IGZhbHNlXCJcbj48L2hlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VGFibGU+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1ibG9ja1wiPlxuICAgIDxzcGFuPk5vIGRhdGE8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVZhbHVlPlxuICA8c3Bhbj4tPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZXRhaWxzIGxldC1ub2RlPVwiY3ljbGVcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQta2V5PVwia2V5XCI+XG4gIDxwPjxiPnt7bm9kZS5uYW1lfX08L2I+PC9wPlxuICA8aGUtbm9kZS12YWx1ZS1kZXRhaWxzXG4gICAgW2RhdGFdPVwiZGF0YVwiIFtub2RlVHlwZV09XCJub2RlWydAdHlwZSddXCIgW2RhdGFLZXldPVwia2V5XCJcbiAgPjwvaGUtbm9kZS12YWx1ZS1kZXRhaWxzPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMvY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFKM0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFNMUMsSUFBSyxJQUlKO0FBSkQsV0FBSyxJQUFJO0lBQ1AsdUJBQWUsQ0FBQTtJQUNmLHVCQUFlLENBQUE7SUFDZixxQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpJLElBQUksS0FBSixJQUFJLFFBSVI7QUFPRCxNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBT1MsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRTVCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFJeEIsWUFBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFMUIsY0FBUyxHQUE2QixFQUFFLENBQUM7S0ErQmpEO0lBN0JDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLFdBQVcsSUFBSSxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTTtRQUNaLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQXlCLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7c0hBL0NVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDhMQ3BCckMsb2tMQW9JQTs0RkRoSGEsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIEVtaXNzaW9uIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuY29uc3Qgb3JkZXJCeSA9IHJlcXVpcmUoJ2xvZGFzaC5vcmRlcmJ5Jyk7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuXG5pbXBvcnQgeyBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cyB9IGZyb20gJy4uLy4uL2NvbW1vbi9ub2RlLXV0aWxzJztcbmltcG9ydCB7IGJhc2VVcmwsIGRlZmF1bHRMYWJlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5cbmVudW0gVmlldyB7XG4gIHRhYmxlID0gJ3RhYmxlJyxcbiAgY2hhcnQgPSAnY2hhcnQnLFxuICBsb2dzID0gJ2xvZ3MnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1lbWlzc2lvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLWVtaXNzaW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1lbWlzc2lvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNFbWlzc2lvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3JpZ2luYWxWYWx1ZXM6IElDeWNsZUpTT05MRFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjeWNsZXM6IElDeWNsZUpTT05MRFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcblxuICBwdWJsaWMgYmFzZVVybCA9IGJhc2VVcmwoKTtcbiAgcHVibGljIHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eVZhbHVlO1xuICBwdWJsaWMgZGVmYXVsdExhYmVsID0gZGVmYXVsdExhYmVsO1xuICBwdWJsaWMgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG4gIHB1YmxpYyBWaWV3ID0gVmlldztcbiAgcHVibGljIHNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG5cbiAgcHVibGljIGVtaXNzaW9uczogSUdyb3VwZWRLZXlzPEVtaXNzaW9uPltdID0gW107XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgaWYgKCdkYXRhU3RhdGUnIGluIGNoYW5nZXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3JpZ2luYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN0YXRlID09PSBEYXRhU3RhdGUub3JpZ2luYWw7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBlbWlzc2lvbnNQZXJDeWNsZSA9IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBFbWlzc2lvbj4odGhpcy5jeWNsZXMsICdlbWlzc2lvbnMnLCB0aGlzLm9yaWdpbmFsVmFsdWVzKTtcbiAgICB0aGlzLmVtaXNzaW9ucyA9IG9yZGVyQnkoZ3JvdXBwZWRLZXlzKGVtaXNzaW9uc1BlckN5Y2xlKSwgWyd2YWx1ZS5tZXRob2RUaWVyT3JkZXInLCAna2V5J10sIFsnYXNjJywgJ2FzYyddKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQb3BvdmVyKHBvcG92ZXI6IGFueSwgY29udGV4dDogYW55KSB7XG4gICAgcmV0dXJuIHBvcG92ZXIuaXNPcGVuKCkgPyBwb3BvdmVyLmNsb3NlKCkgOiBwb3BvdmVyLm9wZW4oY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubGVuZ3RoID09PSAwIHx8IHRoaXMuc2VsZWN0ZWQuaW5jbHVkZXMoY3ljbGVbJ0BpZCddKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVtaXNzaW9ucy5sZW5ndGg7IGVsc2UgZW1wdHlUYWJsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1ucyBpcy12YXJpYWJsZSBpcy0yIG0tMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtaGlkZGVuLW1vYmlsZVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtbmFycm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtc21hbGxcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInNlbGVjdGVkVmlldyA9PT0gVmlldy50YWJsZVwiIChjbGljayk9XCJzZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImxpc3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5UYWJsZSB2aWV3PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIiAqbmdJZj1cImN5Y2xlcy5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmNoYXJ0XCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldyA9IFZpZXcuY2hhcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwiY2hhcnQtYmFyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+Q2hhcnQgdmlldzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCIgKm5nSWY9XCIhaXNPcmlnaW5hbCAmJiBjeWNsZXMubGVuZ3RoID09PSAxXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3NcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5sb2dzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImNhbGN1bGF0b3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5SZWNhbGN1bGF0aW9ucyBsb2dzPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcudGFibGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGFzLXRleHQtcmlnaHQgbWItMlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsXCIgKGNsaWNrKT1cInNob3dEb3dubG9hZCA9IHRydWVcIj5cbiAgICAgICAgPGZhLWljb24gaWNvbj1cImRvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5Eb3dubG9hZCAoQ1NWKTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBkYXRhLXRhYmxlLWNvbnRhaW5lciBtYi0xXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBpcy1uYXJyb3cgZGF0YS10YWJsZSBoYXMtY2hpbGRyZW4te3tlbWlzc2lvbnMubGVuZ3RofX1cIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGVtaXNzaW9uIG9mIGVtaXNzaW9uc1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImVtaXNzaW9uLnZhbHVlLnRlcm0ubmFtZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiZW1pc3Npb24udmFsdWUudGVybVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7ZW1pc3Npb24udmFsdWUudGVybS5uYW1lIHwgZWxsaXBzaXM6MzB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0b1wiPjwvdGg+XG4gICAgICAgICAgICA8dGg+XG4gICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhc2VVcmwgKyAnL3NjaGVtYS9DeWNsZSNmdW5jdGlvbmFsVW5pdCdcIiB0YXJnZXQ9XCJfYmxhbmtcIj5GdW5jdGlvbmFsIHVuaXQ8L2E+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBlbWlzc2lvbiBvZiBlbWlzc2lvbnNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJlbWlzc2lvbi52YWx1ZS50ZXJtLnVuaXRzXCJcbiAgICAgICAgICAgID57e2VtaXNzaW9uLnZhbHVlLnRlcm0udW5pdHN9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN5Y2xlIG9mIGN5Y2xlczsgdHJhY2tCeTogdHJhY2tCeUlkOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJpc1NlbGVjdGVkKGN5Y2xlKVwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aWR0aC1hdXRvXCIgW2F0dHIudGl0bGVdPVwiZGVmYXVsdExhYmVsKGN5Y2xlKVwiPlxuICAgICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtbm93cmFwIGhhcy10ZXh0LWVsbGlwc2lzXCI+e3tpICsgMX19LiB7e2RlZmF1bHRMYWJlbChjeWNsZSl9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxoZS1jeWNsZXMtZnVuY3Rpb25hbC11bml0LW1lYXN1cmUgW2N5Y2xlXT1cImN5Y2xlc1swXVwiPjwvaGUtY3ljbGVzLWZ1bmN0aW9uYWwtdW5pdC1tZWFzdXJlPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgZW1pc3Npb24gb2YgZW1pc3Npb25zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJlbWlzc2lvbi52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXTsgZWxzZSBlbXB0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJpZ2dlci1wb3BvdmVyXCJcbiAgICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiICNwPVwibmdiUG9wb3ZlclwiIHBsYWNlbWVudD1cImxlZnRcIiBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQb3BvdmVyKHAsIHsgZGF0YTogZW1pc3Npb24udmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0sIGN5Y2xlOiBjeWNsZSwga2V5OiAnZW1pc3Npb25zJyB9KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gcG9pbnRlcj57e3Byb3BlcnR5VmFsdWUoZW1pc3Npb24udmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0udmFsdWUsIGVtaXNzaW9uLnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgICAgICAgICAgIFtub2RlXT1cImVtaXNzaW9uLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLm5vZGVcIlxuICAgICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlXCIgW3Nob3dEZWxldGVkXT1cInRydWVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICA8L2Rpdj5cblxuICA8aGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydCAqbmdJZj1cImN5Y2xlcy5sZW5ndGggPiAxXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcuY2hhcnRcIlxuICAgIFtjeWNsZXNdPVwiY3ljbGVzXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgPjwvaGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydD5cblxuICA8aGUtY3ljbGVzLWVtaXNzaW9ucy1sb2dzICpuZ0lmPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3MgJiYgIWlzT3JpZ2luYWxcIlxuICAgIFtjeWNsZV09XCJjeWNsZXNbMF1cIlxuICAgIFtvcmlnaW5hbFZhbHVlc109XCJvcmlnaW5hbFZhbHVlc1swXT8uZW1pc3Npb25zXCJcbiAgICBbcmVjYWxjdWxhdGVkVmFsdWVzXT1cImN5Y2xlc1swXT8uZW1pc3Npb25zXCJcbiAgPjwvaGUtY3ljbGVzLWVtaXNzaW9ucy1sb2dzPlxuPC9uZy1jb250YWluZXI+XG5cbjxoZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybSAqbmdJZj1cInNob3dEb3dubG9hZFwiXG4gIFtub2Rlc109XCJjeWNsZXNcIiBmaWxlbmFtZT1cImN5Y2xlLWVtaXNzaW9ucy5jc3ZcIiBbaXNVcGxvYWRdPVwiZmFsc2VcIlxuICBbaGVhZGVyS2V5c109XCJbJ2N5Y2xlLmlkJywgJ2N5Y2xlLkBpZCcsICdjeWNsZS5lbWlzc2lvbnMuJ11cIlxuICAoY2xvc2VkKT1cInNob3dEb3dubG9hZCA9IGZhbHNlXCJcbj48L2hlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VGFibGU+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1ibG9ja1wiPlxuICAgIDxzcGFuPk5vIGRhdGE8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVZhbHVlPlxuICA8c3Bhbj4tPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZXRhaWxzIGxldC1ub2RlPVwiY3ljbGVcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQta2V5PVwia2V5XCI+XG4gIDxwPjxiPnt7bm9kZS5uYW1lfX08L2I+PC9wPlxuICA8aGUtbm9kZS12YWx1ZS1kZXRhaWxzXG4gICAgW2RhdGFdPVwiZGF0YVwiIFtub2RlVHlwZV09XCJub2RlWydAdHlwZSddXCIgW2RhdGFLZXldPVwia2V5XCJcbiAgPjwvaGUtbm9kZS12YWx1ZS1kZXRhaWxzPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  import { Component, Input, ViewChild } from '@angular/core';
2
2
  import { Chart } from 'chart.js';
3
3
  import { propertyValue } from '@hestia-earth/utils/dist/term';
4
- import { groupNodesByTerm, itemColor, defaultLabel } from '../../common/utils';
4
+ import { groupNodesByTerm } from '../../common/node-utils';
5
+ import { itemColor, defaultLabel } from '../../common/utils';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/forms";
7
8
  import * as i2 from "@angular/common";
@@ -102,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
102
103
  }], selected: [{
103
104
  type: Input
104
105
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXVELE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFDTCxnQkFBZ0IsRUFBc0MsU0FBUyxFQUFFLFlBQVksRUFDOUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUU1QixNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQWtCLEVBQUUsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRWpILE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBbUIsRUFBRSxNQUFxQyxFQUFFLEVBQUUsV0FDaEYsT0FBQSxDQUFDLENBQUEsTUFBQSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLDBDQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUEsRUFBQSxDQUFDO0FBRTNELE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUFDLEdB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NEZEVWEsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSx5Q0FBeUM7b0JBQ3RELFNBQVMsRUFBRSxDQUFDLHlDQUF5QyxDQUFDO2lCQUN2RDs4QkFHUyxRQUFRO3NCQURmLFNBQVM7dUJBQUMsT0FBTztnQkFLVixNQUFNO3NCQURiLEtBQUs7Z0JBR0UsUUFBUTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVtaXNzaW9uLCBJQ3ljbGVKU09OTEQsIElUZXJtSlNPTkxEIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuXG5pbXBvcnQge1xuICBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZE5vZGVzLCBJR3JvdXBlZE5vZGVzVmFsdWVzLCBpdGVtQ29sb3IsIGRlZmF1bHRMYWJlbFxufSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5jb25zdCBpc1NlbGVjdGVkID0gKHNlbGVjdGVkOiBzdHJpbmdbXSwgdjogSUN5Y2xlSlNPTkxEKSA9PiBzZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWQuaW5jbHVkZXModlsnQGlkJ10pO1xuXG5jb25zdCBjeWNsZVZhbHVlID0gKGN5Y2xlOiBJQ3ljbGVKU09OTEQsIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxFbWlzc2lvbj4pID0+XG4gICh2YWx1ZXNbY3ljbGVbJ0BpZCddXT8ubm9kZXNbMF0gfHwgeyB2YWx1ZTogWzBdIH0pLnZhbHVlO1xuXG5jb25zdCBjeWNsZU5hbWUgPSAoY3ljbGU6IElDeWNsZUpTT05MRCwgaW5kZXg6IG51bWJlcikgPT4gYCR7aW5kZXggKyAxfS4gJHtkZWZhdWx0TGFiZWwoY3ljbGUpfWA7XG5cbmNvbnN0IGN5Y2xlRGF0YXNldCA9ICh2YWx1ZXM6IElHcm91cGVkTm9kZXNWYWx1ZXM8RW1pc3Npb24+LCB0ZXJtSWQ6IHN0cmluZywgY3ljbGU6IElDeWNsZUpTT05MRCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICBjb25zdCBsYWJlbCA9IGN5Y2xlTmFtZShjeWNsZSwgaW5kZXgpO1xuICBjb25zdCBjb2xvciA9IGl0ZW1Db2xvcihpbmRleCk7XG4gIGNvbnN0IGRhdGEgPSBbcHJvcGVydHlWYWx1ZShjeWNsZVZhbHVlKGN5Y2xlLCB2YWx1ZXMpISwgdGVybUlkKV07XG4gIHJldHVybiB7XG4gICAgbGFiZWwsXG4gICAgYXhpczogJ3knLFxuICAgIGRhdGEsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcbiAgICBib3JkZXJDb2xvcjogY29sb3JcbiAgfTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1lbWlzc2lvbnMtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNFbWlzc2lvbnNDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0JylcbiAgcHJpdmF0ZSBjaGFydFJlZj86IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgY2hhcnQ6IGFueTtcblxuICBASW5wdXQoKVxuICBwcml2YXRlIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBzZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgZW1pc3Npb25QZXJDeWNsZTogSUdyb3VwZWROb2RlczxFbWlzc2lvbj4gPSB7fTtcbiAgcHVibGljIHRlcm1zOiBJVGVybUpTT05MRFtdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZFRlcm0/OiBJVGVybUpTT05MRDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzLmN5Y2xlcy5maXJzdENoYW5nZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAoJ3NlbGVjdGVkJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzLnNlbGVjdGVkLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIGNvbnN0IGN5Y2xlcyA9IHRoaXMuY3ljbGVzLmZpbHRlcih2ID0+IGlzU2VsZWN0ZWQodGhpcy5zZWxlY3RlZCwgdikpO1xuICAgIHRoaXMuZW1pc3Npb25QZXJDeWNsZSA9IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBFbWlzc2lvbj4oY3ljbGVzLCAnZW1pc3Npb25zJyk7XG4gICAgdGhpcy50ZXJtcyA9IE9iamVjdC52YWx1ZXModGhpcy5lbWlzc2lvblBlckN5Y2xlKVxuICAgICAgLmZpbHRlcigoeyB2YWx1ZXMgfSkgPT4gT2JqZWN0LnZhbHVlcyh2YWx1ZXMpLnNvbWUoKHsgbm9kZXM6IFt7IHZhbHVlIH1dIH0pID0+IHByb3BlcnR5VmFsdWUodmFsdWUhKSA+PSAwKSlcbiAgICAgIC5tYXAoKHsgdGVybSB9KSA9PiB0ZXJtKTtcbiAgICB0aGlzLnNlbGVjdGVkVGVybSA9IHRoaXMudGVybXMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRlcm0hKSA/IHRoaXMuc2VsZWN0ZWRUZXJtIDogdGhpcy50ZXJtc1swXTtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRlcm0gPyB0aGlzLnVwZGF0ZUNoYXJ0KCkgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNoYXJ0KCkge1xuICAgIGNvbnN0IGxhYmVsczogc3RyaW5nW10gPSBbdGhpcy5zZWxlY3RlZFRlcm0/Lm5hbWUgPz8gJyddO1xuICAgIGNvbnN0IHRlcm1JZCA9IHRoaXMuc2VsZWN0ZWRUZXJtWydAaWQnXTtcbiAgICBjb25zdCB7IHZhbHVlcyB9ID0gdGhpcy5lbWlzc2lvblBlckN5Y2xlW3Rlcm1JZF07XG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmN5Y2xlc1xuICAgICAgLm1hcCgoY3ljbGUsIGluZGV4KSA9PiBpc1NlbGVjdGVkKHRoaXMuc2VsZWN0ZWQsIGN5Y2xlKSA/IGN5Y2xlRGF0YXNldCh2YWx1ZXMsIHRlcm1JZCwgY3ljbGUsIGluZGV4KSA6IG51bGwpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRSZWY/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHMsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgeEF4ZXM6IFt7XG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIHlBeGVzOiBbe1xuICAgICAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcbiAgICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInAtM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIXRlcm1zPy5sZW5ndGhcIj5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLWhvcml6b250YWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInNlbGVjdGVkVGVybVwiPlxuICAgICAgICA8c3Bhbj5TZWxlY3QgYSBjb2x1bW48L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLXNtYWxsXCI+XG4gICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInVwZGF0ZUNoYXJ0KClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGVybVwiIGlkPVwic2VsZWN0ZWRUZXJtXCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0ZXJtIG9mIHRlcm1zXCIgW25nVmFsdWVdPVwidGVybVwiPnt7dGVybS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm10LTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gICAgICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXVELE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBc0MsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBRTdELE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBa0IsRUFBRSxDQUFlLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFakgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFtQixFQUFFLE1BQXFDLEVBQUUsRUFBRSxXQUNoRixPQUFBLENBQUMsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQSxFQUFBLENBQUM7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxL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QjsrR0FBN0IsNkJBQTZCLDZPQ2pDMUMsOHVCQXdCQTs0RkRTYSw2QkFBNkI7a0JBTHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsV0FBVyxFQUFFLHlDQUF5QztvQkFDdEQsU0FBUyxFQUFFLENBQUMseUNBQXlDLENBQUM7aUJBQ3ZEOzhCQUdTLFFBQVE7c0JBRGYsU0FBUzt1QkFBQyxPQUFPO2dCQUtWLE1BQU07c0JBRGIsS0FBSztnQkFHRSxRQUFRO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW1pc3Npb24sIElDeWNsZUpTT05MRCwgSVRlcm1KU09OTEQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IHByb3BlcnR5VmFsdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzL2Rpc3QvdGVybSc7XG5cbmltcG9ydCB7IGdyb3VwTm9kZXNCeVRlcm0sIElHcm91cGVkTm9kZXMsIElHcm91cGVkTm9kZXNWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBpdGVtQ29sb3IsIGRlZmF1bHRMYWJlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5cbmNvbnN0IGlzU2VsZWN0ZWQgPSAoc2VsZWN0ZWQ6IHN0cmluZ1tdLCB2OiBJQ3ljbGVKU09OTEQpID0+IHNlbGVjdGVkLmxlbmd0aCA9PT0gMCB8fCBzZWxlY3RlZC5pbmNsdWRlcyh2WydAaWQnXSk7XG5cbmNvbnN0IGN5Y2xlVmFsdWUgPSAoY3ljbGU6IElDeWNsZUpTT05MRCwgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPEVtaXNzaW9uPikgPT5cbiAgKHZhbHVlc1tjeWNsZVsnQGlkJ11dPy5ub2Rlc1swXSB8fCB7IHZhbHVlOiBbMF0gfSkudmFsdWU7XG5cbmNvbnN0IGN5Y2xlTmFtZSA9IChjeWNsZTogSUN5Y2xlSlNPTkxELCBpbmRleDogbnVtYmVyKSA9PiBgJHtpbmRleCArIDF9LiAke2RlZmF1bHRMYWJlbChjeWNsZSl9YDtcblxuY29uc3QgY3ljbGVEYXRhc2V0ID0gKHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxFbWlzc2lvbj4sIHRlcm1JZDogc3RyaW5nLCBjeWNsZTogSUN5Y2xlSlNPTkxELCBpbmRleDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGxhYmVsID0gY3ljbGVOYW1lKGN5Y2xlLCBpbmRleCk7XG4gIGNvbnN0IGNvbG9yID0gaXRlbUNvbG9yKGluZGV4KTtcbiAgY29uc3QgZGF0YSA9IFtwcm9wZXJ0eVZhbHVlKGN5Y2xlVmFsdWUoY3ljbGUsIHZhbHVlcykhLCB0ZXJtSWQpXTtcbiAgcmV0dXJuIHtcbiAgICBsYWJlbCxcbiAgICBheGlzOiAneScsXG4gICAgZGF0YSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLFxuICAgIGJvcmRlckNvbG9yOiBjb2xvclxuICB9O1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtZW1pc3Npb25zLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN5Y2xlc0VtaXNzaW9uc0NoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnY2hhcnQnKVxuICBwcml2YXRlIGNoYXJ0UmVmPzogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBjaGFydDogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwcml2YXRlIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHB1YmxpYyBlbWlzc2lvblBlckN5Y2xlOiBJR3JvdXBlZE5vZGVzPEVtaXNzaW9uPiA9IHt9O1xuICBwdWJsaWMgdGVybXM6IElUZXJtSlNPTkxEW10gPSBbXTtcbiAgcHVibGljIHNlbGVjdGVkVGVybT86IElUZXJtSlNPTkxEO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdjeWNsZXMnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXMuY3ljbGVzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gICAgfVxuICAgIGlmICgnc2VsZWN0ZWQnIGluIGNoYW5nZXMgJiYgIWNoYW5nZXMuc2VsZWN0ZWQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgY29uc3QgY3ljbGVzID0gdGhpcy5jeWNsZXMuZmlsdGVyKHYgPT4gaXNTZWxlY3RlZCh0aGlzLnNlbGVjdGVkLCB2KSk7XG4gICAgdGhpcy5lbWlzc2lvblBlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQsIEVtaXNzaW9uPihjeWNsZXMsICdlbWlzc2lvbnMnKTtcbiAgICB0aGlzLnRlcm1zID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVtaXNzaW9uUGVyQ3ljbGUpXG4gICAgICAuZmlsdGVyKCh7IHZhbHVlcyB9KSA9PiBPYmplY3QudmFsdWVzKHZhbHVlcykuc29tZSgoeyBub2RlczogW3sgdmFsdWUgfV0gfSkgPT4gcHJvcGVydHlWYWx1ZSh2YWx1ZSEpID49IDApKVxuICAgICAgLm1hcCgoeyB0ZXJtIH0pID0+IHRlcm0pO1xuICAgIHRoaXMuc2VsZWN0ZWRUZXJtID0gdGhpcy50ZXJtcy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkVGVybSEpID8gdGhpcy5zZWxlY3RlZFRlcm0gOiB0aGlzLnRlcm1zWzBdO1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGVybSA/IHRoaXMudXBkYXRlQ2hhcnQoKSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ2hhcnQoKSB7XG4gICAgY29uc3QgbGFiZWxzOiBzdHJpbmdbXSA9IFt0aGlzLnNlbGVjdGVkVGVybT8ubmFtZSA/PyAnJ107XG4gICAgY29uc3QgdGVybUlkID0gdGhpcy5zZWxlY3RlZFRlcm1bJ0BpZCddO1xuICAgIGNvbnN0IHsgdmFsdWVzIH0gPSB0aGlzLmVtaXNzaW9uUGVyQ3ljbGVbdGVybUlkXTtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY3ljbGVzXG4gICAgICAubWFwKChjeWNsZSwgaW5kZXgpID0+IGlzU2VsZWN0ZWQodGhpcy5zZWxlY3RlZCwgY3ljbGUpID8gY3ljbGVEYXRhc2V0KHZhbHVlcywgdGVybUlkLCBjeWNsZSwgaW5kZXgpIDogbnVsbClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gICAgfVxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydFJlZj8ubmF0aXZlRWxlbWVudCwge1xuICAgICAgdHlwZTogJ2JhcicsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVscyxcbiAgICAgICAgZGF0YXNldHNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBzY2FsZXM6IHtcbiAgICAgICAgICB4QXhlczogW3tcbiAgICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgICAgfV0sXG4gICAgICAgICAgeUF4ZXM6IFt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhdGVybXM/Lmxlbmd0aFwiPlxuICA8ZGl2IGNsYXNzPVwiZmllbGQgaXMtaG9yaXpvbnRhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1sYWJlbCBpcy1ub3JtYWxcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgZm9yPVwic2VsZWN0ZWRUZXJtXCI+XG4gICAgICAgIDxzcGFuPlNlbGVjdCBhIGNvbHVtbjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtc21hbGxcIj5cbiAgICAgICAgICA8c2VsZWN0IChjaGFuZ2UpPVwidXBkYXRlQ2hhcnQoKVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXJtXCIgaWQ9XCJzZWxlY3RlZFRlcm1cIj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRlcm0gb2YgdGVybXNcIiBbbmdWYWx1ZV09XCJ0ZXJtXCI+e3t0ZXJtLm5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibXQtMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cbiAgICAgIDxjYW52YXMgI2NoYXJ0PjwvY2FudmFzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,7 +1,8 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { DataState } from '@hestia-earth/api';
3
3
  import { propertyValue } from '@hestia-earth/utils/dist/term';
4
- import { baseUrl, groupNodesByTerm, grouppedKeys, defaultLabel } from '../../common/utils';
4
+ import { groupNodesByTerm, grouppedKeys } from '../../common/node-utils';
5
+ import { baseUrl, defaultLabel } from '../../common/utils';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@fortawesome/angular-fontawesome";
7
8
  import * as i2 from "../../node/node-link/node-link.component";
@@ -61,7 +62,7 @@ export class CyclesPracticesComponent {
61
62
  }
62
63
  }
63
64
  CyclesPracticesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesPracticesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
- CyclesPracticesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesPracticesComponent, selector: "he-cycles-practices", inputs: { originalValues: "originalValues", cycles: "cycles", selected: "selected", dataState: "dataState" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"practices.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{practices.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let practice of practices\"\n [attr.title]=\"practice.value.term.name\"\n >\n <he-node-link [node]=\"practice.value.term\">\n <span>{{practice.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let practice of practices\"\n [attr.title]=\"practice.value.term.units\"\n >{{practice.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr *ngIf=\"isSelected(cycle)\">\n <td class=\"width-auto\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{defaultLabel(cycle)}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let practice of practices\">\n <span *ngIf=\"practice.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: practice.value.values[cycle['@id']], cycle: cycle, key: 'practices' })\"\n >\n <span pointer>{{propertyValue(practice.value.values[cycle['@id']].value, practice.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"practice.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\" [showDeleted]=\"true\"></he-blank-node-state-notice>\n </div>\n\n <he-cycles-practices-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [cycle]=\"cycles[0]\"\n [originalValues]=\"originalValues[0]?.practices\"\n [recalculatedValues]=\"cycles[0]?.practices\"\n ></he-cycles-practices-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-practices.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.practices.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted", "showUnchanged"] }, { type: i6.CyclesPracticesLogsComponent, selector: "he-cycles-practices-logs", inputs: ["cycle", "originalValues", "recalculatedValues"] }, { type: i7.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i8.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i11.EllipsisPipe, "default": i12.DefaultPipe, "precision": i13.PrecisionPipe } });
65
+ CyclesPracticesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesPracticesComponent, selector: "he-cycles-practices", inputs: { originalValues: "originalValues", cycles: "cycles", selected: "selected", dataState: "dataState" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"practices.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{practices.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let practice of practices\"\n [attr.title]=\"practice.value.term.name\"\n >\n <he-node-link [node]=\"practice.value.term\">\n <span>{{practice.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let practice of practices\"\n [attr.title]=\"practice.value.term.units\"\n >{{practice.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr *ngIf=\"isSelected(cycle)\">\n <td class=\"width-auto\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{defaultLabel(cycle)}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycles[0]\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let practice of practices\">\n <span *ngIf=\"practice.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: practice.value.values[cycle['@id']], cycle: cycle, key: 'practices' })\"\n >\n <span pointer>{{propertyValue(practice.value.values[cycle['@id']].value, practice.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"practice.value.values[cycle['@id']].node\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\" [showDeleted]=\"true\"></he-blank-node-state-notice>\n </div>\n\n <he-cycles-practices-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [cycle]=\"cycles[0]\"\n [originalValues]=\"originalValues[0]?.practices\"\n [recalculatedValues]=\"cycles[0]?.practices\"\n ></he-cycles-practices-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-practices.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.practices.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted", "showUnchanged"] }, { type: i6.CyclesPracticesLogsComponent, selector: "he-cycles-practices-logs", inputs: ["cycle", "originalValues", "recalculatedValues"] }, { type: i7.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i8.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i11.EllipsisPipe, "default": i12.DefaultPipe, "precision": i13.PrecisionPipe } });
65
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesPracticesComponent, decorators: [{
66
67
  type: Component,
67
68
  args: [{
@@ -78,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
78
79
  }], dataState: [{
79
80
  type: Input
80
81
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1wcmFjdGljZXMvY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1wcmFjdGljZXMvY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFnQixZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUZ6RyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUkxQyxJQUFLLElBR0o7QUFIRCxXQUFLLElBQUk7SUFDUCx1QkFBZSxDQUFBO0lBQ2YscUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFISSxJQUFJLEtBQUosSUFBSSxRQUdSO0FBT0QsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU9TLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztRQUVwQyxXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUU1QixhQUFRLEdBQWEsRUFBRSxDQUFDO1FBSXhCLFlBQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTFCLGNBQVMsR0FBNkIsRUFBRSxDQUFDO0tBK0JqRDtJQTdCQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYyxFQUFFLElBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUF5QixJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEgsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7c0hBL0NVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDhMQ2xCckMsKytKQXdIQTs0RkR0R2Esd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIFByYWN0aWNlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMvZGlzdC90ZXJtJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBiYXNlVXJsLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cywgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAndGFibGUnLFxuICBsb2dzID0gJ2xvZ3MnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1wcmFjdGljZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1wcmFjdGljZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNQcmFjdGljZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3JpZ2luYWxWYWx1ZXM6IElDeWNsZUpTT05MRFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjeWNsZXM6IElDeWNsZUpTT05MRFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcblxuICBwdWJsaWMgYmFzZVVybCA9IGJhc2VVcmwoKTtcbiAgcHVibGljIHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eVZhbHVlO1xuICBwdWJsaWMgZGVmYXVsdExhYmVsID0gZGVmYXVsdExhYmVsO1xuICBwdWJsaWMgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG4gIHB1YmxpYyBWaWV3ID0gVmlldztcbiAgcHVibGljIHNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG5cbiAgcHVibGljIHByYWN0aWNlczogSUdyb3VwZWRLZXlzPFByYWN0aWNlPltdID0gW107XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgICB9XG4gICAgaWYgKCdkYXRhU3RhdGUnIGluIGNoYW5nZXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3JpZ2luYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN0YXRlID09PSBEYXRhU3RhdGUub3JpZ2luYWw7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBwcmFjdGljZXNQZXJDeWNsZSA9IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBQcmFjdGljZT4odGhpcy5jeWNsZXMsICdwcmFjdGljZXMnLCB0aGlzLm9yaWdpbmFsVmFsdWVzKTtcbiAgICB0aGlzLnByYWN0aWNlcyA9IG9yZGVyQnkoZ3JvdXBwZWRLZXlzKHByYWN0aWNlc1BlckN5Y2xlKSwgWydrZXknXSwgWydhc2MnXSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wb3Zlcihwb3BvdmVyOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIHJldHVybiBwb3BvdmVyLmlzT3BlbigpID8gcG9wb3Zlci5jbG9zZSgpIDogcG9wb3Zlci5vcGVuKGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoY3ljbGU6IElDeWNsZUpTT05MRCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCB8fCB0aGlzLnNlbGVjdGVkLmluY2x1ZGVzKGN5Y2xlWydAaWQnXSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJwcmFjdGljZXMubGVuZ3RoOyBlbHNlIGVtcHR5VGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtdmFyaWFibGUgaXMtMiBtLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLWhpZGRlbi1tb2JpbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcudGFibGVcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJsaXN0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+VGFibGUgdmlldzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCIgKm5nSWY9XCIhaXNPcmlnaW5hbCAmJiBjeWNsZXMubGVuZ3RoID09PSAxXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3NcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5sb2dzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImNhbGN1bGF0b3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5SZWNhbGN1bGF0aW9ucyBsb2dzPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcudGFibGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGFzLXRleHQtcmlnaHQgbWItMlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsXCIgKGNsaWNrKT1cInNob3dEb3dubG9hZCA9IHRydWVcIj5cbiAgICAgICAgPGZhLWljb24gaWNvbj1cImRvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5Eb3dubG9hZCAoQ1NWKTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBkYXRhLXRhYmxlLWNvbnRhaW5lciBtYi0xXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBpcy1uYXJyb3cgZGF0YS10YWJsZSBoYXMtY2hpbGRyZW4te3twcmFjdGljZXMubGVuZ3RofX1cIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByYWN0aWNlIG9mIHByYWN0aWNlc1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInByYWN0aWNlLnZhbHVlLnRlcm0ubmFtZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwicHJhY3RpY2UudmFsdWUudGVybVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cHJhY3RpY2UudmFsdWUudGVybS5uYW1lIHwgZWxsaXBzaXM6MzB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0b1wiPjwvdGg+XG4gICAgICAgICAgICA8dGg+XG4gICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhc2VVcmwgKyAnL3NjaGVtYS9DeWNsZSNmdW5jdGlvbmFsVW5pdCdcIiB0YXJnZXQ9XCJfYmxhbmtcIj5GdW5jdGlvbmFsIHVuaXQ8L2E+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBwcmFjdGljZSBvZiBwcmFjdGljZXNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcmFjdGljZS52YWx1ZS50ZXJtLnVuaXRzXCJcbiAgICAgICAgICAgID57e3ByYWN0aWNlLnZhbHVlLnRlcm0udW5pdHN9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN5Y2xlIG9mIGN5Y2xlczsgdHJhY2tCeTogdHJhY2tCeUlkOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJpc1NlbGVjdGVkKGN5Y2xlKVwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aWR0aC1hdXRvXCIgW2F0dHIudGl0bGVdPVwiZGVmYXVsdExhYmVsKGN5Y2xlKVwiPlxuICAgICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtbm93cmFwIGhhcy10ZXh0LWVsbGlwc2lzXCI+e3tpICsgMX19LiB7e2RlZmF1bHRMYWJlbChjeWNsZSl9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxoZS1jeWNsZXMtZnVuY3Rpb25hbC11bml0LW1lYXN1cmUgW2N5Y2xlXT1cImN5Y2xlc1swXVwiPjwvaGUtY3ljbGVzLWZ1bmN0aW9uYWwtdW5pdC1tZWFzdXJlPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgcHJhY3RpY2Ugb2YgcHJhY3RpY2VzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmFjdGljZS52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXTsgZWxzZSBlbXB0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJpZ2dlci1wb3BvdmVyXCJcbiAgICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiICNwPVwibmdiUG9wb3ZlclwiIHBsYWNlbWVudD1cImxlZnRcIiBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQb3BvdmVyKHAsIHsgZGF0YTogcHJhY3RpY2UudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0sIGN5Y2xlOiBjeWNsZSwga2V5OiAncHJhY3RpY2VzJyB9KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gcG9pbnRlcj57e3Byb3BlcnR5VmFsdWUocHJhY3RpY2UudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0udmFsdWUsIHByYWN0aWNlLnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgICAgICAgICAgIFtub2RlXT1cInByYWN0aWNlLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLm5vZGVzWzBdXCJcbiAgICAgICAgICAgICAgICAgICAga2V5PVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZSBbZGF0YVN0YXRlXT1cImRhdGFTdGF0ZVwiIFtzaG93RGVsZXRlZF09XCJ0cnVlXCI+PC9oZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZT5cbiAgPC9kaXY+XG5cbiAgPGhlLWN5Y2xlcy1wcmFjdGljZXMtbG9ncyAqbmdJZj1cInNlbGVjdGVkVmlldyA9PT0gVmlldy5sb2dzICYmICFpc09yaWdpbmFsXCJcbiAgICBbY3ljbGVdPVwiY3ljbGVzWzBdXCJcbiAgICBbb3JpZ2luYWxWYWx1ZXNdPVwib3JpZ2luYWxWYWx1ZXNbMF0/LnByYWN0aWNlc1wiXG4gICAgW3JlY2FsY3VsYXRlZFZhbHVlc109XCJjeWNsZXNbMF0/LnByYWN0aWNlc1wiXG4gID48L2hlLWN5Y2xlcy1wcmFjdGljZXMtbG9ncz5cbjwvbmctY29udGFpbmVyPlxuXG48aGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0gKm5nSWY9XCJzaG93RG93bmxvYWRcIlxuICBbbm9kZXNdPVwiY3ljbGVzXCIgZmlsZW5hbWU9XCJjeWNsZS1wcmFjdGljZXMuY3N2XCIgW2lzVXBsb2FkXT1cImZhbHNlXCJcbiAgW2hlYWRlcktleXNdPVwiWydjeWNsZS5pZCcsICdjeWNsZS5AaWQnLCAnY3ljbGUucHJhY3RpY2VzLiddXCJcbiAgKGNsb3NlZCk9XCJzaG93RG93bmxvYWQgPSBmYWxzZVwiXG4+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYmxvY2tcIj5cbiAgICA8c3Bhbj5ObyBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD48Yj57e25vZGUubmFtZX19PC9iPjwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIiBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiIFtkYXRhS2V5XT1cImtleVwiXG4gID48L2hlLW5vZGUtdmFsdWUtZGV0YWlscz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1wcmFjdGljZXMvY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1wcmFjdGljZXMvY3ljbGVzLXByYWN0aWNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUgzRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUsxQyxJQUFLLElBR0o7QUFIRCxXQUFLLElBQUk7SUFDUCx1QkFBZSxDQUFBO0lBQ2YscUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFISSxJQUFJLEtBQUosSUFBSSxRQUdSO0FBT0QsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU9TLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztRQUVwQyxXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUU1QixhQUFRLEdBQWEsRUFBRSxDQUFDO1FBSXhCLFlBQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTFCLGNBQVMsR0FBNkIsRUFBRSxDQUFDO0tBK0JqRDtJQTdCQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYyxFQUFFLElBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUF5QixJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEgsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7c0hBL0NVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDhMQ25CckMsMitKQXdIQTs0RkRyR2Esd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIFByYWN0aWNlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMvZGlzdC90ZXJtJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cyB9IGZyb20gJy4uLy4uL2NvbW1vbi9ub2RlLXV0aWxzJztcbmltcG9ydCB7IGJhc2VVcmwsIGRlZmF1bHRMYWJlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5cbmVudW0gVmlldyB7XG4gIHRhYmxlID0gJ3RhYmxlJyxcbiAgbG9ncyA9ICdsb2dzJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1jeWNsZXMtcHJhY3RpY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1wcmFjdGljZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtcHJhY3RpY2VzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzUHJhY3RpY2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIG9yaWdpbmFsVmFsdWVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhU3RhdGU/OiBEYXRhU3RhdGU7XG5cbiAgcHVibGljIGJhc2VVcmwgPSBiYXNlVXJsKCk7XG4gIHB1YmxpYyBwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZTtcbiAgcHVibGljIGRlZmF1bHRMYWJlbCA9IGRlZmF1bHRMYWJlbDtcbiAgcHVibGljIHNob3dEb3dubG9hZCA9IGZhbHNlO1xuICBwdWJsaWMgVmlldyA9IFZpZXc7XG4gIHB1YmxpYyBzZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlO1xuXG4gIHB1YmxpYyBwcmFjdGljZXM6IElHcm91cGVkS2V5czxQcmFjdGljZT5bXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2N5Y2xlcycgaW4gY2hhbmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIGlmICgnZGF0YVN0YXRlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJZChfaW5kZXg6IG51bWJlciwgaXRlbTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIGl0ZW1bJ0BpZCddO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09yaWdpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZSA9PT0gRGF0YVN0YXRlLm9yaWdpbmFsO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgY29uc3QgcHJhY3RpY2VzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgUHJhY3RpY2U+KHRoaXMuY3ljbGVzLCAncHJhY3RpY2VzJywgdGhpcy5vcmlnaW5hbFZhbHVlcyk7XG4gICAgdGhpcy5wcmFjdGljZXMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhwcmFjdGljZXNQZXJDeWNsZSksIFsna2V5J10sIFsnYXNjJ10pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBvcG92ZXIocG9wb3ZlcjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICByZXR1cm4gcG9wb3Zlci5pc09wZW4oKSA/IHBvcG92ZXIuY2xvc2UoKSA6IHBvcG92ZXIub3Blbihjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhjeWNsZVsnQGlkJ10pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicHJhY3RpY2VzLmxlbmd0aDsgZWxzZSBlbXB0eVRhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLXZhcmlhYmxlIGlzLTIgbS0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1oaWRkZW4tbW9iaWxlXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LnRhYmxlXCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldyA9IFZpZXcudGFibGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwibGlzdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlRhYmxlIHZpZXc8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiICpuZ0lmPVwiIWlzT3JpZ2luYWwgJiYgY3ljbGVzLmxlbmd0aCA9PT0gMVwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtc21hbGxcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInNlbGVjdGVkVmlldyA9PT0gVmlldy5sb2dzXCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldyA9IFZpZXcubG9nc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJjYWxjdWxhdG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+UmVjYWxjdWxhdGlvbnMgbG9nczwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInB4LTMgcGItM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwic2VsZWN0ZWRWaWV3ICE9PSBWaWV3LnRhYmxlXCI+XG4gICAgPGRpdiBjbGFzcz1cImhhcy10ZXh0LXJpZ2h0IG1iLTJcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtZGFyayBpcy1vdXRsaW5lZCBpcy1zbWFsbFwiIChjbGljayk9XCJzaG93RG93bmxvYWQgPSB0cnVlXCI+XG4gICAgICAgIDxmYS1pY29uIGljb249XCJkb3dubG9hZFwiPjwvZmEtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwbC0yXCI+RG93bmxvYWQgKENTVik8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXIgZGF0YS10YWJsZS1jb250YWluZXIgbWItMVwiPlxuICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgaXMtbmFycm93IGRhdGEtdGFibGUgaGFzLWNoaWxkcmVuLXt7cHJhY3RpY2VzLmxlbmd0aH19XCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBwcmFjdGljZSBvZiBwcmFjdGljZXNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcmFjdGljZS52YWx1ZS50ZXJtLm5hbWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aGUtbm9kZS1saW5rIFtub2RlXT1cInByYWN0aWNlLnZhbHVlLnRlcm1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57e3ByYWN0aWNlLnZhbHVlLnRlcm0ubmFtZSB8IGVsbGlwc2lzOjMwfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICA8YSBbaHJlZl09XCJiYXNlVXJsICsgJy9zY2hlbWEvQ3ljbGUjZnVuY3Rpb25hbFVuaXQnXCIgdGFyZ2V0PVwiX2JsYW5rXCI+RnVuY3Rpb25hbCB1bml0PC9hPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgcHJhY3RpY2Ugb2YgcHJhY3RpY2VzXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwicHJhY3RpY2UudmFsdWUudGVybS51bml0c1wiXG4gICAgICAgICAgICA+e3twcmFjdGljZS52YWx1ZS50ZXJtLnVuaXRzfX08L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjeWNsZSBvZiBjeWNsZXM7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXNTZWxlY3RlZChjeWNsZSlcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwid2lkdGgtYXV0b1wiIFthdHRyLnRpdGxlXT1cImRlZmF1bHRMYWJlbChjeWNsZSlcIj5cbiAgICAgICAgICAgICAgICA8aGUtbm9kZS1saW5rIFtub2RlXT1cImN5Y2xlXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLW5vd3JhcCBoYXMtdGV4dC1lbGxpcHNpc1wiPnt7aSArIDF9fS4ge3tkZWZhdWx0TGFiZWwoY3ljbGUpfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICA8aGUtY3ljbGVzLWZ1bmN0aW9uYWwtdW5pdC1tZWFzdXJlIFtjeWNsZV09XCJjeWNsZXNbMF1cIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaXMtbm93cmFwXCIgKm5nRm9yPVwibGV0IHByYWN0aWNlIG9mIHByYWN0aWNlc1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJhY3RpY2UudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICBbbmdiUG9wb3Zlcl09XCJkZXRhaWxzXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IHByYWN0aWNlLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ3ByYWN0aWNlcycgfSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIHBvaW50ZXI+e3twcm9wZXJ0eVZhbHVlKHByYWN0aWNlLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBwcmFjdGljZS52YWx1ZS50ZXJtWydAaWQnXSkgfCBwcmVjaXNpb246MyB8IGRlZmF1bHQ6Jy0nfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJwcmFjdGljZS52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2RlXCJcbiAgICAgICAgICAgICAgICAgICAga2V5PVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZSBbZGF0YVN0YXRlXT1cImRhdGFTdGF0ZVwiIFtzaG93RGVsZXRlZF09XCJ0cnVlXCI+PC9oZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZT5cbiAgPC9kaXY+XG5cbiAgPGhlLWN5Y2xlcy1wcmFjdGljZXMtbG9ncyAqbmdJZj1cInNlbGVjdGVkVmlldyA9PT0gVmlldy5sb2dzICYmICFpc09yaWdpbmFsXCJcbiAgICBbY3ljbGVdPVwiY3ljbGVzWzBdXCJcbiAgICBbb3JpZ2luYWxWYWx1ZXNdPVwib3JpZ2luYWxWYWx1ZXNbMF0/LnByYWN0aWNlc1wiXG4gICAgW3JlY2FsY3VsYXRlZFZhbHVlc109XCJjeWNsZXNbMF0/LnByYWN0aWNlc1wiXG4gID48L2hlLWN5Y2xlcy1wcmFjdGljZXMtbG9ncz5cbjwvbmctY29udGFpbmVyPlxuXG48aGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm0gKm5nSWY9XCJzaG93RG93bmxvYWRcIlxuICBbbm9kZXNdPVwiY3ljbGVzXCIgZmlsZW5hbWU9XCJjeWNsZS1wcmFjdGljZXMuY3N2XCIgW2lzVXBsb2FkXT1cImZhbHNlXCJcbiAgW2hlYWRlcktleXNdPVwiWydjeWNsZS5pZCcsICdjeWNsZS5AaWQnLCAnY3ljbGUucHJhY3RpY2VzLiddXCJcbiAgKGNsb3NlZCk9XCJzaG93RG93bmxvYWQgPSBmYWxzZVwiXG4+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYmxvY2tcIj5cbiAgICA8c3Bhbj5ObyBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD48Yj57e25vZGUubmFtZX19PC9iPjwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIiBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiIFtkYXRhS2V5XT1cImtleVwiXG4gID48L2hlLW5vZGUtdmFsdWUtZGV0YWlscz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,7 +1,8 @@
1
1
  import { Component, Input, ViewChild } from '@angular/core';
2
2
  import { Chart } from 'chart.js';
3
3
  import { propertyValue } from '@hestia-earth/utils/dist/term';
4
- import { ellipsis, groupNodesByTerm, itemColor, defaultLabel } from '../../common/utils';
4
+ import { groupNodesByTerm } from '../../common/node-utils';
5
+ import { ellipsis, itemColor, defaultLabel } from '../../common/utils';
5
6
  import * as i0 from "@angular/core";
6
7
  export class CyclesResultComponent {
7
8
  constructor() {
@@ -103,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
103
104
  }], selected: [{
104
105
  type: Input
105
106
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUIsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPekYsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQVVVLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRTVCLGFBQVEsR0FBYSxFQUFFLENBQUM7S0FrRmpDO0lBaEZDLGVBQWU7UUFDYixLQUFLLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUNqRCxLQUFLLEVBQUU7Z0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNwQjtRQUNELElBQUks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STtpQkFDZDtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQU0sQ0FBUTtxQkFDM0U7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxDQUFDOzRCQUNOLEtBQUssRUFBRTtnQ0FDTCxHQUFHLEVBQUUsQ0FBQzs2QkFDUDt5QkFDRixDQUFDO29CQUNGLEtBQUssRUFBRSxDQUFDOzRCQUNOLFFBQVEsRUFBRSxNQUFNOzRCQUNoQixVQUFVLEVBQUU7Z0NBQ1YsT0FBTyxFQUFFLElBQUk7Z0NBQ2IsV0FBVyxFQUFFLE9BQU87NkJBQ3JCO3lCQUNGLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQXhGVSxxQkFBcUI7dUdBQXJCLHFCQUFxQixvT0NabEMsZ0ZBR0E7NEZEU2EscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs4QkFHUyxRQUFRO3NCQURmLFNBQVM7dUJBQUMsT0FBTztnQkFJVixNQUFNO3NCQURiLEtBQUs7Z0JBR0UsUUFBUTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCwgUHJvZHVjdCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMvZGlzdC90ZXJtJztcblxuaW1wb3J0IHsgZWxsaXBzaXMsIGdyb3VwTm9kZXNCeVRlcm0sIGl0ZW1Db2xvciwgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLXJlc3VsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN5Y2xlc1Jlc3VsdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0JylcbiAgcHJpdmF0ZSBjaGFydFJlZj86IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgY2hhcnQ6IGFueTtcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBjeWNsZXM6IElDeWNsZUpTT05MRFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gW107XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIENoYXJ0LnNjYWxlU2VydmljZS51cGRhdGVTY2FsZURlZmF1bHRzKCdjYXRlZ29yeScsIHtcbiAgICAgIHRpY2tzOiB7XG4gICAgICAgIGNhbGxiYWNrOiB0aWNrID0+IGVsbGlwc2lzKGAke3RpY2t9YCwgMjUpXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnY3ljbGVzJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzLmN5Y2xlcy5maXJzdENoYW5nZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAoJ3NlbGVjdGVkJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzLnNlbGVjdGVkLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGVkKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhjeWNsZVsnQGlkJ10pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuY3ljbGVzXG4gICAgICAubWFwKChjeWNsZSwgaW5kZXgpID0+ICh7IGN5Y2xlLCBpbmRleCB9KSlcbiAgICAgIC5maWx0ZXIoKHsgY3ljbGUgfSkgPT4gdGhpcy5pc1NlbGVjdGVkKGN5Y2xlKSlcbiAgICAgIC5tYXAoKHsgY3ljbGUsIGluZGV4IH0pID0+IGAke2luZGV4ICsgMX0uICR7ZGVmYXVsdExhYmVsKGN5Y2xlKX1gKTtcbiAgICBjb25zdCBjeWNsZXMgPSB0aGlzLmN5Y2xlcy5maWx0ZXIodiA9PiB0aGlzLmlzU2VsZWN0ZWQodikpO1xuICAgIGNvbnN0IHByb2R1Y3RzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgUHJvZHVjdD4oY3ljbGVzLCAncHJvZHVjdHMnKTtcbiAgICBjb25zdCBkYXRhc2V0cyA9IE9iamVjdC52YWx1ZXMocHJvZHVjdHNQZXJDeWNsZSkubWFwKCh7IHRlcm06IHsgbmFtZSwgdW5pdHMsICdAaWQnOiB0ZXJtSWQgfSwgdmFsdWVzIH0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjb2xvciA9IGl0ZW1Db2xvcihpbmRleCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogYCR7bmFtZX0ke3VuaXRzID8gYCAoaW4gJHt1bml0c30pYCA6ICcnfWAsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcixcbiAgICAgICAgYmFyUGVyY2VudGFnZTogMC41LFxuICAgICAgICBkYXRhOiBjeWNsZXMubWFwKCh7ICdAaWQnOiBpZCB9KSA9PiB2YWx1ZXNbaWRdID8gcHJvcGVydHlWYWx1ZSh2YWx1ZXNbaWRdLnZhbHVlLCB0ZXJtSWQpIDogMClcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVDaGFydChkYXRhc2V0cyBhcyBhbnksIGxhYmVscyBhcyBhbnkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDaGFydChkYXRhc2V0cyA9IFtdLCBsYWJlbHMgPSBbXSkge1xuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmNoYXJ0UmVmPy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB0eXBlOiAnaG9yaXpvbnRhbEJhcicsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVscyxcbiAgICAgICAgZGF0YXNldHNcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHRvb2x0aXBzOiB7XG4gICAgICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgICAgICB0aXRsZTogKHRvb2x0aXBJdGVtcywgZGF0YSkgPT4gZGF0YS5sYWJlbHMhW3Rvb2x0aXBJdGVtc1swXS5pbmRleCFdIGFzIGFueVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgeEF4ZXM6IFt7XG4gICAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgICBtaW46IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XSxcbiAgICAgICAgICB5QXhlczogW3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiAnQ3ljbGUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gIDxjYW52YXMgI2NoYXJ0Pnt7Y2hhcnR9fTwvY2FudmFzPlxuPC9kaXY+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUIsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQVVVLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRTVCLGFBQVEsR0FBYSxFQUFFLENBQUM7S0FrRmpDO0lBaEZDLGVBQWU7UUFDYixLQUFLLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRTtZQUNqRCxLQUFLLEVBQUU7Z0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FB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QzFCLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsSUFBSTtpQkFDZDtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQU0sQ0FBUTtxQkFDM0U7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxDQUFDOzRCQUNOLEtBQUssRUFBRTtnQ0FDTCxHQUFHLEVBQUUsQ0FBQzs2QkFDUDt5QkFDRixDQUFDO29CQUNGLEtBQUssRUFBRSxDQUFDOzRCQUNOLFFBQVEsRUFBRSxNQUFNOzRCQUNoQixVQUFVLEVBQUU7Z0NBQ1YsT0FBTyxFQUFFLElBQUk7Z0NBQ2IsV0FBVyxFQUFFLE9BQU87NkJBQ3JCO3lCQUNGLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQXhGVSxxQkFBcUI7dUdBQXJCLHFCQUFxQixvT0NibEMsZ0ZBR0E7NEZEVWEscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs4QkFHUyxRQUFRO3NCQURmLFNBQVM7dUJBQUMsT0FBTztnQkFJVixNQUFNO3NCQURiLEtBQUs7Z0JBR0UsUUFBUTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCwgUHJvZHVjdCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMvZGlzdC90ZXJtJztcblxuaW1wb3J0IHsgZ3JvdXBOb2Rlc0J5VGVybSB9IGZyb20gJy4uLy4uL2NvbW1vbi9ub2RlLXV0aWxzJztcbmltcG9ydCB7IGVsbGlwc2lzLCBpdGVtQ29sb3IsIGRlZmF1bHRMYWJlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1yZXN1bHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdjaGFydCcpXG4gIHByaXZhdGUgY2hhcnRSZWY/OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGNoYXJ0OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwcml2YXRlIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBDaGFydC5zY2FsZVNlcnZpY2UudXBkYXRlU2NhbGVEZWZhdWx0cygnY2F0ZWdvcnknLCB7XG4gICAgICB0aWNrczoge1xuICAgICAgICBjYWxsYmFjazogdGljayA9PiBlbGxpcHNpcyhgJHt0aWNrfWAsIDI1KVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2N5Y2xlcycgaW4gY2hhbmdlcyAmJiAhY2hhbmdlcy5jeWNsZXMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmluaXQoKTtcbiAgICB9XG4gICAgaWYgKCdzZWxlY3RlZCcgaW4gY2hhbmdlcyAmJiAhY2hhbmdlcy5zZWxlY3RlZC5maXJzdENoYW5nZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNTZWxlY3RlZChjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQubGVuZ3RoID09PSAwIHx8IHRoaXMuc2VsZWN0ZWQuaW5jbHVkZXMoY3ljbGVbJ0BpZCddKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmN5Y2xlc1xuICAgICAgLm1hcCgoY3ljbGUsIGluZGV4KSA9PiAoeyBjeWNsZSwgaW5kZXggfSkpXG4gICAgICAuZmlsdGVyKCh7IGN5Y2xlIH0pID0+IHRoaXMuaXNTZWxlY3RlZChjeWNsZSkpXG4gICAgICAubWFwKCh7IGN5Y2xlLCBpbmRleCB9KSA9PiBgJHtpbmRleCArIDF9LiAke2RlZmF1bHRMYWJlbChjeWNsZSl9YCk7XG4gICAgY29uc3QgY3ljbGVzID0gdGhpcy5jeWNsZXMuZmlsdGVyKHYgPT4gdGhpcy5pc1NlbGVjdGVkKHYpKTtcbiAgICBjb25zdCBwcm9kdWN0c1BlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQsIFByb2R1Y3Q+KGN5Y2xlcywgJ3Byb2R1Y3RzJyk7XG4gICAgY29uc3QgZGF0YXNldHMgPSBPYmplY3QudmFsdWVzKHByb2R1Y3RzUGVyQ3ljbGUpLm1hcCgoeyB0ZXJtOiB7IG5hbWUsIHVuaXRzLCAnQGlkJzogdGVybUlkIH0sIHZhbHVlcyB9LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY29sb3IgPSBpdGVtQ29sb3IoaW5kZXgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWw6IGAke25hbWV9JHt1bml0cyA/IGAgKGluICR7dW5pdHN9KWAgOiAnJ31gLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLFxuICAgICAgICBib3JkZXJDb2xvcjogY29sb3IsXG4gICAgICAgIGJhclBlcmNlbnRhZ2U6IDAuNSxcbiAgICAgICAgZGF0YTogY3ljbGVzLm1hcCgoeyAnQGlkJzogaWQgfSkgPT4gdmFsdWVzW2lkXSA/IHByb3BlcnR5VmFsdWUodmFsdWVzW2lkXS52YWx1ZSwgdGVybUlkKSA6IDApXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlQ2hhcnQoZGF0YXNldHMgYXMgYW55LCBsYWJlbHMgYXMgYW55KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hhcnQoZGF0YXNldHMgPSBbXSwgbGFiZWxzID0gW10pIHtcbiAgICBpZiAodGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gICAgfVxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydFJlZj8ubmF0aXZlRWxlbWVudCwge1xuICAgICAgdHlwZTogJ2hvcml6b250YWxCYXInLFxuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHMsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwczoge1xuICAgICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgdGl0bGU6ICh0b29sdGlwSXRlbXMsIGRhdGEpID0+IGRhdGEubGFiZWxzIVt0b29sdGlwSXRlbXNbMF0uaW5kZXghXSBhcyBhbnlcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlczoge1xuICAgICAgICAgIHhBeGVzOiBbe1xuICAgICAgICAgICAgdGlja3M6IHtcbiAgICAgICAgICAgICAgbWluOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfV0sXG4gICAgICAgICAgeUF4ZXM6IFt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xuICAgICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogJ0N5Y2xlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxuICA8Y2FudmFzICNjaGFydD57e2NoYXJ0fX08L2NhbnZhcz5cbjwvZGl2PlxuIl19
@@ -45,7 +45,7 @@ export class EngineOrchestratorEditComponent {
45
45
  }
46
46
  }
47
47
  EngineOrchestratorEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EngineOrchestratorEditComponent, deps: [{ token: i1.HeEngineService }], target: i0.ɵɵFactoryTarget.Component });
48
- EngineOrchestratorEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EngineOrchestratorEditComponent, selector: "he-engine-orchestrator-edit", inputs: { config: "config", nodeType: "nodeType" }, usesOnChanges: true, ngImport: i0, template: "<p>\n <i>The configuration below is a preview of the <a [href]=\"configUrl\" target=\"_blank\">JSON configuration file</a> used for the orchestration of the Hestia's calculations.</i>\n</p>\n<p>\n <i>Note: not all models might be represented accurately.</i>\n</p>\n\n<div class=\"pl-3 model-parallel my-3\">\n <p class=\"is-size-7\"><i>Models running in parallel</i></p>\n</div>\n\n<div *ngIf=\"config\">\n <div class=\"pl-3\" *bindOnce=\"config\">\n <ng-container *ngTemplateOutlet=\"models;context:{$implicit:config.models}\"></ng-container>\n </div>\n</div>\n\n<ng-template #models let-data>\n <div *ngFor=\"let v of data\">\n <ng-container *ngTemplateOutlet=\"model;context:{$implicit:v}\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #model let-data>\n <ng-container *ngIf=\"isArray(data)\">\n <div class=\"pl-3 model-parallel\">\n <ng-container *ngTemplateOutlet=\"models;context:{$implicit:data}\"></ng-container>\n </div>\n\n <hr>\n </ng-container>\n <ng-container *ngIf=\"!isArray(data)\">\n <div class=\"card mb-2 model-serie is-size-6\">\n <div class=\"card-content p-3\">\n <span class=\"is-capitalized\">{{data.key | keyToLabel}}</span>:\n <ng-template #defaultView>\n <span>{{data.value}}</span>\n\n <p>\n <span class=\"pr-1\">Model:</span>\n <span>{{data.model | keyToLabel}}</span>\n </p>\n </ng-template>\n\n <ng-template #modelFromPathLink>\n <ng-container *ngIf=\"modelPathLink$(data) | async as link; else defaultView\">\n <ng-container *ngTemplateOutlet=\"modelPathLink;context:{model:data.model, link:link}\"></ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"modelLink$(data) | async as link; else modelFromPathLink\">\n <ng-container *ngTemplateOutlet=\"modelLink;context:{model:data.model, link:link}\"></ng-container>\n </ng-container>\n\n <div *ngIf=\"data.runStrategy\">\n <span class=\"pr-1\">Run strategy:</span>\n <ng-container *ngTemplateOutlet=\"strategiesLink;context:{strategy:data.runStrategy,type:'run'}\"></ng-container>\n\n <div class=\"pl-3 is-size-7\" *ngIf=\"data.runArgs\">\n <p><b>Run arguments:</b></p>\n <ng-container *ngTemplateOutlet=\"strategiesArgs;context:{$implicit:data.runArgs}\"></ng-container>\n </div>\n </div>\n <div *ngIf=\"data.mergeStrategy\">\n <span class=\"pr-1\">Merge strategy:</span>\n <ng-container *ngTemplateOutlet=\"strategiesLink;context:{strategy:data.mergeStrategy,type:'merge'}\"></ng-container>\n\n <div class=\"pl-3 is-size-7\" *ngIf=\"data.mergeArgs\">\n <p><b>Merge arguments:</b></p>\n <ng-container *ngTemplateOutlet=\"strategiesArgs;context:{$implicit:data.mergeArgs}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #modelLink let-model=\"model\" let-link=\"link\">\n <he-node-link *ngIf=\"link.term\" [node]=\"{'@type':'Term','@id':link.term}\" [showExternalLink]=\"true\">\n <span>{{link.term | keyToLabel}}</span>\n </he-node-link>\n\n <span *ngIf=\"link.modelKey\">{{link.modelKey}}</span>\n\n <p>\n <span class=\"pr-1\">Model:</span>\n <span class=\"pr-2\">{{model | keyToLabel}}</span>\n\n <a class=\"is-size-7\" [href]=\"link.docPath\" target=\"_blank\">\n <span class=\"pr-1\">(View Docs)</span>\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n </a>\n </p>\n</ng-template>\n\n<ng-template #modelPathLink let-model=\"model\" let-link=\"link\">\n <span *ngIf=\"link.modelKey\">{{link.modelKey}}</span>\n\n <p>\n <span class=\"pr-1\">Model:</span>\n <span class=\"pr-2\">{{model | keyToLabel}}</span>\n\n <a class=\"is-size-7\" [href]=\"link.docPath\" target=\"_blank\">\n <span class=\"pr-1\">(View Docs)</span>\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n </a>\n </p>\n</ng-template>\n\n<ng-template #strategiesLink let-strategy=\"strategy\" let-type=\"type\">\n <span class=\"pr-2\"><code>{{strategy}}</code></span>\n\n <a class=\"is-size-7\" [href]=\"strategiesDocs + '/' + type + '/' + (type === 'merge' ? 'merge_' : '') + strategy + '.md'\" target=\"_blank\">\n <span class=\"pr-1\">(View Docs)</span>\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n </a>\n</ng-template>\n\n<ng-template #strategiesArgs let-args>\n <div class=\"pl-2\">\n <span *ngFor=\"let arg of args | keys\">\n <span class=\"has-text-underline\">{{arg.key}}</span>: <code>{{arg.value | json}}</code>\n </span>\n </div>\n</ng-template>\n", styles: [":host{display:block}.model-parallel{border-left:3px solid #7a7a7a}\n"], components: [{ type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "keyToLabel": i6.KeyToLabelPipe, "async": i4.AsyncPipe, "keys": i7.KeysPipe, "json": i4.JsonPipe } });
48
+ EngineOrchestratorEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EngineOrchestratorEditComponent, selector: "he-engine-orchestrator-edit", inputs: { config: "config", nodeType: "nodeType" }, usesOnChanges: true, ngImport: i0, template: "<p>\n <i>The configuration below is a preview of the <a [href]=\"configUrl\" target=\"_blank\">JSON configuration file</a> used for the orchestration of the Hestia's calculations.</i>\n</p>\n<p>\n <i>Note: not all models might be represented accurately.</i>\n</p>\n\n<div class=\"pl-3 model-parallel my-3\">\n <p class=\"is-size-7\"><i>Models running in parallel</i></p>\n</div>\n\n<div *ngIf=\"config\">\n <div class=\"pl-3\" *bindOnce=\"config\">\n <ng-container *ngTemplateOutlet=\"models;context:{$implicit:config.models}\"></ng-container>\n </div>\n</div>\n\n<ng-template #models let-data>\n <div *ngFor=\"let v of data\">\n <ng-container *ngTemplateOutlet=\"model;context:{$implicit:v}\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #model let-data>\n <ng-container *ngIf=\"isArray(data)\">\n <div class=\"pl-3 model-parallel\">\n <ng-container *ngTemplateOutlet=\"models;context:{$implicit:data}\"></ng-container>\n </div>\n\n <hr>\n </ng-container>\n <ng-container *ngIf=\"!isArray(data)\">\n <div class=\"card mb-2 model-serie is-size-6\">\n <div class=\"card-content p-3\">\n <span class=\"is-capitalized\">{{data.key | keyToLabel}}</span>:\n <ng-template #defaultView>\n <span>{{data.value}}</span>\n\n <p>\n <span class=\"pr-1\">Model:</span>\n <span>{{data.model | keyToLabel}}</span>\n </p>\n </ng-template>\n\n <ng-template #modelFromPathLink>\n <ng-container *ngIf=\"modelPathLink$(data) | async as link; else defaultView\">\n <ng-container *ngTemplateOutlet=\"modelPathLink;context:{model:data.model, link:link}\"></ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"modelLink$(data) | async as link; else modelFromPathLink\">\n <ng-container *ngTemplateOutlet=\"modelLink;context:{model:data.model, link:link}\"></ng-container>\n </ng-container>\n\n <div *ngIf=\"data.runStrategy\">\n <span class=\"pr-1\">Run strategy:</span>\n <ng-container *ngTemplateOutlet=\"strategiesLink;context:{strategy:data.runStrategy,type:'run'}\"></ng-container>\n\n <div class=\"pl-3 is-size-7\" *ngIf=\"data.runArgs\">\n <p><b>Run arguments:</b></p>\n <ng-container *ngTemplateOutlet=\"strategiesArgs;context:{$implicit:data.runArgs}\"></ng-container>\n </div>\n </div>\n <div *ngIf=\"data.mergeStrategy\">\n <span class=\"pr-1\">Merge strategy:</span>\n <ng-container *ngTemplateOutlet=\"strategiesLink;context:{strategy:data.mergeStrategy,type:'merge'}\"></ng-container>\n\n <div class=\"pl-3 is-size-7\" *ngIf=\"data.mergeArgs\">\n <p><b>Merge arguments:</b></p>\n <ng-container *ngTemplateOutlet=\"strategiesArgs;context:{$implicit:data.mergeArgs}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #modelLink let-model=\"model\" let-link=\"link\">\n <he-node-link *ngIf=\"link.term\" [node]=\"{'@type':'Term','@id':link.term}\" [showExternalLink]=\"true\">\n <span>{{link.term | keyToLabel}}</span>\n </he-node-link>\n\n <span *ngIf=\"link.modelKey\">{{link.modelKey}}</span>\n\n <p>\n <span class=\"pr-1\">Model:</span>\n <span class=\"pr-2\">{{model | keyToLabel}}</span>\n\n <a class=\"is-size-7\" [href]=\"link.docPath\" target=\"_blank\">\n <span class=\"pr-1\">(View Docs)</span>\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n </a>\n </p>\n</ng-template>\n\n<ng-template #modelPathLink let-model=\"model\" let-link=\"link\">\n <span *ngIf=\"link.modelKey\">{{link.modelKey}}</span>\n\n <p>\n <span class=\"pr-1\">Model:</span>\n <span class=\"pr-2\">{{model | keyToLabel}}</span>\n\n <a class=\"is-size-7\" [href]=\"link.docPath\" target=\"_blank\">\n <span class=\"pr-1\">(View Docs)</span>\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n </a>\n </p>\n</ng-template>\n\n<ng-template #strategiesLink let-strategy=\"strategy\" let-type=\"type\">\n <span class=\"pr-2\"><code>{{strategy}}</code></span>\n\n <a class=\"is-size-7\" [href]=\"strategiesDocs + '/' + type + '/' + (type === 'merge' ? 'merge_' : '') + strategy + '.md'\" target=\"_blank\">\n <span class=\"pr-1\">(View Docs)</span>\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n </a>\n</ng-template>\n\n<ng-template #strategiesArgs let-args>\n <div class=\"pl-2\">\n <p *ngFor=\"let arg of args | keys\">\n <span class=\"has-text-underline\">{{arg.key}}</span>: <code>{{arg.value | json}}</code>\n </p>\n </div>\n</ng-template>\n", styles: [":host{display:block}.model-parallel{border-left:3px solid #7a7a7a}\n"], components: [{ type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "keyToLabel": i6.KeyToLabelPipe, "async": i4.AsyncPipe, "keys": i7.KeysPipe, "json": i4.JsonPipe } });
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EngineOrchestratorEditComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
58
58
  }], nodeType: [{
59
59
  type: Input
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0L2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC9lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBa0UsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7OztBQUVqSCxNQUFNLE1BQU0sR0FBRyxHQUFHLE9BQU8sc0NBQXNDLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFDN0UsTUFBTSxjQUFjLEdBQUcsR0FBRyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE1BQU0sY0FBYyxHQUFHLEdBQUcsTUFBTSx1Q0FBdUMsQ0FBQztBQU94RSxNQUFNLE9BQU8sK0JBQStCO0lBUzFDLFlBQ1UsbUJBQW9DO1FBQXBDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBaUI7UUFKdkMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7SUFJbkMsQ0FBQztJQUVMLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFYSxpQkFBaUI7O1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7S0FBQTtJQUVNLE9BQU8sQ0FBQyxNQUFNO1FBQ25CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBNEI7UUFDMUQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUE0QjtRQUM5RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFFLHdCQUF3QixLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSztTQUM3RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs2SEF2Q1UsK0JBQStCO2lIQUEvQiwrQkFBK0IsNElDZjVDLHNtSkE2SEE7NEZEOUdhLCtCQUErQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQztpQkFDekQ7c0dBR1EsTUFBTTtzQkFEWixLQUFLO2dCQUdFLFFBQVE7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IGdpdEJyYW5jaCwgZ2l0SG9tZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBIZUVuZ2luZVNlcnZpY2UsIElPcmNoZXN0cmF0b3JDb25maWcsIElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZywgZW5naW5lR2l0VXJsIH0gZnJvbSAnLi4vZW5naW5lLnNlcnZpY2UnO1xuXG5jb25zdCBnaXRVcmwgPSBgJHtnaXRIb21lfS9oZXN0aWEtZW5naW5lLW9yY2hlc3RyYXRvci8tL2Jsb2IvJHtnaXRCcmFuY2goKX1gO1xuY29uc3QgZ2VuZXJhbERvY3NVcmwgPSBgJHtnaXRVcmx9L2hlc3RpYV9lYXJ0aC9vcmNoZXN0cmF0b3IvY29uZmlnL1JFQURNRS5tZGA7XG5jb25zdCBzdHJhdGVnaWVzRG9jcyA9IGAke2dpdFVybH0vaGVzdGlhX2VhcnRoL29yY2hlc3RyYXRvci9zdHJhdGVnaWVzYDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVuZ2luZU9yY2hlc3RyYXRvckVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlnPzogSU9yY2hlc3RyYXRvckNvbmZpZztcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBub2RlVHlwZT86IE5vZGVUeXBlO1xuXG4gIHB1YmxpYyBnZW5lcmFsRG9jc1VybCA9IGdlbmVyYWxEb2NzVXJsO1xuICBwdWJsaWMgc3RyYXRlZ2llc0RvY3MgPSBzdHJhdGVnaWVzRG9jcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhlc3RpYUVuZ2luZVNlcnZpY2U6IEhlRW5naW5lU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ25vZGVUeXBlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkRGVmYXVsdENvbmZpZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZERlZmF1bHRDb25maWcoKSB7XG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCB0aGlzLmhlc3RpYUVuZ2luZVNlcnZpY2Uub2NoZXN0cmF0b3JDb25maWcodGhpcy5ub2RlVHlwZSk7XG4gIH1cblxuICBwdWJsaWMgaXNBcnJheShjb25maWcpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25maWcpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsTGluayQoeyBtb2RlbCwgdmFsdWUgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5tb2RlbCQoeyBtb2RlbCwgdGVybTogdmFsdWUgfSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxQYXRoTGluayQoeyBtb2RlbCwgdmFsdWUgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5tb2RlbCQoe1xuICAgICAgcGF0aDogYCR7ZW5naW5lR2l0VXJsKCl9L2hlc3RpYV9lYXJ0aC9tb2RlbHMvJHttb2RlbH0vJHsodmFsdWUgfHwgJycpLnJlcGxhY2UoJy4nLCAnLycpfS5weWBcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmhlc3RpYUVuZ2luZVNlcnZpY2Uub3JjaGVzdHJhdG9yQ29uZmlnVXJsKHRoaXMubm9kZVR5cGUpO1xuICB9XG59XG4iLCI8cD5cbiAgPGk+VGhlIGNvbmZpZ3VyYXRpb24gYmVsb3cgaXMgYSBwcmV2aWV3IG9mIHRoZSA8YSBbaHJlZl09XCJjb25maWdVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5KU09OIGNvbmZpZ3VyYXRpb24gZmlsZTwvYT4gdXNlZCBmb3IgdGhlIG9yY2hlc3RyYXRpb24gb2YgdGhlIEhlc3RpYSdzIGNhbGN1bGF0aW9ucy48L2k+XG48L3A+XG48cD5cbiAgPGk+Tm90ZTogbm90IGFsbCBtb2RlbHMgbWlnaHQgYmUgcmVwcmVzZW50ZWQgYWNjdXJhdGVseS48L2k+XG48L3A+XG5cbjxkaXYgY2xhc3M9XCJwbC0zIG1vZGVsLXBhcmFsbGVsIG15LTNcIj5cbiAgPHAgY2xhc3M9XCJpcy1zaXplLTdcIj48aT5Nb2RlbHMgcnVubmluZyBpbiBwYXJhbGxlbDwvaT48L3A+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImNvbmZpZ1wiPlxuICA8ZGl2IGNsYXNzPVwicGwtM1wiICpiaW5kT25jZT1cImNvbmZpZ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RlbHM7Y29udGV4dDp7JGltcGxpY2l0OmNvbmZpZy5tb2RlbHN9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kZWxzIGxldC1kYXRhPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB2IG9mIGRhdGFcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWw7Y29udGV4dDp7JGltcGxpY2l0OnZ9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbCBsZXQtZGF0YT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXJyYXkoZGF0YSlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicGwtMyBtb2RlbC1wYXJhbGxlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVscztjb250ZXh0OnskaW1wbGljaXQ6ZGF0YX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxocj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNBcnJheShkYXRhKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTIgbW9kZWwtc2VyaWUgaXMtc2l6ZS02XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50IHAtM1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlzLWNhcGl0YWxpemVkXCI+e3tkYXRhLmtleSB8IGtleVRvTGFiZWx9fTwvc3Bhbj46XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZpZXc+XG4gICAgICAgICAgPHNwYW4+e3tkYXRhLnZhbHVlfX08L3NwYW4+XG5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7ZGF0YS5tb2RlbCB8IGtleVRvTGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtb2RlbEZyb21QYXRoTGluaz5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWxQYXRoTGluayQoZGF0YSkgfCBhc3luYyBhcyBsaW5rOyBlbHNlIGRlZmF1bHRWaWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxQYXRoTGluaztjb250ZXh0Onttb2RlbDpkYXRhLm1vZGVsLCBsaW5rOmxpbmt9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsTGluayQoZGF0YSkgfCBhc3luYyBhcyBsaW5rOyBlbHNlIG1vZGVsRnJvbVBhdGhMaW5rXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsTGluaztjb250ZXh0Onttb2RlbDpkYXRhLm1vZGVsLCBsaW5rOmxpbmt9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnJ1blN0cmF0ZWd5XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+UnVuIHN0cmF0ZWd5Ojwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0xpbms7Y29udGV4dDp7c3RyYXRlZ3k6ZGF0YS5ydW5TdHJhdGVneSx0eXBlOidydW4nfVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBsLTMgaXMtc2l6ZS03XCIgKm5nSWY9XCJkYXRhLnJ1bkFyZ3NcIj5cbiAgICAgICAgICAgIDxwPjxiPlJ1biBhcmd1bWVudHM6PC9iPjwvcD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdHJhdGVnaWVzQXJncztjb250ZXh0OnskaW1wbGljaXQ6ZGF0YS5ydW5BcmdzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEubWVyZ2VTdHJhdGVneVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1lcmdlIHN0cmF0ZWd5Ojwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0xpbms7Y29udGV4dDp7c3RyYXRlZ3k6ZGF0YS5tZXJnZVN0cmF0ZWd5LHR5cGU6J21lcmdlJ31cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC0zIGlzLXNpemUtN1wiICpuZ0lmPVwiZGF0YS5tZXJnZUFyZ3NcIj5cbiAgICAgICAgICAgIDxwPjxiPk1lcmdlIGFyZ3VtZW50czo8L2I+PC9wPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0cmF0ZWdpZXNBcmdzO2NvbnRleHQ6eyRpbXBsaWNpdDpkYXRhLm1lcmdlQXJnc31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGVsTGluayBsZXQtbW9kZWw9XCJtb2RlbFwiIGxldC1saW5rPVwibGlua1wiPlxuICA8aGUtbm9kZS1saW5rICpuZ0lmPVwibGluay50ZXJtXCIgW25vZGVdPVwieydAdHlwZSc6J1Rlcm0nLCdAaWQnOmxpbmsudGVybX1cIiBbc2hvd0V4dGVybmFsTGlua109XCJ0cnVlXCI+XG4gICAgPHNwYW4+e3tsaW5rLnRlcm0gfCBrZXlUb0xhYmVsfX08L3NwYW4+XG4gIDwvaGUtbm9kZS1saW5rPlxuXG4gIDxzcGFuICpuZ0lmPVwibGluay5tb2RlbEtleVwiPnt7bGluay5tb2RlbEtleX19PC9zcGFuPlxuXG4gIDxwPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTJcIj57e21vZGVsIHwga2V5VG9MYWJlbH19PC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJpcy1zaXplLTdcIiBbaHJlZl09XCJsaW5rLmRvY1BhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbFBhdGhMaW5rIGxldC1tb2RlbD1cIm1vZGVsXCIgbGV0LWxpbms9XCJsaW5rXCI+XG4gIDxzcGFuICpuZ0lmPVwibGluay5tb2RlbEtleVwiPnt7bGluay5tb2RlbEtleX19PC9zcGFuPlxuXG4gIDxwPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTJcIj57e21vZGVsIHwga2V5VG9MYWJlbH19PC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJpcy1zaXplLTdcIiBbaHJlZl09XCJsaW5rLmRvY1BhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdHJhdGVnaWVzTGluayBsZXQtc3RyYXRlZ3k9XCJzdHJhdGVneVwiIGxldC10eXBlPVwidHlwZVwiPlxuICA8c3BhbiBjbGFzcz1cInByLTJcIj48Y29kZT57e3N0cmF0ZWd5fX08L2NvZGU+PC9zcGFuPlxuXG4gIDxhIGNsYXNzPVwiaXMtc2l6ZS03XCIgW2hyZWZdPVwic3RyYXRlZ2llc0RvY3MgKyAnLycgKyB0eXBlICsgJy8nICsgKHR5cGUgPT09ICdtZXJnZScgPyAnbWVyZ2VfJyA6ICcnKSArIHN0cmF0ZWd5ICsgJy5tZCdcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTFcIj4oVmlldyBEb2NzKTwvc3Bhbj5cbiAgICA8ZmEtaWNvbiBpY29uPVwiZXh0ZXJuYWwtbGluay1hbHRcIj48L2ZhLWljb24+XG4gIDwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RyYXRlZ2llc0FyZ3MgbGV0LWFyZ3M+XG4gIDxkaXYgY2xhc3M9XCJwbC0yXCI+XG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IGFyZyBvZiBhcmdzIHwga2V5c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC11bmRlcmxpbmVcIj57e2FyZy5rZXl9fTwvc3Bhbj46IDxjb2RlPnt7YXJnLnZhbHVlIHwganNvbn19PC9jb2RlPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0L2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC9lbmdpbmUtb3JjaGVzdHJhdG9yLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBa0UsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7OztBQUVqSCxNQUFNLE1BQU0sR0FBRyxHQUFHLE9BQU8sc0NBQXNDLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFDN0UsTUFBTSxjQUFjLEdBQUcsR0FBRyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE1BQU0sY0FBYyxHQUFHLEdBQUcsTUFBTSx1Q0FBdUMsQ0FBQztBQU94RSxNQUFNLE9BQU8sK0JBQStCO0lBUzFDLFlBQ1UsbUJBQW9DO1FBQXBDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBaUI7UUFKdkMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7SUFJbkMsQ0FBQztJQUVMLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFYSxpQkFBaUI7O1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7S0FBQTtJQUVNLE9BQU8sQ0FBQyxNQUFNO1FBQ25CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBNEI7UUFDMUQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUE0QjtRQUM5RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7WUFDckMsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFFLHdCQUF3QixLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSztTQUM3RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDOzs2SEF2Q1UsK0JBQStCO2lIQUEvQiwrQkFBK0IsNElDZjVDLGdtSkE2SEE7NEZEOUdhLCtCQUErQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQztpQkFDekQ7c0dBR1EsTUFBTTtzQkFEWixLQUFLO2dCQUdFLFFBQVE7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IGdpdEJyYW5jaCwgZ2l0SG9tZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBIZUVuZ2luZVNlcnZpY2UsIElPcmNoZXN0cmF0b3JDb25maWcsIElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZywgZW5naW5lR2l0VXJsIH0gZnJvbSAnLi4vZW5naW5lLnNlcnZpY2UnO1xuXG5jb25zdCBnaXRVcmwgPSBgJHtnaXRIb21lfS9oZXN0aWEtZW5naW5lLW9yY2hlc3RyYXRvci8tL2Jsb2IvJHtnaXRCcmFuY2goKX1gO1xuY29uc3QgZ2VuZXJhbERvY3NVcmwgPSBgJHtnaXRVcmx9L2hlc3RpYV9lYXJ0aC9vcmNoZXN0cmF0b3IvY29uZmlnL1JFQURNRS5tZGA7XG5jb25zdCBzdHJhdGVnaWVzRG9jcyA9IGAke2dpdFVybH0vaGVzdGlhX2VhcnRoL29yY2hlc3RyYXRvci9zdHJhdGVnaWVzYDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZW5naW5lLW9yY2hlc3RyYXRvci1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VuZ2luZS1vcmNoZXN0cmF0b3ItZWRpdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVuZ2luZU9yY2hlc3RyYXRvckVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlnPzogSU9yY2hlc3RyYXRvckNvbmZpZztcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBub2RlVHlwZT86IE5vZGVUeXBlO1xuXG4gIHB1YmxpYyBnZW5lcmFsRG9jc1VybCA9IGdlbmVyYWxEb2NzVXJsO1xuICBwdWJsaWMgc3RyYXRlZ2llc0RvY3MgPSBzdHJhdGVnaWVzRG9jcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhlc3RpYUVuZ2luZVNlcnZpY2U6IEhlRW5naW5lU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ25vZGVUeXBlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkRGVmYXVsdENvbmZpZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZERlZmF1bHRDb25maWcoKSB7XG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCB0aGlzLmhlc3RpYUVuZ2luZVNlcnZpY2Uub2NoZXN0cmF0b3JDb25maWcodGhpcy5ub2RlVHlwZSk7XG4gIH1cblxuICBwdWJsaWMgaXNBcnJheShjb25maWcpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25maWcpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsTGluayQoeyBtb2RlbCwgdmFsdWUgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5tb2RlbCQoeyBtb2RlbCwgdGVybTogdmFsdWUgfSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxQYXRoTGluayQoeyBtb2RlbCwgdmFsdWUgfTogSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuaGVzdGlhRW5naW5lU2VydmljZS5tb2RlbCQoe1xuICAgICAgcGF0aDogYCR7ZW5naW5lR2l0VXJsKCl9L2hlc3RpYV9lYXJ0aC9tb2RlbHMvJHttb2RlbH0vJHsodmFsdWUgfHwgJycpLnJlcGxhY2UoJy4nLCAnLycpfS5weWBcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmhlc3RpYUVuZ2luZVNlcnZpY2Uub3JjaGVzdHJhdG9yQ29uZmlnVXJsKHRoaXMubm9kZVR5cGUpO1xuICB9XG59XG4iLCI8cD5cbiAgPGk+VGhlIGNvbmZpZ3VyYXRpb24gYmVsb3cgaXMgYSBwcmV2aWV3IG9mIHRoZSA8YSBbaHJlZl09XCJjb25maWdVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5KU09OIGNvbmZpZ3VyYXRpb24gZmlsZTwvYT4gdXNlZCBmb3IgdGhlIG9yY2hlc3RyYXRpb24gb2YgdGhlIEhlc3RpYSdzIGNhbGN1bGF0aW9ucy48L2k+XG48L3A+XG48cD5cbiAgPGk+Tm90ZTogbm90IGFsbCBtb2RlbHMgbWlnaHQgYmUgcmVwcmVzZW50ZWQgYWNjdXJhdGVseS48L2k+XG48L3A+XG5cbjxkaXYgY2xhc3M9XCJwbC0zIG1vZGVsLXBhcmFsbGVsIG15LTNcIj5cbiAgPHAgY2xhc3M9XCJpcy1zaXplLTdcIj48aT5Nb2RlbHMgcnVubmluZyBpbiBwYXJhbGxlbDwvaT48L3A+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImNvbmZpZ1wiPlxuICA8ZGl2IGNsYXNzPVwicGwtM1wiICpiaW5kT25jZT1cImNvbmZpZ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RlbHM7Y29udGV4dDp7JGltcGxpY2l0OmNvbmZpZy5tb2RlbHN9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kZWxzIGxldC1kYXRhPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB2IG9mIGRhdGFcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWw7Y29udGV4dDp7JGltcGxpY2l0OnZ9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbCBsZXQtZGF0YT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXJyYXkoZGF0YSlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicGwtMyBtb2RlbC1wYXJhbGxlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVscztjb250ZXh0OnskaW1wbGljaXQ6ZGF0YX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxocj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNBcnJheShkYXRhKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTIgbW9kZWwtc2VyaWUgaXMtc2l6ZS02XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250ZW50IHAtM1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlzLWNhcGl0YWxpemVkXCI+e3tkYXRhLmtleSB8IGtleVRvTGFiZWx9fTwvc3Bhbj46XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZpZXc+XG4gICAgICAgICAgPHNwYW4+e3tkYXRhLnZhbHVlfX08L3NwYW4+XG5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7ZGF0YS5tb2RlbCB8IGtleVRvTGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtb2RlbEZyb21QYXRoTGluaz5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWxQYXRoTGluayQoZGF0YSkgfCBhc3luYyBhcyBsaW5rOyBlbHNlIGRlZmF1bHRWaWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9kZWxQYXRoTGluaztjb250ZXh0Onttb2RlbDpkYXRhLm1vZGVsLCBsaW5rOmxpbmt9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsTGluayQoZGF0YSkgfCBhc3luYyBhcyBsaW5rOyBlbHNlIG1vZGVsRnJvbVBhdGhMaW5rXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGVsTGluaztjb250ZXh0Onttb2RlbDpkYXRhLm1vZGVsLCBsaW5rOmxpbmt9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLnJ1blN0cmF0ZWd5XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci0xXCI+UnVuIHN0cmF0ZWd5Ojwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0xpbms7Y29udGV4dDp7c3RyYXRlZ3k6ZGF0YS5ydW5TdHJhdGVneSx0eXBlOidydW4nfVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBsLTMgaXMtc2l6ZS03XCIgKm5nSWY9XCJkYXRhLnJ1bkFyZ3NcIj5cbiAgICAgICAgICAgIDxwPjxiPlJ1biBhcmd1bWVudHM6PC9iPjwvcD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdHJhdGVnaWVzQXJncztjb250ZXh0OnskaW1wbGljaXQ6ZGF0YS5ydW5BcmdzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEubWVyZ2VTdHJhdGVneVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1lcmdlIHN0cmF0ZWd5Ojwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyYXRlZ2llc0xpbms7Y29udGV4dDp7c3RyYXRlZ3k6ZGF0YS5tZXJnZVN0cmF0ZWd5LHR5cGU6J21lcmdlJ31cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC0zIGlzLXNpemUtN1wiICpuZ0lmPVwiZGF0YS5tZXJnZUFyZ3NcIj5cbiAgICAgICAgICAgIDxwPjxiPk1lcmdlIGFyZ3VtZW50czo8L2I+PC9wPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0cmF0ZWdpZXNBcmdzO2NvbnRleHQ6eyRpbXBsaWNpdDpkYXRhLm1lcmdlQXJnc31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGVsTGluayBsZXQtbW9kZWw9XCJtb2RlbFwiIGxldC1saW5rPVwibGlua1wiPlxuICA8aGUtbm9kZS1saW5rICpuZ0lmPVwibGluay50ZXJtXCIgW25vZGVdPVwieydAdHlwZSc6J1Rlcm0nLCdAaWQnOmxpbmsudGVybX1cIiBbc2hvd0V4dGVybmFsTGlua109XCJ0cnVlXCI+XG4gICAgPHNwYW4+e3tsaW5rLnRlcm0gfCBrZXlUb0xhYmVsfX08L3NwYW4+XG4gIDwvaGUtbm9kZS1saW5rPlxuXG4gIDxzcGFuICpuZ0lmPVwibGluay5tb2RlbEtleVwiPnt7bGluay5tb2RlbEtleX19PC9zcGFuPlxuXG4gIDxwPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTJcIj57e21vZGVsIHwga2V5VG9MYWJlbH19PC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJpcy1zaXplLTdcIiBbaHJlZl09XCJsaW5rLmRvY1BhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RlbFBhdGhMaW5rIGxldC1tb2RlbD1cIm1vZGVsXCIgbGV0LWxpbms9XCJsaW5rXCI+XG4gIDxzcGFuICpuZ0lmPVwibGluay5tb2RlbEtleVwiPnt7bGluay5tb2RlbEtleX19PC9zcGFuPlxuXG4gIDxwPlxuICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPk1vZGVsOjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTJcIj57e21vZGVsIHwga2V5VG9MYWJlbH19PC9zcGFuPlxuXG4gICAgPGEgY2xhc3M9XCJpcy1zaXplLTdcIiBbaHJlZl09XCJsaW5rLmRvY1BhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicHItMVwiPihWaWV3IERvY3MpPC9zcGFuPlxuICAgICAgPGZhLWljb24gaWNvbj1cImV4dGVybmFsLWxpbmstYWx0XCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdHJhdGVnaWVzTGluayBsZXQtc3RyYXRlZ3k9XCJzdHJhdGVneVwiIGxldC10eXBlPVwidHlwZVwiPlxuICA8c3BhbiBjbGFzcz1cInByLTJcIj48Y29kZT57e3N0cmF0ZWd5fX08L2NvZGU+PC9zcGFuPlxuXG4gIDxhIGNsYXNzPVwiaXMtc2l6ZS03XCIgW2hyZWZdPVwic3RyYXRlZ2llc0RvY3MgKyAnLycgKyB0eXBlICsgJy8nICsgKHR5cGUgPT09ICdtZXJnZScgPyAnbWVyZ2VfJyA6ICcnKSArIHN0cmF0ZWd5ICsgJy5tZCdcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICA8c3BhbiBjbGFzcz1cInByLTFcIj4oVmlldyBEb2NzKTwvc3Bhbj5cbiAgICA8ZmEtaWNvbiBpY29uPVwiZXh0ZXJuYWwtbGluay1hbHRcIj48L2ZhLWljb24+XG4gIDwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RyYXRlZ2llc0FyZ3MgbGV0LWFyZ3M+XG4gIDxkaXYgY2xhc3M9XCJwbC0yXCI+XG4gICAgPHAgKm5nRm9yPVwibGV0IGFyZyBvZiBhcmdzIHwga2V5c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC11bmRlcmxpbmVcIj57e2FyZy5rZXl9fTwvc3Bhbj46IDxjb2RlPnt7YXJnLnZhbHVlIHwganNvbn19PC9jb2RlPlxuICAgIDwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19