nuxeo-development-framework 5.0.5 → 5.0.7

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.
Files changed (23) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +172 -99
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
  4. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +35 -35
  5. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
  6. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  7. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +22 -9
  8. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +22 -9
  9. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +40 -18
  10. package/esm2015/lib/shared/services/base/cache-base.service.js +36 -18
  11. package/esm2015/lib/shared/services/base/config/default-ttl-config.js +4 -2
  12. package/esm2015/lib/shared/services/base/constants/default-cache-options.js +2 -1
  13. package/esm2015/lib/shared/services/base/models/cache-info-model.js +1 -1
  14. package/fesm2015/nuxeo-development-framework.js +155 -86
  15. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  16. package/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.d.ts +12 -7
  17. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts +2 -1
  18. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +2 -1
  19. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.d.ts +10 -4
  20. package/lib/shared/services/base/config/default-ttl-config.d.ts +2 -0
  21. package/lib/shared/services/base/constants/default-cache-options.d.ts +1 -0
  22. package/lib/shared/services/base/models/cache-info-model.d.ts +1 -0
  23. package/package.json +1 -1
@@ -17,14 +17,23 @@ export class HijriDatepickerComponent {
17
17
  this.disabled = false;
18
18
  this.range = false;
19
19
  this.vertical = false;
20
+ this.emitOnBlur = true;
20
21
  this.hoveredDate = null;
21
22
  // this.fromDate = calendar.getToday();
22
23
  }
23
24
  isHovered(date) {
24
- return this.selectedDate && (this.selectedDate.from && !this.selectedDate.to && this.hoveredDate && date.after(this.selectedDate.from) && date.before(this.hoveredDate));
25
+ return (this.selectedDate &&
26
+ this.selectedDate.from &&
27
+ !this.selectedDate.to &&
28
+ this.hoveredDate &&
29
+ date.after(this.selectedDate.from) &&
30
+ date.before(this.hoveredDate));
25
31
  }
26
32
  isInside(date) {
27
- return this.selectedDate && (this.selectedDate.to && date.after(this.selectedDate.from) && date.before(this.selectedDate.to));
33
+ return (this.selectedDate &&
34
+ this.selectedDate.to &&
35
+ date.after(this.selectedDate.from) &&
36
+ date.before(this.selectedDate.to));
28
37
  }
29
38
  isToday(date) {
30
39
  return date.equals(this.calendar.getToday());
@@ -33,7 +42,11 @@ export class HijriDatepickerComponent {
33
42
  return this.selectedDate && !this.range && date.equals(this.selectedDate);
34
43
  }
35
44
  isRange(date) {
36
- return this.selectedDate && (date.equals(this.selectedDate.from) || (this.selectedDate.to && date.equals(this.selectedDate.to)) || this.isInside(date) || this.isHovered(date));
45
+ return (this.selectedDate &&
46
+ (date.equals(this.selectedDate.from) ||
47
+ (this.selectedDate.to && date.equals(this.selectedDate.to)) ||
48
+ this.isInside(date) ||
49
+ this.isHovered(date)));
37
50
  }
38
51
  onDateSelection(date) {
39
52
  if (this.range) {
@@ -60,7 +73,7 @@ export class HijriDatepickerComponent {
60
73
  return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;
61
74
  }
62
75
  onBlur() {
63
- if (!this.selectedDate) {
76
+ if (!this.selectedDate && this.emitOnBlur) {
64
77
  this.selectedDateChange.emit(null);
65
78
  }
66
79
  }
@@ -79,7 +92,7 @@ export class HijriDatepickerComponent {
79
92
  }
80
93
  }
81
94
  HijriDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HijriDatepickerComponent, deps: [{ token: i1.NgbCalendar }, { token: i1.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Component });
82
- HijriDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriDatepickerComponent, selector: "hijri-date-picker", inputs: { selectedDate: "selectedDate", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", min: "min", max: "max", name: "name", range: "range", vertical: "vertical", placeHolder: "placeHolder" }, outputs: { selectedDateChange: "selectedDateChange" }, providers: [
95
+ HijriDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriDatepickerComponent, selector: "hijri-date-picker", inputs: { selectedDate: "selectedDate", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", min: "min", max: "max", name: "name", range: "range", vertical: "vertical", emitOnBlur: "emitOnBlur", placeHolder: "placeHolder" }, outputs: { selectedDateChange: "selectedDateChange" }, providers: [
83
96
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
84
97
  { provide: NgbDatepickerI18n, useClass: IslamicI18n }
85
98
  ], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div provideParentForm>\r\n\t<input\r\n\t\tclass=\"form-control\"\r\n\t\t[ngClass]=\"{ hidden: range, 'input-filled': selectedDate }\"\r\n\t\t[ngModel]=\"!range && selectedDate\"\r\n\t\t(ngModelChange)=\"!range && (selectedDate = $event)\"\r\n\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\tngbDatepicker\r\n\t\t(click)=\"d.toggle()\"\r\n\t\t(keyup.enter)=\"openDatePicker()\"\r\n\t\t(dateSelect)=\"onDateSelection($event)\"\r\n\t\t#d=\"ngbDatepicker\"\r\n\t\tfirstDayOfWeek=\"7\"\r\n\t\t[readonly]=\"readonly\"\r\n\t\t[autoClose]=\"range ? 'outside' : true\"\r\n\t\t[minDate]=\"min\"\r\n\t\t[maxDate]=\"max\"\r\n\t\t[required]=\"isRequired\"\r\n\t\t[displayMonths]=\"range ? 2 : 1\"\r\n\t\t[name]=\"name\"\r\n\t\t[startDate]=\"range ? selectedDate.from! : selectedDate!\"\r\n\t\t[dayTemplate]=\"t\"\r\n\t\t(blur)=\"onBlur()\"\r\n\t\t[footerTemplate]=\"footerTemplate\"\r\n\t\t[disabled]=\"disabled\"\r\n\t\tcontainer=\"body\"\r\n\t/>\r\n\t<ng-container *ngIf=\"range\">\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpFromDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpFromDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.from)\"\r\n\t\t\t\t\t(input)=\"fromDate = validateInput(selectedDate.from, dpFromDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"form-group ranger\" [ngClass]=\"{ vertical: vertical }\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<input\r\n\t\t\t\t\t#dpToDate\r\n\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t(click)=\"d.toggle()\"\r\n\t\t\t\t\t[placeholder]=\"placeHolder ? placeHolder : 'd/M/yyyy'\"\r\n\t\t\t\t\tname=\"dpToDate\"\r\n\t\t\t\t\t[value]=\"formatter.format(selectedDate.to)\"\r\n\t\t\t\t\t(input)=\"selectedDate.to = validateInput(selectedDate.to, dpToDate.value)\"\r\n\t\t\t\t/>\r\n\t\t\t\t<div class=\"input-group-append\">\r\n\t\t\t\t\t<button class=\"btn btn-outline-secondary\" (click)=\"d.toggle()\" type=\"button\">\r\n\t\t\t\t\t\t<i class=\"bi bi-calendar-week icon\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-container>\r\n</div>\r\n<ng-template #t let-date let-focused=\"focused\">\r\n\t<span\r\n\t\tclass=\"custom-day\"\r\n\t\t[class.focused]=\"focused || isToday(date)\"\r\n\t\t[class.range]=\"isRange(date) || isSelectedDate(date)\"\r\n\t\t[class.faded]=\"isHovered(date) || (isInside(date) && range)\"\r\n\t\t(mouseenter)=\"hoveredDate = date\"\r\n\t\t(mouseleave)=\"hoveredDate = null\"\r\n\t>\r\n\t\t{{ date.day }}\r\n\t</span>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n\t<hr class=\"my-0\" />\r\n\t<button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">\r\n\t\t{{ 'BUTTONS.CLOSE' | translate }}\r\n\t</button>\r\n\t<button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">\r\n\t\t{{ 'BUTTONS.CLEAR' | translate }}\r\n\t</button>\r\n</ng-template>\r\n", styles: [".date-input-container{position:relative}.date-input-container .date-input-wrapper{position:absolute;width:100%;height:100%;z-index:999999}.hijriInput{border-top-left-radius:0;border-bottom-left-radius:0}.input-filled{border-color:#1a96c6!important}.ngb-dp-weekday{width:2.1rem!important}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:#0275d8;color:#fff}.custom-day.faded{background-color:#0275d880}.ranger{width:calc(50% - 5px);margin:0 2px;float:left}.ranger.vertical{width:calc(100% - 5px);margin:8px 2px}.ranger.vertical:nth-child(2){margin-top:0}.ranger.vertical:last-child{margin-bottom:0}.rtl .custom-select{background:#ffffff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") left .75rem center/8px 10px no-repeat}.rtl .ngb-dp-arrow-btn{transform:rotate(180deg)}.rtl .ranger{float:right}\n"], directives: [{ type: i2.ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i5.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
@@ -92,9 +105,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
92
105
  { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
93
106
  { provide: NgbDatepickerI18n, useClass: IslamicI18n }
94
107
  ],
95
- styleUrls: [
96
- './hijri-date-picker.component.scss'
97
- ],
108
+ styleUrls: ['./hijri-date-picker.component.scss'],
98
109
  encapsulation: ViewEncapsulation.None
99
110
  }]
100
111
  }], ctorParameters: function () { return [{ type: i1.NgbCalendar }, { type: i1.NgbDateParserFormatter }]; }, propDecorators: { datePicker: [{
@@ -120,7 +131,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
120
131
  type: Input
121
132
  }], vertical: [{
122
133
  type: Input
134
+ }], emitOnBlur: [{
135
+ type: Input
123
136
  }], placeHolder: [{
124
137
  type: Input
125
138
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE9BQU8sRUFBMEIsaUJBQWlCLEVBQWlCLE1BQU0sNEJBQTRCLENBQUM7QUFDeEosT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBY3RELE1BQU0sT0FBTyx3QkFBd0I7SUFxQm5DLFlBQW1CLFFBQXFCLEVBQVMsU0FBaUM7UUFBL0QsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQXdCO1FBZnhFLHVCQUFrQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQW1CLElBQUksQ0FBQztRQU1qQyx1Q0FBdUM7SUFDekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzSyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xMLENBQUM7SUFDRCxlQUFlLENBQUMsSUFBSTtRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQy9CO2lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4RyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7YUFDL0I7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUVsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUVqRDtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsWUFBNEIsRUFBRSxLQUFhO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3JHLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBRyxJQUFJLENBQUMsWUFBWSxJQUFHLElBQUksSUFBRyxJQUFJLENBQUMsWUFBWSxJQUFFLFNBQVMsRUFBQztZQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO2FBQUk7WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBRXZCO0lBQ0gsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7c0hBcEZVLHdCQUF3QjswR0FBeEIsd0JBQXdCLDJUQVR4QjtRQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUU7UUFDOUQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtLQUN0RCwySENWSCxnekdBd0ZBOzRGRHhFYSx3QkFBd0I7a0JBWnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLG1DQUFtQztvQkFDaEQsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUU7d0JBQzlELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7cUJBQ3REO29CQUNELFNBQVMsRUFBRTt3QkFDVCxvQ0FBb0M7cUJBQ3JDO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzt1SUFJaUIsVUFBVTtzQkFBekIsU0FBUzt1QkFBQyxHQUFHO2dCQUVMLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JDYWxlbmRhciwgTmdiQ2FsZW5kYXJJc2xhbWljVW1hbHF1cmEsIE5nYkRhdGUsIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIE5nYkRhdGVwaWNrZXJJMThuLCBOZ2JEYXRlU3RydWN0IH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBJc2xhbWljSTE4biB9IGZyb20gJy4uLy4uL3V0aWxzL0lzbGFtaWNJMThuJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaGlqcmktZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oaWpyaS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTmdiQ2FsZW5kYXIsIHVzZUNsYXNzOiBOZ2JDYWxlbmRhcklzbGFtaWNVbWFscXVyYSB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JEYXRlcGlja2VySTE4biwgdXNlQ2xhc3M6IElzbGFtaWNJMThuIH1cclxuICBdLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4vaGlqcmktZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaWpyaURhdGVwaWNrZXJDb21wb25lbnQge1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnZCcpIGRhdGVQaWNrZXI6IGFueTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRlO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbjogTmdiRGF0ZVN0cnVjdDtcclxuICBASW5wdXQoKSBtYXg6IE5nYkRhdGVTdHJ1Y3Q7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJhbmdlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmVydGljYWwgPSBmYWxzZTtcclxuICBob3ZlcmVkRGF0ZTogTmdiRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gIGZyb21EYXRlO1xyXG4gIHRvRGF0ZTtcclxuICBASW5wdXQoKSBwbGFjZUhvbGRlcjogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2FsZW5kYXI6IE5nYkNhbGVuZGFyLCBwdWJsaWMgZm9ybWF0dGVyOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyKSB7XHJcbiAgICAvLyB0aGlzLmZyb21EYXRlID0gY2FsZW5kYXIuZ2V0VG9kYXkoKTtcclxuICB9XHJcblxyXG4gIGlzSG92ZXJlZChkYXRlOiBOZ2JEYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGUgJiYgKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gJiYgIXRoaXMuc2VsZWN0ZWREYXRlLnRvICYmIHRoaXMuaG92ZXJlZERhdGUgJiYgZGF0ZS5hZnRlcih0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tKSAmJiBkYXRlLmJlZm9yZSh0aGlzLmhvdmVyZWREYXRlKSk7XHJcbiAgfVxyXG5cclxuICBpc0luc2lkZShkYXRlOiBOZ2JEYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGUgJiYgKHRoaXMuc2VsZWN0ZWREYXRlLnRvICYmIGRhdGUuYWZ0ZXIodGhpcy5zZWxlY3RlZERhdGUuZnJvbSkgJiYgZGF0ZS5iZWZvcmUodGhpcy5zZWxlY3RlZERhdGUudG8pKTtcclxuICB9XHJcblxyXG4gIGlzVG9kYXkoZGF0ZSkge1xyXG4gICAgcmV0dXJuIGRhdGUuZXF1YWxzKHRoaXMuY2FsZW5kYXIuZ2V0VG9kYXkoKSk7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkRGF0ZShkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGUgJiYgIXRoaXMucmFuZ2UgJiYgZGF0ZS5lcXVhbHModGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuICBcclxuICBpc1JhbmdlKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRGF0ZSAmJiAoZGF0ZS5lcXVhbHModGhpcy5zZWxlY3RlZERhdGUuZnJvbSkgfHwgKHRoaXMuc2VsZWN0ZWREYXRlLnRvICYmIGRhdGUuZXF1YWxzKHRoaXMuc2VsZWN0ZWREYXRlLnRvKSkgfHwgdGhpcy5pc0luc2lkZShkYXRlKSB8fCB0aGlzLmlzSG92ZXJlZChkYXRlKSk7XHJcbiAgfVxyXG4gIG9uRGF0ZVNlbGVjdGlvbihkYXRlKSB7XHJcbiAgICBpZiAodGhpcy5yYW5nZSkge1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlLmZyb20gJiYgIXRoaXMuc2VsZWN0ZWREYXRlLnRvKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZnJvbSA9IGRhdGU7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGUuZnJvbSAmJiAhdGhpcy5zZWxlY3RlZERhdGUudG8gJiYgZGF0ZSAmJiBkYXRlLmFmdGVyKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20pKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUudG8gPSBkYXRlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnRvID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tID0gZGF0ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuZnJvbSAmJiB0aGlzLnNlbGVjdGVkRGF0ZS50bykge1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YWxpZGF0ZUlucHV0KGN1cnJlbnRWYWx1ZTogTmdiRGF0ZSB8IG51bGwsIGlucHV0OiBzdHJpbmcpOiBOZ2JEYXRlIHwgbnVsbCB7XHJcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLmZvcm1hdHRlci5wYXJzZShpbnB1dCk7XHJcbiAgICByZXR1cm4gcGFyc2VkICYmIHRoaXMuY2FsZW5kYXIuaXNWYWxpZChOZ2JEYXRlLmZyb20ocGFyc2VkKSkgPyBOZ2JEYXRlLmZyb20ocGFyc2VkKSA6IGN1cnJlbnRWYWx1ZTtcclxuICB9XHJcbiAgb25CbHVyKCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuRGF0ZVBpY2tlcigpe1xyXG4gICAgaWYodGhpcy5zZWxlY3RlZERhdGUgPT1udWxsIHx8dGhpcy5zZWxlY3RlZERhdGU9PXVuZGVmaW5lZCl7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXIudG9nZ2xlKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMucmFuZ2UgPyB7IGZyb206IHVuZGVmaW5lZCwgdG86IHVuZGVmaW5lZCB9IDogdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmNsb3NlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IHByb3ZpZGVQYXJlbnRGb3JtPlxyXG5cdDxpbnB1dFxyXG5cdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0W25nQ2xhc3NdPVwieyBoaWRkZW46IHJhbmdlLCAnaW5wdXQtZmlsbGVkJzogc2VsZWN0ZWREYXRlIH1cIlxyXG5cdFx0W25nTW9kZWxdPVwiIXJhbmdlICYmIHNlbGVjdGVkRGF0ZVwiXHJcblx0XHQobmdNb2RlbENoYW5nZSk9XCIhcmFuZ2UgJiYgKHNlbGVjdGVkRGF0ZSA9ICRldmVudClcIlxyXG5cdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyID8gcGxhY2VIb2xkZXIgOiAnZC9NL3l5eXknXCJcclxuXHRcdG5nYkRhdGVwaWNrZXJcclxuXHRcdChjbGljayk9XCJkLnRvZ2dsZSgpXCJcclxuXHRcdChrZXl1cC5lbnRlcik9XCJvcGVuRGF0ZVBpY2tlcigpXCJcclxuXHRcdChkYXRlU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuXHRcdCNkPVwibmdiRGF0ZXBpY2tlclwiXHJcblx0XHRmaXJzdERheU9mV2Vlaz1cIjdcIlxyXG5cdFx0W3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuXHRcdFthdXRvQ2xvc2VdPVwicmFuZ2UgPyAnb3V0c2lkZScgOiB0cnVlXCJcclxuXHRcdFttaW5EYXRlXT1cIm1pblwiXHJcblx0XHRbbWF4RGF0ZV09XCJtYXhcIlxyXG5cdFx0W3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIlxyXG5cdFx0W2Rpc3BsYXlNb250aHNdPVwicmFuZ2UgPyAyIDogMVwiXHJcblx0XHRbbmFtZV09XCJuYW1lXCJcclxuXHRcdFtzdGFydERhdGVdPVwicmFuZ2UgPyBzZWxlY3RlZERhdGUuZnJvbSEgOiBzZWxlY3RlZERhdGUhXCJcclxuXHRcdFtkYXlUZW1wbGF0ZV09XCJ0XCJcclxuXHRcdChibHVyKT1cIm9uQmx1cigpXCJcclxuXHRcdFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcblx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG5cdFx0Y29udGFpbmVyPVwiYm9keVwiXHJcblx0Lz5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwicmFuZ2VcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJhbmdlclwiIFtuZ0NsYXNzXT1cInsgdmVydGljYWw6IHZlcnRpY2FsIH1cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcblx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHQjZHBGcm9tRGF0ZVxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cImQudG9nZ2xlKClcIlxyXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyID8gcGxhY2VIb2xkZXIgOiAnZC9NL3l5eXknXCJcclxuXHRcdFx0XHRcdG5hbWU9XCJkcEZyb21EYXRlXCJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCJmb3JtYXR0ZXIuZm9ybWF0KHNlbGVjdGVkRGF0ZS5mcm9tKVwiXHJcblx0XHRcdFx0XHQoaW5wdXQpPVwiZnJvbURhdGUgPSB2YWxpZGF0ZUlucHV0KHNlbGVjdGVkRGF0ZS5mcm9tLCBkcEZyb21EYXRlLnZhbHVlKVwiXHJcblx0XHRcdFx0Lz5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJkLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiPlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLWNhbGVuZGFyLXdlZWsgaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcmFuZ2VyXCIgW25nQ2xhc3NdPVwieyB2ZXJ0aWNhbDogdmVydGljYWwgfVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuXHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdCNkcFRvRGF0ZVxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cImQudG9nZ2xlKClcIlxyXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyID8gcGxhY2VIb2xkZXIgOiAnZC9NL3l5eXknXCJcclxuXHRcdFx0XHRcdG5hbWU9XCJkcFRvRGF0ZVwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZm9ybWF0dGVyLmZvcm1hdChzZWxlY3RlZERhdGUudG8pXCJcclxuXHRcdFx0XHRcdChpbnB1dCk9XCJzZWxlY3RlZERhdGUudG8gPSB2YWxpZGF0ZUlucHV0KHNlbGVjdGVkRGF0ZS50bywgZHBUb0RhdGUudmFsdWUpXCJcclxuXHRcdFx0XHQvPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImQudG9nZ2xlKClcIiB0eXBlPVwiYnV0dG9uXCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiYmkgYmktY2FsZW5kYXItd2VlayBpY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI3QgbGV0LWRhdGUgbGV0LWZvY3VzZWQ9XCJmb2N1c2VkXCI+XHJcblx0PHNwYW5cclxuXHRcdGNsYXNzPVwiY3VzdG9tLWRheVwiXHJcblx0XHRbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkIHx8IGlzVG9kYXkoZGF0ZSlcIlxyXG5cdFx0W2NsYXNzLnJhbmdlXT1cImlzUmFuZ2UoZGF0ZSkgfHwgaXNTZWxlY3RlZERhdGUoZGF0ZSlcIlxyXG5cdFx0W2NsYXNzLmZhZGVkXT1cImlzSG92ZXJlZChkYXRlKSB8fCAoaXNJbnNpZGUoZGF0ZSkgJiYgcmFuZ2UpXCJcclxuXHRcdChtb3VzZWVudGVyKT1cImhvdmVyZWREYXRlID0gZGF0ZVwiXHJcblx0XHQobW91c2VsZWF2ZSk9XCJob3ZlcmVkRGF0ZSA9IG51bGxcIlxyXG5cdD5cclxuXHRcdHt7IGRhdGUuZGF5IH19XHJcblx0PC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuXHQ8aHIgY2xhc3M9XCJteS0wXCIgLz5cclxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIG0tMiBmbG9hdC1yaWdodFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZC5jbG9zZSgpXCI+XHJcblx0XHR7eyAnQlVUVE9OUy5DTE9TRScgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L2J1dHRvbj5cclxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgZmxvYXQtbGVmdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPlxyXG5cdFx0e3sgJ0JVVFRPTlMuQ0xFQVInIHwgdHJhbnNsYXRlIH19XHJcblx0PC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQ04sV0FBVyxFQUNYLDBCQUEwQixFQUMxQixPQUFPLEVBRVAsaUJBQWlCLEVBRWpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBWXRELE1BQU0sT0FBTyx3QkFBd0I7SUFvQnBDLFlBQ1EsUUFBcUIsRUFDckIsU0FBaUM7UUFEakMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQWxCL0IsdUJBQWtCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEs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O3NIQXJHVyx3QkFBd0I7MEdBQXhCLHdCQUF3QixxVkFQekI7UUFDVixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFO1FBQzlELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7S0FDckQsMkhDakJGLGd6R0F3RkE7NEZEbkVhLHdCQUF3QjtrQkFWcEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsbUNBQW1DO29CQUNoRCxTQUFTLEVBQUU7d0JBQ1YsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRTt3QkFDOUQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtxQkFDckQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUNyQzt1SUFFZ0IsVUFBVTtzQkFBekIsU0FBUzt1QkFBQyxHQUFHO2dCQUVMLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0TmdiQ2FsZW5kYXIsXHJcblx0TmdiQ2FsZW5kYXJJc2xhbWljVW1hbHF1cmEsXHJcblx0TmdiRGF0ZSxcclxuXHROZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLFxyXG5cdE5nYkRhdGVwaWNrZXJJMThuLFxyXG5cdE5nYkRhdGVTdHJ1Y3RcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IElzbGFtaWNJMThuIH0gZnJvbSAnLi4vLi4vdXRpbHMvSXNsYW1pY0kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdoaWpyaS1kYXRlLXBpY2tlcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2hpanJpLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0eyBwcm92aWRlOiBOZ2JDYWxlbmRhciwgdXNlQ2xhc3M6IE5nYkNhbGVuZGFySXNsYW1pY1VtYWxxdXJhIH0sXHJcblx0XHR7IHByb3ZpZGU6IE5nYkRhdGVwaWNrZXJJMThuLCB1c2VDbGFzczogSXNsYW1pY0kxOG4gfVxyXG5cdF0sXHJcblx0c3R5bGVVcmxzOiBbJy4vaGlqcmktZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaWpyaURhdGVwaWNrZXJDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoJ2QnKSBkYXRlUGlja2VyOiBhbnk7XHJcblxyXG5cdEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTtcclxuXHRAT3V0cHV0KCkgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0QElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuXHRASW5wdXQoKSBpc1JlcXVpcmVkID0gZmFsc2U7XHJcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRASW5wdXQoKSBtaW46IE5nYkRhdGVTdHJ1Y3Q7XHJcblx0QElucHV0KCkgbWF4OiBOZ2JEYXRlU3RydWN0O1xyXG5cdEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuXHRASW5wdXQoKSByYW5nZSA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHZlcnRpY2FsID0gZmFsc2U7XHJcblx0QElucHV0KCkgZW1pdE9uQmx1ciA9IHRydWU7XHJcblx0aG92ZXJlZERhdGU6IE5nYkRhdGUgfCBudWxsID0gbnVsbDtcclxuXHRmcm9tRGF0ZTtcclxuXHR0b0RhdGU7XHJcblx0QElucHV0KCkgcGxhY2VIb2xkZXI6IHN0cmluZztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgY2FsZW5kYXI6IE5nYkNhbGVuZGFyLFxyXG5cdFx0cHVibGljIGZvcm1hdHRlcjogTmdiRGF0ZVBhcnNlckZvcm1hdHRlclxyXG5cdCkge1xyXG5cdFx0Ly8gdGhpcy5mcm9tRGF0ZSA9IGNhbGVuZGFyLmdldFRvZGF5KCk7XHJcblx0fVxyXG5cclxuXHRpc0hvdmVyZWQoZGF0ZTogTmdiRGF0ZSkge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgJiZcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUuZnJvbSAmJlxyXG5cdFx0XHQhdGhpcy5zZWxlY3RlZERhdGUudG8gJiZcclxuXHRcdFx0dGhpcy5ob3ZlcmVkRGF0ZSAmJlxyXG5cdFx0XHRkYXRlLmFmdGVyKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20pICYmXHJcblx0XHRcdGRhdGUuYmVmb3JlKHRoaXMuaG92ZXJlZERhdGUpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0aXNJbnNpZGUoZGF0ZTogTmdiRGF0ZSkge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgJiZcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUudG8gJiZcclxuXHRcdFx0ZGF0ZS5hZnRlcih0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tKSAmJlxyXG5cdFx0XHRkYXRlLmJlZm9yZSh0aGlzLnNlbGVjdGVkRGF0ZS50bylcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRpc1RvZGF5KGRhdGUpIHtcclxuXHRcdHJldHVybiBkYXRlLmVxdWFscyh0aGlzLmNhbGVuZGFyLmdldFRvZGF5KCkpO1xyXG5cdH1cclxuXHJcblx0aXNTZWxlY3RlZERhdGUoZGF0ZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRlICYmICF0aGlzLnJhbmdlICYmIGRhdGUuZXF1YWxzKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHR9XHJcblxyXG5cdGlzUmFuZ2UoZGF0ZTogTmdiRGF0ZSkge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgJiZcclxuXHRcdFx0KGRhdGUuZXF1YWxzKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20pIHx8XHJcblx0XHRcdFx0KHRoaXMuc2VsZWN0ZWREYXRlLnRvICYmIGRhdGUuZXF1YWxzKHRoaXMuc2VsZWN0ZWREYXRlLnRvKSkgfHxcclxuXHRcdFx0XHR0aGlzLmlzSW5zaWRlKGRhdGUpIHx8XHJcblx0XHRcdFx0dGhpcy5pc0hvdmVyZWQoZGF0ZSkpXHJcblx0XHQpO1xyXG5cdH1cclxuXHRvbkRhdGVTZWxlY3Rpb24oZGF0ZSkge1xyXG5cdFx0aWYgKHRoaXMucmFuZ2UpIHtcclxuXHRcdFx0aWYgKCF0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tICYmICF0aGlzLnNlbGVjdGVkRGF0ZS50bykge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gPSBkYXRlO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gJiYgIXRoaXMuc2VsZWN0ZWREYXRlLnRvICYmIGRhdGUgJiYgZGF0ZS5hZnRlcih0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tKSkge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlLnRvID0gZGF0ZTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZS50byA9IG51bGw7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZERhdGUuZnJvbSA9IGRhdGU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gJiYgdGhpcy5zZWxlY3RlZERhdGUudG8pIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHZhbGlkYXRlSW5wdXQoY3VycmVudFZhbHVlOiBOZ2JEYXRlIHwgbnVsbCwgaW5wdXQ6IHN0cmluZyk6IE5nYkRhdGUgfCBudWxsIHtcclxuXHRcdGNvbnN0IHBhcnNlZCA9IHRoaXMuZm9ybWF0dGVyLnBhcnNlKGlucHV0KTtcclxuXHRcdHJldHVybiBwYXJzZWQgJiYgdGhpcy5jYWxlbmRhci5pc1ZhbGlkKE5nYkRhdGUuZnJvbShwYXJzZWQpKSA/IE5nYkRhdGUuZnJvbShwYXJzZWQpIDogY3VycmVudFZhbHVlO1xyXG5cdH1cclxuXHRvbkJsdXIoKSB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0ZWREYXRlICYmIHRoaXMuZW1pdE9uQmx1cikge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRvcGVuRGF0ZVBpY2tlcigpIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGVkRGF0ZSA9PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWREYXRlID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLmRhdGVQaWNrZXIudG9nZ2xlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmRhdGVQaWNrZXIuY2xvc2UoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0Y2xlYXIoKSB7XHJcblx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMucmFuZ2UgPyB7IGZyb206IHVuZGVmaW5lZCwgdG86IHVuZGVmaW5lZCB9IDogdW5kZWZpbmVkO1xyXG5cdFx0dGhpcy5kYXRlUGlja2VyLmNsb3NlKCk7XHJcblx0XHR0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IHByb3ZpZGVQYXJlbnRGb3JtPlxyXG5cdDxpbnB1dFxyXG5cdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0W25nQ2xhc3NdPVwieyBoaWRkZW46IHJhbmdlLCAnaW5wdXQtZmlsbGVkJzogc2VsZWN0ZWREYXRlIH1cIlxyXG5cdFx0W25nTW9kZWxdPVwiIXJhbmdlICYmIHNlbGVjdGVkRGF0ZVwiXHJcblx0XHQobmdNb2RlbENoYW5nZSk9XCIhcmFuZ2UgJiYgKHNlbGVjdGVkRGF0ZSA9ICRldmVudClcIlxyXG5cdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyID8gcGxhY2VIb2xkZXIgOiAnZC9NL3l5eXknXCJcclxuXHRcdG5nYkRhdGVwaWNrZXJcclxuXHRcdChjbGljayk9XCJkLnRvZ2dsZSgpXCJcclxuXHRcdChrZXl1cC5lbnRlcik9XCJvcGVuRGF0ZVBpY2tlcigpXCJcclxuXHRcdChkYXRlU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdGlvbigkZXZlbnQpXCJcclxuXHRcdCNkPVwibmdiRGF0ZXBpY2tlclwiXHJcblx0XHRmaXJzdERheU9mV2Vlaz1cIjdcIlxyXG5cdFx0W3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuXHRcdFthdXRvQ2xvc2VdPVwicmFuZ2UgPyAnb3V0c2lkZScgOiB0cnVlXCJcclxuXHRcdFttaW5EYXRlXT1cIm1pblwiXHJcblx0XHRbbWF4RGF0ZV09XCJtYXhcIlxyXG5cdFx0W3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIlxyXG5cdFx0W2Rpc3BsYXlNb250aHNdPVwicmFuZ2UgPyAyIDogMVwiXHJcblx0XHRbbmFtZV09XCJuYW1lXCJcclxuXHRcdFtzdGFydERhdGVdPVwicmFuZ2UgPyBzZWxlY3RlZERhdGUuZnJvbSEgOiBzZWxlY3RlZERhdGUhXCJcclxuXHRcdFtkYXlUZW1wbGF0ZV09XCJ0XCJcclxuXHRcdChibHVyKT1cIm9uQmx1cigpXCJcclxuXHRcdFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXHJcblx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG5cdFx0Y29udGFpbmVyPVwiYm9keVwiXHJcblx0Lz5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwicmFuZ2VcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJhbmdlclwiIFtuZ0NsYXNzXT1cInsgdmVydGljYWw6IHZlcnRpY2FsIH1cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcblx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHQjZHBGcm9tRGF0ZVxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cImQudG9nZ2xlKClcIlxyXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyID8gcGxhY2VIb2xkZXIgOiAnZC9NL3l5eXknXCJcclxuXHRcdFx0XHRcdG5hbWU9XCJkcEZyb21EYXRlXCJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCJmb3JtYXR0ZXIuZm9ybWF0KHNlbGVjdGVkRGF0ZS5mcm9tKVwiXHJcblx0XHRcdFx0XHQoaW5wdXQpPVwiZnJvbURhdGUgPSB2YWxpZGF0ZUlucHV0KHNlbGVjdGVkRGF0ZS5mcm9tLCBkcEZyb21EYXRlLnZhbHVlKVwiXHJcblx0XHRcdFx0Lz5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJkLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiPlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLWNhbGVuZGFyLXdlZWsgaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcmFuZ2VyXCIgW25nQ2xhc3NdPVwieyB2ZXJ0aWNhbDogdmVydGljYWwgfVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuXHRcdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHRcdCNkcFRvRGF0ZVxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cImQudG9nZ2xlKClcIlxyXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyID8gcGxhY2VIb2xkZXIgOiAnZC9NL3l5eXknXCJcclxuXHRcdFx0XHRcdG5hbWU9XCJkcFRvRGF0ZVwiXHJcblx0XHRcdFx0XHRbdmFsdWVdPVwiZm9ybWF0dGVyLmZvcm1hdChzZWxlY3RlZERhdGUudG8pXCJcclxuXHRcdFx0XHRcdChpbnB1dCk9XCJzZWxlY3RlZERhdGUudG8gPSB2YWxpZGF0ZUlucHV0KHNlbGVjdGVkRGF0ZS50bywgZHBUb0RhdGUudmFsdWUpXCJcclxuXHRcdFx0XHQvPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuXHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImQudG9nZ2xlKClcIiB0eXBlPVwiYnV0dG9uXCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiYmkgYmktY2FsZW5kYXItd2VlayBpY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI3QgbGV0LWRhdGUgbGV0LWZvY3VzZWQ9XCJmb2N1c2VkXCI+XHJcblx0PHNwYW5cclxuXHRcdGNsYXNzPVwiY3VzdG9tLWRheVwiXHJcblx0XHRbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkIHx8IGlzVG9kYXkoZGF0ZSlcIlxyXG5cdFx0W2NsYXNzLnJhbmdlXT1cImlzUmFuZ2UoZGF0ZSkgfHwgaXNTZWxlY3RlZERhdGUoZGF0ZSlcIlxyXG5cdFx0W2NsYXNzLmZhZGVkXT1cImlzSG92ZXJlZChkYXRlKSB8fCAoaXNJbnNpZGUoZGF0ZSkgJiYgcmFuZ2UpXCJcclxuXHRcdChtb3VzZWVudGVyKT1cImhvdmVyZWREYXRlID0gZGF0ZVwiXHJcblx0XHQobW91c2VsZWF2ZSk9XCJob3ZlcmVkRGF0ZSA9IG51bGxcIlxyXG5cdD5cclxuXHRcdHt7IGRhdGUuZGF5IH19XHJcblx0PC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuXHQ8aHIgY2xhc3M9XCJteS0wXCIgLz5cclxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIG0tMiBmbG9hdC1yaWdodFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZC5jbG9zZSgpXCI+XHJcblx0XHR7eyAnQlVUVE9OUy5DTE9TRScgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L2J1dHRvbj5cclxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBtLTIgZmxvYXQtbGVmdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPlxyXG5cdFx0e3sgJ0JVVFRPTlMuQ0xFQVInIHwgdHJhbnNsYXRlIH19XHJcblx0PC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as momentjs from 'moment';
3
3
  import * as moment_ from 'moment-hijri';
4
4
  import { DateType } from '../utils/consts';
@@ -21,6 +21,13 @@ export class HijriGregorianDatepickerComponent {
21
21
  this.disabledbtn = false;
22
22
  this.range = false;
23
23
  this.vertical = false;
24
+ this.emitOnBlur = true;
25
+ }
26
+ set selectedDate(value) {
27
+ this._selectedDate = value;
28
+ }
29
+ get selectedDate() {
30
+ return this._selectedDate;
24
31
  }
25
32
  get DateType() {
26
33
  return DateType;
@@ -33,7 +40,7 @@ export class HijriGregorianDatepickerComponent {
33
40
  this.selectedDateType = DateType.Hijri;
34
41
  }
35
42
  }
36
- ngOnChanges() {
43
+ ngOnChanges(changes) {
37
44
  if (this.range && !this.selectedDate) {
38
45
  this.selectedDate = { from: undefined, to: undefined };
39
46
  }
@@ -80,42 +87,55 @@ export class HijriGregorianDatepickerComponent {
80
87
  this.selectedDateChange.emit(this.selectedDate);
81
88
  }
82
89
  hijriClick() {
83
- if (this.selectedDateType == DateType.Hijri) {
90
+ if (this.selectedDateType === DateType.Hijri) {
84
91
  return;
85
92
  }
86
93
  this.selectedDateType = DateType.Hijri;
87
- //to hijri
94
+ if (this.hasValidDate()) {
95
+ this.convertToHijri();
96
+ this.selectedDateChange.emit(this.selectedDate);
97
+ }
98
+ }
99
+ gregClick() {
100
+ if (this.selectedDateType === DateType.Gregorian) {
101
+ return;
102
+ }
103
+ this.selectedDateType = DateType.Gregorian;
104
+ if (this.hasValidDate()) {
105
+ this.convertToGregorian();
106
+ this.selectedDateChange.emit(this.selectedDate);
107
+ }
108
+ }
109
+ hasValidDate() {
110
+ return !!this.selectedDate && Object.keys(this.selectedDate).length > 0;
111
+ }
112
+ convertToHijri() {
113
+ var _a, _b, _c, _d;
88
114
  if (this.range) {
89
115
  this.selectedDate = {
90
- from: this.dateFormatterService.ToHijri(this.selectedDate.from || null),
91
- to: this.dateFormatterService.ToHijri(this.selectedDate.to || null)
116
+ from: this.dateFormatterService.ToHijri((_b = (_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.from) !== null && _b !== void 0 ? _b : null),
117
+ to: this.dateFormatterService.ToHijri((_d = (_c = this.selectedDate) === null || _c === void 0 ? void 0 : _c.to) !== null && _d !== void 0 ? _d : null)
92
118
  };
93
119
  }
94
120
  else {
95
121
  this.selectedDate = this.dateFormatterService.ToHijri(this.selectedDate);
96
122
  }
97
- this.selectedDateChange.emit(this.selectedDate);
98
123
  }
99
- gregClick() {
100
- if (this.selectedDateType == DateType.Gregorian) {
101
- return;
102
- }
103
- this.selectedDateType = DateType.Gregorian;
104
- //to Gregorian
124
+ convertToGregorian() {
125
+ var _a, _b, _c, _d;
105
126
  if (this.range) {
106
127
  this.selectedDate = {
107
- from: this.dateFormatterService.ToGregorian(this.selectedDate.from || null),
108
- to: this.dateFormatterService.ToGregorian(this.selectedDate.to || null)
128
+ from: this.dateFormatterService.ToGregorian((_b = (_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.from) !== null && _b !== void 0 ? _b : null),
129
+ to: this.dateFormatterService.ToGregorian((_d = (_c = this.selectedDate) === null || _c === void 0 ? void 0 : _c.to) !== null && _d !== void 0 ? _d : null)
109
130
  };
110
131
  }
111
132
  else {
112
133
  this.selectedDate = this.dateFormatterService.ToGregorian(this.selectedDate);
113
134
  }
114
- this.selectedDateChange.emit(this.selectedDate);
115
135
  }
116
136
  }
117
137
  HijriGregorianDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HijriGregorianDatepickerComponent, deps: [{ token: i1.DateFormatterService }], target: i0.ɵɵFactoryTarget.Component });
118
- HijriGregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: { selectedDateType: "selectedDateType", selectedDate: "selectedDate", label: "label", showLabel: "showLabel", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", disabledbtn: "disabledbtn", minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", hijriLabel: "hijriLabel", GregLabel: "GregLabel", placeHolder: "placeHolder", range: "range", vertical: "vertical" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\" provideParentForm>\r\n\t<label class=\"requiredInput\" *ngIf=\"showLabel\" for=\"input-birth-Date\">{{ label }} </label>\r\n\r\n\t<div class=\"input-group\">\r\n\t\t<gregorian-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Gregorian\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minGreg\"\r\n\t\t\t[max]=\"maxGreg\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t>\r\n\t\t</gregorian-date-picker>\r\n\t\t<hijri-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Hijri\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minHijri\"\r\n\t\t\t[max]=\"maxHijri\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t>\r\n\t\t</hijri-date-picker>\r\n\r\n\t\t<div class=\"input-group-append\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Hijri ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"hijriClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ hijriLabel ? hijriLabel : 'Hijri' }}\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Gregorian ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"gregClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ GregLabel ? GregLabel : 'Gregorian' }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", components: [{ type: i2.GregorianDatepickerComponent, selector: "gregorian-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "placeHolder"], outputs: ["selectedDateChange"] }, { type: i3.HijriDatepickerComponent, selector: "hijri-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "placeHolder"], outputs: ["selectedDateChange"] }], directives: [{ type: i4.ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
138
+ HijriGregorianDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: { selectedDateType: "selectedDateType", selectedDate: "selectedDate", label: "label", showLabel: "showLabel", readonly: "readonly", isRequired: "isRequired", disabled: "disabled", disabledbtn: "disabledbtn", minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", hijriLabel: "hijriLabel", GregLabel: "GregLabel", placeHolder: "placeHolder", range: "range", vertical: "vertical", emitOnBlur: "emitOnBlur" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["d"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\" provideParentForm>\r\n\t<label class=\"requiredInput\" *ngIf=\"showLabel\" for=\"input-birth-Date\">{{ label }} </label>\r\n\r\n\t<div class=\"input-group\">\r\n\t\t<gregorian-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Gregorian\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minGreg\"\r\n\t\t\t[max]=\"maxGreg\"\r\n\t\t\t[emitOnBlur]=\"emitOnBlur\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t>\r\n\t\t</gregorian-date-picker>\r\n\t\t<hijri-date-picker\r\n\t\t\t[vertical]=\"vertical\"\r\n\t\t\t*ngIf=\"selectedDateType == DateType.Hijri\"\r\n\t\t\t[range]=\"range\"\r\n\t\t\t[(selectedDate)]=\"selectedDate\"\r\n\t\t\t(selectedDateChange)=\"dateSelected($event)\"\r\n\t\t\t[readonly]=\"readonly\"\r\n\t\t\t[min]=\"minHijri\"\r\n\t\t\t[max]=\"maxHijri\"\r\n\t\t\tstyle=\"flex: 1 1 auto\"\r\n\t\t\t[name]=\"label\"\r\n\t\t\t[isRequired]=\"isRequired\"\r\n\t\t\t[placeHolder]=\"placeHolder\"\r\n\t\t\t[disabled]=\"disabled\"\r\n [emitOnBlur]=\"emitOnBlur\"\r\n\t\t>\r\n\t\t</hijri-date-picker>\r\n\r\n\t\t<div class=\"input-group-append\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Hijri ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"hijriClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ hijriLabel ? hijriLabel : 'Hijri' }}\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"btn btn-sm {{ selectedDateType == DateType.Gregorian ? 'btn-info focus active' : 'btn-outline-info' }}\"\r\n\t\t\t\t(click)=\"gregClick()\"\r\n\t\t\t\t[disabled]=\"disabledbtn\"\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t>\r\n\t\t\t\t{{ GregLabel ? GregLabel : 'Gregorian' }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", components: [{ type: i2.GregorianDatepickerComponent, selector: "gregorian-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "emitOnBlur", "placeHolder"], outputs: ["selectedDateChange"] }, { type: i3.HijriDatepickerComponent, selector: "hijri-date-picker", inputs: ["selectedDate", "readonly", "isRequired", "disabled", "min", "max", "name", "range", "vertical", "emitOnBlur", "placeHolder"], outputs: ["selectedDateChange"] }], directives: [{ type: i4.ProvideParentFormDirective, selector: "[provideParentForm]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
119
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HijriGregorianDatepickerComponent, decorators: [{
120
140
  type: Component,
121
141
  args: [{
@@ -161,5 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
161
181
  type: Input
162
182
  }], vertical: [{
163
183
  type: Input
184
+ }], emitOnBlur: [{
185
+ type: Input
164
186
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sS0FBSyxRQUFRLE1BQU0sUUFBUSxDQUFDO0FBSW5DLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUwzQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFPeEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDO0FBTzVCLE1BQU0sT0FBTyxpQ0FBaUM7SUFrQzVDLFlBQW9CLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBM0JwRCx1QkFBa0IsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0RSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFB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c0JBQWpCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVTdHJ1Y3QsIE5nYkRhdGVwaWNrZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnRqcyBmcm9tICdtb21lbnQnO1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRqcztcclxuXHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudC1oaWpyaSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgQ29udHJvbENvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZVR5cGUgfSBmcm9tICcuLi91dGlscy9jb25zdHMnO1xyXG5pbXBvcnQgeyBEYXRlRm9ybWF0dGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RhdGUtZm9ybWF0dGVyLnNlcnZpY2UnO1xyXG5jb25zdCBtb21lbnRIaWpyaSA9IG1vbWVudF87XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGlqcmlHcmVnb3JpYW5EYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2QnKSBkYXRlUGlja2VyOiBhbnk7XHJcblxyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZERhdGVUeXBlOiBEYXRlVHlwZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZERhdGU7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPE5nYkRhdGVTdHJ1Y3Q+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbCA9IHRydWU7XHJcblxyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkYnRuID0gZmFsc2UgXHJcblxyXG4gIEBJbnB1dCgpIG1pbkhpanJpOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIG1heEhpanJpOiBOZ2JEYXRlU3RydWN0O1xyXG4gIEBJbnB1dCgpIG1pbkdyZWc6IE5nYkRhdGVTdHJ1Y3Q7XHJcbiAgQElucHV0KCkgbWF4R3JlZzogTmdiRGF0ZVN0cnVjdDtcclxuXHJcbiAgQElucHV0KCkgaGlqcmlMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIEdyZWdMYWJlbDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBwbGFjZUhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJhbmdlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmVydGljYWwgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IERhdGVUeXBlKCkge1xyXG4gICAgcmV0dXJuIERhdGVUeXBlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlRm9ybWF0dGVyU2VydmljZTogRGF0ZUZvcm1hdHRlclNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLnNlbGVjdGVkRGF0ZSA9IG51bGw7XHJcbiAgICB9LCA1MDAwKTtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGVUeXBlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9IERhdGVUeXBlLkhpanJpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJhbmdlICYmICF0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHsgZnJvbTogdW5kZWZpbmVkLCB0bzogdW5kZWZpbmVkIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkRGF0ZSgpOiBhbnkge1xyXG5cclxuICAgIGlmICh0aGlzLnJhbmdlKSB7XHJcbiAgICAgIGxldCBmb3JtYXR0ZWRGcm9tID0gdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub1N0cmluZyh0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tKTtcclxuICAgICAgbGV0IGZvcm1hdHRlZFRvID0gdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub1N0cmluZyh0aGlzLnNlbGVjdGVkRGF0ZS50byk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkhpanJpKSB7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBmcm9tOiBtb21lbnRIaWpyaShmb3JtYXR0ZWRGcm9tLCAnaUQvaU0vaVlZWVknKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCksXHJcbiAgICAgICAgICB0bzogbW9tZW50SGlqcmkoZm9ybWF0dGVkVG8sICdpRC9pTS9pWVlZWScpLmxvY2FsZSgnZW4nKS5mb3JtYXQoKVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVR5cGUgPT0gRGF0ZVR5cGUuR3JlZ29yaWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGZyb206IG1vbWVudChmb3JtYXR0ZWRGcm9tLCAnRC9NL1lZWVknKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCksXHJcbiAgICAgICAgICB0bzogbW9tZW50KGZvcm1hdHRlZFRvLCAnRC9NL1lZWVknKS5sb2NhbGUoJ2VuJykuZm9ybWF0KClcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvU3RyaW5nKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVR5cGUgPT0gRGF0ZVR5cGUuSGlqcmkpIHtcclxuICAgICAgICByZXR1cm4gbW9tZW50SGlqcmkoZm9ybWF0dGVkRGF0ZSwgJ2lEL2lNL2lZWVlZJykubG9jYWxlKCdlbicpLmZvcm1hdCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkdyZWdvcmlhbikge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZm9ybWF0dGVkRGF0ZSwgJ0QvTS9ZWVlZJykubG9jYWxlKCdlbicpLmZvcm1hdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkYXRlU2VsZWN0ZWQodmFsdWUpIHtcclxuICAgIGlmICh0aGlzLnJhbmdlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICB9XHJcblxyXG4gIGhpanJpQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkhpanJpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9IERhdGVUeXBlLkhpanJpO1xyXG4gICAgLy90byBoaWpyaVxyXG4gICAgaWYgKHRoaXMucmFuZ2UpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB7XHJcbiAgICAgICAgZnJvbTogdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub0hpanJpKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gfHwgbnVsbCksXHJcbiAgICAgICAgdG86IHRoaXMuZGF0ZUZvcm1hdHRlclNlcnZpY2UuVG9IaWpyaSh0aGlzLnNlbGVjdGVkRGF0ZS50byB8fCBudWxsKVxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvSGlqcmkodGhpcy5zZWxlY3RlZERhdGUpO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gIH1cclxuICBncmVnQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkdyZWdvcmlhbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZVR5cGUgPSBEYXRlVHlwZS5HcmVnb3JpYW47XHJcbiAgICAvL3RvIEdyZWdvcmlhblxyXG4gICAgaWYgKHRoaXMucmFuZ2UpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB7XHJcbiAgICAgICAgZnJvbTogdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub0dyZWdvcmlhbih0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tIHx8IG51bGwpLFxyXG4gICAgICAgIHRvOiB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvR3JlZ29yaWFuKHRoaXMuc2VsZWN0ZWREYXRlLnRvIHx8IG51bGwpXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuZGF0ZUZvcm1hdHRlclNlcnZpY2UuVG9HcmVnb3JpYW4odGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgcHJvdmlkZVBhcmVudEZvcm0+XHJcblx0PGxhYmVsIGNsYXNzPVwicmVxdWlyZWRJbnB1dFwiICpuZ0lmPVwic2hvd0xhYmVsXCIgZm9yPVwiaW5wdXQtYmlydGgtRGF0ZVwiPnt7IGxhYmVsIH19IDwvbGFiZWw+XHJcblxyXG5cdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG5cdFx0PGdyZWdvcmlhbi1kYXRlLXBpY2tlclxyXG5cdFx0XHRbdmVydGljYWxdPVwidmVydGljYWxcIlxyXG5cdFx0XHQqbmdJZj1cInNlbGVjdGVkRGF0ZVR5cGUgPT0gRGF0ZVR5cGUuR3JlZ29yaWFuXCJcclxuXHRcdFx0W3JhbmdlXT1cInJhbmdlXCJcclxuXHRcdFx0WyhzZWxlY3RlZERhdGUpXT1cInNlbGVjdGVkRGF0ZVwiXHJcblx0XHRcdChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiZGF0ZVNlbGVjdGVkKCRldmVudClcIlxyXG5cdFx0XHRbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG5cdFx0XHRbbWluXT1cIm1pbkdyZWdcIlxyXG5cdFx0XHRbbWF4XT1cIm1heEdyZWdcIlxyXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSBhdXRvXCJcclxuXHRcdFx0W25hbWVdPVwibGFiZWxcIlxyXG5cdFx0XHRbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkXCJcclxuXHRcdFx0W3BsYWNlSG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcclxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuXHRcdD5cclxuXHRcdDwvZ3JlZ29yaWFuLWRhdGUtcGlja2VyPlxyXG5cdFx0PGhpanJpLWRhdGUtcGlja2VyXHJcblx0XHRcdFt2ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXHJcblx0XHRcdCpuZ0lmPVwic2VsZWN0ZWREYXRlVHlwZSA9PSBEYXRlVHlwZS5IaWpyaVwiXHJcblx0XHRcdFtyYW5nZV09XCJyYW5nZVwiXHJcblx0XHRcdFsoc2VsZWN0ZWREYXRlKV09XCJzZWxlY3RlZERhdGVcIlxyXG5cdFx0XHQoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cImRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuXHRcdFx0W3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuXHRcdFx0W21pbl09XCJtaW5IaWpyaVwiXHJcblx0XHRcdFttYXhdPVwibWF4SGlqcmlcIlxyXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSBhdXRvXCJcclxuXHRcdFx0W25hbWVdPVwibGFiZWxcIlxyXG5cdFx0XHRbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkXCJcclxuXHRcdFx0W3BsYWNlSG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcclxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuXHRcdD5cclxuXHRcdDwvaGlqcmktZGF0ZS1waWNrZXI+XHJcblxyXG5cdFx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG5cdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLXNtIHt7IHNlbGVjdGVkRGF0ZVR5cGUgPT0gRGF0ZVR5cGUuSGlqcmkgPyAnYnRuLWluZm8gZm9jdXMgYWN0aXZlJyA6ICdidG4tb3V0bGluZS1pbmZvJyB9fVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImhpanJpQ2xpY2soKVwiXHJcblx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkYnRuXCJcclxuXHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdHt7IGhpanJpTGFiZWwgPyBoaWpyaUxhYmVsIDogJ0hpanJpJyB9fVxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1zbSB7eyBzZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkdyZWdvcmlhbiA/ICdidG4taW5mbyBmb2N1cyBhY3RpdmUnIDogJ2J0bi1vdXRsaW5lLWluZm8nIH19XCJcclxuXHRcdFx0XHQoY2xpY2spPVwiZ3JlZ0NsaWNrKClcIlxyXG5cdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZGJ0blwiXHJcblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHR7eyBHcmVnTGFiZWwgPyBHcmVnTGFiZWwgOiAnR3JlZ29yaWFuJyB9fVxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEgsT0FBTyxLQUFLLFFBQVEsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBRzNDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQztBQUV4QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUM7QUFNNUIsTUFBTSxPQUFPLGlDQUFpQztJQXlDN0MsWUFBb0Isb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUEzQnBELHVCQUFrQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RFLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixl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U0FDN0U7SUFDRixDQUFDOzsrSEF4SlcsaUNBQWlDO21IQUFqQyxpQ0FBaUMsMnFCQ2hCOUMsZ2hFQTJEQTs0RkQzQ2EsaUNBQWlDO2tCQUo3QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSw2Q0FBNkM7aUJBQzFEOzJHQUVnQixVQUFVO3NCQUF6QixTQUFTO3VCQUFDLEdBQUc7Z0JBRUwsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBUUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5pbXBvcnQgKiBhcyBtb21lbnRqcyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudC1oaWpyaSc7XHJcbmltcG9ydCB7IERhdGVUeXBlIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RzJztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kYXRlLWZvcm1hdHRlci5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudGpzO1xyXG5cclxuY29uc3QgbW9tZW50SGlqcmkgPSBtb21lbnRfO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdoaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGlqcmlHcmVnb3JpYW5EYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cdEBWaWV3Q2hpbGQoJ2QnKSBkYXRlUGlja2VyOiBhbnk7XHJcblxyXG5cdEBJbnB1dCgpIHNlbGVjdGVkRGF0ZVR5cGU6IERhdGVUeXBlO1xyXG5cclxuXHRwcml2YXRlIF9zZWxlY3RlZERhdGU6IGFueTtcclxuXHRASW5wdXQoKSBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBhbnkpIHtcclxuXHRcdHRoaXMuX3NlbGVjdGVkRGF0ZSA9IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHNlbGVjdGVkRGF0ZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZERhdGU7XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KCkgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TmdiRGF0ZVN0cnVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcblx0QElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcclxuXHJcblx0QElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuXHRASW5wdXQoKSBpc1JlcXVpcmVkID0gZmFsc2U7XHJcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRASW5wdXQoKSBkaXNhYmxlZGJ0biA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKSBtaW5IaWpyaTogTmdiRGF0ZVN0cnVjdDtcclxuXHRASW5wdXQoKSBtYXhIaWpyaTogTmdiRGF0ZVN0cnVjdDtcclxuXHRASW5wdXQoKSBtaW5HcmVnOiBOZ2JEYXRlU3RydWN0O1xyXG5cdEBJbnB1dCgpIG1heEdyZWc6IE5nYkRhdGVTdHJ1Y3Q7XHJcblxyXG5cdEBJbnB1dCgpIGhpanJpTGFiZWw6IHN0cmluZztcclxuXHRASW5wdXQoKSBHcmVnTGFiZWw6IHN0cmluZztcclxuXHJcblx0QElucHV0KCkgcGxhY2VIb2xkZXI6IHN0cmluZztcclxuXHRASW5wdXQoKSByYW5nZSA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHZlcnRpY2FsID0gZmFsc2U7XHJcblx0QElucHV0KCkgZW1pdE9uQmx1ciA9IHRydWU7XHJcblxyXG5cdGdldCBEYXRlVHlwZSgpIHtcclxuXHRcdHJldHVybiBEYXRlVHlwZTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUZvcm1hdHRlclNlcnZpY2U6IERhdGVGb3JtYXR0ZXJTZXJ2aWNlKSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHQvLyB0aGlzLnNlbGVjdGVkRGF0ZSA9IG51bGw7XHJcblx0XHR9LCA1MDAwKTtcclxuXHRcdGlmICghdGhpcy5zZWxlY3RlZERhdGVUeXBlKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9IERhdGVUeXBlLkhpanJpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAodGhpcy5yYW5nZSAmJiAhdGhpcy5zZWxlY3RlZERhdGUpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSB7IGZyb206IHVuZGVmaW5lZCwgdG86IHVuZGVmaW5lZCB9O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2xvc2UoKSB7XHJcblx0XHR0aGlzLmRhdGVQaWNrZXIuY2xvc2UoKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCkge1xyXG5cdFx0dGhpcy5zZWxlY3RlZERhdGUgPSB1bmRlZmluZWQ7XHJcblx0XHR0aGlzLmNsb3NlKCk7XHJcblx0XHR0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG5cdH1cclxuXHRnZXRTZWxlY3RlZERhdGUoKTogYW55IHtcclxuXHRcdGlmICh0aGlzLnJhbmdlKSB7XHJcblx0XHRcdGxldCBmb3JtYXR0ZWRGcm9tID0gdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub1N0cmluZyh0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tKTtcclxuXHRcdFx0bGV0IGZvcm1hdHRlZFRvID0gdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub1N0cmluZyh0aGlzLnNlbGVjdGVkRGF0ZS50byk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkhpanJpKSB7XHJcblx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdGZyb206IG1vbWVudEhpanJpKGZvcm1hdHRlZEZyb20sICdpRC9pTS9pWVlZWScpLmxvY2FsZSgnZW4nKS5mb3JtYXQoKSxcclxuXHRcdFx0XHRcdHRvOiBtb21lbnRIaWpyaShmb3JtYXR0ZWRUbywgJ2lEL2lNL2lZWVlZJykubG9jYWxlKCdlbicpLmZvcm1hdCgpXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9PSBEYXRlVHlwZS5HcmVnb3JpYW4pIHtcclxuXHRcdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFx0ZnJvbTogbW9tZW50KGZvcm1hdHRlZEZyb20sICdEL00vWVlZWScpLmxvY2FsZSgnZW4nKS5mb3JtYXQoKSxcclxuXHRcdFx0XHRcdHRvOiBtb21lbnQoZm9ybWF0dGVkVG8sICdEL00vWVlZWScpLmxvY2FsZSgnZW4nKS5mb3JtYXQoKVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCBmb3JtYXR0ZWREYXRlID0gdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub1N0cmluZyh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkhpanJpKSB7XHJcblx0XHRcdFx0cmV0dXJuIG1vbWVudEhpanJpKGZvcm1hdHRlZERhdGUsICdpRC9pTS9pWVlZWScpLmxvY2FsZSgnZW4nKS5mb3JtYXQoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9PSBEYXRlVHlwZS5HcmVnb3JpYW4pIHtcclxuXHRcdFx0XHRyZXR1cm4gbW9tZW50KGZvcm1hdHRlZERhdGUsICdEL00vWVlZWScpLmxvY2FsZSgnZW4nKS5mb3JtYXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGF0ZVNlbGVjdGVkKHZhbHVlKSB7XHJcblx0XHRpZiAodGhpcy5yYW5nZSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IHZhbHVlO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblx0fVxyXG5cclxuXHRoaWpyaUNsaWNrKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9PT0gRGF0ZVR5cGUuSGlqcmkpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2VsZWN0ZWREYXRlVHlwZSA9IERhdGVUeXBlLkhpanJpO1xyXG5cdFx0aWYgKHRoaXMuaGFzVmFsaWREYXRlKCkpIHtcclxuXHRcdFx0dGhpcy5jb252ZXJ0VG9IaWpyaSgpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdyZWdDbGljaygpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGVkRGF0ZVR5cGUgPT09IERhdGVUeXBlLkdyZWdvcmlhbikge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zZWxlY3RlZERhdGVUeXBlID0gRGF0ZVR5cGUuR3JlZ29yaWFuO1xyXG5cdFx0aWYgKHRoaXMuaGFzVmFsaWREYXRlKCkpIHtcclxuXHRcdFx0dGhpcy5jb252ZXJ0VG9HcmVnb3JpYW4oKTtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGhhc1ZhbGlkRGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAhIXRoaXMuc2VsZWN0ZWREYXRlICYmIE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWREYXRlKS5sZW5ndGggPiAwO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb252ZXJ0VG9IaWpyaSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnJhbmdlKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWREYXRlID0ge1xyXG5cdFx0XHRcdGZyb206IHRoaXMuZGF0ZUZvcm1hdHRlclNlcnZpY2UuVG9IaWpyaSh0aGlzLnNlbGVjdGVkRGF0ZT8uZnJvbSA/PyBudWxsKSxcclxuXHRcdFx0XHR0bzogdGhpcy5kYXRlRm9ybWF0dGVyU2VydmljZS5Ub0hpanJpKHRoaXMuc2VsZWN0ZWREYXRlPy50byA/PyBudWxsKVxyXG5cdFx0XHR9O1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvSGlqcmkodGhpcy5zZWxlY3RlZERhdGUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb252ZXJ0VG9HcmVnb3JpYW4oKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5yYW5nZSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZSA9IHtcclxuXHRcdFx0XHRmcm9tOiB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvR3JlZ29yaWFuKHRoaXMuc2VsZWN0ZWREYXRlPy5mcm9tID8/IG51bGwpLFxyXG5cdFx0XHRcdHRvOiB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvR3JlZ29yaWFuKHRoaXMuc2VsZWN0ZWREYXRlPy50byA/PyBudWxsKVxyXG5cdFx0XHR9O1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLmRhdGVGb3JtYXR0ZXJTZXJ2aWNlLlRvR3JlZ29yaWFuKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBwcm92aWRlUGFyZW50Rm9ybT5cclxuXHQ8bGFiZWwgY2xhc3M9XCJyZXF1aXJlZElucHV0XCIgKm5nSWY9XCJzaG93TGFiZWxcIiBmb3I9XCJpbnB1dC1iaXJ0aC1EYXRlXCI+e3sgbGFiZWwgfX0gPC9sYWJlbD5cclxuXHJcblx0PGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcblx0XHQ8Z3JlZ29yaWFuLWRhdGUtcGlja2VyXHJcblx0XHRcdFt2ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXHJcblx0XHRcdCpuZ0lmPVwic2VsZWN0ZWREYXRlVHlwZSA9PSBEYXRlVHlwZS5HcmVnb3JpYW5cIlxyXG5cdFx0XHRbcmFuZ2VdPVwicmFuZ2VcIlxyXG5cdFx0XHRbKHNlbGVjdGVkRGF0ZSldPVwic2VsZWN0ZWREYXRlXCJcclxuXHRcdFx0KHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJkYXRlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcblx0XHRcdFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcblx0XHRcdFttaW5dPVwibWluR3JlZ1wiXHJcblx0XHRcdFttYXhdPVwibWF4R3JlZ1wiXHJcblx0XHRcdFtlbWl0T25CbHVyXT1cImVtaXRPbkJsdXJcIlxyXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSBhdXRvXCJcclxuXHRcdFx0W25hbWVdPVwibGFiZWxcIlxyXG5cdFx0XHRbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkXCJcclxuXHRcdFx0W3BsYWNlSG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcclxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuXHRcdD5cclxuXHRcdDwvZ3JlZ29yaWFuLWRhdGUtcGlja2VyPlxyXG5cdFx0PGhpanJpLWRhdGUtcGlja2VyXHJcblx0XHRcdFt2ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXHJcblx0XHRcdCpuZ0lmPVwic2VsZWN0ZWREYXRlVHlwZSA9PSBEYXRlVHlwZS5IaWpyaVwiXHJcblx0XHRcdFtyYW5nZV09XCJyYW5nZVwiXHJcblx0XHRcdFsoc2VsZWN0ZWREYXRlKV09XCJzZWxlY3RlZERhdGVcIlxyXG5cdFx0XHQoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cImRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuXHRcdFx0W3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuXHRcdFx0W21pbl09XCJtaW5IaWpyaVwiXHJcblx0XHRcdFttYXhdPVwibWF4SGlqcmlcIlxyXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSBhdXRvXCJcclxuXHRcdFx0W25hbWVdPVwibGFiZWxcIlxyXG5cdFx0XHRbaXNSZXF1aXJlZF09XCJpc1JlcXVpcmVkXCJcclxuXHRcdFx0W3BsYWNlSG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcclxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW2VtaXRPbkJsdXJdPVwiZW1pdE9uQmx1clwiXHJcblx0XHQ+XHJcblx0XHQ8L2hpanJpLWRhdGUtcGlja2VyPlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuXHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1zbSB7eyBzZWxlY3RlZERhdGVUeXBlID09IERhdGVUeXBlLkhpanJpID8gJ2J0bi1pbmZvIGZvY3VzIGFjdGl2ZScgOiAnYnRuLW91dGxpbmUtaW5mbycgfX1cIlxyXG5cdFx0XHRcdChjbGljayk9XCJoaWpyaUNsaWNrKClcIlxyXG5cdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZGJ0blwiXHJcblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHR7eyBoaWpyaUxhYmVsID8gaGlqcmlMYWJlbCA6ICdIaWpyaScgfX1cclxuXHRcdFx0PC9idXR0b24+XHJcblx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRjbGFzcz1cImJ0biBidG4tc20ge3sgc2VsZWN0ZWREYXRlVHlwZSA9PSBEYXRlVHlwZS5HcmVnb3JpYW4gPyAnYnRuLWluZm8gZm9jdXMgYWN0aXZlJyA6ICdidG4tb3V0bGluZS1pbmZvJyB9fVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImdyZWdDbGljaygpXCJcclxuXHRcdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRidG5cIlxyXG5cdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0e3sgR3JlZ0xhYmVsID8gR3JlZ0xhYmVsIDogJ0dyZWdvcmlhbicgfX1cclxuXHRcdFx0PC9idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==