ecabs-components 1.1.72 → 1.1.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/esm2022/lib/base/models/waypoint.models.mjs +1 -1
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.mjs +11 -24
- package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.mjs +2 -2
- package/esm2022/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.mjs +50 -40
- package/fesm2022/ecabs-components.mjs +58 -61
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/models/waypoint.models.d.ts +1 -1
- package/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.d.ts +1 -2
- package/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.d.ts +12 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,6 +25,9 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
|
|
|
25
25
|
|
|
26
26
|
## Version History
|
|
27
27
|
|
|
28
|
+
- **v1.1.74** — Optimize `dateRangeValidator` logic to streamline error handling and remove redundant optional input properties `dateFromOptional` and `dateToOptional`.
|
|
29
|
+
- **v1.1.73** — Include `place_id` in Google Place API result fields.
|
|
30
|
+
- Add `debounceTime` input for customizable debounce delays
|
|
28
31
|
- **v1.1.72** — Add external filtering support (`useExternalFilter`) to `EcabsChipAutocomplete`.
|
|
29
32
|
- **v1.1.71** — Add label truncation with tooltip to `EcabsChipAutocomplete` to ensure consistent chip sizing and label overflow handling.
|
|
30
33
|
- **v1.1.70** — Improve `EcabsCheckboxV2` with new `checked` input and dynamic label styles.
|
|
@@ -23,4 +23,4 @@ export const WAYPOINT_SUGGESTIONS2 = [
|
|
|
23
23
|
source: 'history',
|
|
24
24
|
},
|
|
25
25
|
];
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F5cG9pbnQubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXlCO0lBQ3hEO1FBQ0UsYUFBYSxFQUFFLEtBQUs7UUFDcEIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1FBQzlDLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsTUFBTSxFQUFFLFNBQVM7S0FDbEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXlCO0lBQ3pEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDOUMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxNQUFNLEVBQUUsU0FBUztLQUNsQjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsZUFBZSxFQUFFLDZDQUE2QztRQUM5RCxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDOUMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxNQUFNLEVBQUUsU0FBUztLQUNsQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGxhY2VSZXN1bHQgPSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQ7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vY29uc3RzL3dheXBvaW50LmNvbnN0cyc7XG5pbXBvcnQgUHJlZGljdGlvblRlcm0gPSBnb29nbGUubWFwcy5wbGFjZXMuUHJlZGljdGlvblRlcm07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F5cG9pbnRTdWdnZXN0aW9uIHtcbiAgc3VnZ2VzdGlvbl9pZD86IHN0cmluZztcbiAgYWRkaXRpb25hbF9pbmZvPzogc3RyaW5nO1xuICBsb2NhdGlvbj86IEdlb1BvaW50O1xuICBwbGFjZV9pZDogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIGZyZXF1ZW5jeT86IG51bWJlcjtcbiAgbGFzdF92aXNpdD86IHN0cmluZyB8IERhdGU7XG4gIGdlb19rZXk/
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F5cG9pbnQubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXlCO0lBQ3hEO1FBQ0UsYUFBYSxFQUFFLEtBQUs7UUFDcEIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1FBQzlDLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsTUFBTSxFQUFFLFNBQVM7S0FDbEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXlCO0lBQ3pEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDOUMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxNQUFNLEVBQUUsU0FBUztLQUNsQjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsZUFBZSxFQUFFLDZDQUE2QztRQUM5RCxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDOUMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxNQUFNLEVBQUUsU0FBUztLQUNsQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGxhY2VSZXN1bHQgPSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQ7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vY29uc3RzL3dheXBvaW50LmNvbnN0cyc7XG5pbXBvcnQgUHJlZGljdGlvblRlcm0gPSBnb29nbGUubWFwcy5wbGFjZXMuUHJlZGljdGlvblRlcm07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F5cG9pbnRTdWdnZXN0aW9uIHtcbiAgc3VnZ2VzdGlvbl9pZD86IHN0cmluZztcbiAgYWRkaXRpb25hbF9pbmZvPzogc3RyaW5nO1xuICBsb2NhdGlvbj86IEdlb1BvaW50O1xuICBwbGFjZV9pZDogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIGZyZXF1ZW5jeT86IG51bWJlcjtcbiAgbGFzdF92aXNpdD86IHN0cmluZyB8IERhdGU7XG4gIGdlb19rZXk/OiBzdHJpbmc7XG4gIHByZWRpY3Rpb25fdGVybT86IFByZWRpY3Rpb25UZXJtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvUG9pbnQge1xuICBsYXQ6IG51bWJlcjtcbiAgbG5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGxhY2VSZXN1bHQge1xuICBwbGFjZTogUGxhY2VSZXN1bHQ7XG4gIHRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYXlwb2ludFF1ZXJ5Q2hhbmdlIHtcbiAgd2F5cG9pbnRfdHlwZTogV2F5cG9pbnRUeXBlRW51bTtcbiAgcGxhY2VfbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgV0FZUE9JTlRfU1VHR0VTVElPTlM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW1xuICB7XG4gICAgc3VnZ2VzdGlvbl9pZDogJzEyMycsXG4gICAgYWRkaXRpb25hbF9pbmZvOiAnRmFzdGxhbmUgTHRkLicsXG4gICAgbG9jYXRpb246IHsgbGF0OiAzNS45MDM4NjIzLCBsbmc6IDE0LjQxMjk1MzMgfSxcbiAgICBwbGFjZV9pZDogJ0NoSUprOXYweHRsUkRoTVJocnRydDJDaElpYycsXG4gICAgc291cmNlOiAnaGlzdG9yeScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgV0FZUE9JTlRfU1VHR0VTVElPTlMyOiBXYXlwb2ludFN1Z2dlc3Rpb25bXSA9IFtcbiAge1xuICAgIHN1Z2dlc3Rpb25faWQ6ICcxMjM0JyxcbiAgICBhZGRpdGlvbmFsX2luZm86ICdGYXN0bGFuZSBMdGQuIDIwMDAnLFxuICAgIGxvY2F0aW9uOiB7IGxhdDogMzUuOTAzODYyMywgbG5nOiAxNC40MTI5NTMzIH0sXG4gICAgcGxhY2VfaWQ6ICdDaElKazl2MHh0bFJEaE1SaHJ0cnQyQ2hJaWMnLFxuICAgIHNvdXJjZTogJ2hpc3RvcnknLFxuICB9LFxuICB7XG4gICAgc3VnZ2VzdGlvbl9pZDogJzEyMzQnLFxuICAgIGFkZGl0aW9uYWxfaW5mbzogJzQ0OCBE4oCZQXJnZW5zIEdhcmRlbiwgTGV5bGFuZCwgU2xpZW1hLCBNYWx0YScsXG4gICAgbG9jYXRpb246IHsgbGF0OiAzNS45MDk1MDExLCBsbmc6IDE0LjQ5NDU5ODIgfSxcbiAgICBwbGFjZV9pZDogJ0NoSUprOXYweHRsUkRoTVJocnRydDJDaElpYycsXG4gICAgc291cmNlOiAnaGlzdG9yeScsXG4gIH0sXG5dO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR, NgControl,
|
|
2
|
+
import { NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
|
|
3
3
|
import { format, isEqual, isValid } from 'date-fns';
|
|
4
4
|
import Holidays from 'date-holidays';
|
|
5
5
|
import { isEqual as lodashIsEqual } from 'lodash';
|
|
@@ -28,7 +28,6 @@ export class EcabsDateRangePickerComponentV2 extends EcabsElementBaseComponent {
|
|
|
28
28
|
excludeWeekends;
|
|
29
29
|
specificDates;
|
|
30
30
|
holidayOptions;
|
|
31
|
-
dateToOptional = false;
|
|
32
31
|
onblur = new EventEmitter();
|
|
33
32
|
val;
|
|
34
33
|
pickerTo;
|
|
@@ -69,7 +68,7 @@ export class EcabsDateRangePickerComponentV2 extends EcabsElementBaseComponent {
|
|
|
69
68
|
if (val && isValid(new Date(val))) {
|
|
70
69
|
this._dateFrom = val;
|
|
71
70
|
this.minDateTo = new Date(val);
|
|
72
|
-
if (!this.dateTo
|
|
71
|
+
if (!this.dateTo) {
|
|
73
72
|
this.pickerTo?.open();
|
|
74
73
|
}
|
|
75
74
|
}
|
|
@@ -191,32 +190,22 @@ export class EcabsDateRangePickerComponentV2 extends EcabsElementBaseComponent {
|
|
|
191
190
|
return true;
|
|
192
191
|
}
|
|
193
192
|
dateRangeValidator(control) {
|
|
194
|
-
const required = control?.hasValidator(Validators.required);
|
|
195
193
|
if (!control.value) {
|
|
196
|
-
if (required) {
|
|
197
|
-
control.setErrors({ required: true });
|
|
198
|
-
}
|
|
199
194
|
return;
|
|
200
195
|
}
|
|
201
196
|
const { dateFrom, dateTo } = control.value;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
(!dateTo || dateTo?.length === 0)) {
|
|
206
|
-
control.setErrors({ required: true });
|
|
207
|
-
}
|
|
208
|
-
else if (!dateFrom && dateTo) {
|
|
209
|
-
control.setErrors({ rangeFrom: true });
|
|
210
|
-
}
|
|
211
|
-
else if (dateFrom && !dateTo && !this.dateToOptional) {
|
|
212
|
-
control.setErrors({ rangeTo: true });
|
|
213
|
-
}
|
|
214
|
-
else if (dateFrom && dateTo && new Date(dateFrom) > new Date(dateTo)) {
|
|
197
|
+
const from = new Date(dateFrom);
|
|
198
|
+
const to = new Date(dateTo);
|
|
199
|
+
if (dateFrom && dateTo && from > to) {
|
|
215
200
|
control.setErrors({ rangeOrder: true });
|
|
216
201
|
}
|
|
202
|
+
else if (control.hasError('rangeOrder')) {
|
|
203
|
+
const { rangeOrder: _, ...rest } = control.errors ?? {};
|
|
204
|
+
control.setErrors(Object.keys(rest).length ? rest : null);
|
|
205
|
+
}
|
|
217
206
|
}
|
|
218
207
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateRangePickerComponentV2, deps: [{ token: i0.Injector }, { token: i1.EcabsDatePickerHeaderService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
219
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateRangePickerComponentV2, selector: "ecabs-date-range-picker-v2", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", cancelLabel: "cancelLabel", applyLabel: "applyLabel", startDatePlaceholder: "startDatePlaceholder", endDatePlaceholder: "endDatePlaceholder", separatorLabel: "separatorLabel", excludeHolidays: "excludeHolidays", excludeWeekends: "excludeWeekends", specificDates: "specificDates", holidayOptions: "holidayOptions"
|
|
208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDateRangePickerComponentV2, selector: "ecabs-date-range-picker-v2", inputs: { minDate: "minDate", maxDate: "maxDate", touchUi: "touchUi", cancelLabel: "cancelLabel", applyLabel: "applyLabel", startDatePlaceholder: "startDatePlaceholder", endDatePlaceholder: "endDatePlaceholder", separatorLabel: "separatorLabel", excludeHolidays: "excludeHolidays", excludeWeekends: "excludeWeekends", specificDates: "specificDates", holidayOptions: "holidayOptions" }, outputs: { onblur: "onblur" }, providers: [
|
|
220
209
|
{
|
|
221
210
|
provide: NG_VALUE_ACCESSOR,
|
|
222
211
|
useExisting: EcabsDateRangePickerComponentV2,
|
|
@@ -257,12 +246,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
257
246
|
type: Input
|
|
258
247
|
}], holidayOptions: [{
|
|
259
248
|
type: Input
|
|
260
|
-
}], dateToOptional: [{
|
|
261
|
-
type: Input
|
|
262
249
|
}], onblur: [{
|
|
263
250
|
type: Output
|
|
264
251
|
}], pickerTo: [{
|
|
265
252
|
type: ViewChild,
|
|
266
253
|
args: ['pickerTo']
|
|
267
254
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEQsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWxELE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFNN0QsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0seUZBQXlGLENBQUM7QUFDaEosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFjaEUsTUFBTSxPQUFPLCtCQUNYLFNBQVEseUJBQXlCO0lBdUdkO0lBQ0E7SUFDQTtJQXRHVixPQUFPLENBQU87SUFDZCxPQUFPLENBQU87SUFDZCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFdBQVcsQ0FBUztJQUNwQixV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QUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQU1nQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZVJhbmdlUGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBmb3JtYXQsIGlzRXF1YWwsIGlzVmFsaWQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgSG9saWRheXMgZnJvbSAnZGF0ZS1ob2xpZGF5cyc7XG5pbXBvcnQgeyBpc0VxdWFsIGFzIGxvZGFzaElzRXF1YWwgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQge1xuICBFY2Fic0RhdGVQaWNrZXJIb2xpZGF5T3B0aW9ucyxcbiAgRWNhYnNEYXRlUGlja2VyVHJhbnNsYXRpb25zLFxufSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcbmltcG9ydCB7IEVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWRhdGUtcGlja2VyLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEVjYWJzRGF0ZVJhbmdlUGlja2VySGVhZGVyQ29tcG9uZW50VjIgfSBmcm9tICcuL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlci12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12MicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50VjIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudFYyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlO1xuICBASW5wdXQoKSB0b3VjaFVpID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc3RhcnREYXRlUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgZW5kRGF0ZVBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlcGFyYXRvckxhYmVsID0gJ3RvJztcbiAgQElucHV0KCkgZXhjbHVkZUhvbGlkYXlzOiBib29sZWFuO1xuICBASW5wdXQoKSBleGNsdWRlV2Vla2VuZHM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNwZWNpZmljRGF0ZXM6IERhdGVbXTtcbiAgQElucHV0KCkgaG9saWRheU9wdGlvbnM6IEVjYWJzRGF0ZVBpY2tlckhvbGlkYXlPcHRpb25zO1xuICBASW5wdXQoKSBkYXRlVG9PcHRpb25hbCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvbmJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgdmFsOiB7XG4gICAgZGF0ZUZyb206IHN0cmluZztcbiAgICBkYXRlVG86IHN0cmluZztcbiAgfTtcblxuICBAVmlld0NoaWxkKCdwaWNrZXJUbycpIHBpY2tlclRvOiBNYXREYXRlUmFuZ2VQaWNrZXI8YW55PiB8IHVuZGVmaW5lZDtcblxuICBoZWFkZXIgPSBFY2Fic0RhdGVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudFYyO1xuICBfZGF0ZUZyb206IHN0cmluZztcbiAgX2RhdGVUbzogc3RyaW5nO1xuICB0cmFuc2xhdGlvbkNvbmZpZzogRWNhYnNEYXRlUGlja2VyVHJhbnNsYXRpb25zO1xuICBtaW5EYXRlRnJvbT86IERhdGUgPSB1bmRlZmluZWQ7XG4gIG1heERhdGVGcm9tPzogRGF0ZSA9IHVuZGVmaW5lZDtcbiAgbWluRGF0ZVRvPzogRGF0ZSA9IHVuZGVmaW5lZDtcbiAgbWF4RGF0ZVRvPzogRGF0ZSA9IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFuZWxDbGFzcyA9ICdlY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mic7XG5cbiAgcHJpdmF0ZSBob2xpZGF5SW5zdGFuY2U6IEhvbGlkYXlzO1xuXG4gIGdldCB2YWx1ZSgpOiB7XG4gICAgZGF0ZUZyb206IHN0cmluZztcbiAgICBkYXRlVG86IHN0cmluZztcbiAgfSB7XG4gICAgcmV0dXJuIHRoaXMudmFsO1xuICB9XG5cbiAgZ2V0IGRhdGVGcm9tKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGcm9tO1xuICB9XG5cbiAgZ2V0IGRhdGVUbygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kYXRlVG87XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBzZXQgdmFsdWUodmFsOiB7IGRhdGVGcm9tOiBzdHJpbmc7IGRhdGVUbzogc3RyaW5nIH0pIHtcbiAgICBpZiAodGhpcy52YWwgIT09IHZhbCkge1xuICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICB0aGlzLmRhdGVGcm9tID0gdmFsLmRhdGVGcm9tO1xuICAgICAgdGhpcy5kYXRlVG8gPSB2YWwuZGF0ZVRvO1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICAgICAgdGhpcy5vblRvdWNoKHZhbCk7XG4gICAgfVxuICB9XG5cbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgc2V0IGRhdGVGcm9tKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2RhdGVGcm9tID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsICYmIGlzVmFsaWQobmV3IERhdGUodmFsKSkpIHtcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdmFsO1xuICAgICAgdGhpcy5taW5EYXRlVG8gPSBuZXcgRGF0ZSh2YWwpO1xuXG4gICAgICBpZiAoIXRoaXMuZGF0ZVRvICYmICF0aGlzLmRhdGVUb09wdGlvbmFsKSB7XG4gICAgICAgIHRoaXMucGlja2VyVG8/Lm9wZW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCF2YWwpIHtcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdmFsO1xuICAgICAgdGhpcy5taW5EYXRlVG8gPSB0aGlzLm1pbkRhdGU7XG4gICAgfVxuXG4gICAgdGhpcy5vbkFwcGx5KCk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBzZXQgZGF0ZVRvKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2RhdGVUbyA9PT0gdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbCAmJiBpc1ZhbGlkKG5ldyBEYXRlKHZhbCkpKSB7XG4gICAgICB0aGlzLl9kYXRlVG8gPSB2YWw7XG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbmV3IERhdGUodmFsKTtcbiAgICB9IGVsc2UgaWYgKCF2YWwpIHtcbiAgICAgIHRoaXMuX2RhdGVUbyA9IHZhbDtcbiAgICAgIHRoaXMubWF4RGF0ZUZyb20gPSB0aGlzLm1heERhdGU7XG4gICAgfVxuXG4gICAgdGhpcy5vbkFwcGx5KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2U6IEVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgbWluRGF0ZSwgbWF4RGF0ZSB9ID0gY2hhbmdlcztcblxuICAgIGlmIChtaW5EYXRlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMubWluRGF0ZUZyb20gPSBtaW5EYXRlPy5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLm1pbkRhdGVUbyA9IG1pbkRhdGU/LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAobWF4RGF0ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbWF4RGF0ZT8uY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5tYXhEYXRlVG8gPSBtYXhEYXRlPy5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlXG4gICAgICAuZ2V0Q29uZmlnKClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnKSA9PiAodGhpcy50cmFuc2xhdGlvbkNvbmZpZyA9IGNvbmZpZykpO1xuXG4gICAgaWYgKHRoaXMuaG9saWRheU9wdGlvbnM/LmNvdW50cnlDb2RlKSB7XG4gICAgICB0aGlzLmhvbGlkYXlJbnN0YW5jZSA9IG5ldyBIb2xpZGF5cyhcbiAgICAgICAgdGhpcy5ob2xpZGF5T3B0aW9ucy5jb3VudHJ5Q29kZS50b1VwcGVyQ2FzZSgpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgIGlmIChuZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kYXRlUmFuZ2VWYWxpZGF0b3IodGhpcy5jb250cm9sKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5kYXRlRnJvbSA9IHRoaXMudmFsdWUuZGF0ZUZyb207XG4gICAgICAgIHRoaXMuZGF0ZVRvID0gdGhpcy52YWx1ZS5kYXRlVG87XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlVmFsaWRhdG9yKHRoaXMuY29udHJvbCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIGJsdXJDaGFuZ2UoZSk6IHZvaWQge1xuICAgIHRoaXMub25ibHVyLmVtaXQoZSk7XG4gIH1cblxuICBvbkFwcGx5KCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0ge1xuICAgICAgZGF0ZUZyb206IHRoaXMuZGF0ZUZyb20sXG4gICAgICBkYXRlVG86IHRoaXMuZGF0ZVRvLFxuICAgIH07XG5cbiAgICBpZiAoIWxvZGFzaElzRXF1YWwodGhpcy52YWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbCA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICB0aGlzLm9uVG91Y2gobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkYXRlRnJvbTogdGhpcy5kYXRlRnJvbSxcbiAgICAgIGRhdGVUbzogdGhpcy5kYXRlVG8sXG4gICAgfTtcbiAgfVxuXG4gIGZpbHRlckRhdGVSYW5nZSA9IChkYXRlOiBEYXRlKTogYm9vbGVhbiA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICBpZiAoaXNWYWxpZChuZXcgRGF0ZShkYXRlKSkpIHtcbiAgICAgIGNvbnN0IGRheSA9IGRhdGU/LmdldERheSgpO1xuXG4gICAgICBpZiAodGhpcy5leGNsdWRlV2Vla2VuZHMpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGRheSAhPT0gMCAmJiBkYXkgIT09IDY7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4Y2x1ZGVIb2xpZGF5cykge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5pc0RhdGVOb3RIb2xpZGF5KGRhdGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zcGVjaWZpY0RhdGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHNwZWNpZmljRGF0ZXMgPSB0aGlzLnNwZWNpZmljRGF0ZXM7XG4gICAgICAgIGlmIChzcGVjaWZpY0RhdGVzICYmIHNwZWNpZmljRGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gc3BlY2lmaWNEYXRlcy5maW5kSW5kZXgoKHNwZWNpZmljRGF0ZSkgPT5cbiAgICAgICAgICAgIGlzRXF1YWwoZGF0ZSwgc3BlY2lmaWNEYXRlKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBpbmRleCA9PT0gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIGlzRGF0ZU5vdEhvbGlkYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgY291bnRyeUNvZGUsIHRpbWVab25lT2Zmc2V0IH0gPSB0aGlzLmhvbGlkYXlPcHRpb25zID8/IHt9O1xuXG4gICAgaWYgKGNvdW50cnlDb2RlICYmIHRpbWVab25lT2Zmc2V0KSB7XG4gICAgICByZXR1cm4gIXRoaXMuaG9saWRheUluc3RhbmNlPy5pc0hvbGlkYXkoXG4gICAgICAgIGAke2Zvcm1hdChkYXRlLCAneXl5eS1NTS1kZCcpfVQwMDowMDowMCR7dGltZVpvbmVPZmZzZXR9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBkYXRlUmFuZ2VWYWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgY29uc3QgcmVxdWlyZWQgPSBjb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG5cbiAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICBjb250cm9sLnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYXRlRnJvbSwgZGF0ZVRvIH0gPSBjb250cm9sLnZhbHVlO1xuICAgIGNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuXG4gICAgaWYgKFxuICAgICAgcmVxdWlyZWQgJiZcbiAgICAgICghZGF0ZUZyb20gfHwgZGF0ZUZyb20/Lmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICghZGF0ZVRvIHx8IGRhdGVUbz8ubGVuZ3RoID09PSAwKVxuICAgICkge1xuICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICB9IGVsc2UgaWYgKCFkYXRlRnJvbSAmJiBkYXRlVG8pIHtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgcmFuZ2VGcm9tOiB0cnVlIH0pO1xuICAgIH0gZWxzZSBpZiAoZGF0ZUZyb20gJiYgIWRhdGVUbyAmJiAhdGhpcy5kYXRlVG9PcHRpb25hbCkge1xuICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyByYW5nZVRvOiB0cnVlIH0pO1xuICAgIH0gZWxzZSBpZiAoZGF0ZUZyb20gJiYgZGF0ZVRvICYmIG5ldyBEYXRlKGRhdGVGcm9tKSA+IG5ldyBEYXRlKGRhdGVUbykpIHtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgcmFuZ2VPcmRlcjogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZS0td3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiYm9yZGVyLW5vbmUgdy1mdWxsXCJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lICsgJ2RhdGVGcm9tJyB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZUZyb21cIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwic3RhcnREYXRlUGxhY2Vob2xkZXIgPz8gdHJhbnNsYXRpb25Db25maWc/LnN0YXJ0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyRnJvbVwiXG4gICAgICAgIFttaW5dPVwibWluRGF0ZUZyb21cIlxuICAgICAgICBbbWF4XT1cIm1heERhdGVGcm9tXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcbiAgICAgICAgZWNhYnNNYXNrRGF0ZVxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxuICAgICAgICAoY2xpY2spPVwicGlja2VyRnJvbS5vcGVuKClcIlxuICAgICAgLz5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyRnJvbVxuICAgICAgICAgICAgICAgICAgICAgIFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhckhlYWRlckNvbXBvbmVudF09XCJoZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIj5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS00MDAgcHgtMyB0ZXh0LXNtXCI+e3sgc2VwYXJhdG9yTGFiZWwgfX08L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX3JhbmdlXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJib3JkZXItbm9uZSB3LWZ1bGxcIlxuICAgICAgICBpZD1cInt7IG5hbWUgKyAnZGF0ZVRvJyB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVRvXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVQbGFjZWhvbGRlciA/PyB0cmFuc2xhdGlvbkNvbmZpZz8uZW5kRGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyVG9cIlxuICAgICAgICBbbWluXT1cIm1pbkRhdGVUb1wiXG4gICAgICAgIFttYXhdPVwibWF4RGF0ZVRvXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcbiAgICAgICAgZWNhYnNNYXNrRGF0ZVxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxuICAgICAgICAoY2xpY2spPVwicGlja2VyVG8ub3BlbigpXCJcbiAgICAgIC8+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlclRvXG4gICAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RvdWNoVWldPVwidG91Y2hVaVwiPlxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cbiJdfQ==
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwRCxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFbEQsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQU03RCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUNoSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQWNoRSxNQUFNLE9BQU8sK0JBQ1gsU0FBUSx5QkFBeUI7SUFzR2Q7SUFDQTtJQUNBO0lBckdWLE9BQU8sQ0FBTztJQUNkLE9BQU8sQ0FBTztJQUNkLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsV0FBVyxDQUFTO0lBQ3BCLFVBQVUsQ0FBUztJ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LENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUN4RCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzt3R0FwUFUsK0JBQStCOzRGQUEvQiwrQkFBK0Isc2RBUi9CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDRLQzNDSCx3c0RBZ0RBOzs0RkRIYSwrQkFBK0I7a0JBWjNDLFNBQVM7K0JBQ0UsNEJBQTRCLGFBRzNCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUNBQWlDOzRCQUM1QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjttS0FNUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQU1nQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZVJhbmdlUGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBmb3JtYXQsIGlzRXF1YWwsIGlzVmFsaWQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgSG9saWRheXMgZnJvbSAnZGF0ZS1ob2xpZGF5cyc7XG5pbXBvcnQgeyBpc0VxdWFsIGFzIGxvZGFzaElzRXF1YWwgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQge1xuICBFY2Fic0RhdGVQaWNrZXJIb2xpZGF5T3B0aW9ucyxcbiAgRWNhYnNEYXRlUGlja2VyVHJhbnNsYXRpb25zLFxufSBmcm9tICcuLi9iYXNlL21vZGVscy9lY2Ficy1kYXRlLXBpY2tlci10cmFuc2xhdGlvbnMubW9kZWxzJztcbmltcG9ydCB7IEVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWRhdGUtcGlja2VyLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEVjYWJzRGF0ZVJhbmdlUGlja2VySGVhZGVyQ29tcG9uZW50VjIgfSBmcm9tICcuL2NvbXBvbmVudHMvZWNhYnMtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlci12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12MicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWRhdGUtcmFuZ2UtcGlja2VyLXYyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50VjIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2Fic0RhdGVSYW5nZVBpY2tlckNvbXBvbmVudFYyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlO1xuICBASW5wdXQoKSB0b3VjaFVpID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcGx5TGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc3RhcnREYXRlUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgZW5kRGF0ZVBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlcGFyYXRvckxhYmVsID0gJ3RvJztcbiAgQElucHV0KCkgZXhjbHVkZUhvbGlkYXlzOiBib29sZWFuO1xuICBASW5wdXQoKSBleGNsdWRlV2Vla2VuZHM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNwZWNpZmljRGF0ZXM6IERhdGVbXTtcbiAgQElucHV0KCkgaG9saWRheU9wdGlvbnM6IEVjYWJzRGF0ZVBpY2tlckhvbGlkYXlPcHRpb25zO1xuXG4gIEBPdXRwdXQoKSBvbmJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgdmFsOiB7XG4gICAgZGF0ZUZyb206IHN0cmluZztcbiAgICBkYXRlVG86IHN0cmluZztcbiAgfTtcblxuICBAVmlld0NoaWxkKCdwaWNrZXJUbycpIHBpY2tlclRvOiBNYXREYXRlUmFuZ2VQaWNrZXI8YW55PiB8IHVuZGVmaW5lZDtcblxuICBoZWFkZXIgPSBFY2Fic0RhdGVSYW5nZVBpY2tlckhlYWRlckNvbXBvbmVudFYyO1xuICBfZGF0ZUZyb206IHN0cmluZztcbiAgX2RhdGVUbzogc3RyaW5nO1xuICB0cmFuc2xhdGlvbkNvbmZpZzogRWNhYnNEYXRlUGlja2VyVHJhbnNsYXRpb25zO1xuICBtaW5EYXRlRnJvbT86IERhdGUgPSB1bmRlZmluZWQ7XG4gIG1heERhdGVGcm9tPzogRGF0ZSA9IHVuZGVmaW5lZDtcbiAgbWluRGF0ZVRvPzogRGF0ZSA9IHVuZGVmaW5lZDtcbiAgbWF4RGF0ZVRvPzogRGF0ZSA9IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFuZWxDbGFzcyA9ICdlY2Ficy1kYXRlLXJhbmdlLXBpY2tlci12Mic7XG5cbiAgcHJpdmF0ZSBob2xpZGF5SW5zdGFuY2U6IEhvbGlkYXlzO1xuXG4gIGdldCB2YWx1ZSgpOiB7XG4gICAgZGF0ZUZyb206IHN0cmluZztcbiAgICBkYXRlVG86IHN0cmluZztcbiAgfSB7XG4gICAgcmV0dXJuIHRoaXMudmFsO1xuICB9XG5cbiAgZ2V0IGRhdGVGcm9tKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGcm9tO1xuICB9XG5cbiAgZ2V0IGRhdGVUbygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kYXRlVG87XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBzZXQgdmFsdWUodmFsOiB7IGRhdGVGcm9tOiBzdHJpbmc7IGRhdGVUbzogc3RyaW5nIH0pIHtcbiAgICBpZiAodGhpcy52YWwgIT09IHZhbCkge1xuICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICB0aGlzLmRhdGVGcm9tID0gdmFsLmRhdGVGcm9tO1xuICAgICAgdGhpcy5kYXRlVG8gPSB2YWwuZGF0ZVRvO1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICAgICAgdGhpcy5vblRvdWNoKHZhbCk7XG4gICAgfVxuICB9XG5cbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgc2V0IGRhdGVGcm9tKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2RhdGVGcm9tID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsICYmIGlzVmFsaWQobmV3IERhdGUodmFsKSkpIHtcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdmFsO1xuICAgICAgdGhpcy5taW5EYXRlVG8gPSBuZXcgRGF0ZSh2YWwpO1xuXG4gICAgICBpZiAoIXRoaXMuZGF0ZVRvKSB7XG4gICAgICAgIHRoaXMucGlja2VyVG8/Lm9wZW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCF2YWwpIHtcbiAgICAgIHRoaXMuX2RhdGVGcm9tID0gdmFsO1xuICAgICAgdGhpcy5taW5EYXRlVG8gPSB0aGlzLm1pbkRhdGU7XG4gICAgfVxuXG4gICAgdGhpcy5vbkFwcGx5KCk7XG4gIH1cblxuICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBzZXQgZGF0ZVRvKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2RhdGVUbyA9PT0gdmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbCAmJiBpc1ZhbGlkKG5ldyBEYXRlKHZhbCkpKSB7XG4gICAgICB0aGlzLl9kYXRlVG8gPSB2YWw7XG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbmV3IERhdGUodmFsKTtcbiAgICB9IGVsc2UgaWYgKCF2YWwpIHtcbiAgICAgIHRoaXMuX2RhdGVUbyA9IHZhbDtcbiAgICAgIHRoaXMubWF4RGF0ZUZyb20gPSB0aGlzLm1heERhdGU7XG4gICAgfVxuXG4gICAgdGhpcy5vbkFwcGx5KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2U6IEVjYWJzRGF0ZVBpY2tlckhlYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgbWluRGF0ZSwgbWF4RGF0ZSB9ID0gY2hhbmdlcztcblxuICAgIGlmIChtaW5EYXRlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMubWluRGF0ZUZyb20gPSBtaW5EYXRlPy5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLm1pbkRhdGVUbyA9IG1pbkRhdGU/LmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAobWF4RGF0ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm1heERhdGVGcm9tID0gbWF4RGF0ZT8uY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5tYXhEYXRlVG8gPSBtYXhEYXRlPy5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lY2Fic0RhdGVQaWNrZXJIZWFkZXJTZXJ2aWNlXG4gICAgICAuZ2V0Q29uZmlnKClcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnKSA9PiAodGhpcy50cmFuc2xhdGlvbkNvbmZpZyA9IGNvbmZpZykpO1xuXG4gICAgaWYgKHRoaXMuaG9saWRheU9wdGlvbnM/LmNvdW50cnlDb2RlKSB7XG4gICAgICB0aGlzLmhvbGlkYXlJbnN0YW5jZSA9IG5ldyBIb2xpZGF5cyhcbiAgICAgICAgdGhpcy5ob2xpZGF5T3B0aW9ucy5jb3VudHJ5Q29kZS50b1VwcGVyQ2FzZSgpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgIGlmIChuZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kYXRlUmFuZ2VWYWxpZGF0b3IodGhpcy5jb250cm9sKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5kYXRlRnJvbSA9IHRoaXMudmFsdWUuZGF0ZUZyb207XG4gICAgICAgIHRoaXMuZGF0ZVRvID0gdGhpcy52YWx1ZS5kYXRlVG87XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlVmFsaWRhdG9yKHRoaXMuY29udHJvbCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIGJsdXJDaGFuZ2UoZSk6IHZvaWQge1xuICAgIHRoaXMub25ibHVyLmVtaXQoZSk7XG4gIH1cblxuICBvbkFwcGx5KCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0ge1xuICAgICAgZGF0ZUZyb206IHRoaXMuZGF0ZUZyb20sXG4gICAgICBkYXRlVG86IHRoaXMuZGF0ZVRvLFxuICAgIH07XG5cbiAgICBpZiAoIWxvZGFzaElzRXF1YWwodGhpcy52YWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbCA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICB0aGlzLm9uVG91Y2gobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICBkYXRlRnJvbTogdGhpcy5kYXRlRnJvbSxcbiAgICAgIGRhdGVUbzogdGhpcy5kYXRlVG8sXG4gICAgfTtcbiAgfVxuXG4gIGZpbHRlckRhdGVSYW5nZSA9IChkYXRlOiBEYXRlKTogYm9vbGVhbiA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG5cbiAgICBpZiAoaXNWYWxpZChuZXcgRGF0ZShkYXRlKSkpIHtcbiAgICAgIGNvbnN0IGRheSA9IGRhdGU/LmdldERheSgpO1xuXG4gICAgICBpZiAodGhpcy5leGNsdWRlV2Vla2VuZHMpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGRheSAhPT0gMCAmJiBkYXkgIT09IDY7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4Y2x1ZGVIb2xpZGF5cykge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5pc0RhdGVOb3RIb2xpZGF5KGRhdGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zcGVjaWZpY0RhdGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHNwZWNpZmljRGF0ZXMgPSB0aGlzLnNwZWNpZmljRGF0ZXM7XG4gICAgICAgIGlmIChzcGVjaWZpY0RhdGVzICYmIHNwZWNpZmljRGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gc3BlY2lmaWNEYXRlcy5maW5kSW5kZXgoKHNwZWNpZmljRGF0ZSkgPT5cbiAgICAgICAgICAgIGlzRXF1YWwoZGF0ZSwgc3BlY2lmaWNEYXRlKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBpbmRleCA9PT0gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIGlzRGF0ZU5vdEhvbGlkYXkoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgY291bnRyeUNvZGUsIHRpbWVab25lT2Zmc2V0IH0gPSB0aGlzLmhvbGlkYXlPcHRpb25zID8/IHt9O1xuXG4gICAgaWYgKGNvdW50cnlDb2RlICYmIHRpbWVab25lT2Zmc2V0KSB7XG4gICAgICByZXR1cm4gIXRoaXMuaG9saWRheUluc3RhbmNlPy5pc0hvbGlkYXkoXG4gICAgICAgIGAke2Zvcm1hdChkYXRlLCAneXl5eS1NTS1kZCcpfVQwMDowMDowMCR7dGltZVpvbmVPZmZzZXR9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBkYXRlUmFuZ2VWYWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYXRlRnJvbSwgZGF0ZVRvIH0gPSBjb250cm9sLnZhbHVlO1xuICAgIGNvbnN0IGZyb20gPSBuZXcgRGF0ZShkYXRlRnJvbSk7XG4gICAgY29uc3QgdG8gPSBuZXcgRGF0ZShkYXRlVG8pO1xuXG4gICAgaWYgKGRhdGVGcm9tICYmIGRhdGVUbyAmJiBmcm9tID4gdG8pIHtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgcmFuZ2VPcmRlcjogdHJ1ZSB9KTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JhbmdlT3JkZXInKSkge1xuICAgICAgY29uc3QgeyByYW5nZU9yZGVyOiBfLCAuLi5yZXN0IH0gPSBjb250cm9sLmVycm9ycyA/PyB7fTtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKE9iamVjdC5rZXlzKHJlc3QpLmxlbmd0aCA/IHJlc3QgOiBudWxsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZS0td3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19yYW5nZVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiYm9yZGVyLW5vbmUgdy1mdWxsXCJcbiAgICAgICAgaWQ9XCJ7eyBuYW1lICsgJ2RhdGVGcm9tJyB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZUZyb21cIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwic3RhcnREYXRlUGxhY2Vob2xkZXIgPz8gdHJhbnNsYXRpb25Db25maWc/LnN0YXJ0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyRnJvbVwiXG4gICAgICAgIFttaW5dPVwibWluRGF0ZUZyb21cIlxuICAgICAgICBbbWF4XT1cIm1heERhdGVGcm9tXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcbiAgICAgICAgZWNhYnNNYXNrRGF0ZVxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxuICAgICAgICAoY2xpY2spPVwicGlja2VyRnJvbS5vcGVuKClcIlxuICAgICAgLz5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyRnJvbVxuICAgICAgICAgICAgICAgICAgICAgIFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhckhlYWRlckNvbXBvbmVudF09XCJoZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIj5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS00MDAgcHgtMyB0ZXh0LXNtXCI+e3sgc2VwYXJhdG9yTGFiZWwgfX08L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX3JhbmdlXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJib3JkZXItbm9uZSB3LWZ1bGxcIlxuICAgICAgICBpZD1cInt7IG5hbWUgKyAnZGF0ZVRvJyB9fVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVRvXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVQbGFjZWhvbGRlciA/PyB0cmFuc2xhdGlvbkNvbmZpZz8uZW5kRGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyVG9cIlxuICAgICAgICBbbWluXT1cIm1pbkRhdGVUb1wiXG4gICAgICAgIFttYXhdPVwibWF4RGF0ZVRvXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZmlsdGVyRGF0ZVJhbmdlXCJcbiAgICAgICAgZWNhYnNNYXNrRGF0ZVxuICAgICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxuICAgICAgICAoY2xpY2spPVwicGlja2VyVG8ub3BlbigpXCJcbiAgICAgIC8+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlclRvXG4gICAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RvdWNoVWldPVwidG91Y2hVaVwiPlxuICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cbiJdfQ==
|
|
@@ -80,7 +80,7 @@ export class EcabsPlaceAutocompleteComponent extends EcabsElementBaseComponent {
|
|
|
80
80
|
const autocomplete = new google.maps.places.Autocomplete(this.getElement(), {
|
|
81
81
|
types: [],
|
|
82
82
|
componentRestrictions: { country: [this.countryCode] },
|
|
83
|
-
fields: ['address_components', 'geometry.location'],
|
|
83
|
+
fields: ['address_components', 'geometry.location', 'place_id'],
|
|
84
84
|
});
|
|
85
85
|
this.listener = autocomplete.addListener('place_changed', () => {
|
|
86
86
|
this.ngZone.run(() => {
|
|
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
137
137
|
}], deleteItem: [{
|
|
138
138
|
type: Output
|
|
139
139
|
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQWlCN0QsTUFBTSxPQUFPLCtCQUNYLFNBQVEseUJBQXlCO0lBNENkO0lBQ0E7SUFDQTtJQUNBO0lBM0NuQixjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUd2QixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFHbkIsWUFBWSxDQUFVO0lBR3RCLFlBQVksQ0FBbUI7SUFFWixXQUFXLEdBR3pCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFZCxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxQyxHQUFHLENBQVU7SUFDYixRQUFRLENBQWdDO0lBRXhDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNs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UUFBUSxLQUFLLElBQUksRUFBRTtvQkFDM0QsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLO2lCQUM5QixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMzRSxDQUFDO3dHQXJJVSwrQkFBK0I7NEZBQS9CLCtCQUErQixzUkFUL0I7WUFDVCxrQkFBa0I7WUFDbEI7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG9NQ3JDSCw0MEJBdUJBOzs0RkRnQmEsK0JBQStCO2tCQWIzQyxTQUFTOytCQUNFLDBCQUEwQixhQUd6Qjt3QkFDVCxrQkFBa0I7d0JBQ2xCOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUNBQWlDOzRCQUM1QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4S0FPRCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUkxRCxjQUFjO3NCQURiLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUdhLFdBQVc7c0JBQTdCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdDb250cm9sLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVW5zdWJzY3JpYmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQgUGxhY2VSZXN1bHQgPSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQ7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBVbnN1YnNjcmliZVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNQbGFjZUF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjYWJzUGxhY2VBdXRvY29tcGxldGVDb21wb25lbnRcbiAgZXh0ZW5kcyBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBWaWV3Q2hpbGQoJ21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1hdEN1c3RvbUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dEZWxldGVJdGVtID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2hvd1N1ZmZpeCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNvdW50cnlDb2RlID0gJ01UJztcblxuICBASW5wdXQoKVxuICBnb29nbGVMb2FkZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgd2F5cG9pbnRUeXBlOiBXYXlwb2ludFR5cGVFbnVtO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBwbGFjZVJlc3VsdDogRXZlbnRFbWl0dGVyPHtcbiAgICBwbGFjZTogUGxhY2VSZXN1bHQ7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB2YWwhOiBzdHJpbmc7XG4gIGxpc3RlbmVyOiBnb29nbGUubWFwcy5NYXBzRXZlbnRMaXN0ZW5lcjtcblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWw7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsKSB7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCAmJiB0aGlzLnZhbCAhPT0gdmFsKSB7XG4gICAgICB0aGlzLnZhbCA9IHZhbDtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICAgIHRoaXMub25Ub3VjaCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZVNlcnZpY2U6IFVuc3Vic2NyaWJlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgeyBnb29nbGVMb2FkZWQgfSA9IGNoYW5nZXMgPz8ge307XG5cbiAgICBpZiAoZ29vZ2xlTG9hZGVkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuaW5pdEdvb2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFxuICAgICAgTmdDb250cm9sLFxuICAgICAgbnVsbCxcbiAgICApIGFzIE5nQ29udHJvbDtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZVNlcnZpY2UuZGVzdHJveSgpO1xuXG4gICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcbiAgICAgIHRoaXMubGlzdGVuZXIucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIG9uRGVsZXRlSXRlbSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdCgpO1xuICB9XG5cbiAgb25DbGVhbigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRHb29nbGUoKTogdm9pZCB7XG4gICAgY29uc3QgYXV0b2NvbXBsZXRlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGUoXG4gICAgICB0aGlzLmdldEVsZW1lbnQoKSxcbiAgICAgIHtcbiAgICAgICAgdHlwZXM6IFtdLFxuICAgICAgICBjb21wb25lbnRSZXN0cmljdGlvbnM6IHsgY291bnRyeTogW3RoaXMuY291bnRyeUNvZGVdIH0sXG4gICAgICAgIGZpZWxkczogWydhZGRyZXNzX2NvbXBvbmVudHMnLCAnZ2VvbWV0cnkubG9jYXRpb24nXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMubGlzdGVuZXIgPSBhdXRvY29tcGxldGUuYWRkTGlzdGVuZXIoJ3BsYWNlX2NoYW5nZWQnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBwbGFjZSA9IGF1dG9jb21wbGV0ZS5nZXRQbGFjZSgpO1xuXG4gICAgICAgIC8vIHZlcmlmeSByZXN1bHRcbiAgICAgICAgaWYgKHBsYWNlLmdlb21ldHJ5ID09PSB1bmRlZmluZWQgfHwgcGxhY2UuZ2VvbWV0cnkgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBsYWNlUmVzdWx0LmVtaXQoe1xuICAgICAgICAgIHBsYWNlOiBwbGFjZSxcbiAgICAgICAgICB0ZXh0OiB0aGlzLmdldEVsZW1lbnQoKS52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1maWVsZF9faW5wdXQnKTtcbiAgfVxufVxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxuICAgIDxpbnB1dCAjbWF0Q3VzdG9tQXV0b2NvbXBsZXRlSW5wdXRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBbaWRdPVwibmFtZVwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbFwiXG4gICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICBzcGVsbGNoZWNrPVwib2ZmXCJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXG4gICAgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXN1ZmZpeFwiICpuZ0lmPVwic2hvd1N1ZmZpeFwiPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwic2hvd0RlbGV0ZUl0ZW1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyIGRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRlbGV0ZUl0ZW0oKVwiPlxuICAgICAgICBkZWxldGVcbiAgICAgIDwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJzdWZmaXggY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIiFzaG93RGVsZXRlSXRlbSAmJiB2YWx1ZVwiIChjbGljayk9XCJvbkNsZWFuKClcIj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XG4iXX0=
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQWlCN0QsTUFBTSxPQUFPLCtCQUNYLFNBQVEseUJBQXlCO0lBNENkO0lBQ0E7SUFDQTtJQUNBO0lBM0NuQixjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUd2QixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFHbkIsWUFBWSxDQUFVO0lBR3RCLFlBQVksQ0FBbUI7SUFFWixXQUFXLEdBR3pCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFZCxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxQyxHQUFHLENBQVU7SUFDYixRQUFRLENBQWdDO0lBRXhDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNs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S0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7b0JBQzNELE9BQU87aUJBQ1I7Z0JBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSztpQkFDOUIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDM0UsQ0FBQzt3R0FwSVUsK0JBQStCOzRGQUEvQiwrQkFBK0Isc1JBVC9CO1lBQ1Qsa0JBQWtCO1lBQ2xCO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSwrQkFBK0I7Z0JBQzVDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixvTUNyQ0gsNDBCQXVCQTs7NEZEZ0JhLCtCQUErQjtrQkFiM0MsU0FBUzsrQkFDRSwwQkFBMEIsYUFHekI7d0JBQ1Qsa0JBQWtCO3dCQUNsQjs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGlDQUFpQzs0QkFDNUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEtBT0QsY0FBYztzQkFEYixTQUFTO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJMUQsY0FBYztzQkFEYixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFHYSxXQUFXO3NCQUE3QixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFVuc3Vic2NyaWJlU2VydmljZSB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xuaW1wb3J0IFBsYWNlUmVzdWx0ID0gZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0O1xuaW1wb3J0IHsgV2F5cG9pbnRUeXBlRW51bSB9IGZyb20gJy4uL2Jhc2UvY29uc3RzL3dheXBvaW50LmNvbnN0cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVW5zdWJzY3JpYmVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUGxhY2VBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2Fic1BsYWNlQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICBAVmlld0NoaWxkKCdtYXRDdXN0b21BdXRvY29tcGxldGVJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtYXRDdXN0b21JbnB1dDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICBzaG93RGVsZXRlSXRlbSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dTdWZmaXggPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjb3VudHJ5Q29kZSA9ICdNVCc7XG5cbiAgQElucHV0KClcbiAgZ29vZ2xlTG9hZGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHdheXBvaW50VHlwZTogV2F5cG9pbnRUeXBlRW51bTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcGxhY2VSZXN1bHQ6IEV2ZW50RW1pdHRlcjx7XG4gICAgcGxhY2U6IFBsYWNlUmVzdWx0O1xuICAgIHRleHQ6IHN0cmluZztcbiAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGRlbGV0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdmFsITogc3RyaW5nO1xuICBsaXN0ZW5lcjogZ29vZ2xlLm1hcHMuTWFwc0V2ZW50TGlzdGVuZXI7XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgJiYgdGhpcy52YWwgIT09IHZhbCkge1xuICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmVTZXJ2aWNlOiBVbnN1YnNjcmliZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgZ29vZ2xlTG9hZGVkIH0gPSBjaGFuZ2VzID8/IHt9O1xuXG4gICAgaWYgKGdvb2dsZUxvYWRlZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmluaXRHb29nbGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChcbiAgICAgIE5nQ29udHJvbCxcbiAgICAgIG51bGwsXG4gICAgKSBhcyBOZ0NvbnRyb2w7XG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLmRlc3Ryb3koKTtcblxuICAgIGlmICh0aGlzLmxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmxpc3RlbmVyLnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcblxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBvbkRlbGV0ZUl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVJdGVtLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ2xlYW4oKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0R29vZ2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKFxuICAgICAgdGhpcy5nZXRFbGVtZW50KCksXG4gICAgICB7XG4gICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6IFt0aGlzLmNvdW50cnlDb2RlXSB9LFxuICAgICAgICBmaWVsZHM6IFsnYWRkcmVzc19jb21wb25lbnRzJywgJ2dlb21ldHJ5LmxvY2F0aW9uJywgJ3BsYWNlX2lkJ10sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmxpc3RlbmVyID0gYXV0b2NvbXBsZXRlLmFkZExpc3RlbmVyKCdwbGFjZV9jaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgcGxhY2UgPSBhdXRvY29tcGxldGUuZ2V0UGxhY2UoKTtcbiAgICAgICAgLy8gdmVyaWZ5IHJlc3VsdFxuICAgICAgICBpZiAocGxhY2UuZ2VvbWV0cnkgPT09IHVuZGVmaW5lZCB8fCBwbGFjZS5nZW9tZXRyeSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGxhY2VSZXN1bHQuZW1pdCh7XG4gICAgICAgICAgcGxhY2U6IHBsYWNlLFxuICAgICAgICAgIHRleHQ6IHRoaXMuZ2V0RWxlbWVudCgpLnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbGVtZW50KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWZpZWxkX19pbnB1dCcpO1xuICB9XG59XG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXdyYXBwZXIgdy1mdWxsXCI+XG4gICAgPGlucHV0ICNtYXRDdXN0b21BdXRvY29tcGxldGVJbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtpZF09XCJuYW1lXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdy1mdWxsXCJcbiAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgIHNwZWxsY2hlY2s9XCJvZmZcIlxuICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0tc3VmZml4XCIgKm5nSWY9XCJzaG93U3VmZml4XCI+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJzaG93RGVsZXRlSXRlbVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzdWZmaXggY3Vyc29yLXBvaW50ZXIgZGVsZXRlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlSXRlbSgpXCI+XG4gICAgICAgIGRlbGV0ZVxuICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiIXNob3dEZWxldGVJdGVtICYmIHZhbHVlXCIgKGNsaWNrKT1cIm9uQ2xlYW4oKVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cbiJdfQ==
|
|
@@ -20,6 +20,7 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
20
20
|
countryCode = 'MT';
|
|
21
21
|
googleLoaded;
|
|
22
22
|
waypointType;
|
|
23
|
+
debounceTime = 240;
|
|
23
24
|
placeResult = new EventEmitter();
|
|
24
25
|
deleteItem = new EventEmitter();
|
|
25
26
|
queryChanged = new EventEmitter();
|
|
@@ -28,21 +29,20 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
28
29
|
waypointSuggestions$;
|
|
29
30
|
selectedIndex = -1;
|
|
30
31
|
displayedSuggestions = [];
|
|
31
|
-
|
|
32
|
-
listener;
|
|
32
|
+
_value = '';
|
|
33
33
|
mapAutocompleteService;
|
|
34
34
|
placesService;
|
|
35
35
|
sessionToken;
|
|
36
36
|
get value() {
|
|
37
|
-
return this.
|
|
38
|
-
}
|
|
39
|
-
set value(
|
|
40
|
-
if (this.
|
|
41
|
-
|
|
42
|
-
this.value$.next(val);
|
|
43
|
-
this.onChange(val);
|
|
44
|
-
this.onTouch(val);
|
|
37
|
+
return this._value;
|
|
38
|
+
}
|
|
39
|
+
set value(value) {
|
|
40
|
+
if (this._value === value) {
|
|
41
|
+
return;
|
|
45
42
|
}
|
|
43
|
+
this._value = value;
|
|
44
|
+
this.value$.next(value);
|
|
45
|
+
this.onChange(value);
|
|
46
46
|
}
|
|
47
47
|
constructor(ngZone, injector) {
|
|
48
48
|
super();
|
|
@@ -63,7 +63,7 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
63
63
|
this.waypointSuggestions$ = combineLatest([
|
|
64
64
|
this.isFocused$,
|
|
65
65
|
this.value$,
|
|
66
|
-
]).pipe(debounceTime(
|
|
66
|
+
]).pipe(debounceTime(this.debounceTime), switchMap(([isFocused, value]) => {
|
|
67
67
|
if (!isFocused) {
|
|
68
68
|
return of([]);
|
|
69
69
|
}
|
|
@@ -77,8 +77,13 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
77
77
|
return results;
|
|
78
78
|
}));
|
|
79
79
|
}
|
|
80
|
+
onChange = () => { };
|
|
81
|
+
onTouch = () => { };
|
|
80
82
|
getWaypointResults(query) {
|
|
81
|
-
this.queryChanged.emit({
|
|
83
|
+
this.queryChanged.emit({
|
|
84
|
+
waypoint_type: this.waypointType,
|
|
85
|
+
place_name: query,
|
|
86
|
+
});
|
|
82
87
|
return combineLatest([
|
|
83
88
|
of(this.waypointsHistory),
|
|
84
89
|
this.getPlacesResults(query),
|
|
@@ -94,35 +99,41 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
94
99
|
componentRestrictions: { country: this.countryCode },
|
|
95
100
|
sessionToken: this.sessionToken,
|
|
96
101
|
}, (predictions) => {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
source: 'google',
|
|
102
|
-
prediction_term: prediction.terms,
|
|
103
|
-
};
|
|
104
|
-
}));
|
|
105
|
-
observer.complete();
|
|
102
|
+
this.ngZone.run(() => {
|
|
103
|
+
observer.next(this.toWaypointSuggestions(predictions));
|
|
104
|
+
observer.complete();
|
|
105
|
+
});
|
|
106
106
|
});
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
|
+
toWaypointSuggestions(predictions) {
|
|
110
|
+
return (predictions ?? []).map((prediction) => ({
|
|
111
|
+
additional_info: prediction.description,
|
|
112
|
+
place_id: prediction.place_id,
|
|
113
|
+
source: 'google',
|
|
114
|
+
prediction_term: prediction.terms,
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
109
117
|
onSelectSuggestion(suggestion) {
|
|
110
118
|
const { additional_info, place_id } = suggestion ?? {};
|
|
111
119
|
this.value = additional_info;
|
|
112
120
|
this.placesService.getDetails({
|
|
113
121
|
placeId: place_id,
|
|
114
122
|
sessionToken: this.sessionToken,
|
|
115
|
-
fields: ['address_components', 'geometry.location'],
|
|
123
|
+
fields: ['address_components', 'geometry.location', 'place_id'],
|
|
116
124
|
}, (place, status) => {
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
this.ngZone.run(() => {
|
|
126
|
+
if (status === google.maps.places.PlacesServiceStatus.OK && place) {
|
|
119
127
|
this.placeResult.emit({
|
|
120
128
|
place,
|
|
121
129
|
text: additional_info,
|
|
122
130
|
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
console.warn('Place details lookup failed', { status, place_id });
|
|
134
|
+
}
|
|
135
|
+
this.resetSessionToken();
|
|
136
|
+
});
|
|
126
137
|
});
|
|
127
138
|
}
|
|
128
139
|
onKeyDown(event) {
|
|
@@ -153,25 +164,22 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
153
164
|
break;
|
|
154
165
|
}
|
|
155
166
|
}
|
|
156
|
-
ngOnDestroy() {
|
|
157
|
-
if (this.listener) {
|
|
158
|
-
this.listener.remove();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
onChange = () => { };
|
|
162
|
-
onTouch = () => { };
|
|
163
167
|
onBlur() {
|
|
164
168
|
this.isFocused$.next(false);
|
|
165
|
-
this.onTouch;
|
|
169
|
+
this.onTouch();
|
|
166
170
|
}
|
|
167
171
|
onFocus() {
|
|
168
|
-
this.isFocused$.next(true);
|
|
169
172
|
if (!this.value) {
|
|
170
173
|
this.resetSessionToken();
|
|
171
174
|
}
|
|
175
|
+
setTimeout(() => this.ngZone.run(() => this.isFocused$.next(true)));
|
|
172
176
|
}
|
|
173
|
-
writeValue(
|
|
174
|
-
this.
|
|
177
|
+
writeValue(nextValue = '') {
|
|
178
|
+
if (this._value === nextValue) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
this._value = nextValue;
|
|
182
|
+
this.value$.next(nextValue);
|
|
175
183
|
}
|
|
176
184
|
registerOnChange(fn) {
|
|
177
185
|
this.onChange = fn;
|
|
@@ -195,7 +203,7 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
|
|
|
195
203
|
this.sessionToken = new google.maps.places.AutocompleteSessionToken();
|
|
196
204
|
}
|
|
197
205
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, deps: [{ token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
198
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteV2Component, selector: "ecabs-place-autocomplete-v2", inputs: { showDeleteItem: "showDeleteItem", waypointsHistory: "waypointsHistory", showSuffix: "showSuffix", countryCode: "countryCode", googleLoaded: "googleLoaded", waypointType: "waypointType" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem", queryChanged: "queryChanged" }, providers: [
|
|
206
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteV2Component, selector: "ecabs-place-autocomplete-v2", inputs: { showDeleteItem: "showDeleteItem", waypointsHistory: "waypointsHistory", showSuffix: "showSuffix", countryCode: "countryCode", googleLoaded: "googleLoaded", waypointType: "waypointType", debounceTime: "debounceTime" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem", queryChanged: "queryChanged" }, providers: [
|
|
199
207
|
{
|
|
200
208
|
provide: NG_VALUE_ACCESSOR,
|
|
201
209
|
useExisting: EcabsPlaceAutocompleteV2Component,
|
|
@@ -227,6 +235,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
227
235
|
type: Input
|
|
228
236
|
}], waypointType: [{
|
|
229
237
|
type: Input
|
|
238
|
+
}], debounceTime: [{
|
|
239
|
+
type: Input
|
|
230
240
|
}], placeResult: [{
|
|
231
241
|
type: Output
|
|
232
242
|
}], deleteItem: [{
|
|
@@ -234,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
234
244
|
}], queryChanged: [{
|
|
235
245
|
type: Output
|
|
236
246
|
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQU83RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osR0FBRyxFQUNILFVBQVUsRUFDVixFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBYzNDLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLHlCQUF5QjtJQTZEZDtJQUNBO0lBMURuQixjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUd2QixnQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO0lBRzVDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUduQixZQUFZLENBQVU7SUFHdEIsWUFBWSxDQUFtQjtJQUd0QixXQUFXLEdBQW9DLElBQUksWUFBWSxFQUFF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TyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQ0FBbUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29IQU9ELGNBQWM7c0JBRGIsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTFELGNBQWM7c0JBRGIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsTUFBTTtnQkFJRSxVQUFVO3NCQURsQixNQUFNO2dCQUlFLFlBQVk7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcbmltcG9ydCB7XG4gIEdvb2dsZVBsYWNlUmVzdWx0LFxuICBXYXlwb2ludFF1ZXJ5Q2hhbmdlLFxuICBXYXlwb2ludFN1Z2dlc3Rpb24sXG59IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS12MicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50XG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICBAVmlld0NoaWxkKCdtYXRDdXN0b21BdXRvY29tcGxldGVJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBtYXRDdXN0b21JbnB1dDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKVxuICBzaG93RGVsZXRlSXRlbSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHdheXBvaW50c0hpc3Rvcnk6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgc2hvd1N1ZmZpeCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNvdW50cnlDb2RlID0gJ01UJztcblxuICBASW5wdXQoKVxuICBnb29nbGVMb2FkZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgd2F5cG9pbnRUeXBlOiBXYXlwb2ludFR5cGVFbnVtO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBwbGFjZVJlc3VsdDogRXZlbnRFbWl0dGVyPEdvb2dsZVBsYWNlUmVzdWx0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxXYXlwb2ludFF1ZXJ5Q2hhbmdlPigpO1xuXG4gIGlzRm9jdXNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgd2F5cG9pbnRTdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+O1xuXG4gIHNlbGVjdGVkSW5kZXggPSAtMTtcbiAgZGlzcGxheWVkU3VnZ2VzdGlvbnM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XG5cbiAgdmFsITogc3RyaW5nO1xuICBsaXN0ZW5lcjogZ29vZ2xlLm1hcHMuTWFwc0V2ZW50TGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBtYXBBdXRvY29tcGxldGVTZXJ2aWNlOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZTtcbiAgcHJpdmF0ZSBwbGFjZXNTZXJ2aWNlOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZTtcbiAgcHJpdmF0ZSBzZXNzaW9uVG9rZW46IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW47XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsICE9PSB2YWwpIHtcbiAgICAgIHRoaXMudmFsID0gdmFsO1xuICAgICAgdGhpcy52YWx1ZSQubmV4dCh2YWwpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xuICAgICAgdGhpcy5vblRvdWNoKHZhbCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IGdvb2dsZUxvYWRlZCB9ID0gY2hhbmdlcyA/PyB7fTtcblxuICAgIGlmIChnb29nbGVMb2FkZWQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5pbml0R29vZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoXG4gICAgICBOZ0NvbnRyb2wsXG4gICAgICBudWxsLFxuICAgICkgYXMgTmdDb250cm9sO1xuXG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHRoaXMud2F5cG9pbnRTdWdnZXN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaXNGb2N1c2VkJCxcbiAgICAgIHRoaXMudmFsdWUkLFxuICAgIF0pLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcbiAgICAgIHN3aXRjaE1hcCgoW2lzRm9jdXNlZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGlmICghaXNGb2N1c2VkKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKFtdIGFzIFdheXBvaW50U3VnZ2VzdGlvbltdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gb2YodGhpcy53YXlwb2ludHNIaXN0b3J5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFdheXBvaW50UmVzdWx0cyh2YWx1ZSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocmVzdWx0cykgPT4ge1xuICAgICAgICB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zID0gcmVzdWx0cztcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gcmVzdWx0cz8ubGVuZ3RoID8gMCA6IC0xO1xuXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0V2F5cG9pbnRSZXN1bHRzKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPiB7XG4gICAgdGhpcy5xdWVyeUNoYW5nZWQuZW1pdCh7IHdheXBvaW50X3R5cGU6IHRoaXMud2F5cG9pbnRUeXBlLCBxdWVyeSB9KTtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIG9mKHRoaXMud2F5cG9pbnRzSGlzdG9yeSksXG4gICAgICB0aGlzLmdldFBsYWNlc1Jlc3VsdHMocXVlcnkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtoaXN0b3J5LCBnb29nbGVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGhpc3RvcnlJdGVtcyA9IGhpc3RvcnkgPz8gW10sXG4gICAgICAgICAgZ29vZ2xlSXRlbXMgPSBnb29nbGUgPz8gW107XG5cbiAgICAgICAgcmV0dXJuIFsuLi5oaXN0b3J5SXRlbXMsIC4uLmdvb2dsZUl0ZW1zXTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFBsYWNlc1Jlc3VsdHMocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICB0aGlzLm1hcEF1dG9jb21wbGV0ZVNlcnZpY2UuZ2V0UGxhY2VQcmVkaWN0aW9ucyhcbiAgICAgICAge1xuICAgICAgICAgIGlucHV0OiBxdWVyeSxcbiAgICAgICAgICBjb21wb25lbnRSZXN0cmljdGlvbnM6IHsgY291bnRyeTogdGhpcy5jb3VudHJ5Q29kZSB9LFxuICAgICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXG4gICAgICAgIH0sXG4gICAgICAgIChwcmVkaWN0aW9ucykgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoXG4gICAgICAgICAgICAocHJlZGljdGlvbnMgPz8gW10pLm1hcCgocHJlZGljdGlvbikgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5mbzogcHJlZGljdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBwbGFjZV9pZDogcHJlZGljdGlvbi5wbGFjZV9pZCEsXG4gICAgICAgICAgICAgICAgc291cmNlOiAnZ29vZ2xlJyxcbiAgICAgICAgICAgICAgICBwcmVkaWN0aW9uX3Rlcm06IHByZWRpY3Rpb24udGVybXMsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IFdheXBvaW50U3VnZ2VzdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IHsgYWRkaXRpb25hbF9pbmZvLCBwbGFjZV9pZCB9ID0gc3VnZ2VzdGlvbiA/PyB7fTtcblxuICAgIHRoaXMudmFsdWUgPSBhZGRpdGlvbmFsX2luZm87XG4gICAgdGhpcy5wbGFjZXNTZXJ2aWNlLmdldERldGFpbHMoXG4gICAgICB7XG4gICAgICAgIHBsYWNlSWQ6IHBsYWNlX2lkISxcbiAgICAgICAgc2Vzc2lvblRva2VuOiB0aGlzLnNlc3Npb25Ub2tlbixcbiAgICAgICAgZmllbGRzOiBbJ2FkZHJlc3NfY29tcG9uZW50cycsICdnZW9tZXRyeS5sb2NhdGlvbiddLFxuICAgICAgfSxcbiAgICAgIChwbGFjZSwgc3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LICYmIHBsYWNlKSB7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VSZXN1bHQuZW1pdCh7XG4gICAgICAgICAgICAgIHBsYWNlLFxuICAgICAgICAgICAgICB0ZXh0OiBhZGRpdGlvbmFsX2luZm8sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgKHRoaXMuc2VsZWN0ZWRJbmRleCArIDEpICUgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucy5sZW5ndGg7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID1cbiAgICAgICAgICAodGhpcy5zZWxlY3RlZEluZGV4IC0gMSArIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoKSAlXG4gICAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucy5sZW5ndGg7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5vblNlbGVjdFN1Z2dlc3Rpb24oXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zW3RoaXMuc2VsZWN0ZWRJbmRleF0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQkLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcbiAgICAgIHRoaXMubGlzdGVuZXIucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5vblRvdWNoO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dCh0cnVlKTtcblxuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIG9uRGVsZXRlSXRlbSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdCgpO1xuICB9XG5cbiAgb25DbGVhbigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRHb29nbGUoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBBdXRvY29tcGxldGVTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XG5cbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UoXG4gICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFNlc3Npb25Ub2tlbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlc3Npb25Ub2tlbiA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2Vzc2lvblRva2VuKCk7XG4gIH1cbn1cbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtdWkgdy1mdWxsXCI+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0td3JhcHBlciB3LWZ1bGxcIj5cbiAgICAgIDxpbnB1dCAjbWF0Q3VzdG9tQXV0b2NvbXBsZXRlSW5wdXRcbiAgICAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgW2lkXT1cIm5hbWVcIlxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdy1mdWxsXCJcbiAgICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJvZmZcIlxuICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS1zdWZmaXhcIiAqbmdJZj1cInNob3dTdWZmaXhcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic2hvd0RlbGV0ZUl0ZW1cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWZmaXggY3Vyc29yLXBvaW50ZXIgZGVsZXRlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVJdGVtKClcIj5cbiAgICAgICAgICBkZWxldGVcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCIhc2hvd0RlbGV0ZUl0ZW0gJiYgdmFsdWVcIiAoY2xpY2spPVwib25DbGVhbigpXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gQ3VzdG9tIGRyb3Bkb3duIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGhdPVwidHJpZ2dlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNGb2N1c2VkJCB8IGFzeW5jXCI+XG4gICAgICA8dWwgY2xhc3M9XCJhdXRvY29tcGxldGUtdWlfX2NvbnRhaW5lclwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHN1Z2dlc3Rpb24gb2Ygd2F5cG9pbnRTdWdnZXN0aW9ucyQgfCBhc3luYyB8IHNsaWNlOjA6MTA7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtdWktLWl0ZW0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGhvdmVyOmJnLWdyYXktMTAwXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gc2VsZWN0ZWRJbmRleFwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VsZWN0U3VnZ2VzdGlvbihzdWdnZXN0aW9uKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWdnZXN0aW9uPy5zb3VyY2UgPT09ICdoaXN0b3J5JzsgZWxzZSBwdXJlUGxhY2VSZXN1bHRUcGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbj8uYWRkaXRpb25hbF9pbmZvIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInN1Z2dlc3Rpb24/LnNvdXJjZSA9PT0gJ2hpc3RvcnknXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctNSBoLTUgdGV4dC14bCB0ZXh0LWdyYXktNDAwICFob3Zlcjp0ZXh0LWdyYXktNDAwXCI+XG4gICAgICAgICAgICAgIGhpc3RvcnlcbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3B1cmVQbGFjZVJlc3VsdFRwbD5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0xIGxlYWRpbmctMCBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVswXT8udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtWzFdPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTYwMCB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsxXT8udmFsdWUgfCBzZXBhcmF0b3JBcHBlbmQ6IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPGxpICpuZ0lmPVwic3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtWzJdPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTYwMCBmb250LXNlbWlib2xkIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtWzJdPy52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQU83RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osR0FBRyxFQUNILFVBQVUsRUFDVixFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLHlCQUF5QjtJQWdFZDtJQUNBO0lBN0RuQixjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUd2QixnQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO0lBRzVDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUduQixZQUFZLENBQVU7SUFHdEIsWUFBWSxDQUFtQjtJQUcvQixZQUFZLEdBQUcsR0FBRyxDQUFDO0lBR1Ys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QUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO3dHQXZSVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywyWEFSakM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysb01DL0NILDZqR0FvRUE7OzRGRG5CYSxpQ0FBaUM7a0JBWjdDLFNBQVM7K0JBQ0UsNkJBQTZCLGFBRzVCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUNBQW1DOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvSEFPRCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUkxRCxjQUFjO3NCQURiLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJRyxXQUFXO3NCQURuQixNQUFNO2dCQUlFLFVBQVU7c0JBRGxCLE1BQU07Z0JBSUUsWUFBWTtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcbmltcG9ydCB7XG4gIEdvb2dsZVBsYWNlUmVzdWx0LFxuICBXYXlwb2ludFF1ZXJ5Q2hhbmdlLFxuICBXYXlwb2ludFN1Z2dlc3Rpb24sXG59IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgQXV0b2NvbXBsZXRlUHJlZGljdGlvbiA9IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVQcmVkaWN0aW9uO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudFxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBWaWV3Q2hpbGQoJ21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1hdEN1c3RvbUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dEZWxldGVJdGVtID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgd2F5cG9pbnRzSGlzdG9yeTogV2F5cG9pbnRTdWdnZXN0aW9uW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBzaG93U3VmZml4ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgY291bnRyeUNvZGUgPSAnTVQnO1xuXG4gIEBJbnB1dCgpXG4gIGdvb2dsZUxvYWRlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICB3YXlwb2ludFR5cGU6IFdheXBvaW50VHlwZUVudW07XG5cbiAgQElucHV0KClcbiAgZGVib3VuY2VUaW1lID0gMjQwO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBwbGFjZVJlc3VsdDogRXZlbnRFbWl0dGVyPEdvb2dsZVBsYWNlUmVzdWx0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxXYXlwb2ludFF1ZXJ5Q2hhbmdlPigpO1xuXG4gIGlzRm9jdXNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgd2F5cG9pbnRTdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+O1xuXG4gIHNlbGVjdGVkSW5kZXggPSAtMTtcbiAgZGlzcGxheWVkU3VnZ2VzdGlvbnM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBfdmFsdWUgPSAnJztcblxuICBwcml2YXRlIG1hcEF1dG9jb21wbGV0ZVNlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlO1xuICBwcml2YXRlIHBsYWNlc1NlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlO1xuICBwcml2YXRlIHNlc3Npb25Ub2tlbjogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbjtcblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IGdvb2dsZUxvYWRlZCB9ID0gY2hhbmdlcyA/PyB7fTtcblxuICAgIGlmIChnb29nbGVMb2FkZWQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5pbml0R29vZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoXG4gICAgICBOZ0NvbnRyb2wsXG4gICAgICBudWxsLFxuICAgICkgYXMgTmdDb250cm9sO1xuXG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHRoaXMud2F5cG9pbnRTdWdnZXN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaXNGb2N1c2VkJCxcbiAgICAgIHRoaXMudmFsdWUkLFxuICAgIF0pLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgc3dpdGNoTWFwKChbaXNGb2N1c2VkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0ZvY3VzZWQpIHtcbiAgICAgICAgICByZXR1cm4gb2YoW10gYXMgV2F5cG9pbnRTdWdnZXN0aW9uW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBvZih0aGlzLndheXBvaW50c0hpc3RvcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2F5cG9pbnRSZXN1bHRzKHZhbHVlKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXN1bHRzKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMgPSByZXN1bHRzO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSByZXN1bHRzPy5sZW5ndGggPyAwIDogLTE7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBnZXRXYXlwb2ludFJlc3VsdHMocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+IHtcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlZC5lbWl0KHtcbiAgICAgIHdheXBvaW50X3R5cGU6IHRoaXMud2F5cG9pbnRUeXBlLFxuICAgICAgcGxhY2VfbmFtZTogcXVlcnksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBvZih0aGlzLndheXBvaW50c0hpc3RvcnkpLFxuICAgICAgdGhpcy5nZXRQbGFjZXNSZXN1bHRzKHF1ZXJ5KSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbaGlzdG9yeSwgZ29vZ2xlXSkgPT4ge1xuICAgICAgICBjb25zdCBoaXN0b3J5SXRlbXMgPSBoaXN0b3J5ID8/IFtdLFxuICAgICAgICAgIGdvb2dsZUl0ZW1zID0gZ29vZ2xlID8/IFtdO1xuXG4gICAgICAgIHJldHVybiBbLi4uaGlzdG9yeUl0ZW1zLCAuLi5nb29nbGVJdGVtc107XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZXNSZXN1bHRzKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgdGhpcy5tYXBBdXRvY29tcGxldGVTZXJ2aWNlLmdldFBsYWNlUHJlZGljdGlvbnMoXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dDogcXVlcnksXG4gICAgICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6IHRoaXMuY291bnRyeUNvZGUgfSxcbiAgICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxuICAgICAgICB9LFxuICAgICAgICAocHJlZGljdGlvbnMpID0+IHtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLnRvV2F5cG9pbnRTdWdnZXN0aW9ucyhwcmVkaWN0aW9ucykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvV2F5cG9pbnRTdWdnZXN0aW9ucyhcbiAgICBwcmVkaWN0aW9uczogQXV0b2NvbXBsZXRlUHJlZGljdGlvbltdIHwgbnVsbCxcbiAgKTogV2F5cG9pbnRTdWdnZXN0aW9uW10ge1xuICAgIHJldHVybiAocHJlZGljdGlvbnMgPz8gW10pLm1hcCgocHJlZGljdGlvbikgPT4gKHtcbiAgICAgIGFkZGl0aW9uYWxfaW5mbzogcHJlZGljdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgIHBsYWNlX2lkOiBwcmVkaWN0aW9uLnBsYWNlX2lkLFxuICAgICAgc291cmNlOiAnZ29vZ2xlJyxcbiAgICAgIHByZWRpY3Rpb25fdGVybTogcHJlZGljdGlvbi50ZXJtcyxcbiAgICB9KSk7XG4gIH1cblxuICBvblNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogV2F5cG9pbnRTdWdnZXN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgeyBhZGRpdGlvbmFsX2luZm8sIHBsYWNlX2lkIH0gPSBzdWdnZXN0aW9uID8/IHt9O1xuXG4gICAgdGhpcy52YWx1ZSA9IGFkZGl0aW9uYWxfaW5mbztcbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UuZ2V0RGV0YWlscyhcbiAgICAgIHtcbiAgICAgICAgcGxhY2VJZDogcGxhY2VfaWQsXG4gICAgICAgIHNlc3Npb25Ub2tlbjogdGhpcy5zZXNzaW9uVG9rZW4sXG4gICAgICAgIGZpZWxkczogWydhZGRyZXNzX2NvbXBvbmVudHMnLCAnZ2VvbWV0cnkubG9jYXRpb24nLCAncGxhY2VfaWQnXSxcbiAgICAgIH0sXG4gICAgICAocGxhY2UsIHN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgPT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LICYmIHBsYWNlKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlUmVzdWx0LmVtaXQoe1xuICAgICAgICAgICAgICBwbGFjZSxcbiAgICAgICAgICAgICAgdGV4dDogYWRkaXRpb25hbF9pbmZvLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignUGxhY2UgZGV0YWlscyBsb29rdXAgZmFpbGVkJywgeyBzdGF0dXMsIHBsYWNlX2lkIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPVxuICAgICAgICAgICh0aGlzLnNlbGVjdGVkSW5kZXggKyAxKSAlIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgKHRoaXMuc2VsZWN0ZWRJbmRleCAtIDEgKyB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zLmxlbmd0aCkgJVxuICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgIHRoaXMub25TZWxlY3RTdWdnZXN0aW9uKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaXNGb2N1c2VkJC5uZXh0KHRydWUpKSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG5leHRWYWx1ZSA9ICcnKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlID09PSBuZXh0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IG5leHRWYWx1ZTtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KG5leHRWYWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBvbkRlbGV0ZUl0ZW0oKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVJdGVtLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ2xlYW4oKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0R29vZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMubWFwQXV0b2NvbXBsZXRlU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xuXG4gICAgdGhpcy5wbGFjZXNTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlKFxuICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXG4gICAgKTtcblxuICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTZXNzaW9uVG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy5zZXNzaW9uVG9rZW4gPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbigpO1xuICB9XG59XG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpIHctZnVsbFwiPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXdyYXBwZXIgdy1mdWxsXCI+XG4gICAgICA8aW5wdXQgI21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0XG4gICAgICAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICAgICAgICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgICAgIFtpZF09XCJuYW1lXCJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHctZnVsbFwiXG4gICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICBzcGVsbGNoZWNrPVwib2ZmXCJcbiAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0tc3VmZml4XCIgKm5nSWY9XCJzaG93U3VmZml4XCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNob3dEZWxldGVJdGVtXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyIGRlbGV0ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlSXRlbSgpXCI+XG4gICAgICAgICAgZGVsZXRlXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiIXNob3dEZWxldGVJdGVtICYmIHZhbHVlXCIgKGNsaWNrKT1cIm9uQ2xlYW4oKVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8IS0tIEN1c3RvbSBkcm9wZG93biAtLT5cbiAgICA8bmctdGVtcGxhdGUgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cInRyaWdnZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzRm9jdXNlZCQgfCBhc3luY1wiPlxuICAgICAgPHVsIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpX19jb250YWluZXJcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIHdheXBvaW50U3VnZ2VzdGlvbnMkIHwgYXN5bmMgfCBzbGljZTowOjEwOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpLS1pdGVtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBob3ZlcjpiZy1ncmF5LTEwMFwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IHNlbGVjdGVkSW5kZXhcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbilcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VnZ2VzdGlvbj8uc291cmNlID09PSAnaGlzdG9yeSc7IGVsc2UgcHVyZVBsYWNlUmVzdWx0VHBsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LmFkZGl0aW9uYWxfaW5mbyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWdnZXN0aW9uPy5zb3VyY2UgPT09ICdoaXN0b3J5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTUgaC01IHRleHQteGwgdGV4dC1ncmF5LTQwMCAhaG92ZXI6dGV4dC1ncmF5LTQwMFwiPlxuICAgICAgICAgICAgICBoaXN0b3J5XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwdXJlUGxhY2VSZXN1bHRUcGw+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMSBsZWFkaW5nLTAgb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMF0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsxXT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMV0/LnZhbHVlIHwgc2VwYXJhdG9yQXBwZW5kOiBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMl0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgZm9udC1zZW1pYm9sZCB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cbiJdfQ==
|