mmhglobal-dynamicform 2.40.0 → 2.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +6 -1
- package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +2 -2
- package/esm2020/lib/zbreadcrumb/zbreadcrumb.component.mjs +88 -0
- package/esm2020/lib/zchart/zchart.component.mjs +142 -103
- package/esm2020/lib/zdatetime/zdatetime.component.mjs +11 -3
- package/esm2020/lib/zgauge/zgauge.component.mjs +12 -21
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +81 -5
- package/esm2020/lib/zgrid/zgrid.component.mjs +88 -7
- package/esm2020/lib/zgrid/zgrid.service.mjs +8 -1
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +163 -15
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +3 -3
- package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +25 -13
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +2 -2
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/mmhglobal-dynamicform.mjs +619 -162
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +601 -160
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/mmhglobal-dynamicform.module.d.ts +104 -103
- package/lib/zbreadcrumb/zbreadcrumb.component.d.ts +25 -0
- package/lib/zchart/zchart.component.d.ts +30 -12
- package/lib/zdatetime/zdatetime.component.d.ts +2 -0
- package/lib/zgauge/zgauge.component.d.ts +0 -9
- package/lib/zgrid/zgrid.binding.directive.d.ts +10 -2
- package/lib/zgrid/zgrid.component.d.ts +13 -5
- package/lib/zgrid/zgrid.service.d.ts +3 -0
- package/lib/ztexteditor/ztexteditor.component.d.ts +19 -4
- package/lib/ztrendcard/ztrendcard.component.d.ts +9 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -20,6 +20,7 @@ export class ZdatetimeComponent extends InputFieldBase {
|
|
|
20
20
|
this.minDate = null;
|
|
21
21
|
this.maxDate = null;
|
|
22
22
|
this.stepValue = null;
|
|
23
|
+
this.disabledDates = null;
|
|
23
24
|
this.SetDateRange = (minDate, maxDate) => {
|
|
24
25
|
console.warn(`Please change the function to camelcase 'setDateRange'. 'SetDateRange' will be deprecated soon.`);
|
|
25
26
|
this.setDateRange(this.minDate, this.maxDate);
|
|
@@ -37,6 +38,7 @@ export class ZdatetimeComponent extends InputFieldBase {
|
|
|
37
38
|
super.setupInnerField();
|
|
38
39
|
this.setMinAndMaxDateRange();
|
|
39
40
|
this.setStepValue();
|
|
41
|
+
this.setDisabledDates();
|
|
40
42
|
super.focusOnDefault(this.focus.bind(this));
|
|
41
43
|
// if (this.group.zModel[this.data.Value]) {
|
|
42
44
|
// this.dateValue = new Date(this.group.zModel[this.data.Value]);
|
|
@@ -74,6 +76,12 @@ export class ZdatetimeComponent extends InputFieldBase {
|
|
|
74
76
|
const stepValueGroupValue = ZComponentHelper.getGroupValue(this.data.StepValue, this.group);
|
|
75
77
|
this.stepValue = stepValueGroupValue || this.data.StepValue;
|
|
76
78
|
}
|
|
79
|
+
setDisabledDates() {
|
|
80
|
+
this.disabledDates = null;
|
|
81
|
+
if (this.data.DisabledDates) {
|
|
82
|
+
this.disabledDates = ZComponentHelper.getGroupValue(this.data.DisabledDates, this.group);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
77
85
|
convertDateTimeValueToString(value) {
|
|
78
86
|
if (value == undefined) {
|
|
79
87
|
return undefined;
|
|
@@ -117,10 +125,10 @@ export class ZdatetimeComponent extends InputFieldBase {
|
|
|
117
125
|
}
|
|
118
126
|
}
|
|
119
127
|
ZdatetimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZdatetimeComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
-
ZdatetimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZdatetimeComponent, selector: "app-zdatetime", viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["datepicker"], descendants: true }, { propertyName: "timepicker", first: true, predicate: ["timepicker"], descendants: true }, { propertyName: "datetimepicker", first: true, predicate: ["datetimepicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n\r\n <ion-datetime *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\" (ionChange)=\"onChange($event.detail.value)\"\r\n [min]=\"minDate | dateMinMaxIonic\" [max]=\"maxDate | dateMinMaxIonic\"\r\n [placeholder]=\"data.PlaceHolder\" [displayFormat]=\"data | dateFormatIonic\" [pickerFormat]=\"data | dateFormatIonic\"\r\n style=\"padding: 8px 0px;\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ion-datetime>\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\" [ngSwitch]=\"data.Type\">\r\n <kendo-datepicker *ngSwitchCase=\"'zshortdate'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" [activeView]=\"'year'\"\r\n [bottomView]=\"'year'\" #datepicker>\r\n </kendo-datepicker>\r\n <kendo-datetimepicker *ngSwitchCase=\"'zuidatetime'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n calendarType=\"classic\" #datetimepicker>\r\n </kendo-datetimepicker>\r\n <kendo-timepicker *ngSwitchCase=\"['ztime','zuitime'].includes(data.Type) ? data.Type : ''\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #timepicker>\r\n </kendo-timepicker>\r\n <kendo-datepicker *ngSwitchDefault\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #datepicker>\r\n </kendo-datepicker>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.k-datepicker{color:var(--z-text-color)}:host ::ng-deep kendo-dateinput{font-size:var(--content-font-size)}:host ::ng-deep kendo-dateinput .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datetimepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-timepicker.disabled .k-dateinput .k-dateinput-wrap{background:transparent!important}:host ::ng-deep kendo-datetimepicker:focus-within,:host ::ng-deep kendo-datepicker:focus-within,:host ::ng-deep kendo-timepicker:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}\n"], components: [{ type: i2.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "name", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "value", "yearValues"] }, { type: i3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "focusableId", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i3.DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: ["value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "focusableId", "title", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "defaultTab", "size", "rounded", "fillMode"], outputs: ["valueChange", "open", "close", "focus", "blur"], exportAs: ["kendo-datetimepicker"] }, { type: i3.TimePickerComponent, selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "title", "rangeValidation", "value", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-timepicker"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "dateMinMaxIonic": i6.DateIonicMinMaxParser, "dateFormatIonic": i7.DateIonicFormatParser, "dateParser": i8.DateParserFilter, "dateFormatKendo": i9.DateKendoFormatParser } });
|
|
128
|
+
ZdatetimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZdatetimeComponent, selector: "app-zdatetime", viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["datepicker"], descendants: true }, { propertyName: "timepicker", first: true, predicate: ["timepicker"], descendants: true }, { propertyName: "datetimepicker", first: true, predicate: ["datetimepicker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n\r\n <ion-datetime *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\" (ionChange)=\"onChange($event.detail.value)\"\r\n [min]=\"minDate | dateMinMaxIonic\" [max]=\"maxDate | dateMinMaxIonic\"\r\n [placeholder]=\"data.PlaceHolder\" [displayFormat]=\"data | dateFormatIonic\" [pickerFormat]=\"data | dateFormatIonic\"\r\n style=\"padding: 8px 0px;\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ion-datetime>\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\" [ngSwitch]=\"data.Type\">\r\n <kendo-datepicker *ngSwitchCase=\"'zshortdate'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\" [disabledDates]=\"disabledDates\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" [activeView]=\"'year'\"\r\n [bottomView]=\"'year'\" #datepicker>\r\n </kendo-datepicker>\r\n <kendo-datetimepicker *ngSwitchCase=\"'zuidatetime'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\" [disabledDates]=\"disabledDates\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n calendarType=\"classic\" #datetimepicker>\r\n </kendo-datetimepicker>\r\n <kendo-timepicker *ngSwitchCase=\"['ztime','zuitime'].includes(data.Type) ? data.Type : ''\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #timepicker>\r\n </kendo-timepicker>\r\n <kendo-datepicker *ngSwitchDefault\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\" [disabledDates]=\"disabledDates\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #datepicker>\r\n </kendo-datepicker>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.k-datepicker{color:var(--z-text-color)}:host ::ng-deep kendo-dateinput{font-size:var(--content-font-size)}:host ::ng-deep kendo-dateinput .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datetimepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-timepicker.disabled .k-dateinput .k-dateinput-wrap{background:transparent!important}:host ::ng-deep kendo-datetimepicker:focus-within,:host ::ng-deep kendo-datepicker:focus-within,:host ::ng-deep kendo-timepicker:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}\n"], components: [{ type: i2.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "name", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "value", "yearValues"] }, { type: i3.DatePickerComponent, selector: "kendo-datepicker", inputs: ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate", "focusableId", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "title", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-datepicker"] }, { type: i3.DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: ["value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "focusableId", "title", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "defaultTab", "size", "rounded", "fillMode"], outputs: ["valueChange", "open", "close", "focus", "blur"], exportAs: ["kendo-datetimepicker"] }, { type: i3.TimePickerComponent, selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "title", "rangeValidation", "value", "size", "rounded", "fillMode"], outputs: ["valueChange", "focus", "blur", "open", "close"], exportAs: ["kendo-timepicker"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "dateMinMaxIonic": i6.DateIonicMinMaxParser, "dateFormatIonic": i7.DateIonicFormatParser, "dateParser": i8.DateParserFilter, "dateFormatKendo": i9.DateKendoFormatParser } });
|
|
121
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZdatetimeComponent, decorators: [{
|
|
122
130
|
type: Component,
|
|
123
|
-
args: [{ selector: "app-zdatetime", template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n\r\n <ion-datetime *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\" (ionChange)=\"onChange($event.detail.value)\"\r\n [min]=\"minDate | dateMinMaxIonic\" [max]=\"maxDate | dateMinMaxIonic\"\r\n [placeholder]=\"data.PlaceHolder\" [displayFormat]=\"data | dateFormatIonic\" [pickerFormat]=\"data | dateFormatIonic\"\r\n style=\"padding: 8px 0px;\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ion-datetime>\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\" [ngSwitch]=\"data.Type\">\r\n <kendo-datepicker *ngSwitchCase=\"'zshortdate'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" [activeView]=\"'year'\"\r\n [bottomView]=\"'year'\" #datepicker>\r\n </kendo-datepicker>\r\n <kendo-datetimepicker *ngSwitchCase=\"'zuidatetime'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n calendarType=\"classic\" #datetimepicker>\r\n </kendo-datetimepicker>\r\n <kendo-timepicker *ngSwitchCase=\"['ztime','zuitime'].includes(data.Type) ? data.Type : ''\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #timepicker>\r\n </kendo-timepicker>\r\n <kendo-datepicker *ngSwitchDefault\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #datepicker>\r\n </kendo-datepicker>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.k-datepicker{color:var(--z-text-color)}:host ::ng-deep kendo-dateinput{font-size:var(--content-font-size)}:host ::ng-deep kendo-dateinput .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datetimepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-timepicker.disabled .k-dateinput .k-dateinput-wrap{background:transparent!important}:host ::ng-deep kendo-datetimepicker:focus-within,:host ::ng-deep kendo-datepicker:focus-within,:host ::ng-deep kendo-timepicker:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}\n"] }]
|
|
131
|
+
args: [{ selector: "app-zdatetime", template: "<div class=\"zdate-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n\r\n <ion-datetime *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\" (ionChange)=\"onChange($event.detail.value)\"\r\n [min]=\"minDate | dateMinMaxIonic\" [max]=\"maxDate | dateMinMaxIonic\"\r\n [placeholder]=\"data.PlaceHolder\" [displayFormat]=\"data | dateFormatIonic\" [pickerFormat]=\"data | dateFormatIonic\"\r\n style=\"padding: 8px 0px;\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ion-datetime>\r\n <div class=\"dateTimeDesktopContainer\" *ngIf=\"!isMobileScreen()\" [ngSwitch]=\"data.Type\">\r\n <kendo-datepicker *ngSwitchCase=\"'zshortdate'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\" [disabledDates]=\"disabledDates\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" [activeView]=\"'year'\"\r\n [bottomView]=\"'year'\" #datepicker>\r\n </kendo-datepicker>\r\n <kendo-datetimepicker *ngSwitchCase=\"'zuidatetime'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\" [disabledDates]=\"disabledDates\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n calendarType=\"classic\" #datetimepicker>\r\n </kendo-datetimepicker>\r\n <kendo-timepicker *ngSwitchCase=\"['ztime','zuitime'].includes(data.Type) ? data.Type : ''\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #timepicker>\r\n </kendo-timepicker>\r\n <kendo-datepicker *ngSwitchDefault\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser : data\" (valueChange)=\"onChange($event)\"\r\n [min]=\"minDate\" [max]=\"maxDate\" [steps]=\"stepValue\" [disabledDates]=\"disabledDates\"\r\n [placeholder]=\"data.PlaceHolder\" [format]=\"data | dateFormatKendo\"\r\n [style]=\"componentProperties.style.style1\" class=\"input-field e1tag-style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n #datepicker>\r\n </kendo-datepicker>\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.k-datepicker{color:var(--z-text-color)}:host ::ng-deep kendo-dateinput{font-size:var(--content-font-size)}:host ::ng-deep kendo-dateinput .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker .k-picker-wrap .k-dateinput .k-dateinput-wrap{margin:auto}:host ::ng-deep kendo-datetimepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datetimepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-datepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-datepicker.disabled .k-dateinput .k-dateinput-wrap,:host ::ng-deep kendo-timepicker.disabled .k-picker-wrap,:host ::ng-deep kendo-timepicker.disabled .k-dateinput .k-dateinput-wrap{background:transparent!important}:host ::ng-deep kendo-datetimepicker:focus-within,:host ::ng-deep kendo-datepicker:focus-within,:host ::ng-deep kendo-timepicker:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}\n"] }]
|
|
124
132
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { datepicker: [{
|
|
125
133
|
type: ViewChild,
|
|
126
134
|
args: ["datepicker"]
|
|
@@ -131,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
131
139
|
type: ViewChild,
|
|
132
140
|
args: ["datetimepicker"]
|
|
133
141
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemRhdGV0aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pkYXRldGltZS96ZGF0ZXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemRhdGV0aW1lL3pkYXRldGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsNkJBQTZCO0FBRTdCLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFeEUsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBUy9ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBU3BELFlBQ0UsZ0JBQW1DO1FBRW5DLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBUG5CLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsY0FBUyxHQUFHLElBQUksQ0FBQztRQTBDakIsaUJBQVksR0FBRyxDQUFDLE9BQVksRUFBRSxPQUFZLEVBQU8sRUFBRTtZQUN4RCxPQUFPLENBQUMsSUFBSSxDQUFDLGlHQUFpRyxDQUFDLENBQUM7WUFDaEgsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUE7UUFFTSxpQkFBWSxHQUFHLENBQUMsT0FBWSxFQUFFLE9BQVksRUFBTyxFQUFFO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENB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QUFLLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OytHQTVIVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixvWENsQi9CLHMxSkF5REE7MkZEdkNhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxlQUFlO3dHQU1BLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ00sY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBEYXRlVGltZVBpY2tlckNvbXBvbmVudCwgVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kYXRlaW5wdXRzXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJbnB1dEZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2lucHV0ZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtemRhdGV0aW1lXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96ZGF0ZXRpbWUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vemRhdGV0aW1lLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpkYXRldGltZUNvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKFwiZGF0ZXBpY2tlclwiKSBkYXRlcGlja2VyOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoXCJ0aW1lcGlja2VyXCIpIHRpbWVwaWNrZXI6IFRpbWVQaWNrZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImRhdGV0aW1lcGlja2VyXCIpIGRhdGV0aW1lcGlja2VyOiBEYXRlVGltZVBpY2tlckNvbXBvbmVudDtcclxuXHJcbiAgcHVibGljIG1pbkRhdGUgPSBudWxsO1xyXG4gIHB1YmxpYyBtYXhEYXRlID0gbnVsbDtcclxuICBwdWJsaWMgc3RlcFZhbHVlID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLnNldHVwSW5uZXJGaWVsZCgpO1xyXG4gICAgdGhpcy5zZXRNaW5BbmRNYXhEYXRlUmFuZ2UoKTtcclxuICAgIHRoaXMuc2V0U3RlcFZhbHVlKCk7XHJcbiAgICBzdXBlci5mb2N1c09uRGVmYXVsdCh0aGlzLmZvY3VzLmJpbmQodGhpcykpO1xyXG4gICAgLy8gaWYgKHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0pIHtcclxuICAgIC8vICAgdGhpcy5kYXRlVmFsdWUgPSBuZXcgRGF0ZSh0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIGdldERhdGVWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV0udmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLmNvbnZlcnREYXRlVGltZVZhbHVlVG9TdHJpbmcodmFsdWUpO1xyXG5cclxuICAgIGlmIChmb3JtQ29udHJvbCkge1xyXG4gICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5vbkNoYW5nZShudWxsLCB2YWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNldERhdGVSYW5nZSA9IChtaW5EYXRlOiBhbnksIG1heERhdGU6IGFueSk6IGFueSA9PiB7XHJcbiAgICBjb25zb2xlLndhcm4oYFBsZWFzZSBjaGFuZ2UgdGhlIGZ1bmN0aW9uIHRvIGNhbWVsY2FzZSAnc2V0RGF0ZVJhbmdlJy4gJ1NldERhdGVSYW5nZScgd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uYCk7XHJcbiAgICB0aGlzLnNldERhdGVSYW5nZSh0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0ZVJhbmdlID0gKG1pbkRhdGU6IGFueSwgbWF4RGF0ZTogYW55KTogYW55ID0+IHtcclxuICAgIGlmICghaXNOYU4oRGF0ZS5wYXJzZShtaW5EYXRlKSkpIHtcclxuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUobWluRGF0ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzTmFOKERhdGUucGFyc2UobWF4RGF0ZSkpKSB7XHJcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKG1heERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNaW5BbmRNYXhEYXRlUmFuZ2UoKSB7XHJcbiAgICBjb25zdCBtaW5EYXRlR3JvdXBWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuTWluRGF0ZSBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgY29uc3QgbWluRGF0ZVZhbHVlID0gbWluRGF0ZUdyb3VwVmFsdWUgfHwgdGhpcy5kYXRhLk1pbkRhdGU7XHJcblxyXG4gICAgY29uc3QgbWF4RGF0ZUdyb3VwVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLk1heERhdGUgYXMgYW55LCB0aGlzLmdyb3VwKTtcclxuICAgIGNvbnN0IG1heERhdGVWYWx1ZSA9IG1heERhdGVHcm91cFZhbHVlIHx8IHRoaXMuZGF0YS5NYXhEYXRlO1xyXG4gICAgdGhpcy5zZXREYXRlUmFuZ2UobWluRGF0ZVZhbHVlLCBtYXhEYXRlVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTdGVwVmFsdWUoKSB7XHJcbiAgICBjb25zdCBzdGVwVmFsdWVHcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5TdGVwVmFsdWUgYXMgYW55LCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMuc3RlcFZhbHVlID0gc3RlcFZhbHVlR3JvdXBWYWx1ZSB8fCB0aGlzLmRhdGEuU3RlcFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0RGF0ZVRpbWVWYWx1ZVRvU3RyaW5nKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlRGF0ZSA9IHZhbHVlIGFzIERhdGU7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5UeXBlID09PSAnenNob3J0ZGF0ZScpIHtcclxuICAgICAgdmFsdWVEYXRlLnNldERhdGUoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5Jc0lnbm9yZVRpbWVab25lKSB7XHJcbiAgICAgIGNvbnN0IHRpbWV6b25lT2ZmU2V0ID0gbmV3IERhdGUodmFsdWUpLmdldFRpbWV6b25lT2Zmc2V0KCk7XHJcbiAgICAgIHZhbHVlRGF0ZS5zZXRNaW51dGVzKHZhbHVlRGF0ZS5nZXRNaW51dGVzKCkgKyAoLXRpbWV6b25lT2ZmU2V0KSk7XHJcbiAgICAgIHJldHVybiB2YWx1ZURhdGUudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVsnenVpZGF0ZXRpbWUnLCAnenRpbWUnLCAnenVpdGltZSddLmluY2x1ZGVzKHRoaXMuZGF0YS5UeXBlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYXJzZUFueVZhbHVlVG9EYXRlT25seSh2YWx1ZSkudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYXJzZUFueVZhbHVlVG9EYXRlKHZhbHVlKS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUFueVZhbHVlVG9EYXRlKHZhbHVlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUFueVZhbHVlVG9EYXRlT25seSh2YWx1ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMucGFyc2VBbnlWYWx1ZVRvRGF0ZSh2YWx1ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLnRpbWVwaWNrZXIuZm9jdXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRldGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLmRhdGV0aW1lcGlja2VyLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiemRhdGUtY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIj5cclxuXHJcbiAgPGlvbi1kYXRldGltZSAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCIgKGlvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGUgfCBkYXRlTWluTWF4SW9uaWNcIiBbbWF4XT1cIm1heERhdGUgfCBkYXRlTWluTWF4SW9uaWNcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIiBbZGlzcGxheUZvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdElvbmljXCIgW3BpY2tlckZvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdElvbmljXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogOHB4IDBweDtcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIiBjbGFzcz1cImUxdGFnLXN0eWxlMVwiXHJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCJcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiPlxyXG4gIDwvaW9uLWRhdGV0aW1lPlxyXG4gIDxkaXYgY2xhc3M9XCJkYXRlVGltZURlc2t0b3BDb250YWluZXJcIiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCIgW25nU3dpdGNoXT1cImRhdGEuVHlwZVwiPlxyXG4gICAgPGtlbmRvLWRhdGVwaWNrZXIgKm5nU3dpdGNoQ2FzZT1cIid6c2hvcnRkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZm9ybS5nZXQoZGF0YS5WYWx1ZSkudmFsdWUgfCBkYXRlUGFyc2VyIDogZGF0YVwiICh2YWx1ZUNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFtzdGVwc109XCJzdGVwVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIiBbZm9ybWF0XT1cImRhdGEgfCBkYXRlRm9ybWF0S2VuZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCIgY2xhc3M9XCJpbnB1dC1maWVsZCBlMXRhZy1zdHlsZTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCIgW2FjdGl2ZVZpZXddPVwiJ3llYXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtib3R0b21WaWV3XT1cIid5ZWFyJ1wiICNkYXRlcGlja2VyPlxyXG4gICAgPC9rZW5kby1kYXRlcGlja2VyPlxyXG4gICAgPGtlbmRvLWRhdGV0aW1lcGlja2VyICpuZ1N3aXRjaENhc2U9XCInenVpZGF0ZXRpbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm0uZ2V0KGRhdGEuVmFsdWUpLnZhbHVlIHwgZGF0ZVBhcnNlciA6IGRhdGFcIiAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCIgW21heF09XCJtYXhEYXRlXCIgW3N0ZXBzXT1cInN0ZXBWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIiBbZm9ybWF0XT1cImRhdGEgfCBkYXRlRm9ybWF0S2VuZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiaW5wdXQtZmllbGQgZTF0YWctc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclR5cGU9XCJjbGFzc2ljXCIgI2RhdGV0aW1lcGlja2VyPlxyXG4gICAgPC9rZW5kby1kYXRldGltZXBpY2tlcj5cclxuICAgIDxrZW5kby10aW1lcGlja2VyICpuZ1N3aXRjaENhc2U9XCJbJ3p0aW1lJywnenVpdGltZSddLmluY2x1ZGVzKGRhdGEuVHlwZSkgPyBkYXRhLlR5cGUgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZm9ybS5nZXQoZGF0YS5WYWx1ZSkudmFsdWUgfCBkYXRlUGFyc2VyIDogZGF0YVwiICh2YWx1ZUNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFtzdGVwc109XCJzdGVwVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIiBbZm9ybWF0XT1cImRhdGEgfCBkYXRlRm9ybWF0S2VuZG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCIgY2xhc3M9XCJpbnB1dC1maWVsZCBlMXRhZy1zdHlsZTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICN0aW1lcGlja2VyPlxyXG4gICAgPC9rZW5kby10aW1lcGlja2VyPlxyXG4gICAgPGtlbmRvLWRhdGVwaWNrZXIgKm5nU3dpdGNoRGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm0uZ2V0KGRhdGEuVmFsdWUpLnZhbHVlIHwgZGF0ZVBhcnNlciA6IGRhdGFcIiAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIiBbc3RlcHNdPVwic3RlcFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCIgW2Zvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdEtlbmRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiaW5wdXQtZmllbGQgZTF0YWctc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAjZGF0ZXBpY2tlcj5cclxuICAgIDwva2VuZG8tZGF0ZXBpY2tlcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuIl19
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemRhdGV0aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pkYXRldGltZS96ZGF0ZXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemRhdGV0aW1lL3pkYXRldGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsNkJBQTZCO0FBRTdCLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFeEUsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBUy9ELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBVXBELFlBQ0UsZ0JBQW1DO1FBRW5DLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBUm5CLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQTJDckIsaUJBQVksR0FBRyxDQUFDLE9BQVksRUFBRSxPQUFZLEVBQU8sRUFBRTtZQUN4RCxPQUFPLENBQUMsSUFBSSxDQUFDLGlHQUFpRyxDQUFDLENBQUM7WUFDaEgsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUE7UUFFTSxpQkFBWSxHQUFHLENBQUMsT0FBWSxFQUFFLE9BQVksRUFBTyxFQUFFO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMs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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQUs7UUFDbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7K0dBcklVLGtCQUFrQjttR0FBbEIsa0JBQWtCLG9YQ2xCL0IsNDdKQXlEQTsyRkR2Q2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGVBQWU7d0dBTUEsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNFLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDTSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIERhdGVUaW1lUGlja2VyQ29tcG9uZW50LCBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWRhdGVpbnB1dHNcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyIH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16ZGF0ZXRpbWVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3pkYXRldGltZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96ZGF0ZXRpbWUuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmRhdGV0aW1lQ29tcG9uZW50IGV4dGVuZHMgSW5wdXRGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoXCJkYXRlcGlja2VyXCIpIGRhdGVwaWNrZXI6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcInRpbWVwaWNrZXJcIikgdGltZXBpY2tlcjogVGltZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKFwiZGF0ZXRpbWVwaWNrZXJcIikgZGF0ZXRpbWVwaWNrZXI6IERhdGVUaW1lUGlja2VyQ29tcG9uZW50O1xyXG5cclxuICBwdWJsaWMgbWluRGF0ZSA9IG51bGw7XHJcbiAgcHVibGljIG1heERhdGUgPSBudWxsO1xyXG4gIHB1YmxpYyBzdGVwVmFsdWUgPSBudWxsO1xyXG4gIHB1YmxpYyBkaXNhYmxlZERhdGVzID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLnNldHVwSW5uZXJGaWVsZCgpO1xyXG4gICAgdGhpcy5zZXRNaW5BbmRNYXhEYXRlUmFuZ2UoKTtcclxuICAgIHRoaXMuc2V0U3RlcFZhbHVlKCk7XHJcbiAgICB0aGlzLnNldERpc2FibGVkRGF0ZXMoKTtcclxuICAgIHN1cGVyLmZvY3VzT25EZWZhdWx0KHRoaXMuZm9jdXMuYmluZCh0aGlzKSk7XHJcbiAgICAvLyBpZiAodGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSkge1xyXG4gICAgLy8gICB0aGlzLmRhdGVWYWx1ZSA9IG5ldyBEYXRlKHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZVZhbHVlKCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5kYXRhLlZhbHVlXS52YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5kYXRhLlZhbHVlXTtcclxuICAgIGNvbnN0IHZhbCA9IHRoaXMuY29udmVydERhdGVUaW1lVmFsdWVUb1N0cmluZyh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKGZvcm1Db250cm9sKSB7XHJcbiAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKHZhbCk7XHJcbiAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuICAgIHN1cGVyLm9uQ2hhbmdlKG51bGwsIHZhbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2V0RGF0ZVJhbmdlID0gKG1pbkRhdGU6IGFueSwgbWF4RGF0ZTogYW55KTogYW55ID0+IHtcclxuICAgIGNvbnNvbGUud2FybihgUGxlYXNlIGNoYW5nZSB0aGUgZnVuY3Rpb24gdG8gY2FtZWxjYXNlICdzZXREYXRlUmFuZ2UnLiAnU2V0RGF0ZVJhbmdlJyB3aWxsIGJlIGRlcHJlY2F0ZWQgc29vbi5gKTtcclxuICAgIHRoaXMuc2V0RGF0ZVJhbmdlKHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRlUmFuZ2UgPSAobWluRGF0ZTogYW55LCBtYXhEYXRlOiBhbnkpOiBhbnkgPT4ge1xyXG4gICAgaWYgKCFpc05hTihEYXRlLnBhcnNlKG1pbkRhdGUpKSkge1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZShtaW5EYXRlKTtcclxuICAgIH1cclxuICAgIGlmICghaXNOYU4oRGF0ZS5wYXJzZShtYXhEYXRlKSkpIHtcclxuICAgICAgdGhpcy5tYXhEYXRlID0gbmV3IERhdGUobWF4RGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE1pbkFuZE1heERhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IG1pbkRhdGVHcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5NaW5EYXRlIGFzIGFueSwgdGhpcy5ncm91cCk7XHJcbiAgICBjb25zdCBtaW5EYXRlVmFsdWUgPSBtaW5EYXRlR3JvdXBWYWx1ZSB8fCB0aGlzLmRhdGEuTWluRGF0ZTtcclxuXHJcbiAgICBjb25zdCBtYXhEYXRlR3JvdXBWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuTWF4RGF0ZSBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgY29uc3QgbWF4RGF0ZVZhbHVlID0gbWF4RGF0ZUdyb3VwVmFsdWUgfHwgdGhpcy5kYXRhLk1heERhdGU7XHJcbiAgICB0aGlzLnNldERhdGVSYW5nZShtaW5EYXRlVmFsdWUsIG1heERhdGVWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0ZXBWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHN0ZXBWYWx1ZUdyb3VwVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLlN0ZXBWYWx1ZSBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy5zdGVwVmFsdWUgPSBzdGVwVmFsdWVHcm91cFZhbHVlIHx8IHRoaXMuZGF0YS5TdGVwVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERpc2FibGVkRGF0ZXMoKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkRGF0ZXMgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZGF0YS5EaXNhYmxlZERhdGVzKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWREYXRlcyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuRGlzYWJsZWREYXRlcyBhcyBhbnksIHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0RGF0ZVRpbWVWYWx1ZVRvU3RyaW5nKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlRGF0ZSA9IHZhbHVlIGFzIERhdGU7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5UeXBlID09PSAnenNob3J0ZGF0ZScpIHtcclxuICAgICAgdmFsdWVEYXRlLnNldERhdGUoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5Jc0lnbm9yZVRpbWVab25lKSB7XHJcbiAgICAgIGNvbnN0IHRpbWV6b25lT2ZmU2V0ID0gbmV3IERhdGUodmFsdWUpLmdldFRpbWV6b25lT2Zmc2V0KCk7XHJcbiAgICAgIHZhbHVlRGF0ZS5zZXRNaW51dGVzKHZhbHVlRGF0ZS5nZXRNaW51dGVzKCkgKyAoLXRpbWV6b25lT2ZmU2V0KSk7XHJcbiAgICAgIHJldHVybiB2YWx1ZURhdGUudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVsnenVpZGF0ZXRpbWUnLCAnenRpbWUnLCAnenVpdGltZSddLmluY2x1ZGVzKHRoaXMuZGF0YS5UeXBlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYXJzZUFueVZhbHVlVG9EYXRlT25seSh2YWx1ZSkudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYXJzZUFueVZhbHVlVG9EYXRlKHZhbHVlKS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUFueVZhbHVlVG9EYXRlKHZhbHVlKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUFueVZhbHVlVG9EYXRlT25seSh2YWx1ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMucGFyc2VBbnlWYWx1ZVRvRGF0ZSh2YWx1ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLnRpbWVwaWNrZXIuZm9jdXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRldGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLmRhdGV0aW1lcGlja2VyLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiemRhdGUtY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIj5cclxuXHJcbiAgPGlvbi1kYXRldGltZSAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCIgKGlvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQuZGV0YWlsLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGUgfCBkYXRlTWluTWF4SW9uaWNcIiBbbWF4XT1cIm1heERhdGUgfCBkYXRlTWluTWF4SW9uaWNcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIiBbZGlzcGxheUZvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdElvbmljXCIgW3BpY2tlckZvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdElvbmljXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogOHB4IDBweDtcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIiBjbGFzcz1cImUxdGFnLXN0eWxlMVwiXHJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCJcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiPlxyXG4gIDwvaW9uLWRhdGV0aW1lPlxyXG4gIDxkaXYgY2xhc3M9XCJkYXRlVGltZURlc2t0b3BDb250YWluZXJcIiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCIgW25nU3dpdGNoXT1cImRhdGEuVHlwZVwiPlxyXG4gICAgPGtlbmRvLWRhdGVwaWNrZXIgKm5nU3dpdGNoQ2FzZT1cIid6c2hvcnRkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZm9ybS5nZXQoZGF0YS5WYWx1ZSkudmFsdWUgfCBkYXRlUGFyc2VyIDogZGF0YVwiICh2YWx1ZUNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFtzdGVwc109XCJzdGVwVmFsdWVcIiBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCIgW2Zvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdEtlbmRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiaW5wdXQtZmllbGQgZTF0YWctc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiIFthY3RpdmVWaWV3XT1cIid5ZWFyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYm90dG9tVmlld109XCIneWVhcidcIiAjZGF0ZXBpY2tlcj5cclxuICAgIDwva2VuZG8tZGF0ZXBpY2tlcj5cclxuICAgIDxrZW5kby1kYXRldGltZXBpY2tlciAqbmdTd2l0Y2hDYXNlPVwiJ3p1aWRhdGV0aW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtLmdldChkYXRhLlZhbHVlKS52YWx1ZSB8IGRhdGVQYXJzZXIgOiBkYXRhXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFtzdGVwc109XCJzdGVwVmFsdWVcIiBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiIFtmb3JtYXRdPVwiZGF0YSB8IGRhdGVGb3JtYXRLZW5kb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCIgY2xhc3M9XCJpbnB1dC1maWVsZCBlMXRhZy1zdHlsZTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyVHlwZT1cImNsYXNzaWNcIiAjZGF0ZXRpbWVwaWNrZXI+XHJcbiAgICA8L2tlbmRvLWRhdGV0aW1lcGlja2VyPlxyXG4gICAgPGtlbmRvLXRpbWVwaWNrZXIgKm5nU3dpdGNoQ2FzZT1cIlsnenRpbWUnLCd6dWl0aW1lJ10uaW5jbHVkZXMoZGF0YS5UeXBlKSA/IGRhdGEuVHlwZSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtLmdldChkYXRhLlZhbHVlKS52YWx1ZSB8IGRhdGVQYXJzZXIgOiBkYXRhXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlXCIgW21heF09XCJtYXhEYXRlXCIgW3N0ZXBzXT1cInN0ZXBWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiIFtmb3JtYXRdPVwiZGF0YSB8IGRhdGVGb3JtYXRLZW5kb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIiBjbGFzcz1cImlucHV0LWZpZWxkIGUxdGFnLXN0eWxlMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgI3RpbWVwaWNrZXI+XHJcbiAgICA8L2tlbmRvLXRpbWVwaWNrZXI+XHJcbiAgICA8a2VuZG8tZGF0ZXBpY2tlciAqbmdTd2l0Y2hEZWZhdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZm9ybS5nZXQoZGF0YS5WYWx1ZSkudmFsdWUgfCBkYXRlUGFyc2VyIDogZGF0YVwiICh2YWx1ZUNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiIFtzdGVwc109XCJzdGVwVmFsdWVcIiBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCIgW2Zvcm1hdF09XCJkYXRhIHwgZGF0ZUZvcm1hdEtlbmRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiaW5wdXQtZmllbGQgZTF0YWctc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAjZGF0ZXBpY2tlcj5cclxuICAgIDwva2VuZG8tZGF0ZXBpY2tlcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuIl19
|
|
@@ -15,30 +15,21 @@ export class ZgaugeComponent extends FieldBase {
|
|
|
15
15
|
super(componentService);
|
|
16
16
|
this.componentService = componentService;
|
|
17
17
|
this.isLoading = true;
|
|
18
|
-
this.value = 0;
|
|
19
|
-
this.title = "";
|
|
20
|
-
this.color = [];
|
|
21
|
-
this.majorTicks = { visible: true, color: '#0000ff' };
|
|
22
|
-
this.minorTicks = { visible: true, color: '#0000ff' };
|
|
23
|
-
this.startAngle = 0;
|
|
24
|
-
this.endAngle = 180;
|
|
25
|
-
this.minValue = 0;
|
|
26
|
-
this.maxValue = 200;
|
|
27
18
|
this.options = {
|
|
28
|
-
value:
|
|
29
|
-
title:
|
|
19
|
+
value: 0,
|
|
20
|
+
title: '',
|
|
30
21
|
chartInnerText1: '',
|
|
31
22
|
chartInnerText2: '',
|
|
32
23
|
scaleMax: 50,
|
|
33
|
-
colors:
|
|
24
|
+
colors: [],
|
|
34
25
|
transitions: false,
|
|
35
|
-
majorTicks:
|
|
36
|
-
minorTicks:
|
|
37
|
-
minValue:
|
|
38
|
-
maxValue:
|
|
26
|
+
majorTicks: { visible: true, color: '#0000ff' },
|
|
27
|
+
minorTicks: { visible: true, color: '#0000ff' },
|
|
28
|
+
minValue: 0,
|
|
29
|
+
maxValue: 200,
|
|
39
30
|
reverse: false,
|
|
40
|
-
startAngle:
|
|
41
|
-
endAngle:
|
|
31
|
+
startAngle: 0,
|
|
32
|
+
endAngle: 180,
|
|
42
33
|
rangePlaceholderColor: '#e6e5e5',
|
|
43
34
|
labelsColor: '#0000ff',
|
|
44
35
|
rangeFrom: 0,
|
|
@@ -95,8 +86,8 @@ export class ZgaugeComponent extends FieldBase {
|
|
|
95
86
|
options.startAngle = ZComponentHelper.getGroupEvalValue.call(this, field.StartAngle) || options.startAngle || 0;
|
|
96
87
|
options.endAngle = ZComponentHelper.getGroupEvalValue.call(this, field.EndAngle) || options.endAngle || 180;
|
|
97
88
|
options.rangePlaceholderColor = field.RangePlaceholderColor || options.rangePlaceholderColor;
|
|
98
|
-
options.rangeFrom = ZComponentHelper.getGroupEvalValue.call(this, field
|
|
99
|
-
options.rangeTo = ZComponentHelper.getGroupEvalValue.call(this, field
|
|
89
|
+
options.rangeFrom = ZComponentHelper.getGroupEvalValue.call(this, field['RangeFrom']) || options.rangeFrom;
|
|
90
|
+
options.rangeTo = ZComponentHelper.getGroupEvalValue.call(this, field['RangeTo']) || options.rangeTo;
|
|
100
91
|
options.rangeColor = field.RangeColor || options.rangeColor;
|
|
101
92
|
options.rangeLineCap = field.RangeLineCap || options.rangeLineCap;
|
|
102
93
|
options.rangeSize = field.RangeSize || options.rangeSize;
|
|
@@ -119,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
119
110
|
type: Component,
|
|
120
111
|
args: [{ selector: 'app-zgauge', template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"text-align: center;\">\r\n <div id=\"marketShareContainer\" class=\"ion-row\" class=\"col-xs-12 stats-graph\" *ngIf=\"options.title\">\r\n <h6 style=\"color: gray;\">{{ options.title }}</h6>\r\n </div>\r\n <div [ngStyle]='alignment()'>\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\" style=\"margin-top:50px;width:90% ;height:100%; min-width: 330px;\">\r\n <kendo-arcgauge-scale [majorTicks]=\"options.majorTicks\"\r\n [minorTicks]=\"options.minorTicks\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"options.startAngle\"\r\n [endAngle]=\"options.endAngle\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <span [style.color]=\"color\">{{ value }}</span>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>\r\n\r\n<!--<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n <div class=\"chart-top-title e1tag-style1\" [style]=\"componentProperties.style.style1\" *ngIf=\"options.title\">\r\n {{options.title}}\r\n </div>\r\n <div [style]=\"componentProperties.style.style2\" class=\"e1tag-style2\">\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\"\r\n [style]=\"getGaugeStyle()\" class=\"e1tag-style3\">\r\n <kendo-arcgauge-scale [majorTicks]=\"options.majorTicks\"\r\n [minorTicks]=\"options.minorTicks\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"options.startAngle\"\r\n [endAngle]=\"options.endAngle\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <div *ngIf=\"options.chartInnerText1\" [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\">{{ options.chartInnerText1 }}</div>\r\n <div *ngIf=\"options.chartInnerText2\" [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">{{ options.chartInnerText2 }}</div>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>-->\r\n\r\n", styles: [""] }]
|
|
121
112
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdhdWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pnYXVnZS96Z2F1Z2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhdWdlL3pnYXVnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFjLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVN2RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBcUM1QyxZQUNTLGdCQUFtQztRQUUxQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBckM1QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ1QsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUV2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KioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaRmllbGQgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpnYXVnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3pnYXVnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemdhdWdlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmdhdWdlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBpc0xvYWRpbmcgPSB0cnVlO1xyXG4gIHByaXZhdGUgdmFsdWUgPSAwO1xyXG4gIHByaXZhdGUgdGl0bGUgPSBcIlwiO1xyXG4gIHByaXZhdGUgY29sb3IgPSBbXTtcclxuICBwcml2YXRlIG1ham9yVGlja3MgPSB7IHZpc2libGU6IHRydWUsIGNvbG9yOiAnIzAwMDBmZicgfTtcclxuICBwcml2YXRlIG1pbm9yVGlja3MgPSB7IHZpc2libGU6IHRydWUsIGNvbG9yOiAnIzAwMDBmZicgfTtcclxuICBwcml2YXRlIHN0YXJ0QW5nbGUgPSAwO1xyXG4gIHByaXZhdGUgZW5kQW5nbGUgPSAxODA7XHJcbiAgcHJpdmF0ZSBtaW5WYWx1ZSA9IDA7XHJcbiAgcHJpdmF0ZSBtYXhWYWx1ZSA9IDIwMDtcclxuXHJcbiAgb3B0aW9ucyA9IHtcclxuICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxyXG4gICAgdGl0bGU6IHRoaXMudGl0bGUsXHJcbiAgICBjaGFydElubmVyVGV4dDE6ICcnLFxyXG4gICAgY2hhcnRJbm5lclRleHQyOiAnJyxcclxuICAgIHNjYWxlTWF4OiA1MCxcclxuICAgIGNvbG9yczogdGhpcy5jb2xvcixcclxuICAgIHRyYW5zaXRpb25zOiBmYWxzZSxcclxuICAgIG1ham9yVGlja3M6IHRoaXMubWFqb3JUaWNrcyxcclxuICAgIG1pbm9yVGlja3M6IHRoaXMubWlub3JUaWNrcyxcclxuICAgIG1pblZhbHVlOiB0aGlzLm1pblZhbHVlLFxyXG4gICAgbWF4VmFsdWU6IHRoaXMubWF4VmFsdWUsXHJcbiAgICByZXZlcnNlOiBmYWxzZSxcclxuICAgIHN0YXJ0QW5nbGU6IHRoaXMuc3RhcnRBbmdsZSxcclxuICAgIGVuZEFuZ2xlOiB0aGlzLmVuZEFuZ2xlLFxyXG4gICAgcmFuZ2VQbGFjZWhvbGRlckNvbG9yOiAnI2U2ZTVlNScsXHJcbiAgICBsYWJlbHNDb2xvcjogJyMwMDAwZmYnLFxyXG4gICAgcmFuZ2VGcm9tOiAwLFxyXG4gICAgcmFuZ2VUbzogMTAwLFxyXG4gICAgcmFuZ2VDb2xvcjogJyNmZjYzNTgnLFxyXG4gICAgcmFuZ2VMaW5lQ2FwOiAncm91bmQnLFxyXG4gICAgc2hvd0xhYmVsczogdHJ1ZSxcclxuICAgIHJhbmdlU2l6ZTogMTAsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmluaXRDb21wb25lbnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMpIHtcclxuICAgICAgY29uc3Qgb3B0aW9uVHlwZSA9IHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICBpZiAob3B0aW9uVHlwZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgdGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICB9IGVsc2UgaWYgKG9wdGlvblR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgKG9wdGlvblZhbHVlKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCBvcHRpb25WYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRGaWVsZERlY2xhcmF0aW9uRm9yU2V0dXAodGhpcy5kYXRhLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHYXVnZVN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTMgPyB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY29udmVydFN0eWxlU3RyaW5nVG9PYmplY3QodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMykgOiB7ICd3aGl0ZS1zcGFjZSc6ICdpbml0aWFsJyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cChmaWVsZDogWkZpZWxkLCBvcHRpb25zOiBhbnkpIHtcclxuICAgIGlmIChmaWVsZC5WYWx1ZS5zdGFydHNXaXRoKCdncm91cC4nKSkge1xyXG4gICAgICBvcHRpb25zLnZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLlZhbHVlKSB8fCBvcHRpb25zLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIG9wdGlvbnMudmFsdWUgPSB0aGlzLmdyb3VwLnpNb2RlbFtmaWVsZC5WYWx1ZV0gfHwgb3B0aW9ucy52YWx1ZTtcclxuICAgICAgb3B0aW9ucy52YWx1ZSA9IHBhcnNlSW50KG9wdGlvbnMudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgb3B0aW9ucy50aXRsZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZC5UaXRsZSkgfHwgb3B0aW9ucy50aXRsZTtcclxuICAgIG9wdGlvbnMuc2NhbGVNYXggPSBmaWVsZC5NYXggfHwgb3B0aW9ucy5zY2FsZU1heDsgLy8gbm90IHVzaW5nXHJcbiAgICBvcHRpb25zLm1pblZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk1pblZhbHVlKSB8fCBvcHRpb25zLm1pblZhbHVlIHx8IDA7XHJcbiAgICBvcHRpb25zLm1heFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk1heFZhbHVlKSB8fCBvcHRpb25zLm1heFZhbHVlIHx8IDEwMDtcclxuICAgIG9wdGlvbnMuY29sb3JzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLkNvbG9yKSB8fCBvcHRpb25zLmNvbG9ycyB8fCB7IGNvbG9yOiBcIiMwMTc1YzdcIiB9O1xyXG4gICAgb3B0aW9ucy50cmFuc2l0aW9ucyA9IGZpZWxkLlRyYW5zaXRpb25zIHx8IG9wdGlvbnMudHJhbnNpdGlvbnM7XHJcbiAgICBvcHRpb25zLm1ham9yVGlja3MgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuTWFqb3JUaWNrcykgfHwgb3B0aW9ucy5tYWpvclRpY2tzIHx8IHsgdmlzaWJsZTogdHJ1ZSwgY29sb3I6ICcjMDAwMGZmJyB9O1xyXG4gICAgb3B0aW9ucy5taW5vclRpY2tzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk1pbm9yVGlja3MpIHx8IG9wdGlvbnMubWlub3JUaWNrcyB8fCB7IHZpc2libGU6IHRydWUsIGNvbG9yOiAnIzAwMDBmZicgfTtcclxuICAgIG9wdGlvbnMuc2hvd0xhYmVscyA9IGZpZWxkLlNob3dMYWJlbHMgIT0gdW5kZWZpbmVkID8gZmllbGQuU2hvd0xhYmVscyA6IG9wdGlvbnMuc2hvd0xhYmVscztcclxuICAgIG9wdGlvbnMuc3R5bGUgPSBmaWVsZC5TdHlsZSB8fCBvcHRpb25zLnN0eWxlO1xyXG4gICAgb3B0aW9ucy5yZXZlcnNlID0gZmllbGQuUmV2ZXJzZSB8fCBvcHRpb25zLnJldmVyc2U7XHJcbiAgICBvcHRpb25zLnN0YXJ0QW5nbGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuU3RhcnRBbmdsZSkgfHwgb3B0aW9ucy5zdGFydEFuZ2xlIHx8IDA7XHJcbiAgICBvcHRpb25zLmVuZEFuZ2xlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLkVuZEFuZ2xlKSB8fCBvcHRpb25zLmVuZEFuZ2xlIHx8IDE4MDtcclxuICAgIG9wdGlvbnMucmFuZ2VQbGFjZWhvbGRlckNvbG9yID0gZmllbGQuUmFuZ2VQbGFjZWhvbGRlckNvbG9yIHx8IG9wdGlvbnMucmFuZ2VQbGFjZWhvbGRlckNvbG9yO1xyXG4gICAgb3B0aW9ucy5yYW5nZUZyb20gPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuUmFuZ2VGcm9tKSB8fCBvcHRpb25zLnJhbmdlRnJvbTtcclxuICAgIG9wdGlvbnMucmFuZ2VUbyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZC5SYW5nZVRvKSB8fCBvcHRpb25zLnJhbmdlVG87XHJcbiAgICBvcHRpb25zLnJhbmdlQ29sb3IgPSBmaWVsZC5SYW5nZUNvbG9yIHx8IG9wdGlvbnMucmFuZ2VDb2xvcjtcclxuICAgIG9wdGlvbnMucmFuZ2VMaW5lQ2FwID0gZmllbGQuUmFuZ2VMaW5lQ2FwIHx8IG9wdGlvbnMucmFuZ2VMaW5lQ2FwO1xyXG4gICAgb3B0aW9ucy5yYW5nZVNpemUgPSBmaWVsZC5SYW5nZVNpemUgfHwgb3B0aW9ucy5yYW5nZVNpemU7XHJcbiAgICBvcHRpb25zLkdhdWdlQWxpZ25tZW50ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLkdhdWdlQWxpZ25tZW50KSB8fCBvcHRpb25zLkdhdWdlQWxpZ25tZW50O1xyXG4gICAgb3B0aW9ucy5wYWRkaW5nVmFsdWUgPSBvcHRpb25zLnZhbHVlLnRvU3RyaW5nKCkgPT09ICdOYU4nID8gb3B0aW9ucy5HYXVnZUFsaWdubWVudCA6ICcwJSc7XHJcbiAgfVxyXG5cclxuICBhbGlnbm1lbnQoKSB7XHJcbiAgICBjb25zdCBhbGlnbm1lbnRTdHlsZSA9IHtcclxuICAgICAgXCJwYWRkaW5nLXJpZ2h0XCI6IHRoaXMub3B0aW9uc1tcInBhZGRpbmdWYWx1ZVwiXVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWxpZ25tZW50U3R5bGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0YShnRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cCh0aGlzLmRhdGEsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gIDxkaXYgaWQ9XCJtYXJrZXRTaGFyZUNvbnRhaW5lclwiIGNsYXNzPVwiaW9uLXJvd1wiIGNsYXNzPVwiY29sLXhzLTEyIHN0YXRzLWdyYXBoXCIgKm5nSWY9XCJvcHRpb25zLnRpdGxlXCI+XHJcbiAgICA8aDYgc3R5bGU9XCJjb2xvcjogZ3JheTtcIj57eyBvcHRpb25zLnRpdGxlIH19PC9oNj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IFtuZ1N0eWxlXT0nYWxpZ25tZW50KCknPlxyXG4gICAgPGtlbmRvLWFyY2dhdWdlIFt2YWx1ZV09XCJvcHRpb25zLnZhbHVlXCIgW3RyYW5zaXRpb25zXT1cIm9wdGlvbnMudHJhbnNpdGlvbnNcIiBbY29sb3JzXT1cIm9wdGlvbnMuY29sb3JzXCIgc3R5bGU9XCJtYXJnaW4tdG9wOjUwcHg7d2lkdGg6OTAlIDtoZWlnaHQ6MTAwJTsgbWluLXdpZHRoOiAzMzBweDtcIj5cclxuICAgICAgPGtlbmRvLWFyY2dhdWdlLXNjYWxlIFttYWpvclRpY2tzXT1cIm9wdGlvbnMubWFqb3JUaWNrc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlub3JUaWNrc109XCJvcHRpb25zLm1pbm9yVGlja3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JldmVyc2VdPVwib3B0aW9ucy5yZXZlcnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFydEFuZ2xlXT1cIm9wdGlvbnMuc3RhcnRBbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5kQW5nbGVdPVwib3B0aW9ucy5lbmRBbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm9wdGlvbnMubWluVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJvcHRpb25zLm1heFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZVBsYWNlaG9sZGVyQ29sb3JdPVwib3B0aW9ucy5yYW5nZVBsYWNlaG9sZGVyQ29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmdlU2l6ZV09XCJvcHRpb25zLnJhbmdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFuZ2VMaW5lQ2FwXT1cIm9wdGlvbnMucmFuZ2VMaW5lQ2FwXCI+XHJcbiAgICAgICAgPGtlbmRvLWFyY2dhdWdlLXNjYWxlLWxhYmVscyBmb3JtYXQ9XCJsXCIgW2NvbG9yXT1cIm9wdGlvbnMubGFiZWxzQ29sb3JcIiBbdmlzaWJsZV09XCJvcHRpb25zLnNob3dMYWJlbHNcIj5cclxuICAgICAgICA8L2tlbmRvLWFyY2dhdWdlLXNjYWxlLWxhYmVscz5cclxuICAgICAgPC9rZW5kby1hcmNnYXVnZS1zY2FsZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvQXJjR2F1Z2VDZW50ZXJUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1jb2xvcj1cImNvbG9yXCI+XHJcbiAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cImNvbG9yXCI+e3sgdmFsdWUgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2tlbmRvLWFyY2dhdWdlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS08ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIlxyXG4gICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1zdHlsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjaGFydC10b3AtdGl0bGUgZTF0YWctc3R5bGUxXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCIgKm5nSWY9XCJvcHRpb25zLnRpdGxlXCI+XHJcbiAgICB7e29wdGlvbnMudGl0bGV9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTJcIj5cclxuICAgIDxrZW5kby1hcmNnYXVnZSBbdmFsdWVdPVwib3B0aW9ucy52YWx1ZVwiIFt0cmFuc2l0aW9uc109XCJvcHRpb25zLnRyYW5zaXRpb25zXCIgW2NvbG9yc109XCJvcHRpb25zLmNvbG9yc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImdldEdhdWdlU3R5bGUoKVwiIGNsYXNzPVwiZTF0YWctc3R5bGUzXCI+XHJcbiAgICAgIDxrZW5kby1hcmNnYXVnZS1zY2FsZSBbbWFqb3JUaWNrc109XCJvcHRpb25zLm1ham9yVGlja3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbm9yVGlja3NdPVwib3B0aW9ucy5taW5vclRpY2tzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXZlcnNlXT1cIm9wdGlvbnMucmV2ZXJzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhcnRBbmdsZV09XCJvcHRpb25zLnN0YXJ0QW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuZEFuZ2xlXT1cIm9wdGlvbnMuZW5kQW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJvcHRpb25zLm1pblZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwib3B0aW9ucy5tYXhWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFuZ2VQbGFjZWhvbGRlckNvbG9yXT1cIm9wdGlvbnMucmFuZ2VQbGFjZWhvbGRlckNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZVNpemVdPVwib3B0aW9ucy5yYW5nZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmdlTGluZUNhcF09XCJvcHRpb25zLnJhbmdlTGluZUNhcFwiPlxyXG4gICAgICAgIDxrZW5kby1hcmNnYXVnZS1zY2FsZS1sYWJlbHMgZm9ybWF0PVwibFwiIFtjb2xvcl09XCJvcHRpb25zLmxhYmVsc0NvbG9yXCIgW3Zpc2libGVdPVwib3B0aW9ucy5zaG93TGFiZWxzXCI+XHJcbiAgICAgICAgPC9rZW5kby1hcmNnYXVnZS1zY2FsZS1sYWJlbHM+XHJcbiAgICAgIDwva2VuZG8tYXJjZ2F1Z2Utc2NhbGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0FyY0dhdWdlQ2VudGVyVGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtY29sb3I9XCJjb2xvclwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zLmNoYXJ0SW5uZXJUZXh0MVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiIGNsYXNzPVwiZTF0YWctc3R5bGU0XCI+e3sgb3B0aW9ucy5jaGFydElubmVyVGV4dDEgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9ucy5jaGFydElubmVyVGV4dDJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTVcIiBjbGFzcz1cImUxdGFnLXN0eWxlNVwiPnt7IG9wdGlvbnMuY2hhcnRJbm5lclRleHQyIH19PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2tlbmRvLWFyY2dhdWdlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4tLT5cclxuXHJcbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdhdWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pnYXVnZS96Z2F1Z2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhdWdlL3pnYXVnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFjLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVN2RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBNEI1QyxZQUNTLGdCQUFtQztRQUUxQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBNUI1QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLFlBQU8sR0FBRztZQUNSLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxFQUFFLEVBQUU7WUFDVCxlQUFlLEVBQUUsRUFBRTtZQUNuQixlQUFlLEVBQUUsRUFBRTtZQUNuQixRQUFRLEVBQUUsRUFBRTtZQUNaLE1BQU0sRUFBRSxFQUFFO1lBQ1YsV0FBVyxFQUFFLEtBQUs7WUFDbEIsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQy9DLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUMvQyxRQUFRLEVBQUMsQ0FBQztZQUNWLFFBQVEs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RCxPQUFPLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDdkgsT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVGLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxjQUFjLEdBQUc7WUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1NBQzlDLENBQUM7UUFFRixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7OzRHQXZHVSxlQUFlO2dHQUFmLGVBQWUseUVDbkI1Qiwya0hBdURBOzJGRHBDYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkZpZWxkIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16Z2F1Z2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96Z2F1Z2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3pnYXVnZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpnYXVnZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nID0gdHJ1ZTsgXHJcblxyXG4gIG9wdGlvbnMgPSB7XHJcbiAgICB2YWx1ZTogMCxcclxuICAgIHRpdGxlOiAnJyxcclxuICAgIGNoYXJ0SW5uZXJUZXh0MTogJycsXHJcbiAgICBjaGFydElubmVyVGV4dDI6ICcnLFxyXG4gICAgc2NhbGVNYXg6IDUwLFxyXG4gICAgY29sb3JzOiBbXSxcclxuICAgIHRyYW5zaXRpb25zOiBmYWxzZSxcclxuICAgIG1ham9yVGlja3M6IHsgdmlzaWJsZTogdHJ1ZSwgY29sb3I6ICcjMDAwMGZmJyB9LFxyXG4gICAgbWlub3JUaWNrczogeyB2aXNpYmxlOiB0cnVlLCBjb2xvcjogJyMwMDAwZmYnIH0sXHJcbiAgICBtaW5WYWx1ZTowLFxyXG4gICAgbWF4VmFsdWU6IDIwMCxcclxuICAgIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgc3RhcnRBbmdsZTogMCxcclxuICAgIGVuZEFuZ2xlOiAxODAsXHJcbiAgICByYW5nZVBsYWNlaG9sZGVyQ29sb3I6ICcjZTZlNWU1JyxcclxuICAgIGxhYmVsc0NvbG9yOiAnIzAwMDBmZicsXHJcbiAgICByYW5nZUZyb206IDAsXHJcbiAgICByYW5nZVRvOiAxMDAsXHJcbiAgICByYW5nZUNvbG9yOiAnI2ZmNjM1OCcsXHJcbiAgICByYW5nZUxpbmVDYXA6ICdyb3VuZCcsXHJcbiAgICBzaG93TGFiZWxzOiB0cnVlLFxyXG4gICAgcmFuZ2VTaXplOiAxMCxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT3B0aW9ucykge1xyXG4gICAgICBjb25zdCBvcHRpb25UeXBlID0gdHlwZW9mICh0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgIGlmIChvcHRpb25UeXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCB0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9uVHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKHR5cGVvZiAob3B0aW9uVmFsdWUpID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIG9wdGlvblZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cCh0aGlzLmRhdGEsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEdhdWdlU3R5bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMyA/IHRoaXMuY29tcG9uZW50U2VydmljZS5jb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdCh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzKSA6IHsgJ3doaXRlLXNwYWNlJzogJ2luaXRpYWwnIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmllbGREZWNsYXJhdGlvbkZvclNldHVwKGZpZWxkOiBaRmllbGQsIG9wdGlvbnM6IGFueSkge1xyXG4gICAgaWYgKGZpZWxkLlZhbHVlLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgIG9wdGlvbnMudmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuVmFsdWUpIHx8IG9wdGlvbnMudmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgb3B0aW9ucy52YWx1ZSA9IHRoaXMuZ3JvdXAuek1vZGVsW2ZpZWxkLlZhbHVlXSB8fCBvcHRpb25zLnZhbHVlO1xyXG4gICAgICBvcHRpb25zLnZhbHVlID0gcGFyc2VJbnQob3B0aW9ucy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvcHRpb25zLnRpdGxlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLlRpdGxlKSB8fCBvcHRpb25zLnRpdGxlO1xyXG4gICAgb3B0aW9ucy5zY2FsZU1heCA9IGZpZWxkLk1heCB8fCBvcHRpb25zLnNjYWxlTWF4OyAvLyBub3QgdXNpbmdcclxuICAgIG9wdGlvbnMubWluVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuTWluVmFsdWUpIHx8IG9wdGlvbnMubWluVmFsdWUgfHwgMDtcclxuICAgIG9wdGlvbnMubWF4VmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuTWF4VmFsdWUpIHx8IG9wdGlvbnMubWF4VmFsdWUgfHwgMTAwO1xyXG4gICAgb3B0aW9ucy5jb2xvcnMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuQ29sb3IpIHx8IG9wdGlvbnMuY29sb3JzIHx8IHsgY29sb3I6IFwiIzAxNzVjN1wiIH07XHJcbiAgICBvcHRpb25zLnRyYW5zaXRpb25zID0gZmllbGQuVHJhbnNpdGlvbnMgfHwgb3B0aW9ucy50cmFuc2l0aW9ucztcclxuICAgIG9wdGlvbnMubWFqb3JUaWNrcyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZC5NYWpvclRpY2tzKSB8fCBvcHRpb25zLm1ham9yVGlja3MgfHwgeyB2aXNpYmxlOiB0cnVlLCBjb2xvcjogJyMwMDAwZmYnIH07XHJcbiAgICBvcHRpb25zLm1pbm9yVGlja3MgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuTWlub3JUaWNrcykgfHwgb3B0aW9ucy5taW5vclRpY2tzIHx8IHsgdmlzaWJsZTogdHJ1ZSwgY29sb3I6ICcjMDAwMGZmJyB9O1xyXG4gICAgb3B0aW9ucy5zaG93TGFiZWxzID0gZmllbGQuU2hvd0xhYmVscyAhPSB1bmRlZmluZWQgPyBmaWVsZC5TaG93TGFiZWxzIDogb3B0aW9ucy5zaG93TGFiZWxzO1xyXG4gICAgb3B0aW9ucy5zdHlsZSA9IGZpZWxkLlN0eWxlIHx8IG9wdGlvbnMuc3R5bGU7XHJcbiAgICBvcHRpb25zLnJldmVyc2UgPSBmaWVsZC5SZXZlcnNlIHx8IG9wdGlvbnMucmV2ZXJzZTtcclxuICAgIG9wdGlvbnMuc3RhcnRBbmdsZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZC5TdGFydEFuZ2xlKSB8fCBvcHRpb25zLnN0YXJ0QW5nbGUgfHwgMDtcclxuICAgIG9wdGlvbnMuZW5kQW5nbGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuRW5kQW5nbGUpIHx8IG9wdGlvbnMuZW5kQW5nbGUgfHwgMTgwO1xyXG4gICAgb3B0aW9ucy5yYW5nZVBsYWNlaG9sZGVyQ29sb3IgPSBmaWVsZC5SYW5nZVBsYWNlaG9sZGVyQ29sb3IgfHwgb3B0aW9ucy5yYW5nZVBsYWNlaG9sZGVyQ29sb3I7XHJcbiAgICBvcHRpb25zLnJhbmdlRnJvbSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZFsnUmFuZ2VGcm9tJ10pIHx8IG9wdGlvbnMucmFuZ2VGcm9tO1xyXG4gICAgb3B0aW9ucy5yYW5nZVRvID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkWydSYW5nZVRvJ10pIHx8IG9wdGlvbnMucmFuZ2VUbztcclxuICAgIG9wdGlvbnMucmFuZ2VDb2xvciA9IGZpZWxkLlJhbmdlQ29sb3IgfHwgb3B0aW9ucy5yYW5nZUNvbG9yO1xyXG4gICAgb3B0aW9ucy5yYW5nZUxpbmVDYXAgPSBmaWVsZC5SYW5nZUxpbmVDYXAgfHwgb3B0aW9ucy5yYW5nZUxpbmVDYXA7XHJcbiAgICBvcHRpb25zLnJhbmdlU2l6ZSA9IGZpZWxkLlJhbmdlU2l6ZSB8fCBvcHRpb25zLnJhbmdlU2l6ZTtcclxuICAgIG9wdGlvbnMuR2F1Z2VBbGlnbm1lbnQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuR2F1Z2VBbGlnbm1lbnQpIHx8IG9wdGlvbnMuR2F1Z2VBbGlnbm1lbnQ7XHJcbiAgICBvcHRpb25zLnBhZGRpbmdWYWx1ZSA9IG9wdGlvbnMudmFsdWUudG9TdHJpbmcoKSA9PT0gJ05hTicgPyBvcHRpb25zLkdhdWdlQWxpZ25tZW50IDogJzAlJztcclxuICB9XHJcblxyXG4gIGFsaWdubWVudCgpIHtcclxuICAgIGNvbnN0IGFsaWdubWVudFN0eWxlID0ge1xyXG4gICAgICBcInBhZGRpbmctcmlnaHRcIjogdGhpcy5vcHRpb25zW1wicGFkZGluZ1ZhbHVlXCJdXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhbGlnbm1lbnRTdHlsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRhKGdEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZ2V0RmllbGREZWNsYXJhdGlvbkZvclNldHVwKHRoaXMuZGF0YSwgdGhpcy5vcHRpb25zKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgPGRpdiBpZD1cIm1hcmtldFNoYXJlQ29udGFpbmVyXCIgY2xhc3M9XCJpb24tcm93XCIgY2xhc3M9XCJjb2wteHMtMTIgc3RhdHMtZ3JhcGhcIiAqbmdJZj1cIm9wdGlvbnMudGl0bGVcIj5cclxuICAgIDxoNiBzdHlsZT1cImNvbG9yOiBncmF5O1wiPnt7IG9wdGlvbnMudGl0bGUgfX08L2g2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW25nU3R5bGVdPSdhbGlnbm1lbnQoKSc+XHJcbiAgICA8a2VuZG8tYXJjZ2F1Z2UgW3ZhbHVlXT1cIm9wdGlvbnMudmFsdWVcIiBbdHJhbnNpdGlvbnNdPVwib3B0aW9ucy50cmFuc2l0aW9uc1wiIFtjb2xvcnNdPVwib3B0aW9ucy5jb2xvcnNcIiBzdHlsZT1cIm1hcmdpbi10b3A6NTBweDt3aWR0aDo5MCUgO2hlaWdodDoxMDAlOyBtaW4td2lkdGg6IDMzMHB4O1wiPlxyXG4gICAgICA8a2VuZG8tYXJjZ2F1Z2Utc2NhbGUgW21ham9yVGlja3NdPVwib3B0aW9ucy5tYWpvclRpY2tzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5vclRpY2tzXT1cIm9wdGlvbnMubWlub3JUaWNrc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmV2ZXJzZV09XCJvcHRpb25zLnJldmVyc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXJ0QW5nbGVdPVwib3B0aW9ucy5zdGFydEFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmRBbmdsZV09XCJvcHRpb25zLmVuZEFuZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwib3B0aW9ucy5taW5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm9wdGlvbnMubWF4VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmdlUGxhY2Vob2xkZXJDb2xvcl09XCJvcHRpb25zLnJhbmdlUGxhY2Vob2xkZXJDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFuZ2VTaXplXT1cIm9wdGlvbnMucmFuZ2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZUxpbmVDYXBdPVwib3B0aW9ucy5yYW5nZUxpbmVDYXBcIj5cclxuICAgICAgICA8a2VuZG8tYXJjZ2F1Z2Utc2NhbGUtbGFiZWxzIGZvcm1hdD1cImxcIiBbY29sb3JdPVwib3B0aW9ucy5sYWJlbHNDb2xvclwiIFt2aXNpYmxlXT1cIm9wdGlvbnMuc2hvd0xhYmVsc1wiPlxyXG4gICAgICAgIDwva2VuZG8tYXJjZ2F1Z2Utc2NhbGUtbGFiZWxzPlxyXG4gICAgICA8L2tlbmRvLWFyY2dhdWdlLXNjYWxlPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9BcmNHYXVnZUNlbnRlclRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWNvbG9yPVwiY29sb3JcIj5cclxuICAgICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eyB2YWx1ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwva2VuZG8tYXJjZ2F1Z2U+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLTxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLXN0eWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNoYXJ0LXRvcC10aXRsZSBlMXRhZy1zdHlsZTFcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIiAqbmdJZj1cIm9wdGlvbnMudGl0bGVcIj5cclxuICAgIHt7b3B0aW9ucy50aXRsZX19XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTJcIiBjbGFzcz1cImUxdGFnLXN0eWxlMlwiPlxyXG4gICAgPGtlbmRvLWFyY2dhdWdlIFt2YWx1ZV09XCJvcHRpb25zLnZhbHVlXCIgW3RyYW5zaXRpb25zXT1cIm9wdGlvbnMudHJhbnNpdGlvbnNcIiBbY29sb3JzXT1cIm9wdGlvbnMuY29sb3JzXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiZ2V0R2F1Z2VTdHlsZSgpXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTNcIj5cclxuICAgICAgPGtlbmRvLWFyY2dhdWdlLXNjYWxlIFttYWpvclRpY2tzXT1cIm9wdGlvbnMubWFqb3JUaWNrc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlub3JUaWNrc109XCJvcHRpb25zLm1pbm9yVGlja3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JldmVyc2VdPVwib3B0aW9ucy5yZXZlcnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFydEFuZ2xlXT1cIm9wdGlvbnMuc3RhcnRBbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5kQW5nbGVdPVwib3B0aW9ucy5lbmRBbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm9wdGlvbnMubWluVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJvcHRpb25zLm1heFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZVBsYWNlaG9sZGVyQ29sb3JdPVwib3B0aW9ucy5yYW5nZVBsYWNlaG9sZGVyQ29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmdlU2l6ZV09XCJvcHRpb25zLnJhbmdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFuZ2VMaW5lQ2FwXT1cIm9wdGlvbnMucmFuZ2VMaW5lQ2FwXCI+XHJcbiAgICAgICAgPGtlbmRvLWFyY2dhdWdlLXNjYWxlLWxhYmVscyBmb3JtYXQ9XCJsXCIgW2NvbG9yXT1cIm9wdGlvbnMubGFiZWxzQ29sb3JcIiBbdmlzaWJsZV09XCJvcHRpb25zLnNob3dMYWJlbHNcIj5cclxuICAgICAgICA8L2tlbmRvLWFyY2dhdWdlLXNjYWxlLWxhYmVscz5cclxuICAgICAgPC9rZW5kby1hcmNnYXVnZS1zY2FsZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvQXJjR2F1Z2VDZW50ZXJUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1jb2xvcj1cImNvbG9yXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIm9wdGlvbnMuY2hhcnRJbm5lclRleHQxXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTRcIj57eyBvcHRpb25zLmNoYXJ0SW5uZXJUZXh0MSB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zLmNoYXJ0SW5uZXJUZXh0MlwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNVwiIGNsYXNzPVwiZTF0YWctc3R5bGU1XCI+e3sgb3B0aW9ucy5jaGFydElubmVyVGV4dDIgfX08L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwva2VuZG8tYXJjZ2F1Z2U+XHJcbiAgPC9kaXY+XHJcbjwvZGl2Pi0tPlxyXG5cclxuIl19
|