nuxeo-development-framework 6.1.1 → 6.1.3

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 (39) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +893 -674
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +1 -1
  4. package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +76 -23
  5. package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +1 -1
  6. package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
  7. package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +23 -12
  8. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
  9. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +32 -16
  10. package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
  11. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  12. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  13. package/esm2015/lib/components/reports/ndf-reports/pipes/check-condition.pipe.js +4 -4
  14. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +26 -31
  15. package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +16 -21
  16. package/esm2015/lib/components/reports/ndf-reports/services/reports-hooks.service.js +34 -1
  17. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +116 -102
  18. package/esm2015/lib/components/tables/dynamic-table/public-api.js +3 -2
  19. package/esm2015/lib/components/tables/dynamic-table/services/table-hooks.service.js +56 -0
  20. package/esm2015/lib/shared/services/base/base.service.js +9 -10
  21. package/fesm2015/nuxeo-development-framework.js +613 -446
  22. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  23. package/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.d.ts +7 -0
  24. package/lib/components/ndf-filters/models/field-options/date-list-options.d.ts +2 -1
  25. package/lib/components/ndf-filters/models/filter-option.model.d.ts +6 -0
  26. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +1 -1
  27. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +9 -3
  28. package/lib/components/reports/ndf-reports/models/common.d.ts +9 -1
  29. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +4 -5
  30. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +1 -0
  31. package/lib/components/reports/ndf-reports/pipes/check-condition.pipe.d.ts +2 -2
  32. package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +4 -2
  33. package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +6 -6
  34. package/lib/components/reports/ndf-reports/services/reports-hooks.service.d.ts +15 -3
  35. package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +23 -9
  36. package/lib/components/tables/dynamic-table/public-api.d.ts +2 -1
  37. package/lib/components/tables/dynamic-table/services/table-hooks.service.d.ts +13 -0
  38. package/lib/shared/services/base/base.service.d.ts +4 -2
  39. package/package.json +1 -1
@@ -2,23 +2,23 @@ import { __rest } from "tslib";
2
2
  import { animate, state, style, transition, trigger, } from '@angular/animations';
3
3
  import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
4
4
  import _ from 'lodash';
5
- import { BehaviorSubject, combineLatest, forkJoin, fromEvent, of, ReplaySubject, } from 'rxjs';
6
- import { distinctUntilChanged, filter, finalize, map, switchMap, takeUntil, tap, } from 'rxjs/operators';
5
+ import { BehaviorSubject, combineLatest, forkJoin, from, fromEvent, of, ReplaySubject, } from 'rxjs';
6
+ import { filter, finalize, map, switchMap, takeUntil, tap, } from 'rxjs/operators';
7
7
  import { DestroySubject, FluidHeightDirective } from '../../../../../shared';
8
8
  import { NDF_EDITOR_TYPE } from '../../../../ndf-config-editor/constants';
9
9
  import { CUSTOM_TEMPLATE, } from '../../../../ndf-filters';
10
- import { EMPTY_CONTENT_TEMPLATE, HEADER_PANEL_TEMPLATE } from '../../directives';
10
+ import { EMPTY_CONTENT_TEMPLATE, HEADER_PANEL_TEMPLATE, } from '../../directives';
11
11
  import { mapToNdfTableConfig, prepareNdfTableFilters } from '../../utilities';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@ngx-translate/core";
14
14
  import * as i2 from "../../../../ndf-filters";
15
15
  import * as i3 from "../../services";
16
16
  import * as i4 from "@angular/router";
17
- import * as i5 from "../../../../ndf-filters/containers/filters-panel/filters-panel.component";
18
- import * as i6 from "@angular/material/button";
19
- import * as i7 from "@angular/material/icon";
20
- import * as i8 from "../../../../ndf-config-editor/public/editor-navigate-button";
21
- import * as i9 from "@angular/material/progress-spinner";
17
+ import * as i5 from "@angular/material/progress-spinner";
18
+ import * as i6 from "../../../../ndf-filters/containers/filters-panel/filters-panel.component";
19
+ import * as i7 from "@angular/material/button";
20
+ import * as i8 from "@angular/material/icon";
21
+ import * as i9 from "../../../../ndf-config-editor/public/editor-navigate-button";
22
22
  import * as i10 from "../ndf-report/ndf-report.component";
23
23
  import * as i11 from "../../../../tables/ndf-table/containers/ndf-table/ndf-table.component";
24
24
  import * as i12 from "../../../../../shared/directives/fluid-height.directive";
@@ -26,7 +26,6 @@ import * as i13 from "@angular/cdk/bidi";
26
26
  import * as i14 from "@angular/common";
27
27
  import * as i15 from "../../directives/scrollable-div.directive";
28
28
  import * as i16 from "../../../../tables/ndf-table/directives/search.directive";
29
- import * as i17 from "../../pipes/check-condition.pipe";
30
29
  export const slideAnimation = trigger('slideInOut', [
31
30
  state('closed', style({
32
31
  transform: 'translateX(var(--ndf-reports-details-translateX, -100%))',
@@ -35,7 +34,7 @@ export const slideAnimation = trigger('slideInOut', [
35
34
  transition('closed <=> open', animate('200ms ease-out')),
36
35
  ]);
37
36
  export class NdfReportsComponent extends DestroySubject {
38
- constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone) {
37
+ constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone, _reportsHooksService) {
39
38
  super();
40
39
  this._translateService = _translateService;
41
40
  this._filtersMapper = _filtersMapper;
@@ -48,6 +47,7 @@ export class NdfReportsComponent extends DestroySubject {
48
47
  this._configurationService = _configurationService;
49
48
  this._router = _router;
50
49
  this._ngZone = _ngZone;
50
+ this._reportsHooksService = _reportsHooksService;
51
51
  this._isHeightUpdated = false;
52
52
  this.direction = 'rtl';
53
53
  this.isPanelOpened = false;
@@ -60,6 +60,7 @@ export class NdfReportsComponent extends DestroySubject {
60
60
  this.reportConfig$ = this._configSubject.asObservable();
61
61
  this._filtersCriteriaSubject = new BehaviorSubject(null);
62
62
  this.filtersParams$ = this._filtersCriteriaSubject.asObservable();
63
+ this._triggerFiltersSub = new BehaviorSubject(true);
63
64
  this._detailsFiltersSubject = new BehaviorSubject(null);
64
65
  this.detailsFiltersParams$ = this._detailsFiltersSubject.asObservable();
65
66
  this._reportDetailsSubject = new BehaviorSubject(null);
@@ -73,6 +74,12 @@ export class NdfReportsComponent extends DestroySubject {
73
74
  this.trackByFn = (_, report) => {
74
75
  return report.id;
75
76
  };
77
+ this.triggerUpdate = () => {
78
+ this._triggerFiltersSub.next(true);
79
+ };
80
+ this.resetFilters = () => {
81
+ this._resetQueryAndFiltersCriteria();
82
+ };
76
83
  this.filterChanged = (criteria) => {
77
84
  if (_.isEqual(this.activeQuery, criteria)) {
78
85
  return;
@@ -113,6 +120,12 @@ export class NdfReportsComponent extends DestroySubject {
113
120
  this.reportsData$ = this._prepareReports();
114
121
  this._handleKeyboardEvent();
115
122
  }
123
+ callLoadCondition() {
124
+ if (this.loadCondition && typeof this.loadCondition == 'function') {
125
+ return this.loadCondition(this.activeQuery);
126
+ }
127
+ return true;
128
+ }
116
129
  ngOnChanges(changes) {
117
130
  var _a, _b;
118
131
  const reportsKey = (_a = changes.reportsKey) === null || _a === void 0 ? void 0 : _a.currentValue;
@@ -220,8 +233,9 @@ export class NdfReportsComponent extends DestroySubject {
220
233
  _prepareReports() {
221
234
  this.isLoadingResult = true;
222
235
  return combineLatest([
223
- this.filtersParams$.pipe(distinctUntilChanged((a, b) => _.isEqual(a, b))),
236
+ this.filtersParams$,
224
237
  this.reportConfig$,
238
+ this._triggerFiltersSub,
225
239
  ]).pipe(tap(() => {
226
240
  this.isLoadingResult = true;
227
241
  this._cdr.detectChanges();
@@ -234,7 +248,7 @@ export class NdfReportsComponent extends DestroySubject {
234
248
  if (!criteria && !!config.activeQuery) {
235
249
  _payload = this.prepareCriteriaPayload(config.activeQuery);
236
250
  }
237
- const data$ = this._ndfReportsService.getData(request, _payload).pipe(switchMap((reports) => {
251
+ const data$ = from(this._reportsHooksService.executeBeforeSubmit(Object.assign(Object.assign({}, this._ndfReportsService.prepareRequest(request, criteria)), { request }))).pipe(switchMap((res) => this._ndfReportsService.getData(request, res)), switchMap((reports) => {
238
252
  return this._transformService.prepareData(reports, config);
239
253
  }), finalize(() => {
240
254
  this.isLoadingResult = false;
@@ -354,8 +368,8 @@ export class NdfReportsComponent extends DestroySubject {
354
368
  this._filtersCriteriaSubject.next(null);
355
369
  }
356
370
  }
357
- NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: i2.FiltersMapperService }, { token: i3.NdfReportsService }, { token: i3.ChartManagerService }, { token: i3.ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: i2.FilterQueryService }, { token: i3.ReportsStateService }, { token: i3.ReportConfigurationService }, { token: i4.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
358
- NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"\r\n activeQuery | checkCondition : reportConfig : config;\r\n else emptyContent\r\n \"\r\n >\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n <mat-spinner\r\n *ngIf=\"isLoadingResult\"\r\n class=\"mt-5 mx-auto\"\r\n [diameter]=\"48\"\r\n ></mat-spinner>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.ndf-reports *{box-sizing:border-box;min-height:0}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-pis: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-pis, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible;width:100%;margin:0;padding:0;page-break-after:avoid}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i5.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i9.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i10.NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: i11.NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i12.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i13.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i14.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i14.AsyncPipe, "checkCondition": i17.CheckConditionPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
371
+ NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: i2.FiltersMapperService }, { token: i3.NdfReportsService }, { token: i3.ChartManagerService }, { token: i3.ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: i2.FilterQueryService }, { token: i3.ReportsStateService }, { token: i3.ReportConfigurationService }, { token: i4.Router }, { token: i0.NgZone }, { token: i3.ReportsHooksService }], target: i0.ɵɵFactoryTarget.Component });
372
+ NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", loadCondition: "loadCondition", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div\r\n class=\"absolute flex justify-center items-center loading-result\"\r\n *ngIf=\"isLoadingResult && callLoadCondition()\"\r\n >\r\n <mat-spinner class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n </div>\r\n\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n triggerUpdate: triggerUpdate,\r\n reset: resetFilters,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length && callLoadCondition()\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container *ngIf=\"callLoadCondition(); else emptyContent\">\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.loading-result{background:var(--loading-result-background, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--loading-result-filter, blur(3px));backdrop-filter:var(--loading-result-filter, blur(3px));width:100%;height:100%;z-index:3}.ndf-reports *{box-sizing:border-box;min-height:0}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc( var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5) ));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-pis: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-pis, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible;width:100%;margin:0;padding:0;page-break-after:avoid}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i5.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i6.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i10.NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: i11.NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i12.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i13.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i15.ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i14.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
359
373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, decorators: [{
360
374
  type: Component,
361
375
  args: [{
@@ -368,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
368
382
  },
369
383
  animations: [slideAnimation],
370
384
  }]
371
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.FiltersMapperService }, { type: i3.NdfReportsService }, { type: i3.ChartManagerService }, { type: i3.ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: i2.FilterQueryService }, { type: i3.ReportsStateService }, { type: i3.ReportConfigurationService }, { type: i4.Router }, { type: i0.NgZone }]; }, propDecorators: { fluidDirective: [{
385
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.FiltersMapperService }, { type: i3.NdfReportsService }, { type: i3.ChartManagerService }, { type: i3.ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: i2.FilterQueryService }, { type: i3.ReportsStateService }, { type: i3.ReportConfigurationService }, { type: i4.Router }, { type: i0.NgZone }, { type: i3.ReportsHooksService }]; }, propDecorators: { fluidDirective: [{
372
386
  type: ViewChild,
373
387
  args: [FluidHeightDirective]
374
388
  }], jsonEditorEnabled: [{
@@ -377,6 +391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
377
391
  type: Input
378
392
  }], navigateRoute: [{
379
393
  type: Input
394
+ }], loadCondition: [{
395
+ type: Input
380
396
  }], config: [{
381
397
  type: Input
382
398
  }], onQueryChange: [{
@@ -391,4 +407,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
391
407
  type: ContentChild,
392
408
  args: [EMPTY_CONTENT_TEMPLATE, { read: TemplateRef }]
393
409
  }] } });
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFLTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsUUFBUSxFQUNSLFNBQVMsRUFFVCxFQUFFLEVBQ0YsYUFBYSxHQUNkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1B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QjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFRSSxhQUFhO3NCQUF0QixNQUFNO2dCQUdQLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUdwRCxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUkxRCxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBhbmltYXRlLFxyXG4gIEFuaW1hdGlvbkV2ZW50LFxyXG4gIHN0YXRlLFxyXG4gIHN0eWxlLFxyXG4gIHRyYW5zaXRpb24sXHJcbiAgdHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgY29tYmluZUxhdGVzdCxcclxuICBmb3JrSm9pbixcclxuICBmcm9tRXZlbnQsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBvZixcclxuICBSZXBsYXlTdWJqZWN0LFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpbHRlcixcclxuICBmaW5hbGl6ZSxcclxuICBtYXAsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIHRha2VVbnRpbCxcclxuICB0YXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCwgRmx1aWRIZWlnaHREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgQXBpUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWNvbmZpZy1lZGl0b3IvY29uc3RhbnRzJztcclxuaW1wb3J0IHtcclxuICBBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG4gIENVU1RPTV9URU1QTEFURSxcclxuICBGaWVsZENvbmZpZ01vZGVsLFxyXG4gIEZpbHRlclF1ZXJ5U2VydmljZSxcclxuICBGaWx0ZXJzTWFwcGVyU2VydmljZSxcclxuICBGb3JtUXVlcnlNb2RlbCxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IE5kZlRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vdGFibGVzJztcclxuaW1wb3J0IHsgRU1QVFlfQ09OVEVOVF9URU1QTEFURSwgSEVBREVSX1BBTkVMX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3JpdGVyaWFNb2RlbCxcclxuICBOZGZSZXBvcnRzQ29uZmlnLFxyXG4gIFJlcG9ydENvbmZpZ01vZGVsLFxyXG59IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhcnRNYW5hZ2VyU2VydmljZSxcclxuICBOZGZSZXBvcnRzU2VydmljZSxcclxuICBSZXBvcnRDb25maWd1cmF0aW9uU2VydmljZSxcclxuICBSZXBvcnRzU3RhdGVTZXJ2aWNlLFxyXG4gIFJlcG9ydFRyYW5zZm9ybVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBtYXBUb05kZlRhYmxlQ29uZmlnLCBwcmVwYXJlTmRmVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbmV4cG9ydCBjb25zdCBzbGlkZUFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXHJcbiAgc3RhdGUoXHJcbiAgICAnY2xvc2VkJyxcclxuICAgIHN0eWxlKHtcclxuICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh2YXIoLS1uZGYtcmVwb3J0cy1kZXRhaWxzLXRyYW5zbGF0ZVgsIC0xMDAlKSknLFxyXG4gICAgfSlcclxuICApLFxyXG4gIHN0YXRlKCdvcGVuJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXHJcbiAgdHJhbnNpdGlvbignY2xvc2VkIDw9PiBvcGVuJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSksXHJcbl0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbmRmLXJlcG9ydHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZGYtcmVwb3J0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmRmLXJlcG9ydHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ25kZi1yZXBvcnRzJyxcclxuICAgICdbZGlyXSc6ICdkaXJlY3Rpb24nLFxyXG4gIH0sXHJcbiAgYW5pbWF0aW9uczogW3NsaWRlQW5pbWF0aW9uXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZlJlcG9ydHNDb21wb25lbnRcclxuICBleHRlbmRzIERlc3Ryb3lTdWJqZWN0XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXHJcbntcclxuICBAVmlld0NoaWxkKEZsdWlkSGVpZ2h0RGlyZWN0aXZlKSBmbHVpZERpcmVjdGl2ZTogRmx1aWRIZWlnaHREaXJlY3RpdmU7XHJcbiAgX2lzSGVpZ2h0VXBkYXRlZCA9IGZhbHNlO1xyXG4gIGRpcmVjdGlvbjogRGlyZWN0aW9uID0gJ3J0bCc7XHJcbiAgaXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG4gIGlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG4gIHJlcG9ydHNEYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIGlzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUXVlcnlTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuICAgIHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9PihudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Rm9ybVF1ZXJ5TW9kZWw+KCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlRmlsdGVyc1F1ZXJ5JCA9IHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmUmVwb3J0c0NvbmZpZz4obnVsbCk7XHJcbiAgcmVhZG9ubHkgcmVwb3J0Q29uZmlnJCA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KFxyXG4gICAgbnVsbFxyXG4gICk7XHJcbiAgcmVhZG9ubHkgZmlsdGVyc1BhcmFtcyQgPSB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXRhaWxzRmlsdGVyc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KFxyXG4gICAgbnVsbFxyXG4gICk7XHJcbiAgcmVhZG9ubHkgZGV0YWlsc0ZpbHRlcnNQYXJhbXMkID0gdGhpcy5fZGV0YWlsc0ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIF9yZXBvcnREZXRhaWxzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBjb25maWc6IE5kZlRhYmxlQ29uZmlnO1xyXG4gIH0+KG51bGwpO1xyXG5cclxuICBnZXQgYWN0aXZlUXVlcnkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlUXVlcnlTdWIuZ2V0VmFsdWUoKT8uY3VycmVudDtcclxuICB9XHJcblxyXG4gIHJlcG9ydERldGFpbHMkID0gdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGFnZ3JlZ2F0aW9uczogUmVjb3JkPHN0cmluZywgQWdncmVnYXRpb25SZXNwb25zZT47XHJcblxyXG4gIGdldCBzaG93RGV0YWlscygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0LmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBpc0RldGFpbHNPcGVuZWQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGZpbHRlcnNDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVwb3J0Q29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnPy5yZXBvcnRzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkganNvbkVkaXRvckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZXBvcnRzS2V5OiBzdHJpbmc7XHJcbiAgZWRpdG9yVHlwZSA9IE5ERl9FRElUT1JfVFlQRS5SRVBPUlRTO1xyXG5cclxuICBASW5wdXQoKSBuYXZpZ2F0ZVJvdXRlOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfY29uZmlnOiBOZGZSZXBvcnRzQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHNldCBjb25maWcoY29uZmlnOiBOZGZSZXBvcnRzQ29uZmlnKSB7XHJcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XHJcbiAgfVxyXG5cclxuICBnZXQgY29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ1N1YmplY3QuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvblF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAQ29udGVudENoaWxkKENVU1RPTV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGZpbHRlckN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoSEVBREVSX1BBTkVMX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgaGVhZGVyUGFuZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChFTVBUWV9DT05URU5UX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgZW1wdHlDb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHRyYWNrQnlGbiA9IChfOiBudW1iZXIsIHJlcG9ydDogUmVwb3J0Q29uZmlnTW9kZWwpID0+IHtcclxuICAgIHJldHVybiByZXBvcnQuaWQ7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmlsdGVyc01hcHBlcjogRmlsdGVyc01hcHBlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9uZGZSZXBvcnRzU2VydmljZTogTmRmUmVwb3J0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFydEhlbHBlclNlcnZpY2U6IENoYXJ0TWFuYWdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2Zvcm1TZXJ2aWNlOiBSZXBvcnRUcmFuc2Zvcm1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2ZpbHRlclF1ZXJ5U2VydmljZTogRmlsdGVyUXVlcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc3RhdGVTZXJ2aWNlOiBSZXBvcnRzU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdGlvblNlcnZpY2U6IFJlcG9ydENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSByZXMubGFuZyA9PT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcG9ydHNEYXRhJCA9IHRoaXMuX3ByZXBhcmVSZXBvcnRzKCk7XHJcbiAgICB0aGlzLl9oYW5kbGVLZXlib2FyZEV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCByZXBvcnRzS2V5ID0gY2hhbmdlcy5yZXBvcnRzS2V5Py5jdXJyZW50VmFsdWU7XHJcbiAgICBjb25zdCBjb25maWcgPSBjaGFuZ2VzLmNvbmZpZz8uY3VycmVudFZhbHVlO1xyXG5cclxuICAgIGlmIChyZXBvcnRzS2V5ICYmIGNvbmZpZykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1lvdSBjYW5ub3Qgc2V0IGJvdGggcmVwb3J0c0tleSBhbmQgcmVwb3J0cyBDb25maWcgYXQgdGhlIHNhbWUgdGltZS4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLl9pbml0UmVwb3J0c0NvbmZpZyhjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChyZXBvcnRzS2V5KSB7XHJcbiAgICAgIHRoaXMuX2xvYWRSZXBvcnRzQ29uZmlnKHJlcG9ydHNLZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25OYXZpZ2F0ZShkYXRhOiB7IHJlcG9ydDogUmVjb3JkPHN0cmluZywgYW55PjsgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiB9KSB7XHJcbiAgICBjb25zdCByZXBvcnQgPSBkYXRhPy5yZXBvcnQ7XHJcbiAgICBjb25zdCBfY3VzdG9tUm91dGUgPSByZXBvcnQubmF2aWdhdGU/LnJvdXRlIHx8IFtdO1xyXG4gICAgLy8gbGV0IHJvdXRlID0gW1JNU19CQVNFLnJlcGxhY2UoL1xcLyQvLCAnJyldO1xyXG4gICAgbGV0IHJvdXRlID0gdGhpcy5uYXZpZ2F0ZVJvdXRlO1xyXG4gICAgaWYgKCEhX2N1c3RvbVJvdXRlLmxlbmd0aCkge1xyXG4gICAgICByb3V0ZSA9IFsuLi5yb3V0ZSwgLi4uX2N1c3RvbVJvdXRlXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHt9O1xyXG4gICAgaWYgKHJlcG9ydC5uYXZpZ2F0ZT8uaW5jbHVkZVBhcmFtcyA/PyB0cnVlKSB7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmFjdGl2ZVF1ZXJ5IHx8IHt9KS5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fZmlsdGVyUXVlcnlTZXJ2aWNlLmVuY29kZVF1ZXJ5KHRoaXMuYWN0aXZlUXVlcnkpO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtc1snZmlsdGVycyddID0gZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUocm91dGUsIHsgcXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pLnRoZW4oKCkgPT4ge30pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUGFuZWwoKSB7XHJcbiAgICB0aGlzLmlzUGFuZWxPcGVuZWQgPSAhdGhpcy5pc1BhbmVsT3BlbmVkO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NoYXJ0SGVscGVyU2VydmljZS5yZXNpemVDaGFydHMoKTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBwcmludEFsbCgpIHtcclxuICAgIHdpbmRvdy5wcmludCgpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyQ2hhbmdlZCA9IChjcml0ZXJpYTogUmVjb3JkPGFueSwgYW55Pik9PiB7XHJcbiAgICBpZiAoXy5pc0VxdWFsKHRoaXMuYWN0aXZlUXVlcnkgLCBjcml0ZXJpYSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblF1ZXJ5Q2hhbmdlLmVtaXQoY3JpdGVyaWEpO1xyXG4gICAgdGhpcy5fdXBkYXRlQWN0aXZlUXVlcnkoY3JpdGVyaWEpOyAgXHJcbiAgICBjb25zdCBfZGF0ZSA9IHRoaXMuX3ByZXBhcmVNYXBwZWRRdWVyeShjcml0ZXJpYSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpO1xyXG4gICAgdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KF9kYXRlKTtcclxuICB9XHJcblxyXG4gIG9uQ29udGVudFNjcm9sbChpc1Njcm9sbGluZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhdGVTZXJ2aWNlLm9uQ29udGVudFNjcm9sbChpc1Njcm9sbGluZyk7XHJcblxyXG4gICAgaWYgKGlzU2Nyb2xsaW5nICYmICF0aGlzLl9pc0hlaWdodFVwZGF0ZWQpIHtcclxuICAgICAgdGhpcy5faXNIZWlnaHRVcGRhdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5mbHVpZERpcmVjdGl2ZS5zY2hlZHVsZVNldEhlaWdodCgxMDApO1xyXG4gICAgfSBlbHNlIGlmICghaXNTY3JvbGxpbmcgJiYgdGhpcy5faXNIZWlnaHRVcGRhdGVkKSB7XHJcbiAgICAgIHRoaXMuX2lzSGVpZ2h0VXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZsdWlkRGlyZWN0aXZlLnNjaGVkdWxlU2V0SGVpZ2h0KDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuUmVwb3J0RGV0YWlscyhcclxuICAgIGNyaXRlcmlhTW9kZWw6IENyaXRlcmlhTW9kZWwsXHJcbiAgICByZXBvcnRDb25maWc6IFJlcG9ydENvbmZpZ01vZGVsXHJcbiAgKSB7XHJcbiAgICBpZiAoIXJlcG9ydENvbmZpZz8uZGV0YWlscz8uZW5hYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5fZGV0YWlsc0ZpbHRlcnNTdWJqZWN0Lm5leHQocGFyYW1zKTtcclxuXHJcbiAgICB0aGlzLmlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IHNvdXJjZSA9IHJlcG9ydENvbmZpZz8uZGV0YWlscz8uc291cmNlO1xyXG4gICAgY29uc3QgY29uZmlnJCA9XHJcbiAgICAgIHNvdXJjZSAmJiB0eXBlb2Ygc291cmNlID09PSAnc3RyaW5nJ1xyXG4gICAgICAgID8gdGhpcy5fY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0VGFibGVDb25maWd1cmF0aW9uKHNvdXJjZSkucGlwZShcclxuICAgICAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCEhZGF0YT8ub3B0aW9ucz8uZmlsdGVycz8uZmllbGRzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gXy5tZXJnZShkYXRhLCB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHByZXBhcmVOZGZUYWJsZUZpbHRlcnMoXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YT8ub3B0aW9ucz8uZmlsdGVycyxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogb2YobWFwVG9OZGZUYWJsZUNvbmZpZyh0aGlzLmNvbmZpZywgcmVwb3J0Q29uZmlnLmRldGFpbHMpKTtcclxuXHJcbiAgICBjb25maWckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QubmV4dCh7XHJcbiAgICAgICAgICBjb25maWcsXHJcbiAgICAgICAgICBsYWJlbDogcmVwb3J0Q29uZmlnLmxhYmVsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEZXRhaWxzUGFuZWwoKSB7XHJcbiAgICB0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5uZXh0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25EZXRhaWxzQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xyXG4gICAgdGhpcy5pc0RldGFpbHNPcGVuZWQgPSBldmVudC50b1N0YXRlID09PSAnb3Blbic7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB0aGlzLl9jaGFydEhlbHBlclNlcnZpY2UuZGVzdHJveUFsbCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKFxyXG4gICAgY3JpdGVyaWE6IFJlY29yZDxhbnksIGFueT4sXHJcbiAgICBmaWVsZHM6IEZpZWxkQ29uZmlnTW9kZWxbXSA9IHRoaXMuZmlsdGVyc0NvbmZpZy5maWVsZHNcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzTWFwcGVyLnByZXBhcmVQYXlsb2FkKGZpZWxkcywgY3JpdGVyaWEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY3JpdGVyaWEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgYWNjW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwge30pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVJlcG9ydHMoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IHRydWU7XHJcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZmlsdGVyc1BhcmFtcyQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gXy5pc0VxdWFsKGEsIGIpKSksXHJcbiAgICAgIHRoaXMucmVwb3J0Q29uZmlnJCxcclxuICAgIF0pLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKFtjcml0ZXJpYSwgY29uZmlnXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjb25maWc/LnJlcXVlc3Q7XHJcbiAgICAgICAgaWYgKCFyZXF1ZXN0KSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBfcGF5bG9hZCA9IGNyaXRlcmlhO1xyXG4gICAgICAgIGlmICghY3JpdGVyaWEgJiYgISFjb25maWcuYWN0aXZlUXVlcnkpIHtcclxuICAgICAgICAgIF9wYXlsb2FkID0gdGhpcy5wcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNvbmZpZy5hY3RpdmVRdWVyeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXRhJCA9IHRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLmdldERhdGEocmVxdWVzdCwgX3BheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlcG9ydHM6IEFwaVJlc3BvbnNlTW9kZWwpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybVNlcnZpY2UucHJlcGFyZURhdGEocmVwb3J0cywgY29uZmlnKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW29mKGNvbmZpZyksIGRhdGEkXSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKFtjb25maWcsIHJlc3BvbnNlXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVBZ2dyZWdhdGlvbnMocmVzcG9uc2U/LmFnZ3JlZ2F0aW9ucyk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNvbmZpZyxcclxuICAgICAgICAgIHJlc3BvbnNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleWRvd24nKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5zaG93RGV0YWlsc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VEZXRhaWxzUGFuZWwoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZU1hcHBlZFF1ZXJ5KFxyXG4gICAgY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4sXHJcbiAgICBtb2RlOiAncGF5bG9hZCcgfCAncGFyYW1zJ1xyXG4gICkge1xyXG4gICAgcmV0dXJuIG1vZGUgPT0gJ3BheWxvYWQnXHJcbiAgICAgID8gdGhpcy5wcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNyaXRlcmlhKVxyXG4gICAgICA6IHtcclxuICAgICAgICAgIHBhcmFtczogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKSxcclxuICAgICAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlQWN0aXZlUXVlcnkocXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuX2FjdGl2ZVF1ZXJ5U3ViLm5leHQoe1xyXG4gICAgICBwcmV2aW91czogdGhpcy5hY3RpdmVRdWVyeSxcclxuICAgICAgY3VycmVudDogcXVlcnksXHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5uZXh0KHtcclxuICAgICAgcXVlcnksXHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgJiYgdGhpcy5hZ2dyZWdhdGlvbnMpIHtcclxuICAgICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlbG9hZFN0cmF0ZWd5ID0gdGhpcy5jb25maWc/LmZpbHRlcnM/LnJlbG9hZD8uc3RyYXRlZ3k7XHJcblxyXG4gICAgaWYgKHRoaXMuYWdncmVnYXRpb25zICYmIHJlbG9hZFN0cmF0ZWd5ID09PSAnbmV2ZXInKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5hZ2dyZWdhdGlvbnMgJiYgcmVsb2FkU3RyYXRlZ3kgPT09ICdvbkNoYW5nZScpIHtcclxuICAgICAgaWYgKHRoaXMuX3Nob3VsZFJlbG9hZE9uQ2hhbmdlKCkpIHtcclxuICAgICAgICB0aGlzLl91cGRhdGVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9ucyk7XHJcbiAgICB0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3VsZFJlbG9hZE9uQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5maWx0ZXJzPy5yZWxvYWQ/LnN0cmF0ZWd5ICE9PSAnb25DaGFuZ2UnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0cmlnZ2VyRmllbGRzID0gdGhpcy5jb25maWc/LmZpbHRlcnM/LnJlbG9hZD8udHJpZ2dlckZpZWxkcztcclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodHJpZ2dlckZpZWxkcykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbGlkRmllbGRzID0gdHJpZ2dlckZpZWxkcy5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICBpZiAoIXZhbGlkRmllbGRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYWN0aXZhdGVkUXVlcnkgPSB0aGlzLl9hY3RpdmVRdWVyeVN1Yi5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LmN1cnJlbnQgfHwge307XHJcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LnByZXZpb3VzIHx8IHt9O1xyXG5cclxuICAgIGNvbnN0IGNoYW5nZWRLZXlzID0gdGhpcy5fZ2V0Q2hhbmdlZEtleXMocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICByZXR1cm4gdmFsaWRGaWVsZHMuc29tZSgoZmllbGQpID0+IGNoYW5nZWRLZXlzLmluY2x1ZGVzKGZpZWxkKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRDaGFuZ2VkS2V5cyhcclxuICAgIHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGFsbEtleXMgPSBfLnVuaW9uKF8ua2V5cyhwcmV2aW91cyksIF8ua2V5cyhjdXJyZW50KSk7XHJcbiAgICByZXR1cm4gYWxsS2V5cy5maWx0ZXIoKGtleSkgPT4gIV8uaXNFcXVhbChwcmV2aW91c1trZXldLCBjdXJyZW50W2tleV0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUFnZ3JlZ2F0aW9ucyhhZ2dyZWdhdGlvbnM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBfLmNsb25lRGVlcChhZ2dyZWdhdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tDb25maWdDaGFuZ2UodmFsdWU6IE5kZlJlcG9ydHNDb25maWcpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlUXVlcnksIC4uLmNvbmZpZyB9ID0gdmFsdWU7XHJcbiAgICBjb25zdCB7IGFjdGl2ZVF1ZXJ5OiBhcSwgLi4uY3VycmVudENvbmZpZyB9ID1cclxuICAgICAgdGhpcy5fY29uZmlnU3ViamVjdC5nZXRWYWx1ZSgpIHx8IHt9O1xyXG5cclxuICAgIHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCA9ICFfLmlzRXF1YWwoY3VycmVudENvbmZpZywgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRSZXBvcnRzQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZVxyXG4gICAgICAuZ2V0UmVwb3J0c0NvbmZpZ3VyYXRpb24oa2V5KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICAgIHRoaXMuX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG4gICAgY29uc3QgdmFsdWUgPSBfLmNsb25lRGVlcChjb25maWcpO1xyXG4gICAgdGhpcy5fY2hlY2tDb25maWdDaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5fY29uZmlnU3ViamVjdC5uZXh0KHZhbHVlKTtcclxuICAgIGlmICh2YWx1ZT8uYWN0aXZlUXVlcnkgJiYgISFPYmplY3Qua2V5cyh2YWx1ZT8uYWN0aXZlUXVlcnkpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh2YWx1ZT8uYWN0aXZlUXVlcnkpO1xyXG4gICAgICB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQoXHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZU1hcHBlZFF1ZXJ5KHZhbHVlPy5hY3RpdmVRdWVyeSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmFjdGl2ZVF1ZXJ5IHx8IE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICEhY29uZmlnPy5maWx0ZXJzLnZpc2libGU7XHJcbiAgICB0aGlzLmlzRGV0YWlsc09wZW5lZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKSB7XHJcbiAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh7fSk7XHJcbiAgICB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250YWluZXJcIlxyXG4gIFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuICBbZGlyXT1cImRpcmVjdGlvblwiXHJcbiAgbmRmRmx1aWRIZWlnaHRcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19fcGFuZWwgcHJpbnQ6aGlkZGVuXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclBhbmVsVGVtcGxhdGVcIlxyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG4gICAgICAgICRpbXBsaWNpdDogYWdncmVnYXRpb25zLFxyXG4gICAgICAgIGZpbHRlckNoYW5nZWQ6IGZpbHRlckNoYW5nZWQsXHJcbiAgICAgICAgYWN0aXZlUXVlcnk6IGFjdGl2ZVF1ZXJ5LFxyXG4gICAgICAgIGNvbmZpZzogY29uZmlnXHJcbiAgICAgIH1cIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGFwcC1maWx0ZXJzLXBhbmVsXHJcbiAgICAgICpuZ0lmPVwiISFmaWx0ZXJzQ29uZmlnPy5maWVsZHM/Lmxlbmd0aFwiXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZz8uZmllbGRzXCJcclxuICAgICAgW2FnZ3JlZ2F0aW9uc109XCJhZ2dyZWdhdGlvbnNcIlxyXG4gICAgICAoZmlsdGVyQ2hhbmdlZCk9XCJmaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICBbYWN0aXZlUXVlcnldPVwiYWN0aXZlRmlsdGVyc1F1ZXJ5JCB8IGFzeW5jXCJcclxuICAgICAgY2xhc3M9XCJuZGYtcmVwb3J0c19fZmlsdGVyc1wiXHJcbiAgICAgIFtjdXN0b21UZW1wbGF0ZVJlZl09XCJmaWx0ZXJDdXN0b21UZW1wbGF0ZVwiXHJcbiAgICA+PC9hcHAtZmlsdGVycy1wYW5lbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgYWN0aXZlUXVlcnkgfCBjaGVja0NvbmRpdGlvbiA6IHJlcG9ydENvbmZpZyA6IGNvbmZpZztcclxuICAgICAgZWxzZSBlbXB0eUNvbnRlbnRcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250ZW50XCJcclxuICAgICAgKHNjcm9sbGVkKT1cIm9uQ29udGVudFNjcm9sbCgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJyZXBvcnRzRGF0YSQgfCBhc3luYyBhcyByZXBvcnRzXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19oZWFkZXIgZmxleCBwdC00IHByaW50OmhpZGRlblwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxhcHAtZWRpdG9yLWJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJqc29uRWRpdG9yRW5hYmxlZCAmJiByZXBvcnRzS2V5XCJcclxuICAgICAgICAgIFtrZXldPVwicmVwb3J0c0tleVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJlZGl0b3JUeXBlXCJcclxuICAgICAgICA+PC9hcHAtZWRpdG9yLWJ1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnPy5vcHRpb25zPy5wcmludFwiXHJcbiAgICAgICAgICBjbGFzcz1cInByaW50LWJ1dHRvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwicHJpbnRBbGwoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPiBwcmludDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bWF0LXNwaW5uZXJcclxuICAgICAgICAqbmdJZj1cImlzTG9hZGluZ1Jlc3VsdFwiXHJcbiAgICAgICAgY2xhc3M9XCJtdC01IG14LWF1dG9cIlxyXG4gICAgICAgIFtkaWFtZXRlcl09XCI0OFwiXHJcbiAgICAgID48L21hdC1zcGlubmVyPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlcG9ydHMtZ3JpZFwiICpuZ0lmPVwiIWlzTG9hZGluZ1Jlc3VsdFwiPlxyXG4gICAgICAgIDxhcHAtbmRmLXJlcG9ydFxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiByZXBvcnRDb25maWcuaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgICAgICBbZGF0YV09XCJyZXBvcnRzPy5yZXNwb25zZVwiXHJcbiAgICAgICAgICBbY3JpdGVyaWFdPVwiZmlsdGVyc1BhcmFtcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLXdpZHRoXT1cImNvbmZpZz8ubGF5b3V0Py53aWR0aCB8fCA0XCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtaGVpZ2h0XT1cImNvbmZpZz8ubGF5b3V0Py5oZWlnaHQgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtc3RhcnQtY29sdW1uXT1cImNvbmZpZz8ubGF5b3V0Py5jb2x1bW5Qb3NpdGlvbiB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1zdGFydC1yb3ddPVwiY29uZmlnPy5sYXlvdXQ/LnJvd1Bvc2l0aW9uIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICBbY2xhc3Mud2lkZV09XCJjb25maWc/LmxheW91dD8ud2lkdGggPj0gNlwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwiY29uZmlnPy5sYXlvdXQ/LnN0eWxlXCJcclxuICAgICAgICAgIGNsYXNzPVwicmVwb3J0cy1ncmlkX19pdGVtIHt7IGNvbmZpZz8ubGF5b3V0Py5zdHlsZUNsYXNzIH19IFwiXHJcbiAgICAgICAgICAob25OYXZpZ2F0ZSk9XCJvbk5hdmlnYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgKG9uT3Blbik9XCJvcGVuUmVwb3J0RGV0YWlscygkZXZlbnQsIGNvbmZpZylcIlxyXG4gICAgICAgID48L2FwcC1uZGYtcmVwb3J0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwibmRmLXJlcG9ydHNfX2RldGFpbHMgcHJpbnQ6aGlkZGVuXCJcclxuICAgIFtjbGFzcy5vcGVuZWRdPVwic2hvd0RldGFpbHNcIlxyXG4gICAgW0BzbGlkZUluT3V0XT1cInNob3dEZXRhaWxzID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxyXG4gICAgKEBzbGlkZUluT3V0LmRvbmUpPVwib25EZXRhaWxzQW5pbWF0aW9uRW5kKCRldmVudClcIlxyXG4gID5cclxuICAgIDxhcHAtbmRmLXRhYmxlXHJcbiAgICAgICpuZ0lmPVwicmVwb3J0RGV0YWlscyQgfCBhc3luYyBhcyByZXBvcnRcIlxyXG4gICAgICBbY29uZmlnXT1cInJlcG9ydC5jb25maWdcIlxyXG4gICAgICBbYWN0aXZlUXVlcnldPVwiYWN0aXZlRmlsdGVyc1F1ZXJ5JCB8IGFzeW5jXCJcclxuICAgICAgW2N1c3RvbUNyaXRlcmlhXT1cImRldGFpbHNGaWx0ZXJzUGFyYW1zJCB8IGFzeW5jXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIHNlYXJjaFRhYmxlVGVtcGxhdGUgbGV0LXRvZ2dsZT1cInRvZ2dsZVBhbmVsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19kZXRhaWxzX19oZWFkZXIgZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj4gZmlsdGVyX2FsdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGV0YWlsc1BhbmVsKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+IGNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxoMz5cclxuICAgICAgICAgIHt7IHJlcG9ydC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvaDM+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2FwcC1uZGYtdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXB0eUNvbnRlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250ZW50IGZsZXggaXRlbXMtY2VudGVyIGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVtcHR5Q29udGVudFRlbXBsYXRlIHx8IGRlZmF1bHRFbXB0eUNvbnRlbnRcIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlDb250ZW50PlxyXG4gIDxkaXYgY2xhc3M9XCJuby1kYXRhIG10LTI2XCI+XHJcbiAgICB7eyAnbm9EYXRhJyB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFLTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBRVQsRUFBRSxFQUNGLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0s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LFxyXG4gIHN0YXRlLFxyXG4gIHN0eWxlLFxyXG4gIHRyYW5zaXRpb24sXHJcbiAgdHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgY29tYmluZUxhdGVzdCxcclxuICBmb3JrSm9pbixcclxuICBmcm9tLFxyXG4gIGZyb21FdmVudCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIG9mLFxyXG4gIFJlcGxheVN1YmplY3QsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgZmlsdGVyLFxyXG4gIGZpbmFsaXplLFxyXG4gIG1hcCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFrZVVudGlsLFxyXG4gIHRhcCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0LCBGbHVpZEhlaWdodERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBBcGlSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtY29uZmlnLWVkaXRvci9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gIEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcbiAgQ1VTVE9NX1RFTVBMQVRFLFxyXG4gIEZpZWxkQ29uZmlnTW9kZWwsXHJcbiAgRmlsdGVyUXVlcnlTZXJ2aWNlLFxyXG4gIEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG4gIEZvcm1RdWVyeU1vZGVsLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi90YWJsZXMnO1xyXG5pbXBvcnQge1xyXG4gIEVNUFRZX0NPTlRFTlRfVEVNUExBVEUsXHJcbiAgSEVBREVSX1BBTkVMX1RFTVBMQVRFLFxyXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQge1xyXG4gIENyaXRlcmlhTW9kZWwsXHJcbiAgTmRmUmVwb3J0c0NvbmZpZyxcclxuICBSZXBvcnRDb25maWdNb2RlbCxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIENoYXJ0TWFuYWdlclNlcnZpY2UsXHJcbiAgTmRmUmVwb3J0c1NlcnZpY2UsXHJcbiAgUmVwb3J0Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgUmVwb3J0c0hvb2tzU2VydmljZSxcclxuICBSZXBvcnRzU3RhdGVTZXJ2aWNlLFxyXG4gIFJlcG9ydFRyYW5zZm9ybVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBtYXBUb05kZlRhYmxlQ29uZmlnLCBwcmVwYXJlTmRmVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbmV4cG9ydCBjb25zdCBzbGlkZUFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXHJcbiAgc3RhdGUoXHJcbiAgICAnY2xvc2VkJyxcclxuICAgIHN0eWxlKHtcclxuICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh2YXIoLS1uZGYtcmVwb3J0cy1kZXRhaWxzLXRyYW5zbGF0ZVgsIC0xMDAlKSknLFxyXG4gICAgfSlcclxuICApLFxyXG4gIHN0YXRlKCdvcGVuJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXHJcbiAgdHJhbnNpdGlvbignY2xvc2VkIDw9PiBvcGVuJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSksXHJcbl0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbmRmLXJlcG9ydHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZGYtcmVwb3J0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmRmLXJlcG9ydHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ25kZi1yZXBvcnRzJyxcclxuICAgICdbZGlyXSc6ICdkaXJlY3Rpb24nLFxyXG4gIH0sXHJcbiAgYW5pbWF0aW9uczogW3NsaWRlQW5pbWF0aW9uXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZlJlcG9ydHNDb21wb25lbnRcclxuICBleHRlbmRzIERlc3Ryb3lTdWJqZWN0XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXHJcbntcclxuICBAVmlld0NoaWxkKEZsdWlkSGVpZ2h0RGlyZWN0aXZlKSBmbHVpZERpcmVjdGl2ZTogRmx1aWRIZWlnaHREaXJlY3RpdmU7XHJcbiAgX2lzSGVpZ2h0VXBkYXRlZCA9IGZhbHNlO1xyXG4gIGRpcmVjdGlvbjogRGlyZWN0aW9uID0gJ3J0bCc7XHJcbiAgaXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG4gIGlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG4gIHJlcG9ydHNEYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIGlzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUXVlcnlTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuICAgIHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9PihudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Rm9ybVF1ZXJ5TW9kZWw+KCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlRmlsdGVyc1F1ZXJ5JCA9IHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmUmVwb3J0c0NvbmZpZz4obnVsbCk7XHJcbiAgcmVhZG9ubHkgcmVwb3J0Q29uZmlnJCA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KFxyXG4gICAgbnVsbFxyXG4gICk7XHJcbiAgcmVhZG9ubHkgZmlsdGVyc1BhcmFtcyQgPSB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF90cmlnZ2VyRmlsdGVyc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RldGFpbHNGaWx0ZXJzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q3JpdGVyaWFNb2RlbD4oXHJcbiAgICBudWxsXHJcbiAgKTtcclxuICByZWFkb25seSBkZXRhaWxzRmlsdGVyc1BhcmFtcyQgPSB0aGlzLl9kZXRhaWxzRmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgX3JlcG9ydERldGFpbHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGNvbmZpZzogTmRmVGFibGVDb25maWc7XHJcbiAgfT4obnVsbCk7XHJcblxyXG4gIGdldCBhY3RpdmVRdWVyeSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVRdWVyeVN1Yi5nZXRWYWx1ZSgpPy5jdXJyZW50O1xyXG4gIH1cclxuXHJcbiAgcmVwb3J0RGV0YWlscyQgPSB0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgYWdncmVnYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBZ2dyZWdhdGlvblJlc3BvbnNlPjtcclxuXHJcbiAgZ2V0IHNob3dEZXRhaWxzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGlzRGV0YWlsc09wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uZmlsdGVycztcclxuICB9XHJcblxyXG4gIGdldCByZXBvcnRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LnJlcG9ydHM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBqc29uRWRpdG9yRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlcG9ydHNLZXk6IHN0cmluZztcclxuICBlZGl0b3JUeXBlID0gTkRGX0VESVRPUl9UWVBFLlJFUE9SVFM7XHJcblxyXG4gIEBJbnB1dCgpIG5hdmlnYXRlUm91dGU6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGxvYWRDb25kaXRpb246ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2NvbmZpZzogTmRmUmVwb3J0c0NvbmZpZztcclxuICBASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25maWdTdWJqZWN0LmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChDVVNUT01fVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcclxuICBmaWx0ZXJDdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEhFQURFUl9QQU5FTF9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGhlYWRlclBhbmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoRU1QVFlfQ09OVEVOVF9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGVtcHR5Q29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICB0cmFja0J5Rm4gPSAoXzogbnVtYmVyLCByZXBvcnQ6IFJlcG9ydENvbmZpZ01vZGVsKSA9PiB7XHJcbiAgICByZXR1cm4gcmVwb3J0LmlkO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZpbHRlcnNNYXBwZXI6IEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbmRmUmVwb3J0c1NlcnZpY2U6IE5kZlJlcG9ydHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhcnRIZWxwZXJTZXJ2aWNlOiBDaGFydE1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtU2VydmljZTogUmVwb3J0VHJhbnNmb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9maWx0ZXJRdWVyeVNlcnZpY2U6IEZpbHRlclF1ZXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0YXRlU2VydmljZTogUmVwb3J0c1N0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBSZXBvcnRDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIF9yZXBvcnRzSG9va3NTZXJ2aWNlOiBSZXBvcnRzSG9va3NTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVwb3J0c0RhdGEkID0gdGhpcy5fcHJlcGFyZVJlcG9ydHMoKTtcclxuICAgIHRoaXMuX2hhbmRsZUtleWJvYXJkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLl90cmlnZ2VyRmlsdGVyc1N1Yi5uZXh0KHRydWUpO1xyXG4gIH07XHJcblxyXG4gIHJlc2V0RmlsdGVycyA9ICgpID0+IHtcclxuICAgIHRoaXMuX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKTtcclxuICB9O1xyXG5cclxuICBjYWxsTG9hZENvbmRpdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmxvYWRDb25kaXRpb24gJiYgdHlwZW9mIHRoaXMubG9hZENvbmRpdGlvbiA9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvYWRDb25kaXRpb24odGhpcy5hY3RpdmVRdWVyeSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHJlcG9ydHNLZXkgPSBjaGFuZ2VzLnJlcG9ydHNLZXk/LmN1cnJlbnRWYWx1ZTtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG4gICAgaWYgKHJlcG9ydHNLZXkgJiYgY29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnWW91IGNhbm5vdCBzZXQgYm90aCByZXBvcnRzS2V5IGFuZCByZXBvcnRzIENvbmZpZyBhdCB0aGUgc2FtZSB0aW1lLidcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJlcG9ydHNLZXkpIHtcclxuICAgICAgdGhpcy5fbG9hZFJlcG9ydHNDb25maWcocmVwb3J0c0tleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk5hdmlnYXRlKGRhdGE6IHsgcmVwb3J0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0pIHtcclxuICAgIGNvbnN0IHJlcG9ydCA9IGRhdGE/LnJlcG9ydDtcclxuICAgIGNvbnN0IF9jdXN0b21Sb3V0ZSA9IHJlcG9ydC5uYXZpZ2F0ZT8ucm91dGUgfHwgW107XHJcbiAgICAvLyBsZXQgcm91dGUgPSBbUk1TX0JBU0UucmVwbGFjZSgvXFwvJC8sICcnKV07XHJcbiAgICBsZXQgcm91dGUgPSB0aGlzLm5hdmlnYXRlUm91dGU7XHJcbiAgICBpZiAoISFfY3VzdG9tUm91dGUubGVuZ3RoKSB7XHJcbiAgICAgIHJvdXRlID0gWy4uLnJvdXRlLCAuLi5fY3VzdG9tUm91dGVdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XHJcbiAgICBpZiAocmVwb3J0Lm5hdmlnYXRlPy5pbmNsdWRlUGFyYW1zID8/IHRydWUpIHtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkgfHwge30pLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9maWx0ZXJRdWVyeVNlcnZpY2UuZW5jb2RlUXVlcnkodGhpcy5hY3RpdmVRdWVyeSk7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zWydmaWx0ZXJzJ10gPSBkYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShyb3V0ZSwgeyBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfSkudGhlbigoKSA9PiB7fSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVQYW5lbCgpIHtcclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhcnRIZWxwZXJTZXJ2aWNlLnJlc2l6ZUNoYXJ0cygpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHByaW50QWxsKCkge1xyXG4gICAgd2luZG93LnByaW50KCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJDaGFuZ2VkID0gKGNyaXRlcmlhOiBSZWNvcmQ8YW55LCBhbnk+KSA9PiB7XHJcbiAgICBpZiAoXy5pc0VxdWFsKHRoaXMuYWN0aXZlUXVlcnksIGNyaXRlcmlhKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUXVlcnlDaGFuZ2UuZW1pdChjcml0ZXJpYSk7XHJcbiAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeShjcml0ZXJpYSk7XHJcbiAgICBjb25zdCBfZGF0ZSA9IHRoaXMuX3ByZXBhcmVNYXBwZWRRdWVyeShjcml0ZXJpYSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpO1xyXG4gICAgdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KF9kYXRlKTtcclxuICB9O1xyXG5cclxuICBvbkNvbnRlbnRTY3JvbGwoaXNTY3JvbGxpbmc6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0YXRlU2VydmljZS5vbkNvbnRlbnRTY3JvbGwoaXNTY3JvbGxpbmcpO1xyXG5cclxuICAgIGlmIChpc1Njcm9sbGluZyAmJiAhdGhpcy5faXNIZWlnaHRVcGRhdGVkKSB7XHJcbiAgICAgIHRoaXMuX2lzSGVpZ2h0VXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmx1aWREaXJlY3RpdmUuc2NoZWR1bGVTZXRIZWlnaHQoMTAwKTtcclxuICAgIH0gZWxzZSBpZiAoIWlzU2Nyb2xsaW5nICYmIHRoaXMuX2lzSGVpZ2h0VXBkYXRlZCkge1xyXG4gICAgICB0aGlzLl9pc0hlaWdodFVwZGF0ZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5mbHVpZERpcmVjdGl2ZS5zY2hlZHVsZVNldEhlaWdodCgxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlblJlcG9ydERldGFpbHMoXHJcbiAgICBjcml0ZXJpYU1vZGVsOiBDcml0ZXJpYU1vZGVsLFxyXG4gICAgcmVwb3J0Q29uZmlnOiBSZXBvcnRDb25maWdNb2RlbFxyXG4gICkge1xyXG4gICAgaWYgKCFyZXBvcnRDb25maWc/LmRldGFpbHM/LmVuYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuX2RldGFpbHNGaWx0ZXJzU3ViamVjdC5uZXh0KHBhcmFtcyk7XHJcblxyXG4gICAgdGhpcy5pc1BhbmVsT3BlbmVkID0gZmFsc2U7XHJcbiAgICBjb25zdCBzb3VyY2UgPSByZXBvcnRDb25maWc/LmRldGFpbHM/LnNvdXJjZTtcclxuICAgIGNvbnN0IGNvbmZpZyQgPVxyXG4gICAgICBzb3VyY2UgJiYgdHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFRhYmxlQ29uZmlndXJhdGlvbihzb3VyY2UpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghIWRhdGE/Lm9wdGlvbnM/LmZpbHRlcnM/LmZpZWxkcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIF8ubWVyZ2UoZGF0YSwge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzOiBwcmVwYXJlTmRmVGFibGVGaWx0ZXJzKFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE/Lm9wdGlvbnM/LmZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVxyXG4gICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICA6IG9mKG1hcFRvTmRmVGFibGVDb25maWcodGhpcy5jb25maWcsIHJlcG9ydENvbmZpZy5kZXRhaWxzKSk7XHJcblxyXG4gICAgY29uZmlnJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgY29uZmlnLFxyXG4gICAgICAgICAgbGFiZWw6IHJlcG9ydENvbmZpZy5sYWJlbCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsb3NlRGV0YWlsc1BhbmVsKCkge1xyXG4gICAgdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIG9uRGV0YWlsc0FuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcclxuICAgIHRoaXMuaXNEZXRhaWxzT3BlbmVkID0gZXZlbnQudG9TdGF0ZSA9PT0gJ29wZW4nO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgdGhpcy5fY2hhcnRIZWxwZXJTZXJ2aWNlLmRlc3Ryb3lBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZUNyaXRlcmlhUGF5bG9hZChcclxuICAgIGNyaXRlcmlhOiBSZWNvcmQ8YW55LCBhbnk+LFxyXG4gICAgZmllbGRzOiBGaWVsZENvbmZpZ01vZGVsW10gPSB0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZChmaWVsZHMsIGNyaXRlcmlhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNyaXRlcmlhKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGFjY1trZXldID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiB2YWx1ZTtcclxuICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHt9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVSZXBvcnRzKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmdSZXN1bHQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLmZpbHRlcnNQYXJhbXMkLFxyXG4gICAgICB0aGlzLnJlcG9ydENvbmZpZyQsXHJcbiAgICAgIHRoaXMuX3RyaWdnZXJGaWx0ZXJzU3ViLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoW2NyaXRlcmlhLCBjb25maWddKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNvbmZpZz8ucmVxdWVzdDtcclxuICAgICAgICBpZiAoIXJlcXVlc3QpIHtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IF9wYXlsb2FkID0gY3JpdGVyaWE7XHJcbiAgICAgICAgaWYgKCFjcml0ZXJpYSAmJiAhIWNvbmZpZy5hY3RpdmVRdWVyeSkge1xyXG4gICAgICAgICAgX3BheWxvYWQgPSB0aGlzLnByZXBhcmVDcml0ZXJpYVBheWxvYWQoY29uZmlnLmFjdGl2ZVF1ZXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGEkID0gZnJvbShcclxuICAgICAgICAgIHRoaXMuX3JlcG9ydHNIb29rc1NlcnZpY2UuZXhlY3V0ZUJlZm9yZVN1Ym1pdCh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLnByZXBhcmVSZXF1ZXN0KHJlcXVlc3QsIGNyaXRlcmlhKSxcclxuICAgICAgICAgICAgcmVxdWVzdCxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLmdldERhdGEocmVxdWVzdCwgcmVzKSksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlcG9ydHM6IEFwaVJlc3BvbnNlTW9kZWwpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybVNlcnZpY2UucHJlcGFyZURhdGEocmVwb3J0cywgY29uZmlnKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW29mKGNvbmZpZyksIGRhdGEkXSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKFtjb25maWcsIHJlc3BvbnNlXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVBZ2dyZWdhdGlvbnMocmVzcG9uc2U/LmFnZ3JlZ2F0aW9ucyk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNvbmZpZyxcclxuICAgICAgICAgIHJlc3BvbnNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleWRvd24nKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5zaG93RGV0YWlsc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VEZXRhaWxzUGFuZWwoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZU1hcHBlZFF1ZXJ5KFxyXG4gICAgY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4sXHJcbiAgICBtb2RlOiAncGF5bG9hZCcgfCAncGFyYW1zJ1xyXG4gICkge1xyXG4gICAgcmV0dXJuIG1vZGUgPT0gJ3BheWxvYWQnXHJcbiAgICAgID8gdGhpcy5wcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNyaXRlcmlhKVxyXG4gICAgICA6IHtcclxuICAgICAgICAgIHBhcmFtczogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKSxcclxuICAgICAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlQWN0aXZlUXVlcnkocXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuX2FjdGl2ZVF1ZXJ5U3ViLm5leHQoe1xyXG4gICAgICBwcmV2aW91czogdGhpcy5hY3RpdmVRdWVyeSxcclxuICAgICAgY3VycmVudDogcXVlcnksXHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5uZXh0KHtcclxuICAgICAgcXVlcnksXHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgJiYgdGhpcy5hZ2dyZWdhdGlvbnMpIHtcclxuICAgICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlbG9hZFN0cmF0ZWd5ID0gdGhpcy5jb25maWc/LmZpbHRlcnM/LnJlbG9hZD8uc3RyYXRlZ3k7XHJcblxyXG4gICAgaWYgKHRoaXMuYWdncmVnYXRpb25zICYmIHJlbG9hZFN0cmF0ZWd5ID09PSAnbmV2ZXInKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5hZ2dyZWdhdGlvbnMgJiYgcmVsb2FkU3RyYXRlZ3kgPT09ICdvbkNoYW5nZScpIHtcclxuICAgICAgaWYgKHRoaXMuX3Nob3VsZFJlbG9hZE9uQ2hhbmdlKCkpIHtcclxuICAgICAgICB0aGlzLl91cGRhdGVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9ucyk7XHJcbiAgICB0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3VsZFJlbG9hZE9uQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5maWx0ZXJzPy5yZWxvYWQ/LnN0cmF0ZWd5ICE9PSAnb25DaGFuZ2UnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0cmlnZ2VyRmllbGRzID0gdGhpcy5jb25maWc/LmZpbHRlcnM/LnJlbG9hZD8udHJpZ2dlckZpZWxkcztcclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodHJpZ2dlckZpZWxkcykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbGlkRmllbGRzID0gdHJpZ2dlckZpZWxkcy5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICBpZiAoIXZhbGlkRmllbGRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYWN0aXZhdGVkUXVlcnkgPSB0aGlzLl9hY3RpdmVRdWVyeVN1Yi5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LmN1cnJlbnQgfHwge307XHJcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LnByZXZpb3VzIHx8IHt9O1xyXG5cclxuICAgIGNvbnN0IGNoYW5nZWRLZXlzID0gdGhpcy5fZ2V0Q2hhbmdlZEtleXMocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICByZXR1cm4gdmFsaWRGaWVsZHMuc29tZSgoZmllbGQpID0+IGNoYW5nZWRLZXlzLmluY2x1ZGVzKGZpZWxkKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRDaGFuZ2VkS2V5cyhcclxuICAgIHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGFsbEtleXMgPSBfLnVuaW9uKF8ua2V5cyhwcmV2aW91cyksIF8ua2V5cyhjdXJyZW50KSk7XHJcbiAgICByZXR1cm4gYWxsS2V5cy5maWx0ZXIoKGtleSkgPT4gIV8uaXNFcXVhbChwcmV2aW91c1trZXldLCBjdXJyZW50W2tleV0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUFnZ3JlZ2F0aW9ucyhhZ2dyZWdhdGlvbnM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBfLmNsb25lRGVlcChhZ2dyZWdhdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tDb25maWdDaGFuZ2UodmFsdWU6IE5kZlJlcG9ydHNDb25maWcpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlUXVlcnksIC4uLmNvbmZpZyB9ID0gdmFsdWU7XHJcbiAgICBjb25zdCB7IGFjdGl2ZVF1ZXJ5OiBhcSwgLi4uY3VycmVudENvbmZpZyB9ID1cclxuICAgICAgdGhpcy5fY29uZmlnU3ViamVjdC5nZXRWYWx1ZSgpIHx8IHt9O1xyXG5cclxuICAgIHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCA9ICFfLmlzRXF1YWwoY3VycmVudENvbmZpZywgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRSZXBvcnRzQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZVxyXG4gICAgICAuZ2V0UmVwb3J0c0NvbmZpZ3VyYXRpb24oa2V5KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICAgIHRoaXMuX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG4gICAgY29uc3QgdmFsdWUgPSBfLmNsb25lRGVlcChjb25maWcpO1xyXG4gICAgdGhpcy5fY2hlY2tDb25maWdDaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5fY29uZmlnU3ViamVjdC5uZXh0KHZhbHVlKTtcclxuICAgIGlmICh2YWx1ZT8uYWN0aXZlUXVlcnkgJiYgISFPYmplY3Qua2V5cyh2YWx1ZT8uYWN0aXZlUXVlcnkpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh2YWx1ZT8uYWN0aXZlUXVlcnkpO1xyXG4gICAgICB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQoXHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZU1hcHBlZFF1ZXJ5KHZhbHVlPy5hY3RpdmVRdWVyeSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmFjdGl2ZVF1ZXJ5IHx8IE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICEhY29uZmlnPy5maWx0ZXJzLnZpc2libGU7XHJcbiAgICB0aGlzLmlzRGV0YWlsc09wZW5lZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKSB7XHJcbiAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh7fSk7XHJcbiAgICB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250YWluZXJcIlxyXG4gIFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuICBbZGlyXT1cImRpcmVjdGlvblwiXHJcbiAgbmRmRmx1aWRIZWlnaHRcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYWJzb2x1dGUgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbG9hZGluZy1yZXN1bHRcIlxyXG4gICAgKm5nSWY9XCJpc0xvYWRpbmdSZXN1bHQgJiYgY2FsbExvYWRDb25kaXRpb24oKVwiXHJcbiAgPlxyXG4gICAgPG1hdC1zcGlubmVyIGNsYXNzPVwibXQtNSBteC1hdXRvXCIgW2RpYW1ldGVyXT1cIjQ4XCI+PC9tYXQtc3Bpbm5lcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19wYW5lbCBwcmludDpoaWRkZW5cIj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyUGFuZWxUZW1wbGF0ZVwiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcbiAgICAgICAgJGltcGxpY2l0OiBhZ2dyZWdhdGlvbnMsXHJcbiAgICAgICAgZmlsdGVyQ2hhbmdlZDogZmlsdGVyQ2hhbmdlZCxcclxuICAgICAgICBhY3RpdmVRdWVyeTogYWN0aXZlUXVlcnksXHJcbiAgICAgICAgdHJpZ2dlclVwZGF0ZTogdHJpZ2dlclVwZGF0ZSxcclxuICAgICAgICByZXNldDogcmVzZXRGaWx0ZXJzLFxyXG4gICAgICAgIGNvbmZpZzogY29uZmlnXHJcbiAgICAgIH1cIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxhcHAtZmlsdGVycy1wYW5lbFxyXG4gICAgICAqbmdJZj1cIiEhZmlsdGVyc0NvbmZpZz8uZmllbGRzPy5sZW5ndGggJiYgY2FsbExvYWRDb25kaXRpb24oKVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZz8uZmllbGRzXCJcclxuICAgICAgW2FnZ3JlZ2F0aW9uc109XCJhZ2dyZWdhdGlvbnNcIlxyXG4gICAgICAoZmlsdGVyQ2hhbmdlZCk9XCJmaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICBbYWN0aXZlUXVlcnldPVwiYWN0aXZlRmlsdGVyc1F1ZXJ5JCB8IGFzeW5jXCJcclxuICAgICAgY2xhc3M9XCJuZGYtcmVwb3J0c19fZmlsdGVyc1wiXHJcbiAgICAgIFtjdXN0b21UZW1wbGF0ZVJlZl09XCJmaWx0ZXJDdXN0b21UZW1wbGF0ZVwiXHJcbiAgICA+PC9hcHAtZmlsdGVycy1wYW5lbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbGxMb2FkQ29uZGl0aW9uKCk7IGVsc2UgZW1wdHlDb250ZW50XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnRcIlxyXG4gICAgICAoc2Nyb2xsZWQpPVwib25Db250ZW50U2Nyb2xsKCRldmVudClcIlxyXG4gICAgICAqbmdJZj1cInJlcG9ydHNEYXRhJCB8IGFzeW5jIGFzIHJlcG9ydHNcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2hlYWRlciBmbGV4IHB0LTQgcHJpbnQ6aGlkZGVuXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cInRvZ2dsZS1idXR0b25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj4gZmlsdGVyX2FsdDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGFwcC1lZGl0b3ItYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImpzb25FZGl0b3JFbmFibGVkICYmIHJlcG9ydHNLZXlcIlxyXG4gICAgICAgICAgW2tleV09XCJyZXBvcnRzS2V5XCJcclxuICAgICAgICAgIFt0eXBlXT1cImVkaXRvclR5cGVcIlxyXG4gICAgICAgID48L2FwcC1lZGl0b3ItYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJjb25maWc/Lm9wdGlvbnM/LnByaW50XCJcclxuICAgICAgICAgIGNsYXNzPVwicHJpbnQtYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJwcmludEFsbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+IHByaW50PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVwb3J0cy1ncmlkXCIgKm5nSWY9XCIhaXNMb2FkaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgPGFwcC1uZGYtcmVwb3J0XHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29uZmlnIG9mIHJlcG9ydENvbmZpZy5pdGVtczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgICAgIFtkYXRhXT1cInJlcG9ydHM/LnJlc3BvbnNlXCJcclxuICAgICAgICAgIFtjcml0ZXJpYV09XCJmaWx0ZXJzUGFyYW1zJCB8IGFzeW5jXCJcclxuICAgICAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtd2lkdGhdPVwiY29uZmlnPy5sYXlvdXQ/LndpZHRoIHx8IDRcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1oZWlnaHRdPVwiY29uZmlnPy5sYXlvdXQ/LmhlaWdodCB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1zdGFydC1jb2x1bW5dPVwiY29uZmlnPy5sYXlvdXQ/LmNvbHVtblBvc2l0aW9uIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLXN0YXJ0LXJvd109XCJjb25maWc/LmxheW91dD8ucm93UG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuICAgICAgICAgIFtjbGFzcy53aWRlXT1cImNvbmZpZz8ubGF5b3V0Py53aWR0aCA+PSA2XCJcclxuICAgICAgICAgIFtzdHlsZV09XCJjb25maWc/LmxheW91dD8uc3R5bGVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJyZXBvcnRzLWdyaWRfX2l0ZW0ge3sgY29uZmlnPy5sYXlvdXQ/LnN0eWxlQ2xhc3MgfX0gXCJcclxuICAgICAgICAgIChvbk5hdmlnYXRlKT1cIm9uTmF2aWdhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAob25PcGVuKT1cIm9wZW5SZXBvcnREZXRhaWxzKCRldmVudCwgY29uZmlnKVwiXHJcbiAgICAgICAgPjwvYXBwLW5kZi1yZXBvcnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJuZGYtcmVwb3J0c19fZGV0YWlscyBwcmludDpoaWRkZW5cIlxyXG4gICAgW2NsYXNzLm9wZW5lZF09XCJzaG93RGV0YWlsc1wiXHJcbiAgICBbQHNsaWRlSW5PdXRdPVwic2hvd0RldGFpbHMgPyAnb3BlbicgOiAnY2xvc2VkJ1wiXHJcbiAgICAoQHNsaWRlSW5PdXQuZG9uZSk9XCJvbkRldGFpbHNBbmltYXRpb25FbmQoJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPGFwcC1uZGYtdGFibGVcclxuICAgICAgKm5nSWY9XCJyZXBvcnREZXRhaWxzJCB8IGFzeW5jIGFzIHJlcG9ydFwiXHJcbiAgICAgIFtjb25maWddPVwicmVwb3J0LmNvbmZpZ1wiXHJcbiAgICAgIFthY3RpdmVRdWVyeV09XCJhY3RpdmVGaWx0ZXJzUXVlcnkkIHwgYXN5bmNcIlxyXG4gICAgICBbY3VzdG9tQ3JpdGVyaWFdPVwiZGV0YWlsc0ZpbHRlcnNQYXJhbXMkIHwgYXN5bmNcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgc2VhcmNoVGFibGVUZW1wbGF0ZSBsZXQtdG9nZ2xlPVwidG9nZ2xlUGFuZWxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2RldGFpbHNfX2hlYWRlciBmbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPiBmaWx0ZXJfYWx0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEZXRhaWxzUGFuZWwoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj4gY2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGgzPlxyXG4gICAgICAgICAge3sgcmVwb3J0LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvYXBwLW5kZi10YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2VtcHR5Q29udGVudD5cclxuICA8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnQgZmxleCBpdGVtcy1jZW50ZXIgZmxleC1ncm93LTFcIj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlDb250ZW50VGVtcGxhdGUgfHwgZGVmYXVsdEVtcHR5Q29udGVudFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eUNvbnRlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEgbXQtMjZcIj5cclxuICAgIHt7ICdub0RhdGEnIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDdXN0b21DaGFydE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jaGFydHMvbW9kZWxzJztcclxuaW1wb3J0IHsgQ0hBUlRTX1RZUEVTLCBUSU1FX0dST1VQUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0b3JWYWx1ZU9iamVjdFxyXG59IGZyb20gJy4uLy4uLy4uL25kZi1maWx0ZXJzL21vZGVscy9vcGVyYXRvci12YWx1ZS1vYmplY3QnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ2hhcnRUeXBlcyA9ICh0eXBlb2YgQ0hBUlRTX1RZUEVTKVtrZXlvZiB0eXBlb2YgQ0hBUlRTX1RZUEVTXTtcclxuXHJcbmV4cG9ydCB0eXBlIFRpbWVHcm91cHMgPSAodHlwZW9mIFRJTUVfR1JPVVBTKVtrZXlvZiB0eXBlb2YgVElNRV9HUk9VUFNdO1xyXG5cclxudHlwZSBCYXNlQ2hhcnRUeXBlPEtleSBleHRlbmRzIENoYXJ0VHlwZXM+ID0gS2V5IGV4dGVuZHNcclxuXHR8ICh0eXBlb2YgQ0hBUlRTX1RZUEVTKVsndmVydGljYWxCYXInXVxyXG5cdHwgKHR5cGVvZiBDSEFSVFNfVFlQRVMpWydob3Jpem9udGFsQmFyJ11cclxuXHQ/ICdiYXInXHJcblx0OiBLZXk7XHJcblxyXG5leHBvcnQgdHlwZSBDaGFydE9wdGlvbnNCeVR5cGUgPSB7XHJcblx0W0tleSBpbiBDaGFydFR5cGVzXT86IEN1c3RvbUNoYXJ0T3B0aW9uczxCYXNlQ2hhcnRUeXBlPEtleT4+O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgQ3JpdGVyaWFNb2RlbCA9IHtcclxuXHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdHBheWxvYWQ/OiB7XHJcblx0XHRwcmVkaWNhdGVMaXN0OiBPcGVyYXRvclZhbHVlT2JqZWN0W107XHJcblx0XHRhZ2dyZWdhdGlvbk5hbWVzPzoge1xyXG5cdFx0XHRuYW1lOiBzdHJpbmc7XHJcblx0XHRcdGludGVydmFsOiBUaW1lR3JvdXBzO1xyXG5cdFx0fVtdO1xyXG5cdH0gJiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59IHwgbnVsbDtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZXJhdG9yVmFsdWVPYmplY3QgfSBmcm9tICcuLi8uLi8uLi9uZGYtZmlsdGVycy9tb2RlbHMvb3BlcmF0b3ItdmFsdWUtb2JqZWN0JztcclxuaW1wb3J0IHsgQ3VzdG9tQ2hhcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vY2hhcnRzL21vZGVscyc7XHJcbmltcG9ydCB7IENIQVJUU19UWVBFUywgVElNRV9HUk9VUFMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCc7XHJcblxyXG5leHBvcnQgdHlwZSBDaGFydFR5cGVzID0gKHR5cGVvZiBDSEFSVFNfVFlQRVMpW2tleW9mIHR5cGVvZiBDSEFSVFNfVFlQRVNdO1xyXG5cclxuZXhwb3J0IHR5cGUgVGltZUdyb3VwcyA9ICh0eXBlb2YgVElNRV9HUk9VUFMpW2tleW9mIHR5cGVvZiBUSU1FX0dST1VQU107XHJcblxyXG50eXBlIEJhc2VDaGFydFR5cGU8S2V5IGV4dGVuZHMgQ2hhcnRUeXBlcz4gPSBLZXkgZXh0ZW5kc1xyXG4gIHwgKHR5cGVvZiBDSEFSVFNfVFlQRVMpWyd2ZXJ0aWNhbEJhciddXHJcbiAgfCAodHlwZW9mIENIQVJUU19UWVBFUylbJ2hvcml6b250YWxCYXInXVxyXG4gID8gJ2JhcidcclxuICA6IEtleTtcclxuXHJcbmV4cG9ydCB0eXBlIENoYXJ0T3B0aW9uc0J5VHlwZSA9IHtcclxuICBbS2V5IGluIENoYXJ0VHlwZXNdPzogQ3VzdG9tQ2hhcnRPcHRpb25zPEJhc2VDaGFydFR5cGU8S2V5Pj47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDcml0ZXJpYU1vZGVsID0ge1xyXG4gIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgcGF5bG9hZD86IHtcclxuICAgIHByZWRpY2F0ZUxpc3Q6IE9wZXJhdG9yVmFsdWVPYmplY3RbXTtcclxuICAgIGFnZ3JlZ2F0aW9uTmFtZXM/OiB7XHJcbiAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgaW50ZXJ2YWw6IFRpbWVHcm91cHM7XHJcbiAgICB9W107XHJcbiAgfSAmIFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn0gfCBudWxsO1xyXG5cclxuZXhwb3J0IHR5cGUgQWN0aW9uSG9va1JlcXVlc3QgPSB7XHJcbiAgcmVxdWVzdDogTmRmUmVwb3J0c1JlcXVlc3Q7XHJcbiAgZGF0YToge1xyXG4gICAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9O1xyXG59O1xyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9keW5hbWljLWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBCYXNlUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcclxuaW1wb3J0IHsgR3JhcGhEaWFsb2dDb25maWcgfSBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCc7XHJcbmltcG9ydCB7IFJlcG9ydERhdGFTb3VyY2UgfSBmcm9tICcuL3JlcG9ydC1kYXRhLXNvdXJjZSc7XHJcbmltcG9ydCB7IFRpbWVHcm91cHMgfSBmcm9tICcuL2NvbW1vbic7XHJcbmltcG9ydCB7IEN1c3RvbUNoYXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uL2NoYXJ0cyc7XHJcbmltcG9ydCB7IEV2YWx1YXRlZFN0cmluZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcblxyXG4vKipcclxuICogQmFzZSBjb25maWd1cmF0aW9uIGZvciBjaGFydCByZXBvcnRzIHRoYXQgaW5jbHVkZSBkaWFsb2cgb3B0aW9uc1xyXG4gKi9cclxudHlwZSBSZXBvcnRDaGFydENvbmZpZyA9IEJhc2VSZXBvcnRDb25maWcgJiB7IGRpYWxvZz86IEdyYXBoRGlhbG9nQ29uZmlnIH07XHJcblxyXG4vKipcclxuICogRGVmaW5pdGlvbiBvZiBkeW5hbWljIGxpbmUgY2hhcnQgb3B0aW9ucyB3aXRoIHBsdWdpbnMgYXMgc3RyaW5ncyAodXNlZCBpbiBjb25maWd1cmF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydE9wdGlvbnNEZWZpbml0aW9uID0ge1xyXG5cdHR5cGU6ICdsaW5lJztcclxuXHRvcHRpb25zPzogQ3VzdG9tQ2hhcnRPcHRpb25zPCdsaW5lJz47XHJcblx0ZGF0YXNldHM/OiBPbWl0PENoYXJ0RGF0YXNldDwnbGluZSc+LCAnZGF0YSc+W107XHJcblx0cGx1Z2lucz86IHN0cmluZ1tdO1xyXG5cdGNvbG9ycz86IHN0cmluZ1tdO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIER5bmFtaWMgbGluZSBjaGFydCBvcHRpb25zIHdpdGggcGx1Z2lucyBhcyBQbHVnaW4gb2JqZWN0cyAodXNlZCBpbiBpbXBsZW1lbnRhdGlvbilcclxuICovXHJcbmV4cG9ydCB0eXBlIER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zID0gT21pdDxEeW5hbWljTGluZUNoYXJ0T3B0aW9uc0RlZmluaXRpb24sICdwbHVnaW5zJz4gJiB7XHJcblx0cGx1Z2lucz86IFBsdWdpbjwnbGluZSc+W107XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcGxldGUgZGVmaW5pdGlvbiBvZiBhIGR5bmFtaWMgbGluZSBjaGFydCAodXNlZCBpbiBjb25maWd1cmF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydERlZmluaXRpb24gPSBSZXBvcnRDaGFydENvbmZpZyAmIHtcclxuXHRtb2RlOiAnZHluYW1pY0xpbmUnO1xyXG5cdHByZWZpeD86IHN0cmluZztcclxuXHRjb2xvcnM/OiBzdHJpbmdbXTtcclxuXHRwcmludD86IGJvb2xlYW47XHJcblx0cmVxdWVzdDogTmRmUmVwb3J0c1JlcXVlc3QgJiB7XHJcblx0XHRhY3Rpb25zPzoge1xyXG5cdFx0XHRiZWZvcmVTdWJtaXQ/OiBFdmFsdWF0ZWRTdHJpbmc8J3BheWxvYWQnPjtcclxuXHRcdH07XHJcblx0fTtcclxuXHRkYXRhc291cmNlOiAoeyBhZ2dyZWdhdGlvbjogc3RyaW5nIH0gJiBSZXBvcnREYXRhU291cmNlKVtdO1xyXG5cdGdyb3VwPzoge1xyXG5cdFx0YWN0aXZlOiBib29sZWFuO1xyXG5cdFx0c2VsZWN0ZWQ/OiBUaW1lR3JvdXBzO1xyXG5cdH07XHJcblx0Y2hhcnQ6IER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zRGVmaW5pdGlvbjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wbGV0ZSBkeW5hbWljIGxpbmUgY2hhcnQgd2l0aCBwcm9jZXNzZWQgcGx1Z2lucyAodXNlZCBpbiBpbXBsZW1lbnRhdGlvbilcclxuICovXHJcbmV4cG9ydCB0eXBlIER5bmFtaWNMaW5lQ2hhcnQgPSBPbWl0PER5bmFtaWNMaW5lQ2hhcnREZWZpbml0aW9uLCAnY2hhcnQnPiAmIHtcclxuXHRjaGFydDogRHluYW1pY0xpbmVDaGFydE9wdGlvbnM7XHJcbn07XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9keW5hbWljLWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBDdXN0b21DaGFydE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jaGFydHMnO1xyXG5pbXBvcnQgeyBCYXNlUmVwb3J0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcclxuaW1wb3J0IHsgVGltZUdyb3VwcyB9IGZyb20gJy4vY29tbW9uJztcclxuaW1wb3J0IHsgR3JhcGhEaWFsb2dDb25maWcgfSBmcm9tICcuL2dyYXBoLWRlZmluaXRpb24nO1xyXG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlIH0gZnJvbSAnLi9yZXBvcnQtZGF0YS1zb3VyY2UnO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdCc7XHJcblxyXG4vKipcclxuICogQmFzZSBjb25maWd1cmF0aW9uIGZvciBjaGFydCByZXBvcnRzIHRoYXQgaW5jbHVkZSBkaWFsb2cgb3B0aW9uc1xyXG4gKi9cclxudHlwZSBSZXBvcnRDaGFydENvbmZpZyA9IEJhc2VSZXBvcnRDb25maWcgJiB7IGRpYWxvZz86IEdyYXBoRGlhbG9nQ29uZmlnIH07XHJcblxyXG4vKipcclxuICogRGVmaW5pdGlvbiBvZiBkeW5hbWljIGxpbmUgY2hhcnQgb3B0aW9ucyB3aXRoIHBsdWdpbnMgYXMgc3RyaW5ncyAodXNlZCBpbiBjb25maWd1cmF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydE9wdGlvbnNEZWZpbml0aW9uID0ge1xyXG5cdHR5cGU6ICdsaW5lJztcclxuXHRvcHRpb25zPzogQ3VzdG9tQ2hhcnRPcHRpb25zPCdsaW5lJz47XHJcblx0ZGF0YXNldHM/OiBPbWl0PENoYXJ0RGF0YXNldDwnbGluZSc+LCAnZGF0YSc+W107XHJcblx0cGx1Z2lucz86IHN0cmluZ1tdO1xyXG5cdGNvbG9ycz86IHN0cmluZ1tdO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIER5bmFtaWMgbGluZSBjaGFydCBvcHRpb25zIHdpdGggcGx1Z2lucyBhcyBQbHVnaW4gb2JqZWN0cyAodXNlZCBpbiBpbXBsZW1lbnRhdGlvbilcclxuICovXHJcbmV4cG9ydCB0eXBlIER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zID0gT21pdDxEeW5hbWljTGluZUNoYXJ0T3B0aW9uc0RlZmluaXRpb24sICdwbHVnaW5zJz4gJiB7XHJcblx0cGx1Z2lucz86IFBsdWdpbjwnbGluZSc+W107XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcGxldGUgZGVmaW5pdGlvbiBvZiBhIGR5bmFtaWMgbGluZSBjaGFydCAodXNlZCBpbiBjb25maWd1cmF0aW9uKVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRHluYW1pY0xpbmVDaGFydERlZmluaXRpb24gPSBSZXBvcnRDaGFydENvbmZpZyAmIHtcclxuXHRtb2RlOiAnZHluYW1pY0xpbmUnO1xyXG5cdHByZWZpeD86IHN0cmluZztcclxuXHRjb2xvcnM/OiBzdHJpbmdbXTtcclxuXHRwcmludD86IGJvb2xlYW47XHJcblx0cmVxdWVzdDogTmRmUmVwb3J0c1JlcXVlc3QgJiB7XHJcblx0XHRhY3Rpb25zPzoge1xyXG5cdFx0XHRiZWZvcmVTdWJtaXQ/OiBzdHJpbmc7XHJcblx0XHR9O1xyXG5cdH07XHJcblx0ZGF0YXNvdXJjZTogKHsgYWdncmVnYXRpb246IHN0cmluZyB9ICYgUmVwb3J0RGF0YVNvdXJjZSlbXTtcclxuXHRncm91cD86IHtcclxuXHRcdGFjdGl2ZTogYm9vbGVhbjtcclxuXHRcdHNlbGVjdGVkPzogVGltZUdyb3VwcztcclxuXHR9O1xyXG5cdGNoYXJ0OiBEeW5hbWljTGluZUNoYXJ0T3B0aW9uc0RlZmluaXRpb247XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcGxldGUgZHluYW1pYyBsaW5lIGNoYXJ0IHdpdGggcHJvY2Vzc2VkIHBsdWdpbnMgKHVzZWQgaW4gaW1wbGVtZW50YXRpb24pXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBEeW5hbWljTGluZUNoYXJ0ID0gT21pdDxEeW5hbWljTGluZUNoYXJ0RGVmaW5pdGlvbiwgJ2NoYXJ0Jz4gJiB7XHJcblx0Y2hhcnQ6IER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zO1xyXG59O1xyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9uZGYtcmVwb3J0cy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2YWx1YXRlZFN0cmluZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IEZpZWxkQ29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb25Nb2RlbCB9IGZyb20gJy4vcmVwb3J0LWNvbmZpZyc7XHJcbmltcG9ydCB7IE5kZlJlcG9ydHNSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0JztcclxuXHJcbmV4cG9ydCB0eXBlIE5kZlJlcG9ydHNGaWx0ZXJzUmVsb2FkQ29uZmlnID1cclxuICB8IHsgc3RyYXRlZ3k6ICdhbHdheXMnIH1cclxuICB8IHsgc3RyYXRlZ3k6ICduZXZlcicgfVxyXG4gIHwgeyBzdHJhdGVneTogJ29uQ2hhbmdlJzsgdHJpZ2dlckZpZWxkczogc3RyaW5nW10gfTtcclxuXHJcbmV4cG9ydCB0eXBlIE5kZlJlcG9ydHNGaWx0ZXJzID0ge1xyXG4gIG1vZGU6ICdwYXlsb2FkJyB8ICdwYXJhbXMnO1xyXG4gIGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdO1xyXG4gIHZpc2libGU/OiBib29sZWFuO1xyXG4gIHRvZ2dsZVBhbmVsPzogYm9vbGVhbjtcclxuICByZWxvYWQ/OiBOZGZSZXBvcnRzRmlsdGVyc1JlbG9hZENvbmZpZztcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydHNEZWZpbml0aW9uID0ge1xyXG4gIGNvbmRpdGlvbj86IEV2YWx1YXRlZFN0cmluZztcclxuICBpdGVtczogUmVwb3J0RGVmaW5pdGlvbk1vZGVsW107XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBOZGZSZXBvcnRzQ29uZmlnID0ge1xyXG4gIHJlcXVlc3Q6IE5kZlJlcG9ydHNSZXF1ZXN0O1xyXG4gIGZpbHRlcnM/OiBOZGZSZXBvcnRzRmlsdGVycztcclxuICBvcHRpb25zPzoge1xyXG4gICAgcHJpbnQ/OiBib29sZWFuO1xyXG4gIH07XHJcbiAgcmVwb3J0czogUmVwb3J0c0RlZmluaXRpb247XHJcbiAgYWN0aXZlUXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59O1xyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL21vZGVscy9uZGYtcmVwb3J0cy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2YWx1YXRlZFN0cmluZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IEZpZWxkQ29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb25Nb2RlbCB9IGZyb20gJy4vcmVwb3J0LWNvbmZpZyc7XHJcbmltcG9ydCB7IE5kZlJlcG9ydHNSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0JztcclxuXHJcbmV4cG9ydCB0eXBlIE5kZlJlcG9ydHNGaWx0ZXJzUmVsb2FkQ29uZmlnID1cclxuICB8IHsgc3RyYXRlZ3k6ICdhbHdheXMnIH1cclxuICB8IHsgc3RyYXRlZ3k6ICduZXZlcicgfVxyXG4gIHwgeyBzdHJhdGVneTogJ29uQ2hhbmdlJzsgdHJpZ2dlckZpZWxkczogc3RyaW5nW10gfTtcclxuXHJcbmV4cG9ydCB0eXBlIE5kZlJlcG9ydHNGaWx0ZXJzID0ge1xyXG4gIG1vZGU6ICdwYXlsb2FkJyB8ICdwYXJhbXMnO1xyXG4gIGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdO1xyXG4gIHZpc2libGU/OiBib29sZWFuO1xyXG4gIHRvZ2dsZVBhbmVsPzogYm9vbGVhbjtcclxuICByZWxvYWQ/OiBOZGZSZXBvcnRzRmlsdGVyc1JlbG9hZENvbmZpZztcclxuICBjb25kaXRpb24/OiBFdmFsdWF0ZWRTdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBSZXBvcnRzRGVmaW5pdGlvbiA9IHtcclxuICBjb25kaXRpb24/OiBFdmFsdWF0ZWRTdHJpbmc7XHJcbiAgaXRlbXM6IFJlcG9ydERlZmluaXRpb25Nb2RlbFtdO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTmRmUmVwb3J0c0NvbmZpZyA9IHtcclxuICByZXF1ZXN0OiBOZGZSZXBvcnRzUmVxdWVzdDtcclxuICBmaWx0ZXJzPzogTmRmUmVwb3J0c0ZpbHRlcnM7XHJcbiAgb3B0aW9ucz86IHtcclxuICAgIHByaW50PzogYm9vbGVhbjtcclxuICB9O1xyXG4gIHJlcG9ydHM6IFJlcG9ydHNEZWZpbml0aW9uO1xyXG4gIGFjdGl2ZVF1ZXJ5PzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufTtcclxuIl19
@@ -2,9 +2,9 @@ import { Pipe } from '@angular/core';
2
2
  import { Evaluator } from '../../../../shared';
3
3
  import * as i0 from "@angular/core";
4
4
  export class CheckConditionPipe {
5
- transform(activeQuery, reports, config) {
6
- if (reports === null || reports === void 0 ? void 0 : reports.condition) {
7
- return Evaluator.evaluate(reports === null || reports === void 0 ? void 0 : reports.condition, { activeQuery, config }, 'show');
5
+ transform(activeQuery, condition, config) {
6
+ if (condition) {
7
+ return Evaluator.evaluate(condition, { activeQuery, config }, 'show');
8
8
  }
9
9
  return true;
10
10
  }
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
17
17
  name: 'checkCondition',
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29uZGl0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvcGlwZXMvY2hlY2stY29uZGl0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU0vQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFNBQVMsQ0FDUCxXQUFnQyxFQUNoQyxPQUEwQixFQUMxQixNQUF3QjtRQUV4QixJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUN2QixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUyxFQUNsQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFDdkIsTUFBTSxDQUNQLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Z0hBZFUsa0JBQWtCOzhHQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFIOUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZ0JBQWdCO2lCQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRXZhbHVhdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgTmRmUmVwb3J0c0NvbmZpZywgUmVwb3J0c0RlZmluaXRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjaGVja0NvbmRpdGlvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja0NvbmRpdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oXHJcbiAgICBhY3RpdmVRdWVyeTogUmVjb3JkPHN0cmluZywgYW55PixcclxuICAgIHJlcG9ydHM6IFJlcG9ydHNEZWZpbml0aW9uLFxyXG4gICAgY29uZmlnOiBOZGZSZXBvcnRzQ29uZmlnXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBpZiAocmVwb3J0cz8uY29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiBFdmFsdWF0b3IuZXZhbHVhdGUoXHJcbiAgICAgICAgcmVwb3J0cz8uY29uZGl0aW9uLFxyXG4gICAgICAgIHsgYWN0aXZlUXVlcnksIGNvbmZpZyB9LFxyXG4gICAgICAgICdzaG93J1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29uZGl0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvcGlwZXMvY2hlY2stY29uZGl0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU0vQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFNBQVMsQ0FDUCxXQUFnQyxFQUNoQyxTQUFpQixFQUNqQixNQUF3QjtRQUV4QixJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O2dIQVZVLGtCQUFrQjs4R0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2YWx1YXRvciB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IE5kZlJlcG9ydHNDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjaGVja0NvbmRpdGlvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja0NvbmRpdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oXHJcbiAgICBhY3RpdmVRdWVyeTogUmVjb3JkPHN0cmluZywgYW55PixcclxuICAgIGNvbmRpdGlvbjogc3RyaW5nLFxyXG4gICAgY29uZmlnOiBOZGZSZXBvcnRzQ29uZmlnXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiBFdmFsdWF0b3IuZXZhbHVhdGUoY29uZGl0aW9uLCB7IGFjdGl2ZVF1ZXJ5LCBjb25maWcgfSwgJ3Nob3cnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=