@skyux/datetime 9.24.2 → 9.26.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/documentation.json +561 -561
- package/esm2022/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +62 -25
- package/esm2022/lib/modules/datepicker/datepicker-calendar.component.mjs +8 -7
- package/esm2022/lib/modules/datepicker/datepicker.component.mjs +9 -8
- package/esm2022/lib/modules/datepicker/datepicker.module.mjs +7 -3
- package/esm2022/lib/modules/datepicker/daypicker.component.mjs +9 -11
- package/esm2022/lib/modules/datepicker/monthpicker.component.mjs +9 -12
- package/esm2022/lib/modules/datepicker/yearpicker.component.mjs +10 -12
- package/esm2022/lib/modules/shared/sky-datetime-resources.module.mjs +7 -1
- package/esm2022/lib/modules/timepicker/timepicker.component.mjs +13 -5
- package/fesm2022/skyux-datetime.mjs +127 -78
- package/fesm2022/skyux-datetime.mjs.map +1 -1
- package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +8 -5
- package/lib/modules/datepicker/datepicker.module.d.ts +9 -8
- package/package.json +9 -8
@@ -1,8 +1,10 @@
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
2
|
-
import {
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
|
2
|
+
import { SkyLibResourcesService } from '@skyux/i18n';
|
3
|
+
import { Subject, takeUntil } from 'rxjs';
|
3
4
|
import { SkyDateFormatter } from './date-formatter';
|
4
5
|
import * as i0 from "@angular/core";
|
5
6
|
import * as i1 from "@angular/common";
|
7
|
+
import * as i2 from "@skyux/indicators";
|
6
8
|
let nextDatepickerId = 0;
|
7
9
|
/**
|
8
10
|
* @internal
|
@@ -14,6 +16,7 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
14
16
|
// TODO: `activeDate` is very similar to `selectedDate` and at the very least should be able to be undefined. However, this would take considerable refactoring to do and thus has been deferred.
|
15
17
|
this.activeDate = new Date();
|
16
18
|
this.activeDateId = '';
|
19
|
+
this.title = '';
|
17
20
|
this.minMode = 'day';
|
18
21
|
this.maxMode = 'year';
|
19
22
|
this.monthColLimit = 3;
|
@@ -32,20 +35,22 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
32
35
|
this.stepYear = {};
|
33
36
|
this.modes = ['day', 'month', 'year'];
|
34
37
|
this.dateFormatter = new SkyDateFormatter();
|
35
|
-
this.keys =
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
38
|
+
this.keys = [
|
39
|
+
'enter',
|
40
|
+
' ',
|
41
|
+
'spacebar',
|
42
|
+
'pageup',
|
43
|
+
'pagedown',
|
44
|
+
'end',
|
45
|
+
'home',
|
46
|
+
'arrowleft',
|
47
|
+
'arrowup',
|
48
|
+
'arrowright',
|
49
|
+
'arrowdown',
|
50
|
+
];
|
47
51
|
this.#ngUnsubscribe = new Subject();
|
48
52
|
this.#_startingDay = 0;
|
53
|
+
this.#resourcesSvc = inject(SkyLibResourcesService);
|
49
54
|
}
|
50
55
|
set startingDay(value) {
|
51
56
|
this.#_startingDay = value || 0;
|
@@ -67,8 +72,15 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
67
72
|
return this.#_selectedDate;
|
68
73
|
}
|
69
74
|
#ngUnsubscribe;
|
75
|
+
#prevDay;
|
76
|
+
#nextDay;
|
77
|
+
#prevMonth;
|
78
|
+
#nextMonth;
|
79
|
+
#prevYear;
|
80
|
+
#nextYear;
|
70
81
|
#_selectedDate;
|
71
82
|
#_startingDay;
|
83
|
+
#resourcesSvc;
|
72
84
|
ngOnInit() {
|
73
85
|
if (this.selectedDate) {
|
74
86
|
this.activeDate = new Date(this.selectedDate);
|
@@ -76,6 +88,25 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
76
88
|
else {
|
77
89
|
this.activeDate = new Date();
|
78
90
|
}
|
91
|
+
this.#resourcesSvc
|
92
|
+
.getStrings({
|
93
|
+
prevDay: 'skyux_datepicker_move_calendar_previous_day',
|
94
|
+
nextDay: 'skyux_datepicker_move_calendar_next_day',
|
95
|
+
prevMonth: 'skyux_datepicker_move_calendar_previous_month',
|
96
|
+
nextMonth: 'skyux_datepicker_move_calendar_next_month',
|
97
|
+
prevYear: 'skyux_datepicker_move_calendar_previous_year',
|
98
|
+
nextYear: 'skyux_datepicker_move_calendar_next_year',
|
99
|
+
})
|
100
|
+
.pipe(takeUntil(this.#ngUnsubscribe))
|
101
|
+
.subscribe((resources) => {
|
102
|
+
this.#prevDay = resources.prevDay;
|
103
|
+
this.#nextDay = resources.nextDay;
|
104
|
+
this.#prevMonth = resources.prevMonth;
|
105
|
+
this.#nextMonth = resources.nextMonth;
|
106
|
+
this.#prevYear = resources.prevYear;
|
107
|
+
this.#nextYear = resources.nextYear;
|
108
|
+
this.refreshView();
|
109
|
+
});
|
79
110
|
}
|
80
111
|
ngOnChanges(changes) {
|
81
112
|
this.refreshView();
|
@@ -126,13 +157,19 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
126
157
|
}
|
127
158
|
refreshView() {
|
128
159
|
if (this.datepickerMode === 'day' && this.refreshViewHandlerDay) {
|
129
|
-
this.refreshViewHandlerDay();
|
160
|
+
this.title = this.refreshViewHandlerDay();
|
161
|
+
this.previousLabel = this.#prevDay;
|
162
|
+
this.nextLabel = this.#nextDay;
|
130
163
|
}
|
131
164
|
if (this.datepickerMode === 'month' && this.refreshViewHandlerMonth) {
|
132
|
-
this.refreshViewHandlerMonth();
|
165
|
+
this.title = this.refreshViewHandlerMonth();
|
166
|
+
this.previousLabel = this.#prevMonth;
|
167
|
+
this.nextLabel = this.#nextMonth;
|
133
168
|
}
|
134
169
|
if (this.datepickerMode === 'year' && this.refreshViewHandlerYear) {
|
135
|
-
this.refreshViewHandlerYear();
|
170
|
+
this.title = this.refreshViewHandlerYear();
|
171
|
+
this.previousLabel = this.#prevYear;
|
172
|
+
this.nextLabel = this.#nextYear;
|
136
173
|
}
|
137
174
|
}
|
138
175
|
setKeydownHandler(handler, type) {
|
@@ -168,20 +205,20 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
168
205
|
return false;
|
169
206
|
}
|
170
207
|
onKeydown(event) {
|
171
|
-
const key =
|
172
|
-
if (!key || event.shiftKey || event.altKey) {
|
208
|
+
const key = event.key?.toLowerCase();
|
209
|
+
if (!this.keys.includes(key) || event.shiftKey || event.altKey) {
|
173
210
|
return;
|
174
211
|
}
|
175
212
|
event.preventDefault();
|
176
213
|
event.stopPropagation();
|
177
|
-
if (key === 'enter' || key === '
|
214
|
+
if (key === 'enter' || key === 'spacebar' || key === ' ') {
|
178
215
|
if (this.isDisabled(this.activeDate)) {
|
179
216
|
return;
|
180
217
|
}
|
181
218
|
this.select(this.activeDate);
|
182
219
|
}
|
183
|
-
else if (event.ctrlKey && (key === '
|
184
|
-
this.toggleMode(key === '
|
220
|
+
else if (event.ctrlKey && (key === 'arrowup' || key === 'arrowdown')) {
|
221
|
+
this.toggleMode(key === 'arrowup' ? 1 : -1);
|
185
222
|
}
|
186
223
|
else {
|
187
224
|
this.handleKeydown(key, event);
|
@@ -309,11 +346,11 @@ export class SkyDatepickerCalendarInnerComponent {
|
|
309
346
|
return undefined;
|
310
347
|
}
|
311
348
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarInnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
312
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: { customDates: "customDates", startingDay: "startingDay", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange", calendarModeChange: "calendarModeChange" }, usesOnChanges: true, ngImport: i0, template: "<div
|
349
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: { customDates: "customDates", startingDay: "startingDay", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange", calendarModeChange: "calendarModeChange" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"datepickerMode\" class=\"sky-datepicker-calendar-inner\">\n <div class=\"sky-datepicker-calendar-header\">\n <span class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n [attr.aria-label]=\"previousLabel\"\n (click)=\"moveCalendar($event, -1)\"\n >\n <sky-icon class=\"sky-datepicker-chevron\" icon=\"chevron-left\" />\n </button>\n </span>\n <span class=\"sky-datepicker-header-center\">\n <button\n [id]=\"datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"toggleModeCalendar($event)\"\n [disabled]=\"datepickerMode === maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepickerMode === maxMode\n }\"\n >\n <strong>{{ title }}</strong>\n </button>\n </span>\n <span class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n [attr.aria-label]=\"nextLabel\"\n (click)=\"moveCalendar($event, 1)\"\n >\n <sky-icon class=\"sky-datepicker-chevron\" icon=\"chevron-right\" />\n </button>\n </span>\n </div>\n <ng-content />\n</div>\n", styles: [".sky-datepicker-calendar-inner{border-radius:5px;background-color:#fff;border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4}.sky-datepicker-calendar-inner .sky-datepicker-calendar-header{width:100%;display:flex}.sky-datepicker-calendar-inner .sky-btn-default{border-color:transparent;border:2px solid #ffffff}.sky-datepicker-calendar-inner .sky-btn-default:hover{border-color:#eeeeef}.sky-datepicker-calendar-inner .sky-datepicker-center{text-align:center}.sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:#c1e8fb;border:2px solid #00b4f1}.sky-datepicker-calendar-inner .sky-btn.sky-btn-active{box-shadow:none}.sky-datepicker-calendar-inner .sky-datepicker-secondary{color:#686c73}.sky-datepicker-calendar-inner .sky-datepicker-btn-date{min-width:100%}.sky-datepicker-calendar-inner .sky-datepicker-calendar-title{width:100%}.sky-datepicker-calendar-inner .sky-datepicker-header-left{text-align:left}.sky-datepicker-calendar-inner .sky-datepicker-header-center{display:flex;width:100%}.sky-datepicker-calendar-inner .sky-datepicker-header-right{text-align:right}.sky-theme-modern .sky-datepicker-calendar-inner{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;border-radius:6px;padding:5px 10px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-calendar-table-container:focus-visible{outline:none}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-calendar-table-container:focus-visible .sky-btn-active{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default{border:none;box-shadow:inset 0 0 0 1px transparent;padding:5px 7px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-active,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:var(--sky-background-color-input-selected)}.sky-theme-modern .sky-btn-sm.sky-datepicker-btn-date{height:30px;min-width:0;padding:0;width:30px}.sky-theme-modern .sky-datepicker-chevron{font-size:16px}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner:not(:focus-within){border:none;box-shadow:inset 0 0 0 1px #686c73}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#009cd1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
313
350
|
}
|
314
351
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarInnerComponent, decorators: [{
|
315
352
|
type: Component,
|
316
|
-
args: [{ selector: 'sky-datepicker-inner', encapsulation: ViewEncapsulation.None, template: "<div
|
353
|
+
args: [{ selector: 'sky-datepicker-inner', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"datepickerMode\" class=\"sky-datepicker-calendar-inner\">\n <div class=\"sky-datepicker-calendar-header\">\n <span class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n [attr.aria-label]=\"previousLabel\"\n (click)=\"moveCalendar($event, -1)\"\n >\n <sky-icon class=\"sky-datepicker-chevron\" icon=\"chevron-left\" />\n </button>\n </span>\n <span class=\"sky-datepicker-header-center\">\n <button\n [id]=\"datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"toggleModeCalendar($event)\"\n [disabled]=\"datepickerMode === maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepickerMode === maxMode\n }\"\n >\n <strong>{{ title }}</strong>\n </button>\n </span>\n <span class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n [attr.aria-label]=\"nextLabel\"\n (click)=\"moveCalendar($event, 1)\"\n >\n <sky-icon class=\"sky-datepicker-chevron\" icon=\"chevron-right\" />\n </button>\n </span>\n </div>\n <ng-content />\n</div>\n", styles: [".sky-datepicker-calendar-inner{border-radius:5px;background-color:#fff;border-top:1px solid #e2e3e4;border-bottom:1px solid #e2e3e4;border-left:1px solid #e2e3e4;border-right:1px solid #e2e3e4}.sky-datepicker-calendar-inner .sky-datepicker-calendar-header{width:100%;display:flex}.sky-datepicker-calendar-inner .sky-btn-default{border-color:transparent;border:2px solid #ffffff}.sky-datepicker-calendar-inner .sky-btn-default:hover{border-color:#eeeeef}.sky-datepicker-calendar-inner .sky-datepicker-center{text-align:center}.sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:#c1e8fb;border:2px solid #00b4f1}.sky-datepicker-calendar-inner .sky-btn.sky-btn-active{box-shadow:none}.sky-datepicker-calendar-inner .sky-datepicker-secondary{color:#686c73}.sky-datepicker-calendar-inner .sky-datepicker-btn-date{min-width:100%}.sky-datepicker-calendar-inner .sky-datepicker-calendar-title{width:100%}.sky-datepicker-calendar-inner .sky-datepicker-header-left{text-align:left}.sky-datepicker-calendar-inner .sky-datepicker-header-center{display:flex;width:100%}.sky-datepicker-calendar-inner .sky-datepicker-header-right{text-align:right}.sky-theme-modern .sky-datepicker-calendar-inner{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;border-radius:6px;padding:5px 10px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-calendar-table-container:focus-visible{outline:none}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-calendar-table-container:focus-visible .sky-btn-active{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default{border:none;box-shadow:inset 0 0 0 1px transparent;padding:5px 7px}.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-active,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-datepicker-calendar-inner .sky-datepicker-btn-selected,.sky-theme-modern .sky-datepicker-calendar-inner .sky-btn-default.sky-datepicker-btn-selected:hover{background-color:var(--sky-background-color-input-selected)}.sky-theme-modern .sky-btn-sm.sky-datepicker-btn-date{height:30px;min-width:0;padding:0;width:30px}.sky-theme-modern .sky-datepicker-chevron{font-size:16px}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner:not(:focus-within){border:none;box-shadow:inset 0 0 0 1px #686c73}.sky-theme-modern.sky-theme-mode-dark .sky-datepicker-calendar-inner .sky-datepicker-btn-selected{background-color:#009cd1}\n"] }]
|
317
354
|
}], propDecorators: { customDates: [{
|
318
355
|
type: Input
|
319
356
|
}], startingDay: [{
|
@@ -329,4 +366,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
329
366
|
}], calendarModeChange: [{
|
330
367
|
type: Output
|
331
368
|
}] } });
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFPcEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFFekI7O0dBRUc7QUFPSCxNQUFNLE9BQU8sbUNBQW1DO0lBTmhEO1FBMkNTLHVCQUFrQixHQUF1QixJQUFJLFlBQVksQ0FDOUQsU0FBUyxDQUNWLENBQUM7UUFHSyx1QkFBa0IsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU3RSxpTUFBaU07UUFDMUwsZUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGNBQVMs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QkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5RGF0ZUZvcm1hdHRlciB9IGZyb20gJy4vZGF0ZS1mb3JtYXR0ZXInO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckRhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItZGF0ZSc7XG5cbnR5cGUgRGF0ZUNvbXBhcmF0b3IgPSAoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSA9PiBudW1iZXIgfCB1bmRlZmluZWQ7XG50eXBlIEtleWJvYXJkRXZlbnRIYW5kbGVyID0gKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcblxubGV0IG5leHREYXRlcGlja2VySWQgPSAwO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0ZXBpY2tlci1pbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgcHVibGljIGN1c3RvbURhdGVzOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3RhcnRpbmdEYXkodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19zdGFydGluZ0RheSA9IHZhbHVlIHx8IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXJ0aW5nRGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19zdGFydGluZ0RheTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuZGF0ZUZvcm1hdHRlci5kYXRlSXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuI19zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWREYXRlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkRGF0ZSgpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbGVuZGFyTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLyBUT0RPOiBgYWN0aXZlRGF0ZWAgaXMgdmVyeSBzaW1pbGFyIHRvIGBzZWxlY3RlZERhdGVgIGFuZCBhdCB0aGUgdmVyeSBsZWFzdCBzaG91bGQgYmUgYWJsZSB0byBiZSB1bmRlZmluZWQuIEhvd2V2ZXIsIHRoaXMgd291bGQgdGFrZSBjb25zaWRlcmFibGUgcmVmYWN0b3JpbmcgdG8gZG8gYW5kIHRodXMgaGFzIGJlZW4gZGVmZXJyZWQuXG4gIHB1YmxpYyBhY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIGFjdGl2ZURhdGVJZCA9ICcnO1xuXG4gIHB1YmxpYyBtaW5Nb2RlID0gJ2RheSc7XG4gIHB1YmxpYyBtYXhNb2RlID0gJ3llYXInO1xuICBwdWJsaWMgbW9udGhDb2xMaW1pdCA9IDM7XG4gIHB1YmxpYyB5ZWFyQ29sTGltaXQgPSA1O1xuICBwdWJsaWMgZGF0ZXBpY2tlck1vZGUgPSAnZGF5JztcbiAgcHVibGljIHllYXJSYW5nZSA9IDIwO1xuXG4gIHB1YmxpYyBmb3JtYXREYXkgPSAnREQnO1xuICBwdWJsaWMgZm9ybWF0TW9udGggPSAnTU1NTSc7XG4gIHB1YmxpYyBmb3JtYXRZZWFyID0gJ1lZWVknO1xuICBwdWJsaWMgZm9ybWF0RGF5SGVhZGVyID0gJ2RkJztcbiAgcHVibGljIGZvcm1hdERheVRpdGxlID0gJ01NTU0gWVlZWSc7XG4gIHB1YmxpYyBmb3JtYXRNb250aFRpdGxlID0gJ1lZWVknO1xuXG4gIHB1YmxpYyBkYXRlcGlja2VySWQgPSBgc2t5LWRhdGVwaWNrZXItJHsrK25leHREYXRlcGlja2VySWR9YDtcblxuICBwdWJsaWMgc3RlcERheTogYW55ID0ge307XG4gIHB1YmxpYyBzdGVwTW9udGg6IGFueSA9IHt9O1xuICBwdWJsaWMgc3RlcFllYXI6IGFueSA9IHt9O1xuXG4gIHByb3RlY3RlZCBtb2Rlczogc3RyaW5nW10gPSBbJ2RheScsICdtb250aCcsICd5ZWFyJ107XG4gIHByb3RlY3RlZCBkYXRlRm9ybWF0dGVyOiBTa3lEYXRlRm9ybWF0dGVyID0gbmV3IFNreURhdGVGb3JtYXR0ZXIoKTtcblxuICBwdWJsaWMgcmVmcmVzaFZpZXdIYW5kbGVyRGF5OiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb21wYXJlSGFuZGxlckRheTogRGF0ZUNvbXBhcmF0b3IgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWZyZXNoVmlld0hhbmRsZXJNb250aDogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29tcGFyZUhhbmRsZXJNb250aDogRGF0ZUNvbXBhcmF0b3IgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWZyZXNoVmlld0hhbmRsZXJZZWFyOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBjb21wYXJlSGFuZGxlclllYXI6IERhdGVDb21wYXJhdG9yIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBoYW5kbGVLZXlkb3duRGF5OiBLZXlib2FyZEV2ZW50SGFuZGxlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGhhbmRsZUtleWRvd25Nb250aDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBoYW5kbGVLZXlkb3duWWVhcjogS2V5Ym9hcmRFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGtleXM6IGFueSA9IHtcbiAgICAxMzogJ2VudGVyJyxcbiAgICAzMjogJ3NwYWNlJyxcbiAgICAzMzogJ3BhZ2V1cCcsXG4gICAgMzQ6ICdwYWdlZG93bicsXG4gICAgMzU6ICdlbmQnLFxuICAgIDM2OiAnaG9tZScsXG4gICAgMzc6ICdsZWZ0JyxcbiAgICAzODogJ3VwJyxcbiAgICAzOTogJ3JpZ2h0JyxcbiAgICA0MDogJ2Rvd24nLFxuICB9O1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX3NlbGVjdGVkRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgI19zdGFydGluZ0RheSA9IDA7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb21wYXJlSGFuZGxlcihoYW5kbGVyOiBEYXRlQ29tcGFyYXRvciwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5ID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbXBhcmUoXG4gICAgZGF0ZTE6IERhdGUgfCB1bmRlZmluZWQsXG4gICAgZGF0ZTI6IERhdGUgfCB1bmRlZmluZWQsXG4gICk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGRhdGUxID09PSB1bmRlZmluZWQgfHwgZGF0ZTIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ2RheScgJiYgdGhpcy5jb21wYXJlSGFuZGxlckRheSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkoZGF0ZTEsIGRhdGUyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ21vbnRoJyAmJiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgoZGF0ZTEsIGRhdGUyKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicgJiYgdGhpcy5jb21wYXJlSGFuZGxlclllYXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhcihkYXRlMSwgZGF0ZTIpO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZWZyZXNoVmlld0hhbmRsZXIoaGFuZGxlcjogKCkgPT4gdm9pZCwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlckRheSA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGggPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2hWaWV3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAnZGF5JyAmJiB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlckRheSkge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJEYXkoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ21vbnRoJyAmJiB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlck1vbnRoKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlck1vbnRoKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICd5ZWFyJyAmJiB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlclllYXIpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyWWVhcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRLZXlkb3duSGFuZGxlcihoYW5kbGVyOiBLZXlib2FyZEV2ZW50SGFuZGxlciwgdHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLmhhbmRsZUtleWRvd25EYXkgPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLmhhbmRsZUtleWRvd25Nb250aCA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZUtleWRvd24oa2V5OiBzdHJpbmcsIGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMuaGFuZGxlS2V5ZG93bkRheSkge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duRGF5KGtleSwgZXZlbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAnbW9udGgnICYmIHRoaXMuaGFuZGxlS2V5ZG93bk1vbnRoKSB7XG4gICAgICB0aGlzLmhhbmRsZUtleWRvd25Nb250aChrZXksIGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ3llYXInICYmIHRoaXMuaGFuZGxlS2V5ZG93blllYXIpIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93blllYXIoa2V5LCBldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRhdGVGaWx0ZXIoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVGb3JtYXR0ZXIuZm9ybWF0KGRhdGUsIGZvcm1hdCk7XG4gIH1cblxuICBwdWJsaWMgaXNBY3RpdmUoZGF0ZU9iamVjdDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29tcGFyZShkYXRlT2JqZWN0LmRhdGUsIHRoaXMuYWN0aXZlRGF0ZSkgPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZUlkID0gZGF0ZU9iamVjdC51aWQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5rZXlzW2V2ZW50LndoaWNoXTtcblxuICAgIGlmICgha2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoa2V5ID09PSAnZW50ZXInIHx8IGtleSA9PT0gJ3NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCh0aGlzLmFjdGl2ZURhdGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5jdHJsS2V5ICYmIChrZXkgPT09ICd1cCcgfHwga2V5ID09PSAnZG93bicpKSB7XG4gICAgICB0aGlzLnRvZ2dsZU1vZGUoa2V5ID09PSAndXAnID8gMSA6IC0xKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duKGtleSwgZXZlbnQpO1xuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVEYXRlT2JqZWN0KFxuICAgIGRhdGU6IERhdGUsXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgaXNTZWNvbmRhcnk6IGJvb2xlYW4sXG4gICAgaWQ6IHN0cmluZyxcbiAgKTogU2t5RGF0ZXBpY2tlckRhdGUge1xuICAgIGNvbnN0IGN1c3RvbURhdGVNYXRjaCA9IHRoaXMuI2dldEN1c3RvbURhdGUoZGF0ZSk7XG5cbiAgICBjb25zdCBkYXRlT2JqZWN0OiBTa3lEYXRlcGlja2VyRGF0ZSA9IHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSksXG4gICAgICBsYWJlbDogdGhpcy5kYXRlRmlsdGVyKGRhdGUsIGZvcm1hdCksXG4gICAgICBzZWxlY3RlZDpcbiAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLmNvbXBhcmUoZGF0ZSwgdGhpcy5zZWxlY3RlZERhdGUpID09PSAwLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZChkYXRlKSxcbiAgICAgIGN1cnJlbnQ6IHRoaXMuY29tcGFyZShkYXRlLCBuZXcgRGF0ZSgpKSA9PT0gMCxcbiAgICAgIHNlY29uZGFyeTogaXNTZWNvbmRhcnksXG4gICAgICB1aWQ6IGlkLFxuICAgICAga2V5RGF0ZTogY3VzdG9tRGF0ZU1hdGNoID8gY3VzdG9tRGF0ZU1hdGNoLmtleURhdGUgOiB1bmRlZmluZWQsXG4gICAgICBrZXlEYXRlVGV4dDogY3VzdG9tRGF0ZU1hdGNoID8gY3VzdG9tRGF0ZU1hdGNoLmtleURhdGVUZXh0IDogW10sXG4gICAgfTtcblxuICAgIHJldHVybiBkYXRlT2JqZWN0O1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNhbGVuZGFyUm93cyhcbiAgICBkYXRlczogQXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+LFxuICAgIHNpemU6IG51bWJlcixcbiAgKTogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PiB7XG4gICAgY29uc3Qgcm93czogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PiA9IFtdO1xuICAgIHdoaWxlIChkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICByb3dzLnB1c2goZGF0ZXMuc3BsaWNlKDAsIHNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cblxuICAvKlxuICAgIFRoaXMgaXMgZW5zdXJlcyB0aGF0IG5vIHN0cmFuZ2VuZXNzIGhhcHBlbnMgd2hlbiBjb252ZXJ0aW5nIGEgZGF0ZSB0byBsb2NhbCB0aW1lLlxuICAqL1xuICBwdWJsaWMgZml4VGltZVpvbmUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG5cbiAgICByZXR1cm4gbmV3RGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RDYWxlbmRhcihldmVudDogRXZlbnQsIGRhdGU6IERhdGUsIGNsb3NlUGlja2VyID0gZmFsc2UpIHtcbiAgICBpZiAoIWNsb3NlUGlja2VyKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0KGRhdGUpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdChkYXRlOiBEYXRlLCBpc01hbnVhbCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZShcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICk7XG5cbiAgICAvKlxuICAgICAgICBPbmx5IGFjdHVhbGx5IHNlbGVjdCBkYXRlIGlmIGluIG1pbk1vZGUgKGRheSBwaWNrZXIgbW9kZSkuXG4gICAgICAgIE90aGVyd2lzZSwganVzdCBjaGFuZ2UgdGhlIGFjdGl2ZSB2aWV3IGZvciB0aGUgZGF0ZXBpY2tlci5cbiAgICAqL1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSB0aGlzLm1pbk1vZGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIGlmIChpc01hbnVhbCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlcGlja2VyTW9kZSA9XG4gICAgICAgIHRoaXMubW9kZXNbdGhpcy5tb2Rlcy5pbmRleE9mKHRoaXMuZGF0ZXBpY2tlck1vZGUpIC0gMV07XG4gICAgICB0aGlzLmNhbGVuZGFyTW9kZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZXBpY2tlck1vZGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50LCBkaXJlY3Rpb246IG51bWJlcikge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5tb3ZlKGRpcmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgbW92ZShkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBleHBlY3RlZFN0ZXA6IGFueTtcbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ2RheScpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcERheTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgZXhwZWN0ZWRTdGVwID0gdGhpcy5zdGVwTW9udGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICd5ZWFyJykge1xuICAgICAgZXhwZWN0ZWRTdGVwID0gdGhpcy5zdGVwWWVhcjtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChleHBlY3RlZFN0ZXApIHtcbiAgICAgIGNvbnN0IHllYXIgPVxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKSArIGRpcmVjdGlvbiAqIChleHBlY3RlZFN0ZXAueWVhcnMgfHwgMCk7XG4gICAgICBjb25zdCBtb250aCA9XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZS5nZXRNb250aCgpICsgZGlyZWN0aW9uICogKGV4cGVjdGVkU3RlcC5tb250aHMgfHwgMCk7XG5cbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcblxuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNb2RlQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZU1vZGUoMSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTW9kZShkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgMTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKFxuICAgICAgIShkaXJlY3Rpb24gPT09IDEgJiYgdGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gdGhpcy5tYXhNb2RlKSAmJlxuICAgICAgISh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSB0aGlzLm1pbk1vZGUgJiYgZGlyZWN0aW9uID09PSAtMSlcbiAgICApIHtcbiAgICAgIHRoaXMuZGF0ZXBpY2tlck1vZGUgPVxuICAgICAgICB0aGlzLm1vZGVzW3RoaXMubW9kZXMuaW5kZXhPZih0aGlzLmRhdGVwaWNrZXJNb2RlKSArIGRpcmVjdGlvbl07XG4gICAgICB0aGlzLmNhbGVuZGFyTW9kZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZXBpY2tlck1vZGUpO1xuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEYXRlIGlzIGRpc2FibGVkIGlmIGl0IG1lZXRzIGFueSBvZiB0aGVzZSBjcml0ZXJpYTpcbiAgICogMS4gRGF0ZSBmYWxscyBvdXRzaWRlIHRoZSBtaW4gb3IgbWF4IGRhdGVzIHNldCBieSB0aGUgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2UuXG4gICAqIDIuIERhdGUgaXMgbWFya2VkIGFzIGRpc2FibGVkIGluIHRoZSBjdXN0b21EYXRlcyBhcnJheS5cbiAgICovXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXN0b21EYXRlID0gdGhpcy4jZ2V0Q3VzdG9tRGF0ZShkYXRlKTtcbiAgICBjb25zdCBtaW5EYXRlQ29tcGFyZSA9IHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLm1pbkRhdGUpO1xuICAgIGNvbnN0IG1heERhdGVDb21wYXJlID0gdGhpcy5jb21wYXJlKGRhdGUsIHRoaXMubWF4RGF0ZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgKG1pbkRhdGVDb21wYXJlICE9PSB1bmRlZmluZWQgJiYgbWluRGF0ZUNvbXBhcmUgPCAwKSB8fFxuICAgICAgKG1heERhdGVDb21wYXJlICE9PSB1bmRlZmluZWQgJiYgbWF4RGF0ZUNvbXBhcmUgPiAwKSB8fFxuICAgICAgISFjdXN0b21EYXRlPy5kaXNhYmxlZFxuICAgICk7XG4gIH1cblxuICAjZ2V0Q3VzdG9tRGF0ZShkYXRlOiBEYXRlKTogU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmN1c3RvbURhdGVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXN0b21EYXRlcy5maW5kKChjdXN0b21EYXRlOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZSkgPT4ge1xuICAgICAgICByZXR1cm4gY3VzdG9tRGF0ZS5kYXRlLmdldFRpbWUoKSA9PT0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImRhdGVwaWNrZXJNb2RlXCJcbiAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lclwiXG4gIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuIl19
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBT3BELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOztHQUVHO0FBT0gsTUFBTSxPQUFPLG1DQUFtQztJQU5oRDtRQTJDUyx1QkFBa0IsR0FBdUIsSUFBSSxZQUFZLENBQzlELFNBQVMsQ0FDVixDQUFDO1FBR0ssdUJBQWtCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFN0UsaU1BQWlNO1FBQzFMLGVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFD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Q0FBbUMsNFRDbENoRCxvM0NBdUNBOzsyRkRMYSxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJOzhCQU05QixXQUFXO3NCQURqQixLQUFLO2dCQUlLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJSyxZQUFZO3NCQUR0QixLQUFLO2dCQWdCQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBTUEsa0JBQWtCO3NCQUR4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreURhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDdXN0b21EYXRlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWN1c3RvbS1kYXRlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJEYXRlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWRhdGUnO1xuXG50eXBlIERhdGVDb21wYXJhdG9yID0gKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSkgPT4gbnVtYmVyIHwgdW5kZWZpbmVkO1xudHlwZSBLZXlib2FyZEV2ZW50SGFuZGxlciA9IChrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG5cbmxldCBuZXh0RGF0ZXBpY2tlcklkID0gMDtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGVwaWNrZXItaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItY2FsZW5kYXItaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjdXN0b21EYXRlczogU2t5RGF0ZXBpY2tlckN1c3RvbURhdGVbXSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0aW5nRGF5KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3RhcnRpbmdEYXkgPSB2YWx1ZSB8fCAwO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFydGluZ0RheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfc3RhcnRpbmdEYXk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRGF0ZSh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLmRhdGVGb3JtYXR0ZXIuZGF0ZUlzVmFsaWQodmFsdWUpKSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX3NlbGVjdGVkRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19zZWxlY3RlZERhdGU7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPihcbiAgICB1bmRlZmluZWQsXG4gICk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYWxlbmRhck1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLy8gVE9ETzogYGFjdGl2ZURhdGVgIGlzIHZlcnkgc2ltaWxhciB0byBgc2VsZWN0ZWREYXRlYCBhbmQgYXQgdGhlIHZlcnkgbGVhc3Qgc2hvdWxkIGJlIGFibGUgdG8gYmUgdW5kZWZpbmVkLiBIb3dldmVyLCB0aGlzIHdvdWxkIHRha2UgY29uc2lkZXJhYmxlIHJlZmFjdG9yaW5nIHRvIGRvIGFuZCB0aHVzIGhhcyBiZWVuIGRlZmVycmVkLlxuICBwdWJsaWMgYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyBhY3RpdmVEYXRlSWQgPSAnJztcblxuICBwdWJsaWMgdGl0bGUgPSAnJztcblxuICBwdWJsaWMgbWluTW9kZSA9ICdkYXknO1xuICBwdWJsaWMgbWF4TW9kZSA9ICd5ZWFyJztcbiAgcHVibGljIG1vbnRoQ29sTGltaXQgPSAzO1xuICBwdWJsaWMgeWVhckNvbExpbWl0ID0gNTtcbiAgcHVibGljIGRhdGVwaWNrZXJNb2RlID0gJ2RheSc7XG4gIHB1YmxpYyB5ZWFyUmFuZ2UgPSAyMDtcblxuICBwdWJsaWMgZm9ybWF0RGF5ID0gJ0REJztcbiAgcHVibGljIGZvcm1hdE1vbnRoID0gJ01NTU0nO1xuICBwdWJsaWMgZm9ybWF0WWVhciA9ICdZWVlZJztcbiAgcHVibGljIGZvcm1hdERheUhlYWRlciA9ICdkZCc7XG4gIHB1YmxpYyBmb3JtYXREYXlUaXRsZSA9ICdNTU1NIFlZWVknO1xuICBwdWJsaWMgZm9ybWF0TW9udGhUaXRsZSA9ICdZWVlZJztcblxuICBwdWJsaWMgcHJldmlvdXNMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbmV4dExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGRhdGVwaWNrZXJJZCA9IGBza3ktZGF0ZXBpY2tlci0keysrbmV4dERhdGVwaWNrZXJJZH1gO1xuXG4gIHB1YmxpYyBzdGVwRGF5OiBhbnkgPSB7fTtcbiAgcHVibGljIHN0ZXBNb250aDogYW55ID0ge307XG4gIHB1YmxpYyBzdGVwWWVhcjogYW55ID0ge307XG5cbiAgcHJvdGVjdGVkIG1vZGVzOiBzdHJpbmdbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcbiAgcHJvdGVjdGVkIGRhdGVGb3JtYXR0ZXI6IFNreURhdGVGb3JtYXR0ZXIgPSBuZXcgU2t5RGF0ZUZvcm1hdHRlcigpO1xuXG4gIHB1YmxpYyByZWZyZXNoVmlld0hhbmRsZXJEYXk6ICgoKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29tcGFyZUhhbmRsZXJEYXk6IERhdGVDb21wYXJhdG9yIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVmcmVzaFZpZXdIYW5kbGVyTW9udGg6ICgoKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgY29tcGFyZUhhbmRsZXJNb250aDogRGF0ZUNvbXBhcmF0b3IgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWZyZXNoVmlld0hhbmRsZXJZZWFyOiAoKCkgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbXBhcmVIYW5kbGVyWWVhcjogRGF0ZUNvbXBhcmF0b3IgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhhbmRsZUtleWRvd25EYXk6IEtleWJvYXJkRXZlbnRIYW5kbGVyIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaGFuZGxlS2V5ZG93bk1vbnRoOiBLZXlib2FyZEV2ZW50SGFuZGxlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGhhbmRsZUtleWRvd25ZZWFyOiBLZXlib2FyZEV2ZW50SGFuZGxlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMga2V5cyA9IFtcbiAgICAnZW50ZXInLFxuICAgICcgJyxcbiAgICAnc3BhY2ViYXInLFxuICAgICdwYWdldXAnLFxuICAgICdwYWdlZG93bicsXG4gICAgJ2VuZCcsXG4gICAgJ2hvbWUnLFxuICAgICdhcnJvd2xlZnQnLFxuICAgICdhcnJvd3VwJyxcbiAgICAnYXJyb3dyaWdodCcsXG4gICAgJ2Fycm93ZG93bicsXG4gIF07XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjcHJldkRheTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjbmV4dERheTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjcHJldk1vbnRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNuZXh0TW9udGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI3ByZXZZZWFyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNuZXh0WWVhcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNfc2VsZWN0ZWREYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuICAjX3N0YXJ0aW5nRGF5ID0gMDtcblxuICByZWFkb25seSAjcmVzb3VyY2VzU3ZjID0gaW5qZWN0KFNreUxpYlJlc291cmNlc1NlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLiNyZXNvdXJjZXNTdmNcbiAgICAgIC5nZXRTdHJpbmdzKHtcbiAgICAgICAgcHJldkRheTogJ3NreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9wcmV2aW91c19kYXknLFxuICAgICAgICBuZXh0RGF5OiAnc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX25leHRfZGF5JyxcbiAgICAgICAgcHJldk1vbnRoOiAnc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX3ByZXZpb3VzX21vbnRoJyxcbiAgICAgICAgbmV4dE1vbnRoOiAnc2t5dXhfZGF0ZXBpY2tlcl9tb3ZlX2NhbGVuZGFyX25leHRfbW9udGgnLFxuICAgICAgICBwcmV2WWVhcjogJ3NreXV4X2RhdGVwaWNrZXJfbW92ZV9jYWxlbmRhcl9wcmV2aW91c195ZWFyJyxcbiAgICAgICAgbmV4dFllYXI6ICdza3l1eF9kYXRlcGlja2VyX21vdmVfY2FsZW5kYXJfbmV4dF95ZWFyJyxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXNvdXJjZXMpID0+IHtcbiAgICAgICAgdGhpcy4jcHJldkRheSA9IHJlc291cmNlcy5wcmV2RGF5O1xuICAgICAgICB0aGlzLiNuZXh0RGF5ID0gcmVzb3VyY2VzLm5leHREYXk7XG4gICAgICAgIHRoaXMuI3ByZXZNb250aCA9IHJlc291cmNlcy5wcmV2TW9udGg7XG4gICAgICAgIHRoaXMuI25leHRNb250aCA9IHJlc291cmNlcy5uZXh0TW9udGg7XG4gICAgICAgIHRoaXMuI3ByZXZZZWFyID0gcmVzb3VyY2VzLnByZXZZZWFyO1xuICAgICAgICB0aGlzLiNuZXh0WWVhciA9IHJlc291cmNlcy5uZXh0WWVhcjtcblxuICAgICAgICB0aGlzLnJlZnJlc2hWaWV3KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb21wYXJlSGFuZGxlcihoYW5kbGVyOiBEYXRlQ29tcGFyYXRvciwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5ID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbXBhcmUoXG4gICAgZGF0ZTE6IERhdGUgfCB1bmRlZmluZWQsXG4gICAgZGF0ZTI6IERhdGUgfCB1bmRlZmluZWQsXG4gICk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGRhdGUxID09PSB1bmRlZmluZWQgfHwgZGF0ZTIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ2RheScgJiYgdGhpcy5jb21wYXJlSGFuZGxlckRheSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkoZGF0ZTEsIGRhdGUyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ21vbnRoJyAmJiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgoZGF0ZTEsIGRhdGUyKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicgJiYgdGhpcy5jb21wYXJlSGFuZGxlclllYXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhcihkYXRlMSwgZGF0ZTIpO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZWZyZXNoVmlld0hhbmRsZXIoaGFuZGxlcjogKCkgPT4gc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodHlwZSA9PT0gJ2RheScpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyRGF5ID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJNb250aCA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJZZWFyID0gaGFuZGxlcjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaFZpZXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyRGF5KSB7XG4gICAgICB0aGlzLnRpdGxlID0gdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJEYXkoKTtcbiAgICAgIHRoaXMucHJldmlvdXNMYWJlbCA9IHRoaXMuI3ByZXZEYXk7XG4gICAgICB0aGlzLm5leHRMYWJlbCA9IHRoaXMuI25leHREYXk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcgJiYgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJNb250aCkge1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGgoKTtcbiAgICAgIHRoaXMucHJldmlvdXNMYWJlbCA9IHRoaXMuI3ByZXZNb250aDtcbiAgICAgIHRoaXMubmV4dExhYmVsID0gdGhpcy4jbmV4dE1vbnRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicgJiYgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJZZWFyKSB7XG4gICAgICB0aGlzLnRpdGxlID0gdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJZZWFyKCk7XG4gICAgICB0aGlzLnByZXZpb3VzTGFiZWwgPSB0aGlzLiNwcmV2WWVhcjtcbiAgICAgIHRoaXMubmV4dExhYmVsID0gdGhpcy4jbmV4dFllYXI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEtleWRvd25IYW5kbGVyKGhhbmRsZXI6IEtleWJvYXJkRXZlbnRIYW5kbGVyLCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodHlwZSA9PT0gJ2RheScpIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bkRheSA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bk1vbnRoID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLmhhbmRsZUtleWRvd25ZZWFyID0gaGFuZGxlcjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlS2V5ZG93bihrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ2RheScgJiYgdGhpcy5oYW5kbGVLZXlkb3duRGF5KSB7XG4gICAgICB0aGlzLmhhbmRsZUtleWRvd25EYXkoa2V5LCBldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcgJiYgdGhpcy5oYW5kbGVLZXlkb3duTW9udGgpIHtcbiAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bk1vbnRoKGtleSwgZXZlbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicgJiYgdGhpcy5oYW5kbGVLZXlkb3duWWVhcikge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duWWVhcihrZXksIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGF0ZUZpbHRlcihkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdHRlci5mb3JtYXQoZGF0ZSwgZm9ybWF0KTtcbiAgfVxuXG4gIHB1YmxpYyBpc0FjdGl2ZShkYXRlT2JqZWN0OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jb21wYXJlKGRhdGVPYmplY3QuZGF0ZSwgdGhpcy5hY3RpdmVEYXRlKSA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlSWQgPSBkYXRlT2JqZWN0LnVpZDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk/LnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIXRoaXMua2V5cy5pbmNsdWRlcyhrZXkpIHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoa2V5ID09PSAnZW50ZXInIHx8IGtleSA9PT0gJ3NwYWNlYmFyJyB8fCBrZXkgPT09ICcgJykge1xuICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCh0aGlzLmFjdGl2ZURhdGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5jdHJsS2V5ICYmIChrZXkgPT09ICdhcnJvd3VwJyB8fCBrZXkgPT09ICdhcnJvd2Rvd24nKSkge1xuICAgICAgdGhpcy50b2dnbGVNb2RlKGtleSA9PT0gJ2Fycm93dXAnID8gMSA6IC0xKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVLZXlkb3duKGtleSwgZXZlbnQpO1xuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVEYXRlT2JqZWN0KFxuICAgIGRhdGU6IERhdGUsXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgaXNTZWNvbmRhcnk6IGJvb2xlYW4sXG4gICAgaWQ6IHN0cmluZyxcbiAgKTogU2t5RGF0ZXBpY2tlckRhdGUge1xuICAgIGNvbnN0IGN1c3RvbURhdGVNYXRjaCA9IHRoaXMuI2dldEN1c3RvbURhdGUoZGF0ZSk7XG5cbiAgICBjb25zdCBkYXRlT2JqZWN0OiBTa3lEYXRlcGlja2VyRGF0ZSA9IHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSksXG4gICAgICBsYWJlbDogdGhpcy5kYXRlRmlsdGVyKGRhdGUsIGZvcm1hdCksXG4gICAgICBzZWxlY3RlZDpcbiAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLmNvbXBhcmUoZGF0ZSwgdGhpcy5zZWxlY3RlZERhdGUpID09PSAwLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZChkYXRlKSxcbiAgICAgIGN1cnJlbnQ6IHRoaXMuY29tcGFyZShkYXRlLCBuZXcgRGF0ZSgpKSA9PT0gMCxcbiAgICAgIHNlY29uZGFyeTogaXNTZWNvbmRhcnksXG4gICAgICB1aWQ6IGlkLFxuICAgICAga2V5RGF0ZTogY3VzdG9tRGF0ZU1hdGNoID8gY3VzdG9tRGF0ZU1hdGNoLmtleURhdGUgOiB1bmRlZmluZWQsXG4gICAgICBrZXlEYXRlVGV4dDogY3VzdG9tRGF0ZU1hdGNoID8gY3VzdG9tRGF0ZU1hdGNoLmtleURhdGVUZXh0IDogW10sXG4gICAgfTtcblxuICAgIHJldHVybiBkYXRlT2JqZWN0O1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNhbGVuZGFyUm93cyhcbiAgICBkYXRlczogQXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+LFxuICAgIHNpemU6IG51bWJlcixcbiAgKTogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PiB7XG4gICAgY29uc3Qgcm93czogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PiA9IFtdO1xuICAgIHdoaWxlIChkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICByb3dzLnB1c2goZGF0ZXMuc3BsaWNlKDAsIHNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cblxuICAvKlxuICAgIFRoaXMgaXMgZW5zdXJlcyB0aGF0IG5vIHN0cmFuZ2VuZXNzIGhhcHBlbnMgd2hlbiBjb252ZXJ0aW5nIGEgZGF0ZSB0byBsb2NhbCB0aW1lLlxuICAqL1xuICBwdWJsaWMgZml4VGltZVpvbmUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG5cbiAgICByZXR1cm4gbmV3RGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RDYWxlbmRhcihldmVudDogRXZlbnQsIGRhdGU6IERhdGUsIGNsb3NlUGlja2VyID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoIWNsb3NlUGlja2VyKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0KGRhdGUpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdChkYXRlOiBEYXRlLCBpc01hbnVhbCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZShcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICk7XG5cbiAgICAvKlxuICAgICAgICBPbmx5IGFjdHVhbGx5IHNlbGVjdCBkYXRlIGlmIGluIG1pbk1vZGUgKGRheSBwaWNrZXIgbW9kZSkuXG4gICAgICAgIE90aGVyd2lzZSwganVzdCBjaGFuZ2UgdGhlIGFjdGl2ZSB2aWV3IGZvciB0aGUgZGF0ZXBpY2tlci5cbiAgICAqL1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSB0aGlzLm1pbk1vZGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIGlmIChpc01hbnVhbCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlcGlja2VyTW9kZSA9XG4gICAgICAgIHRoaXMubW9kZXNbdGhpcy5tb2Rlcy5pbmRleE9mKHRoaXMuZGF0ZXBpY2tlck1vZGUpIC0gMV07XG4gICAgICB0aGlzLmNhbGVuZGFyTW9kZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZXBpY2tlck1vZGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50LCBkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5tb3ZlKGRpcmVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgbW92ZShkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBleHBlY3RlZFN0ZXA6IGFueTtcbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ2RheScpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcERheTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgZXhwZWN0ZWRTdGVwID0gdGhpcy5zdGVwTW9udGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICd5ZWFyJykge1xuICAgICAgZXhwZWN0ZWRTdGVwID0gdGhpcy5zdGVwWWVhcjtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChleHBlY3RlZFN0ZXApIHtcbiAgICAgIGNvbnN0IHllYXIgPVxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKSArIGRpcmVjdGlvbiAqIChleHBlY3RlZFN0ZXAueWVhcnMgfHwgMCk7XG4gICAgICBjb25zdCBtb250aCA9XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZS5nZXRNb250aCgpICsgZGlyZWN0aW9uICogKGV4cGVjdGVkU3RlcC5tb250aHMgfHwgMCk7XG5cbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcblxuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNb2RlQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZU1vZGUoMSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTW9kZShkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgMTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKFxuICAgICAgIShkaXJlY3Rpb24gPT09IDEgJiYgdGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gdGhpcy5tYXhNb2RlKSAmJlxuICAgICAgISh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSB0aGlzLm1pbk1vZGUgJiYgZGlyZWN0aW9uID09PSAtMSlcbiAgICApIHtcbiAgICAgIHRoaXMuZGF0ZXBpY2tlck1vZGUgPVxuICAgICAgICB0aGlzLm1vZGVzW3RoaXMubW9kZXMuaW5kZXhPZih0aGlzLmRhdGVwaWNrZXJNb2RlKSArIGRpcmVjdGlvbl07XG4gICAgICB0aGlzLmNhbGVuZGFyTW9kZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZXBpY2tlck1vZGUpO1xuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEYXRlIGlzIGRpc2FibGVkIGlmIGl0IG1lZXRzIGFueSBvZiB0aGVzZSBjcml0ZXJpYTpcbiAgICogMS4gRGF0ZSBmYWxscyBvdXRzaWRlIHRoZSBtaW4gb3IgbWF4IGRhdGVzIHNldCBieSB0aGUgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2UuXG4gICAqIDIuIERhdGUgaXMgbWFya2VkIGFzIGRpc2FibGVkIGluIHRoZSBjdXN0b21EYXRlcyBhcnJheS5cbiAgICovXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXN0b21EYXRlID0gdGhpcy4jZ2V0Q3VzdG9tRGF0ZShkYXRlKTtcbiAgICBjb25zdCBtaW5EYXRlQ29tcGFyZSA9IHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLm1pbkRhdGUpO1xuICAgIGNvbnN0IG1heERhdGVDb21wYXJlID0gdGhpcy5jb21wYXJlKGRhdGUsIHRoaXMubWF4RGF0ZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgKG1pbkRhdGVDb21wYXJlICE9PSB1bmRlZmluZWQgJiYgbWluRGF0ZUNvbXBhcmUgPCAwKSB8fFxuICAgICAgKG1heERhdGVDb21wYXJlICE9PSB1bmRlZmluZWQgJiYgbWF4RGF0ZUNvbXBhcmUgPiAwKSB8fFxuICAgICAgISFjdXN0b21EYXRlPy5kaXNhYmxlZFxuICAgICk7XG4gIH1cblxuICAjZ2V0Q3VzdG9tRGF0ZShkYXRlOiBEYXRlKTogU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmN1c3RvbURhdGVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXN0b21EYXRlcy5maW5kKChjdXN0b21EYXRlOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZSkgPT4ge1xuICAgICAgICByZXR1cm4gY3VzdG9tRGF0ZS5kYXRlLmdldFRpbWUoKSA9PT0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGVwaWNrZXJNb2RlXCIgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lclwiPlxuICA8ZGl2IGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2FsZW5kYXItaGVhZGVyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1oZWFkZXItbGVmdFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLXNtIHNreS1kYXRlcGlja2VyLWJ0bi1wcmV2aW91c1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJldmlvdXNMYWJlbFwiXG4gICAgICAgIChjbGljayk9XCJtb3ZlQ2FsZW5kYXIoJGV2ZW50LCAtMSlcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jaGV2cm9uXCIgaWNvbj1cImNoZXZyb24tbGVmdFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1oZWFkZXItY2VudGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtpZF09XCJkYXRlcGlja2VySWQgKyAnLXRpdGxlJ1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4tc20gc2t5LWRhdGVwaWNrZXItY2FsZW5kYXItdGl0bGVcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlTW9kZUNhbGVuZGFyKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF0ZXBpY2tlck1vZGUgPT09IG1heE1vZGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1idG4tZGlzYWJsZWQnOiBkYXRlcGlja2VyTW9kZSA9PT0gbWF4TW9kZVxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHN0cm9uZz57eyB0aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItaGVhZGVyLXJpZ2h0XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4tc20gc2t5LWRhdGVwaWNrZXItYnRuLW5leHRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5leHRMYWJlbFwiXG4gICAgICAgIChjbGljayk9XCJtb3ZlQ2FsZW5kYXIoJGV2ZW50LCAxKVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb25cIiBpY29uPVwiY2hldnJvbi1yaWdodFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=
|
@@ -4,10 +4,11 @@ import { SkyDatepickerAdapterService } from './datepicker-adapter.service';
|
|
4
4
|
import { SkyDatepickerCalendarInnerComponent } from './datepicker-calendar-inner.component';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
import * as i1 from "./datepicker-config.service";
|
7
|
-
import * as i2 from "
|
8
|
-
import * as i3 from "./
|
9
|
-
import * as i4 from "./
|
10
|
-
import * as i5 from "./
|
7
|
+
import * as i2 from "@angular/common";
|
8
|
+
import * as i3 from "./datepicker-calendar-inner.component";
|
9
|
+
import * as i4 from "./daypicker.component";
|
10
|
+
import * as i5 from "./monthpicker.component";
|
11
|
+
import * as i6 from "./yearpicker.component";
|
11
12
|
/**
|
12
13
|
* @internal
|
13
14
|
*/
|
@@ -62,11 +63,11 @@ export class SkyDatepickerCalendarComponent {
|
|
62
63
|
}
|
63
64
|
}
|
64
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarComponent, deps: [{ token: i1.SkyDatepickerConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: { customDates: "customDates", isDaypickerWaiting: "isDaypickerWaiting", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate", startingDay: "startingDay" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange", calendarModeChange: "calendarModeChange", selectedDateChange: "selectedDateChange" }, providers: [SkyDatepickerAdapterService], viewQueries: [{ propertyName: "datepicker", first: true, predicate: SkyDatepickerCalendarInnerComponent, descendants: true, read: SkyDatepickerCalendarInnerComponent, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [customDates]=\"customDates\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selectedDate]=\"selectedDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange($event)\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n <sky-
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: { customDates: "customDates", isDaypickerWaiting: "isDaypickerWaiting", minDate: "minDate", maxDate: "maxDate", selectedDate: "selectedDate", startingDay: "startingDay" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange", calendarModeChange: "calendarModeChange", selectedDateChange: "selectedDateChange" }, providers: [SkyDatepickerAdapterService], viewQueries: [{ propertyName: "datepicker", first: true, predicate: SkyDatepickerCalendarInnerComponent, descendants: true, read: SkyDatepickerCalendarInnerComponent, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [customDates]=\"customDates\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selectedDate]=\"selectedDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange($event)\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n <div\n class=\"sky-datepicker-calendar-table-container\"\n autofocus\n tabindex=\"0\"\n (keydown)=\"datepicker?.onKeydown($event)\"\n >\n <sky-daypicker\n *ngIf=\"datepicker?.datepickerMode === 'day'\"\n [customDates]=\"customDates\"\n [isWaiting]=\"isDaypickerWaiting\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n ></sky-daypicker>\n <sky-monthpicker\n *ngIf=\"datepicker?.datepickerMode === 'month'\"\n ></sky-monthpicker>\n <sky-yearpicker\n *ngIf=\"datepicker?.datepickerMode === 'year'\"\n ></sky-yearpicker>\n </div>\n </sky-datepicker-inner>\n</div>\n", styles: [".sky-datepicker-calendar{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SkyDatepickerCalendarInnerComponent, selector: "sky-datepicker-inner", inputs: ["customDates", "startingDay", "minDate", "maxDate", "selectedDate"], outputs: ["selectedDateChange", "calendarModeChange"] }, { kind: "component", type: i4.SkyDayPickerComponent, selector: "sky-daypicker", inputs: ["customDates", "isWaiting"], outputs: ["calendarDateRangeChange"] }, { kind: "component", type: i5.SkyMonthPickerComponent, selector: "sky-monthpicker" }, { kind: "component", type: i6.SkyYearPickerComponent, selector: "sky-yearpicker" }] }); }
|
66
67
|
}
|
67
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyDatepickerCalendarComponent, decorators: [{
|
68
69
|
type: Component,
|
69
|
-
args: [{ selector: 'sky-datepicker-calendar', providers: [SkyDatepickerAdapterService], template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [customDates]=\"customDates\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selectedDate]=\"selectedDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange($event)\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n <sky-
|
70
|
+
args: [{ selector: 'sky-datepicker-calendar', providers: [SkyDatepickerAdapterService], template: "<div class=\"sky-datepicker-calendar\">\n <sky-datepicker-inner\n [customDates]=\"customDates\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selectedDate]=\"selectedDate\"\n [startingDay]=\"startingDay\"\n (calendarModeChange)=\"onCalendarModeChange($event)\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n <div\n class=\"sky-datepicker-calendar-table-container\"\n autofocus\n tabindex=\"0\"\n (keydown)=\"datepicker?.onKeydown($event)\"\n >\n <sky-daypicker\n *ngIf=\"datepicker?.datepickerMode === 'day'\"\n [customDates]=\"customDates\"\n [isWaiting]=\"isDaypickerWaiting\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n ></sky-daypicker>\n <sky-monthpicker\n *ngIf=\"datepicker?.datepickerMode === 'month'\"\n ></sky-monthpicker>\n <sky-yearpicker\n *ngIf=\"datepicker?.datepickerMode === 'year'\"\n ></sky-yearpicker>\n </div>\n </sky-datepicker-inner>\n</div>\n", styles: [".sky-datepicker-calendar{display:block}\n"] }]
|
70
71
|
}], ctorParameters: function () { return [{ type: i1.SkyDatepickerConfigService }]; }, propDecorators: { customDates: [{
|
71
72
|
type: Input
|
72
73
|
}], isDaypickerWaiting: [{
|
@@ -92,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
92
93
|
static: true,
|
93
94
|
}]
|
94
95
|
}] } });
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7QUFJNUY7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOEJBQThCO0lBaUJ6QyxvRUFBb0U7SUFDcEUsSUFDVyxXQUFXLENBQUMsS0FBeUI7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFxQkQsVUFBVSxDQUEwQjtJQUVwQyxhQUFhLENBQUs7SUFFbEIsT0FBTyxDQUE2QjtJQUVwQyxZQUFZLE1BQWtDO1FBeEJ2Qyw0QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFFOUMsQ0FBQztRQUdHLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLENBQU8sU0FBUyxDQUFDLENBQUM7UUFRcEQsU0FBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFFbEMsZUFBVSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUVwQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUtoQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0seUJBQXlCLENBQzlCLEtBQThDO1FBRTlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBVztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBdUI7UUFDdkMsSUFDRSxLQUFLLEtBQUssU0FBUztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQy9CLElBQUksQ0FBQyxVQUFVLEVBQUUsaUJBQWlCO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQ2pFO1lBQ0EsT0FBTztTQUNSO1FBRUQsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7OEdBN0ZVLDhCQUE4QjtrR0FBOUIsOEJBQThCLDJYQUY5QixDQUFDLDJCQUEyQixDQUFDLHNFQXdDN0IsbUNBQW1DLDJCQUN0QyxtQ0FBbUMsMkNDL0Q3Qyw2Z0NBK0JBOzsyRkRQYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UseUJBQXlCLGFBR3hCLENBQUMsMkJBQTJCLENBQUM7aUhBSWpDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSztnQkFLSyxXQUFXO3NCQURyQixLQUFLO2dCQVVDLHVCQUF1QjtzQkFEN0IsTUFBTTtnQkFNQSxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsa0JBQWtCO3NCQUR4QixNQUFNO2dCQU9BLFVBQVU7c0JBSmhCLFNBQVM7dUJBQUMsbUNBQW1DLEVBQUU7d0JBQzlDLElBQUksRUFBRSxtQ0FBbUM7d0JBQ3pDLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGVwaWNrZXItY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF0ZXBpY2tlci1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lEYXRlcGlja2VyQWRhcHRlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3VzdG9tRGF0ZXM6IFNreURhdGVwaWNrZXJDdXN0b21EYXRlW10gfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzRGF5cGlja2VyV2FpdGluZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKiogY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKiogc3RhcnRpbmcgZGF5IG9mIHRoZSB3ZWVrIGZyb20gMC02ICgwPVN1bmRheSwgLi4uLCA2PVNhdHVyZGF5KSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0aW5nRGF5KHN0YXJ0OiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc3RhcnRpbmdEYXkgPSBzdGFydCA/PyAwO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFydGluZ0RheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfc3RhcnRpbmdEYXk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UgfCB1bmRlZmluZWRcbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2FsZW5kYXJNb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZERhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KHVuZGVmaW5lZCk7XG5cbiAgQFZpZXdDaGlsZChTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCwge1xuICAgIHJlYWQ6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50LFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBfbm93OiBEYXRlID0gbmV3IERhdGUoKTtcblxuICAjZm9ybWF0dGVyID0gbmV3IFNreURhdGVGb3JtYXR0ZXIoKTtcblxuICAjX3N0YXJ0aW5nRGF5ID0gMDtcblxuICAjY29uZmlnOiBTa3lEYXRlcGlja2VyQ29uZmlnU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFNreURhdGVwaWNrZXJDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy4jY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuY29uZmlndXJlT3B0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGNvbmZpZ3VyZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCB0aGlzLiNjb25maWcpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UoXG4gICAgZXZlbnQ6IFNreURhdGVwaWNrZXJDYWxlbmRhckNoYW5nZSB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbGVuZGFyTW9kZUNoYW5nZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhck1vZGVDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RlZERhdGVDaGFuZ2UoZXZlbnQ6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy4jZm9ybWF0dGVyLmRhdGVJc1ZhbGlkKHZhbHVlKSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5kYXRlcGlja2VyPy5jb21wYXJlSGFuZGxlckRheSAmJlxuICAgICAgdGhpcy5kYXRlcGlja2VyLmNvbXBhcmVIYW5kbGVyRGF5KHZhbHVlLCB0aGlzLnNlbGVjdGVkRGF0ZSkgPT09IDBcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgJiYgdGhpcy4jZm9ybWF0dGVyLmRhdGVJc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuZGF0ZXBpY2tlcj8uc2VsZWN0KHZhbHVlLCBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMuZGF0ZXBpY2tlcj8uc2VsZWN0KG5ldyBEYXRlKCksIGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jYWxlbmRhclwiPlxuICA8c2t5LWRhdGVwaWNrZXItaW5uZXJcbiAgICBbY3VzdG9tRGF0ZXNdPVwiY3VzdG9tRGF0ZXNcIlxuICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlXCJcbiAgICBbc3RhcnRpbmdEYXldPVwic3RhcnRpbmdEYXlcIlxuICAgIChjYWxlbmRhck1vZGVDaGFuZ2UpPVwib25DYWxlbmRhck1vZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2FsZW5kYXItdGFibGUtY29udGFpbmVyXCJcbiAgICAgIGF1dG9mb2N1c1xuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIChrZXlkb3duKT1cImRhdGVwaWNrZXI/Lm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c2t5LWRheXBpY2tlclxuICAgICAgICAqbmdJZj1cImRhdGVwaWNrZXI/LmRhdGVwaWNrZXJNb2RlID09PSAnZGF5J1wiXG4gICAgICAgIFtjdXN0b21EYXRlc109XCJjdXN0b21EYXRlc1wiXG4gICAgICAgIFtpc1dhaXRpbmddPVwiaXNEYXlwaWNrZXJXYWl0aW5nXCJcbiAgICAgICAgKGNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlKT1cIm9uQ2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9za3ktZGF5cGlja2VyPlxuICAgICAgPHNreS1tb250aHBpY2tlclxuICAgICAgICAqbmdJZj1cImRhdGVwaWNrZXI/LmRhdGVwaWNrZXJNb2RlID09PSAnbW9udGgnXCJcbiAgICAgID48L3NreS1tb250aHBpY2tlcj5cbiAgICAgIDxza3kteWVhcnBpY2tlclxuICAgICAgICAqbmdJZj1cImRhdGVwaWNrZXI/LmRhdGVwaWNrZXJNb2RlID09PSAneWVhcidcIlxuICAgICAgPjwvc2t5LXllYXJwaWNrZXI+XG4gICAgPC9kaXY+XG4gIDwvc2t5LWRhdGVwaWNrZXItaW5uZXI+XG48L2Rpdj5cbiJdfQ==
|