@seniorsistemas/components-ai 1.2.0 → 1.3.0
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.
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +45 -8
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-datetime.component.mjs +100 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-lookup.component.mjs +31 -9
- package/esm2022/lib/components/dynamic-form/models/dynamic-form.models.mjs +1 -1
- package/esm2022/lib/components/loading/loading.component.mjs +279 -0
- package/esm2022/lib/directives/table-loading/table-loading.directive.mjs +166 -0
- package/esm2022/lib/services/entity.service.mjs +52 -22
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/seniorsistemas-components-ai.mjs +652 -39
- package/fesm2022/seniorsistemas-components-ai.mjs.map +1 -1
- package/lib/components/dynamic-form/fields/dynamic-field-datetime.component.d.ts +20 -0
- package/lib/components/dynamic-form/fields/dynamic-field-lookup.component.d.ts +4 -2
- package/lib/components/dynamic-form/models/dynamic-form.models.d.ts +1 -1
- package/lib/components/loading/loading.component.d.ts +17 -0
- package/lib/directives/table-loading/table-loading.directive.d.ts +34 -0
- package/lib/services/entity.service.d.ts +12 -3
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { CalendarModule } from 'primeng/calendar';
|
|
5
|
+
import { DynamicFieldWrapperComponent } from './dynamic-field-wrapper.component';
|
|
6
|
+
import { DynamicFieldBaseComponent } from './dynamic-field-base.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../services/translation.service";
|
|
9
|
+
import * as i2 from "../../../services/locale.service";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
import * as i4 from "@angular/forms";
|
|
12
|
+
import * as i5 from "primeng/calendar";
|
|
13
|
+
export class DynamicFieldDatetimeComponent extends DynamicFieldBaseComponent {
|
|
14
|
+
localeService;
|
|
15
|
+
cdr;
|
|
16
|
+
currentDateFormat = 'dd/mm/yy';
|
|
17
|
+
calendarVisible = true;
|
|
18
|
+
langSub;
|
|
19
|
+
constructor(translationService, localeService, cdr) {
|
|
20
|
+
super(translationService);
|
|
21
|
+
this.localeService = localeService;
|
|
22
|
+
this.cdr = cdr;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.updateDateFormat();
|
|
26
|
+
this.langSub = this.translationService.currentLanguage$.subscribe(() => {
|
|
27
|
+
this.refreshCalendar();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this.langSub?.unsubscribe();
|
|
32
|
+
}
|
|
33
|
+
refreshCalendar() {
|
|
34
|
+
this.calendarVisible = false;
|
|
35
|
+
this.cdr.detectChanges();
|
|
36
|
+
this.updateDateFormat();
|
|
37
|
+
this.calendarVisible = true;
|
|
38
|
+
this.cdr.detectChanges();
|
|
39
|
+
}
|
|
40
|
+
updateDateFormat() {
|
|
41
|
+
this.currentDateFormat = this.field?.dateFormat || this.localeService.getPrimeNGDateFormat();
|
|
42
|
+
}
|
|
43
|
+
getPlaceholder() {
|
|
44
|
+
return super.getPlaceholder(true);
|
|
45
|
+
}
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldDatetimeComponent, deps: [{ token: i1.TranslationService }, { token: i2.LocaleService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DynamicFieldDatetimeComponent, isStandalone: true, selector: "sia-dynamic-field-datetime", usesInheritance: true, ngImport: i0, template: `
|
|
48
|
+
<sia-dynamic-field-wrapper [field]="field" [form]="form" [mode]="mode">
|
|
49
|
+
<div [formGroup]="form">
|
|
50
|
+
<p-calendar
|
|
51
|
+
*ngIf="calendarVisible"
|
|
52
|
+
[inputId]="field.field"
|
|
53
|
+
[formControlName]="field.field"
|
|
54
|
+
[placeholder]="getPlaceholder()"
|
|
55
|
+
[dateFormat]="currentDateFormat"
|
|
56
|
+
[showTime]="true"
|
|
57
|
+
[showSeconds]="false"
|
|
58
|
+
[hourFormat]="'24'"
|
|
59
|
+
[showIcon]="true"
|
|
60
|
+
[showButtonBar]="true"
|
|
61
|
+
[class.ng-invalid]="isFieldInvalid()"
|
|
62
|
+
[class.ng-dirty]="isFieldDirty()"
|
|
63
|
+
[appendTo]="'body'"
|
|
64
|
+
styleClass="w-full">
|
|
65
|
+
</p-calendar>
|
|
66
|
+
</div>
|
|
67
|
+
</sia-dynamic-field-wrapper>
|
|
68
|
+
`, isInline: true, styles: ["::ng-deep p-calendar{width:100%;.p-calendar,input{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i5.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: DynamicFieldWrapperComponent, selector: "sia-dynamic-field-wrapper", inputs: ["field", "form", "mode"] }] });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldDatetimeComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'sia-dynamic-field-datetime', standalone: true, imports: [
|
|
73
|
+
CommonModule,
|
|
74
|
+
ReactiveFormsModule,
|
|
75
|
+
CalendarModule,
|
|
76
|
+
DynamicFieldWrapperComponent
|
|
77
|
+
], template: `
|
|
78
|
+
<sia-dynamic-field-wrapper [field]="field" [form]="form" [mode]="mode">
|
|
79
|
+
<div [formGroup]="form">
|
|
80
|
+
<p-calendar
|
|
81
|
+
*ngIf="calendarVisible"
|
|
82
|
+
[inputId]="field.field"
|
|
83
|
+
[formControlName]="field.field"
|
|
84
|
+
[placeholder]="getPlaceholder()"
|
|
85
|
+
[dateFormat]="currentDateFormat"
|
|
86
|
+
[showTime]="true"
|
|
87
|
+
[showSeconds]="false"
|
|
88
|
+
[hourFormat]="'24'"
|
|
89
|
+
[showIcon]="true"
|
|
90
|
+
[showButtonBar]="true"
|
|
91
|
+
[class.ng-invalid]="isFieldInvalid()"
|
|
92
|
+
[class.ng-dirty]="isFieldDirty()"
|
|
93
|
+
[appendTo]="'body'"
|
|
94
|
+
styleClass="w-full">
|
|
95
|
+
</p-calendar>
|
|
96
|
+
</div>
|
|
97
|
+
</sia-dynamic-field-wrapper>
|
|
98
|
+
`, styles: ["::ng-deep p-calendar{width:100%;.p-calendar,input{width:100%}}\n"] }]
|
|
99
|
+
}], ctorParameters: () => [{ type: i1.TranslationService }, { type: i2.LocaleService }, { type: i0.ChangeDetectorRef }] });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1kYXRldGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZmllbGRzL2R5bmFtaWMtZmllbGQtZGF0ZXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7QUF5QzNFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFPaEU7SUFDQTtJQVBWLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUMvQixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2YsT0FBTyxDQUFnQjtJQUUvQixZQUNFLGtCQUFzQyxFQUM5QixhQUE0QixFQUM1QixHQUFzQjtRQUU5QixLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUhsQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUdoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVRLGNBQWM7UUFDckIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBdENVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLDZHQTlCOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCx5SUExQkMsWUFBWSxrSUFDWixtQkFBbUIsbWxCQUNuQixjQUFjLGt6Q0FDZCw0QkFBNEI7OzRGQWdDbkIsNkJBQTZCO2tCQXZDekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLDRCQUE0QjtxQkFDN0IsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbG9jYWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1maWVsZC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLWJhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2lhLWR5bmFtaWMtZmllbGQtZGF0ZXRpbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzaWEtZHluYW1pYy1maWVsZC13cmFwcGVyIFtmaWVsZF09XCJmaWVsZFwiIFtmb3JtXT1cImZvcm1cIiBbbW9kZV09XCJtb2RlXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICpuZ0lmPVwiY2FsZW5kYXJWaXNpYmxlXCJcbiAgICAgICAgICBbaW5wdXRJZF09XCJmaWVsZC5maWVsZFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5maWVsZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImN1cnJlbnREYXRlRm9ybWF0XCJcbiAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dTZWNvbmRzXT1cImZhbHNlXCJcbiAgICAgICAgICBbaG91ckZvcm1hdF09XCInMjQnXCJcbiAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dCdXR0b25CYXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiaXNGaWVsZEludmFsaWQoKVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImlzRmllbGREaXJ0eSgpXCJcbiAgICAgICAgICBbYXBwZW5kVG9dPVwiJ2JvZHknXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgIDwvcC1jYWxlbmRhcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2lhLWR5bmFtaWMtZmllbGQtd3JhcHBlcj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIDo6bmctZGVlcCBwLWNhbGVuZGFyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLnAtY2FsZW5kYXIgeyB3aWR0aDogMTAwJTsgfVxuICAgICAgaW5wdXQgeyB3aWR0aDogMTAwJTsgfVxuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkRGF0ZXRpbWVDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjdXJyZW50RGF0ZUZvcm1hdCA9ICdkZC9tbS95eSc7XG4gIGNhbGVuZGFyVmlzaWJsZSA9IHRydWU7XG4gIHByaXZhdGUgbGFuZ1N1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKHRyYW5zbGF0aW9uU2VydmljZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZURhdGVGb3JtYXQoKTtcbiAgICB0aGlzLmxhbmdTdWIgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5jdXJyZW50TGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDYWxlbmRhcigpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sYW5nU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy51cGRhdGVEYXRlRm9ybWF0KCk7XG4gICAgdGhpcy5jYWxlbmRhclZpc2libGUgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGF0ZUZvcm1hdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnREYXRlRm9ybWF0ID0gdGhpcy5maWVsZD8uZGF0ZUZvcm1hdCB8fCB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0UHJpbWVOR0RhdGVGb3JtYXQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFBsYWNlaG9sZGVyKHRydWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -9,6 +9,7 @@ import { TooltipModule } from 'primeng/tooltip';
|
|
|
9
9
|
import { TranslatePipe } from '../../../pipes/translate.pipe';
|
|
10
10
|
import { TranslationHelper } from '../../../utils/translation.helper';
|
|
11
11
|
import { DynamicFieldWrapperComponent } from './dynamic-field-wrapper.component';
|
|
12
|
+
import { LoadingComponent } from '../../loading/loading.component';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "../../../services/translation.service";
|
|
14
15
|
import * as i2 from "@angular/common";
|
|
@@ -21,6 +22,7 @@ import * as i8 from "primeng/table";
|
|
|
21
22
|
import * as i9 from "primeng/tooltip";
|
|
22
23
|
export class DynamicFieldLookupComponent {
|
|
23
24
|
translationService;
|
|
25
|
+
cdr;
|
|
24
26
|
field;
|
|
25
27
|
form;
|
|
26
28
|
formGroup;
|
|
@@ -35,12 +37,14 @@ export class DynamicFieldLookupComponent {
|
|
|
35
37
|
currentPage = 0;
|
|
36
38
|
pageSize = 5;
|
|
37
39
|
selectedItem = null;
|
|
40
|
+
skipNextLazyLoad = false;
|
|
38
41
|
columns = [];
|
|
39
42
|
displayField = 'name';
|
|
40
43
|
valueField = 'id';
|
|
41
44
|
searchFields = ['name'];
|
|
42
|
-
constructor(translationService) {
|
|
45
|
+
constructor(translationService, cdr) {
|
|
43
46
|
this.translationService = translationService;
|
|
47
|
+
this.cdr = cdr;
|
|
44
48
|
}
|
|
45
49
|
ngOnInit() {
|
|
46
50
|
this.setupLookupConfig();
|
|
@@ -142,7 +146,9 @@ export class DynamicFieldLookupComponent {
|
|
|
142
146
|
this.showLookupDialog = true;
|
|
143
147
|
this.currentPage = 0;
|
|
144
148
|
this.searchTerm = '';
|
|
145
|
-
|
|
149
|
+
// Delay loadData to next macrotask to avoid NG0100
|
|
150
|
+
// (p-dialog triggers a CD cycle on open that conflicts with loading state change)
|
|
151
|
+
setTimeout(() => this.loadData(), 0);
|
|
146
152
|
}
|
|
147
153
|
onDialogHide() {
|
|
148
154
|
this.searchTerm = '';
|
|
@@ -152,6 +158,12 @@ export class DynamicFieldLookupComponent {
|
|
|
152
158
|
if (!this.showLookupDialog) {
|
|
153
159
|
return;
|
|
154
160
|
}
|
|
161
|
+
// p-table fires onLazyLoad when it first renders — skip it since
|
|
162
|
+
// openLookup already triggered loadData
|
|
163
|
+
if (this.skipNextLazyLoad) {
|
|
164
|
+
this.skipNextLazyLoad = false;
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
155
167
|
this.currentPage = event.first / event.rows;
|
|
156
168
|
this.loadData();
|
|
157
169
|
}
|
|
@@ -227,12 +239,15 @@ export class DynamicFieldLookupComponent {
|
|
|
227
239
|
}
|
|
228
240
|
}
|
|
229
241
|
this.loading = false;
|
|
242
|
+
// The table will fire onLazyLoad when it first renders — skip it
|
|
243
|
+
this.skipNextLazyLoad = true;
|
|
230
244
|
},
|
|
231
245
|
error: (_error) => {
|
|
232
246
|
this.data = [];
|
|
233
247
|
this.filteredData = [];
|
|
234
248
|
this.totalRecords = 0;
|
|
235
249
|
this.loading = false;
|
|
250
|
+
this.skipNextLazyLoad = true;
|
|
236
251
|
}
|
|
237
252
|
});
|
|
238
253
|
}
|
|
@@ -275,7 +290,7 @@ export class DynamicFieldLookupComponent {
|
|
|
275
290
|
getFieldValue(item, field) {
|
|
276
291
|
return field.split('.').reduce((obj, key) => obj?.[key], item) || '';
|
|
277
292
|
}
|
|
278
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldLookupComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldLookupComponent, deps: [{ token: i1.TranslationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
279
294
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DynamicFieldLookupComponent, isStandalone: true, selector: "sia-dynamic-field-lookup", inputs: { field: "field", form: "form", formGroup: "formGroup", mode: "mode" }, ngImport: i0, template: `
|
|
280
295
|
<sia-dynamic-field-wrapper [field]="field" [form]="form" [mode]="mode">
|
|
281
296
|
<div [formGroup]="form" class="lookup-field" [ngClass]="{'disabled': isFieldDisabled()}">
|
|
@@ -368,10 +383,13 @@ export class DynamicFieldLookupComponent {
|
|
|
368
383
|
</div>
|
|
369
384
|
</div>
|
|
370
385
|
|
|
386
|
+
<!-- Loading State -->
|
|
387
|
+
<sia-loading *ngIf="loading" padding="2rem 0" [size]="48"></sia-loading>
|
|
388
|
+
|
|
371
389
|
<!-- Data Table -->
|
|
372
390
|
<p-table
|
|
391
|
+
*ngIf="!loading"
|
|
373
392
|
[value]="filteredData"
|
|
374
|
-
[loading]="loading"
|
|
375
393
|
[paginator]="true"
|
|
376
394
|
[rows]="pageSize"
|
|
377
395
|
[totalRecords]="totalRecords"
|
|
@@ -418,7 +436,7 @@ export class DynamicFieldLookupComponent {
|
|
|
418
436
|
</div>
|
|
419
437
|
</p-dialog>
|
|
420
438
|
</sia-dynamic-field-wrapper>
|
|
421
|
-
`, isInline: true, styles: [".lookup-field{width:100%;position:relative}.lookup-input-group{position:relative;width:100%;.lookup-display{width:100%;cursor:pointer;height:2.857rem;padding:.75rem 4rem .75rem .75rem;font-size:1rem;line-height:1.5;box-sizing:border-box;display:flex;align-items:center;&:focus{outline:none}&:hover{background:transparent}}.lookup-buttons{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;z-index:10}::ng-deep .p-button{width:2rem!important;height:2rem!important;min-width:2rem!important;min-height:2rem!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;.p-button-icon{margin:0!important;font-size:.875rem!important}.p-button-label{display:none!important}}}.lookup-dialog-content{height:100%;display:flex;flex-direction:column;padding:0;.search-wrapper{position:relative;margin-bottom:16px;width:100%;.search-input-full{width:100%;padding-right:5.5rem}.search-buttons-inside{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;::ng-deep .p-button{width:2.5rem!important;height:2.5rem!important}}}.lookup-table{flex:1;.empty-state{text-align:center;padding:32px;color:var(--p-text-color-secondary);i{font-size:48px;margin-bottom:16px;display:block}p{margin:8px 0;font-size:16px}small{font-size:14px}}}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i7.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i8.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: DynamicFieldWrapperComponent, selector: "sia-dynamic-field-wrapper", inputs: ["field", "form", "mode"] }] });
|
|
439
|
+
`, isInline: true, styles: [".lookup-field{width:100%;position:relative}.lookup-input-group{position:relative;width:100%;.lookup-display{width:100%;cursor:pointer;height:2.857rem;padding:.75rem 4rem .75rem .75rem;font-size:1rem;line-height:1.5;box-sizing:border-box;display:flex;align-items:center;&:focus{outline:none}&:hover{background:transparent}}.lookup-buttons{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;z-index:10}::ng-deep .p-button{width:2rem!important;height:2rem!important;min-width:2rem!important;min-height:2rem!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;.p-button-icon{margin:0!important;font-size:.875rem!important}.p-button-label{display:none!important}}}.lookup-dialog-content{height:100%;display:flex;flex-direction:column;padding:0;.search-wrapper{position:relative;margin-bottom:16px;width:100%;.search-input-full{width:100%;padding-right:5.5rem}.search-buttons-inside{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;::ng-deep .p-button{width:2.5rem!important;height:2.5rem!important}}}.lookup-table{flex:1;.empty-state{text-align:center;padding:32px;color:var(--p-text-color-secondary);i{font-size:48px;margin-bottom:16px;display:block}p{margin:8px 0;font-size:16px}small{font-size:14px}}}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i7.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i8.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: DynamicFieldWrapperComponent, selector: "sia-dynamic-field-wrapper", inputs: ["field", "form", "mode"] }, { kind: "component", type: LoadingComponent, selector: "sia-loading", inputs: ["variant", "color", "size", "text", "padding"] }] });
|
|
422
440
|
}
|
|
423
441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFieldLookupComponent, decorators: [{
|
|
424
442
|
type: Component,
|
|
@@ -432,7 +450,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
432
450
|
TableModule,
|
|
433
451
|
TooltipModule,
|
|
434
452
|
TranslatePipe,
|
|
435
|
-
DynamicFieldWrapperComponent
|
|
453
|
+
DynamicFieldWrapperComponent,
|
|
454
|
+
LoadingComponent
|
|
436
455
|
], template: `
|
|
437
456
|
<sia-dynamic-field-wrapper [field]="field" [form]="form" [mode]="mode">
|
|
438
457
|
<div [formGroup]="form" class="lookup-field" [ngClass]="{'disabled': isFieldDisabled()}">
|
|
@@ -525,10 +544,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
525
544
|
</div>
|
|
526
545
|
</div>
|
|
527
546
|
|
|
547
|
+
<!-- Loading State -->
|
|
548
|
+
<sia-loading *ngIf="loading" padding="2rem 0" [size]="48"></sia-loading>
|
|
549
|
+
|
|
528
550
|
<!-- Data Table -->
|
|
529
551
|
<p-table
|
|
552
|
+
*ngIf="!loading"
|
|
530
553
|
[value]="filteredData"
|
|
531
|
-
[loading]="loading"
|
|
532
554
|
[paginator]="true"
|
|
533
555
|
[rows]="pageSize"
|
|
534
556
|
[totalRecords]="totalRecords"
|
|
@@ -576,7 +598,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
576
598
|
</p-dialog>
|
|
577
599
|
</sia-dynamic-field-wrapper>
|
|
578
600
|
`, styles: [".lookup-field{width:100%;position:relative}.lookup-input-group{position:relative;width:100%;.lookup-display{width:100%;cursor:pointer;height:2.857rem;padding:.75rem 4rem .75rem .75rem;font-size:1rem;line-height:1.5;box-sizing:border-box;display:flex;align-items:center;&:focus{outline:none}&:hover{background:transparent}}.lookup-buttons{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;z-index:10}::ng-deep .p-button{width:2rem!important;height:2rem!important;min-width:2rem!important;min-height:2rem!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;.p-button-icon{margin:0!important;font-size:.875rem!important}.p-button-label{display:none!important}}}.lookup-dialog-content{height:100%;display:flex;flex-direction:column;padding:0;.search-wrapper{position:relative;margin-bottom:16px;width:100%;.search-input-full{width:100%;padding-right:5.5rem}.search-buttons-inside{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;gap:2px;::ng-deep .p-button{width:2.5rem!important;height:2.5rem!important}}}.lookup-table{flex:1;.empty-state{text-align:center;padding:32px;color:var(--p-text-color-secondary);i{font-size:48px;margin-bottom:16px;display:block}p{margin:8px 0;font-size:16px}small{font-size:14px}}}}\n"] }]
|
|
579
|
-
}], ctorParameters: () => [{ type: i1.TranslationService }], propDecorators: { field: [{
|
|
601
|
+
}], ctorParameters: () => [{ type: i1.TranslationService }, { type: i0.ChangeDetectorRef }], propDecorators: { field: [{
|
|
580
602
|
type: Input
|
|
581
603
|
}], form: [{
|
|
582
604
|
type: Input
|
|
@@ -585,4 +607,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
585
607
|
}], mode: [{
|
|
586
608
|
type: Input
|
|
587
609
|
}] } });
|
|
588
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2ZpZWxkcy9keW5hbWljLWZpZWxkLWxvb2t1cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7O0FBMFJqRixNQUFNLE9BQU8sMkJBQTJCO0lBdUJsQjtJQXRCWCxLQUFLLENBQTBCO0lBQy9CLElBQUksQ0FBYTtJQUNqQixTQUFTLENBQWE7SUFDdEIsSUFBSSxHQUFzQixNQUFNLENBQUM7SUFFMUMsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsT0FBTyxH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R0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7d0dBblRVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLG9LQXhRNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4SVQsaTdDQXpKQyxZQUFZLDZWQUNaLG1CQUFtQixtMkJBQ25CLFdBQVcsc1BBQ1gsWUFBWSx3aEJBQ1osZUFBZSwwSUFDZixZQUFZLG02QkFDWixXQUFXLHFvRUFDWCxhQUFhLGlYQUNiLGFBQWEsa0RBQ2IsNEJBQTRCOzs0RkEwUW5CLDJCQUEyQjtrQkF2UnZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYiw0QkFBNEI7cUJBQzdCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4SVQ7dUZBMkhRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWZvcm0ubW9kZWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RyYW5zbGF0aW9uLmhlbHBlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNGaWVsZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZmllbGQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9va3VwQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGl0eS1saXN0LmNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpYS1keW5hbWljLWZpZWxkLWxvb2t1cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzaWEtZHluYW1pYy1maWVsZC13cmFwcGVyIFtmaWVsZF09XCJmaWVsZFwiIFtmb3JtXT1cImZvcm1cIiBbbW9kZV09XCJtb2RlXCI+XG4gICAgICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwibG9va3VwLWZpZWxkXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6IGlzRmllbGREaXNhYmxlZCgpfVwiPlxuICAgICAgICA8IS0tIEhpZGRlbiBpbnB1dCBwYXJhIG8gZm9ybUNvbnRyb2wgLS0+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5maWVsZFwiIC8+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9va3VwLWlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgICAgIFtjbGFzcy5wLWludmFsaWRdPVwiaXNGaWVsZEludmFsaWQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaWVsZERpc2FibGVkKClcIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgIGNsYXNzPVwibG9va3VwLWRpc3BsYXlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Mb29rdXAoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9va3VwLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRWYWx1ZVwiXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgICAgIHNldmVyaXR5PVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgW3RleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGVhclZhbHVlKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaWVsZERpc2FibGVkKClcIlxuICAgICAgICAgICAgICBwVG9vbHRpcD1cIkxpbXBhclwiXG4gICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICBpY29uPVwicGkgcGktc2VhcmNoXCJcbiAgICAgICAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3JvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9wZW5Mb29rdXAoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0ZpZWxkRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgIHBUb29sdGlwPVwiQnVzY2FyXCJcbiAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIExvb2t1cCBEaWFsb2cgLS0+XG4gICAgICA8cC1kaWFsb2dcbiAgICAgICAgWyh2aXNpYmxlKV09XCJzaG93TG9va3VwRGlhbG9nXCJcbiAgICAgICAgW21vZGFsXT1cInRydWVcIlxuICAgICAgICBbc3R5bGVdPVwieyB3aWR0aDogJzgwMHB4JywgbWF4SGVpZ2h0OiAnODB2aCcgfVwiXG4gICAgICAgIFtjb250ZW50U3R5bGVdPVwieyBtYXhIZWlnaHQ6ICdjYWxjKDgwdmggLSAxMjBweCknLCBvdmVyZmxvdzogJ2F1dG8nIH1cIlxuICAgICAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW3Jlc2l6YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2hlYWRlcl09XCInU2VsZWNpb25hciAnICsgKGZpZWxkLmxhYmVsIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICAob25IaWRlKT1cIm9uRGlhbG9nSGlkZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvb2t1cC1kaWFsb2ctY29udGVudFwiPlxuICAgICAgICAgIDwhLS0gU2VhcmNoIElucHV0IC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCdXNjYXIgJyArIChmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKSArICcuLi4nXCJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0LWZ1bGxcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYnV0dG9ucy1pbnNpZGVcIj5cbiAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgICAgICAgIHNldmVyaXR5PVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJjbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1idXR0b24tY2xlYXJcIlxuICAgICAgICAgICAgICAgIHBUb29sdGlwPVwiTGltcGFyIGJ1c2NhXCJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWJ1dHRvbi1zZWFyY2hcIlxuICAgICAgICAgICAgICAgIHBUb29sdGlwPVwiQnVzY2FyXCJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBEYXRhIFRhYmxlIC0tPlxuICAgICAgICAgIDxwLXRhYmxlXG4gICAgICAgICAgICBbdmFsdWVdPVwiZmlsdGVyZWREYXRhXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgICAgICAgICAgW3BhZ2luYXRvcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyb3dzXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcbiAgICAgICAgICAgIFtsYXp5XT1cInRydWVcIlxuICAgICAgICAgICAgKG9uTGF6eUxvYWQpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJNb3N0cmFuZG8ge2ZpcnN0fSBhIHtsYXN0fSBkZSB7dG90YWxSZWNvcmRzfSByZWdpc3Ryb3NcIlxuICAgICAgICAgICAgZGF0YUtleT1cImlkXCJcbiAgICAgICAgICAgIFtyb3dIb3Zlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIlxuICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgbG9va3VwLXRhYmxlXCJcbiAgICAgICAgICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgICAgKG9uUm93U2VsZWN0KT1cIm9uUm93U2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfX1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtaXRlbT5cbiAgICAgICAgICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RmllbGRWYWx1ZShpdGVtLCBjb2wuZmllbGQpIH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoXCIgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxwPk5lbmh1bSByZWdpc3RybyBlbmNvbnRyYWRvPC9wPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGw+VGVudGUgYWp1c3RhciBvcyB0ZXJtb3MgZGUgYnVzY2E8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvcC1kaWFsb2c+XG4gICAgPC9zaWEtZHluYW1pYy1maWVsZC13cmFwcGVyPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmxvb2t1cC1maWVsZCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAubG9va3VwLWlucHV0LWdyb3VwIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgXG4gICAgICAubG9va3VwLWRpc3BsYXkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBoZWlnaHQ6IDIuODU3cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDRyZW0gMC43NXJlbSAwLjc1cmVtO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubG9va3VwLWJ1dHRvbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgIH1cblxuICAgICAgOjpuZy1kZWVwIC5wLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xuICAgICAgICBcbiAgICAgICAgLnAtYnV0dG9uLWljb24ge1xuICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnAtYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubG9va3VwLWRpYWxvZy1jb250ZW50IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgLnNlYXJjaC13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAuc2VhcmNoLWlucHV0LWZ1bGwge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDUuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWFyY2gtYnV0dG9ucy1pbnNpZGUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICByaWdodDogNHB4O1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGdhcDogMnB4O1xuICAgICAgICAgIFxuICAgICAgICAgIDo6bmctZGVlcCAucC1idXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDIuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxvb2t1cC10YWJsZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIFxuICAgICAgICAuZW1wdHktc3RhdGUge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiAzMnB4O1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1wLXRleHQtY29sb3Itc2Vjb25kYXJ5KTtcblxuICAgICAgICAgIGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRmllbGRMb29rdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmaWVsZCE6IER5bmFtaWNGb3JtRmllbGRDb25maWc7XG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgbW9kZTogJ2Zvcm0nIHwgJ2ZpbHRlcicgPSAnZm9ybSc7XG5cbiAgZGlzcGxheVZhbHVlOiBzdHJpbmcgPSAnJztcbiAgc2hvd0xvb2t1cERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuICBcbiAgZGF0YTogYW55W10gPSBbXTtcbiAgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xuICB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAwO1xuICBwYWdlU2l6ZTogbnVtYmVyID0gNTtcbiAgc2VsZWN0ZWRJdGVtOiBhbnkgPSBudWxsO1xuICBcbiAgY29sdW1uczogTG9va3VwQ29sdW1uW10gPSBbXTtcbiAgZGlzcGxheUZpZWxkOiBzdHJpbmcgPSAnbmFtZSc7XG4gIHZhbHVlRmllbGQ6IHN0cmluZyA9ICdpZCc7XG4gIHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSBbJ25hbWUnXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBMb29rdXBDb25maWcoKTtcbiAgICB0aGlzLndhdGNoVmFsdWVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIC8vIENhcnJlZ2FyIHZhbG9yIGluaWNpYWxcbiAgICAgIGlmIChjb250cm9sLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVmFsdWVEaXNwbGF5KGNvbnRyb2wudmFsdWUpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBPYnNlcnZhciBtdWRhbsOnYXNcbiAgICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVZhbHVlRGlzcGxheSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idMOpbSBvIEZvcm1Db250cm9sLCBsaWRhbmRvIGNvbSBjYW1wb3MgYW5pbmhhZG9zIChjb20gcG9udG8gbm8gbm9tZSlcbiAgICovXG4gIHByaXZhdGUgZ2V0Rm9ybUNvbnRyb2woKSB7XG4gICAgaWYgKCF0aGlzLmZpZWxkPy5maWVsZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQWNlc3NhIGRpcmV0YW1lbnRlIHZpYSBjb250cm9sc1tdIHBvaXMgZm9ybS5nZXQoKSBuw6NvIGZ1bmNpb25hIGNvbSBjYW1wb3MgcXVlIHTDqm0gcG9udG9cbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuZmllbGQuZmllbGRdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdmFsdWUoKTogYW55IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRGb3JtQ29udHJvbCgpO1xuICAgIHJldHVybiBjb250cm9sPy52YWx1ZTtcbiAgfVxuXG4gIGdldCBjdXJyZW50VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCk7XG4gICAgY29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cExvb2t1cENvbmZpZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgdGhpcy5kaXNwbGF5RmllbGQgPSB0aGlzLmZpZWxkLmxvb2t1cERpc3BsYXlGaWVsZCB8fCAnbmFtZSc7XG4gICAgICB0aGlzLnZhbHVlRmllbGQgPSB0aGlzLmZpZWxkLmxvb2t1cFZhbHVlRmllbGQgfHwgJ2lkJztcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRzID0gdGhpcy5maWVsZC5sb29rdXBTZWFyY2hGaWVsZHMgfHwgWyduYW1lJ107XG4gICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmZpZWxkLmxvb2t1cENvbHVtbnMgfHwgW1xuICAgICAgICB7IGZpZWxkOiB0aGlzLmRpc3BsYXlGaWVsZCwgaGVhZGVyOiAnTm9tZScsIHdpZHRoOiAnMTAwJScgfVxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVZhbHVlRGlzcGxheSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdERpc3BsYXlWYWx1ZSh2YWx1ZSk7XG4gICAgICAvLyBLZWVwIHRoZSBmdWxsIG9iamVjdCBpbiB0aGUgZm9ybSBjb250cm9sXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFNlIMOpIHVtIElEIChzdHJpbmcgb3UgbnVtYmVyKSwgbsOjbyBmYXplciByZXF1aXNpw6fDo29cbiAgICAvLyBEZWl4YXIgdmF6aW8gZSBzw7MgY2FycmVnYXIgcXVhbmRvIGFicmlyIG8gbG9va3VwXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdERpc3BsYXlWYWx1ZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghaXRlbSkgcmV0dXJuICcnO1xuICAgIFxuICAgIGlmICh0aGlzLmZpZWxkPy5sb29rdXBEaXNwbGF5RmllbGRzICYmIHRoaXMuZmllbGQubG9va3VwRGlzcGxheUZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmZpZWxkLmxvb2t1cERpc3BsYXlGaWVsZHNcbiAgICAgICAgLm1hcChmaWVsZE5hbWUgPT4gdGhpcy5nZXRGaWVsZFZhbHVlKGl0ZW0sIGZpZWxkTmFtZSkpXG4gICAgICAgIC5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycpO1xuICAgICAgXG4gICAgICByZXR1cm4gdmFsdWVzLmpvaW4oJyAtICcpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gdGhpcy5nZXRGaWVsZFZhbHVlKGl0ZW0sIHRoaXMuZGlzcGxheUZpZWxkKSB8fCAnJztcbiAgfVxuXG4gIGlzRmllbGRJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCk7XG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCkpO1xuICB9XG5cbiAgaXNGaWVsZERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCk7XG4gICAgcmV0dXJuIGNvbnRyb2w/LmRpc2FibGVkIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVHJhbnNsYXRpb25IZWxwZXIuZ2V0RmlsdGVyUGxhY2Vob2xkZXIoXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZSxcbiAgICAgIHRoaXMubW9kZSxcbiAgICAgIHRoaXMuZmllbGQubGFiZWwsXG4gICAgICB0aGlzLmZpZWxkLnBsYWNlaG9sZGVyXG4gICAgKTtcbiAgfVxuXG4gIG9wZW5Mb29rdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNGaWVsZERpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oKTtcbiAgICBcbiAgICB0aGlzLnNob3dMb29rdXBEaWFsb2cgPSB0cnVlO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAwO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIG9uRGlhbG9nSGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMDtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3dMb29rdXBEaWFsb2cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IGV2ZW50LmZpcnN0IC8gZXZlbnQucm93cztcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5maWVsZD8ubG9va3VwU2VydmljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgXG4gICAgY29uc3QgbGlzdFBhcmFtczogYW55ID0geyBcbiAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICBzaXplOiB0aGlzLnBhZ2VTaXplXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmZpZWxkLmxvb2t1cFNvcnQpIHtcbiAgICAgIGxpc3RQYXJhbXMuc29ydCA9IHRoaXMuZmllbGQubG9va3VwU29ydDtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMuc2VhcmNoVGVybS50cmltKCkpIHtcbiAgICAgIGNvbnN0IHRlcm0gPSB0aGlzLnNlYXJjaFRlcm0udHJpbSgpO1xuICAgICAgY29uc3QgZmlsdGVyQ29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGNvbnN0IGlzTnVtZXJpY1Rlcm0gPSAhaXNOYU4oTnVtYmVyKHRlcm0pKSAmJiB0ZXJtICE9PSAnJztcbiAgICAgIFxuICAgICAgdGhpcy5zZWFyY2hGaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29sdW1ucy5maW5kKGNvbCA9PiBjb2wuZmllbGQgPT09IGZpZWxkKTtcbiAgICAgICAgY29uc3QgZmllbGRUeXBlID0gY29sdW1uPy50eXBlIHx8ICd0ZXh0JztcbiAgICAgICAgXG4gICAgICAgIGlmIChmaWVsZFR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgaWYgKGlzTnVtZXJpY1Rlcm0pIHtcbiAgICAgICAgICAgIGZpbHRlckNvbmRpdGlvbnMucHVzaChgJHtmaWVsZH0gZXEgJHt0ZXJtfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB1cHBlclRlcm0gPSB0ZXJtLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgZmlsdGVyQ29uZGl0aW9ucy5wdXNoKGBVUFBFUigke2ZpZWxkfSkgbGlrZSAnJSR7dXBwZXJUZXJtfSUnYCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBpZiAoZmlsdGVyQ29uZGl0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxpc3RQYXJhbXMuZmlsdGVyUXVlcnkgPSBmaWx0ZXJDb25kaXRpb25zLmpvaW4oJyBvciAnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMuZmllbGQubG9va3VwRmlsdGVycykge1xuICAgICAgT2JqZWN0LmtleXModGhpcy5maWVsZC5sb29rdXBGaWx0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGxpc3RQYXJhbXNba2V5XSA9IHRoaXMuZmllbGQubG9va3VwRmlsdGVycyFba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy5maWVsZC5sb29rdXBEeW5hbWljRmlsdGVycyAmJiB0aGlzLmZvcm1Hcm91cCkge1xuICAgICAgY29uc3QgZHluYW1pY0ZpbHRlcnMgPSB0aGlzLmZpZWxkLmxvb2t1cER5bmFtaWNGaWx0ZXJzKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgIFxuICAgICAgY29uc3QgZHluYW1pY0ZpbHRlckNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgICBPYmplY3Qua2V5cyhkeW5hbWljRmlsdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGR5bmFtaWNGaWx0ZXJzW2tleV07XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZHluYW1pY0ZpbHRlckNvbmRpdGlvbnMucHVzaChgJHtrZXl9IGVxICcke3ZhbHVlfSdgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGlmIChkeW5hbWljRmlsdGVyQ29uZGl0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGR5bmFtaWNGaWx0ZXJRdWVyeSA9IGR5bmFtaWNGaWx0ZXJDb25kaXRpb25zLmpvaW4oJyBhbmQgJyk7XG4gICAgICAgIGlmIChsaXN0UGFyYW1zLmZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgbGlzdFBhcmFtcy5maWx0ZXJRdWVyeSA9IGAoJHtsaXN0UGFyYW1zLmZpbHRlclF1ZXJ5fSkgYW5kICgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsaXN0UGFyYW1zLmZpbHRlclF1ZXJ5ID0gZHluYW1pY0ZpbHRlclF1ZXJ5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHRoaXMuZmllbGQubG9va3VwU2VydmljZS5saXN0KGxpc3RQYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZS5jb250ZW50cyB8fCBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbLi4udGhpcy5kYXRhXTtcbiAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSByZXNwb25zZS50b3RhbEVsZW1lbnRzIHx8IDA7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbSgpO1xuICAgICAgICBcbiAgICAgICAgLy8gQXDDs3MgY2FycmVnYXIgb3MgZGFkb3MgZGEgZ3JpZCwgc2UgdGVtb3MgdW0gdmFsb3Igc2VsZWNpb25hZG8gbWFzIHNlbSBkaXNwbGF5VmFsdWUsXG4gICAgICAgIC8vIHRlbnRhciBlbmNvbnRyYXIgbyBpdGVtIG5vcyBkYWRvcyBjYXJyZWdhZG9zXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmRpc3BsYXlWYWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbHRlcmVkRGF0YS5maW5kKGkgPT4gaVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdERpc3BsYXlWYWx1ZShpdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoX2Vycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IDA7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZEl0ZW0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbHRlcmVkRGF0YS5maW5kKGkgPT4gaVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLnZhbHVlKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93TG9va3VwRGlhbG9nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAwO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAwO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaXRlbTogYW55KTogdm9pZCB7XG4gICAgLy8gQWx3YXlzIHNldCB0aGUgZnVsbCBvYmplY3QsIG5vdCBqdXN0IHRoZSBJRFxuICAgIHRoaXMuc2V0VmFsdWUoaXRlbSk7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZvcm1hdERpc3BsYXlWYWx1ZShpdGVtKTtcbiAgICB0aGlzLnNob3dMb29rdXBEaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIG9uUm93U2VsZWN0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEl0ZW0oZXZlbnQuZGF0YSk7XG4gIH1cblxuICBjbGVhclZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7XG4gIH1cblxuICBnZXRGaWVsZFZhbHVlKGl0ZW06IGFueSwgZmllbGQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIGZpZWxkLnNwbGl0KCcuJykucmVkdWNlKChvYmosIGtleSkgPT4gb2JqPy5ba2V5XSwgaXRlbSkgfHwgJyc7XG4gIH1cbn1cbiJdfQ==
|
|
610
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2ZpZWxkcy9keW5hbWljLWZpZWxkLWxvb2t1cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7OztBQTZSbkUsTUFBTSxPQUFPLDJCQUEyQjtJQXdCbEI7SUFBZ0Q7SUF2QjNELEtBQUssQ0FBMEI7SUFDL0IsSUFBSSxDQUFhO0lBQ2pCLFNBQVMsQ0FBYTtJQUN0QixJQUFJLEdBQXNCLE1BQU0sQ0FBQztJQUUxQyxZQUFZLEdB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WixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYiw0QkFBNEI7d0JBQzVCLGdCQUFnQjtxQkFDakIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlKVDt1SEEySFEsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWZvcm0ubW9kZWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RyYW5zbGF0aW9uLmhlbHBlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNGaWVsZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtZmllbGQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9va3VwQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGl0eS1saXN0LmNvbmZpZyc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpYS1keW5hbWljLWZpZWxkLWxvb2t1cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgRHluYW1pY0ZpZWxkV3JhcHBlckNvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNpYS1keW5hbWljLWZpZWxkLXdyYXBwZXIgW2ZpZWxkXT1cImZpZWxkXCIgW2Zvcm1dPVwiZm9ybVwiIFttb2RlXT1cIm1vZGVcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJsb29rdXAtZmllbGRcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogaXNGaWVsZERpc2FibGVkKCl9XCI+XG4gICAgICAgIDwhLS0gSGlkZGVuIGlucHV0IHBhcmEgbyBmb3JtQ29udHJvbCAtLT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmZpZWxkXCIgLz5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb29rdXAtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgICAgW2NsYXNzLnAtaW52YWxpZF09XCJpc0ZpZWxkSW52YWxpZCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0ZpZWxkRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgY2xhc3M9XCJsb29rdXAtZGlzcGxheVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3Blbkxvb2t1cCgpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb29rdXAtYnV0dG9uc1wiPlxuICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVudFZhbHVlXCJcbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXRyYXNoXCJcbiAgICAgICAgICAgICAgc2V2ZXJpdHk9XCJkYW5nZXJcIlxuICAgICAgICAgICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3JvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsZWFyVmFsdWUoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0ZpZWxkRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgIHBUb29sdGlwPVwiTGltcGFyXCJcbiAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib3Blbkxvb2t1cCgpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRmllbGREaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgcFRvb2x0aXA9XCJCdXNjYXJcIlxuICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gTG9va3VwIERpYWxvZyAtLT5cbiAgICAgIDxwLWRpYWxvZ1xuICAgICAgICBbKHZpc2libGUpXT1cInNob3dMb29rdXBEaWFsb2dcIlxuICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgIFtzdHlsZV09XCJ7IHdpZHRoOiAnODAwcHgnLCBtYXhIZWlnaHQ6ICc4MHZoJyB9XCJcbiAgICAgICAgW2NvbnRlbnRTdHlsZV09XCJ7IG1heEhlaWdodDogJ2NhbGMoODB2aCAtIDEyMHB4KScsIG92ZXJmbG93OiAnYXV0bycgfVwiXG4gICAgICAgIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICAgICAgICBbcmVzaXphYmxlXT1cInRydWVcIlxuICAgICAgICBbaGVhZGVyXT1cIidTZWxlY2lvbmFyICcgKyAoZmllbGQubGFiZWwgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgIChvbkhpZGUpPVwib25EaWFsb2dIaWRlKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9va3VwLWRpYWxvZy1jb250ZW50XCI+XG4gICAgICAgICAgPCEtLSBTZWFyY2ggSW5wdXQgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0J1c2NhciAnICsgKGZpZWxkLmxhYmVsIHwgdHJhbnNsYXRlKS50b0xvd2VyQ2FzZSgpICsgJy4uLidcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXQtZnVsbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1idXR0b25zLWluc2lkZVwiPlxuICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk9XCJkYW5nZXJcIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWJ1dHRvbi1jbGVhclwiXG4gICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJMaW1wYXIgYnVzY2FcIlxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3JvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtYnV0dG9uLXNlYXJjaFwiXG4gICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJCdXNjYXJcIlxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIExvYWRpbmcgU3RhdGUgLS0+XG4gICAgICAgICAgPHNpYS1sb2FkaW5nICpuZ0lmPVwibG9hZGluZ1wiIHBhZGRpbmc9XCIycmVtIDBcIiBbc2l6ZV09XCI0OFwiPjwvc2lhLWxvYWRpbmc+XG5cbiAgICAgICAgICA8IS0tIERhdGEgVGFibGUgLS0+XG4gICAgICAgICAgPHAtdGFibGVcbiAgICAgICAgICAgICpuZ0lmPVwiIWxvYWRpbmdcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZpbHRlcmVkRGF0YVwiXG4gICAgICAgICAgICBbcGFnaW5hdG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW3Jvd3NdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxuICAgICAgICAgICAgW2xhenldPVwidHJ1ZVwiXG4gICAgICAgICAgICAob25MYXp5TG9hZCk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxuICAgICAgICAgICAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIk1vc3RyYW5kbyB7Zmlyc3R9IGEge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9IHJlZ2lzdHJvc1wiXG4gICAgICAgICAgICBkYXRhS2V5PVwiaWRcIlxuICAgICAgICAgICAgW3Jvd0hvdmVyXT1cInRydWVcIlxuICAgICAgICAgICAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXG4gICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBsb29rdXAtdGFibGVcIlxuICAgICAgICAgICAgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkSXRlbVwiXG4gICAgICAgICAgICAob25Sb3dTZWxlY3QpPVwib25Sb3dTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlPVwic2luZ2xlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCIgW3N0eWxlLndpZHRoXT1cImNvbC53aWR0aFwiPlxuICAgICAgICAgICAgICAgICAge3sgY29sLmhlYWRlciB9fVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1pdGVtPlxuICAgICAgICAgICAgICA8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRGaWVsZFZhbHVlKGl0ZW0sIGNvbC5maWVsZCkgfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGhcIiBjbGFzcz1cImVtcHR5LW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXNlYXJjaFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPHA+TmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG88L3A+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD5UZW50ZSBhanVzdGFyIG9zIHRlcm1vcyBkZSBidXNjYTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3AtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wLWRpYWxvZz5cbiAgICA8L3NpYS1keW5hbWljLWZpZWxkLXdyYXBwZXI+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAubG9va3VwLWZpZWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5sb29rdXAtaW5wdXQtZ3JvdXAge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBcbiAgICAgIC5sb29rdXAtZGlzcGxheSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGhlaWdodDogMi44NTdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gNHJlbSAwLjc1cmVtIDAuNzVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sb29rdXAtYnV0dG9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgfVxuXG4gICAgICA6Om5nLWRlZXAgLnAtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gICAgICAgIFxuICAgICAgICAucC1idXR0b24taWNvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAucC1idXR0b24tbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5sb29rdXAtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAuc2VhcmNoLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5zZWFyY2gtaW5wdXQtZnVsbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogNS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlYXJjaC1idXR0b25zLWluc2lkZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgICAgXG4gICAgICAgICAgOjpuZy1kZWVwIC5wLWJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDIuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubG9va3VwLXRhYmxlIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgXG4gICAgICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXAtdGV4dC1jb2xvci1zZWNvbmRhcnkpO1xuXG4gICAgICAgICAgaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGaWVsZExvb2t1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZpZWxkITogRHluYW1pY0Zvcm1GaWVsZENvbmZpZztcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBtb2RlOiAnZm9ybScgfCAnZmlsdGVyJyA9ICdmb3JtJztcblxuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBzaG93TG9va3VwRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG4gIFxuICBkYXRhOiBhbnlbXSA9IFtdO1xuICBmaWx0ZXJlZERhdGE6IGFueVtdID0gW107XG4gIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcbiAgY3VycmVudFBhZ2U6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xuICBzZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7XG4gIHByaXZhdGUgc2tpcE5leHRMYXp5TG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgY29sdW1uczogTG9va3VwQ29sdW1uW10gPSBbXTtcbiAgZGlzcGxheUZpZWxkOiBzdHJpbmcgPSAnbmFtZSc7XG4gIHZhbHVlRmllbGQ6IHN0cmluZyA9ICdpZCc7XG4gIHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSBbJ25hbWUnXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cExvb2t1cENvbmZpZygpO1xuICAgIHRoaXMud2F0Y2hWYWx1ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hWYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgLy8gQ2FycmVnYXIgdmFsb3IgaW5pY2lhbFxuICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVWYWx1ZURpc3BsYXkoY29udHJvbC52YWx1ZSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIE9ic2VydmFyIG11ZGFuw6dhc1xuICAgICAgY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJykge1xuICAgICAgICAgIHRoaXMuaGFuZGxlVmFsdWVEaXNwbGF5KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT2J0w6ltIG8gRm9ybUNvbnRyb2wsIGxpZGFuZG8gY29tIGNhbXBvcyBhbmluaGFkb3MgKGNvbSBwb250byBubyBub21lKVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGb3JtQ29udHJvbCgpIHtcbiAgICBpZiAoIXRoaXMuZmllbGQ/LmZpZWxkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBBY2Vzc2EgZGlyZXRhbWVudGUgdmlhIGNvbnRyb2xzW10gcG9pcyBmb3JtLmdldCgpIG7Do28gZnVuY2lvbmEgY29tIGNhbXBvcyBxdWUgdMOqbSBwb250b1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5maWVsZC5maWVsZF07XG4gIH1cblxuICBwcml2YXRlIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCk7XG4gICAgcmV0dXJuIGNvbnRyb2w/LnZhbHVlO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woKTtcbiAgICBjb250cm9sPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwTG9va3VwQ29uZmlnKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICB0aGlzLmRpc3BsYXlGaWVsZCA9IHRoaXMuZmllbGQubG9va3VwRGlzcGxheUZpZWxkIHx8ICduYW1lJztcbiAgICAgIHRoaXMudmFsdWVGaWVsZCA9IHRoaXMuZmllbGQubG9va3VwVmFsdWVGaWVsZCB8fCAnaWQnO1xuICAgICAgdGhpcy5zZWFyY2hGaWVsZHMgPSB0aGlzLmZpZWxkLmxvb2t1cFNlYXJjaEZpZWxkcyB8fCBbJ25hbWUnXTtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuZmllbGQubG9va3VwQ29sdW1ucyB8fCBbXG4gICAgICAgIHsgZmllbGQ6IHRoaXMuZGlzcGxheUZpZWxkLCBoZWFkZXI6ICdOb21lJywgd2lkdGg6ICcxMDAlJyB9XG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmFsdWVEaXNwbGF5KHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0RGlzcGxheVZhbHVlKHZhbHVlKTtcbiAgICAgIC8vIEtlZXAgdGhlIGZ1bGwgb2JqZWN0IGluIHRoZSBmb3JtIGNvbnRyb2xcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gU2Ugw6kgdW0gSUQgKHN0cmluZyBvdSBudW1iZXIpLCBuw6NvIGZhemVyIHJlcXVpc2nDp8Ojb1xuICAgIC8vIERlaXhhciB2YXppbyBlIHPDsyBjYXJyZWdhciBxdWFuZG8gYWJyaXIgbyBsb29rdXBcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RGlzcGxheVZhbHVlKGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gJyc7XG4gICAgXG4gICAgaWYgKHRoaXMuZmllbGQ/Lmxvb2t1cERpc3BsYXlGaWVsZHMgJiYgdGhpcy5maWVsZC5sb29rdXBEaXNwbGF5RmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZmllbGQubG9va3VwRGlzcGxheUZpZWxkc1xuICAgICAgICAubWFwKGZpZWxkTmFtZSA9PiB0aGlzLmdldEZpZWxkVmFsdWUoaXRlbSwgZmllbGROYW1lKSlcbiAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJyk7XG4gICAgICBcbiAgICAgIHJldHVybiB2YWx1ZXMuam9pbignIC0gJyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB0aGlzLmdldEZpZWxkVmFsdWUoaXRlbSwgdGhpcy5kaXNwbGF5RmllbGQpIHx8ICcnO1xuICB9XG5cbiAgaXNGaWVsZEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woKTtcbiAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSk7XG4gIH1cblxuICBpc0ZpZWxkRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woKTtcbiAgICByZXR1cm4gY29udHJvbD8uZGlzYWJsZWQgfHwgZmFsc2U7XG4gIH1cblxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBUcmFuc2xhdGlvbkhlbHBlci5nZXRGaWx0ZXJQbGFjZWhvbGRlcihcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgdGhpcy5tb2RlLFxuICAgICAgdGhpcy5maWVsZC5sYWJlbCxcbiAgICAgIHRoaXMuZmllbGQucGxhY2Vob2xkZXJcbiAgICApO1xuICB9XG5cbiAgb3Blbkxvb2t1cCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0ZpZWxkRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbSgpO1xuICAgIFxuICAgIHRoaXMuc2hvd0xvb2t1cERpYWxvZyA9IHRydWU7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gJyc7XG4gICAgLy8gRGVsYXkgbG9hZERhdGEgdG8gbmV4dCBtYWNyb3Rhc2sgdG8gYXZvaWQgTkcwMTAwXG4gICAgLy8gKHAtZGlhbG9nIHRyaWdnZXJzIGEgQ0QgY3ljbGUgb24gb3BlbiB0aGF0IGNvbmZsaWN0cyB3aXRoIGxvYWRpbmcgc3RhdGUgY2hhbmdlKVxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5sb2FkRGF0YSgpLCAwKTtcbiAgfVxuXG4gIG9uRGlhbG9nSGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMDtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3dMb29rdXBEaWFsb2cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBwLXRhYmxlIGZpcmVzIG9uTGF6eUxvYWQgd2hlbiBpdCBmaXJzdCByZW5kZXJzIOKAlCBza2lwIGl0IHNpbmNlXG4gICAgLy8gb3Blbkxvb2t1cCBhbHJlYWR5IHRyaWdnZXJlZCBsb2FkRGF0YVxuICAgIGlmICh0aGlzLnNraXBOZXh0TGF6eUxvYWQpIHtcbiAgICAgIHRoaXMuc2tpcE5leHRMYXp5TG9hZCA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gZXZlbnQuZmlyc3QgLyBldmVudC5yb3dzO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpZWxkPy5sb29rdXBTZXJ2aWNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBcbiAgICBjb25zdCBsaXN0UGFyYW1zOiBhbnkgPSB7IFxuICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgIHNpemU6IHRoaXMucGFnZVNpemVcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuZmllbGQubG9va3VwU29ydCkge1xuICAgICAgbGlzdFBhcmFtcy5zb3J0ID0gdGhpcy5maWVsZC5sb29rdXBTb3J0O1xuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy5zZWFyY2hUZXJtLnRyaW0oKSkge1xuICAgICAgY29uc3QgdGVybSA9IHRoaXMuc2VhcmNoVGVybS50cmltKCk7XG4gICAgICBjb25zdCBmaWx0ZXJDb25kaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgY29uc3QgaXNOdW1lcmljVGVybSA9ICFpc05hTihOdW1iZXIodGVybSkpICYmIHRlcm0gIT09ICcnO1xuICAgICAgXG4gICAgICB0aGlzLnNlYXJjaEZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoY29sID0+IGNvbC5maWVsZCA9PT0gZmllbGQpO1xuICAgICAgICBjb25zdCBmaWVsZFR5cGUgPSBjb2x1bW4/LnR5cGUgfHwgJ3RleHQnO1xuICAgICAgICBcbiAgICAgICAgaWYgKGZpZWxkVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBpZiAoaXNOdW1lcmljVGVybSkge1xuICAgICAgICAgICAgZmlsdGVyQ29uZGl0aW9ucy5wdXNoKGAke2ZpZWxkfSBlcSAke3Rlcm19YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHVwcGVyVGVybSA9IHRlcm0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgICBmaWx0ZXJDb25kaXRpb25zLnB1c2goYFVQUEVSKCR7ZmllbGR9KSBsaWtlICclJHt1cHBlclRlcm19JSdgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGlmIChmaWx0ZXJDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGlzdFBhcmFtcy5maWx0ZXJRdWVyeSA9IGZpbHRlckNvbmRpdGlvbnMuam9pbignIG9yICcpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAodGhpcy5maWVsZC5sb29rdXBGaWx0ZXJzKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZpZWxkLmxvb2t1cEZpbHRlcnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgbGlzdFBhcmFtc1trZXldID0gdGhpcy5maWVsZC5sb29rdXBGaWx0ZXJzIVtrZXldO1xuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICAgIGlmICh0aGlzLmZpZWxkLmxvb2t1cER5bmFtaWNGaWx0ZXJzICYmIHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICBjb25zdCBkeW5hbWljRmlsdGVycyA9IHRoaXMuZmllbGQubG9va3VwRHluYW1pY0ZpbHRlcnModGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgICAgXG4gICAgICBjb25zdCBkeW5hbWljRmlsdGVyQ29uZGl0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgICAgIE9iamVjdC5rZXlzKGR5bmFtaWNGaWx0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZHluYW1pY0ZpbHRlcnNba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkeW5hbWljRmlsdGVyQ29uZGl0aW9ucy5wdXNoKGAke2tleX0gZXEgJyR7dmFsdWV9J2ApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKGR5bmFtaWNGaWx0ZXJDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgZHluYW1pY0ZpbHRlclF1ZXJ5ID0gZHluYW1pY0ZpbHRlckNvbmRpdGlvbnMuam9pbignIGFuZCAnKTtcbiAgICAgICAgaWYgKGxpc3RQYXJhbXMuZmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICBsaXN0UGFyYW1zLmZpbHRlclF1ZXJ5ID0gYCgke2xpc3RQYXJhbXMuZmlsdGVyUXVlcnl9KSBhbmQgKCR7ZHluYW1pY0ZpbHRlclF1ZXJ5fSlgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpc3RQYXJhbXMuZmlsdGVyUXVlcnkgPSBkeW5hbWljRmlsdGVyUXVlcnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgdGhpcy5maWVsZC5sb29rdXBTZXJ2aWNlLmxpc3QobGlzdFBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlLmNvbnRlbnRzIHx8IFtdO1xuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLmRhdGFdO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHJlc3BvbnNlLnRvdGFsRWxlbWVudHMgfHwgMDtcbiAgICAgICAgXG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtKCk7XG4gICAgICAgIFxuICAgICAgICAvLyBBcMOzcyBjYXJyZWdhciBvcyBkYWRvcyBkYSBncmlkLCBzZSB0ZW1vcyB1bSB2YWxvciBzZWxlY2lvbmFkbyBtYXMgc2VtIGRpc3BsYXlWYWx1ZSxcbiAgICAgICAgLy8gdGVudGFyIGVuY29udHJhciBvIGl0ZW0gbm9zIGRhZG9zIGNhcnJlZ2Fkb3NcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZmlsdGVyZWREYXRhLmZpbmQoaSA9PiBpW3RoaXMudmFsdWVGaWVsZF0gPT09IHRoaXMudmFsdWUpO1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZm9ybWF0RGlzcGxheVZhbHVlKGl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIC8vIFRoZSB0YWJsZSB3aWxsIGZpcmUgb25MYXp5TG9hZCB3aGVuIGl0IGZpcnN0IHJlbmRlcnMg4oCUIHNraXAgaXRcbiAgICAgICAgdGhpcy5za2lwTmV4dExhenlMb2FkID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKF9lcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbXTtcbiAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSAwO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5za2lwTmV4dExhenlMb2FkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRJdGVtKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBpdGVtID0gdGhpcy5maWx0ZXJlZERhdGEuZmluZChpID0+IGlbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy52YWx1ZSk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvd0xvb2t1cERpYWxvZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMDtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBjbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMDtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBzZWxlY3RJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xuICAgIC8vIEFsd2F5cyBzZXQgdGhlIGZ1bGwgb2JqZWN0LCBub3QganVzdCB0aGUgSURcbiAgICB0aGlzLnNldFZhbHVlKGl0ZW0pO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5mb3JtYXREaXNwbGF5VmFsdWUoaXRlbSk7XG4gICAgdGhpcy5zaG93TG9va3VwRGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBvblJvd1NlbGVjdChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RJdGVtKGV2ZW50LmRhdGEpO1xuICB9XG5cbiAgY2xlYXJWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICB9XG5cbiAgZ2V0RmllbGRWYWx1ZShpdGVtOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBmaWVsZC5zcGxpdCgnLicpLnJlZHVjZSgob2JqLCBrZXkpID0+IG9iaj8uW2tleV0sIGl0ZW0pIHx8ICcnO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtYWkvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9tb2RlbHMvZHluYW1pYy1mb3JtLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogTG9va3VwIGNvbHVtbiBjb25maWd1cmF0aW9uIGZvciBkeW5hbWljIGZvcm0gbG9va3VwIGZpZWxkc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGb3JtTG9va3VwQ29sdW1uIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICB0eXBlPzogJ3RleHQnIHwgJ251bWJlcic7XG59XG5cbi8qKlxuICogUmVzcG9uc2l2ZSBzaXplIGNvbmZpZ3VyYXRpb24gZm9yIGZvcm0gZmllbGRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZFNpemUge1xuICB4cz86IG51bWJlcjsgLy8gRXh0cmEgc21hbGwgc2NyZWVucyAoPDU3NnB4KVxuICBzbT86IG51bWJlcjsgLy8gU21hbGwgc2NyZWVucyAo4omlNTc2cHgpXG4gIG1kPzogbnVtYmVyOyAvLyBNZWRpdW0gc2NyZWVucyAo4omlNzY4cHgpXG4gIGxnPzogbnVtYmVyOyAvLyBMYXJnZSBzY3JlZW5zICjiiaU5OTJweClcbiAgeGw/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtYWkvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9tb2RlbHMvZHluYW1pYy1mb3JtLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogTG9va3VwIGNvbHVtbiBjb25maWd1cmF0aW9uIGZvciBkeW5hbWljIGZvcm0gbG9va3VwIGZpZWxkc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGb3JtTG9va3VwQ29sdW1uIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICB0eXBlPzogJ3RleHQnIHwgJ251bWJlcic7XG59XG5cbi8qKlxuICogUmVzcG9uc2l2ZSBzaXplIGNvbmZpZ3VyYXRpb24gZm9yIGZvcm0gZmllbGRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZFNpemUge1xuICB4cz86IG51bWJlcjsgLy8gRXh0cmEgc21hbGwgc2NyZWVucyAoPDU3NnB4KVxuICBzbT86IG51bWJlcjsgLy8gU21hbGwgc2NyZWVucyAo4omlNTc2cHgpXG4gIG1kPzogbnVtYmVyOyAvLyBNZWRpdW0gc2NyZWVucyAo4omlNzY4cHgpXG4gIGxnPzogbnVtYmVyOyAvLyBMYXJnZSBzY3JlZW5zICjiiaU5OTJweClcbiAgeGw/OiBudW1iZXI7IC8vIEV4dHJhIGxhcmdlIHNjcmVlbnMgKOKJpTEyMDBweClcbn1cblxuLyoqXG4gKiBEeW5hbWljIEZvcm0gRmllbGQgQ29uZmlndXJhdGlvblxuICogQ29tcGxldGUgY29uZmlndXJhdGlvbiBpbnRlcmZhY2UgZm9yIGFsbCBmaWVsZCB0eXBlcyBpbiBkeW5hbWljIGZvcm1zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyB7XG4gIC8vIEJhc2ljIHByb3BlcnRpZXNcbiAgZmllbGQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgdHlwZTogJ3RleHQnIHwgJ251bWJlcicgfCAnZHJvcGRvd24nIHwgJ2xvb2t1cCcgfCAndGV4dGFyZWEnIHwgJ2VudW0nIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJztcbiAgXG4gIC8vIFZhbGlkYXRpb25cbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgXG4gIC8vIENvbW1vbiBwcm9wZXJ0aWVzXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBkZWZhdWx0VmFsdWU/OiBhbnk7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgXG4gIC8vIExheW91dCBwcm9wZXJ0aWVzXG4gIGNvbHNwYW4/OiBudW1iZXI7IC8vIE51bWJlciBvZiBjb2x1bW5zIHRvIHNwYW4gKDEtMTIsIGRlZmF1bHQ6IDYpXG4gIHNpemU/OiBEeW5hbWljRm9ybUZpZWxkU2l6ZTsgLy8gUmVzcG9uc2l2ZSBzaXplcyBvYmplY3RcbiAgY29sc3BhblhzPzogbnVtYmVyOyAvLyBEZXByZWNhdGVkOiB1c2Ugc2l6ZS54c1xuICBjb2xzcGFuU20/OiBudW1iZXI7IC8vIERlcHJlY2F0ZWQ6IHVzZSBzaXplLnNtXG4gIGNvbHNwYW5NZD86IG51bWJlcjsgLy8gRGVwcmVjYXRlZDogdXNlIHNpemUubWRcbiAgY29sc3BhbkxnPzogbnVtYmVyOyAvLyBEZXByZWNhdGVkOiB1c2Ugc2l6ZS5sZ1xuICBjb2xzcGFuWGw/OiBudW1iZXI7IC8vIERlcHJlY2F0ZWQ6IHVzZSBzaXplLnhsXG4gIGNvbHNwYW5XaGVuPzogeyAvLyBDb25kaXRpb25hbCBjb2xzcGFuIGJhc2VkIG9uIG90aGVyIGZpZWxkIHZhbHVlc1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgICBjb2xzcGFuOiBudW1iZXI7XG4gIH1bXTtcbiAgXG4gIC8vIENvbmRpdGlvbmFsIHZpc2liaWxpdHkgYW5kIHN0YXRlXG4gIHZpc2libGVXaGVuPzogeyAvLyBDb25kaXRpb25hbCB2aXNpYmlsaXR5XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICB2YWx1ZTogYW55O1xuICB9O1xuICBkaXNhYmxlZFdoZW4/OiB7IC8vIENvbmRpdGlvbmFsIGRpc2FibGVkIHN0YXRlXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICB2YWx1ZTogYW55O1xuICB9O1xuICBcbiAgLy8gVGV4dCBmaWVsZCBwcm9wZXJ0aWVzXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtYXNrPzogJ2NlcCcgfCAncG9zdGFsQ29kZScgfCAncGhvbmUnIHwgJ2RvY3VtZW50JyB8ICdjcGYnIHwgJ2NucGonIHwgJ2R5bmFtaWMnO1xuICBtYXNrRGVwZW5kc09uPzogc3RyaW5nOyAvLyBGaWVsZCBuYW1lIHRoYXQgZGV0ZXJtaW5lcyB0aGUgbWFzayB0eXBlIChlLmcuLCAndHlwZVBlcnNvbicpXG4gIG1hc2tNYXBwaW5nPzogeyBba2V5OiBzdHJpbmddOiAnTkFUVVJBTF9QRVJTT04nIHwgJ0pVUklESUNBTF9QRVJTT04nIH07IC8vIE1hcHMgZmllbGQgdmFsdWVzIHRvIGRvY3VtZW50IHR5cGVzXG4gIHVzZVBvc3RhbENvZGVNYXNrPzogYm9vbGVhbjsgLy8gU2hvcnRjdXQgZm9yIG1hc2s9J3Bvc3RhbENvZGUnXG4gIHVzZVBob25lTWFzaz86IGJvb2xlYW47IC8vIERlcHJlY2F0ZWQ6IHVzZSBtYXNrPSdwaG9uZSdcbiAgXG4gIC8vIFRleHRhcmVhIHByb3BlcnRpZXNcbiAgcm93cz86IG51bWJlcjtcbiAgZnVsbFNpemU/OiBib29sZWFuOyAvLyBGb3IgdGV4dGFyZWEgdG8gdGFrZSBmdWxsIHdpZHRoXG4gIFxuICAvLyBOdW1iZXIgZmllbGQgcHJvcGVydGllc1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgbWluRnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gIG1heEZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xuICBudW1iZXJNb2RlPzogJ2RlY2ltYWwnIHwgJ2N1cnJlbmN5JztcbiAgY3VycmVuY3k/OiBzdHJpbmc7IC8vIEN1cnJlbmN5IGNvZGUgKGRlZmF1bHQ6ICdCUkwnKVxuICBsb2NhbGU/OiBzdHJpbmc7IC8vIExvY2FsZSBmb3IgbnVtYmVyIGZvcm1hdHRpbmcgKGRlZmF1bHQ6ICdwdC1CUicpXG4gIHVzZUdyb3VwaW5nPzogYm9vbGVhbjsgLy8gRm9yIG51bWJlciBpbnB1dHNcbiAgXG4gIC8vIERhdGUgZmllbGQgcHJvcGVydGllc1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nOyAvLyBEYXRlIGZvcm1hdCBmb3IgY2FsZW5kYXIgKGRlZmF1bHQ6ICdkZC9tbS95eScpXG4gIFxuICAvLyBEcm9wZG93biBwcm9wZXJ0aWVzXG4gIG9wdGlvbnM/OiBhbnlbXTtcbiAgb3B0aW9uTGFiZWw/OiBzdHJpbmc7XG4gIG9wdGlvblZhbHVlPzogc3RyaW5nO1xuICBzaG93Q2xlYXI/OiBib29sZWFuO1xuICBmaWx0ZXI/OiBib29sZWFuO1xuICBmaWx0ZXJCeT86IHN0cmluZztcbiAgXG4gIC8vIEVudW0gcHJvcGVydGllc1xuICBlbnVtVmFsdWVzPzogc3RyaW5nW107XG4gIGVudW1MYWJlbHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBlbnVtT3B0aW9ucz86IHsgdmFsdWU6IGFueTsgbGFiZWw6IHN0cmluZyB9W107IC8vIEFsdGVybmF0aXZlIHRvIGVudW1WYWx1ZXMvZW51bUxhYmVsc1xuICBcbiAgLy8gTG9va3VwIHByb3BlcnRpZXNcbiAgbG9va3VwRW50aXR5Pzogc3RyaW5nOyAvLyBFbnRpdHkgbmFtZSBmb3IgbG9va3VwXG4gIGxvb2t1cFNlcnZpY2U/OiBhbnk7IC8vIFNlcnZpY2UgdG8gZmV0Y2ggbG9va3VwIGRhdGFcbiAgbG9va3VwRGlzcGxheUZpZWxkPzogc3RyaW5nOyAvLyBGaWVsZCB0byBkaXNwbGF5IGluIHRoZSBsb29rdXAgKGRlZmF1bHQ6ICduYW1lJylcbiAgbG9va3VwRGlzcGxheUZpZWxkcz86IHN0cmluZ1tdOyAvLyBNdWx0aXBsZSBmaWVsZHMgdG8gZGlzcGxheSBzZXBhcmF0ZWQgYnkgJyAtICdcbiAgbG9va3VwVmFsdWVGaWVsZD86IHN0cmluZzsgLy8gRmllbGQgdG8gdXNlIGFzIHZhbHVlIChkZWZhdWx0OiAnaWQnKVxuICBsb29rdXBTZWFyY2hGaWVsZHM/OiBzdHJpbmdbXTsgLy8gRmllbGRzIHRvIHNlYXJjaCBpbiAoZGVmYXVsdDogWyduYW1lJ10pXG4gIGxvb2t1cENvbHVtbnM/OiBEeW5hbWljRm9ybUxvb2t1cENvbHVtbltdOyAvLyBDb2x1bW5zIHRvIGRpc3BsYXkgaW4gbG9va3VwIHRhYmxlXG4gIGxvb2t1cEZpbHRlcnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9OyAvLyBTdGF0aWMgZmlsdGVycyBmb3IgbG9va3VwXG4gIGxvb2t1cFNvcnQ/OiB7IGZpZWxkOiBzdHJpbmc7IG9yZGVyOiBudW1iZXIgfVtdOyAvLyBTb3J0IGNvbmZpZ3VyYXRpb24gZm9yIGxvb2t1cCAob3JkZXI6IDE9YXNjLCAtMT1kZXNjKVxuICBsb29rdXBEeW5hbWljRmlsdGVycz86IChmb3JtVmFsdWVzOiBhbnkpID0+IHsgW2tleTogc3RyaW5nXTogYW55IH07IC8vIER5bmFtaWMgZmlsdGVycyBiYXNlZCBvbiBmb3JtIHZhbHVlc1xufVxuXG4vKipcbiAqIER5bmFtaWMgRm9ybSBEaXNwbGF5IE1vZGVcbiAqIERlZmluZSBjb21vIG8gZm9ybXVsw6FyaW8gc2Vyw6EgZXhpYmlkb1xuICovXG5leHBvcnQgdHlwZSBEeW5hbWljRm9ybURpc3BsYXlNb2RlID0gJ2lubGluZScgfCAnZGlhbG9nJyB8ICdkcmF3ZXInIHwgJ2lubGluZS1lZGl0JztcblxuLyoqXG4gKiBEeW5hbWljIEZvcm0gRGlhbG9nIENvbmZpZ3VyYXRpb25cbiAqIENvbmZpZ3VyYcOnw7VlcyBlc3BlY8OtZmljYXMgcGFyYSBvIG1vZG8gZGlhbG9nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1EaWFsb2dDb25maWcge1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICByZXNpemFibGU/OiBib29sZWFuO1xuICBtYXhpbWl6YWJsZT86IGJvb2xlYW47XG4gIGNsb3NlT25Fc2NhcGU/OiBib29sZWFuO1xuICBkaXNtaXNzYWJsZU1hc2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIER5bmFtaWMgRm9ybSBEcmF3ZXIgU2l6ZVxuICogVGFtYW5ob3MgcGFkcm9uaXphZG9zIHBhcmEgbyBkcmF3ZXJcbiAqL1xuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1EcmF3ZXJTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnIHwgJ2Z1bGwnO1xuXG4vKipcbiAqIER5bmFtaWMgRm9ybSBEcmF3ZXIgQ29uZmlndXJhdGlvblxuICogQ29uZmlndXJhw6fDtWVzIGVzcGVjw61maWNhcyBwYXJhIG8gbW9kbyBkcmF3ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybURyYXdlckNvbmZpZyB7XG4gIGhlYWRlcj86IHN0cmluZztcbiAgcG9zaXRpb24/OiAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJztcbiAgc2l6ZT86IER5bmFtaWNGb3JtRHJhd2VyU2l6ZTsgLy8gVGFtYW5obyBwYWRyb25pemFkbyBkbyBkcmF3ZXJcbiAgY3VzdG9tV2lkdGg/OiBzdHJpbmc7IC8vIExhcmd1cmEgY3VzdG9taXphZGEgKHNvYnJlc2NyZXZlIHNpemUpXG4gIHNob3dDbG9zZUljb24/OiBib29sZWFuO1xuICBjbG9zZU9uRXNjYXBlPzogYm9vbGVhbjtcbiAgZGlzbWlzc2FibGU/OiBib29sZWFuOyAvLyBDb250cm9scyBtb2RhbCBiZWhhdmlvciAoYmFja2Ryb3AgY2xpY2sgdG8gY2xvc2UpXG59XG5cbi8qKlxuICogRHluYW1pYyBGb3JtIFNlY3Rpb25cbiAqIEFncnVwYSBjYW1wb3MgZW0gc2XDp8O1ZXMgY29sYXBzw6F2ZWlzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1TZWN0aW9uIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzOiBEeW5hbWljRm9ybUZpZWxkQ29uZmlnW107XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47IC8vIFNlIGEgc2XDp8OjbyBpbmljaWEgY29sYXBzYWRhIChwYWRyw6NvOiBmYWxzZSlcbiAgdG9nZ2xlYWJsZT86IGJvb2xlYW47IC8vIFNlIGEgc2XDp8OjbyBwb2RlIHNlciBjb2xhcHNhZGEgKHBhZHLDo286IHRydWUpXG4gIGljb24/OiBzdHJpbmc7IC8vIMONY29uZSBkYSBzZcOnw6NvIChvcGNpb25hbClcbn1cblxuLyoqXG4gKiBEeW5hbWljIEZvcm0gQ29uZmlndXJhdGlvblxuICogTWFpbiBjb25maWd1cmF0aW9uIGludGVyZmFjZSBmb3IgdGhlIGR5bmFtaWMgZm9ybSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUNvbmZpZyB7XG4gIGZpZWxkczogRHluYW1pY0Zvcm1GaWVsZENvbmZpZ1tdO1xuICBzZWN0aW9ucz86IER5bmFtaWNGb3JtU2VjdGlvbltdOyAvLyBTZcOnw7VlcyBkZSBjYW1wb3MgKG9wY2lvbmFsKVxuICBmaXhlZEZpbHRlcnM/OiBEeW5hbWljRm9ybUZpZWxkQ29uZmlnW107IC8vIEZpbHRyb3MgZml4b3MgKHNlbXByZSB2aXPDrXZlaXMgbm8gdG9wbywgYXBlbmFzIG1vZG8gZmlsdGVyKVxuICBmaWx0ZXJTZWN0aW9ucz86IER5bmFtaWNGb3JtU2VjdGlvbltdOyAvLyBTZcOnw7VlcyBkZSBmaWx0cm9zIChjb2xhcHPDoXZlaXMsIGFwZW5hcyBtb2RvIGZpbHRlcilcbiAgbW9kZT86ICdmb3JtJyB8ICdmaWx0ZXInO1xuICBkaXNwbGF5TW9kZT86IER5bmFtaWNGb3JtRGlzcGxheU1vZGU7IC8vIE1vZG8gZGUgZXhpYmnDp8OjbyAoaW5saW5lLCBkaWFsb2csIGRyYXdlcilcbiAgZGlhbG9nQ29uZmlnPzogRHluYW1pY0Zvcm1EaWFsb2dDb25maWc7IC8vIENvbmZpZ3VyYcOnw7VlcyBkbyBkaWFsb2dcbiAgZHJhd2VyQ29uZmlnPzogRHluYW1pY0Zvcm1EcmF3ZXJDb25maWc7IC8vIENvbmZpZ3VyYcOnw7VlcyBkbyBkcmF3ZXJcbiAgaW5pdGlhbERhdGE/OiBhbnk7XG4gIHN1Ym1pdE9uRW50ZXI/OiBib29sZWFuO1xuICBzaG93U3VibWl0QnV0dG9uPzogYm9vbGVhbjtcbiAgc3VibWl0QnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dDYW5jZWxCdXR0b24/OiBib29sZWFuO1xuICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEeW5hbWljIEZvcm0gU3VibWl0IEV2ZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1TdWJtaXRFdmVudCB7XG4gIHZhbHVlOiBhbnk7XG4gIHZhbGlkOiBib29sZWFuO1xuICBkaXJ0eTogYm9vbGVhbjtcbiAgdG91Y2hlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUeXBlIGFsaWFzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggRm9ybUZpZWxkQ29uZmlnXG4gKiBAZGVwcmVjYXRlZCBVc2UgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1GaWVsZENvbmZpZyA9IER5bmFtaWNGb3JtRmllbGRDb25maWc7XG4iXX0=
|