@rangertechnologies/ngnxt 2.1.252 → 2.1.253
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/environments/version.mjs +2 -2
- package/esm2022/lib/components/button/nxt-button.component.mjs +4 -4
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +8 -5
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +13 -14
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +5 -3
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +8 -11
- package/esm2022/lib/components/datatable/datatable.component.mjs +7 -8
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +13 -16
- package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +4 -3
- package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +9 -9
- package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +24 -12
- package/esm2022/lib/components/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +10 -13
- package/esm2022/lib/components/search-box/search-box.component.mjs +14 -15
- package/esm2022/lib/nxt-app.module.mjs +9 -33
- package/esm2022/lib/pages/booklet/booklet.component.mjs +31 -56
- package/esm2022/lib/pages/builder/element/element.component.mjs +68 -36
- package/esm2022/lib/pages/builder/form/form.component.mjs +6 -3
- package/esm2022/lib/pages/builder/properties/common-fields.constants.mjs +3 -3
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +203 -78
- package/esm2022/lib/pages/builder/templates/templates.component.mjs +5 -4
- package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +5 -4
- package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +42 -45
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +18 -40
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +17 -17
- package/esm2022/lib/pipe/custom-translate.pipe.mjs +16 -10
- package/esm2022/lib/services/change/change.service.mjs +46 -0
- package/esm2022/lib/services/country/country.service.mjs +135 -0
- package/esm2022/lib/services/data/data.service.mjs +100 -0
- package/esm2022/lib/services/form-builder/form-builder.service.mjs +500 -0
- package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +398 -0
- package/esm2022/lib/services/salesforce/salesforce.service.mjs +41 -0
- package/esm2022/lib/services/shared/shared.service.mjs +100 -0
- package/esm2022/lib/services/storage/storage.service.mjs +59 -0
- package/esm2022/lib/services/template/template.service.mjs +351 -0
- package/esm2022/lib/services/translation/translation.service.mjs +121 -0
- package/esm2022/public-api.mjs +2 -5
- package/fesm2022/rangertechnologies-ngnxt.mjs +1265 -1259
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/button/nxt-button.component.d.ts +1 -1
- package/lib/components/custom-calendar/custom-calendar.component.d.ts +1 -1
- package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +3 -5
- package/lib/components/custom-radio/custom-radio.component.d.ts +3 -5
- package/lib/components/datatable/datatable.component.d.ts +3 -3
- package/lib/components/file-upload/file-upload.component.d.ts +3 -5
- package/lib/components/image-cropper/component/image-cropper.component.d.ts +1 -1
- package/lib/components/nxt-input/nxt-input.component.d.ts +2 -2
- package/lib/components/pick-location/pick-location.component.d.ts +1 -3
- package/lib/components/search-box/search-box.component.d.ts +5 -7
- package/lib/nxt-app.module.d.ts +15 -17
- package/lib/pages/booklet/booklet.component.d.ts +9 -9
- package/lib/pages/builder/element/element.component.d.ts +10 -4
- package/lib/pages/builder/form/form.component.d.ts +2 -1
- package/lib/pages/builder/properties/properties.component.d.ts +34 -6
- package/lib/pages/builder/templates/templates.component.d.ts +1 -1
- package/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.d.ts +1 -1
- package/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.d.ts +19 -2
- package/lib/pages/questionbook/questionbook.component.d.ts +7 -11
- package/lib/pages/questionnaire/questionnaire.component.d.ts +7 -8
- package/lib/pipe/custom-translate.pipe.d.ts +2 -3
- package/lib/services/{form-builder.service.d.ts → form-builder/form-builder.service.d.ts} +2 -2
- package/lib/services/{pdf-designer.service.d.ts → pdf-designer/pdf-designer.service.d.ts} +1 -1
- package/lib/services/{storage.service.d.ts → storage/storage.service.d.ts} +2 -2
- package/lib/services/{translation.service.d.ts → translation/translation.service.d.ts} +12 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -3
- package/rangertechnologies-ngnxt-2.1.253.tgz +0 -0
- package/esm2022/lib/ar.i18n.mjs +0 -29
- package/esm2022/lib/en.i18n.mjs +0 -29
- package/esm2022/lib/i18n-config.service.mjs +0 -4
- package/esm2022/lib/i18n.component.mjs +0 -45
- package/esm2022/lib/i18n.module.mjs +0 -38
- package/esm2022/lib/i18n.pipe.mjs +0 -26
- package/esm2022/lib/i18n.service.mjs +0 -56
- package/esm2022/lib/interfaces/apimeta.mjs +0 -2
- package/esm2022/lib/services/change.service.mjs +0 -46
- package/esm2022/lib/services/country.service.mjs +0 -135
- package/esm2022/lib/services/data.service.mjs +0 -100
- package/esm2022/lib/services/form-builder.service.mjs +0 -402
- package/esm2022/lib/services/pdf-designer.service.mjs +0 -398
- package/esm2022/lib/services/salesforce.service.mjs +0 -41
- package/esm2022/lib/services/shared.service.mjs +0 -100
- package/esm2022/lib/services/storage.service.mjs +0 -59
- package/esm2022/lib/services/template.service.mjs +0 -351
- package/esm2022/lib/services/translation.service.mjs +0 -61
- package/esm2022/lib/tam.i18n.mjs +0 -29
- package/lib/ar.i18n.d.ts +0 -24
- package/lib/en.i18n.d.ts +0 -24
- package/lib/i18n-config.service.d.ts +0 -2
- package/lib/i18n.component.d.ts +0 -11
- package/lib/i18n.module.d.ts +0 -9
- package/lib/i18n.pipe.d.ts +0 -10
- package/lib/i18n.service.d.ts +0 -14
- package/lib/interfaces/apimeta.d.ts +0 -15
- package/lib/tam.i18n.d.ts +0 -24
- package/rangertechnologies-ngnxt-2.1.252.tgz +0 -0
- /package/lib/services/{change.service.d.ts → change/change.service.d.ts} +0 -0
- /package/lib/services/{country.service.d.ts → country/country.service.d.ts} +0 -0
- /package/lib/services/{data.service.d.ts → data/data.service.d.ts} +0 -0
- /package/lib/services/{salesforce.service.d.ts → salesforce/salesforce.service.d.ts} +0 -0
- /package/lib/services/{shared.service.d.ts → shared/shared.service.d.ts} +0 -0
- /package/lib/services/{template.service.d.ts → template/template.service.d.ts} +0 -0
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, HostListener, ViewChild } from '@angular/core';
|
|
2
2
|
import { ChangeWrapper } from '../../model/changeWrapper';
|
|
3
|
+
// HA 19DEC23 imported translation service
|
|
4
|
+
// VD 23JAN24 used service file for callout
|
|
3
5
|
import { CommonModule } from '@angular/common';
|
|
4
6
|
import { FormsModule } from '@angular/forms';
|
|
5
7
|
import { NxtInput } from '../nxt-input/nxt-input.component';
|
|
8
|
+
import { NxtCustomTranslatePipe } from '../../pipe/custom-translate.pipe';
|
|
6
9
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../services/change.service";
|
|
8
|
-
import * as i2 from "../../services/data.service";
|
|
9
|
-
import * as i3 from "
|
|
10
|
-
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i1 from "../../services/change/change.service";
|
|
11
|
+
import * as i2 from "../../services/data/data.service";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
11
13
|
export class CustomDropdownComponent {
|
|
12
14
|
changeService;
|
|
13
15
|
dataService;
|
|
14
|
-
i18nService;
|
|
15
16
|
options = [];
|
|
16
17
|
placeholder;
|
|
17
18
|
apiMeta;
|
|
@@ -30,10 +31,9 @@ export class CustomDropdownComponent {
|
|
|
30
31
|
valueChange = new EventEmitter();
|
|
31
32
|
dropdownWrapper;
|
|
32
33
|
invalidFieldIds = [];
|
|
33
|
-
constructor(changeService, dataService
|
|
34
|
+
constructor(changeService, dataService) {
|
|
34
35
|
this.changeService = changeService;
|
|
35
36
|
this.dataService = dataService;
|
|
36
|
-
this.i18nService = i18nService;
|
|
37
37
|
this.changeService.submitValidate$.subscribe((data) => {
|
|
38
38
|
// to get the error message's field id's
|
|
39
39
|
this.invalidFieldIds.push(data);
|
|
@@ -42,7 +42,6 @@ export class CustomDropdownComponent {
|
|
|
42
42
|
labelField;
|
|
43
43
|
valueField;
|
|
44
44
|
subscription;
|
|
45
|
-
//public apiObj:APIMeta;
|
|
46
45
|
uniqueKey;
|
|
47
46
|
apiObj = {};
|
|
48
47
|
showOptions = false;
|
|
@@ -214,15 +213,15 @@ export class CustomDropdownComponent {
|
|
|
214
213
|
this.valueChange.emit({ question: ques, value: change });
|
|
215
214
|
}
|
|
216
215
|
}
|
|
217
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomDropdownComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }
|
|
218
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomDropdownComponent, isStandalone: true, selector: "app-custom-dropdown", inputs: { options: "options", placeholder: "placeholder", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", question: "question", referenceField: "referenceField", token: "token", mode: "mode", from: "from" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownWrapper", first: true, predicate: ["dropdownWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question
|
|
216
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomDropdownComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomDropdownComponent, isStandalone: true, selector: "app-custom-dropdown", inputs: { options: "options", placeholder: "placeholder", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", question: "question", referenceField: "referenceField", token: "token", mode: "mode", from: "from" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownWrapper", first: true, predicate: ["dropdownWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question?.font\"\n [label]=\"question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText) : ''\"\n [labelColor]=\"question?.fontColor\"\n [labelSize]=\"question?.fontSize\"\n [inputValueSize]=\"question?.fontSize\"\n [labelWeight]=\"question?.fontWeight\"\n [inputWeight]=\"question?.fontWeight\"\n [showLabel]=\"question?.style?.showLabel\"\n inputBorder=\"none\" svgHeight=\"20px\" svgWidth=\"20px\"\n [placeholder]=\"placeholder\"\n [required]=\"question?.isOptional\" [inputBgColor]=\" from === 'normalDropDown' ? '#eff8ff' : '#FAFAFA'\"\n [inputId]=\"question?.trackingId\"\n [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question?.iconLeftSrc\"\n (toggleEmit)=\"toggle()\"\n (clearInputEmit)=\"clearSelection()\"\n [question]=\"question\"\n (inputValue)=\"inputValue($event.value,$event.question)\"\n >\n</nxt-input>\n\n <!-- SKS11JUN25 Dropdown list -->\n <ul class=\"nxt-dropdown-menu\" *ngIf=\"showOptions && options.length > 0\">\n <li *ngFor=\"let item of options\" (mousedown)=\"selectChange(item)\">\n {{ apiObj && !apiObj.isDependentField && item[labelField] ? item[labelField] : item?.value }}\n </li>\n </ul>\n</div>\n<span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\n", styles: [".shengel-custom-select-wrapper{position:relative}.nxt-dropdown-menu{position:absolute;z-index:10;background:#fff;border:1px solid #ccc;max-height:200px;overflow-y:auto;width:100%;margin-top:2px;list-style:none;padding:0}.nxt-dropdown-menu li{padding:8px;display:flex;cursor:pointer}.nxt-dropdown-menu li:hover{background-color:#f0f0f0}.invalid .shengel-custom-select{border-color:red}.shengel-custom-select{width:100%;padding-right:50px}.dropdown-close{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "from", "hyperLink", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "nativeInputRef", "removeValueEmit", "hyperlinkEmit"] }, { kind: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
|
|
219
218
|
}
|
|
220
219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomDropdownComponent, decorators: [{
|
|
221
220
|
type: Component,
|
|
222
221
|
args: [{ selector: 'app-custom-dropdown', standalone: true, imports: [
|
|
223
|
-
CommonModule, FormsModule, NxtInput
|
|
224
|
-
], template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question
|
|
225
|
-
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }
|
|
222
|
+
CommonModule, FormsModule, NxtInput, NxtCustomTranslatePipe
|
|
223
|
+
], template: "<div #dropdownWrapper class=\"dropdown-close\">\n <nxt-input \n [type]=\"'dropdown'\"\n [mode]=\"mode\"\n [from]=\"from\"\n [value]=\"selectedValue\"\n (onFocus)=\"getOptions()\"\n [labelFont]=\"question?.font\"\n [label]=\"question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText) : ''\"\n [labelColor]=\"question?.fontColor\"\n [labelSize]=\"question?.fontSize\"\n [inputValueSize]=\"question?.fontSize\"\n [labelWeight]=\"question?.fontWeight\"\n [inputWeight]=\"question?.fontWeight\"\n [showLabel]=\"question?.style?.showLabel\"\n inputBorder=\"none\" svgHeight=\"20px\" svgWidth=\"20px\"\n [placeholder]=\"placeholder\"\n [required]=\"question?.isOptional\" [inputBgColor]=\" from === 'normalDropDown' ? '#eff8ff' : '#FAFAFA'\"\n [inputId]=\"question?.trackingId\"\n [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question?.iconLeftSrc\"\n (toggleEmit)=\"toggle()\"\n (clearInputEmit)=\"clearSelection()\"\n [question]=\"question\"\n (inputValue)=\"inputValue($event.value,$event.question)\"\n >\n</nxt-input>\n\n <!-- SKS11JUN25 Dropdown list -->\n <ul class=\"nxt-dropdown-menu\" *ngIf=\"showOptions && options.length > 0\">\n <li *ngFor=\"let item of options\" (mousedown)=\"selectChange(item)\">\n {{ apiObj && !apiObj.isDependentField && item[labelField] ? item[labelField] : item?.value }}\n </li>\n </ul>\n</div>\n<span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">{{ errorMessage }}</span>\n", styles: [".shengel-custom-select-wrapper{position:relative}.nxt-dropdown-menu{position:absolute;z-index:10;background:#fff;border:1px solid #ccc;max-height:200px;overflow-y:auto;width:100%;margin-top:2px;list-style:none;padding:0}.nxt-dropdown-menu li{padding:8px;display:flex;cursor:pointer}.nxt-dropdown-menu li:hover{background-color:#f0f0f0}.invalid .shengel-custom-select{border-color:red}.shengel-custom-select{width:100%;padding-right:50px}.dropdown-close{position:relative}\n"] }]
|
|
224
|
+
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }], propDecorators: { options: [{
|
|
226
225
|
type: Input
|
|
227
226
|
}], placeholder: [{
|
|
228
227
|
type: Input
|
|
@@ -261,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
261
260
|
type: HostListener,
|
|
262
261
|
args: ['document:click', ['$event']]
|
|
263
262
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFZLFlBQVksRUFBYyxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRzdJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU0xRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBVzVELE1BQU0sT0FBTyx1QkFBdUI7SUFzQnhCO0lBQ0E7SUFDRDtJQXZCQSxPQUFPLEdBQVUsRUFBRSxDQUFDO0lBQ3BCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQVksS0FBSyxDQUFDLENBQUMsK0JBQStCO0lBQzFELFlBQVksQ0FBUztJQUNyQixLQUFLLENBQU07SUFDWCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLFFBQVEsQ0FBTTtJQUNkLGNBQWMsQ0FBUztJQUN2QixLQUFLLENBQVMsQ0FBSSxzQ0FBc0M7SUFDeEQsSUFBSSxHQUE4QixNQUFNLENBQUMs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Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBMks5QixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPcHRpb25hbCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlcic7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG4vLyBWRCAyM0pBTjI0IHVzZWQgc2VydmljZSBmaWxlIGZvciBjYWxsb3V0XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOeHRJbnB1dCB9IGZyb20gJy4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBOeHRJbnB1dFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Ecm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwaU1ldGE6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9ncmVzc0JhcjogYm9vbGVhbjtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZVxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueTtcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW46IHN0cmluZzsgICAgLy8gVkQgMTlKQU4yNCAtIGdldHRpbmcgdG9rZW4gYXMgaW5wdXRcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gU0tTMTFKVU4yNSBOZXcgbW9kZSBpbnB1dFxuICBASW5wdXQoKSBmcm9tOiBhbnlcbiAgICBcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duV3JhcHBlcicpIGRyb3Bkb3duV3JhcHBlcjogRWxlbWVudFJlZjtcbiAgaW52YWxpZEZpZWxkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgKSB7IFxuICAgIHRoaXMuY2hhbmdlU2VydmljZS5zdWJtaXRWYWxpZGF0ZSQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAvLyB0byBnZXQgdGhlIGVycm9yIG1lc3NhZ2UncyBmaWVsZCBpZCdzXG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcy5wdXNoKGRhdGEpO1xuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgbGFiZWxGaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgLy9wdWJsaWMgYXBpT2JqOkFQSU1ldGE7XG4gIHB1YmxpYyB1bmlxdWVLZXk6IHN0cmluZztcbiAgYXBpT2JqOiBhbnkgPSB7fTtcbiAgc2hvd09wdGlvbnMgPSBmYWxzZTtcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IGNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG4gIGdldE9wdGlvbnMoKSB7XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XG4gICAgLy9WRCAwN0F1ZzI0IC0gaXNEZXBlbmRlbnRGaWVsZCBjaGFuZ2VcbiAgICAvLyBWRCAyNU9jdDI0IC0gY2hhbmdlc1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyID8gdGhpcy5wbGFjZWhvbGRlciA6ICctLS1TZWxlY3Qgb3B0aW9uLS0tJztcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgICAgIHRoaXMuYXBpT2JqID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgYXBpT2JqIGFuZCBhcGlPYmouZmllbGQgYXJlIGRlZmluZWRcbiAgICAgICAgaWYgKHRoaXMuYXBpT2JqICYmIHRoaXMuYXBpT2JqLmZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sYWJlbEZpZWxkID0gdGhpcy5hcGlPYmouZmllbGQ7XG4gICAgICAgICAgdGhpcy51bmlxdWVLZXkgPSB0aGlzLmFwaU9iai51bmlxdWVLZXk7XG4gICAgICAgICAgY29uc3QgY2FjaGVkT3B0aW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMudW5pcXVlS2V5KTtcbiAgICAgICAgICBpZiAoY2FjaGVkT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gSlNPTi5wYXJzZShjYWNoZWRPcHRpb25zKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFwaU9iai5pc0RlcGVuZGVudEZpZWxkKSB7XG4gICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBWRCAwOVNlcDI0LSBzZXR1cCB0aGUgcXVlcnkgcGFyYW0gZm9yIGFwaSBjYWxsIC8vIE1SIDA4SkFOMjQgRGVwZW5kZW50RmllbGQgQVBJIEZpeCBtb3ZlZCBiZWxvdyBsb2dpYyBmcm9tIGFib3ZlIGlmIGNvbmRpdGlvblxuICAgICAgICAgICAgbGV0IGZ1bGxFbmRQb2ludDtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai5lbmRwb2ludCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5hcGlPYmoucXVlcnlWYWx1ZVJlZmVyZW5jZSAmJiB0aGlzLmFwaU9iai5xdWVyeUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgZW5kIHBvaW50IHdpdGggcXVlcnkgcGFyYW1cbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlSZWZlcmVuY2VzID0gdGhpcy5hcGlPYmoucXVlcnlWYWx1ZVJlZmVyZW5jZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgIGxldCBxdWVyeUZpZWxkcyA9IHRoaXMuYXBpT2JqLnF1ZXJ5RmllbGQuc3BsaXQoJywnKTsgICAgLy8gTVIgMDhKQU4yNCBzaW1pbGFyIHRvIGFib3ZlIHZhbHVlcmVmZXJlbmNlIGdldCBsaXN0IG9mIFFVRVJZIEZpZWxkc1xuICAgICAgICAgICAgICAgIGxldCBxdWVyeVZhbHVlcyA9IHRoaXMuYXBpT2JqLnF1ZXJ5VmFsdWUuc3BsaXQoJywnKTsgICAgLy8gTVIgMDhKQU4yNCBzaW1pbGFyIHRvIGFib3ZlIHZhbHVlcmVmZXJlbmNlIGdldCBsaXN0IG9mIFFVRVJZIFZhbHVlcyAoRGVmYXVsdClcbiAgICAgICAgICAgICAgICBsZXQgcXVlcnlQYXJhbXMgPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcUluZGV4ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1SIDA4SkFOMjQgUXVlcnkgSW5kZXhcbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgcXVlcnlSZWZlcmVuY2VzIGFuZCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gcmVmZXJlbmNlRGF0YVxuICAgICAgICAgICAgICAgIHF1ZXJ5UmVmZXJlbmNlcy5mb3JFYWNoKHJlZmVyZW5jZSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBlbGVtZW50IGluIHJlZmVyZW5jZURhdGEgdGhhdCBtYXRjaGVzIHRoZSBjdXJyZW50IHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcbiAgICAgICAgICAgICAgICAgIGxldCBtYXRjaGluZ0VsZW1lbnQgPSB0aGlzLnF1ZXN0aW9uPy5yZWZlcmVuY2VRdWVyeURhdGEuZmluZChlbGVtZW50ID0+IGVsZW1lbnQucmVmZXJlbmNlRmllbGQgPT09IHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAvLyBJZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGdldCBpdHMgaW5wdXQgdmFsdWUgYW5kIGNyZWF0ZSBhIHF1ZXJ5IHBhcmFtZXRlclxuICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZSAmJiBtYXRjaGluZ0VsZW1lbnQpIHsgICAvLyBNUiAwOEpBTjI0IGlmIHJlZmVyZW5jZSBleGlzdCAmIG1hdGNoaW5nIGVsZW1lbnQgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgJHtxdWVyeUZpZWxkc1txSW5kZXhdfT0ke21hdGNoaW5nRWxlbWVudC5pbnB1dH1gKTsgICAgLy8gTVIgMDhKQU4yNCByZW1vdmVkIHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgLy8gTVIgMDhKQU4yNCBpbmNsdWRlZCBvcHRpb24gZm9yIG11bHRpcGxlIHF1ZXJ5IHBhcmFtcyBhbmQgZGVmYXVsdCB2YWx1ZSBpbiBjYXNlIG9mIHJlZmVyZW5jZSBpcyBub3QgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgJHtxdWVyeUZpZWxkc1txSW5kZXhdfT0ke3F1ZXJ5VmFsdWVzW3FJbmRleF19YCk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHFJbmRleCsrO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZ1bGxFbmRQb2ludCA9IHRoaXMuYXBpT2JqLmVuZHBvaW50ICsgJz8nICsgcXVlcnlQYXJhbXMuam9pbignJicpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIG5vIHF1ZXJ5IHBhcmFtIGdldCB0aGUgYWN0dWFsIGVuZFBvaW50XG4gICAgICAgICAgICAgICAgZnVsbEVuZFBvaW50ID0gdGhpcy5hcGlPYmouZW5kcG9pbnQ7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBWRCAxOUpBTjI0IC0gYWRkZWQgb25lIG1vcmUgcGFyYW0gZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZnVsbEVuZFBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEhBIDE4LUpBTi0yNCBBc3NpZ25lZCBhcGlyZXNwb25zZSBkaXJlY3RseSBpZiB3ZSBoYXZlIHRoZSByZXNwb25zZSBpbiBhcnJheSBhbHNvXG4gICAgICAgICAgICAgICAgLy8gVkQgMTlKQU4yNCAtIGlmIHJlc3BvbnNlIGhhcyBrZXkgd2l0aCB2YWx1ZSh3aGljaCBpcyBhcnJheSlcbiAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICAgICAgICAgICAgLy8gVkQgMjFNYXkyNCAtIGhhbmRsaW5nIG11bHRpcGxlIGNoaWxkIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgIC8vIFZEIDIyTWF5MjQgLSB1c2VkIGNvbW1vbiBzZXJ2aWNlIGZpbGVcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICAgICAgICAgIGxldCByZXN1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAvLyBIQSAxOUpBTjI0IFRvIGF2b2lkIHVuZGVmaW5lZCBlcnJvciBpbiBjb25zb2xlXG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHsgIC8vIFZEIDE5SkFOMjQgLSBpZiByZXNwb25zZSBoYXMgdmFsdWUod2hpY2ggaXMgYXJyYXkpIG9ubHlcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBWRCAyNU9jdDI0IC0gU3RvcmUgZmV0Y2hlZCBvcHRpb25zIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICBpZiAodGhpcy51bmlxdWVLZXkpIHtcbiAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMudW5pcXVlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZEIE5PVjIzIC0gaGFuZGxlIHRoZSBkZXBlbmRlbnQgdXBkYXRlIGZvciBkcm9wZG93blxuICAgICAgICAgICAgLy8gVkQgMDlTZXAyNC0gcHVzaCB0aGUgZGVwZW5kZW50IGZpZWxkIHZhbHVlcyBmb3IgZHJvcGRvd25cbiAgICAgICAgICAgIGxldCBzb3VyY2VJZCA9IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQ7XG4gICAgICAgICAgICBpZiAoc291cmNlSWQgJiYgdGhpcy5hcGlPYmoudmFyaWFibGUgfHwgdGhpcy5hcGlPYmoudmFsdWVGaWVsZCkge1xuICAgICAgICAgICAgICAvLyBTdWJzY3JpYmUgZm9yIHRoZSBjaGFuZ2VzXG4gICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogIT09IHVuZGVmaW5lZCAmJiAoIEFycmF5LmlzQXJyYXkodGhpcy5hcGlPYmouc291cmNlUXVlc3Rpb25JZCk/IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQuaW5jbHVkZXMoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpIDogY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT09IHRoaXMuYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqW3RoaXMuYXBpT2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgIC8vICBsZXQgdmFsdWUgPXt9O1xuICAgICAgICAgICAgICAgICAgICAgIC8vICB2YWx1ZVsnbmFtZSddID0gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZXM7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYXBpT2JqLnZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGNoYW5nZVZhbHVlLnZhbHVlT2JqLCB0aGlzLmFwaU9iai52YXJpYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZXM/Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXMgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9iajtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlcztcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgLy8gVkQgMjVPY3QyNCAtIFN0b3JlIGZldGNoZWQgb3B0aW9ucyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudW5pcXVlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnVuaXF1ZUtleSwgSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zKSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIGFwaU1ldGE6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBWRCAyMk1heTI0IC0gdXNlZCBjb21tb24gc2VydmljZSBmaWxlXG5cbiAgc2VsZWN0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSBldmVudCA/IGV2ZW50W3RoaXMubGFiZWxGaWVsZF0gPyBldmVudFt0aGlzLmxhYmVsRmllbGRdIDogZXZlbnQ/LnZhbHVlIDogJyc7XG4gICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5yZWZlcmVuY2VGaWVsZDtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IGNoYW5nZX0pO1xuICAgIC8vIG9uY2UgZ290IHZhbHVlIGluIGRyb3Bkb3duIHJlbW92ZSB0aGUgZXJyb3IgdmFsaWRhdGlvblxuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IGZhbHNlO1xuICB9XG50b2dnbGUoKXtcbiAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xufVxuXG5ASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG5vbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICBpZiAodGhpcy5kcm9wZG93bldyYXBwZXIgJiYgIXRoaXMuZHJvcGRvd25XcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgIHRoaXMuc2hvd09wdGlvbnMgPSBmYWxzZTtcbiAgfVxufVxuXG5cbiAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gJyc7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiB7XG4gICAgICBmcm9tUXVlc3Rpb25JZDogdGhpcy5pZCxcbiAgICAgIHZhbHVlT2JqOiAnJyxcbiAgICAgIHJlZmVyZW5jZUZpZWxkOiB0aGlzLnJlZmVyZW5jZUZpZWxkLFxuICAgIH19KTtcbiAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xuICB9XG4gIGlucHV0VmFsdWUoZXZlbnQscXVlcyl7XG4gICAgaWYocXVlcy5zaW5nbGVGaWVsZENoYW5nZSl7XG4gICAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLmlkO1xuICAgICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gZXZlbnQ7XG4gICAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2Ryb3Bkb3duV3JhcHBlciBjbGFzcz1cImRyb3Bkb3duLWNsb3NlXCI+XG4gIDxueHQtaW5wdXQgXG4gIFt0eXBlXT1cIidkcm9wZG93bidcIlxuICBbbW9kZV09XCJtb2RlXCJcbiAgW2Zyb21dPVwiZnJvbVwiXG4gIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgKG9uRm9jdXMpPVwiZ2V0T3B0aW9ucygpXCJcbiAgW2xhYmVsRm9udF09XCJxdWVzdGlvbi5mb250XCJcbiAgW2xhYmVsXT1cInF1ZXN0aW9uPy5xdWVzdGlvblRleHRcIlxuICBbbGFiZWxDb2xvcl09XCJxdWVzdGlvbi5mb250Q29sb3JcIlxuICBbbGFiZWxTaXplXT1cInF1ZXN0aW9uLmZvbnRTaXplXCJcbiAgW2lucHV0VmFsdWVTaXplXT1cInF1ZXN0aW9uLmZvbnRTaXplXCJcbiAgW2xhYmVsV2VpZ2h0XT1cInF1ZXN0aW9uLmZvbnRXZWlnaHRcIlxuICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiXG4gIFtzaG93TGFiZWxdPVwicXVlc3Rpb24uc3R5bGU/LnNob3dMYWJlbFwiXG4gIGlucHV0Qm9yZGVyPVwibm9uZVwiIHN2Z0hlaWdodD1cIjIwcHhcIiBzdmdXaWR0aD1cIjIwcHhcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNPcHRpb25hbFwiIGlucHV0QmdDb2xvcj1cIiNGQUZBRkFcIlxuICBbaW5wdXRJZF09XCJxdWVzdGlvbi50cmFja2luZ0lkXCJcbiAgW2Vycm9yTWVzc2FnZXNdPVwieyByZXF1aXJlZDogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnIH1cIlxuICBbaW5wdXRJY29uTGVmdFNyY109XCJxdWVzdGlvbi5pY29uTGVmdFNyY1wiXG4gICh0b2dnbGVFbWl0KT1cInRvZ2dsZSgpXCJcbiAgKGNsZWFySW5wdXRFbWl0KT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAoaW5wdXRWYWx1ZSk9XCJpbnB1dFZhbHVlKCRldmVudC52YWx1ZSwkZXZlbnQucXVlc3Rpb24pXCJcbiAgPlxuPC9ueHQtaW5wdXQ+XG5cbiAgPCEtLSBTS1MxMUpVTjI1IERyb3Bkb3duIGxpc3QgLS0+XG4gIDx1bCBjbGFzcz1cIm54dC1kcm9wZG93bi1tZW51XCIgKm5nSWY9XCJzaG93T3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiIChtb3VzZWRvd24pPVwic2VsZWN0Q2hhbmdlKGl0ZW0pXCI+XG4gICAgICB7eyBhcGlPYmogJiYgIWFwaU9iai5pc0RlcGVuZGVudEZpZWxkICYmIGl0ZW1bbGFiZWxGaWVsZF0gPyBpdGVtW2xhYmVsRmllbGRdIDogaXRlbT8udmFsdWUgfX1cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG48c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiJdfQ==
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1kcm9wZG93bi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFZLFlBQVksRUFBYyxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCwwQ0FBMEM7QUFDMUMsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQVcxRSxNQUFNLE9BQU8sdUJBQXVCO0lBc0J4QjtJQUNBO0lBdEJELE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsV0FBVyxDQUFTO0lBQ3BCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsV0FBVyxDQUFVO0lBQ3JCLEVBQUUsQ0FBUztJQUNYLFFBQVEsR0FBWSxLQUFLLENBQUMsQ0FBQywrQkFBK0I7SUFDMUQsWUFBWSxDQUFTO0lBQ3JCLEtBQUssQ0FBTTtJQUNYLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsUUFBUSxDQUFNO0lBQ2Qs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WUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBeUs5QixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPcHRpb25hbCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG4vLyBWRCAyM0pBTjI0IHVzZWQgc2VydmljZSBmaWxlIGZvciBjYWxsb3V0XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOeHRJbnB1dCB9IGZyb20gJy4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGFuZ2UvY2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBOeHRDdXN0b21UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZS9jdXN0b20tdHJhbnNsYXRlLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLWRyb3Bkb3duJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE54dElucHV0LCBOeHRDdXN0b21UcmFuc2xhdGVQaXBlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tZHJvcGRvd24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbURyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlOyAvLyBWRCAxMkp1bjI0IC0gcmVhZG9ubHkgY2hhbmdlXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcjogYW55O1xuICBASW5wdXQoKSBmcm9tU2hlbmdlbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55O1xuICBASW5wdXQoKSByZWZlcmVuY2VGaWVsZDogc3RyaW5nO1xuICBASW5wdXQoKSB0b2tlbjogc3RyaW5nOyAgICAvLyBWRCAxOUpBTjI0IC0gZ2V0dGluZyB0b2tlbiBhcyBpbnB1dFxuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAncHJpbnQnID0gJ2VkaXQnOyAvLyBTS1MxMUpVTjI1IE5ldyBtb2RlIGlucHV0XG4gIEBJbnB1dCgpIGZyb206IGFueVxuICAgIFxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25XcmFwcGVyJykgZHJvcGRvd25XcmFwcGVyOiBFbGVtZW50UmVmO1xuICBpbnZhbGlkRmllbGRJZHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgKSB7IFxuICAgIHRoaXMuY2hhbmdlU2VydmljZS5zdWJtaXRWYWxpZGF0ZSQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAvLyB0byBnZXQgdGhlIGVycm9yIG1lc3NhZ2UncyBmaWVsZCBpZCdzXG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcy5wdXNoKGRhdGEpO1xuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgbGFiZWxGaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIHVuaXF1ZUtleTogc3RyaW5nO1xuICBhcGlPYmo6IGFueSA9IHt9O1xuICBzaG93T3B0aW9ucyA9IGZhbHNlO1xuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ21vZGUnXSkge1xuICAgICAgdGhpcy5tb2RlID0gY2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICB0aGlzLnNob3dPcHRpb25zID0gdHJ1ZTtcbiAgICAvL1ZEIDA3QXVnMjQgLSBpc0RlcGVuZGVudEZpZWxkIGNoYW5nZVxuICAgIC8vIFZEIDI1T2N0MjQgLSBjaGFuZ2VzXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgPyB0aGlzLnBsYWNlaG9sZGVyIDogJy0tLVNlbGVjdCBvcHRpb24tLS0nO1xuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIE1TTS0yN01BUjI1IEVuc3VyZSBxdWVzLnN1YlRleHQgaXMgYWx3YXlzIGFuIG9iamVjdCBieSBwYXJzaW5nIGl0IGlmIGl0J3MgYSBzdHJpbmdcbiAgICAgICAgdGhpcy5hcGlPYmogPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBhcGlPYmogYW5kIGFwaU9iai5maWVsZCBhcmUgZGVmaW5lZFxuICAgICAgICBpZiAodGhpcy5hcGlPYmogJiYgdGhpcy5hcGlPYmouZmllbGQpIHtcbiAgICAgICAgICB0aGlzLnNob3dPcHRpb25zID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxhYmVsRmllbGQgPSB0aGlzLmFwaU9iai5maWVsZDtcbiAgICAgICAgICB0aGlzLnVuaXF1ZUtleSA9IHRoaXMuYXBpT2JqLnVuaXF1ZUtleTtcbiAgICAgICAgICBjb25zdCBjYWNoZWRPcHRpb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy51bmlxdWVLZXkpO1xuICAgICAgICAgIGlmIChjYWNoZWRPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBKU09OLnBhcnNlKGNhY2hlZE9wdGlvbnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXBpT2JqLmlzRGVwZW5kZW50RmllbGQpIHtcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZEIDA5U2VwMjQtIHNldHVwIHRoZSBxdWVyeSBwYXJhbSBmb3IgYXBpIGNhbGwgLy8gTVIgMDhKQU4yNCBEZXBlbmRlbnRGaWVsZCBBUEkgRml4IG1vdmVkIGJlbG93IGxvZ2ljIGZyb20gYWJvdmUgaWYgY29uZGl0aW9uXG4gICAgICAgICAgICBsZXQgZnVsbEVuZFBvaW50O1xuICAgICAgICAgICAgaWYgKHRoaXMuYXBpT2JqLmVuZHBvaW50KSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmFwaU9iai5xdWVyeVZhbHVlUmVmZXJlbmNlICYmIHRoaXMuYXBpT2JqLnF1ZXJ5RmllbGQpIHtcbiAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHRoZSBlbmQgcG9pbnQgd2l0aCBxdWVyeSBwYXJhbVxuICAgICAgICAgICAgICAgIGxldCBxdWVyeVJlZmVyZW5jZXMgPSB0aGlzLmFwaU9iai5xdWVyeVZhbHVlUmVmZXJlbmNlLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgbGV0IHF1ZXJ5RmllbGRzID0gdGhpcy5hcGlPYmoucXVlcnlGaWVsZC5zcGxpdCgnLCcpOyAgICAvLyBNUiAwOEpBTjI0IHNpbWlsYXIgdG8gYWJvdmUgdmFsdWVyZWZlcmVuY2UgZ2V0IGxpc3Qgb2YgUVVFUlkgRmllbGRzXG4gICAgICAgICAgICAgICAgbGV0IHF1ZXJ5VmFsdWVzID0gdGhpcy5hcGlPYmoucXVlcnlWYWx1ZS5zcGxpdCgnLCcpOyAgICAvLyBNUiAwOEpBTjI0IHNpbWlsYXIgdG8gYWJvdmUgdmFsdWVyZWZlcmVuY2UgZ2V0IGxpc3Qgb2YgUVVFUlkgVmFsdWVzIChEZWZhdWx0KVxuICAgICAgICAgICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCBxSW5kZXggPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTVIgMDhKQU4yNCBRdWVyeSBJbmRleFxuICAgICAgICAgICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBxdWVyeVJlZmVyZW5jZXMgYW5kIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpbiByZWZlcmVuY2VEYXRhXG4gICAgICAgICAgICAgICAgcXVlcnlSZWZlcmVuY2VzLmZvckVhY2gocmVmZXJlbmNlID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGVsZW1lbnQgaW4gcmVmZXJlbmNlRGF0YSB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgcmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgICAvLyBSUyAwOURFQzI0IENoYW5nZWQga2V5c1xuICAgICAgICAgICAgICAgICAgbGV0IG1hdGNoaW5nRWxlbWVudCA9IHRoaXMucXVlc3Rpb24/LnJlZmVyZW5jZVF1ZXJ5RGF0YS5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5yZWZlcmVuY2VGaWVsZCA9PT0gcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgIC8vIElmIGEgbWF0Y2hpbmcgZWxlbWVudCBpcyBmb3VuZCwgZ2V0IGl0cyBpbnB1dCB2YWx1ZSBhbmQgY3JlYXRlIGEgcXVlcnkgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlICYmIG1hdGNoaW5nRWxlbWVudCkgeyAgIC8vIE1SIDA4SkFOMjQgaWYgcmVmZXJlbmNlIGV4aXN0ICYgbWF0Y2hpbmcgZWxlbWVudCBmb3VuZFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5wdXNoKGAke3F1ZXJ5RmllbGRzW3FJbmRleF19PSR7bWF0Y2hpbmdFbGVtZW50LmlucHV0fWApOyAgICAvLyBNUiAwOEpBTjI0IHJlbW92ZWQgcmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgICB9IGVsc2UgeyAgICAvLyBNUiAwOEpBTjI0IGluY2x1ZGVkIG9wdGlvbiBmb3IgbXVsdGlwbGUgcXVlcnkgcGFyYW1zIGFuZCBkZWZhdWx0IHZhbHVlIGluIGNhc2Ugb2YgcmVmZXJlbmNlIGlzIG5vdCBmb3VuZFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5wdXNoKGAke3F1ZXJ5RmllbGRzW3FJbmRleF19PSR7cXVlcnlWYWx1ZXNbcUluZGV4XX1gKTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcUluZGV4Kys7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZnVsbEVuZFBvaW50ID0gdGhpcy5hcGlPYmouZW5kcG9pbnQgKyAnPycgKyBxdWVyeVBhcmFtcy5qb2luKCcmJyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbm8gcXVlcnkgcGFyYW0gZ2V0IHRoZSBhY3R1YWwgZW5kUG9pbnRcbiAgICAgICAgICAgICAgICBmdWxsRW5kUG9pbnQgPSB0aGlzLmFwaU9iai5lbmRwb2ludDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIFZEIDE5SkFOMjQgLSBhZGRlZCBvbmUgbW9yZSBwYXJhbSBmb3IgYXV0aGVudGljYXRpb25cbiAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShmdWxsRW5kUG9pbnQpPy5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSEEgMTgtSkFOLTI0IEFzc2lnbmVkIGFwaXJlc3BvbnNlIGRpcmVjdGx5IGlmIHdlIGhhdmUgdGhlIHJlc3BvbnNlIGluIGFycmF5IGFsc29cbiAgICAgICAgICAgICAgICAvLyBWRCAxOUpBTjI0IC0gaWYgcmVzcG9uc2UgaGFzIGtleSB3aXRoIHZhbHVlKHdoaWNoIGlzIGFycmF5KVxuICAgICAgICAgICAgICAgIGxldCByZXNwb25zZXM7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXBpT2JqLnZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAvLyBWRCAyMU1heTI0IC0gaGFuZGxpbmcgbXVsdGlwbGUgY2hpbGQgb2JqZWN0c1xuICAgICAgICAgICAgICAgICAgLy8gVkQgMjJNYXkyNCAtIHVzZWQgY29tbW9uIHNlcnZpY2UgZmlsZVxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShhcGlSZXNwb25zZSwgdGhpcy5hcGlPYmoudmFyaWFibGUpO1xuICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgIC8vIEhBIDE5SkFOMjQgVG8gYXZvaWQgdW5kZWZpbmVkIGVycm9yIGluIGNvbnNvbGVcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcG9uc2VzPy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcCA9IHJlc3BvbnNlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3ApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9IGVsc2UgeyAgLy8gVkQgMTlKQU4yNCAtIGlmIHJlc3BvbnNlIGhhcyB2YWx1ZSh3aGljaCBpcyBhcnJheSkgb25seVxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzID0gYXBpUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFZEIDI1T2N0MjQgLSBTdG9yZSBmZXRjaGVkIG9wdGlvbnMgaW4gbG9jYWwgc3RvcmFnZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnVuaXF1ZUtleSkge1xuICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy51bmlxdWVLZXksIEpTT04uc3RyaW5naWZ5KHRoaXMub3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVkQgTk9WMjMgLSBoYW5kbGUgdGhlIGRlcGVuZGVudCB1cGRhdGUgZm9yIGRyb3Bkb3duXG4gICAgICAgICAgICAvLyBWRCAwOVNlcDI0LSBwdXNoIHRoZSBkZXBlbmRlbnQgZmllbGQgdmFsdWVzIGZvciBkcm9wZG93blxuICAgICAgICAgICAgbGV0IHNvdXJjZUlkID0gdGhpcy5hcGlPYmouc291cmNlUXVlc3Rpb25JZDtcbiAgICAgICAgICAgIGlmIChzb3VyY2VJZCAmJiB0aGlzLmFwaU9iai52YXJpYWJsZSB8fCB0aGlzLmFwaU9iai52YWx1ZUZpZWxkKSB7XG4gICAgICAgICAgICAgIC8vIFN1YnNjcmliZSBmb3IgdGhlIGNoYW5nZXNcbiAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGNoYW5nZVZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCAmJiBjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPT0gdW5kZWZpbmVkICYmICggQXJyYXkuaXNBcnJheSh0aGlzLmFwaU9iai5zb3VyY2VRdWVzdGlvbklkKT8gdGhpcy5hcGlPYmouc291cmNlUXVlc3Rpb25JZC5pbmNsdWRlcyhjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCkgOiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gdGhpcy5hcGlPYmouc291cmNlUXVlc3Rpb25JZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbdGhpcy5hcGlPYmoudmFsdWVGaWVsZF07XG4gICAgICAgICAgICAgICAgICAgICAgLy8gIGxldCB2YWx1ZSA9e307XG4gICAgICAgICAgICAgICAgICAgICAgLy8gIHZhbHVlWyduYW1lJ10gPSB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hcGlPYmoudmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoY2hhbmdlVmFsdWUudmFsdWVPYmosIHRoaXMuYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3AgPSByZXNwb25zZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXNwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyA9IGNoYW5nZVZhbHVlLnZhbHVlT2JqO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAvLyBWRCAyNU9jdDI0IC0gU3RvcmUgZmV0Y2hlZCBvcHRpb25zIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy51bmlxdWVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMudW5pcXVlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgYXBpTWV0YTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIFZEIDIyTWF5MjQgLSB1c2VkIGNvbW1vbiBzZXJ2aWNlIGZpbGVcblxuICBzZWxlY3RDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpOyAvLyBDaGFuZ2VXcmFwcGVyID0gSlNPTi5wYXJzZSgne30nKTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLmlkO1xuICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IGV2ZW50ID8gZXZlbnRbdGhpcy5sYWJlbEZpZWxkXSA/IGV2ZW50W3RoaXMubGFiZWxGaWVsZF0gOiBldmVudD8udmFsdWUgOiAnJztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgLy8gb25jZSBnb3QgdmFsdWUgaW4gZHJvcGRvd24gcmVtb3ZlIHRoZSBlcnJvciB2YWxpZGF0aW9uXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmludmFsaWRGaWVsZElkcyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XG4gIH1cbnRvZ2dsZSgpe1xuICB0aGlzLnNob3dPcHRpb25zID0gIXRoaXMuc2hvd09wdGlvbnM7XG59XG5cbkBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbm9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gIGlmICh0aGlzLmRyb3Bkb3duV3JhcHBlciAmJiAhdGhpcy5kcm9wZG93bldyYXBwZXIubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgdGhpcy5zaG93T3B0aW9ucyA9IGZhbHNlO1xuICB9XG59XG5cblxuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSAnJztcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogdGhpcy5xdWVzdGlvbiwgdmFsdWU6IHtcbiAgICAgIGZyb21RdWVzdGlvbklkOiB0aGlzLmlkLFxuICAgICAgdmFsdWVPYmo6ICcnLFxuICAgICAgcmVmZXJlbmNlRmllbGQ6IHRoaXMucmVmZXJlbmNlRmllbGQsXG4gICAgfX0pO1xuICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzID0gW107XG4gIH1cbiAgaW5wdXRWYWx1ZShldmVudCxxdWVzKXtcbiAgICBpZihxdWVzLnNpbmdsZUZpZWxkQ2hhbmdlKXtcbiAgICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpOyAvLyBDaGFuZ2VXcmFwcGVyID0gSlNPTi5wYXJzZSgne30nKTtcbiAgICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMuaWQ7XG4gICAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSBldmVudDtcbiAgICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucmVmZXJlbmNlRmllbGQ7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogcXVlcywgdmFsdWU6IGNoYW5nZX0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjZHJvcGRvd25XcmFwcGVyIGNsYXNzPVwiZHJvcGRvd24tY2xvc2VcIj5cbiAgPG54dC1pbnB1dCBcbiAgW3R5cGVdPVwiJ2Ryb3Bkb3duJ1wiXG4gIFttb2RlXT1cIm1vZGVcIlxuICBbZnJvbV09XCJmcm9tXCJcbiAgW3ZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIlxuICAob25Gb2N1cyk9XCJnZXRPcHRpb25zKClcIlxuICBbbGFiZWxGb250XT1cInF1ZXN0aW9uPy5mb250XCJcbiAgW2xhYmVsXT1cInF1ZXN0aW9uPy5xdWVzdGlvblRleHQgPyAoKHF1ZXN0aW9uPy5pZCsnLnF1ZXN0aW9uVGV4dCcpIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogcXVlc3Rpb24/LnF1ZXN0aW9uVGV4dCkgOiAnJ1wiXG4gIFtsYWJlbENvbG9yXT1cInF1ZXN0aW9uPy5mb250Q29sb3JcIlxuICBbbGFiZWxTaXplXT1cInF1ZXN0aW9uPy5mb250U2l6ZVwiXG4gIFtpbnB1dFZhbHVlU2l6ZV09XCJxdWVzdGlvbj8uZm9udFNpemVcIlxuICBbbGFiZWxXZWlnaHRdPVwicXVlc3Rpb24/LmZvbnRXZWlnaHRcIlxuICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24/LmZvbnRXZWlnaHRcIlxuICBbc2hvd0xhYmVsXT1cInF1ZXN0aW9uPy5zdHlsZT8uc2hvd0xhYmVsXCJcbiAgaW5wdXRCb3JkZXI9XCJub25lXCIgc3ZnSGVpZ2h0PVwiMjBweFwiIHN2Z1dpZHRoPVwiMjBweFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtyZXF1aXJlZF09XCJxdWVzdGlvbj8uaXNPcHRpb25hbFwiIFtpbnB1dEJnQ29sb3JdPVwiIGZyb20gPT09ICdub3JtYWxEcm9wRG93bicgPyAnI2VmZjhmZicgOiAnI0ZBRkFGQSdcIlxuICBbaW5wdXRJZF09XCJxdWVzdGlvbj8udHJhY2tpbmdJZFwiXG4gIFtlcnJvck1lc3NhZ2VzXT1cInsgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyB9XCJcbiAgW2lucHV0SWNvbkxlZnRTcmNdPVwicXVlc3Rpb24/Lmljb25MZWZ0U3JjXCJcbiAgKHRvZ2dsZUVtaXQpPVwidG9nZ2xlKClcIlxuICAoY2xlYXJJbnB1dEVtaXQpPVwiY2xlYXJTZWxlY3Rpb24oKVwiXG4gIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXG4gIChpbnB1dFZhbHVlKT1cImlucHV0VmFsdWUoJGV2ZW50LnZhbHVlLCRldmVudC5xdWVzdGlvbilcIlxuICA+XG48L254dC1pbnB1dD5cblxuICA8IS0tIFNLUzExSlVOMjUgRHJvcGRvd24gbGlzdCAtLT5cbiAgPHVsIGNsYXNzPVwibnh0LWRyb3Bkb3duLW1lbnVcIiAqbmdJZj1cInNob3dPcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCIgKG1vdXNlZG93bik9XCJzZWxlY3RDaGFuZ2UoaXRlbSlcIj5cbiAgICAgIHt7IGFwaU9iaiAmJiAhYXBpT2JqLmlzRGVwZW5kZW50RmllbGQgJiYgaXRlbVtsYWJlbEZpZWxkXSA/IGl0ZW1bbGFiZWxGaWVsZF0gOiBpdGVtPy52YWx1ZSB9fVxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbjxzcGFuICpuZ0lmPVwiZXJyb3IgfHwgaW52YWxpZEZpZWxkSWRzLmluY2x1ZGVzKGlkKVwiIGNsYXNzPVwiZXJyb3ItbXNnXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { NxtCustomTranslatePipe } from "../../pipe/custom-translate.pipe";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/common";
|
|
5
6
|
export class CustomModelComponent {
|
|
@@ -26,13 +27,14 @@ export class CustomModelComponent {
|
|
|
26
27
|
this.saveButtonEmit.emit();
|
|
27
28
|
}
|
|
28
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomModelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomModelComponent, isStandalone: true, selector: "app-custom-model", inputs: { modalTitle: "modalTitle", isModalOpen: "isModalOpen", modalSize: "modalSize", saveButtonValue: "saveButtonValue", modalFooter: "modalFooter" }, outputs: { saveButtonEmit: "saveButtonEmit", cancelButtonEmit: "cancelButtonEmit" }, ngImport: i0, template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">Cancel</button>\n <button (click)=\"onSave()\">{{ saveButtonValue }}</button>\n </div>\n </div>\n</div>\n ", styles: [".modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:5% auto;padding:20px;border:1px solid #888;width:70%;max-width:90%;max-height:80vh;overflow-y:auto}.modal-header,.modal-footer{padding:10px;text-align:center;display:block}.modal-body{max-height:60vh;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-footer button{padding:10px 20px;margin:5px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#f5f5f5;color:#333}.modal-footer button:hover{background-color:#e0e0e0;border-color:#bbb}@media (max-width: 768px){.modal-content{width:90%;margin:10% auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomModelComponent, isStandalone: true, selector: "app-custom-model", inputs: { modalTitle: "modalTitle", isModalOpen: "isModalOpen", modalSize: "modalSize", saveButtonValue: "saveButtonValue", modalFooter: "modalFooter" }, outputs: { saveButtonEmit: "saveButtonEmit", cancelButtonEmit: "cancelButtonEmit" }, ngImport: i0, template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">{{\"CANCEL\" | nxtCustomTranslate : 'Cancel'}}</button>\n <button (click)=\"onSave()\">{{ saveButtonValue }}</button>\n </div>\n </div>\n</div>\n ", styles: [".modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:5% auto;padding:20px;border:1px solid #888;width:70%;max-width:90%;max-height:80vh;overflow-y:auto}.modal-header,.modal-footer{padding:10px;text-align:center;display:block}.modal-body{max-height:60vh;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-footer button{padding:10px 20px;margin:5px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#f5f5f5;color:#333}.modal-footer button:hover{background-color:#e0e0e0;border-color:#bbb}@media (max-width: 768px){.modal-content{width:90%;margin:10% auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
|
|
30
31
|
}
|
|
31
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomModelComponent, decorators: [{
|
|
32
33
|
type: Component,
|
|
33
34
|
args: [{ selector: 'app-custom-model', standalone: true, imports: [
|
|
34
35
|
CommonModule,
|
|
35
|
-
|
|
36
|
+
NxtCustomTranslatePipe
|
|
37
|
+
], template: "<div *ngIf=\"isModalOpen\" class=\"modal\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <span class=\"close\" (click)=\"onCancel()\">×</span>\n <h2>{{ modalTitle }}</h2>\n </div>\n <div class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <!-- /* VD 06Sep24 styling changes */-->\n <div class=\"modal-footer\" *ngIf=\"modalFooter\">\n <button (click)=\"onCancel()\">{{\"CANCEL\" | nxtCustomTranslate : 'Cancel'}}</button>\n <button (click)=\"onSave()\">{{ saveButtonValue }}</button>\n </div>\n </div>\n</div>\n ", styles: [".modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:5% auto;padding:20px;border:1px solid #888;width:70%;max-width:90%;max-height:80vh;overflow-y:auto}.modal-header,.modal-footer{padding:10px;text-align:center;display:block}.modal-body{max-height:60vh;overflow-y:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-footer button{padding:10px 20px;margin:5px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#f5f5f5;color:#333}.modal-footer button:hover{background-color:#e0e0e0;border-color:#bbb}@media (max-width: 768px){.modal-content{width:90%;margin:10% auto}}\n"] }]
|
|
36
38
|
}], ctorParameters: () => [], propDecorators: { modalTitle: [{
|
|
37
39
|
type: Input
|
|
38
40
|
}], isModalOpen: [{
|
|
@@ -48,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
48
50
|
}], cancelButtonEmit: [{
|
|
49
51
|
type: Output
|
|
50
52
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RlbC9jdXN0b20tbW9kZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGVsL2N1c3RvbS1tb2RlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBWTFFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsZ0JBQWdCLENBQUM7SUFDUixVQUFVLENBQU07SUFDaEIsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNwQixTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsZUFBZSxHQUFHLE1BQU0sQ0FBQztJQUN6QixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3pDLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFckQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUdELFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7d0dBN0JVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJUQ2RqQywwb0JBZ0JFLHEyQkRSRSxZQUFZLDROQUNaLHNCQUFzQjs7NEZBS2Isb0JBQW9CO2tCQVZoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixzQkFBc0I7cUJBQ3pCO3dEQU9VLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE54dEN1c3RvbVRyYW5zbGF0ZVBpcGUgfSBmcm9tIFwiLi4vLi4vcGlwZS9jdXN0b20tdHJhbnNsYXRlLnBpcGVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1tb2RlbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTnh0Q3VzdG9tVHJhbnNsYXRlUGlwZVxuXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1tb2RlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1tb2RlbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIEBJbnB1dCgpIG1vZGFsVGl0bGU6IGFueTtcbiAgQElucHV0KCkgaXNNb2RhbE9wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kYWxTaXplID0gJyc7XG4gIEBJbnB1dCgpIHNhdmVCdXR0b25WYWx1ZSA9ICdTYXZlJztcbiAgQElucHV0KCkgbW9kYWxGb290ZXIgPSB0cnVlO1xuICBAT3V0cHV0KCkgc2F2ZUJ1dHRvbkVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbEJ1dHRvbkVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBvblNhdmUoKSB7XG4gICAgdGhpcy5zYXZlQnV0dG9uRW1pdC5lbWl0KCk7XG4gIH1cblxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbEJ1dHRvbkVtaXQuZW1pdCgpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25FbWl0LmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgc2F2ZU1vZGFsKCkge1xuICAgIHRoaXMuc2F2ZUJ1dHRvbkVtaXQuZW1pdCgpO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc01vZGFsT3BlblwiIGNsYXNzPVwibW9kYWxcIiBbbmdDbGFzc109XCJtb2RhbFNpemVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICA8aDI+e3sgbW9kYWxUaXRsZSB9fTwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSAvKiBWRCAwNlNlcDI0IHN0eWxpbmcgY2hhbmdlcyAqLy0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiICpuZ0lmPVwibW9kYWxGb290ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWwoKVwiPnt7XCJDQU5DRUxcIiB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdDYW5jZWwnfX08L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25TYXZlKClcIj57eyBzYXZlQnV0dG9uVmFsdWUgfX08L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4gICJdfQ==
|
|
@@ -2,14 +2,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { ChangeWrapper } from '../../model/changeWrapper';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/change.service";
|
|
6
|
-
import * as i2 from "../../services/data.service";
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "@angular/common";
|
|
5
|
+
import * as i1 from "../../services/change/change.service";
|
|
6
|
+
import * as i2 from "../../services/data/data.service";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
9
8
|
export class CustomRadioComponent {
|
|
10
9
|
changeService;
|
|
11
10
|
dataService;
|
|
12
|
-
i18nService;
|
|
13
11
|
options = [];
|
|
14
12
|
question = {};
|
|
15
13
|
apiMeta;
|
|
@@ -32,10 +30,9 @@ export class CustomRadioComponent {
|
|
|
32
30
|
isSaveHovered = false;
|
|
33
31
|
isDiscardHovered = false;
|
|
34
32
|
value;
|
|
35
|
-
constructor(changeService, dataService
|
|
33
|
+
constructor(changeService, dataService) {
|
|
36
34
|
this.changeService = changeService;
|
|
37
35
|
this.dataService = dataService;
|
|
38
|
-
this.i18nService = i18nService;
|
|
39
36
|
this.changeService.submitValidate$.subscribe((data) => {
|
|
40
37
|
this.invalidFieldIds.push(data);
|
|
41
38
|
});
|
|
@@ -119,15 +116,15 @@ export class CustomRadioComponent {
|
|
|
119
116
|
this.viewEdit = false; // SKS11JUN25 Exit view edit mode
|
|
120
117
|
this.mode = 'view'; // Switch back to view mode
|
|
121
118
|
}
|
|
122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }
|
|
123
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CustomRadioComponent, isStandalone: true, selector: "app-custom-radio", inputs: { options: "options", question: "question", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", referenceField: "referenceField", token: "token", mode: "mode" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- AP26MAR25 Mark as checked if it matches the selected value -->\n<div class=\" hover-wrapper custom-radio-container\">\n <div\n style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; padding-left: 5px; padding-right: 5px; background-color: #FAFAFA; border-radius: 5px;\">\n @if(mode === 'edit'){\n <div>\n <div *ngFor=\"let option of options\"\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\">\n\n <input type=\"radio\" [id]=\"apiMeta ? option[labelField] ?? option.value : option.value\"\n [checked]=\"(selectedValue ?? '') == option.value\" [name]=\"id\" [value]=\"selectedValue\"\n (change)=\"radioChange($event)\" />\n <label class=\"nxt-radio-label\" [for]=\"apiMeta ? option[labelField] ?? option.value : option.value\">\n {{ apiMeta ? option[labelField] ?? option.value : option.value }}\n </label>\n </div>\n </div>\n }\n <div *ngIf=\"viewEdit\" class=\"flex\" style=\"display: flex; margin-left: auto;\">\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n </div>\n @if(mode !== 'edit') {\n <div class=\"flex content-space-between\">\n <div>{{selectedValue || '-'}}</div>\n <div>\n <svg *ngIf=\"!question.isReadOnly && !viewEdit \" class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\"\n height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n </div>\n </div>\n }\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">\n {{ errorMessage ?? 'Invalid selection' }}\n </span>\n</div>", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type:
|
|
119
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, deps: [{ token: i1.ChangeService }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CustomRadioComponent, isStandalone: true, selector: "app-custom-radio", inputs: { options: "options", question: "question", apiMeta: "apiMeta", selectedValue: "selectedValue", progressBar: "progressBar", id: "id", readOnly: "readOnly", errorMessage: "errorMessage", error: "error", fromShengel: "fromShengel", referenceField: "referenceField", token: "token", mode: "mode" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- AP26MAR25 Mark as checked if it matches the selected value -->\n<div class=\" hover-wrapper custom-radio-container\">\n <div\n style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; padding-left: 5px; padding-right: 5px; background-color: #FAFAFA; border-radius: 5px;\">\n @if(mode === 'edit'){\n <div>\n <div *ngFor=\"let option of options\"\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\">\n\n <input type=\"radio\" [id]=\"apiMeta ? option[labelField] ?? option.value : option.value\"\n [checked]=\"(selectedValue ?? '') == option.value\" [name]=\"id\" [value]=\"selectedValue\"\n (change)=\"radioChange($event)\" />\n <label class=\"nxt-radio-label\" [for]=\"apiMeta ? option[labelField] ?? option.value : option.value\">\n {{ apiMeta ? option[labelField] ?? option.value : option.value }}\n </label>\n </div>\n </div>\n }\n <div *ngIf=\"viewEdit\" class=\"flex\" style=\"display: flex; margin-left: auto;\">\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n </div>\n @if(mode !== 'edit') {\n <div class=\"flex content-space-between\">\n <div>{{selectedValue || '-'}}</div>\n <div>\n <svg *ngIf=\"!question.isReadOnly && !viewEdit \" class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\"\n height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n </div>\n </div>\n }\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">\n {{ errorMessage ?? 'Invalid selection' }}\n </span>\n</div>", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
124
121
|
}
|
|
125
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomRadioComponent, decorators: [{
|
|
126
123
|
type: Component,
|
|
127
124
|
args: [{ selector: 'app-custom-radio', standalone: true, imports: [
|
|
128
125
|
CommonModule,
|
|
129
126
|
], template: "<!-- AP26MAR25 Mark as checked if it matches the selected value -->\n<div class=\" hover-wrapper custom-radio-container\">\n <div\n style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; padding-left: 5px; padding-right: 5px; background-color: #FAFAFA; border-radius: 5px;\">\n @if(mode === 'edit'){\n <div>\n <div *ngFor=\"let option of options\"\n [class]=\"invalidFieldIds.includes(id) || error ? 'custom-radio-option invalid' : 'custom-radio-option'\">\n\n <input type=\"radio\" [id]=\"apiMeta ? option[labelField] ?? option.value : option.value\"\n [checked]=\"(selectedValue ?? '') == option.value\" [name]=\"id\" [value]=\"selectedValue\"\n (change)=\"radioChange($event)\" />\n <label class=\"nxt-radio-label\" [for]=\"apiMeta ? option[labelField] ?? option.value : option.value\">\n {{ apiMeta ? option[labelField] ?? option.value : option.value }}\n </label>\n </div>\n </div>\n }\n <div *ngIf=\"viewEdit\" class=\"flex\" style=\"display: flex; margin-left: auto;\">\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n </div>\n @if(mode !== 'edit') {\n <div class=\"flex content-space-between\">\n <div>{{selectedValue || '-'}}</div>\n <div>\n <svg *ngIf=\"!question.isReadOnly && !viewEdit \" class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\"\n height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n </div>\n </div>\n }\n <span *ngIf=\"error || invalidFieldIds.includes(id)\" class=\"error-msg\">\n {{ errorMessage ?? 'Invalid selection' }}\n </span>\n</div>", styles: [".custom-radio-option{display:flex;flex-direction:row;margin-bottom:5px}input[type=radio]{width:auto}.nxt-radio-label{margin-left:15px;margin-bottom:0}.custom-radio-option.invalid label{color:red}.error-msg{color:red;font-size:12px;margin-top:5px}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}\n"] }]
|
|
130
|
-
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }
|
|
127
|
+
}], ctorParameters: () => [{ type: i1.ChangeService }, { type: i2.DataService }], propDecorators: { options: [{
|
|
131
128
|
type: Input
|
|
132
129
|
}], question: [{
|
|
133
130
|
type: Input
|
|
@@ -156,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
156
153
|
}], valueChange: [{
|
|
157
154
|
type: Output
|
|
158
155
|
}] } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFXL0MsTUFBTSxPQUFPLG9CQUFvQjtJQTJCckI7SUFDQTtJQUNEO0lBM0JBLE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFRLEVBQUUsQ0FBQTtJQUNsQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFlBQVksQ0FBUztJQUNyQixLQUFLLENBQU07SUFDWCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixLQUFLLENBQVM7SUFDZCxJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQjtJQUMxRCxXQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkUsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUMzQixhQUFhLENBQU0sQ0FBQyxzRUFBc0U7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LG9CQUFvQiwwYkNsQmpDLDZ5UUEwRU0sc1lEN0RGLFlBQVk7OzRGQUtILG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2I7c0lBTVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXJhZGlvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1yYWRpby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fVxuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IHN0cmluZztcbiAgQElucHV0KCkgcHJvZ3Jlc3NCYXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcjogYW55O1xuICBASW5wdXQoKSBmcm9tU2hlbmdlbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2VGaWVsZDogc3RyaW5nO1xuICBASW5wdXQoKSB0b2tlbjogc3RyaW5nO1xuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAncHJpbnQnID0gJ2VkaXQnOyAvLyBOZXcgbW9kZSBpbnB1dFxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGludmFsaWRGaWVsZElkczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgbGFiZWxGaWVsZDogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVGaWVsZDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgb3JpZ2luYWxWYWx1ZTogYW55OyAvLyBTS1MxMUpVTjI1IFRvIHN0b3JlIHRoZSBvcmlnaW5hbCB2YWx1ZSB3aGVuIGVudGVyaW5nIHZpZXcgZWRpdCBtb2RlXG4gIGlzU2F2ZUhvdmVyZWQgPSBmYWxzZTtcbiAgaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlO1xuICB2YWx1ZTogQ2hhbmdlV3JhcHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNoYW5nZVNlcnZpY2Uuc3VibWl0VmFsaWRhdGUkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcbiAgICB9KTtcbiAgfVxuICB2aWV3RWRpdDogYm9vbGVhbiA9IGZhbHNlIFxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFZEIDMxTk9WMjQgbnVsbCBjaGVja1xuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgICAgdGhpcy5sYWJlbEZpZWxkID0gYXBpT2JqLmZpZWxkO1xuXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVJlc3BvbnNlKGFwaU9iai5lbmRwb2ludCk/LnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgaWYgKGFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIGFwaU9iai52YXJpYWJsZSk7XG4gICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3ApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlcztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iai5zb3VyY2VRdWVzdGlvbklkO1xuICAgICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogIT09IHVuZGVmaW5lZCAmJiAoIEFycmF5LmlzQXJyYXkoYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpPyBhcGlPYmouc291cmNlUXVlc3Rpb25JZC5pbmNsdWRlcyhjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCkgOiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbYXBpT2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHt9O1xuICAgICAgICAgICAgICAgIHZhbHVlWyduYW1lJ10gPSB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpb0NoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmFkaW9DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gZXZlbnQudGFyZ2V0Py5pZCA/IGV2ZW50LnRhcmdldD8uaWQgOiAnJztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgIC8vIFNLUzExSlVOMjUgT25seSBlbWl0IHRoZSB2YWx1ZSBpZiBub3QgaW4gdmlldyBlZGl0IG1vZGVcbiAgICBpZiAoIXRoaXMudmlld0VkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzID0gW107XG4gICAgfVxuICB9XG4gIHZpZXdFZGl0Q2xpY2socXVlczogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gcXVlcy5pbnB1dDsgLy8gU0tTMTFKVU4yNSBTdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gdHJ1ZTsgLy8gRW50ZXIgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XG4gIH1cbiAgZGlzY2FyZENoYW5nZXMoKSB7XG4gICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlOyAvLyBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLm9yaWdpbmFsVmFsdWU7IC8vIFNLUzExSlVOMjUgUmVzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgfVxuICBzYXZlQ2hhbmdlcygpIHtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIGxldCBjaGFuZ2U6IGFueSA9e307XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLnZhbHVlO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTsgLy8gRW1pdCB0aGUgdXBkYXRlZCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gU0tTMTFKVU4yNSBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgfVxufVxuIiwiPCEtLSBBUDI2TUFSMjUgIE1hcmsgYXMgY2hlY2tlZCBpZiBpdCBtYXRjaGVzIHRoZSBzZWxlY3RlZCB2YWx1ZSAtLT5cbjxkaXYgY2xhc3M9XCIgaG92ZXItd3JhcHBlciBjdXN0b20tcmFkaW8tY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOyBwYWRkaW5nLWxlZnQ6IDVweDsgcGFkZGluZy1yaWdodDogNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQUZBOyBib3JkZXItcmFkaXVzOiA1cHg7XCI+XG4gICAgQGlmKG1vZGUgPT09ICdlZGl0Jyl7XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgW2NsYXNzXT1cImludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZCkgfHwgZXJyb3IgPyAnY3VzdG9tLXJhZGlvLW9wdGlvbiBpbnZhbGlkJyA6ICdjdXN0b20tcmFkaW8tb3B0aW9uJ1wiPlxuXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbaWRdPVwiYXBpTWV0YSA/IG9wdGlvbltsYWJlbEZpZWxkXSA/PyBvcHRpb24udmFsdWUgOiBvcHRpb24udmFsdWVcIlxuICAgICAgICAgIFtjaGVja2VkXT1cIihzZWxlY3RlZFZhbHVlID8/ICcnKSA9PSBvcHRpb24udmFsdWVcIiBbbmFtZV09XCJpZFwiIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInJhZGlvQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJueHQtcmFkaW8tbGFiZWxcIiBbZm9yXT1cImFwaU1ldGEgPyBvcHRpb25bbGFiZWxGaWVsZF0gPz8gb3B0aW9uLnZhbHVlIDogb3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAge3sgYXBpTWV0YSA/IG9wdGlvbltsYWJlbEZpZWxkXSA/PyBvcHRpb24udmFsdWUgOiBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiBjbGFzcz1cImZsZXhcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IG1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxuICAgICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0ICYmIG9yaWdpbmFsVmFsdWUgIT09IHZhbHVlXCIgKG1vdXNlZW50ZXIpPVwiaXNTYXZlSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc1NhdmVIb3ZlcmVkID0gZmFsc2VcIlxuICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNTYXZlSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTUuOTUwMiAwLjVDOC45NjAwNiAwLjUwMDEwNiAxMS40MDA0IDIuOTQwMzEgMTEuNDAwNCA1Ljk1MDJDMTEuNDAwMyA4Ljk1OTk5IDguOTU5OTkgMTEuNDAwMyA1Ljk1MDIgMTEuNDAwNEMyLjk0MDMxIDExLjQwMDQgMC41MDAxMDYgOC45NjAwNiAwLjUgNS45NTAyQzAuNSAyLjk0MDI0IDIuOTQwMjQgMC41IDUuOTUwMiAwLjVaXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiIzgzN0Y4RVwiIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTguODgxMTEgMy44NDU4M0M4LjgzMjY5IDMuNzk3MiA4Ljc3NTEzIDMuNzU4NiA4LjcxMTc2IDMuNzMyMjdDOC42NDgzOCAzLjcwNTk0IDguNTgwNDMgMy42OTIzOCA4LjUxMTggMy42OTIzOEM4LjQ0MzE3IDMuNjkyMzggOC4zNzUyMSAzLjcwNTk0IDguMzExODQgMy43MzIyN0M4LjI0ODQ2IDMuNzU4NiA4LjE5MDkxIDMuNzk3MiA4LjE0MjQ5IDMuODQ1ODNMNC44MjY5IDcuMTYzNDdMMy4zNTI1MyA1LjY4OTFDMy4zMDQwMyA1LjY0MDYgMy4yNDY0NiA1LjYwMjEzIDMuMTgzMDkgNS41NzU4OEMzLjExOTcyIDUuNTQ5NjQgMy4wNTE4MSA1LjUzNjEzIDIuOTgzMjIgNS41MzYxM0MyLjkxNDYzIDUuNTM2MTMgMi44NDY3MiA1LjU0OTY0IDIuNzgzMzUgNS41NzU4OEMyLjcxOTk5IDUuNjAyMTMgMi42NjI0MSA1LjY0MDYgMi42MTM5MSA1LjY4OTFDMi41NjU0MSA1LjczNzYgMi41MjY5NCA1Ljc5NTE4IDIuNTAwNjkgNS44NTg1NEMyLjQ3NDQ1IDUuOTIxOTEgMi40NjA5NCA1Ljk4OTgyIDIuNDYwOTQgNi4wNTg0MUMyLjQ2MDk0IDYuMTI3IDIuNDc0NDUgNi4xOTQ5MSAyLjUwMDY5IDYuMjU4MjhDMi41MjY5NCA2LjMyMTY1IDIuNTY1NDEgNi4zNzkyMiAyLjYxMzkxIDYuNDI3NzJMNC40NTY3NyA4LjI3MDU4QzQuNTA1MTkgOC4zMTkyMiA0LjU2Mjc0IDguMzU3ODEgNC42MjYxMiA4LjM4NDE0QzQuNjg5NSA4LjQxMDQ3IDQuNzU3NDUgOC40MjQwMyA0LjgyNjA4IDguNDI0MDNDNC44OTQ3MSA4LjQyNDAzIDQuOTYyNjYgOC40MTA0NyA1LjAyNjA0IDguMzg0MTRDNS4wODk0MiA4LjM1NzgxIDUuMTQ2OTcgOC4zMTkyMiA1LjE5NTM5IDguMjcwNThMOC44ODExMSA0LjU4NDQ1QzguOTI5NzQgNC41MzYwMyA4Ljk2ODM0IDQuNDc4NDggOC45OTQ2NyA0LjQxNTFDOS4wMjEgNC4zNTE3MyA5LjAzNDU2IDQuMjgzNzcgOS4wMzQ1NiA0LjIxNTE0QzkuMDM0NTYgNC4xNDY1MSA5LjAyMSA0LjA3ODU2IDguOTk0NjcgNC4wMTUxOEM4Ljk2ODM0IDMuOTUxOCA4LjkyOTc0IDMuODk0MjUgOC44ODExMSAzLjg0NTgzWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjODM3RjhFXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc1NhdmVIb3ZlcmVkXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1IDEyLjgwMDRDOS4yMzYwOSAxMi44MDA0IDExLjkgMTAuMTM2NSAxMS45IDYuODUwMzlDMTEuOSAzLjU2NDMgOS4yMzYwOSAwLjkwMDM5MSA1Ljk1IDAuOTAwMzkxQzIuNjYzOTEgMC45MDAzOTEgMCAzLjU2NDMgMCA2Ljg1MDM5QzAgMTAuMTM2NSAyLjY2MzkxIDEyLjgwMDQgNS45NSAxMi44MDA0WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjU5NTY2XCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSA0Ljc0NjIyQzguODMyNjkgNC42OTc1OSA4Ljc3NTEzIDQuNjU4OTkgOC43MTE3NiA0LjYzMjY2QzguNjQ4MzggNC42MDYzMyA4LjU4MDQzIDQuNTkyNzcgOC41MTE4IDQuNTkyNzdDOC40NDMxNyA0LjU5Mjc3IDguMzc1MjEgNC42MDYzMyA4LjMxMTg0IDQuNjMyNjZDOC4yNDg0NiA0LjY1ODk5IDguMTkwOTEgNC42OTc1OSA4LjE0MjQ5IDQuNzQ2MjJMNC44MjY5IDguMDYzODZMMy4zNTI1MyA2LjU4OTQ5QzMuMzA0MDMgNi41NDA5OSAzLjI0NjQ2IDYuNTAyNTIgMy4xODMwOSA2LjQ3NjI3QzMuMTE5NzIgNi40NTAwMyAzLjA1MTgxIDYuNDM2NTIgMi45ODMyMiA2LjQzNjUyQzIuOTE0NjMgNi40MzY1MiAyLjg0NjcyIDYuNDUwMDMgMi43ODMzNSA2LjQ3NjI3QzIuNzE5OTkgNi41MDI1MiAyLjY2MjQxIDYuNTQwOTkgMi42MTM5MSA2LjU4OTQ5QzIuNTY1NDEgNi42Mzc5OSAyLjUyNjk0IDYuNjk1NTcgMi41MDA2OSA2Ljc1ODkzQzIuNDc0NDUgNi44MjIzIDIuNDYwOTQgNi44OTAyMiAyLjQ2MDk0IDYuOTU4OEMyLjQ2MDk0IDcuMDI3MzkgMi40NzQ0NSA3LjA5NTMxIDIuNTAwNjkgNy4xNTg2N0MyLjUyNjk0IDcuMjIyMDQgMi41NjU0MSA3LjI3OTYxIDIuNjEzOTEgNy4zMjgxMUw0LjQ1Njc3IDkuMTcwOTdDNC41MDUxOSA5LjIxOTYxIDQuNTYyNzQgOS4yNTgyIDQuNjI2MTIgOS4yODQ1M0M0LjY4OTUgOS4zMTA4NiA0Ljc1NzQ1IDkuMzI0NDIgNC44MjYwOCA5LjMyNDQyQzQuODk0NzEgOS4zMjQ0MiA0Ljk2MjY2IDkuMzEwODYgNS4wMjYwNCA5LjI4NDUzQzUuMDg5NDIgOS4yNTgyIDUuMTQ2OTcgOS4yMTk2MSA1LjE5NTM5IDkuMTcwOTdMOC44ODExMSA1LjQ4NDg0QzguOTI5NzQgNS40MzY0MiA4Ljk2ODM0IDUuMzc4ODcgOC45OTQ2NyA1LjMxNTQ5QzkuMDIxIDUuMjUyMTIgOS4wMzQ1NiA1LjE4NDE2IDkuMDM0NTYgNS4xMTU1M0M5LjAzNDU2IDUuMDQ2OSA5LjAyMSA0Ljk3ODk1IDguOTk0NjcgNC45MTU1N0M4Ljk2ODM0IDQuODUyMiA4LjkyOTc0IDQuNzk0NjUgOC44ODExMSA0Ljc0NjIyWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXQgJiYgb3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWVcIiAobW91c2VlbnRlcik9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZVwiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNEaXNjYXJkSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC4wMDg4M0w1Ljk0IDUuMTI0MzhMNC44MjQ0NSA0LjAwODgzQzQuNTc4NjEgMy43NjI5OSA0LjE4MTkxIDMuNzYyOTkgMy45MzYwNyA0LjAwODgzQzMuNjkwMjMgNC4yNTQ2NyAzLjY5MDIzIDQuNjUxMzcgMy45MzYwNyA0Ljg5NzIxTDUuMDUxNjIgNi4wMTI3NkwzLjkzNjA3IDcuMTI4MzFDMy42OTAyMyA3LjM3NDE1IDMuNjkwMjMgNy43NzA4NSAzLjkzNjA3IDguMDE2NjlDNC4xODE5MSA4LjI2MjUzIDQuNTc4NjEgOC4yNjI1MyA0LjgyNDQ1IDguMDE2NjlMNS45NCA2LjkwMTE0TDcuMDU1NTUgOC4wMTY2OUM3LjMwMTM5IDguMjYyNTMgNy42OTgwOSA4LjI2MjUzIDcuOTQzOTMgOC4wMTY2OUM4LjE4OTc3IDcuNzcwODUgOC4xODk3NyA3LjM3NDE1IDcuOTQzOTMgNy4xMjgzMUw2LjgyODM4IDYuMDEyNzZMNy45NDM5MyA0Ljg5NzIxQzguMTg5NzcgNC42NTEzNyA4LjE4OTc3IDQuMjU0NjcgNy45NDM5MyA0LjAwODgzQzcuNjk4MDkgMy43NzI4NSA3LjMwMDIxIDMuNzcyODUgNy4wNTU1NSA0LjAwODgzWk01Ljk0IDAuMDgyMDMxMkMyLjcwMDE3IDAuMDgyMDMxMiAwLjA4MDg1OTQgMi43MDEzNCAwLjA4MDg1OTQgNS45NDExOEMwLjA4MDg1OTQgOS4xODEwMSAyLjcwMDE3IDExLjgwMDMgNS45NCAxMS44MDAzQzkuMTc5ODMgMTEuODAwMyAxMS43OTkxIDkuMTgxMDEgMTEuNzk5MSA1Ljk0MTE4QzExLjc5OTEgMi43MDEzNCA5LjE3OTgzIDAuMDgyMDMxMiA1Ljk0IDAuMDgyMDMxMlpNNS45NCAxMC42MzY3QzMuMzU0MjYgMTAuNjM2NyAxLjI0NDIyIDguNTI2NjcgMS4yNDQyMiA1Ljk0MTE4QzEuMjQ0MjIgMy4zNTU1MyAzLjM1NDI2IDEuMjQ1NDkgNS45NCAxLjI0NTQ5QzguNTI1NTggMS4yNDU0OSAxMC42MzU2IDMuMzU1NTMgMTAuNjM1NiA1Ljk0MTE4QzEwLjYzNTYgOC41MjY2NyA4LjUyNTU4IDEwLjYzNjcgNS45NCAxMC42MzY3WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0Rpc2NhcmRIb3ZlcmVkXCIgKGNsaWNrKT1cImRpc2NhcmRDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuOTc0NzFMNS45NCA2LjA5MDI2TDQuODI0NDUgNC45NzQ3MUM0LjU3ODYxIDQuNzI4ODcgNC4xODE5MSA0LjcyODg3IDMuOTM2MDcgNC45NzQ3MUMzLjY5MDIzIDUuMjIwNTUgMy42OTAyMyA1LjYxNzI1IDMuOTM2MDcgNS44NjMwOUw1LjA1MTYyIDYuOTc4NjRMMy45MzYwNyA4LjA5NDE5QzMuNjkwMjMgOC4zNDAwMyAzLjY5MDIzIDguNzM2NzMgMy45MzYwNyA4Ljk4MjU3QzQuMTgxOTEgOS4yMjg0MSA0LjU3ODYxIDkuMjI4NDEgNC44MjQ0NSA4Ljk4MjU3TDUuOTQgNy44NjcwMkw3LjA1NTU1IDguOTgyNTdDNy4zMDEzOSA5LjIyODQxIDcuNjk4MDkgOS4yMjg0MSA3Ljk0MzkzIDguOTgyNTdDOC4xODk3NyA4LjczNjczIDguMTg5NzcgOC4zNDAwMyA3Ljk0MzkzIDguMDk0MTlMNi44MjgzOCA2Ljk3ODY0TDcuOTQzOTMgNS44NjMwOUM4LjE4OTc3IDUuNjE3MjUgOC4xODk3NyA1LjIyMDU1IDcuOTQzOTMgNC45NzQ3MUM3LjY5ODA5IDQuNzM4NzMgNy4zMDAyMSA0LjczODczIDcuMDU1NTUgNC45NzQ3MVpNNS45NCAxLjA2MDYyQzIuNzAwMTcgMS4wNjA2MiAwLjA4MDg1OTQgMy42Nzk5MyAwLjA4MDg1OTQgNi45MTk3N0MwLjA4MDg1OTQgMTAuMTU5NiAyLjcwMDE3IDEyLjc3ODkgNS45NCAxMi43Nzg5QzkuMTc5ODMgMTIuNzc4OSAxMS43OTkxIDEwLjE1OTYgMTEuNzk5MSA2LjkxOTc3QzExLjc5OTEgMy42Nzk5MyA5LjE3OTgzIDEuMDYwNjIgNS45NCAxLjA2MDYyWk01Ljk0IDExLjYxNTNDMy4zNTQyNiAxMS42MTUzIDEuMjQ0MjIgOS41MDUyNSAxLjI0NDIyIDYuOTE5NzdDMS4yNDQyMiA0LjMzNDEyIDMuMzU0MjYgMi4yMjQwOCA1Ljk0IDIuMjI0MDhDOC41MjU1OCAyLjIyNDA4IDEwLjYzNTYgNC4zMzQxMiAxMC42MzU2IDYuOTE5NzdDMTAuNjM1NiA5LjUwNTI1IDguNTI1NTggMTEuNjE1MyA1Ljk0IDExLjYxNTNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZihtb2RlICE9PSAnZWRpdCcpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggY29udGVudC1zcGFjZS1iZXR3ZWVuXCI+XG4gICAgPGRpdj57e3NlbGVjdGVkVmFsdWUgfHwgJy0nfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPHN2ZyAqbmdJZj1cIiFxdWVzdGlvbi5pc1JlYWRPbmx5ICYmICF2aWV3RWRpdCBcIiBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIlxuICAgICAgICBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuICA8c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPlxuICAgIHt7IGVycm9yTWVzc2FnZSA/PyAnSW52YWxpZCBzZWxlY3Rpb24nIH19XG4gIDwvc3Bhbj5cbjwvZGl2PiJdfQ==
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1yYWRpby9jdXN0b20tcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJhZGlvL2N1c3RvbS1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQWEvQyxNQUFNLE9BQU8sb0JBQW9CO0lBMkJyQjtJQUNBO0lBMUJELE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsUUFBUSxHQUFRLEVBQUUsQ0FBQTtJQUNsQixPQUFPLENBQVM7SUFDaEIsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBVTtJQUNyQixFQUFFLENBQVM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFlBQVksQ0FBUztJQUNyQixLQUFLLENBQU07SUFDWCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLGNBQWMsQ0FBUztJQUN2QixLQUFLLENBQVM7SUFDZCxJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQjtJQUMxRCxXQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkUsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUV4QixVQUFVLENBQVM7SUFDbkIsVUFBVSxDQUFTO0lBQzFCLFlBQVksQ0FBZTtJQUMzQixhQUFhLENBQU0sQ0FBQyxzRUFBc0U7SUFDMUYs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QUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2I7NEdBTVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5nZS9jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEvZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1yYWRpbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFkaW8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge31cbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb2dyZXNzQmFyOiBib29sZWFuO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcbiAgQElucHV0KCkgZnJvbVNoZW5nZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVmZXJlbmNlRmllbGQ6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW46IHN0cmluZztcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gTmV3IG1vZGUgaW5wdXRcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBpbnZhbGlkRmllbGRJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIGxhYmVsRmllbGQ6IHN0cmluZztcbiAgcHVibGljIHZhbHVlRmllbGQ6IHN0cmluZztcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIG9yaWdpbmFsVmFsdWU6IGFueTsgLy8gU0tTMTFKVU4yNSBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgdmFsdWU6IENoYW5nZVdyYXBwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VTZXJ2aWNlOiBDaGFuZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmNoYW5nZVNlcnZpY2Uuc3VibWl0VmFsaWRhdGUkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkRmllbGRJZHMucHVzaChkYXRhKTtcbiAgICB9KTtcbiAgfVxuICB2aWV3RWRpdDogYm9vbGVhbiA9IGZhbHNlIFxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFZEIDMxTk9WMjQgbnVsbCBjaGVja1xuICAgIGlmICh0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgICAgdGhpcy5sYWJlbEZpZWxkID0gYXBpT2JqLmZpZWxkO1xuXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVJlc3BvbnNlKGFwaU9iai5lbmRwb2ludCk/LnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgaWYgKGFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICAgIHJlc3BvbnNlcyA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIGFwaU9iai52YXJpYWJsZSk7XG4gICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciByZXNwID0gcmVzcG9uc2VzW2ldO1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3ApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlcztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iai5zb3VyY2VRdWVzdGlvbklkO1xuICAgICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAgIChjaGFuZ2VWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogIT09IHVuZGVmaW5lZCAmJiAoIEFycmF5LmlzQXJyYXkoYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpPyBhcGlPYmouc291cmNlUXVlc3Rpb25JZC5pbmNsdWRlcyhjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCkgOiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlVmFsdWUudmFsdWVPYmpbYXBpT2JqLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHt9O1xuICAgICAgICAgICAgICAgIHZhbHVlWyduYW1lJ10gPSB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yYWRpb0NoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmFkaW9DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGxldCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZVsnZnJvbVF1ZXN0aW9uSWQnXSA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gZXZlbnQudGFyZ2V0Py5pZCA/IGV2ZW50LnRhcmdldD8uaWQgOiAnJztcbiAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnJlZmVyZW5jZUZpZWxkO1xuICAgIC8vIFNLUzExSlVOMjUgT25seSBlbWl0IHRoZSB2YWx1ZSBpZiBub3QgaW4gdmlldyBlZGl0IG1vZGVcbiAgICBpZiAoIXRoaXMudmlld0VkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuaW52YWxpZEZpZWxkSWRzID0gW107XG4gICAgfVxuICB9XG4gIHZpZXdFZGl0Q2xpY2socXVlczogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gcXVlcy5pbnB1dDsgLy8gU0tTMTFKVU4yNSBTdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gdHJ1ZTsgLy8gRW50ZXIgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XG4gIH1cbiAgZGlzY2FyZENoYW5nZXMoKSB7XG4gICAgdGhpcy52aWV3RWRpdCA9IGZhbHNlOyAvLyBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLm9yaWdpbmFsVmFsdWU7IC8vIFNLUzExSlVOMjUgUmVzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVcbiAgfVxuICBzYXZlQ2hhbmdlcygpIHtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIGxldCBjaGFuZ2U6IGFueSA9e307XG4gICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLnZhbHVlO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTsgLy8gRW1pdCB0aGUgdXBkYXRlZCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gU0tTMTFKVU4yNSBFeGl0IHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ3ZpZXcnOyAvLyBTd2l0Y2ggYmFjayB0byB2aWV3IG1vZGVcbiAgfVxufVxuIiwiPCEtLSBBUDI2TUFSMjUgIE1hcmsgYXMgY2hlY2tlZCBpZiBpdCBtYXRjaGVzIHRoZSBzZWxlY3RlZCB2YWx1ZSAtLT5cbjxkaXYgY2xhc3M9XCIgaG92ZXItd3JhcHBlciBjdXN0b20tcmFkaW8tY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOyBwYWRkaW5nLWxlZnQ6IDVweDsgcGFkZGluZy1yaWdodDogNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQUZBOyBib3JkZXItcmFkaXVzOiA1cHg7XCI+XG4gICAgQGlmKG1vZGUgPT09ICdlZGl0Jyl7XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgW2NsYXNzXT1cImludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZCkgfHwgZXJyb3IgPyAnY3VzdG9tLXJhZGlvLW9wdGlvbiBpbnZhbGlkJyA6ICdjdXN0b20tcmFkaW8tb3B0aW9uJ1wiPlxuXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBbaWRdPVwiYXBpTWV0YSA/IG9wdGlvbltsYWJlbEZpZWxkXSA/PyBvcHRpb24udmFsdWUgOiBvcHRpb24udmFsdWVcIlxuICAgICAgICAgIFtjaGVja2VkXT1cIihzZWxlY3RlZFZhbHVlID8/ICcnKSA9PSBvcHRpb24udmFsdWVcIiBbbmFtZV09XCJpZFwiIFt2YWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInJhZGlvQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJueHQtcmFkaW8tbGFiZWxcIiBbZm9yXT1cImFwaU1ldGEgPyBvcHRpb25bbGFiZWxGaWVsZF0gPz8gb3B0aW9uLnZhbHVlIDogb3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAge3sgYXBpTWV0YSA/IG9wdGlvbltsYWJlbEZpZWxkXSA/PyBvcHRpb24udmFsdWUgOiBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXRcIiBjbGFzcz1cImZsZXhcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IG1hcmdpbi1sZWZ0OiBhdXRvO1wiPlxuICAgICAgPGRpdiAqbmdJZj1cInZpZXdFZGl0ICYmIG9yaWdpbmFsVmFsdWUgIT09IHZhbHVlXCIgKG1vdXNlZW50ZXIpPVwiaXNTYXZlSG92ZXJlZCA9IHRydWVcIiAobW91c2VsZWF2ZSk9XCJpc1NhdmVIb3ZlcmVkID0gZmFsc2VcIlxuICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNTYXZlSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTUuOTUwMiAwLjVDOC45NjAwNiAwLjUwMDEwNiAxMS40MDA0IDIuOTQwMzEgMTEuNDAwNCA1Ljk1MDJDMTEuNDAwMyA4Ljk1OTk5IDguOTU5OTkgMTEuNDAwMyA1Ljk1MDIgMTEuNDAwNEMyLjk0MDMxIDExLjQwMDQgMC41MDAxMDYgOC45NjAwNiAwLjUgNS45NTAyQzAuNSAyLjk0MDI0IDIuOTQwMjQgMC41IDUuOTUwMiAwLjVaXCJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiIzgzN0Y4RVwiIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTguODgxMTEgMy44NDU4M0M4LjgzMjY5IDMuNzk3MiA4Ljc3NTEzIDMuNzU4NiA4LjcxMTc2IDMuNzMyMjdDOC42NDgzOCAzLjcwNTk0IDguNTgwNDMgMy42OTIzOCA4LjUxMTggMy42OTIzOEM4LjQ0MzE3IDMuNjkyMzggOC4zNzUyMSAzLjcwNTk0IDguMzExODQgMy43MzIyN0M4LjI0ODQ2IDMuNzU4NiA4LjE5MDkxIDMuNzk3MiA4LjE0MjQ5IDMuODQ1ODNMNC44MjY5IDcuMTYzNDdMMy4zNTI1MyA1LjY4OTFDMy4zMDQwMyA1LjY0MDYgMy4yNDY0NiA1LjYwMjEzIDMuMTgzMDkgNS41NzU4OEMzLjExOTcyIDUuNTQ5NjQgMy4wNTE4MSA1LjUzNjEzIDIuOTgzMjIgNS41MzYxM0MyLjkxNDYzIDUuNTM2MTMgMi44NDY3MiA1LjU0OTY0IDIuNzgzMzUgNS41NzU4OEMyLjcxOTk5IDUuNjAyMTMgMi42NjI0MSA1LjY0MDYgMi42MTM5MSA1LjY4OTFDMi41NjU0MSA1LjczNzYgMi41MjY5NCA1Ljc5NTE4IDIuNTAwNjkgNS44NTg1NEMyLjQ3NDQ1IDUuOTIxOTEgMi40NjA5NCA1Ljk4OTgyIDIuNDYwOTQgNi4wNTg0MUMyLjQ2MDk0IDYuMTI3IDIuNDc0NDUgNi4xOTQ5MSAyLjUwMDY5IDYuMjU4MjhDMi41MjY5NCA2LjMyMTY1IDIuNTY1NDEgNi4zNzkyMiAyLjYxMzkxIDYuNDI3NzJMNC40NTY3NyA4LjI3MDU4QzQuNTA1MTkgOC4zMTkyMiA0LjU2Mjc0IDguMzU3ODEgNC42MjYxMiA4LjM4NDE0QzQuNjg5NSA4LjQxMDQ3IDQuNzU3NDUgOC40MjQwMyA0LjgyNjA4IDguNDI0MDNDNC44OTQ3MSA4LjQyNDAzIDQuOTYyNjYgOC40MTA0NyA1LjAyNjA0IDguMzg0MTRDNS4wODk0MiA4LjM1NzgxIDUuMTQ2OTcgOC4zMTkyMiA1LjE5NTM5IDguMjcwNThMOC44ODExMSA0LjU4NDQ1QzguOTI5NzQgNC41MzYwMyA4Ljk2ODM0IDQuNDc4NDggOC45OTQ2NyA0LjQxNTFDOS4wMjEgNC4zNTE3MyA5LjAzNDU2IDQuMjgzNzcgOS4wMzQ1NiA0LjIxNTE0QzkuMDM0NTYgNC4xNDY1MSA5LjAyMSA0LjA3ODU2IDguOTk0NjcgNC4wMTUxOEM4Ljk2ODM0IDMuOTUxOCA4LjkyOTc0IDMuODk0MjUgOC44ODExMSAzLjg0NTgzWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjODM3RjhFXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc1NhdmVIb3ZlcmVkXCIgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1IDEyLjgwMDRDOS4yMzYwOSAxMi44MDA0IDExLjkgMTAuMTM2NSAxMS45IDYuODUwMzlDMTEuOSAzLjU2NDMgOS4yMzYwOSAwLjkwMDM5MSA1Ljk1IDAuOTAwMzkxQzIuNjYzOTEgMC45MDAzOTEgMCAzLjU2NDMgMCA2Ljg1MDM5QzAgMTAuMTM2NSAyLjY2MzkxIDEyLjgwMDQgNS45NSAxMi44MDA0WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjU5NTY2XCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSA0Ljc0NjIyQzguODMyNjkgNC42OTc1OSA4Ljc3NTEzIDQuNjU4OTkgOC43MTE3NiA0LjYzMjY2QzguNjQ4MzggNC42MDYzMyA4LjU4MDQzIDQuNTkyNzcgOC41MTE4IDQuNTkyNzdDOC40NDMxNyA0LjU5Mjc3IDguMzc1MjEgNC42MDYzMyA4LjMxMTg0IDQuNjMyNjZDOC4yNDg0NiA0LjY1ODk5IDguMTkwOTEgNC42OTc1OSA4LjE0MjQ5IDQuNzQ2MjJMNC44MjY5IDguMDYzODZMMy4zNTI1MyA2LjU4OTQ5QzMuMzA0MDMgNi41NDA5OSAzLjI0NjQ2IDYuNTAyNTIgMy4xODMwOSA2LjQ3NjI3QzMuMTE5NzIgNi40NTAwMyAzLjA1MTgxIDYuNDM2NTIgMi45ODMyMiA2LjQzNjUyQzIuOTE0NjMgNi40MzY1MiAyLjg0NjcyIDYuNDUwMDMgMi43ODMzNSA2LjQ3NjI3QzIuNzE5OTkgNi41MDI1MiAyLjY2MjQxIDYuNTQwOTkgMi42MTM5MSA2LjU4OTQ5QzIuNTY1NDEgNi42Mzc5OSAyLjUyNjk0IDYuNjk1NTcgMi41MDA2OSA2Ljc1ODkzQzIuNDc0NDUgNi44MjIzIDIuNDYwOTQgNi44OTAyMiAyLjQ2MDk0IDYuOTU4OEMyLjQ2MDk0IDcuMDI3MzkgMi40NzQ0NSA3LjA5NTMxIDIuNTAwNjkgNy4xNTg2N0MyLjUyNjk0IDcuMjIyMDQgMi41NjU0MSA3LjI3OTYxIDIuNjEzOTEgNy4zMjgxMUw0LjQ1Njc3IDkuMTcwOTdDNC41MDUxOSA5LjIxOTYxIDQuNTYyNzQgOS4yNTgyIDQuNjI2MTIgOS4yODQ1M0M0LjY4OTUgOS4zMTA4NiA0Ljc1NzQ1IDkuMzI0NDIgNC44MjYwOCA5LjMyNDQyQzQuODk0NzEgOS4zMjQ0MiA0Ljk2MjY2IDkuMzEwODYgNS4wMjYwNCA5LjI4NDUzQzUuMDg5NDIgOS4yNTgyIDUuMTQ2OTcgOS4yMTk2MSA1LjE5NTM5IDkuMTcwOTdMOC44ODExMSA1LjQ4NDg0QzguOTI5NzQgNS40MzY0MiA4Ljk2ODM0IDUuMzc4ODcgOC45OTQ2NyA1LjMxNTQ5QzkuMDIxIDUuMjUyMTIgOS4wMzQ1NiA1LjE4NDE2IDkuMDM0NTYgNS4xMTU1M0M5LjAzNDU2IDUuMDQ2OSA5LjAyMSA0Ljk3ODk1IDguOTk0NjcgNC45MTU1N0M4Ljk2ODM0IDQuODUyMiA4LjkyOTc0IDQuNzk0NjUgOC44ODExMSA0Ljc0NjIyWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXQgJiYgb3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWVcIiAobW91c2VlbnRlcik9XCJpc0Rpc2NhcmRIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZVwiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNEaXNjYXJkSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC4wMDg4M0w1Ljk0IDUuMTI0MzhMNC44MjQ0NSA0LjAwODgzQzQuNTc4NjEgMy43NjI5OSA0LjE4MTkxIDMuNzYyOTkgMy45MzYwNyA0LjAwODgzQzMuNjkwMjMgNC4yNTQ2NyAzLjY5MDIzIDQuNjUxMzcgMy45MzYwNyA0Ljg5NzIxTDUuMDUxNjIgNi4wMTI3NkwzLjkzNjA3IDcuMTI4MzFDMy42OTAyMyA3LjM3NDE1IDMuNjkwMjMgNy43NzA4NSAzLjkzNjA3IDguMDE2NjlDNC4xODE5MSA4LjI2MjUzIDQuNTc4NjEgOC4yNjI1MyA0LjgyNDQ1IDguMDE2NjlMNS45NCA2LjkwMTE0TDcuMDU1NTUgOC4wMTY2OUM3LjMwMTM5IDguMjYyNTMgNy42OTgwOSA4LjI2MjUzIDcuOTQzOTMgOC4wMTY2OUM4LjE4OTc3IDcuNzcwODUgOC4xODk3NyA3LjM3NDE1IDcuOTQzOTMgNy4xMjgzMUw2LjgyODM4IDYuMDEyNzZMNy45NDM5MyA0Ljg5NzIxQzguMTg5NzcgNC42NTEzNyA4LjE4OTc3IDQuMjU0NjcgNy45NDM5MyA0LjAwODgzQzcuNjk4MDkgMy43NzI4NSA3LjMwMDIxIDMuNzcyODUgNy4wNTU1NSA0LjAwODgzWk01Ljk0IDAuMDgyMDMxMkMyLjcwMDE3IDAuMDgyMDMxMiAwLjA4MDg1OTQgMi43MDEzNCAwLjA4MDg1OTQgNS45NDExOEMwLjA4MDg1OTQgOS4xODEwMSAyLjcwMDE3IDExLjgwMDMgNS45NCAxMS44MDAzQzkuMTc5ODMgMTEuODAwMyAxMS43OTkxIDkuMTgxMDEgMTEuNzk5MSA1Ljk0MTE4QzExLjc5OTEgMi43MDEzNCA5LjE3OTgzIDAuMDgyMDMxMiA1Ljk0IDAuMDgyMDMxMlpNNS45NCAxMC42MzY3QzMuMzU0MjYgMTAuNjM2NyAxLjI0NDIyIDguNTI2NjcgMS4yNDQyMiA1Ljk0MTE4QzEuMjQ0MjIgMy4zNTU1MyAzLjM1NDI2IDEuMjQ1NDkgNS45NCAxLjI0NTQ5QzguNTI1NTggMS4yNDU0OSAxMC42MzU2IDMuMzU1NTMgMTAuNjM1NiA1Ljk0MTE4QzEwLjYzNTYgOC41MjY2NyA4LjUyNTU4IDEwLjYzNjcgNS45NCAxMC42MzY3WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0Rpc2NhcmRIb3ZlcmVkXCIgKGNsaWNrKT1cImRpc2NhcmRDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuOTc0NzFMNS45NCA2LjA5MDI2TDQuODI0NDUgNC45NzQ3MUM0LjU3ODYxIDQuNzI4ODcgNC4xODE5MSA0LjcyODg3IDMuOTM2MDcgNC45NzQ3MUMzLjY5MDIzIDUuMjIwNTUgMy42OTAyMyA1LjYxNzI1IDMuOTM2MDcgNS44NjMwOUw1LjA1MTYyIDYuOTc4NjRMMy45MzYwNyA4LjA5NDE5QzMuNjkwMjMgOC4zNDAwMyAzLjY5MDIzIDguNzM2NzMgMy45MzYwNyA4Ljk4MjU3QzQuMTgxOTEgOS4yMjg0MSA0LjU3ODYxIDkuMjI4NDEgNC44MjQ0NSA4Ljk4MjU3TDUuOTQgNy44NjcwMkw3LjA1NTU1IDguOTgyNTdDNy4zMDEzOSA5LjIyODQxIDcuNjk4MDkgOS4yMjg0MSA3Ljk0MzkzIDguOTgyNTdDOC4xODk3NyA4LjczNjczIDguMTg5NzcgOC4zNDAwMyA3Ljk0MzkzIDguMDk0MTlMNi44MjgzOCA2Ljk3ODY0TDcuOTQzOTMgNS44NjMwOUM4LjE4OTc3IDUuNjE3MjUgOC4xODk3NyA1LjIyMDU1IDcuOTQzOTMgNC45NzQ3MUM3LjY5ODA5IDQuNzM4NzMgNy4zMDAyMSA0LjczODczIDcuMDU1NTUgNC45NzQ3MVpNNS45NCAxLjA2MDYyQzIuNzAwMTcgMS4wNjA2MiAwLjA4MDg1OTQgMy42Nzk5MyAwLjA4MDg1OTQgNi45MTk3N0MwLjA4MDg1OTQgMTAuMTU5NiAyLjcwMDE3IDEyLjc3ODkgNS45NCAxMi43Nzg5QzkuMTc5ODMgMTIuNzc4OSAxMS43OTkxIDEwLjE1OTYgMTEuNzk5MSA2LjkxOTc3QzExLjc5OTEgMy42Nzk5MyA5LjE3OTgzIDEuMDYwNjIgNS45NCAxLjA2MDYyWk01Ljk0IDExLjYxNTNDMy4zNTQyNiAxMS42MTUzIDEuMjQ0MjIgOS41MDUyNSAxLjI0NDIyIDYuOTE5NzdDMS4yNDQyMiA0LjMzNDEyIDMuMzU0MjYgMi4yMjQwOCA1Ljk0IDIuMjI0MDhDOC41MjU1OCAyLjIyNDA4IDEwLjYzNTYgNC4zMzQxMiAxMC42MzU2IDYuOTE5NzdDMTAuNjM1NiA5LjUwNTI1IDguNTI1NTggMTEuNjE1MyA1Ljk0IDExLjYxNTNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZihtb2RlICE9PSAnZWRpdCcpIHtcbiAgPGRpdiBjbGFzcz1cImZsZXggY29udGVudC1zcGFjZS1iZXR3ZWVuXCI+XG4gICAgPGRpdj57e3NlbGVjdGVkVmFsdWUgfHwgJy0nfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPHN2ZyAqbmdJZj1cIiFxdWVzdGlvbi5pc1JlYWRPbmx5ICYmICF2aWV3RWRpdCBcIiBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIlxuICAgICAgICBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgfVxuICA8c3BhbiAqbmdJZj1cImVycm9yIHx8IGludmFsaWRGaWVsZElkcy5pbmNsdWRlcyhpZClcIiBjbGFzcz1cImVycm9yLW1zZ1wiPlxuICAgIHt7IGVycm9yTWVzc2FnZSA/PyAnSW52YWxpZCBzZWxlY3Rpb24nIH19XG4gIDwvc3Bhbj5cbjwvZGl2PiJdfQ==
|