@cqa-lib/cqa-ui 1.0.104 → 1.0.108

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,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  export class ProgressTextCardComponent {
@@ -7,6 +7,8 @@ export class ProgressTextCardComponent {
7
7
  this.label = 'Test Success Rate';
8
8
  this.deltaSuffix = 'since last run';
9
9
  this.cardClass = '';
10
+ /** Emitted when the card is clicked */
11
+ this.cardClick = new EventEmitter();
10
12
  }
11
13
  get percentText() {
12
14
  const v = Math.max(0, Math.min(100, Number(this.value) || 0));
@@ -26,12 +28,15 @@ export class ProgressTextCardComponent {
26
28
  return 'cqa-text-[#EF4444]';
27
29
  return 'cqa-text-[#6B7280]';
28
30
  }
31
+ onCardClick() {
32
+ this.cardClick.emit();
33
+ }
29
34
  }
30
35
  ProgressTextCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ProgressTextCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- ProgressTextCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ProgressTextCardComponent, selector: "cqa-progress-text-card", inputs: { value: "value", label: "label", deltaPercent: "deltaPercent", deltaSuffix: "deltaSuffix", cardClass: "cardClass" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-p-4 sm:cqa-p-5\"\n [ngClass]=\"cardClass\">\n <div class=\"cqa-flex cqa-items-baseline cqa-gap-2\">\n <div\n class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-font-inter cqa-tracking-[-0.3px] cqa-text-[#111827]\">\n {{ percentText }}</div>\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-inter cqa-text-[#111827]\">{{ label }}</div>\n </div>\n <div class=\"cqa-mt-4 cqa-mb-2 cqa-w-full cqa-h-[14px] cqa-bg-[#E5E7EB] cqa-rounded-full cqa-overflow-hidden\">\n <div class=\"cqa-h-full cqa-rounded-full\" [style.width]=\"fillWidth\"\n [style.background]=\"'linear-gradient(90deg, #DD5A38 0%, #F59E0B 40%, #10B981 100%)'\">\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-5 cqa-font-inter\" [ngClass]=\"deltaClass()\" *ngIf=\"deltaPercent !== undefined\">\n {{ deltaPercent > 0 ? '+' : ''}}{{ deltaPercent }}% {{ deltaSuffix }}\n </div>\n </div>\n</div>", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ ProgressTextCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ProgressTextCardComponent, selector: "cqa-progress-text-card", inputs: { value: "value", label: "label", deltaPercent: "deltaPercent", deltaSuffix: "deltaSuffix", cardClass: "cardClass" }, outputs: { cardClick: "cardClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"cqa-cursor-pointer cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-p-4 sm:cqa-p-5 cqa-cursor-pointer cqa-transition-shadow cqa-duration-200 hover:cqa-shadow-md\"\n [ngClass]=\"cardClass\"\n (click)=\"onCardClick()\">\n <div class=\"cqa-flex cqa-items-baseline cqa-gap-2\">\n <div\n class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-font-inter cqa-tracking-[-0.3px] cqa-text-[#111827]\">\n {{ percentText }}</div>\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-inter cqa-text-[#111827]\">{{ label }}</div>\n </div>\n <div class=\"cqa-mt-4 cqa-mb-2 cqa-w-full cqa-h-[14px] cqa-bg-[#E5E7EB] cqa-rounded-full cqa-overflow-hidden\">\n <div class=\"cqa-h-full cqa-rounded-full\" [style.width]=\"fillWidth\"\n [style.background]=\"'linear-gradient(90deg, #DD5A38 0%, #F59E0B 40%, #10B981 100%)'\">\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-5 cqa-font-inter\" [ngClass]=\"deltaClass()\" *ngIf=\"deltaPercent !== undefined\">\n {{ deltaPercent > 0 ? '+' : ''}}{{ deltaPercent }}% {{ deltaSuffix }}\n </div>\n </div>\n</div>", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ProgressTextCardComponent, decorators: [{
33
38
  type: Component,
34
- args: [{ selector: 'cqa-progress-text-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-p-4 sm:cqa-p-5\"\n [ngClass]=\"cardClass\">\n <div class=\"cqa-flex cqa-items-baseline cqa-gap-2\">\n <div\n class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-font-inter cqa-tracking-[-0.3px] cqa-text-[#111827]\">\n {{ percentText }}</div>\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-inter cqa-text-[#111827]\">{{ label }}</div>\n </div>\n <div class=\"cqa-mt-4 cqa-mb-2 cqa-w-full cqa-h-[14px] cqa-bg-[#E5E7EB] cqa-rounded-full cqa-overflow-hidden\">\n <div class=\"cqa-h-full cqa-rounded-full\" [style.width]=\"fillWidth\"\n [style.background]=\"'linear-gradient(90deg, #DD5A38 0%, #F59E0B 40%, #10B981 100%)'\">\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-5 cqa-font-inter\" [ngClass]=\"deltaClass()\" *ngIf=\"deltaPercent !== undefined\">\n {{ deltaPercent > 0 ? '+' : ''}}{{ deltaPercent }}% {{ deltaSuffix }}\n </div>\n </div>\n</div>", styles: [] }]
39
+ args: [{ selector: 'cqa-progress-text-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div\n class=\"cqa-cursor-pointer cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-p-4 sm:cqa-p-5 cqa-cursor-pointer cqa-transition-shadow cqa-duration-200 hover:cqa-shadow-md\"\n [ngClass]=\"cardClass\"\n (click)=\"onCardClick()\">\n <div class=\"cqa-flex cqa-items-baseline cqa-gap-2\">\n <div\n class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-font-inter cqa-tracking-[-0.3px] cqa-text-[#111827]\">\n {{ percentText }}</div>\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-inter cqa-text-[#111827]\">{{ label }}</div>\n </div>\n <div class=\"cqa-mt-4 cqa-mb-2 cqa-w-full cqa-h-[14px] cqa-bg-[#E5E7EB] cqa-rounded-full cqa-overflow-hidden\">\n <div class=\"cqa-h-full cqa-rounded-full\" [style.width]=\"fillWidth\"\n [style.background]=\"'linear-gradient(90deg, #DD5A38 0%, #F59E0B 40%, #10B981 100%)'\">\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-5 cqa-font-inter\" [ngClass]=\"deltaClass()\" *ngIf=\"deltaPercent !== undefined\">\n {{ deltaPercent > 0 ? '+' : ''}}{{ deltaPercent }}% {{ deltaSuffix }}\n </div>\n </div>\n</div>", styles: [] }]
35
40
  }], propDecorators: { value: [{
36
41
  type: Input
37
42
  }], label: [{
@@ -42,5 +47,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
42
47
  type: Input
43
48
  }], cardClass: [{
44
49
  type: Input
50
+ }], cardClick: [{
51
+ type: Output
45
52
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9wcm9ncmVzcy10ZXh0LWNhcmQvcHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9wcm9ncmVzcy10ZXh0LWNhcmQvcHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTMUUsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFXLFVBQUssR0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBQzdCLFVBQUssR0FBVyxtQkFBbUIsQ0FBQztRQUVwQyxnQkFBVyxHQUFXLGdCQUFnQixDQUFDO1FBQ3ZDLGNBQVMsR0FBVyxFQUFFLENBQUM7S0FvQmpDO0lBbEJDLElBQUksV0FBVztRQUNiLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3BHLE9BQU8sb0JBQW9CLENBQUM7U0FDN0I7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQztZQUFFLE9BQU8sb0JBQW9CLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUM7WUFBRSxPQUFPLG9CQUFvQixDQUFDO1FBQ3ZELE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQzs7c0hBeEJVLHlCQUF5QjswR0FBekIseUJBQXlCLHFPQ1R0QywrbUNBbUJNOzJGRFZPLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzhCQUdyQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXByb2dyZXNzLXRleHQtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy10ZXh0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzVGV4dENhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyID0gMDsgLy8gMCAtIDEwMFxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ1Rlc3QgU3VjY2VzcyBSYXRlJztcbiAgQElucHV0KCkgZGVsdGFQZXJjZW50PzogbnVtYmVyOyAvLyBlLmcuLCArOFxuICBASW5wdXQoKSBkZWx0YVN1ZmZpeDogc3RyaW5nID0gJ3NpbmNlIGxhc3QgcnVuJztcbiAgQElucHV0KCkgY2FyZENsYXNzOiBzdHJpbmcgPSAnJztcblxuICBnZXQgcGVyY2VudFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCB2ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBOdW1iZXIodGhpcy52YWx1ZSkgfHwgMCkpO1xuICAgIHJldHVybiBgJHt2fSVgO1xuICB9XG5cbiAgZ2V0IGZpbGxXaWR0aCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHYgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIE51bWJlcih0aGlzLnZhbHVlKSB8fCAwKSk7XG4gICAgcmV0dXJuIHYgKyAnJSc7XG4gIH1cblxuICBkZWx0YUNsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGVsdGFQZXJjZW50ID09PSB1bmRlZmluZWQgfHwgdGhpcy5kZWx0YVBlcmNlbnQgPT09IG51bGwgfHwgTnVtYmVyLmlzTmFOKHRoaXMuZGVsdGFQZXJjZW50KSkge1xuICAgICAgcmV0dXJuICdjcWEtdGV4dC1bIzZCNzI4MF0nO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWx0YVBlcmNlbnQgPiAwKSByZXR1cm4gJ2NxYS10ZXh0LVsjMEI5RDY4XSc7XG4gICAgaWYgKHRoaXMuZGVsdGFQZXJjZW50IDwgMCkgcmV0dXJuICdjcWEtdGV4dC1bI0VGNDQ0NF0nO1xuICAgIHJldHVybiAnY3FhLXRleHQtWyM2QjcyODBdJztcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1ib3gtYm9yZGVyIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtcC00IHNtOmNxYS1wLTVcIlxuICAgIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtYmFzZWxpbmUgY3FhLWdhcC0yXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWzE2cHhdIGNxYS1sZWFkaW5nLVsyNHB4XSBjcWEtZm9udC1ib2xkIGNxYS1mb250LWludGVyIGNxYS10cmFja2luZy1bLTAuM3B4XSBjcWEtdGV4dC1bIzExMTgyN11cIj5cbiAgICAgICAge3sgcGVyY2VudFRleHQgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTZweF0gY3FhLWxlYWRpbmctWzI0cHhdIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjMTExODI3XVwiPnt7IGxhYmVsIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tdC00IGNxYS1tYi0yIGNxYS13LWZ1bGwgY3FhLWgtWzE0cHhdIGNxYS1iZy1bI0U1RTdFQl0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtcm91bmRlZC1mdWxsXCIgW3N0eWxlLndpZHRoXT1cImZpbGxXaWR0aFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIidsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNERDVBMzggMCUsICNGNTlFMEIgNDAlLCAjMTBCOTgxIDEwMCUpJ1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy01IGNxYS1mb250LWludGVyXCIgW25nQ2xhc3NdPVwiZGVsdGFDbGFzcygpXCIgKm5nSWY9XCJkZWx0YVBlcmNlbnQgIT09IHVuZGVmaW5lZFwiPlxuICAgICAge3sgZGVsdGFQZXJjZW50ID4gMCA/ICcrJyA6ICcnfX17eyBkZWx0YVBlcmNlbnQgfX0lIHt7IGRlbHRhU3VmZml4IH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9wcm9ncmVzcy10ZXh0LWNhcmQvcHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9wcm9ncmVzcy10ZXh0LWNhcmQvcHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVNoRyxNQUFNLE9BQU8seUJBQXlCO0lBUHRDO1FBUVcsVUFBSyxHQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0IsVUFBSyxHQUFXLG1CQUFtQixDQUFDO1FBRXBDLGdCQUFXLEdBQVcsZ0JBQWdCLENBQUM7UUFDdkMsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUNoQyx1Q0FBdUM7UUFDN0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0F3QmhEO0lBdEJDLElBQUksV0FBVztRQUNiLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3BHLE9BQU8sb0JBQW9CLENBQUM7U0FDN0I7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQztZQUFFLE9BQU8sb0JBQW9CLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUM7WUFBRSxPQUFPLG9CQUFvQixDQUFDO1FBQ3ZELE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3NIQTlCVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwwUUNUdEMsK3VDQW9CTTsyRkRYTyx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFHckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1wcm9ncmVzcy10ZXh0LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtdGV4dC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc1RleHRDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmFsdWU6IG51bWJlciA9IDA7IC8vIDAgLSAxMDBcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdUZXN0IFN1Y2Nlc3MgUmF0ZSc7XG4gIEBJbnB1dCgpIGRlbHRhUGVyY2VudD86IG51bWJlcjsgLy8gZS5nLiwgKzhcbiAgQElucHV0KCkgZGVsdGFTdWZmaXg6IHN0cmluZyA9ICdzaW5jZSBsYXN0IHJ1bic7XG4gIEBJbnB1dCgpIGNhcmRDbGFzczogc3RyaW5nID0gJyc7XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhcmQgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBwZXJjZW50VGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHYgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIE51bWJlcih0aGlzLnZhbHVlKSB8fCAwKSk7XG4gICAgcmV0dXJuIGAke3Z9JWA7XG4gIH1cblxuICBnZXQgZmlsbFdpZHRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdiA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgTnVtYmVyKHRoaXMudmFsdWUpIHx8IDApKTtcbiAgICByZXR1cm4gdiArICclJztcbiAgfVxuXG4gIGRlbHRhQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kZWx0YVBlcmNlbnQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmRlbHRhUGVyY2VudCA9PT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4odGhpcy5kZWx0YVBlcmNlbnQpKSB7XG4gICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjNkI3MjgwXSc7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlbHRhUGVyY2VudCA+IDApIHJldHVybiAnY3FhLXRleHQtWyMwQjlENjhdJztcbiAgICBpZiAodGhpcy5kZWx0YVBlcmNlbnQgPCAwKSByZXR1cm4gJ2NxYS10ZXh0LVsjRUY0NDQ0XSc7XG4gICAgcmV0dXJuICdjcWEtdGV4dC1bIzZCNzI4MF0nO1xuICB9XG5cbiAgb25DYXJkQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2suZW1pdCgpO1xuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1jdXJzb3ItcG9pbnRlciBjcWEtdy1mdWxsIGNxYS1ib3gtYm9yZGVyIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtcC00IHNtOmNxYS1wLTUgY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLXNoYWRvdyBjcWEtZHVyYXRpb24tMjAwIGhvdmVyOmNxYS1zaGFkb3ctbWRcIlxuICAgIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiXG4gICAgKGNsaWNrKT1cIm9uQ2FyZENsaWNrKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWJhc2VsaW5lIGNxYS1nYXAtMlwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtZm9udC1pbnRlciBjcWEtdHJhY2tpbmctWy0wLjNweF0gY3FhLXRleHQtWyMxMTE4MjddXCI+XG4gICAgICAgIHt7IHBlcmNlbnRUZXh0IH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzE2cHhdIGNxYS1sZWFkaW5nLVsyNHB4XSBjcWEtZm9udC1pbnRlciBjcWEtdGV4dC1bIzExMTgyN11cIj57eyBsYWJlbCB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtNCBjcWEtbWItMiBjcWEtdy1mdWxsIGNxYS1oLVsxNHB4XSBjcWEtYmctWyNFNUU3RUJdIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLW92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLXJvdW5kZWQtZnVsbFwiIFtzdHlsZS53aWR0aF09XCJmaWxsV2lkdGhcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCInbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjREQ1QTM4IDAlLCAjRjU5RTBCIDQwJSwgIzEwQjk4MSAxMDAlKSdcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNSBjcWEtZm9udC1pbnRlclwiIFtuZ0NsYXNzXT1cImRlbHRhQ2xhc3MoKVwiICpuZ0lmPVwiZGVsdGFQZXJjZW50ICE9PSB1bmRlZmluZWRcIj5cbiAgICAgIHt7IGRlbHRhUGVyY2VudCA+IDAgPyAnKycgOiAnJ319e3sgZGVsdGFQZXJjZW50IH19JSB7eyBkZWx0YVN1ZmZpeCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -9,7 +9,7 @@ export class DaterangepickerComponent {
9
9
  this.autoApply = false;
10
10
  this.alwaysShowCalendars = false;
11
11
  this.opens = 'center';
12
- this.drops = 'auto';
12
+ this.drops = 'down';
13
13
  this.datesUpdated = new EventEmitter();
14
14
  this.cancelClicked = new EventEmitter();
15
15
  this.applyClicked = new EventEmitter();
@@ -29,6 +29,7 @@ export class DaterangepickerComponent {
29
29
  opens: this.opens,
30
30
  drops: this.drops,
31
31
  isInvalidDate: this.isInvalidDate,
32
+ parentEl: this.parentEl,
32
33
  locale: {
33
34
  format: 'MM/DD/YYYY',
34
35
  separator: ' - ',
@@ -87,7 +88,7 @@ export class DaterangepickerComponent {
87
88
  }
88
89
  }
89
90
  DaterangepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DaterangepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
- DaterangepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DaterangepickerComponent, selector: "cqa-daterangepicker", inputs: { label: "label", placeholder: "placeholder", disabled: "disabled", startDate: "startDate", endDate: "endDate", minDate: "minDate", maxDate: "maxDate", ranges: "ranges", autoApply: "autoApply", alwaysShowCalendars: "alwaysShowCalendars", opens: "opens", drops: "drops", isInvalidDate: "isInvalidDate" }, outputs: { datesUpdated: "datesUpdated", cancelClicked: "cancelClicked", applyClicked: "applyClicked" }, providers: [
91
+ DaterangepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DaterangepickerComponent, selector: "cqa-daterangepicker", inputs: { label: "label", placeholder: "placeholder", disabled: "disabled", startDate: "startDate", endDate: "endDate", minDate: "minDate", maxDate: "maxDate", ranges: "ranges", autoApply: "autoApply", alwaysShowCalendars: "alwaysShowCalendars", opens: "opens", drops: "drops", isInvalidDate: "isInvalidDate", parentEl: "parentEl" }, outputs: { datesUpdated: "datesUpdated", cancelClicked: "cancelClicked", applyClicked: "applyClicked" }, providers: [
91
92
  {
92
93
  provide: NG_VALUE_ACCESSOR,
93
94
  useExisting: forwardRef(() => DaterangepickerComponent),
@@ -221,6 +222,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
221
222
  type: Input
222
223
  }], isInvalidDate: [{
223
224
  type: Input
225
+ }], parentEl: [{
226
+ type: Input
224
227
  }], datesUpdated: [{
225
228
  type: Output
226
229
  }], cancelClicked: [{
@@ -231,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
231
234
  type: ViewChild,
232
235
  args: ['inputRef', { static: true }]
233
236
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmlsdGVycy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBaUMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQTBEekUsTUFBTSxPQUFPLHdCQUF3QjtJQXZEckM7UUEwRFcsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixVQUFLLEdBQWdDLFFBQVEsQ0FBQztRQUM5QyxVQUFLLEdBQTJCLE1BQU0sQ0FBQztRQUd0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvRCxDQUFDO1FBQ3BGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvRCxDQUFDO1FBSTlGLGtCQUFhLEdBQTJCLEVBQUUsQ0FBQztRQUVuQyxhQUFRLEdBQUcsQ0FBQyxLQUFzRCxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUUsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQTZFOUI7SUEzRUMsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FB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ZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFa0MsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlckRpcmVjdGl2ZSwgRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyB9IGZyb20gJy4vZGF0ZXJhbmdlcGlja2VyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kYXRlcmFuZ2VwaWNrZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImZvcm0tbGFiZWwgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LVsxNHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJsb2NrIGNxYS1sZWFkaW5nLVsxLjRdIGNxYS1tYi0yXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1kYXRlcmFuZ2VwaWNrZXItd3JhcHBlciBjcWEtdWktZGF0ZXJhbmdlLXBpY2tlclwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZGF0ZXJhbmdlcGlja2VyLWlucHV0XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJ1N0YXJ0IERhdGUgLSBFbmQgRGF0ZSdcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIGNxYURhdGVyYW5nZXBpY2tlclxuICAgICAgICAgIFtvcHRpb25zXT1cInBpY2tlck9wdGlvbnNcIlxuICAgICAgICAgIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCJcbiAgICAgICAgICBbZW5kRGF0ZV09XCJlbmREYXRlXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cIm9uRGF0ZXNVcGRhdGVkKCRldmVudClcIlxuICAgICAgICAgIChjYW5jZWxDbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgIChhcHBseUNsaWNrZWQpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWRhdGVyYW5nZXBpY2tlci1pY29uXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlblBpY2tlcigpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIGRhdGUgcmFuZ2UgcGlja2VyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM5OCAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC42NjYgMS4zMzIwM1YzLjk5ODdcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjY2NjcgMi42Njc5N0gzLjMzMzMzQzIuNTk2OTUgMi42Njc5NyAyIDMuMjY0OTIgMiA0LjAwMTNWMTMuMzM0NkMyIDE0LjA3MSAyLjU5Njk1IDE0LjY2OCAzLjMzMzMzIDE0LjY2OEgxMi42NjY3QzEzLjQwMyAxNC42NjggMTQgMTQuMDcxIDE0IDEzLjMzNDZWNC4wMDEzQzE0IDMuMjY0OTIgMTMuNDAzIDIuNjY3OTcgMTIuNjY2NyAyLjY2Nzk3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDYuNjY3OTdIMTRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcmFuZ2VwaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBASW5wdXQoKSBlbmREYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgQElucHV0KCkgbWluRGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBASW5wdXQoKSByYW5nZXM/OiBhbnk7XG4gIEBJbnB1dCgpIGF1dG9BcHBseSA9IGZhbHNlO1xuICBASW5wdXQoKSBhbHdheXNTaG93Q2FsZW5kYXJzID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZW5zOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcicgPSAnY2VudGVyJztcbiAgQElucHV0KCkgZHJvcHM6ICdkb3duJyB8ICd1cCcgfCAnYXV0bycgPSAnYXV0byc7XG4gIEBJbnB1dCgpIGlzSW52YWxpZERhdGU/OiAoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgZGF0ZXNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYXBwbHlDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcGlja2VyT3B0aW9uczogRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyA9IHt9O1xuXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0gfCBudWxsKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBpY2tlck9wdGlvbnMgPSB7XG4gICAgICBzdGFydERhdGU6IHRoaXMuc3RhcnREYXRlID8gbmV3IERhdGUodGhpcy5zdGFydERhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgZW5kRGF0ZTogdGhpcy5lbmREYXRlID8gbmV3IERhdGUodGhpcy5lbmREYXRlKSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSA/IG5ldyBEYXRlKHRoaXMubWluRGF0ZSkgOiB1bmRlZmluZWQsXG4gICAgICBtYXhEYXRlOiB0aGlzLm1heERhdGUgPyBuZXcgRGF0ZSh0aGlzLm1heERhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgcmFuZ2VzOiB0aGlzLnJhbmdlcyxcbiAgICAgIGF1dG9BcHBseTogdGhpcy5hdXRvQXBwbHksXG4gICAgICBhbHdheXNTaG93Q2FsZW5kYXJzOiB0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMsXG4gICAgICBvcGVuczogdGhpcy5vcGVucyxcbiAgICAgIGRyb3BzOiB0aGlzLmRyb3BzLFxuICAgICAgaXNJbnZhbGlkRGF0ZTogdGhpcy5pc0ludmFsaWREYXRlLFxuICAgICAgbG9jYWxlOiB7XG4gICAgICAgIGZvcm1hdDogJ01NL0REL1lZWVknLFxuICAgICAgICBzZXBhcmF0b3I6ICcgLSAnLFxuICAgICAgICBhcHBseUxhYmVsOiAnQXBwbHknLFxuICAgICAgICBjYW5jZWxMYWJlbDogJ0NhbmNlbCcsXG4gICAgICAgIGZyb21MYWJlbDogJ0Zyb20nLFxuICAgICAgICB0b0xhYmVsOiAnVG8nLFxuICAgICAgICBjdXN0b21SYW5nZUxhYmVsOiAnQ3VzdG9tJyxcbiAgICAgICAgd2Vla0xhYmVsOiAnVycsXG4gICAgICAgIGRheXNPZldlZWs6IFsnU3UnLCAnTW8nLCAnVHUnLCAnV2UnLCAnVGgnLCAnRnInLCAnU2EnXSxcbiAgICAgICAgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10sXG4gICAgICAgIGZpcnN0RGF5OiAwXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIENsZWFudXAgaGFuZGxlZCBieSBkaXJlY3RpdmVcbiAgfVxuXG4gIG9uRGF0ZXNVcGRhdGVkKGV2ZW50OiB7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZSB8fCB1bmRlZmluZWQ7XG4gICAgdGhpcy5lbmREYXRlID0gZXZlbnQuZW5kRGF0ZSB8fCB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbkNoYW5nZSh7IHN0YXJ0OiBldmVudC5zdGFydERhdGUsIGVuZDogZXZlbnQuZW5kRGF0ZSB9KTtcbiAgICB0aGlzLmRhdGVzVXBkYXRlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBvbkFwcGx5KGV2ZW50OiB7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0pOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5Q2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHZhbHVlLnN0YXJ0IHx8IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IHZhbHVlLmVuZCB8fCB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lbmREYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogeyBzdGFydDogRGF0ZSB8IG51bGw7IGVuZDogRGF0ZSB8IG51bGwgfSB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9wZW5QaWNrZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxufVxuXG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmlsdGVycy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBaUMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQTBEekUsTUFBTSxPQUFPLHdCQUF3QjtJQXZEckM7UUEwRFcsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixVQUFLLEdBQWdDLFFBQVEsQ0FBQztRQUM5QyxVQUFLLEdBQTJCLE1BQU0sQ0FBQztRQUl0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvRCxDQUFDO1FBQ3BGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvRCxDQUFDO1FBSTlGLGtCQUFhLEdBQTJCLEVBQUUsQ0FBQztRQUVuQyxhQUFRLEdBQUcsQ0FBQyxLQUFzRCxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUUsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQThFOUI7SUE1RUMsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNoRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FB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T0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFa0MsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlckRpcmVjdGl2ZSwgRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyB9IGZyb20gJy4vZGF0ZXJhbmdlcGlja2VyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kYXRlcmFuZ2VwaWNrZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImZvcm0tbGFiZWwgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LVsxNHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJsb2NrIGNxYS1sZWFkaW5nLVsxLjRdIGNxYS1tYi0yXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1kYXRlcmFuZ2VwaWNrZXItd3JhcHBlciBjcWEtdWktZGF0ZXJhbmdlLXBpY2tlclwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZGF0ZXJhbmdlcGlja2VyLWlucHV0XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJ1N0YXJ0IERhdGUgLSBFbmQgRGF0ZSdcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIGNxYURhdGVyYW5nZXBpY2tlclxuICAgICAgICAgIFtvcHRpb25zXT1cInBpY2tlck9wdGlvbnNcIlxuICAgICAgICAgIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCJcbiAgICAgICAgICBbZW5kRGF0ZV09XCJlbmREYXRlXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cIm9uRGF0ZXNVcGRhdGVkKCRldmVudClcIlxuICAgICAgICAgIChjYW5jZWxDbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgIChhcHBseUNsaWNrZWQpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWRhdGVyYW5nZXBpY2tlci1pY29uXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlblBpY2tlcigpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIGRhdGUgcmFuZ2UgcGlja2VyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM5OCAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC42NjYgMS4zMzIwM1YzLjk5ODdcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjY2NjcgMi42Njc5N0gzLjMzMzMzQzIuNTk2OTUgMi42Njc5NyAyIDMuMjY0OTIgMiA0LjAwMTNWMTMuMzM0NkMyIDE0LjA3MSAyLjU5Njk1IDE0LjY2OCAzLjMzMzMzIDE0LjY2OEgxMi42NjY3QzEzLjQwMyAxNC42NjggMTQgMTQuMDcxIDE0IDEzLjMzNDZWNC4wMDEzQzE0IDMuMjY0OTIgMTMuNDAzIDIuNjY3OTcgMTIuNjY2NyAyLjY2Nzk3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDYuNjY3OTdIMTRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcmFuZ2VwaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBASW5wdXQoKSBlbmREYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgQElucHV0KCkgbWluRGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBASW5wdXQoKSByYW5nZXM/OiBhbnk7XG4gIEBJbnB1dCgpIGF1dG9BcHBseSA9IGZhbHNlO1xuICBASW5wdXQoKSBhbHdheXNTaG93Q2FsZW5kYXJzID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZW5zOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcicgPSAnY2VudGVyJztcbiAgQElucHV0KCkgZHJvcHM6ICdkb3duJyB8ICd1cCcgfCAnYXV0bycgPSAnZG93bic7XG4gIEBJbnB1dCgpIGlzSW52YWxpZERhdGU/OiAoZGF0ZTogRGF0ZSkgPT4gYm9vbGVhbjtcbiAgQElucHV0KCkgcGFyZW50RWw/OiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxuICBAT3V0cHV0KCkgZGF0ZXNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYXBwbHlDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dFJlZiE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcGlja2VyT3B0aW9uczogRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyA9IHt9O1xuXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0gfCBudWxsKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBpY2tlck9wdGlvbnMgPSB7XG4gICAgICBzdGFydERhdGU6IHRoaXMuc3RhcnREYXRlID8gbmV3IERhdGUodGhpcy5zdGFydERhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgZW5kRGF0ZTogdGhpcy5lbmREYXRlID8gbmV3IERhdGUodGhpcy5lbmREYXRlKSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSA/IG5ldyBEYXRlKHRoaXMubWluRGF0ZSkgOiB1bmRlZmluZWQsXG4gICAgICBtYXhEYXRlOiB0aGlzLm1heERhdGUgPyBuZXcgRGF0ZSh0aGlzLm1heERhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgcmFuZ2VzOiB0aGlzLnJhbmdlcyxcbiAgICAgIGF1dG9BcHBseTogdGhpcy5hdXRvQXBwbHksXG4gICAgICBhbHdheXNTaG93Q2FsZW5kYXJzOiB0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMsXG4gICAgICBvcGVuczogdGhpcy5vcGVucyxcbiAgICAgIGRyb3BzOiB0aGlzLmRyb3BzLFxuICAgICAgaXNJbnZhbGlkRGF0ZTogdGhpcy5pc0ludmFsaWREYXRlLFxuICAgICAgcGFyZW50RWw6IHRoaXMucGFyZW50RWwsXG4gICAgICBsb2NhbGU6IHtcbiAgICAgICAgZm9ybWF0OiAnTU0vREQvWVlZWScsXG4gICAgICAgIHNlcGFyYXRvcjogJyAtICcsXG4gICAgICAgIGFwcGx5TGFiZWw6ICdBcHBseScsXG4gICAgICAgIGNhbmNlbExhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgZnJvbUxhYmVsOiAnRnJvbScsXG4gICAgICAgIHRvTGFiZWw6ICdUbycsXG4gICAgICAgIGN1c3RvbVJhbmdlTGFiZWw6ICdDdXN0b20nLFxuICAgICAgICB3ZWVrTGFiZWw6ICdXJyxcbiAgICAgICAgZGF5c09mV2VlazogWydTdScsICdNbycsICdUdScsICdXZScsICdUaCcsICdGcicsICdTYSddLFxuICAgICAgICBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSxcbiAgICAgICAgZmlyc3REYXk6IDBcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gQ2xlYW51cCBoYW5kbGVkIGJ5IGRpcmVjdGl2ZVxuICB9XG5cbiAgb25EYXRlc1VwZGF0ZWQoZXZlbnQ6IHsgc3RhcnREYXRlOiBEYXRlIHwgbnVsbDsgZW5kRGF0ZTogRGF0ZSB8IG51bGwgfSk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnREYXRlID0gZXZlbnQuc3RhcnREYXRlIHx8IHVuZGVmaW5lZDtcbiAgICB0aGlzLmVuZERhdGUgPSBldmVudC5lbmREYXRlIHx8IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHsgc3RhcnQ6IGV2ZW50LnN0YXJ0RGF0ZSwgZW5kOiBldmVudC5lbmREYXRlIH0pO1xuICAgIHRoaXMuZGF0ZXNVcGRhdGVkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uQXBwbHkoZXZlbnQ6IHsgc3RhcnREYXRlOiBEYXRlIHwgbnVsbDsgZW5kRGF0ZTogRGF0ZSB8IG51bGwgfSk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlDbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogeyBzdGFydDogRGF0ZSB8IG51bGw7IGVuZDogRGF0ZSB8IG51bGwgfSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gdmFsdWUuc3RhcnQgfHwgdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lbmREYXRlID0gdmFsdWUuZW5kIHx8IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmVuZERhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiB7IHN0YXJ0OiBEYXRlIHwgbnVsbDsgZW5kOiBEYXRlIHwgbnVsbCB9IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb3BlblBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG59XG5cbiJdfQ==
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
319
319
  }], applyClicked: [{
320
320
  type: Output
321
321
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmlsdGVycy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUErQyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8saUJBQWlCLENBQUM7O0FBRXpCLDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsR0FBUyxNQUFjLENBQUMsT0FBTyxJQUFLLE1BQWMsQ0FBQztBQUMxRCxNQUFNLE1BQU0sR0FBUyxZQUFvQixDQUFDLE9BQU8sSUFBSyxZQUFvQixDQUFDO0FBRTNFLDBFQUEwRTtBQUMxRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUNoQyxNQUFjLENBQUMsTUFBTSxHQUFJLE1BQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQWMsQ0FBQyxDQUFDLEdBQUksTUFBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsTUFBYyxDQUFDLE1BQU0sR0FBSSxNQUFjLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztDQUMzRDtBQXlDRCxNQUFNLE9BQU8sd0JBQXdCO0lBc0NuQyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXJDekIsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFLcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBb0QsQ0FBQztRQUNwRixrQkFBYSxHQUFHLElBQUks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QUF3QixDQUFDO1lBQ3ZELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSx3QkFBd0I7a0JBVnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDOzRCQUN2RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjtpR0FFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBqcXVlcnkgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAqIGFzIG1vbWVudEltcG9ydCBmcm9tICdtb21lbnQnO1xuaW1wb3J0ICdkYXRlcmFuZ2VwaWNrZXInO1xuXG4vLyBOb3JtYWxpemUgbW9kdWxlIGRlZmF1bHQvbmFtZXNwYWNlIGludGVyb3AgZm9yIGJvdGggRVNNIGFuZCBDSlMgYnVpbGRzLlxuY29uc3QgJDogYW55ID0gKGpxdWVyeSBhcyBhbnkpLmRlZmF1bHQgfHwgKGpxdWVyeSBhcyBhbnkpO1xuY29uc3QgbW9tZW50OiBhbnkgPSAobW9tZW50SW1wb3J0IGFzIGFueSkuZGVmYXVsdCB8fCAobW9tZW50SW1wb3J0IGFzIGFueSk7XG5cbi8vIEVuc3VyZSBnbG9iYWxzIGFyZSBwcmVzZW50IGZvciB0aGUgZGF0ZXJhbmdlcGlja2VyIHBsdWdpbiByZWdpc3RyYXRpb24uXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgKHdpbmRvdyBhcyBhbnkpLmpRdWVyeSA9ICh3aW5kb3cgYXMgYW55KS5qUXVlcnkgfHwgJDtcbiAgKHdpbmRvdyBhcyBhbnkpLiQgPSAod2luZG93IGFzIGFueSkuJCB8fCAkO1xuICAod2luZG93IGFzIGFueSkubW9tZW50ID0gKHdpbmRvdyBhcyBhbnkpLm1vbWVudCB8fCBtb21lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyB7XG4gIHN0YXJ0RGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIGVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBtaW5EYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgbWF4RGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIGxvY2FsZT86IGFueTtcbiAgcmFuZ2VzPzogYW55O1xuICBvcGVucz86ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcbiAgZHJvcHM/OiAnZG93bicgfCAndXAnIHwgJ2F1dG8nO1xuICBidXR0b25DbGFzc2VzPzogc3RyaW5nO1xuICBhcHBseUJ1dHRvbkNsYXNzZXM/OiBzdHJpbmc7XG4gIGNhbmNlbEJ1dHRvbkNsYXNzZXM/OiBzdHJpbmc7XG4gIGF1dG9BcHBseT86IGJvb2xlYW47XG4gIGFsd2F5c1Nob3dDYWxlbmRhcnM/OiBib29sZWFuO1xuICBzaG93RHJvcGRvd25zPzogYm9vbGVhbjtcbiAgc2hvd1dlZWtOdW1iZXJzPzogYm9vbGVhbjtcbiAgc2hvd0lTT1dlZWtOdW1iZXJzPzogYm9vbGVhbjtcbiAgc2luZ2xlRGF0ZVBpY2tlcj86IGJvb2xlYW47XG4gIHRpbWVQaWNrZXI/OiBib29sZWFuO1xuICB0aW1lUGlja2VyMjRIb3VyPzogYm9vbGVhbjtcbiAgdGltZVBpY2tlckluY3JlbWVudD86IG51bWJlcjtcbiAgdGltZVBpY2tlclNlY29uZHM/OiBib29sZWFuO1xuICBsaW5rZWRDYWxlbmRhcnM/OiBib29sZWFuO1xuICBhdXRvVXBkYXRlSW5wdXQ/OiBib29sZWFuO1xuICBpc0ludmFsaWREYXRlPzogKGRhdGU6IERhdGUpID0+IGJvb2xlYW47XG4gIGlzQ3VzdG9tRGF0ZT86IChkYXRlOiBEYXRlKSA9PiBzdHJpbmcgfCBib29sZWFuO1xuICBwYXJlbnRFbD86IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NxYURhdGVyYW5nZXBpY2tlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVyYW5nZXBpY2tlckRpcmVjdGl2ZSksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcmFuZ2VwaWNrZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IERhdGVSYW5nZVBpY2tlck9wdGlvbnMgPSB7fTtcbiAgQElucHV0KCkgc3RhcnREYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgQElucHV0KCkgZW5kRGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pbkRhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBASW5wdXQoKSBtYXhEYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgQE91dHB1dCgpIGRhdGVzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzdGFydERhdGU6IERhdGUgfCBudWxsOyBlbmREYXRlOiBEYXRlIHwgbnVsbCB9PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGFwcGx5Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzdGFydERhdGU6IERhdGUgfCBudWxsOyBlbmREYXRlOiBEYXRlIHwgbnVsbCB9PigpO1xuXG4gIHByaXZhdGUgcGlja2VySW5zdGFuY2U6IGFueTtcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogU2FmZWx5IHVwZGF0ZSB0aGUgaW5wdXQgdGV4dCB0byBhdm9pZCBcIkludmFsaWQgZGF0ZVwiIG9yIFwidW5kZWZpbmVkXCIgc3RyaW5ncy5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlSW5wdXRWYWx1ZShzdGFydDogYW55LCBlbmQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgKHdpbmRvdyBhcyBhbnkpLm1vbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcbiAgICBjb25zdCBtID0gKHdpbmRvdyBhcyBhbnkpLm1vbWVudDtcbiAgICBjb25zdCBmb3JtYXQgPSAodGhpcy5vcHRpb25zPy5sb2NhbGUgJiYgdGhpcy5vcHRpb25zLmxvY2FsZS5mb3JtYXQpIHx8ICdNTS9ERC9ZWVlZJztcbiAgICBjb25zdCBzZXBhcmF0b3IgPSAodGhpcy5vcHRpb25zPy5sb2NhbGUgJiYgdGhpcy5vcHRpb25zLmxvY2FsZS5zZXBhcmF0b3IpIHx8ICcgLSAnO1xuXG4gICAgY29uc3QgaGFzU3RhcnQgPSBzdGFydCAmJiBtLmlzTW9tZW50KHN0YXJ0KTtcbiAgICBjb25zdCBoYXNFbmQgPSBlbmQgJiYgbS5pc01vbWVudChlbmQpO1xuXG4gICAgaWYgKGhhc1N0YXJ0ICYmIGhhc0VuZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdGV4dCA9IGAke3N0YXJ0LmZvcm1hdChmb3JtYXQpfSR7c2VwYXJhdG9yfSR7ZW5kLmZvcm1hdChmb3JtYXQpfWA7XG4gICAgICAgICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS52YWwodGV4dCk7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS52YWwoJycpO1xuICAgICAgfSBjYXRjaCB7fVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0RGF0ZXJhbmdlcGlja2VyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGlja2VySW5zdGFuY2UpIHtcbiAgICAgIGlmIChjaGFuZ2VzWydzdGFydERhdGUnXSB8fCBjaGFuZ2VzWydlbmREYXRlJ10pIHtcbiAgICAgICAgdGhpcy51cGRhdGVEYXRlcygpO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZXNbJ21pbkRhdGUnXSB8fCBjaGFuZ2VzWydtYXhEYXRlJ10pIHtcbiAgICAgICAgdGhpcy51cGRhdGVNaW5NYXhEYXRlcygpO1xuICAgICAgfVxuICAgICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lQaWNrZXIoKTtcbiAgICAgICAgdGhpcy5pbml0RGF0ZXJhbmdlcGlja2VyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95UGlja2VyKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXREYXRlcmFuZ2VwaWNrZXIoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiAkID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgKCQuZm4gYXMgYW55KS5kYXRlcmFuZ2VwaWNrZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdqUXVlcnkgYW5kIGRhdGVyYW5nZXBpY2tlciBtdXN0IGJlIGxvYWRlZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIG1vbWVudC5qcyBpcyBhdmFpbGFibGVcbiAgICBpZiAodHlwZW9mICh3aW5kb3cgYXMgYW55KS5tb21lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdtb21lbnQuanMgbXVzdCBiZSBsb2FkZWQgZm9yIGRhdGVyYW5nZXBpY2tlciB0byB3b3JrJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzb2x2ZSBwYXJlbnQgZWxlbWVudCB0byBzY29wZSBzdHlsZXM7IGRlZmF1bHQgdG8gY2xvc2VzdCAuY3FhLXVpLWRhdGVyYW5nZS1waWNrZXIsIGZhbGxiYWNrIHRvIGJvZHkuXG4gICAgY29uc3QgcGFyZW50RWxDYW5kaWRhdGUgPSAkKHRoaXMuZWwubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgnLmNxYS11aS1kYXRlcmFuZ2UtcGlja2VyJyk7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXJlbnRFbCA9IHRoaXMub3B0aW9ucz8ucGFyZW50RWxcbiAgICAgID8gdGhpcy5vcHRpb25zLnBhcmVudEVsXG4gICAgICA6IChwYXJlbnRFbENhbmRpZGF0ZSAmJiBwYXJlbnRFbENhbmRpZGF0ZS5sZW5ndGggPyBwYXJlbnRFbENhbmRpZGF0ZSA6ICdib2R5Jyk7XG5cbiAgICBjb25zdCBiYXNlT3B0aW9uczogRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyA9IHtcbiAgICAgIG9wZW5zOiAnbGVmdCcsXG4gICAgICBkcm9wczogJ2Rvd24nLFxuICAgICAgYXV0b0FwcGx5OiB0cnVlLFxuICAgICAgYXV0b1VwZGF0ZUlucHV0OiBmYWxzZSwgLy8gd2UgbWFuYWdlIHRoZSBpbnB1dCBvdXJzZWx2ZXMgdG8gcHJldmVudCBcIkludmFsaWQgZGF0ZVwiXG4gICAgICBsb2NhbGU6IHtcbiAgICAgICAgZm9ybWF0OiAnTU0vREQvWVlZWScsXG4gICAgICAgIHNlcGFyYXRvcjogJyAtICcsXG4gICAgICAgIGFwcGx5TGFiZWw6ICdBcHBseScsXG4gICAgICAgIGNhbmNlbExhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgZnJvbUxhYmVsOiAnRnJvbScsXG4gICAgICAgIHRvTGFiZWw6ICdUbycsXG4gICAgICAgIGN1c3RvbVJhbmdlTGFiZWw6ICdDdXN0b20nLFxuICAgICAgICB3ZWVrTGFiZWw6ICdXJyxcbiAgICAgICAgZGF5c09mV2VlazogWydTdScsICdNbycsICdUdScsICdXZScsICdUaCcsICdGcicsICdTYSddLFxuICAgICAgICBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSxcbiAgICAgICAgZmlyc3REYXk6IDBcbiAgICAgIH0sXG4gICAgICBwYXJlbnRFbDogcmVzb2x2ZWRQYXJlbnRFbCBhcyBhbnlcbiAgICB9O1xuXG4gICAgLy8gTWVyZ2Ugb3B0aW9ucyBidXQgZm9yY2UtZGlzYWJsZSBwbHVnaW4gYXV0b1VwZGF0ZUlucHV0IHRvIGF2b2lkIGludmFsaWQgdmFsdWVzLlxuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBEYXRlUmFuZ2VQaWNrZXJPcHRpb25zID0ge1xuICAgICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBsb2NhbGU6IHtcbiAgICAgICAgLi4uYmFzZU9wdGlvbnMubG9jYWxlLFxuICAgICAgICAuLi4odGhpcy5vcHRpb25zPy5sb2NhbGUgfHwge30pXG4gICAgICB9LFxuICAgICAgYXV0b1VwZGF0ZUlucHV0OiBmYWxzZVxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IERhdGUgb2JqZWN0cyB0byBtb21lbnQgb2JqZWN0cyBmb3IgZGF0ZXJhbmdlcGlja2VyXG4gICAgY29uc3QgdG9Nb21lbnQgPSAoZDogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBhbnkgPT4ge1xuICAgICAgaWYgKCFkKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmICh0eXBlb2YgZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG93ZXIgPSBkLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXIgPT09ICd1bmRlZmluZWQnIHx8IGxvd2VyID09PSAnbnVsbCcgfHwgbG93ZXIgPT09ICcnKSByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChtb21lbnQuaXNNb21lbnQgJiYgbW9tZW50LmlzTW9tZW50KGQpKSByZXR1cm4gZDtcbiAgICAgIGNvbnN0IGRhdGUgPSB0eXBlb2YgZCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShkKSA6IGQ7XG4gICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgICByZXR1cm4gbW9tZW50KGRhdGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgICBcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IHRvTW9tZW50KHRoaXMuc3RhcnREYXRlKTtcbiAgICBjb25zdCBlbmRNb21lbnQgPSB0b01vbWVudCh0aGlzLmVuZERhdGUpO1xuICAgIGNvbnN0IG1pbk1vbWVudCA9IHRvTW9tZW50KHRoaXMubWluRGF0ZSk7XG4gICAgY29uc3QgbWF4TW9tZW50ID0gdG9Nb21lbnQodGhpcy5tYXhEYXRlKTtcbiAgICBcbiAgICBpZiAoc3RhcnRNb21lbnQpIGRlZmF1bHRPcHRpb25zLnN0YXJ0RGF0ZSA9IHN0YXJ0TW9tZW50O1xuICAgIGlmIChlbmRNb21lbnQpIGRlZmF1bHRPcHRpb25zLmVuZERhdGUgPSBlbmRNb21lbnQ7XG4gICAgaWYgKG1pbk1vbWVudCkgZGVmYXVsdE9wdGlvbnMubWluRGF0ZSA9IG1pbk1vbWVudDtcbiAgICBpZiAobWF4TW9tZW50KSBkZWZhdWx0T3B0aW9ucy5tYXhEYXRlID0gbWF4TW9tZW50O1xuXG4gICAgLy8gSWYgbm8gaW5pdGlhbCBkYXRlcywgZW5zdXJlIHRoZSBpbnB1dCBpcyBibGFuayBiZWZvcmUgcGx1Z2luIGluaXQuXG4gICAgaWYgKCFzdGFydE1vbWVudCAmJiAhZW5kTW9tZW50KSB7XG4gICAgICB0cnkgeyAkKHRoaXMuZWwubmF0aXZlRWxlbWVudCkudmFsKCcnKTsgfSBjYXRjaCB7fVxuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgdGhlIHBpY2tlclxuICAgICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5kYXRlcmFuZ2VwaWNrZXIoZGVmYXVsdE9wdGlvbnMsIChzdGFydDogYW55LCBlbmQ6IGFueSwgbGFiZWw6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc3RhcnREYXRlID0gc3RhcnQgPyBzdGFydC50b0RhdGUoKSA6IG51bGw7XG4gICAgICBjb25zdCBlbmREYXRlID0gZW5kID8gZW5kLnRvRGF0ZSgpIDogbnVsbDtcbiAgICAgIFxuICAgICAgdGhpcy5vbkNoYW5nZSh7IHN0YXJ0OiBzdGFydERhdGUsIGVuZDogZW5kRGF0ZSB9KTtcbiAgICAgIHRoaXMuZGF0ZXNVcGRhdGVkLmVtaXQoeyBzdGFydERhdGUsIGVuZERhdGUgfSk7XG4gICAgICB0aGlzLmFwcGx5Q2xpY2tlZC5lbWl0KHsgc3RhcnREYXRlLCBlbmREYXRlIH0pO1xuICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHN0YXJ0LCBlbmQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5waWNrZXJJbnN0YW5jZSA9ICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5kYXRhKCdkYXRlcmFuZ2VwaWNrZXInKTtcblxuICAgIC8vIEVuc3VyZSB0aGUgb3ZlcmxheSBnZXRzIHRoZSBzdHlsaW5nIHNjb3BlIGNsYXNzIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuXG4gICAgaWYgKHRoaXMucGlja2VySW5zdGFuY2U/LmNvbnRhaW5lcikge1xuICAgICAgY29uc3QgYyA9IHRoaXMucGlja2VySW5zdGFuY2UuY29udGFpbmVyO1xuICAgICAgaWYgKCFjLmhhc0NsYXNzKCdjcWEtdWktZGF0ZXJhbmdlLXBpY2tlcicpKSB7XG4gICAgICAgIGMuYWRkQ2xhc3MoJ2NxYS11aS1kYXRlcmFuZ2UtcGlja2VyJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGNhbmNlbCBldmVudFxuICAgICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5vbignY2FuY2VsLmRhdGVyYW5nZXBpY2tlcicsICgpID0+IHtcbiAgICAgIHRoaXMuY2FuY2VsQ2xpY2tlZC5lbWl0KCk7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUobnVsbCwgbnVsbCk7XG4gICAgfSk7XG5cbiAgICAvLyBVcGRhdGUgaW5pdGlhbCB2YWx1ZSBpZiBwcm92aWRlZFxuICAgIHRoaXMudXBkYXRlRGF0ZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGF0ZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBpY2tlckluc3RhbmNlKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiAod2luZG93IGFzIGFueSkubW9tZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9tZW50ID0gKHdpbmRvdyBhcyBhbnkpLm1vbWVudDtcbiAgICBcbiAgICAvLyBDb252ZXJ0IERhdGUgb2JqZWN0cyB0byBtb21lbnQgb2JqZWN0c1xuICAgIGNvbnN0IHRvTW9tZW50ID0gKGQ6IERhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYW55ID0+IHtcbiAgICAgIGlmICghZCkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAodHlwZW9mIGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IGxvd2VyID0gZC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGxvd2VyID09PSAndW5kZWZpbmVkJyB8fCBsb3dlciA9PT0gJ251bGwnIHx8IGxvd2VyID09PSAnJykgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAobW9tZW50LmlzTW9tZW50ICYmIG1vbWVudC5pc01vbWVudChkKSkgcmV0dXJuIGQ7XG4gICAgICBjb25zdCBkYXRlID0gdHlwZW9mIGQgPT09ICdzdHJpbmcnID8gbmV3IERhdGUoZCkgOiBkO1xuICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudChkYXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgXG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSB0b01vbWVudCh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgY29uc3QgZW5kTW9tZW50ID0gdG9Nb21lbnQodGhpcy5lbmREYXRlKTtcbiAgICBcbiAgICBpZiAoc3RhcnRNb21lbnQpIHtcbiAgICAgIHRoaXMucGlja2VySW5zdGFuY2Uuc2V0U3RhcnREYXRlKHN0YXJ0TW9tZW50KTtcbiAgICB9XG4gICAgXG4gICAgaWYgKGVuZE1vbWVudCkge1xuICAgICAgdGhpcy5waWNrZXJJbnN0YW5jZS5zZXRFbmREYXRlKGVuZE1vbWVudCk7XG4gICAgfVxuICAgIFxuICAgIC8vIFVwZGF0ZSBpbnB1dCB0ZXh0IHRvIHJlZmxlY3QgY3VycmVudCB2YWx1ZXNcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUoc3RhcnRNb21lbnQsIGVuZE1vbWVudCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1pbk1heERhdGVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5waWNrZXJJbnN0YW5jZSkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2YgKHdpbmRvdyBhcyBhbnkpLm1vbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICAgIGNvbnN0IG1vbWVudCA9ICh3aW5kb3cgYXMgYW55KS5tb21lbnQ7XG4gICAgXG4gICAgLy8gQ29udmVydCBEYXRlIG9iamVjdHMgdG8gbW9tZW50IG9iamVjdHNcbiAgICBjb25zdCB0b01vbWVudCA9IChkOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGFueSA9PiB7XG4gICAgICBpZiAoIWQpIHJldHVybiBudWxsO1xuICAgICAgaWYgKG1vbWVudC5pc01vbWVudCAmJiBtb21lbnQuaXNNb21lbnQoZCkpIHJldHVybiBkO1xuICAgICAgY29uc3QgZGF0ZSA9IHR5cGVvZiBkID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKGQpIDogZDtcbiAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIFxuICAgIGNvbnN0IG1pbk1vbWVudCA9IHRvTW9tZW50KHRoaXMubWluRGF0ZSk7XG4gICAgY29uc3QgbWF4TW9tZW50ID0gdG9Nb21lbnQodGhpcy5tYXhEYXRlKTtcbiAgICBcbiAgICBpZiAobWluTW9tZW50KSB7XG4gICAgICB0aGlzLnBpY2tlckluc3RhbmNlLnNldE1pbkRhdGUobWluTW9tZW50KTtcbiAgICB9XG4gICAgaWYgKG1heE1vbWVudCkge1xuICAgICAgdGhpcy5waWNrZXJJbnN0YW5jZS5zZXRNYXhEYXRlKG1heE1vbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95UGlja2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBpY2tlckluc3RhbmNlICYmIHR5cGVvZiAkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLm9mZignY2FuY2VsLmRhdGVyYW5nZXBpY2tlcicpO1xuICAgICAgJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLmRhdGEoJ2RhdGVyYW5nZXBpY2tlcicpPy5yZW1vdmUoKTtcbiAgICAgIHRoaXMucGlja2VySW5zdGFuY2UgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICYmICh2YWx1ZS5zdGFydCB8fCB2YWx1ZS5lbmQpKSB7XG4gICAgICAvLyBWYWxpZGF0ZSBkYXRlcyBiZWZvcmUgc2V0dGluZ1xuICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSAoZDogRGF0ZSB8IG51bGwpOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGQgIT09IG51bGwgJiYgZCBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGQuZ2V0VGltZSgpKTtcbiAgICAgIH07XG4gICAgICBcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gKHZhbHVlLnN0YXJ0ICYmIGlzVmFsaWREYXRlKHZhbHVlLnN0YXJ0KSkgPyB2YWx1ZS5zdGFydCA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9ICh2YWx1ZS5lbmQgJiYgaXNWYWxpZERhdGUodmFsdWUuZW5kKSkgPyB2YWx1ZS5lbmQgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVwZGF0ZURhdGVzKCk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCAodmFsdWUgJiYgIXZhbHVlLnN0YXJ0ICYmICF2YWx1ZS5lbmQpKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgIGlmICh0aGlzLnBpY2tlckluc3RhbmNlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbSA9ICh3aW5kb3cgYXMgYW55KS5tb21lbnQ7XG4gICAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICAgIC8vIFJlc2V0IHBpY2tlciBpbnRlcm5hbHMgdG8gYSBzYWZlIHZhbHVlIGluc3RlYWQgb2YgbnVsbCB0byBhdm9pZCBcIkludmFsaWQgZGF0ZVwiXG4gICAgICAgICAgICB0aGlzLnBpY2tlckluc3RhbmNlLnNldFN0YXJ0RGF0ZShtKCkpO1xuICAgICAgICAgICAgdGhpcy5waWNrZXJJbnN0YW5jZS5zZXRFbmREYXRlKG0oKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShudWxsLCBudWxsKTtcbiAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuIl19
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmlsdGVycy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUErQyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8saUJBQWlCLENBQUM7O0FBRXpCLDBFQUEwRTtBQUMxRSxNQUFNLENBQUMsR0FBUyxNQUFjLENBQUMsT0FBTyxJQUFLLE1BQWMsQ0FBQztBQUMxRCxNQUFNLE1BQU0sR0FBUyxZQUFvQixDQUFDLE9BQU8sSUFBSyxZQUFvQixDQUFDO0FBRTNFLDBFQUEwRTtBQUMxRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUNoQyxNQUFjLENBQUMsTUFBTSxHQUFJLE1BQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQWMsQ0FBQyxDQUFDLEdBQUksTUFBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsTUFBYyxDQUFDLE1BQU0sR0FBSSxNQUFjLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztDQUMzRDtBQXlDRCxNQUFNLE9BQU8sd0JBQXdCO0lBc0NuQyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQXJDekIsWUFBTyxHQUEyQixFQUFFLENBQUM7UUFLcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBb0QsQ0FBQztRQUNwRixrQkFBYSxHQUFHLElBQUks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QUF3QixDQUFDO1lBQ3ZELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjsyRkFFVSx3QkFBd0I7a0JBVnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDOzRCQUN2RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjtpR0FFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBqcXVlcnkgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAqIGFzIG1vbWVudEltcG9ydCBmcm9tICdtb21lbnQnO1xuaW1wb3J0ICdkYXRlcmFuZ2VwaWNrZXInO1xuXG4vLyBOb3JtYWxpemUgbW9kdWxlIGRlZmF1bHQvbmFtZXNwYWNlIGludGVyb3AgZm9yIGJvdGggRVNNIGFuZCBDSlMgYnVpbGRzLlxuY29uc3QgJDogYW55ID0gKGpxdWVyeSBhcyBhbnkpLmRlZmF1bHQgfHwgKGpxdWVyeSBhcyBhbnkpO1xuY29uc3QgbW9tZW50OiBhbnkgPSAobW9tZW50SW1wb3J0IGFzIGFueSkuZGVmYXVsdCB8fCAobW9tZW50SW1wb3J0IGFzIGFueSk7XG5cbi8vIEVuc3VyZSBnbG9iYWxzIGFyZSBwcmVzZW50IGZvciB0aGUgZGF0ZXJhbmdlcGlja2VyIHBsdWdpbiByZWdpc3RyYXRpb24uXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgKHdpbmRvdyBhcyBhbnkpLmpRdWVyeSA9ICh3aW5kb3cgYXMgYW55KS5qUXVlcnkgfHwgJDtcbiAgKHdpbmRvdyBhcyBhbnkpLiQgPSAod2luZG93IGFzIGFueSkuJCB8fCAkO1xuICAod2luZG93IGFzIGFueSkubW9tZW50ID0gKHdpbmRvdyBhcyBhbnkpLm1vbWVudCB8fCBtb21lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyB7XG4gIHN0YXJ0RGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIGVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBtaW5EYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgbWF4RGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIGxvY2FsZT86IGFueTtcbiAgcmFuZ2VzPzogYW55O1xuICBvcGVucz86ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcbiAgZHJvcHM/OiAnZG93bicgfCAndXAnIHwgJ2F1dG8nO1xuICBidXR0b25DbGFzc2VzPzogc3RyaW5nO1xuICBhcHBseUJ1dHRvbkNsYXNzZXM/OiBzdHJpbmc7XG4gIGNhbmNlbEJ1dHRvbkNsYXNzZXM/OiBzdHJpbmc7XG4gIGF1dG9BcHBseT86IGJvb2xlYW47XG4gIGFsd2F5c1Nob3dDYWxlbmRhcnM/OiBib29sZWFuO1xuICBzaG93RHJvcGRvd25zPzogYm9vbGVhbjtcbiAgc2hvd1dlZWtOdW1iZXJzPzogYm9vbGVhbjtcbiAgc2hvd0lTT1dlZWtOdW1iZXJzPzogYm9vbGVhbjtcbiAgc2luZ2xlRGF0ZVBpY2tlcj86IGJvb2xlYW47XG4gIHRpbWVQaWNrZXI/OiBib29sZWFuO1xuICB0aW1lUGlja2VyMjRIb3VyPzogYm9vbGVhbjtcbiAgdGltZVBpY2tlckluY3JlbWVudD86IG51bWJlcjtcbiAgdGltZVBpY2tlclNlY29uZHM/OiBib29sZWFuO1xuICBsaW5rZWRDYWxlbmRhcnM/OiBib29sZWFuO1xuICBhdXRvVXBkYXRlSW5wdXQ/OiBib29sZWFuO1xuICBpc0ludmFsaWREYXRlPzogKGRhdGU6IERhdGUpID0+IGJvb2xlYW47XG4gIGlzQ3VzdG9tRGF0ZT86IChkYXRlOiBEYXRlKSA9PiBzdHJpbmcgfCBib29sZWFuO1xuICBwYXJlbnRFbD86IHN0cmluZyB8IEhUTUxFbGVtZW50O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY3FhRGF0ZXJhbmdlcGlja2VyXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVyYW5nZXBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgb3B0aW9uczogRGF0ZVJhbmdlUGlja2VyT3B0aW9ucyA9IHt9O1xuICBASW5wdXQoKSBzdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBASW5wdXQoKSBlbmREYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgQElucHV0KCkgbWluRGF0ZT86IERhdGUgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBAT3V0cHV0KCkgZGF0ZXNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYXBwbHlDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGw7IGVuZERhdGU6IERhdGUgfCBudWxsIH0+KCk7XG5cbiAgcHJpdmF0ZSBwaWNrZXJJbnN0YW5jZTogYW55O1xuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBTYWZlbHkgdXBkYXRlIHRoZSBpbnB1dCB0ZXh0IHRvIGF2b2lkIFwiSW52YWxpZCBkYXRlXCIgb3IgXCJ1bmRlZmluZWRcIiBzdHJpbmdzLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVJbnB1dFZhbHVlKHN0YXJ0OiBhbnksIGVuZDogYW55KTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiAod2luZG93IGFzIGFueSkubW9tZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgIGNvbnN0IG0gPSAod2luZG93IGFzIGFueSkubW9tZW50O1xuICAgIGNvbnN0IGZvcm1hdCA9ICh0aGlzLm9wdGlvbnM/LmxvY2FsZSAmJiB0aGlzLm9wdGlvbnMubG9jYWxlLmZvcm1hdCkgfHwgJ01NL0REL1lZWVknO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9ICh0aGlzLm9wdGlvbnM/LmxvY2FsZSAmJiB0aGlzLm9wdGlvbnMubG9jYWxlLnNlcGFyYXRvcikgfHwgJyAtICc7XG5cbiAgICBjb25zdCBoYXNTdGFydCA9IHN0YXJ0ICYmIG0uaXNNb21lbnQoc3RhcnQpO1xuICAgIGNvbnN0IGhhc0VuZCA9IGVuZCAmJiBtLmlzTW9tZW50KGVuZCk7XG5cbiAgICBpZiAoaGFzU3RhcnQgJiYgaGFzRW5kKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0ZXh0ID0gYCR7c3RhcnQuZm9ybWF0KGZvcm1hdCl9JHtzZXBhcmF0b3J9JHtlbmQuZm9ybWF0KGZvcm1hdCl9YDtcbiAgICAgICAgJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLnZhbCh0ZXh0KTtcbiAgICAgIH0gY2F0Y2gge31cbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLnZhbCgnJyk7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREYXRlcmFuZ2VwaWNrZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waWNrZXJJbnN0YW5jZSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ3N0YXJ0RGF0ZSddIHx8IGNoYW5nZXNbJ2VuZERhdGUnXSkge1xuICAgICAgICB0aGlzLnVwZGF0ZURhdGVzKCk7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlc1snbWluRGF0ZSddIHx8IGNoYW5nZXNbJ21heERhdGUnXSkge1xuICAgICAgICB0aGlzLnVwZGF0ZU1pbk1heERhdGVzKCk7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVBpY2tlcigpO1xuICAgICAgICB0aGlzLmluaXREYXRlcmFuZ2VwaWNrZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lQaWNrZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdERhdGVyYW5nZXBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mICQgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiAoJC5mbiBhcyBhbnkpLmRhdGVyYW5nZXBpY2tlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2pRdWVyeSBhbmQgZGF0ZXJhbmdlcGlja2VyIG11c3QgYmUgbG9hZGVkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgbW9tZW50LmpzIGlzIGF2YWlsYWJsZVxuICAgIGlmICh0eXBlb2YgKHdpbmRvdyBhcyBhbnkpLm1vbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ21vbWVudC5qcyBtdXN0IGJlIGxvYWRlZCBmb3IgZGF0ZXJhbmdlcGlja2VyIHRvIHdvcmsnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIHBhcmVudCBlbGVtZW50IHRvIHNjb3BlIHN0eWxlczsgZGVmYXVsdCB0byBjbG9zZXN0IC5jcWEtdWktZGF0ZXJhbmdlLXBpY2tlciwgZmFsbGJhY2sgdG8gYm9keS5cbiAgICBjb25zdCBwYXJlbnRFbENhbmRpZGF0ZSA9ICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5jbG9zZXN0KCcuY3FhLXVpLWRhdGVyYW5nZS1waWNrZXInKTtcbiAgICBjb25zdCByZXNvbHZlZFBhcmVudEVsID0gdGhpcy5vcHRpb25zPy5wYXJlbnRFbFxuICAgICAgPyB0aGlzLm9wdGlvbnMucGFyZW50RWxcbiAgICAgIDogKHBhcmVudEVsQ2FuZGlkYXRlICYmIHBhcmVudEVsQ2FuZGlkYXRlLmxlbmd0aCA/IHBhcmVudEVsQ2FuZGlkYXRlIDogJ2JvZHknKTtcblxuICAgIGNvbnN0IGJhc2VPcHRpb25zOiBEYXRlUmFuZ2VQaWNrZXJPcHRpb25zID0ge1xuICAgICAgb3BlbnM6ICdsZWZ0JyxcbiAgICAgIGRyb3BzOiAnZG93bicsXG4gICAgICBhdXRvQXBwbHk6IHRydWUsXG4gICAgICBhdXRvVXBkYXRlSW5wdXQ6IGZhbHNlLCAvLyB3ZSBtYW5hZ2UgdGhlIGlucHV0IG91cnNlbHZlcyB0byBwcmV2ZW50IFwiSW52YWxpZCBkYXRlXCJcbiAgICAgIGxvY2FsZToge1xuICAgICAgICBmb3JtYXQ6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgc2VwYXJhdG9yOiAnIC0gJyxcbiAgICAgICAgYXBwbHlMYWJlbDogJ0FwcGx5JyxcbiAgICAgICAgY2FuY2VsTGFiZWw6ICdDYW5jZWwnLFxuICAgICAgICBmcm9tTGFiZWw6ICdGcm9tJyxcbiAgICAgICAgdG9MYWJlbDogJ1RvJyxcbiAgICAgICAgY3VzdG9tUmFuZ2VMYWJlbDogJ0N1c3RvbScsXG4gICAgICAgIHdlZWtMYWJlbDogJ1cnLFxuICAgICAgICBkYXlzT2ZXZWVrOiBbJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJ10sXG4gICAgICAgIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddLFxuICAgICAgICBmaXJzdERheTogMFxuICAgICAgfSxcbiAgICAgIHBhcmVudEVsOiByZXNvbHZlZFBhcmVudEVsIGFzIGFueVxuICAgIH07XG5cbiAgICAvLyBNZXJnZSBvcHRpb25zIGJ1dCBmb3JjZS1kaXNhYmxlIHBsdWdpbiBhdXRvVXBkYXRlSW5wdXQgdG8gYXZvaWQgaW52YWxpZCB2YWx1ZXMuXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IERhdGVSYW5nZVBpY2tlck9wdGlvbnMgPSB7XG4gICAgICAuLi5iYXNlT3B0aW9ucyxcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGxvY2FsZToge1xuICAgICAgICAuLi5iYXNlT3B0aW9ucy5sb2NhbGUsXG4gICAgICAgIC4uLih0aGlzLm9wdGlvbnM/LmxvY2FsZSB8fCB7fSlcbiAgICAgIH0sXG4gICAgICBhdXRvVXBkYXRlSW5wdXQ6IGZhbHNlXG4gICAgfTtcblxuICAgIC8vIENvbnZlcnQgRGF0ZSBvYmplY3RzIHRvIG1vbWVudCBvYmplY3RzIGZvciBkYXRlcmFuZ2VwaWNrZXJcbiAgICBjb25zdCB0b01vbWVudCA9IChkOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGFueSA9PiB7XG4gICAgICBpZiAoIWQpIHJldHVybiBudWxsO1xuICAgICAgaWYgKHR5cGVvZiBkID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBsb3dlciA9IGQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChsb3dlciA9PT0gJ3VuZGVmaW5lZCcgfHwgbG93ZXIgPT09ICdudWxsJyB8fCBsb3dlciA9PT0gJycpIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKG1vbWVudC5pc01vbWVudCAmJiBtb21lbnQuaXNNb21lbnQoZCkpIHJldHVybiBkO1xuICAgICAgY29uc3QgZGF0ZSA9IHR5cGVvZiBkID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKGQpIDogZDtcbiAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIFxuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gdG9Nb21lbnQodGhpcy5zdGFydERhdGUpO1xuICAgIGNvbnN0IGVuZE1vbWVudCA9IHRvTW9tZW50KHRoaXMuZW5kRGF0ZSk7XG4gICAgY29uc3QgbWluTW9tZW50ID0gdG9Nb21lbnQodGhpcy5taW5EYXRlKTtcbiAgICBjb25zdCBtYXhNb21lbnQgPSB0b01vbWVudCh0aGlzLm1heERhdGUpO1xuICAgIFxuICAgIGlmIChzdGFydE1vbWVudCkgZGVmYXVsdE9wdGlvbnMuc3RhcnREYXRlID0gc3RhcnRNb21lbnQ7XG4gICAgaWYgKGVuZE1vbWVudCkgZGVmYXVsdE9wdGlvbnMuZW5kRGF0ZSA9IGVuZE1vbWVudDtcbiAgICBpZiAobWluTW9tZW50KSBkZWZhdWx0T3B0aW9ucy5taW5EYXRlID0gbWluTW9tZW50O1xuICAgIGlmIChtYXhNb21lbnQpIGRlZmF1bHRPcHRpb25zLm1heERhdGUgPSBtYXhNb21lbnQ7XG5cbiAgICAvLyBJZiBubyBpbml0aWFsIGRhdGVzLCBlbnN1cmUgdGhlIGlucHV0IGlzIGJsYW5rIGJlZm9yZSBwbHVnaW4gaW5pdC5cbiAgICBpZiAoIXN0YXJ0TW9tZW50ICYmICFlbmRNb21lbnQpIHtcbiAgICAgIHRyeSB7ICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KS52YWwoJycpOyB9IGNhdGNoIHt9XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgcGlja2VyXG4gICAgJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLmRhdGVyYW5nZXBpY2tlcihkZWZhdWx0T3B0aW9ucywgKHN0YXJ0OiBhbnksIGVuZDogYW55LCBsYWJlbDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzdGFydERhdGUgPSBzdGFydCA/IHN0YXJ0LnRvRGF0ZSgpIDogbnVsbDtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmQgPyBlbmQudG9EYXRlKCkgOiBudWxsO1xuICAgICAgXG4gICAgICB0aGlzLm9uQ2hhbmdlKHsgc3RhcnQ6IHN0YXJ0RGF0ZSwgZW5kOiBlbmREYXRlIH0pO1xuICAgICAgdGhpcy5kYXRlc1VwZGF0ZWQuZW1pdCh7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9KTtcbiAgICAgIHRoaXMuYXBwbHlDbGlja2VkLmVtaXQoeyBzdGFydERhdGUsIGVuZERhdGUgfSk7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUoc3RhcnQsIGVuZCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBpY2tlckluc3RhbmNlID0gJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLmRhdGEoJ2RhdGVyYW5nZXBpY2tlcicpO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBvdmVybGF5IGdldHMgdGhlIHN0eWxpbmcgc2NvcGUgY2xhc3MgaWYgbm90IGFscmVhZHkgcHJlc2VudC5cbiAgICBpZiAodGhpcy5waWNrZXJJbnN0YW5jZT8uY29udGFpbmVyKSB7XG4gICAgICBjb25zdCBjID0gdGhpcy5waWNrZXJJbnN0YW5jZS5jb250YWluZXI7XG4gICAgICBpZiAoIWMuaGFzQ2xhc3MoJ2NxYS11aS1kYXRlcmFuZ2UtcGlja2VyJykpIHtcbiAgICAgICAgYy5hZGRDbGFzcygnY3FhLXVpLWRhdGVyYW5nZS1waWNrZXInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgY2FuY2VsIGV2ZW50XG4gICAgJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpLm9uKCdjYW5jZWwuZGF0ZXJhbmdlcGlja2VyJywgKCkgPT4ge1xuICAgICAgdGhpcy5jYW5jZWxDbGlja2VkLmVtaXQoKTtcbiAgICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShudWxsLCBudWxsKTtcbiAgICB9KTtcblxuICAgIC8vIFVwZGF0ZSBpbml0aWFsIHZhbHVlIGlmIHByb3ZpZGVkXG4gICAgdGhpcy51cGRhdGVEYXRlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGlja2VySW5zdGFuY2UpIHJldHVybjtcbiAgICBpZiAodHlwZW9mICh3aW5kb3cgYXMgYW55KS5tb21lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cbiAgICBjb25zdCBtb21lbnQgPSAod2luZG93IGFzIGFueSkubW9tZW50O1xuICAgIFxuICAgIC8vIENvbnZlcnQgRGF0ZSBvYmplY3RzIHRvIG1vbWVudCBvYmplY3RzXG4gICAgY29uc3QgdG9Nb21lbnQgPSAoZDogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBhbnkgPT4ge1xuICAgICAgaWYgKCFkKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmICh0eXBlb2YgZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG93ZXIgPSBkLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXIgPT09ICd1bmRlZmluZWQnIHx8IGxvd2VyID09PSAnbnVsbCcgfHwgbG93ZXIgPT09ICcnKSByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChtb21lbnQuaXNNb21lbnQgJiYgbW9tZW50LmlzTW9tZW50KGQpKSByZXR1cm4gZDtcbiAgICAgIGNvbnN0IGRhdGUgPSB0eXBlb2YgZCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShkKSA6IGQ7XG4gICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgICByZXR1cm4gbW9tZW50KGRhdGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgICBcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IHRvTW9tZW50KHRoaXMuc3RhcnREYXRlKTtcbiAgICBjb25zdCBlbmRNb21lbnQgPSB0b01vbWVudCh0aGlzLmVuZERhdGUpO1xuICAgIFxuICAgIGlmIChzdGFydE1vbWVudCkge1xuICAgICAgdGhpcy5waWNrZXJJbnN0YW5jZS5zZXRTdGFydERhdGUoc3RhcnRNb21lbnQpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoZW5kTW9tZW50KSB7XG4gICAgICB0aGlzLnBpY2tlckluc3RhbmNlLnNldEVuZERhdGUoZW5kTW9tZW50KTtcbiAgICB9XG4gICAgXG4gICAgLy8gVXBkYXRlIGlucHV0IHRleHQgdG8gcmVmbGVjdCBjdXJyZW50IHZhbHVlc1xuICAgIHRoaXMudXBkYXRlSW5wdXRWYWx1ZShzdGFydE1vbWVudCwgZW5kTW9tZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWluTWF4RGF0ZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBpY2tlckluc3RhbmNlKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiAod2luZG93IGFzIGFueSkubW9tZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG4gICAgY29uc3QgbW9tZW50ID0gKHdpbmRvdyBhcyBhbnkpLm1vbWVudDtcbiAgICBcbiAgICAvLyBDb252ZXJ0IERhdGUgb2JqZWN0cyB0byBtb21lbnQgb2JqZWN0c1xuICAgIGNvbnN0IHRvTW9tZW50ID0gKGQ6IERhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYW55ID0+IHtcbiAgICAgIGlmICghZCkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAobW9tZW50LmlzTW9tZW50ICYmIG1vbWVudC5pc01vbWVudChkKSkgcmV0dXJuIGQ7XG4gICAgICBjb25zdCBkYXRlID0gdHlwZW9mIGQgPT09ICdzdHJpbmcnID8gbmV3IERhdGUoZCkgOiBkO1xuICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgcmV0dXJuIG1vbWVudChkYXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgXG4gICAgY29uc3QgbWluTW9tZW50ID0gdG9Nb21lbnQodGhpcy5taW5EYXRlKTtcbiAgICBjb25zdCBtYXhNb21lbnQgPSB0b01vbWVudCh0aGlzLm1heERhdGUpO1xuICAgIFxuICAgIGlmIChtaW5Nb21lbnQpIHtcbiAgICAgIHRoaXMucGlja2VySW5zdGFuY2Uuc2V0TWluRGF0ZShtaW5Nb21lbnQpO1xuICAgIH1cbiAgICBpZiAobWF4TW9tZW50KSB7XG4gICAgICB0aGlzLnBpY2tlckluc3RhbmNlLnNldE1heERhdGUobWF4TW9tZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lQaWNrZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGlja2VySW5zdGFuY2UgJiYgdHlwZW9mICQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAkKHRoaXMuZWwubmF0aXZlRWxlbWVudCkub2ZmKCdjYW5jZWwuZGF0ZXJhbmdlcGlja2VyJyk7XG4gICAgICAkKHRoaXMuZWwubmF0aXZlRWxlbWVudCkuZGF0YSgnZGF0ZXJhbmdlcGlja2VyJyk/LnJlbW92ZSgpO1xuICAgICAgdGhpcy5waWNrZXJJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogeyBzdGFydDogRGF0ZSB8IG51bGw7IGVuZDogRGF0ZSB8IG51bGwgfSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgJiYgKHZhbHVlLnN0YXJ0IHx8IHZhbHVlLmVuZCkpIHtcbiAgICAgIC8vIFZhbGlkYXRlIGRhdGVzIGJlZm9yZSBzZXR0aW5nXG4gICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9IChkOiBEYXRlIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICByZXR1cm4gZCAhPT0gbnVsbCAmJiBkIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oZC5nZXRUaW1lKCkpO1xuICAgICAgfTtcbiAgICAgIFxuICAgICAgdGhpcy5zdGFydERhdGUgPSAodmFsdWUuc3RhcnQgJiYgaXNWYWxpZERhdGUodmFsdWUuc3RhcnQpKSA/IHZhbHVlLnN0YXJ0IDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lbmREYXRlID0gKHZhbHVlLmVuZCAmJiBpc1ZhbGlkRGF0ZSh2YWx1ZS5lbmQpKSA/IHZhbHVlLmVuZCA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZXMoKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsIHx8ICh2YWx1ZSAmJiAhdmFsdWUuc3RhcnQgJiYgIXZhbHVlLmVuZCkpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lbmREYXRlID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKHRoaXMucGlja2VySW5zdGFuY2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBtID0gKHdpbmRvdyBhcyBhbnkpLm1vbWVudDtcbiAgICAgICAgICBpZiAobSkge1xuICAgICAgICAgICAgLy8gUmVzZXQgcGlja2VyIGludGVybmFscyB0byBhIHNhZmUgdmFsdWUgaW5zdGVhZCBvZiBudWxsIHRvIGF2b2lkIFwiSW52YWxpZCBkYXRlXCJcbiAgICAgICAgICAgIHRoaXMucGlja2VySW5zdGFuY2Uuc2V0U3RhcnREYXRlKG0oKSk7XG4gICAgICAgICAgICB0aGlzLnBpY2tlckluc3RhbmNlLnNldEVuZERhdGUobSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKG51bGwsIG51bGwpO1xuICAgICAgICB9IGNhdGNoIHt9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuXG4iXX0=