igniteui-angular 14.1.0-alpha.1 → 14.1.0-alpha.2

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.
@@ -1,9 +1,8 @@
1
1
  import { Component, Input, HostBinding, HostListener, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { GridColumnDataType } from '../../data-operations/data-util';
3
- import { getLocaleCurrencyCode } from '@angular/common';
3
+ import { formatCurrency, formatDate, formatNumber, formatPercent, getLocaleCurrencyCode, getLocaleCurrencySymbol } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
- import * as i2 from "../common/pipes";
7
6
  export class IgxSummaryCellComponent {
8
7
  constructor(element) {
9
8
  this.element = element;
@@ -56,41 +55,53 @@ export class IgxSummaryCellComponent {
56
55
  return this.column.pipeArgs.currencyCode ?
57
56
  this.column.pipeArgs.currencyCode : getLocaleCurrencyCode(this.grid.locale);
58
57
  }
59
- translateSummary(summary) {
60
- return this.grid.resourceStrings[`igx_grid_summary_${summary.key}`] || summary.label;
61
- }
62
- /**
63
- * @hidden @internal
64
- */
65
- isNumberColumn() {
66
- return this.column.dataType === GridColumnDataType.Number;
67
- }
68
58
  /**
69
59
  * @hidden @internal
70
60
  */
71
- isDateKindColumn() {
72
- return this.column.dataType === GridColumnDataType.Date ||
73
- this.column.dataType === GridColumnDataType.DateTime ||
74
- this.column.dataType === GridColumnDataType.Time;
61
+ get currencySymbol() {
62
+ return this.column.pipeArgs.display ?
63
+ this.column.pipeArgs.display : getLocaleCurrencySymbol(this.grid.locale);
75
64
  }
76
- /**
77
- * @hidden @internal
78
- */
79
- isCurrencyColumn() {
80
- return this.column.dataType === GridColumnDataType.Currency;
65
+ translateSummary(summary) {
66
+ return this.grid.resourceStrings[`igx_grid_summary_${summary.key}`] || summary.label;
81
67
  }
82
68
  /**
83
69
  * @hidden @internal
84
70
  */
85
- isPercentColumn() {
86
- return this.column.dataType === GridColumnDataType.Percent;
71
+ formatSummaryResult(summary) {
72
+ if (summary.summaryResult === undefined || summary.summaryResult === null || summary.summaryResult === '') {
73
+ return '';
74
+ }
75
+ if (this.summaryFormatter) {
76
+ return this.summaryFormatter(summary, this.column.summaries);
77
+ }
78
+ const args = this.column.pipeArgs;
79
+ const locale = this.grid.locale;
80
+ if (summary.key === 'count') {
81
+ return formatNumber(summary.summaryResult, locale);
82
+ }
83
+ if (summary.defaultFormatting) {
84
+ switch (this.column.dataType) {
85
+ case GridColumnDataType.Number:
86
+ return formatNumber(summary.summaryResult, locale, args.digitsInfo);
87
+ case GridColumnDataType.Date:
88
+ case GridColumnDataType.DateTime:
89
+ case GridColumnDataType.Time:
90
+ return formatDate(summary.summaryResult, args.format, locale, args.timezone);
91
+ case GridColumnDataType.Currency:
92
+ return formatCurrency(summary.summaryResult, locale, this.currencySymbol, this.currencyCode, args.digitsInfo);
93
+ case GridColumnDataType.Percent:
94
+ return formatPercent(summary.summaryResult, locale, args.digitsInfo);
95
+ }
96
+ }
97
+ return summary.summaryResult;
87
98
  }
88
99
  }
89
100
  IgxSummaryCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxSummaryCellComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
90
- IgxSummaryCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: IgxSummaryCellComponent, selector: "igx-grid-summary-cell", inputs: { summaryResults: "summaryResults", column: "column", firstCellIndentation: "firstCellIndentation", hasSummary: "hasSummary", density: "density", summaryFormatter: "summaryFormatter", summaryTemplate: "summaryTemplate", active: "active", rowIndex: "rowIndex" }, host: { listeners: { "pointerdown": "activate()" }, properties: { "class.igx-grid-summary--active": "this.active", "attr.data-rowIndex": "this.rowIndex", "attr.data-visibleIndex": "this.visibleColumnIndex", "attr.id": "this.attrCellID" } }, ngImport: i0, template: "<ng-container *ngIf=\"hasSummary\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate ? summaryTemplate : defaultSummary; context: { $implicit: summaryResults }\">\n </ng-container>\n</ng-container>\n <ng-template #defaultSummary>\n <ng-container *ngFor=\"let summary of summaryResults\" >\n <div class=\"igx-grid-summary__item\" [style.height.px]=\"itemHeight\">\n\n <span class=\"igx-grid-summary__label\" [title]=\"summary.label\">{{ translateSummary(summary) }}</span>\n <span class=\"igx-grid-summary__result\" [title]=\"summary.summaryResult\">\n {{\n summaryFormatter\n ? (summary | summaryFormatter:column.summaries:summaryFormatter)\n : (isNumberColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | number:column.pipeArgs.digitsInfo:grid.locale)\n : (isDateKindColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : (isCurrencyColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : (isPercentColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | percent:column.pipeArgs.digitsInfo:grid.locale)\n : (summary.key === 'count')\n ? (summary.summaryResult | number:undefined:grid.locale)\n : summary.summaryResult\n }}\n </span>\n </div>\n </ng-container>\n </ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.IgxSummaryFormatterPipe, name: "summaryFormatter" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.PercentPipe, name: "percent" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ IgxSummaryCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: IgxSummaryCellComponent, selector: "igx-grid-summary-cell", inputs: { summaryResults: "summaryResults", column: "column", firstCellIndentation: "firstCellIndentation", hasSummary: "hasSummary", density: "density", summaryFormatter: "summaryFormatter", summaryTemplate: "summaryTemplate", active: "active", rowIndex: "rowIndex" }, host: { listeners: { "pointerdown": "activate()" }, properties: { "class.igx-grid-summary--active": "this.active", "attr.data-rowIndex": "this.rowIndex", "attr.data-visibleIndex": "this.visibleColumnIndex", "attr.id": "this.attrCellID" } }, ngImport: i0, template: "<ng-container *ngIf=\"hasSummary\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate ? summaryTemplate : defaultSummary; context: { $implicit: summaryResults }\">\n </ng-container>\n</ng-container>\n <ng-template #defaultSummary>\n <ng-container *ngFor=\"let summary of summaryResults\" >\n <div class=\"igx-grid-summary__item\" [style.height.px]=\"itemHeight\">\n\n <span class=\"igx-grid-summary__label\" [title]=\"summary.label\">{{ translateSummary(summary) }}</span>\n <span class=\"igx-grid-summary__result\" [title]=\"formatSummaryResult(summary)\">\n {{\n formatSummaryResult(summary)\n }}\n </span>\n </div>\n </ng-container>\n </ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxSummaryCellComponent, decorators: [{
92
103
  type: Component,
93
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-summary-cell', template: "<ng-container *ngIf=\"hasSummary\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate ? summaryTemplate : defaultSummary; context: { $implicit: summaryResults }\">\n </ng-container>\n</ng-container>\n <ng-template #defaultSummary>\n <ng-container *ngFor=\"let summary of summaryResults\" >\n <div class=\"igx-grid-summary__item\" [style.height.px]=\"itemHeight\">\n\n <span class=\"igx-grid-summary__label\" [title]=\"summary.label\">{{ translateSummary(summary) }}</span>\n <span class=\"igx-grid-summary__result\" [title]=\"summary.summaryResult\">\n {{\n summaryFormatter\n ? (summary | summaryFormatter:column.summaries:summaryFormatter)\n : (isNumberColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | number:column.pipeArgs.digitsInfo:grid.locale)\n : (isDateKindColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : (isCurrencyColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : (isPercentColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | percent:column.pipeArgs.digitsInfo:grid.locale)\n : (summary.key === 'count')\n ? (summary.summaryResult | number:undefined:grid.locale)\n : summary.summaryResult\n }}\n </span>\n </div>\n </ng-container>\n </ng-template>\n" }]
104
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-summary-cell', template: "<ng-container *ngIf=\"hasSummary\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate ? summaryTemplate : defaultSummary; context: { $implicit: summaryResults }\">\n </ng-container>\n</ng-container>\n <ng-template #defaultSummary>\n <ng-container *ngFor=\"let summary of summaryResults\" >\n <div class=\"igx-grid-summary__item\" [style.height.px]=\"itemHeight\">\n\n <span class=\"igx-grid-summary__label\" [title]=\"summary.label\">{{ translateSummary(summary) }}</span>\n <span class=\"igx-grid-summary__result\" [title]=\"formatSummaryResult(summary)\">\n {{\n formatSummaryResult(summary)\n }}\n </span>\n </div>\n </ng-container>\n </ng-template>\n" }]
94
105
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { summaryResults: [{
95
106
  type: Input
96
107
  }], column: [{
@@ -125,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
125
136
  type: HostListener,
126
137
  args: ['pointerdown']
127
138
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9zdW1tYXJpZXMvc3VtbWFyeS1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9zdW1tYXJpZXMvc3VtbWFyeS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBSzlILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBU3hELE1BQU0sT0FBTyx1QkFBdUI7SUFnQ2hDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUF2QmhDLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUd6QixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBcUIxQixDQUFDO0lBRUQsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFHTSxRQUFRO1FBQ1gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQ2pELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtB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QixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBTUMsTUFBTTtzQkFGWixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdDQUFnQztnQkFLdEMsUUFBUTtzQkFGZCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFPdEIsa0JBQWtCO3NCQUQ1QixXQUFXO3VCQUFDLHdCQUF3QjtnQkFNMUIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxTQUFTO2dCQU1mLFFBQVE7c0JBRGQsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIElneFN1bW1hcnlPcGVyYW5kLFxuICAgIElneFN1bW1hcnlSZXN1bHRcbn0gZnJvbSAnLi9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBnZXRMb2NhbGVDdXJyZW5jeUNvZGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSVNlbGVjdGlvbk5vZGUgfSBmcm9tICcuLi9jb21tb24vdHlwZXMnO1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtc3VtbWFyeS1jZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3VtbWFyeS1jZWxsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hTdW1tYXJ5Q2VsbENvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdW1tYXJ5UmVzdWx0czogSWd4U3VtbWFyeVJlc3VsdFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1uOiBDb2x1bW5UeXBlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlyc3RDZWxsSW5kZW50YXRpb24gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGFzU3VtbWFyeSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVuc2l0eTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN1bW1hcnlGb3JtYXR0ZXI6IChzdW1tYXJ5UmVzdWx0OiBJZ3hTdW1tYXJ5UmVzdWx0LCBzdW1tYXJ5T3BlcmFuZDogSWd4U3VtbWFyeU9wZXJhbmQpID0+IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXN1bW1hcnktLWFjdGl2ZScpXG4gICAgcHVibGljIGFjdGl2ZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtcm93SW5kZXgnKVxuICAgIHB1YmxpYyByb3dJbmRleDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdmlzaWJsZUluZGV4JylcbiAgICBwdWJsaWMgZ2V0IHZpc2libGVDb2x1bW5JbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4udmlzaWJsZUluZGV4O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgcHVibGljIGdldCBhdHRyQ2VsbElEKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5ncmlkLmlkfV8ke3RoaXMucm93SW5kZXh9XyR7dGhpcy52aXNpYmxlQ29sdW1uSW5kZXh9YDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXG4gICAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgICAgICBjb25zdCBjdXJyTm9kZSA9IHRoaXMuZ3JpZC5uYXZpZ2F0aW9uLmFjdGl2ZU5vZGU7XG4gICAgICAgIGlmIChjdXJyTm9kZSAmJiB0aGlzLnJvd0luZGV4ID09PSBjdXJyTm9kZS5yb3cgJiYgdGhpcy52aXNpYmxlQ29sdW1uSW5kZXggPT09IGN1cnJOb2RlLmNvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ncmlkLm5hdmlnYXRpb24uc2V0QWN0aXZlTm9kZSh7IHJvdzogdGhpcy5yb3dJbmRleCwgY29sdW1uOiB0aGlzLnZpc2libGVDb2x1bW5JbmRleCB9LCAnc3VtbWFyeUNlbGwnKTtcbiAgICAgICAgdGhpcy5ncmlkLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzZWxlY3Rpb25Ob2RlKCk6IElTZWxlY3Rpb25Ob2RlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJvdzogdGhpcy5yb3dJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW4uY29sdW1uTGF5b3V0Q2hpbGQgPyB0aGlzLmNvbHVtbi5wYXJlbnQudmlzaWJsZUluZGV4IDogdGhpcy52aXNpYmxlQ29sdW1uSW5kZXgsXG4gICAgICAgICAgICBpc1N1bW1hcnlSb3c6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ2V0Q2VsbFdpZHRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHVtbkRhdGF0eXBlKCk6IEdyaWRDb2x1bW5EYXRhVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5kYXRhVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGl0ZW1IZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5ncmlkLmRlZmF1bHRTdW1tYXJ5SGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyaWQoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5jb2x1bW4uZ3JpZCBhcyBhbnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBjdXJyZW5jeUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLnBpcGVBcmdzLmN1cnJlbmN5Q29kZSA/XG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5waXBlQXJncy5jdXJyZW5jeUNvZGUgOiBnZXRMb2NhbGVDdXJyZW5jeUNvZGUodGhpcy5ncmlkLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zbGF0ZVN1bW1hcnkoc3VtbWFyeTogSWd4U3VtbWFyeVJlc3VsdCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucmVzb3VyY2VTdHJpbmdzW2BpZ3hfZ3JpZF9zdW1tYXJ5XyR7c3VtbWFyeS5rZXl9YF0gfHwgc3VtbWFyeS5sYWJlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBpc051bWJlckNvbHVtbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmRhdGFUeXBlID09PSBHcmlkQ29sdW1uRGF0YVR5cGUuTnVtYmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGlzRGF0ZUtpbmRDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkRhdGUgfHxcbiAgICAgICAgICAgICAgIHRoaXMuY29sdW1uLmRhdGFUeXBlID09PSBHcmlkQ29sdW1uRGF0YVR5cGUuRGF0ZVRpbWUgfHxcbiAgICAgICAgICAgICAgIHRoaXMuY29sdW1uLmRhdGFUeXBlID09PSBHcmlkQ29sdW1uRGF0YVR5cGUuVGltZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBpc0N1cnJlbmN5Q29sdW1uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZGF0YVR5cGUgPT09IEdyaWRDb2x1bW5EYXRhVHlwZS5DdXJyZW5jeTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBpc1BlcmNlbnRDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLlBlcmNlbnQ7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1N1bW1hcnlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VtbWFyeVRlbXBsYXRlID8gc3VtbWFyeVRlbXBsYXRlIDogZGVmYXVsdFN1bW1hcnk7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdW1tYXJ5UmVzdWx0cyB9XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTdW1tYXJ5PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdW1tYXJ5IG9mIHN1bW1hcnlSZXN1bHRzXCIgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkLXN1bW1hcnlfX2l0ZW1cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIml0ZW1IZWlnaHRcIj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWdyaWQtc3VtbWFyeV9fbGFiZWxcIiBbdGl0bGVdPVwic3VtbWFyeS5sYWJlbFwiPnt7IHRyYW5zbGF0ZVN1bW1hcnkoc3VtbWFyeSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZ3gtZ3JpZC1zdW1tYXJ5X19yZXN1bHRcIiBbdGl0bGVdPVwic3VtbWFyeS5zdW1tYXJ5UmVzdWx0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5Rm9ybWF0dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChzdW1tYXJ5IHwgc3VtbWFyeUZvcm1hdHRlcjpjb2x1bW4uc3VtbWFyaWVzOnN1bW1hcnlGb3JtYXR0ZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChpc051bWJlckNvbHVtbigpICYmIHN1bW1hcnkuZGVmYXVsdEZvcm1hdHRpbmcpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChzdW1tYXJ5LnN1bW1hcnlSZXN1bHQgfCBudW1iZXI6Y29sdW1uLnBpcGVBcmdzLmRpZ2l0c0luZm86Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChpc0RhdGVLaW5kQ29sdW1uKCkgJiYgc3VtbWFyeS5kZWZhdWx0Rm9ybWF0dGluZylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKHN1bW1hcnkuc3VtbWFyeVJlc3VsdCB8IGRhdGU6Y29sdW1uLnBpcGVBcmdzLmZvcm1hdDpjb2x1bW4ucGlwZUFyZ3MudGltZXpvbmU6Z3JpZC5sb2NhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChpc0N1cnJlbmN5Q29sdW1uKCkgJiYgc3VtbWFyeS5kZWZhdWx0Rm9ybWF0dGluZylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKHN1bW1hcnkuc3VtbWFyeVJlc3VsdCB8IGN1cnJlbmN5OmN1cnJlbmN5Q29kZTpjb2x1bW4ucGlwZUFyZ3MuZGlzcGxheTpjb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKGlzUGVyY2VudENvbHVtbigpICYmIHN1bW1hcnkuZGVmYXVsdEZvcm1hdHRpbmcpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChzdW1tYXJ5LnN1bW1hcnlSZXN1bHQgfCBwZXJjZW50OmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoc3VtbWFyeS5rZXkgPT09ICdjb3VudCcpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChzdW1tYXJ5LnN1bW1hcnlSZXN1bHQgfCBudW1iZXI6dW5kZWZpbmVkOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdW1tYXJ5LnN1bW1hcnlSZXN1bHRcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9zdW1tYXJpZXMvc3VtbWFyeS1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9zdW1tYXJpZXMvc3VtbWFyeS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBSzlILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUzFJLE1BQU0sT0FBTyx1QkFBdUI7SUFnQ2hDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUF2QmhDLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUd6QixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBcUIxQixDQUFDO0lBRUQsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFHTSxRQUFRO1FBQ1gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENB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QU0xQixjQUFjO3NCQURwQixLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBTUMsTUFBTTtzQkFGWixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdDQUFnQztnQkFLdEMsUUFBUTtzQkFGZCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFPdEIsa0JBQWtCO3NCQUQ1QixXQUFXO3VCQUFDLHdCQUF3QjtnQkFNMUIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxTQUFTO2dCQU1mLFFBQVE7c0JBRGQsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIElneFN1bW1hcnlPcGVyYW5kLFxuICAgIElneFN1bW1hcnlSZXN1bHRcbn0gZnJvbSAnLi9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBmb3JtYXRDdXJyZW5jeSwgZm9ybWF0RGF0ZSwgZm9ybWF0TnVtYmVyLCBmb3JtYXRQZXJjZW50LCBnZXRMb2NhbGVDdXJyZW5jeUNvZGUsIGdldExvY2FsZUN1cnJlbmN5U3ltYm9sIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElTZWxlY3Rpb25Ob2RlIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IENvbHVtblR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1ncmlkLXN1bW1hcnktY2VsbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1bW1hcnktY2VsbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4U3VtbWFyeUNlbGxDb21wb25lbnQge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3VtbWFyeVJlc3VsdHM6IElneFN1bW1hcnlSZXN1bHRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpcnN0Q2VsbEluZGVudGF0aW9uID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhhc1N1bW1hcnkgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlbnNpdHk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdW1tYXJ5Rm9ybWF0dGVyOiAoc3VtbWFyeVJlc3VsdDogSWd4U3VtbWFyeVJlc3VsdCwgc3VtbWFyeU9wZXJhbmQ6IElneFN1bW1hcnlPcGVyYW5kKSA9PiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC1zdW1tYXJ5LS1hY3RpdmUnKVxuICAgIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXJvd0luZGV4JylcbiAgICBwdWJsaWMgcm93SW5kZXg6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXZpc2libGVJbmRleCcpXG4gICAgcHVibGljIGdldCB2aXNpYmxlQ29sdW1uSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLnZpc2libGVJbmRleDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIHB1YmxpYyBnZXQgYXR0ckNlbGxJRCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ3JpZC5pZH1fJHt0aGlzLnJvd0luZGV4fV8ke3RoaXMudmlzaWJsZUNvbHVtbkluZGV4fWA7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmRvd24nKVxuICAgIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICAgICAgY29uc3QgY3Vyck5vZGUgPSB0aGlzLmdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlO1xuICAgICAgICBpZiAoY3Vyck5vZGUgJiYgdGhpcy5yb3dJbmRleCA9PT0gY3Vyck5vZGUucm93ICYmIHRoaXMudmlzaWJsZUNvbHVtbkluZGV4ID09PSBjdXJyTm9kZS5jb2x1bW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZC5uYXZpZ2F0aW9uLnNldEFjdGl2ZU5vZGUoeyByb3c6IHRoaXMucm93SW5kZXgsIGNvbHVtbjogdGhpcy52aXNpYmxlQ29sdW1uSW5kZXggfSwgJ3N1bW1hcnlDZWxsJyk7XG4gICAgICAgIHRoaXMuZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2VsZWN0aW9uTm9kZSgpOiBJU2VsZWN0aW9uTm9kZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByb3c6IHRoaXMucm93SW5kZXgsXG4gICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLmNvbHVtbkxheW91dENoaWxkID8gdGhpcy5jb2x1bW4ucGFyZW50LnZpc2libGVJbmRleCA6IHRoaXMudmlzaWJsZUNvbHVtbkluZGV4LFxuICAgICAgICAgICAgaXNTdW1tYXJ5Um93OiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmdldENlbGxXaWR0aCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5EYXRhdHlwZSgpOiBHcmlkQ29sdW1uRGF0YVR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZGF0YVR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpdGVtSGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ3JpZC5kZWZhdWx0U3VtbWFyeUhlaWdodDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBncmlkKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuY29sdW1uLmdyaWQgYXMgYW55KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY3VycmVuY3lDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5waXBlQXJncy5jdXJyZW5jeUNvZGUgP1xuICAgICAgICAgICAgdGhpcy5jb2x1bW4ucGlwZUFyZ3MuY3VycmVuY3lDb2RlIDogZ2V0TG9jYWxlQ3VycmVuY3lDb2RlKHRoaXMuZ3JpZC5sb2NhbGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBjdXJyZW5jeVN5bWJvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4ucGlwZUFyZ3MuZGlzcGxheSA/XG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5waXBlQXJncy5kaXNwbGF5IDogZ2V0TG9jYWxlQ3VycmVuY3lTeW1ib2wodGhpcy5ncmlkLmxvY2FsZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zbGF0ZVN1bW1hcnkoc3VtbWFyeTogSWd4U3VtbWFyeVJlc3VsdCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucmVzb3VyY2VTdHJpbmdzW2BpZ3hfZ3JpZF9zdW1tYXJ5XyR7c3VtbWFyeS5rZXl9YF0gfHwgc3VtbWFyeS5sYWJlbDtcbiAgICB9XG5cbiAgICAvKiogXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybWF0U3VtbWFyeVJlc3VsdChzdW1tYXJ5OiBJZ3hTdW1tYXJ5UmVzdWx0KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN1bW1hcnkuc3VtbWFyeVJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IHN1bW1hcnkuc3VtbWFyeVJlc3VsdCA9PT0gbnVsbCB8fCBzdW1tYXJ5LnN1bW1hcnlSZXN1bHQgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdW1tYXJ5Rm9ybWF0dGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdW1tYXJ5Rm9ybWF0dGVyKHN1bW1hcnksIHRoaXMuY29sdW1uLnN1bW1hcmllcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzID0gdGhpcy5jb2x1bW4ucGlwZUFyZ3M7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuZ3JpZC5sb2NhbGU7XG5cbiAgICAgICAgaWYgKHN1bW1hcnkua2V5ID09PSAnY291bnQnKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHN1bW1hcnkuc3VtbWFyeVJlc3VsdCwgbG9jYWxlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1bW1hcnkuZGVmYXVsdEZvcm1hdHRpbmcpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jb2x1bW4uZGF0YVR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXROdW1iZXIoc3VtbWFyeS5zdW1tYXJ5UmVzdWx0LCBsb2NhbGUsIGFyZ3MuZGlnaXRzSW5mbyk7XG4gICAgICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuRGF0ZTpcbiAgICAgICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5EYXRlVGltZTpcbiAgICAgICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShzdW1tYXJ5LnN1bW1hcnlSZXN1bHQsIGFyZ3MuZm9ybWF0LCBsb2NhbGUsIGFyZ3MudGltZXpvbmUpO1xuICAgICAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLkN1cnJlbmN5OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0Q3VycmVuY3koc3VtbWFyeS5zdW1tYXJ5UmVzdWx0LCBsb2NhbGUsIHRoaXMuY3VycmVuY3lTeW1ib2wsIHRoaXMuY3VycmVuY3lDb2RlLCBhcmdzLmRpZ2l0c0luZm8pO1xuICAgICAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLlBlcmNlbnQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXRQZXJjZW50KHN1bW1hcnkuc3VtbWFyeVJlc3VsdCwgbG9jYWxlLCBhcmdzLmRpZ2l0c0luZm8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdW1tYXJ5LnN1bW1hcnlSZXN1bHQ7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1N1bW1hcnlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VtbWFyeVRlbXBsYXRlID8gc3VtbWFyeVRlbXBsYXRlIDogZGVmYXVsdFN1bW1hcnk7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdW1tYXJ5UmVzdWx0cyB9XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTdW1tYXJ5PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdW1tYXJ5IG9mIHN1bW1hcnlSZXN1bHRzXCIgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkLXN1bW1hcnlfX2l0ZW1cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIml0ZW1IZWlnaHRcIj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWdyaWQtc3VtbWFyeV9fbGFiZWxcIiBbdGl0bGVdPVwic3VtbWFyeS5sYWJlbFwiPnt7IHRyYW5zbGF0ZVN1bW1hcnkoc3VtbWFyeSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZ3gtZ3JpZC1zdW1tYXJ5X19yZXN1bHRcIiBbdGl0bGVdPVwiZm9ybWF0U3VtbWFyeVJlc3VsdChzdW1tYXJ5KVwiPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0U3VtbWFyeVJlc3VsdChzdW1tYXJ5KVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuIl19
@@ -88,4 +88,4 @@ export function notifyChanges(repaint = false) {
88
88
  return propDesc;
89
89
  };
90
90
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy93YXRjaC1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxDQUFDLE1BQVcsRUFBRSxHQUFXLEVBQUUsUUFBNkIsRUFBRSxFQUFFO1FBQy9ELE1BQU0sVUFBVSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsUUFBUSxHQUFHLFFBQVEsSUFBSTtZQUNuQixZQUFZLEVBQUUsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ0YsUUFBUSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBb0IsR0FBUTtZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLEdBQUcsR0FBRyxVQUFvQixHQUFRO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQzNCLDREQUE0RDtvQkFDNUQsTUFBTSxPQUFPLEdBQWtCO3dCQUMzQixDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDO3FCQUNoRCxDQUFDO29CQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzlCO2FBQ0g7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQjtJQUM5QixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQVcsRUFBRSxRQUE2QixFQUFFLEVBQUU7UUFDL0QsTUFBTSxVQUFVLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxRQUFRLEdBQUcsUUFBUSxJQUFJO1lBQ25CLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxJQUFJO1NBQ25CLENBQUM7UUFDRixRQUFRLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFvQixHQUFRO1lBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsR0FBRyxHQUFHLFVBQW9CLEdBQVE7WUFDdkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDNUI7YUFDSjtRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQU8sR0FBRyxLQUFLO0lBQ3pDLE9BQU8sQ0FBQyxDQUFNLEVBQUUsR0FBVyxFQUFFLFFBQTZCLEVBQUUsRUFBRTtRQUUxRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRTlCLFFBQVEsR0FBRyxRQUFRLElBQUk7WUFDbkIsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLElBQUk7U0FDckIsQ0FBQztRQUdGLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELFFBQVEsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLEdBQUcsR0FBRyxVQUFlLFFBQVE7WUFDbEMsSUFBSSxjQUFjLEVBQUU7Z0JBQ2hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDMUQ7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3hCLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztnQkFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzFEO2FBQ0o7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLFFBQWUsQ0FBQztJQUMzQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlQ2hhbmdlcywgU2ltcGxlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gV2F0Y2hDaGFuZ2VzKCk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBrZXk6IHN0cmluZywgcHJvcERlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUtleSA9ICdfJyArIGtleS50b1N0cmluZygpO1xuICAgICAgICBwcm9wRGVzYyA9IHByb3BEZXNjIHx8IHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHByb3BEZXNjLmdldCA9IHByb3BEZXNjLmdldCB8fCAoZnVuY3Rpb24odGhpczogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1twcml2YXRlS2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU2V0dGVyID0gcHJvcERlc2Muc2V0IHx8IChmdW5jdGlvbih0aGlzOiBhbnksIHZhbDogYW55KSB7XG4gICAgICAgICAgICB0aGlzW3ByaXZhdGVLZXldID0gdmFsO1xuICAgICAgICB9KTtcblxuICAgICAgICBwcm9wRGVzYy5zZXQgPSBmdW5jdGlvbih0aGlzOiBhbnksIHZhbDogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBpbml0ID0gdGhpcy5faW5pdDtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbCAhPT0gb2xkVmFsdWUgfHwgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCA9PT0gb2xkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxTZXR0ZXIuY2FsbCh0aGlzLCB2YWwpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5nT25DaGFuZ2VzICYmICFpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIGNhc2Ugd2FjdGhlZCBwcm9wIGNoYW5nZXMgdHJpZ2dlciBuZ09uQ2hhbmdlcyBtYW51YWxseVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2tleV06IG5ldyBTaW1wbGVDaGFuZ2Uob2xkVmFsdWUsIHZhbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBwcm9wRGVzYztcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gV2F0Y2hDb2x1bW5DaGFuZ2VzKCk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBrZXk6IHN0cmluZywgcHJvcERlc2M/OiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUtleSA9ICdfJyArIGtleS50b1N0cmluZygpO1xuICAgICAgICBwcm9wRGVzYyA9IHByb3BEZXNjIHx8IHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHByb3BEZXNjLmdldCA9IHByb3BEZXNjLmdldCB8fCAoZnVuY3Rpb24odGhpczogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1twcml2YXRlS2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU2V0dGVyID0gcHJvcERlc2Muc2V0IHx8IChmdW5jdGlvbih0aGlzOiBhbnksIHZhbDogYW55KSB7XG4gICAgICAgICAgICB0aGlzW3ByaXZhdGVLZXldID0gdmFsO1xuICAgICAgICB9KTtcblxuICAgICAgICBwcm9wRGVzYy5zZXQgPSBmdW5jdGlvbih0aGlzOiBhbnksIHZhbDogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXNba2V5XTtcbiAgICAgICAgICAgIG9yaWdpbmFsU2V0dGVyLmNhbGwodGhpcywgdmFsKTtcbiAgICAgICAgICAgIGlmICh2YWwgIT09IG9sZFZhbHVlIHx8ICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgPT09IG9sZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbkNoYW5nZS5lbWl0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcHJvcERlc2M7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeUNoYW5nZXMocmVwYWludCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIChfOiBhbnksIGtleTogc3RyaW5nLCBwcm9wRGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuXG4gICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBgX18ke2tleX1gO1xuXG4gICAgICAgIHByb3BEZXNjID0gcHJvcERlc2MgfHwge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9O1xuXG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTZXR0ZXIgPSBwcm9wRGVzYyA/IHByb3BEZXNjLnNldCA6IG51bGw7XG4gICAgICAgIHByb3BEZXNjLmdldCA9IHByb3BEZXNjLmdldCB8fCAoZnVuY3Rpb24odGhpcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbcHJpdmF0ZUtleV07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb3BEZXNjLnNldCA9IGZ1bmN0aW9uKHRoaXMsIG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWxTZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5hbFNldHRlci5jYWxsKHRoaXMsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5ub3RpZnlDaGFuZ2VzKHJlcGFpbnQgJiYgIXRoaXMuZ3JpZC5pc1Bpdm90KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdGhpc1trZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpc1twcml2YXRlS2V5XSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLm5vdGlmeUNoYW5nZXMocmVwYWludCAmJiAhdGhpcy5ncmlkLmlzUGl2b3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHByb3BEZXNjIGFzIGFueTtcbiAgICB9O1xufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy93YXRjaC1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxDQUFDLE1BQVcsRUFBRSxHQUFXLEVBQUUsUUFBNkIsRUFBRSxFQUFFO1FBQy9ELE1BQU0sVUFBVSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsUUFBUSxHQUFHLFFBQVEsSUFBSTtZQUNuQixZQUFZLEVBQUUsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ0YsUUFBUSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBcUIsR0FBUTtZQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLEdBQUcsR0FBRyxVQUFxQixHQUFRO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcs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O2dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQzVCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMxRDthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxRQUFlLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpbXBsZUNoYW5nZXMsIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFdhdGNoQ2hhbmdlcygpOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcsIHByb3BEZXNjPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSAnXycgKyBrZXkudG9TdHJpbmcoKTtcbiAgICAgICAgcHJvcERlc2MgPSBwcm9wRGVzYyB8fCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICBwcm9wRGVzYy5nZXQgPSBwcm9wRGVzYy5nZXQgfHwgKGZ1bmN0aW9uICh0aGlzOiBhbnkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3ByaXZhdGVLZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTZXR0ZXIgPSBwcm9wRGVzYy5zZXQgfHwgKGZ1bmN0aW9uICh0aGlzOiBhbnksIHZhbDogYW55KSB7XG4gICAgICAgICAgICB0aGlzW3ByaXZhdGVLZXldID0gdmFsO1xuICAgICAgICB9KTtcblxuICAgICAgICBwcm9wRGVzYy5zZXQgPSBmdW5jdGlvbiAodGhpczogYW55LCB2YWw6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgaW5pdCA9IHRoaXMuX2luaXQ7XG4gICAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXNba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWwgIT09IG9sZFZhbHVlIHx8ICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgPT09IG9sZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsU2V0dGVyLmNhbGwodGhpcywgdmFsKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZ09uQ2hhbmdlcyAmJiAhaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHdhY3RoZWQgcHJvcCBjaGFuZ2VzIHRyaWdnZXIgbmdPbkNoYW5nZXMgbWFudWFsbHlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlczogU2ltcGxlQ2hhbmdlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldOiBuZXcgU2ltcGxlQ2hhbmdlKG9sZFZhbHVlLCB2YWwsIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHByb3BEZXNjO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXYXRjaENvbHVtbkNoYW5nZXMoKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nLCBwcm9wRGVzYz86IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgICAgICBjb25zdCBwcml2YXRlS2V5ID0gJ18nICsga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIHByb3BEZXNjID0gcHJvcERlc2MgfHwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgcHJvcERlc2MuZ2V0ID0gcHJvcERlc2MuZ2V0IHx8IChmdW5jdGlvbiAodGhpczogYW55KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1twcml2YXRlS2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU2V0dGVyID0gcHJvcERlc2Muc2V0IHx8IChmdW5jdGlvbiAodGhpczogYW55LCB2YWw6IGFueSkge1xuICAgICAgICAgICAgdGhpc1twcml2YXRlS2V5XSA9IHZhbDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJvcERlc2Muc2V0ID0gZnVuY3Rpb24gKHRoaXM6IGFueSwgdmFsOiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpc1trZXldO1xuICAgICAgICAgICAgb3JpZ2luYWxTZXR0ZXIuY2FsbCh0aGlzLCB2YWwpO1xuICAgICAgICAgICAgaWYgKHZhbCAhPT0gb2xkVmFsdWUgfHwgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCA9PT0gb2xkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBwcm9wRGVzYztcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5Q2hhbmdlcyhyZXBhaW50ID0gZmFsc2UpIHtcbiAgICByZXR1cm4gKF86IGFueSwga2V5OiBzdHJpbmcsIHByb3BEZXNjPzogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB7XG5cbiAgICAgICAgY29uc3QgcHJpdmF0ZUtleSA9IGBfXyR7a2V5fWA7XG5cbiAgICAgICAgcHJvcERlc2MgPSBwcm9wRGVzYyB8fCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH07XG5cblxuICAgICAgICBjb25zdCBvcmlnaW5hbFNldHRlciA9IHByb3BEZXNjID8gcHJvcERlc2Muc2V0IDogbnVsbDtcbiAgICAgICAgcHJvcERlc2MuZ2V0ID0gcHJvcERlc2MuZ2V0IHx8IChmdW5jdGlvbiAodGhpcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbcHJpdmF0ZUtleV07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb3BEZXNjLnNldCA9IGZ1bmN0aW9uICh0aGlzLCBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKG9yaWdpbmFsU2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxTZXR0ZXIuY2FsbCh0aGlzLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQubm90aWZ5Q2hhbmdlcyhyZXBhaW50ICYmICF0aGlzLmdyaWQuaXNQaXZvdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHRoaXNba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXNbcHJpdmF0ZUtleV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5ub3RpZnlDaGFuZ2VzKHJlcGFpbnQgJiYgIXRoaXMuZ3JpZC5pc1Bpdm90KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBwcm9wRGVzYyBhcyBhbnk7XG4gICAgfTtcbn1cbiJdfQ==