@taiga-ui/kit 3.83.0 → 3.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +10 -3
  2. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-carousel.umd.js +1 -1
  4. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +34 -16
  6. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-input-date.umd.js +2 -2
  8. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-input-number.umd.js +1 -0
  10. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-push.umd.js +1 -1
  12. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  13. package/components/calendar-range/calendar-range.component.d.ts +2 -0
  14. package/components/input-date-range/input-date-range.component.d.ts +6 -3
  15. package/esm2015/components/calendar-range/calendar-range.component.js +11 -4
  16. package/esm2015/components/carousel/carousel.component.js +2 -2
  17. package/esm2015/components/input-date/input-date.component.js +3 -3
  18. package/esm2015/components/input-date-range/input-date-range.component.js +33 -14
  19. package/esm2015/components/input-number/input-number.component.js +2 -1
  20. package/esm2015/components/push/push.component.js +2 -2
  21. package/fesm2015/taiga-ui-kit-components-calendar-range.js +10 -3
  22. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  23. package/fesm2015/taiga-ui-kit-components-carousel.js +1 -1
  24. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  25. package/fesm2015/taiga-ui-kit-components-input-date-range.js +33 -15
  26. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  27. package/fesm2015/taiga-ui-kit-components-input-date.js +2 -2
  28. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  29. package/fesm2015/taiga-ui-kit-components-input-number.js +1 -0
  30. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  31. package/fesm2015/taiga-ui-kit-components-push.js +1 -1
  32. package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
  33. package/package.json +4 -4
@@ -5,6 +5,7 @@ import { TuiDayRangePeriod } from '@taiga-ui/kit/classes';
5
5
  import { Observable } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class TuiCalendarRangeComponent implements TuiWithOptionalMinMax<TuiDay> {
8
+ readonly cdr: ChangeDetectorRef;
8
9
  readonly otherDateText$: Observable<string>;
9
10
  readonly icons: TuiCommonIcons;
10
11
  defaultViewedMonth: TuiMonth;
@@ -18,6 +19,7 @@ export declare class TuiCalendarRangeComponent implements TuiWithOptionalMinMax<
18
19
  value: TuiDayRange | null;
19
20
  readonly valueChange: EventEmitter<TuiDayRange | null>;
20
21
  previousValue: TuiDayRange | null;
22
+ selectedActivePeriod: TuiDayRangePeriod | null;
21
23
  readonly maxLengthMapper: TuiTypedMapper<[TuiDay, TuiDayRange | null, TuiDayLike | null, boolean], TuiDay>;
22
24
  get computedMin(): TuiDay;
23
25
  get computedMax(): TuiDay;
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, Type } from '@angular/core';
1
+ import { AfterViewChecked, ChangeDetectorRef, Type } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { MaskitoOptions } from '@maskito/core';
4
4
  import { AbstractTuiNullableControl, AbstractTuiValueTransformer, TuiBooleanHandler, TuiDateMode, TuiDay, TuiDayLike, TuiDayRange, TuiFocusableElementAccessor, TuiMonth, TuiTypedMapper } from '@taiga-ui/cdk';
@@ -8,7 +8,7 @@ import { TuiInputDateOptions } from '@taiga-ui/kit/tokens';
8
8
  import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
9
9
  import { Observable } from 'rxjs';
10
10
  import * as i0 from "@angular/core";
11
- export declare class TuiInputDateRangeComponent extends AbstractTuiNullableControl<TuiDayRange> implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor {
11
+ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableControl<TuiDayRange> implements TuiWithOptionalMinMax<TuiDay>, TuiFocusableElementAccessor, AfterViewChecked {
12
12
  private readonly isMobile;
13
13
  private readonly mobileCalendar;
14
14
  readonly dateFormat: TuiDateMode;
@@ -18,6 +18,7 @@ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableContr
18
18
  private readonly options;
19
19
  private readonly textfieldSize;
20
20
  private readonly textfield?;
21
+ private readonly calendarRange?;
21
22
  disabledItemHandler: TuiBooleanHandler<TuiDay>;
22
23
  markerHandler: TuiMarkerHandler;
23
24
  defaultViewedMonth: TuiMonth;
@@ -27,6 +28,7 @@ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableContr
27
28
  minLength: TuiDayLike | null;
28
29
  maxLength: TuiDayLike | null;
29
30
  open: boolean;
31
+ selectedActivePeriod: TuiDayRangePeriod | null;
30
32
  readonly maxLengthMapper: TuiTypedMapper<[
31
33
  TuiDay,
32
34
  TuiDayRange | null,
@@ -35,6 +37,8 @@ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableContr
35
37
  ], TuiDay>;
36
38
  readonly dateFiller$: Observable<string>;
37
39
  constructor(control: NgControl | null, cdr: ChangeDetectorRef, isMobile: boolean, mobileCalendar: Type<Record<string, any>> | null, dateFormat: TuiDateMode, dateSeparator: string, dateTexts$: Observable<Record<TuiDateMode, string>>, valueTransformer: AbstractTuiValueTransformer<TuiDayRange | null> | null, options: TuiInputDateOptions, textfieldSize: TuiTextfieldSizeDirective);
40
+ onClick(): void;
41
+ ngAfterViewChecked(): void;
38
42
  get size(): TuiSizeL | TuiSizeS;
39
43
  get computedMin(): TuiDay;
40
44
  get computedMax(): TuiDay;
@@ -51,7 +55,6 @@ export declare class TuiInputDateRangeComponent extends AbstractTuiNullableContr
51
55
  get innerPseudoFocused(): boolean | null;
52
56
  get nativeValue(): string;
53
57
  set nativeValue(value: string);
54
- onClick(): void;
55
58
  getComputedRangeFiller(dateFiller: string): string;
56
59
  onIconClick(): void;
57
60
  onOpenChange(open: boolean): void;
@@ -13,6 +13,7 @@ import * as i4 from "@taiga-ui/cdk";
13
13
  import * as i5 from "rxjs";
14
14
  export class TuiCalendarRangeComponent {
15
15
  constructor(valueChanges, cdr, destroy$, otherDateText$, icons) {
16
+ this.cdr = cdr;
16
17
  this.otherDateText$ = otherDateText$;
17
18
  this.icons = icons;
18
19
  this.defaultViewedMonth = TuiMonth.currentLocal();
@@ -26,6 +27,7 @@ export class TuiCalendarRangeComponent {
26
27
  this.value = null;
27
28
  this.valueChange = new EventEmitter();
28
29
  this.previousValue = null;
30
+ this.selectedActivePeriod = null;
29
31
  this.maxLengthMapper = MAX_DAY_RANGE_LENGTH_MAPPER;
30
32
  this.mapper = (items, min, max, minLength, otherDateText = '') => [
31
33
  ...items.filter(item => (minLength === null ||
@@ -74,6 +76,7 @@ export class TuiCalendarRangeComponent {
74
76
  onDayClick(day) {
75
77
  const { value } = this;
76
78
  this.previousValue = value;
79
+ this.selectedActivePeriod = null;
77
80
  if (value === null || !value.isSingleDay) {
78
81
  this.value = new TuiDayRange(day, day);
79
82
  return;
@@ -81,11 +84,13 @@ export class TuiCalendarRangeComponent {
81
84
  this.updateValue(TuiDayRange.sort(value.from, day));
82
85
  }
83
86
  onItemSelect(item) {
84
- if (typeof item !== 'string') {
87
+ if (!tuiIsString(item)) {
88
+ this.selectedActivePeriod = item;
85
89
  this.updateValue(item.range.dayLimit(this.min, this.max));
86
90
  return;
87
91
  }
88
92
  if (this.activePeriod !== null) {
93
+ this.selectedActivePeriod = null;
89
94
  this.updateValue(null);
90
95
  }
91
96
  }
@@ -94,8 +99,10 @@ export class TuiCalendarRangeComponent {
94
99
  this.valueChange.emit(value);
95
100
  }
96
101
  get activePeriod() {
97
- return (this.items.find(item => tuiNullableSame(this.value, item.range, (a, b) => a.from.daySame(b.from.dayLimit(this.min, this.max)) &&
98
- a.to.daySame(b.to.dayLimit(this.min, this.max)))) || null);
102
+ var _a;
103
+ return ((_a = this.selectedActivePeriod) !== null && _a !== void 0 ? _a : (this.items.find(item => tuiNullableSame(this.value, item.range, (a, b) => a.from.daySame(b.from.dayLimit(this.min, this.max)) &&
104
+ a.to.daySame(b.to.dayLimit(this.min, this.max)))) ||
105
+ null));
99
106
  }
100
107
  calculateDisabledItemHandler(disabledItemHandler, value, minLength) {
101
108
  return item => {
@@ -167,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
167
174
  type: HostListener,
168
175
  args: ['document:keydown.capture', ['$event']]
169
176
  }], calculateDisabledItemHandler: [] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2FsZW5kYXItcmFuZ2UvY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2FsZW5kYXItcmFuZ2UvY2FsZW5kYXItcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBSVosV0FBVyxFQUNYLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsUUFBUSxFQUNSLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsT0FBTyxFQUVQLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLDBCQUEwQixHQUk3QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5GLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVN6QyxNQUFNLE9BQU8seUJBQXlCO0lBMkNsQyxZQUdJLFlBQW1ELEVBQ3hCLEdBQXNCLEVBQ2QsUUFBMkIsRUFDeEIsY0FBa0MsRUFDckMsS0FBcUI7UUFEbEIsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ3JDLFVBQUssR0FBTCxL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S0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLE1BQU07Z0JBa0NQLEtBQUs7c0JBREosWUFBWTt1QkFBQywwQkFBMEIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFtRzVDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgdHVpSXNTdHJpbmcsXG4gICAgVHVpTW9udGgsXG4gICAgdHVpTnVsbGFibGVTYW1lLFxuICAgIHR1aU9iamVjdEZyb21FbnRyaWVzLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpVHlwZWRNYXBwZXIsXG4gICAgdHVpV2F0Y2gsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ09NTU9OX0lDT05TLFxuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFR1aUNvbW1vbkljb25zLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0NBTEVOREFSX0RBVEVfU1RSRUFNLCBUVUlfT1RIRVJfREFURV9URVhUfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktY2FsZW5kYXItcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhclJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4ge1xuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdFZpZXdlZE1vbnRoOiBUdWlNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgaXRlbXM6IHJlYWRvbmx5IFR1aURheVJhbmdlUGVyaW9kW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluOiBUdWlEYXkgfCBudWxsID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4OiBUdWlEYXkgfCBudWxsID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBtaW5MZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4TGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBUdWlEYXlSYW5nZSB8IG51bGwgPSBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFR1aURheVJhbmdlIHwgbnVsbD4oKTtcblxuICAgIHByZXZpb3VzVmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCA9IG51bGw7XG5cbiAgICByZWFkb25seSBtYXhMZW5ndGhNYXBwZXIgPSBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVI7XG5cbiAgICBnZXQgY29tcHV0ZWRNaW4oKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluID8/IFRVSV9GSVJTVF9EQVk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCA/PyBUVUlfTEFTVF9EQVk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX0NBTEVOREFSX0RBVEVfU1RSRUFNKVxuICAgICAgICB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VHVpRGF5UmFuZ2UgfCBudWxsPiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFRVSV9PVEhFUl9EQVRFX1RFWFQpIHJlYWRvbmx5IG90aGVyRGF0ZVRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NPTU1PTl9JQ09OUykgcmVhZG9ubHkgaWNvbnM6IFR1aUNvbW1vbkljb25zLFxuICAgICkge1xuICAgICAgICBpZiAoIXZhbHVlQ2hhbmdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWVDaGFuZ2VzLnBpcGUodHVpV2F0Y2goY2RyKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5jYXB0dXJlJywgWyckZXZlbnQnXSlcbiAgICBvbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnRXNjYXBlJyB8fCAhdGhpcy52YWx1ZT8uaXNTaW5nbGVEYXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5wcmV2aW91c1ZhbHVlO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IG1hcHBlcjogVHVpVHlwZWRNYXBwZXI8XG4gICAgICAgIFtcbiAgICAgICAgICAgIHJlYWRvbmx5IFR1aURheVJhbmdlUGVyaW9kW10sXG4gICAgICAgICAgICBUdWlEYXkgfCBudWxsLFxuICAgICAgICAgICAgVHVpRGF5IHwgbnVsbCxcbiAgICAgICAgICAgIFR1aURheUxpa2UgfCBudWxsLFxuICAgICAgICAgICAgc3RyaW5nPyxcbiAgICAgICAgXSxcbiAgICAgICAgUmVhZG9ubHlBcnJheTxUdWlEYXlSYW5nZVBlcmlvZCB8IHN0cmluZz5cbiAgICA+ID0gKGl0ZW1zLCBtaW4sIG1heCwgbWluTGVuZ3RoLCBvdGhlckRhdGVUZXh0ID0gJycpID0+IFtcbiAgICAgICAgLi4uaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgIChtaW5MZW5ndGggPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5yYW5nZS5mcm9tLmFwcGVuZChtaW5MZW5ndGgpLmRheVNhbWVPckJlZm9yZShpdGVtLnJhbmdlLnRvKSkgJiZcbiAgICAgICAgICAgICAgICAobWluID09PSBudWxsIHx8IGl0ZW0ucmFuZ2UudG8uZGF5U2FtZU9yQWZ0ZXIobWluKSkgJiZcbiAgICAgICAgICAgICAgICAobWF4ID09PSBudWxsIHx8IGl0ZW0ucmFuZ2UuZnJvbS5kYXlTYW1lT3JCZWZvcmUobWF4KSksXG4gICAgICAgICksXG4gICAgICAgIG90aGVyRGF0ZVRleHQsXG4gICAgXTtcblxuICAgIGdldCBjYWxjdWxhdGVkRGlzYWJsZWRJdGVtSGFuZGxlcigpOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRJdGVtSGFuZGxlcihcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcixcbiAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICB0aGlzLm1pbkxlbmd0aCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS50byA6IHRoaXMuZGVmYXVsdFZpZXdlZE1vbnRoO1xuICAgIH1cblxuICAgIGlzSXRlbUFjdGl2ZShpdGVtOiBUdWlEYXlSYW5nZVBlcmlvZCB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7YWN0aXZlUGVyaW9kfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh0dWlJc1N0cmluZyhpdGVtKSAmJiBhY3RpdmVQZXJpb2QgPT09IG51bGwpIHx8IGFjdGl2ZVBlcmlvZCA9PT0gaXRlbTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpZiBpdCBpcyB1c2VkIGFueXdoZXJlIGFuZCAoaWYgbm90KSBkZWxldGUgaXQgaW4gdjQuMFxuICAgIG9uUmFuZ2VDaGFuZ2UoZGF5UmFuZ2U6IFR1aURheVJhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoZGF5UmFuZ2UpO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2soZGF5OiBUdWlEYXkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5wcmV2aW91c1ZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8ICF2YWx1ZS5pc1NpbmdsZURheSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBUdWlEYXlSYW5nZShkYXksIGRheSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoVHVpRGF5UmFuZ2Uuc29ydCh2YWx1ZS5mcm9tLCBkYXkpKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1TZWxlY3QoaXRlbTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShpdGVtLnJhbmdlLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVQZXJpb2QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBhY3RpdmVQZXJpb2QoKTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuZmluZChpdGVtID0+XG4gICAgICAgICAgICAgICAgdHVpTnVsbGFibGVTYW1lPFR1aURheVJhbmdlPihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5yYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBhLmZyb20uZGF5U2FtZShiLmZyb20uZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGEudG8uZGF5U2FtZShiLnRvLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApIHx8IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlRGlzYWJsZWRJdGVtSGFuZGxlcihcbiAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PixcbiAgICAgICAgdmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCxcbiAgICAgICAgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCxcbiAgICApOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZT8uaXNTaW5nbGVEYXkgfHwgIW1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNhYmxlZEl0ZW1IYW5kbGVyKGl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZWdhdGl2ZU1pbkxlbmd0aCA9IHR1aU9iamVjdEZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKG1pbkxlbmd0aCkubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksIC12YWx1ZV0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkQmVmb3JlID0gdmFsdWUuZnJvbS5hcHBlbmQobmVnYXRpdmVNaW5MZW5ndGgpLmFwcGVuZCh7ZGF5OiAxfSk7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZEFmdGVyID0gdmFsdWUuZnJvbS5hcHBlbmQobWluTGVuZ3RoKS5hcHBlbmQoe2RheTogLTF9KTtcbiAgICAgICAgICAgIGNvbnN0IGluRGlzYWJsZWRSYW5nZSA9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWRCZWZvcmUuZGF5QmVmb3JlKGl0ZW0pICYmIGRpc2FibGVkQWZ0ZXIuZGF5QWZ0ZXIoaXRlbSk7XG5cbiAgICAgICAgICAgIHJldHVybiBpbkRpc2FibGVkUmFuZ2UgfHwgZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8dHVpLXByaW1pdGl2ZS1jYWxlbmRhci1yYW5nZVxuICAgICpuZ0lmPVwiIWl0ZW1zLmxlbmd0aDsgZWxzZSBwcmVzZXRzXCJcbiAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXJhbmdlX19jYWxlbmRhcnNcIlxuICAgIHR1aVByZXZlbnREZWZhdWx0PVwibW91c2Vkb3duXCJcbiAgICBbZGVmYXVsdFZpZXdlZE1vbnRoRmlyc3RdPVwiZGVmYXVsdFZpZXdlZE1vbnRoXCJcbiAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJjYWxjdWxhdGVkRGlzYWJsZWRJdGVtSGFuZGxlclwiXG4gICAgW21hcmtlckhhbmRsZXJdPVwibWFya2VySGFuZGxlclwiXG4gICAgW21heF09XCJjb21wdXRlZE1heCB8IHR1aU1hcHBlcjogbWF4TGVuZ3RoTWFwcGVyIDogdmFsdWUgOiBtYXhMZW5ndGggOiBmYWxzZVwiXG4gICAgW21pbl09XCJjb21wdXRlZE1pbiB8IHR1aU1hcHBlcjogbWF4TGVuZ3RoTWFwcGVyIDogdmFsdWUgOiBtYXhMZW5ndGggOiB0cnVlXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuPjwvdHVpLXByaW1pdGl2ZS1jYWxlbmRhci1yYW5nZT5cbjxuZy10ZW1wbGF0ZSAjcHJlc2V0cz5cbiAgICA8ZGl2IGNsYXNzPVwidC13cmFwcGVyXCI+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXItcmFuZ2VfX2NhbGVuZGFyXCJcbiAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0PVwibW91c2Vkb3duXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImNhbGN1bGF0ZWREaXNhYmxlZEl0ZW1IYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgICAgICAgICAgW21heF09XCJjb21wdXRlZE1heCB8IHR1aU1hcHBlcjogbWF4TGVuZ3RoTWFwcGVyIDogdmFsdWUgOiBtYXhMZW5ndGggOiBmYWxzZVwiXG4gICAgICAgICAgICBbbWluXT1cImNvbXB1dGVkTWluIHwgdHVpTWFwcGVyOiBtYXhMZW5ndGhNYXBwZXIgOiB2YWx1ZSA6IG1heExlbmd0aCA6IHRydWVcIlxuICAgICAgICAgICAgW21vbnRoXT1cImNvbXB1dGVkTW9udGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICA+PC90dWktY2FsZW5kYXI+XG4gICAgICAgIDx0dWktZGF0YS1saXN0XG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXJhbmdlX19tZW51XCJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1tZW51XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zIHwgdHVpTWFwcGVyOiBtYXBwZXIgOiBtaW4gOiBtYXggOiBtaW5MZW5ndGggOiAob3RoZXJEYXRlVGV4dCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktY2FsZW5kYXItcmFuZ2VfX21lbnVfX2l0ZW1cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbXJhZGlvXCJcbiAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICB0dWlQcmV2ZW50RGVmYXVsdD1cIm1vdXNlZG93blwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImlzSXRlbUFjdGl2ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbVNlbGVjdChpdGVtKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIucHJldmVudCk9XCJvbkl0ZW1TZWxlY3QoaXRlbSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlLnByZXZlbnQpPVwib25JdGVtU2VsZWN0KGl0ZW0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtIH19XG4gICAgICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXJhbmdlX19jaGVja21hcmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY2hlY2ttYXJrXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpY29ucy5jaGVja1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3R1aS1kYXRhLWxpc3Q+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2FsZW5kYXItcmFuZ2UvY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2FsZW5kYXItcmFuZ2UvY2FsZW5kYXItcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBSVosV0FBVyxFQUNYLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsUUFBUSxFQUNSLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsT0FBTyxFQUVQLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLDBCQUEwQixHQUk3QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5GLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVN6QyxNQUFNLE9BQU8seUJBQXlCO0lBNkNsQyxZQUdJLFlBQW1ELEVBQ2YsR0FBc0IsRUFDdkIsUUFBMkIsRUFDeEIsY0FBa0MsRUFDckMsS0FBcUI7UUFIcEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFFcEIsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ3JDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBbEQ1RCx1QkFBa0IsR0FBYSxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHdkQsd0JBQW1CLEdBQThCLG9CQUFvQixDQUFDO1FBR3RFLGtCQUFhLEdBQXFCLDBCQUEwQixDQUFDO1FBRzdELFVBQUssR0FBaUMsRUFBRSxDQUFDO1FBR3pDLFFBQUcsR0FBa0IsYUFBYSxDQUFDO1FBR25DLFFBQUcsR0FBa0IsWUFBWSxDQUFDO1FBR2xDLGNBQVMsR0FBc0IsSUFBSSxDQUFDO1FBR3BDLGNBQVMsR0FBc0IsSUFBSSxDQUFDO1FBR3BDLFVBQUssR0FBdUIsSUFBSSxDQUFDO1FBR3hCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFOUQsa0JBQWEsR0FBdUIsSUFBSSxDQUFDO1FBRXpDLHlCQUFvQixHQUE2QixJQUFJLENBQUM7UUFFN0Msb0JBQWUsR0FBRywyQkFBMkIsQ0FBQztRQXNDOUMsV0FBTSxHQVNYLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGFBQWEsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3BELEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDWCxJQUFJLENBQUMsRUFBRSxDQUNILENBQUMsU0FBUyxLQUFLLElBQUk7Z0JBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzdEO1lBQ0QsYUFBYTtTQUNoQixDQUFDO1FBckNFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFFRCxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBeEJELElBQUksV0FBVzs7UUFDWCxPQUFPLE1BQUEsSUFBSSxDQUFDLEdBQUcsbUNBQUksYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFdBQVc7O1FBQ1gsT0FBTyxNQUFBLElBQUksQ0FBQyxHQUFHLG1DQUFJLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBcUJELEtBQUssQ0FBQyxLQUFvQjs7UUFDdEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxXQUFXLENBQUEsRUFBRTtZQUNwRCxPQUFPO1NBQ1Y7UUFFRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ3BDLENBQUM7SUFzQkQsSUFBSSw2QkFBNkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsU0FBUyxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNoRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWdDO1FBQ3pDLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFNUIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksWUFBWSxLQUFLLElBQUksQ0FBQztJQUNqRixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLGFBQWEsQ0FBQyxRQUFxQjtRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNsQixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXJCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFakMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUV2QyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxZQUFZLENBQUMsSUFBZ0M7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUxRCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBeUI7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVksWUFBWTs7UUFDcEIsT0FBTyxDQUNILE1BQUEsSUFBSSxDQUFDLG9CQUFvQixtQ0FDekIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNwQixlQUFlLENBQ1gsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsS0FBSyxFQUNWLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDdEQsQ0FDSjtZQUNHLElBQUksQ0FBQyxDQUNaLENBQUM7SUFDTixDQUFDO0lBR08sNEJBQTRCLENBQ2hDLG1CQUE4QyxFQUM5QyxLQUF5QixFQUN6QixTQUE0QjtRQUU1QixPQUFPLElBQUksQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFdBQVcsQ0FBQSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1lBRUQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FDMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNqRSxDQUFDO1lBQ0YsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sZUFBZSxHQUNqQixjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkUsT0FBTyxlQUFlLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7dUhBM0xRLHlCQUF5QixrQkErQ3RCLHdCQUF3Qiw2QkFFeEIsaUJBQWlCLGFBQ1QsaUJBQWlCLHlCQUN6QixtQkFBbUIsYUFDbkIsZ0JBQWdCOzJHQXBEbkIseUJBQXlCLHNZQUZ2QixDQUFDLGlCQUFpQixDQUFDLDBCQy9DbEMsb3ZFQW9EQTtBRG9LSTtJQURDLE9BQU87NkVBcUJQOzRGQTNMUSx5QkFBeUI7a0JBUHJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDakM7OzBCQStDUSxRQUFROzswQkFDUixNQUFNOzJCQUFDLHdCQUF3Qjs7MEJBRS9CLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUNoQyxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsZ0JBQWdCOzRDQWxENUIsa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsTUFBTTtnQkFvQ1AsS0FBSztzQkFESixZQUFZO3VCQUFDLDBCQUEwQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdHNUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBUVUlfRklSU1RfREFZLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXksXG4gICAgVHVpRGF5TGlrZSxcbiAgICBUdWlEYXlSYW5nZSxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB0dWlJc1N0cmluZyxcbiAgICBUdWlNb250aCxcbiAgICB0dWlOdWxsYWJsZVNhbWUsXG4gICAgdHVpT2JqZWN0RnJvbUVudHJpZXMsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlUeXBlZE1hcHBlcixcbiAgICB0dWlXYXRjaCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9DT01NT05fSUNPTlMsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVHVpQ29tbW9uSWNvbnMsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpRGF5UmFuZ2VQZXJpb2R9IGZyb20gJ0B0YWlnYS11aS9raXQvY2xhc3Nlcyc7XG5pbXBvcnQge01BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtUVUlfQ0FMRU5EQVJfREFURV9TVFJFQU0sIFRVSV9PVEhFUl9EQVRFX1RFWFR9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1jYWxlbmRhci1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXJhbmdlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLXJhbmdlLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUdWlEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNhbGVuZGFyUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5PiB7XG4gICAgQElucHV0KClcbiAgICBkZWZhdWx0Vmlld2VkTW9udGg6IFR1aU1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBpdGVtczogcmVhZG9ubHkgVHVpRGF5UmFuZ2VQZXJpb2RbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IFR1aURheSB8IG51bGwgPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IFR1aURheSB8IG51bGwgPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbkxlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhMZW5ndGg6IFR1aURheUxpa2UgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpRGF5UmFuZ2UgfCBudWxsPigpO1xuXG4gICAgcHJldmlvdXNWYWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsID0gbnVsbDtcblxuICAgIHNlbGVjdGVkQWN0aXZlUGVyaW9kOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwgPSBudWxsO1xuXG4gICAgcmVhZG9ubHkgbWF4TGVuZ3RoTWFwcGVyID0gTUFYX0RBWV9SQU5HRV9MRU5HVEhfTUFQUEVSO1xuXG4gICAgZ2V0IGNvbXB1dGVkTWluKCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA/PyBUVUlfRklSU1RfREFZO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1heCgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXggPz8gVFVJX0xBU1RfREFZO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9DQUxFTkRBUl9EQVRFX1NUUkVBTSlcbiAgICAgICAgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPFR1aURheVJhbmdlIHwgbnVsbD4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAU2VsZigpIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIGRlc3Ryb3kkOiBUdWlEZXN0cm95U2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfT1RIRVJfREFURV9URVhUKSByZWFkb25seSBvdGhlckRhdGVUZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICBASW5qZWN0KFRVSV9DT01NT05fSUNPTlMpIHJlYWRvbmx5IGljb25zOiBUdWlDb21tb25JY29ucyxcbiAgICApIHtcbiAgICAgICAgaWYgKCF2YWx1ZUNoYW5nZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlQ2hhbmdlcy5waXBlKHR1aVdhdGNoKGNkciksIHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uY2FwdHVyZScsIFsnJGV2ZW50J10pXG4gICAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VzY2FwZScgfHwgIXRoaXMudmFsdWU/LmlzU2luZ2xlRGF5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucHJldmlvdXNWYWx1ZTtcbiAgICB9XG5cbiAgICByZWFkb25seSBtYXBwZXI6IFR1aVR5cGVkTWFwcGVyPFxuICAgICAgICBbXG4gICAgICAgICAgICByZWFkb25seSBUdWlEYXlSYW5nZVBlcmlvZFtdLFxuICAgICAgICAgICAgVHVpRGF5IHwgbnVsbCxcbiAgICAgICAgICAgIFR1aURheSB8IG51bGwsXG4gICAgICAgICAgICBUdWlEYXlMaWtlIHwgbnVsbCxcbiAgICAgICAgICAgIHN0cmluZz8sXG4gICAgICAgIF0sXG4gICAgICAgIFJlYWRvbmx5QXJyYXk8VHVpRGF5UmFuZ2VQZXJpb2QgfCBzdHJpbmc+XG4gICAgPiA9IChpdGVtcywgbWluLCBtYXgsIG1pbkxlbmd0aCwgb3RoZXJEYXRlVGV4dCA9ICcnKSA9PiBbXG4gICAgICAgIC4uLml0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIGl0ZW0gPT5cbiAgICAgICAgICAgICAgICAobWluTGVuZ3RoID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UuZnJvbS5hcHBlbmQobWluTGVuZ3RoKS5kYXlTYW1lT3JCZWZvcmUoaXRlbS5yYW5nZS50bykpICYmXG4gICAgICAgICAgICAgICAgKG1pbiA9PT0gbnVsbCB8fCBpdGVtLnJhbmdlLnRvLmRheVNhbWVPckFmdGVyKG1pbikpICYmXG4gICAgICAgICAgICAgICAgKG1heCA9PT0gbnVsbCB8fCBpdGVtLnJhbmdlLmZyb20uZGF5U2FtZU9yQmVmb3JlKG1heCkpLFxuICAgICAgICApLFxuICAgICAgICBvdGhlckRhdGVUZXh0LFxuICAgIF07XG5cbiAgICBnZXQgY2FsY3VsYXRlZERpc2FibGVkSXRlbUhhbmRsZXIoKTogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZURpc2FibGVkSXRlbUhhbmRsZXIoXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgdGhpcy5taW5MZW5ndGgsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUudG8gOiB0aGlzLmRlZmF1bHRWaWV3ZWRNb250aDtcbiAgICB9XG5cbiAgICBpc0l0ZW1BY3RpdmUoaXRlbTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge2FjdGl2ZVBlcmlvZH0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAodHVpSXNTdHJpbmcoaXRlbSkgJiYgYWN0aXZlUGVyaW9kID09PSBudWxsKSB8fCBhY3RpdmVQZXJpb2QgPT09IGl0ZW07XG4gICAgfVxuXG4gICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgaWYgaXQgaXMgdXNlZCBhbnl3aGVyZSBhbmQgKGlmIG5vdCkgZGVsZXRlIGl0IGluIHY0LjBcbiAgICBvblJhbmdlQ2hhbmdlKGRheVJhbmdlOiBUdWlEYXlSYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGRheVJhbmdlKTtcbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKGRheTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSB0aGlzO1xuXG4gICAgICAgIHRoaXMucHJldmlvdXNWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQWN0aXZlUGVyaW9kID0gbnVsbDtcblxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgIXZhbHVlLmlzU2luZ2xlRGF5KSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IFR1aURheVJhbmdlKGRheSwgZGF5KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShUdWlEYXlSYW5nZS5zb3J0KHZhbHVlLmZyb20sIGRheSkpO1xuICAgIH1cblxuICAgIG9uSXRlbVNlbGVjdChpdGVtOiBUdWlEYXlSYW5nZVBlcmlvZCB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXR1aUlzU3RyaW5nKGl0ZW0pKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQWN0aXZlUGVyaW9kID0gaXRlbTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoaXRlbS5yYW5nZS5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlUGVyaW9kICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQWN0aXZlUGVyaW9kID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogVHVpRGF5UmFuZ2UgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBhY3RpdmVQZXJpb2QoKTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBY3RpdmVQZXJpb2QgPz9cbiAgICAgICAgICAgICh0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PlxuICAgICAgICAgICAgICAgIHR1aU51bGxhYmxlU2FtZTxUdWlEYXlSYW5nZT4oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICAgIG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZURpc2FibGVkSXRlbUhhbmRsZXIoXG4gICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4sXG4gICAgICAgIHZhbHVlOiBUdWlEYXlSYW5nZSB8IG51bGwsXG4gICAgICAgIG1pbkxlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwsXG4gICAgKTogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiB7XG4gICAgICAgIHJldHVybiBpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWU/LmlzU2luZ2xlRGF5IHx8ICFtaW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzYWJsZWRJdGVtSGFuZGxlcihpdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbmVnYXRpdmVNaW5MZW5ndGggPSB0dWlPYmplY3RGcm9tRW50cmllcyhcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhtaW5MZW5ndGgpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LCAtdmFsdWVdKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZEJlZm9yZSA9IHZhbHVlLmZyb20uYXBwZW5kKG5lZ2F0aXZlTWluTGVuZ3RoKS5hcHBlbmQoe2RheTogMX0pO1xuICAgICAgICAgICAgY29uc3QgZGlzYWJsZWRBZnRlciA9IHZhbHVlLmZyb20uYXBwZW5kKG1pbkxlbmd0aCkuYXBwZW5kKHtkYXk6IC0xfSk7XG4gICAgICAgICAgICBjb25zdCBpbkRpc2FibGVkUmFuZ2UgPVxuICAgICAgICAgICAgICAgIGRpc2FibGVkQmVmb3JlLmRheUJlZm9yZShpdGVtKSAmJiBkaXNhYmxlZEFmdGVyLmRheUFmdGVyKGl0ZW0pO1xuXG4gICAgICAgICAgICByZXR1cm4gaW5EaXNhYmxlZFJhbmdlIHx8IGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSk7XG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiPHR1aS1wcmltaXRpdmUtY2FsZW5kYXItcmFuZ2VcbiAgICAqbmdJZj1cIiFpdGVtcy5sZW5ndGg7IGVsc2UgcHJlc2V0c1wiXG4gICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhci1yYW5nZV9fY2FsZW5kYXJzXCJcbiAgICB0dWlQcmV2ZW50RGVmYXVsdD1cIm1vdXNlZG93blwiXG4gICAgW2RlZmF1bHRWaWV3ZWRNb250aEZpcnN0XT1cImRlZmF1bHRWaWV3ZWRNb250aFwiXG4gICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiY2FsY3VsYXRlZERpc2FibGVkSXRlbUhhbmRsZXJcIlxuICAgIFttYXJrZXJIYW5kbGVyXT1cIm1hcmtlckhhbmRsZXJcIlxuICAgIFttYXhdPVwiY29tcHV0ZWRNYXggfCB0dWlNYXBwZXI6IG1heExlbmd0aE1hcHBlciA6IHZhbHVlIDogbWF4TGVuZ3RoIDogZmFsc2VcIlxuICAgIFttaW5dPVwiY29tcHV0ZWRNaW4gfCB0dWlNYXBwZXI6IG1heExlbmd0aE1hcHBlciA6IHZhbHVlIDogbWF4TGVuZ3RoIDogdHJ1ZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbj48L3R1aS1wcmltaXRpdmUtY2FsZW5kYXItcmFuZ2U+XG48bmctdGVtcGxhdGUgI3ByZXNldHM+XG4gICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgICAgICA8dHVpLWNhbGVuZGFyXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXJhbmdlX19jYWxlbmRhclwiXG4gICAgICAgICAgICB0dWlQcmV2ZW50RGVmYXVsdD1cIm1vdXNlZG93blwiXG4gICAgICAgICAgICBbZGlzYWJsZWRJdGVtSGFuZGxlcl09XCJjYWxjdWxhdGVkRGlzYWJsZWRJdGVtSGFuZGxlclwiXG4gICAgICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXggfCB0dWlNYXBwZXI6IG1heExlbmd0aE1hcHBlciA6IHZhbHVlIDogbWF4TGVuZ3RoIDogZmFsc2VcIlxuICAgICAgICAgICAgW21pbl09XCJjb21wdXRlZE1pbiB8IHR1aU1hcHBlcjogbWF4TGVuZ3RoTWFwcGVyIDogdmFsdWUgOiBtYXhMZW5ndGggOiB0cnVlXCJcbiAgICAgICAgICAgIFttb250aF09XCJjb21wdXRlZE1vbnRoXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgPjwvdHVpLWNhbGVuZGFyPlxuICAgICAgICA8dHVpLWRhdGEtbGlzdFxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhci1yYW5nZV9fbWVudVwiXG4gICAgICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtbWVudVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IHR1aU1hcHBlcjogbWFwcGVyIDogbWluIDogbWF4IDogbWluTGVuZ3RoIDogKG90aGVyRGF0ZVRleHQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWNhbGVuZGFyLXJhbmdlX19tZW51X19pdGVtXCJcbiAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1yYWRpb1wiXG4gICAgICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3QoaXRlbSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyLnByZXZlbnQpPVwib25JdGVtU2VsZWN0KGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZS5wcmV2ZW50KT1cIm9uSXRlbVNlbGVjdChpdGVtKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbSB9fVxuICAgICAgICAgICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNJdGVtQWN0aXZlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1jYWxlbmRhci1yYW5nZV9fY2hlY2ttYXJrXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNoZWNrbWFya1wiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaWNvbnMuY2hlY2tcIlxuICAgICAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -57,7 +57,7 @@ export class TuiCarouselComponent {
57
57
  }
58
58
  onScroll(delta) {
59
59
  if (!this.isMobile) {
60
- this.updateIndex(this.index + delta);
60
+ delta > 0 ? this.next() : this.prev();
61
61
  }
62
62
  }
63
63
  onPan(x) {
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
144
144
  type: HostListener,
145
145
  args: ['document:mouseup.silent', ['true']]
146
146
  }], getStyle: [] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVN2QixNQUFNLE9BQU8sb0JBQW9CO0lBc0I3QixZQUNnRCxHQUFzQixFQUM3QixFQUEyQixFQUN4QixRQUFpQjtRQUZiLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQzdCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVM7UUF4QnJELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFJdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBR2YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUd6QyxVQUFLLEdBQW9ELFdBQVcsQ0FBQztRQUc5RSxpQkFBWSxHQUFHLElBQUksQ0FBQztJQU1qQixDQUFDO0lBRUosSUFBSSxTQUFTO1FBQ1QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVks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QWlCLEVBQUUsUUFBUSxFQUFFLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFDLEVBQUMsQ0FBQztpQkFDckY7OzBCQXdCUSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsYUFBYTs0Q0FwQnpCLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBSS9CLFVBQVU7c0JBRFQsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsTUFBTTtnQkFJRSxLQUFLO3NCQURiLGVBQWU7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDO2dCQUl0RCxZQUFZO3NCQURYLFdBQVc7dUJBQUMscUJBQXFCO2dCQW1CbEMsY0FBYztzQkFKYixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDOztzQkFDakMsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUM7O3NCQUNuQyxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsTUFBTSxDQUFDO2dCQVVqRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEVNUFRZX1FVRVJZLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVFVJX1NXSVBFX09QVElPTlMsXG4gICAgdHVpQ2xhbXAsXG4gICAgVHVpSXRlbURpcmVjdGl2ZSxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVN3aXBlRGlyZWN0aW9uLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFRVSV9TV0lQRV9PUFRJT05TLCB1c2VWYWx1ZToge3RpbWVvdXQ6IDIwMCwgdGhyZXNob2xkOiAzMH19XSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQ2Fyb3VzZWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgdHJhbnNsYXRlID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZHJhZ2dhYmxlJylcbiAgICBkcmFnZ2FibGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXRlbXNDb3VudCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIGluZGV4ID0gMDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFR1aUl0ZW1EaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgaXRlbXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl90cmFuc2l0aW9uZWQnKVxuICAgIHRyYW5zaXRpb25lZCA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgKSB7fVxuXG4gICAgZ2V0IHRyYW5zZm9ybSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB4ID0gdGhpcy50cmFuc2l0aW9uZWQgPyB0aGlzLmNvbXB1dGVkVHJhbnNsYXRlIDogdGhpcy50cmFuc2xhdGU7XG5cbiAgICAgICAgcmV0dXJuIGB0cmFuc2xhdGVYKCR7MTAwICogeH0lKWA7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnZmFsc2UnXSlcbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsndHJ1ZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnZmFsc2UnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwLnNpbGVudCcsIFsndHJ1ZSddKVxuICAgIG9uVHJhbnNpdGlvbmVkKHRyYW5zaXRpb25lZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnRyYW5zaXRpb25lZCA9IHRyYW5zaXRpb25lZDtcblxuICAgICAgICBpZiAoIXRyYW5zaXRpb25lZCkge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUgPSB0aGlzLmNvbXB1dGVkVHJhbnNsYXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXRTdHlsZShpdGVtc0NvdW50OiBudW1iZXIpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IGAkezEwMCAvIGl0ZW1zQ291bnR9JWA7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZsZXhCYXNpczogcGVyY2VudCxcbiAgICAgICAgICAgIG1pbldpZHRoOiBwZXJjZW50LFxuICAgICAgICAgICAgbWF4V2lkdGg6IHBlcmNlbnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pbmRleCA9PT0gdGhpcy5pdGVtcy5sZW5ndGggLSB0aGlzLml0ZW1zQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlSW5kZXgodGhpcy5pbmRleCArIDEpO1xuICAgIH1cblxuICAgIHByZXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlSW5kZXgodGhpcy5pbmRleCAtIDEpO1xuICAgIH1cblxuICAgIGlzRGlzYWJsZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaW5kZXggPCB0aGlzLmluZGV4IHx8IGluZGV4ID4gdGhpcy5pbmRleCArIHRoaXMuaXRlbXNDb3VudDtcbiAgICB9XG5cbiAgICBvbkludGVyc2VjdGlvbih7aW50ZXJzZWN0aW9uUmF0aW99OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbnRlcnNlY3Rpb25SYXRpbyAmJiBpbnRlcnNlY3Rpb25SYXRpbyA+PSAwLjUgJiYgIXRoaXMudHJhbnNpdGlvbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUluZGV4KHRoaXMuaW5kZXggPCBpbmRleCA/IGluZGV4IC0gdGhpcy5pdGVtc0NvdW50ICsgMSA6IGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2Nyb2xsKGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUluZGV4KHRoaXMuaW5kZXggKyBkZWx0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBhbih4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXB1dGVkRHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7Y2xpZW50V2lkdGh9ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBtaW4gPSAxIC0gdGhpcy5pdGVtcy5sZW5ndGggLyB0aGlzLml0ZW1zQ291bnQ7XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGUgPSB0dWlDbGFtcCh4IC8gY2xpZW50V2lkdGggKyB0aGlzLnRyYW5zbGF0ZSwgbWluLCAwKTtcbiAgICB9XG5cbiAgICBvblN3aXBlKGRpcmVjdGlvbjogVHVpU3dpcGVEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMucHJldigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BdXRvc2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUluZGV4KHRoaXMuaW5kZXggPT09IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSA/IDAgOiB0aGlzLmluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcHV0ZWRUcmFuc2xhdGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIC10aGlzLmluZGV4IC8gdGhpcy5pdGVtc0NvdW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbXB1dGVkRHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSB8fCB0aGlzLmRyYWdnYWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmRleCA9IHR1aUNsYW1wKGluZGV4LCAwLCB0aGlzLml0ZW1zLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQodGhpcy5pbmRleCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcy5jaGFuZ2VzIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbjxkaXZcbiAgICBjbGFzcz1cInQtc2Nyb2xsZXJcIlxuICAgICh0dWlDYXJvdXNlbFNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIHdhSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcbiAgICAgICAgd2FJbnRlcnNlY3Rpb25UaHJlc2hvbGQ9XCIwLjVcIlxuICAgICAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtaXRlbXNcIlxuICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIlxuICAgICAgICAgICAgKHR1aUNhcm91c2VsQXV0b3Njcm9sbCk9XCJvbkF1dG9zY3JvbGwoKVwiXG4gICAgICAgICAgICAodHVpUGFuKT1cIm9uUGFuKCRldmVudFswXSlcIlxuICAgICAgICAgICAgKHR1aVN3aXBlKT1cIm9uU3dpcGUoJGV2ZW50LmRpcmVjdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmllbGRzZXRcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWl0ZW1cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKGkpXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZShpdGVtc0NvdW50KVwiXG4gICAgICAgICAgICAgICAgKHdhSW50ZXJzZWN0aW9uT2JzZXJ2ZWUpPVwib25JbnRlcnNlY3Rpb24oJGV2ZW50WzBdLCBpKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVN2QixNQUFNLE9BQU8sb0JBQW9CO0lBc0I3QixZQUNnRCxHQUFzQixFQUM3QixFQUEyQixFQUN4QixRQUFpQjtRQUZiLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQzdCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVM7UUF4QnJELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFJdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBR2YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUd6QyxVQUFLLEdBQW9ELFdBQVcsQ0FBQztRQUc5RSxpQkFBWSxHQUFHLElBQUksQ0FBQztJQU1qQixDQUFDO0lBRUosSUFBSSxTQUFTO1FBQ1QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVks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QyxTQUFTLEVBQUUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsRUFBQyxDQUFDO2lCQUNyRjs7MEJBd0JRLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxhQUFhOzRDQXBCekIsU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGtCQUFrQjtnQkFJL0IsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJRyxXQUFXO3NCQURuQixNQUFNO2dCQUlFLEtBQUs7c0JBRGIsZUFBZTt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUM7Z0JBSXRELFlBQVk7c0JBRFgsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBbUJsQyxjQUFjO3NCQUpiLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDOztzQkFDcEMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7O3NCQUNqQyxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQzs7c0JBQ25DLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBVWpELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRU1QVFlfUVVFUlksXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfU1dJUEVfT1BUSU9OUyxcbiAgICB0dWlDbGFtcCxcbiAgICBUdWlJdGVtRGlyZWN0aXZlLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpU3dpcGVEaXJlY3Rpb24sXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogVFVJX1NXSVBFX09QVElPTlMsIHVzZVZhbHVlOiB7dGltZW91dDogMjAwLCB0aHJlc2hvbGQ6IDMwfX1dLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYXJvdXNlbENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSB0cmFuc2xhdGUgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9kcmFnZ2FibGUnKVxuICAgIGRyYWdnYWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBpdGVtc0NvdW50ID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgaW5kZXggPSAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpSXRlbURpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBpdGVtczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pj4gPSBFTVBUWV9RVUVSWTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3RyYW5zaXRpb25lZCcpXG4gICAgdHJhbnNpdGlvbmVkID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICApIHt9XG5cbiAgICBnZXQgdHJhbnNmb3JtKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnRyYW5zaXRpb25lZCA/IHRoaXMuY29tcHV0ZWRUcmFuc2xhdGUgOiB0aGlzLnRyYW5zbGF0ZTtcblxuICAgICAgICByZXR1cm4gYHRyYW5zbGF0ZVgoJHsxMDAgKiB4fSUpYDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWydmYWxzZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyd0cnVlJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWydmYWxzZSddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAuc2lsZW50JywgWyd0cnVlJ10pXG4gICAgb25UcmFuc2l0aW9uZWQodHJhbnNpdGlvbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmVkID0gdHJhbnNpdGlvbmVkO1xuXG4gICAgICAgIGlmICghdHJhbnNpdGlvbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZSA9IHRoaXMuY29tcHV0ZWRUcmFuc2xhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldFN0eWxlKGl0ZW1zQ291bnQ6IG51bWJlcik6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4ge1xuICAgICAgICBjb25zdCBwZXJjZW50ID0gYCR7MTAwIC8gaXRlbXNDb3VudH0lYDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmxleEJhc2lzOiBwZXJjZW50LFxuICAgICAgICAgICAgbWluV2lkdGg6IHBlcmNlbnQsXG4gICAgICAgICAgICBtYXhXaWR0aDogcGVyY2VudCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLmluZGV4ID09PSB0aGlzLml0ZW1zLmxlbmd0aCAtIHRoaXMuaXRlbXNDb3VudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVJbmRleCh0aGlzLmluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgcHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbmRleCh0aGlzLmluZGV4IC0gMSk7XG4gICAgfVxuXG4gICAgaXNEaXNhYmxlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpbmRleCA8IHRoaXMuaW5kZXggfHwgaW5kZXggPiB0aGlzLmluZGV4ICsgdGhpcy5pdGVtc0NvdW50O1xuICAgIH1cblxuICAgIG9uSW50ZXJzZWN0aW9uKHtpbnRlcnNlY3Rpb25SYXRpb306IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGludGVyc2VjdGlvblJhdGlvICYmIGludGVyc2VjdGlvblJhdGlvID49IDAuNSAmJiAhdGhpcy50cmFuc2l0aW9uZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5kZXgodGhpcy5pbmRleCA8IGluZGV4ID8gaW5kZXggLSB0aGlzLml0ZW1zQ291bnQgKyAxIDogaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TY3JvbGwoZGVsdGE6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIGRlbHRhID4gMCA/IHRoaXMubmV4dCgpIDogdGhpcy5wcmV2KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBhbih4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXB1dGVkRHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7Y2xpZW50V2lkdGh9ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBtaW4gPSAxIC0gdGhpcy5pdGVtcy5sZW5ndGggLyB0aGlzLml0ZW1zQ291bnQ7XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGUgPSB0dWlDbGFtcCh4IC8gY2xpZW50V2lkdGggKyB0aGlzLnRyYW5zbGF0ZSwgbWluLCAwKTtcbiAgICB9XG5cbiAgICBvblN3aXBlKGRpcmVjdGlvbjogVHVpU3dpcGVEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMucHJldigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BdXRvc2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUluZGV4KHRoaXMuaW5kZXggPT09IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSA/IDAgOiB0aGlzLmluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29tcHV0ZWRUcmFuc2xhdGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIC10aGlzLmluZGV4IC8gdGhpcy5pdGVtc0NvdW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGNvbXB1dGVkRHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSB8fCB0aGlzLmRyYWdnYWJsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmRleCA9IHR1aUNsYW1wKGluZGV4LCAwLCB0aGlzLml0ZW1zLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQodGhpcy5pbmRleCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcy5jaGFuZ2VzIHwgYXN5bmNcIj48L25nLWNvbnRhaW5lcj5cbjxkaXZcbiAgICBjbGFzcz1cInQtc2Nyb2xsZXJcIlxuICAgICh0dWlDYXJvdXNlbFNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIHdhSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcbiAgICAgICAgd2FJbnRlcnNlY3Rpb25UaHJlc2hvbGQ9XCIwLjVcIlxuICAgICAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtaXRlbXNcIlxuICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIlxuICAgICAgICAgICAgKHR1aUNhcm91c2VsQXV0b3Njcm9sbCk9XCJvbkF1dG9zY3JvbGwoKVwiXG4gICAgICAgICAgICAodHVpUGFuKT1cIm9uUGFuKCRldmVudFswXSlcIlxuICAgICAgICAgICAgKHR1aVN3aXBlKT1cIm9uU3dpcGUoJGV2ZW50LmRpcmVjdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmllbGRzZXRcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWl0ZW1cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKGkpXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdHlsZShpdGVtc0NvdW50KVwiXG4gICAgICAgICAgICAgICAgKHdhSW50ZXJzZWN0aW9uT2JzZXJ2ZWUpPVwib25JbnRlcnNlY3Rpb24oJGV2ZW50WzBdLCBpKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -65,7 +65,7 @@ export class TuiInputDateComponent extends AbstractTuiNullableControl {
65
65
  return this.isMobile && (!!this.mobileCalendar || this.nativePicker);
66
66
  }
67
67
  get nativePicker() {
68
- return this.options.nativePicker;
68
+ return this.options.nativePicker && !!this.mobileCalendar && this.isMobile;
69
69
  }
70
70
  get calendarIcon() {
71
71
  return this.options.icon;
@@ -180,7 +180,7 @@ TuiInputDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
180
180
  inject(TUI_MOBILE_CALENDAR, InjectFlags.Optional)) ||
181
181
  inject(TUI_DROPDOWN_COMPONENT, InjectFlags.SkipSelf),
182
182
  },
183
- ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativePicker\"\n [content]=\"dropdown\"\n [open]=\"open && interactive && !nativePicker\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"filler$ | async as filler\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedFiller(filler || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n appearance=\"icon\"\n automation-id=\"tui-input-date-range__icon\"\n tuiWrapper\n [class.t-icon]=\"!computedDisabled\"\n [src]=\"src\"\n (click)=\"onIconClick()\"\n ></tui-svg>\n <input\n *ngIf=\"isMobile && nativePicker\"\n tuiDate\n class=\"t-native-input\"\n />\n </ng-template>\n\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"type\"\n >\n <tui-calendar\n automation-id=\"tui-input-date__calendar\"\n tuiPreventDefault=\"mousedown\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-button\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"onDayClick(items[0].day)\"\n >\n {{ items[0] }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiCalendarComponent, selector: "tui-calendar", inputs: ["initialView", "month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i2.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i3.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.TuiNativeDateDirective, selector: "input[tuiDate]" }, { type: i5.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { type: i2.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
183
+ ], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n class=\"t-hosted\"\n [canOpen]=\"interactive && !nativePicker\"\n [content]=\"dropdown\"\n [open]=\"open && interactive && !nativePicker\"\n (openChange)=\"onOpenChange($event)\"\n>\n <tui-primitive-textfield\n *tuiLet=\"filler$ | async as filler\"\n automation-id=\"tui-input-date-range__textfield\"\n tuiValueAccessor\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"computedFocusable\"\n [invalid]=\"computedInvalid\"\n [maskito]=\"computedMask\"\n [nativeId]=\"nativeId\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldFiller]=\"getComputedFiller(filler || '')\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n [value]=\"computedValue\"\n (focusedChange)=\"onFocused($event)\"\n (valueChange)=\"onValueChange($event)\"\n >\n <ng-content></ng-content>\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n ></ng-content>\n </tui-primitive-textfield>\n\n <ng-template #iconContent>\n <tui-svg\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n appearance=\"icon\"\n automation-id=\"tui-input-date-range__icon\"\n tuiWrapper\n [class.t-icon]=\"!computedDisabled\"\n [src]=\"src\"\n (click)=\"onIconClick()\"\n ></tui-svg>\n <input\n *ngIf=\"nativePicker\"\n tuiDate\n class=\"t-native-input\"\n />\n </ng-template>\n\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"type\"\n >\n <tui-calendar\n automation-id=\"tui-input-date__calendar\"\n tuiPreventDefault=\"mousedown\"\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n ></tui-calendar>\n <div\n *ngIf=\"items.length === 1\"\n tuiPreventDefault=\"mousedown\"\n class=\"t-button\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"onDayClick(items[0].day)\"\n >\n {{ items[0] }}\n </button>\n </div>\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:left}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-button{display:flex;height:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-base-03)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { type: i1.TuiCalendarComponent, selector: "tui-calendar", inputs: ["initialView", "month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }], directives: [{ type: i2.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i3.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { type: i1.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i1.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.TuiNativeDateDirective, selector: "input[tuiDate]" }, { type: i5.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { type: i2.TuiPreventDefaultDirective, selector: "[tuiPreventDefault]", inputs: ["tuiPreventDefault"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
184
  __decorate([
185
185
  tuiPure
186
186
  ], TuiInputDateComponent.prototype, "computeMaskOptions", null);
@@ -263,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
263
263
  type: HostListener,
264
264
  args: ['click']
265
265
  }], computeMaskOptions: [] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUVKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNILDBCQUEwQixFQUUxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFFYixZQUFZLEVBQ1osMEJBQTBCLEVBRzFCLFlBQVksRUFFWixNQUFNLEVBRU4sUUFBUSxFQUNSLGVBQWUsRUFDZixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBRWxCLDhCQUE4QixHQUtqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFDSCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLHNCQUFz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O3dCQUNuQyw0QkFBNEIsQ0FBQywwQkFBMEIsQ0FBQzt3QkFDeEQ7NEJBQ0ksT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQ0FDbEIsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQ0FDdEQsTUFBTSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUM7eUJBQzNEO3FCQUNKO2lCQUNKOzswQkF1Q1EsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixRQUFROzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxjQUFjOzswQkFFckIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUVqQyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLE1BQU07MkJBQUMsa0JBQWtCOzRDQWxEYixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFNekMsR0FBRztzQkFERixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBc0NGLElBQUk7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBc0Y3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkE0RWIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0RmxhZ3MsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNQVNLSVRPX0RFRkFVTFRfT1BUSU9OUywgTWFza2l0b09wdGlvbnN9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHttYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3J9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEFic3RyYWN0VHVpVmFsdWVUcmFuc2Zvcm1lcixcbiAgICBBTFdBWVNfRkFMU0VfSEFORExFUixcbiAgICBjaGFuZ2VEYXRlU2VwYXJhdG9yLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0RBVEVfU0VQQVJBVE9SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEYXRlQ2xhbXAsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNb250aCxcbiAgICB0dWlOdWxsYWJsZVNhbWUsXG4gICAgdHVpUHVyZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9EUk9QRE9XTl9DT01QT05FTlQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVNpemVMLFxuICAgIFR1aVNpemVTLFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aU5hbWVkRGF5fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfREFURV9NT0RFX01BU0tJVE9fQURBUFRFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUixcbiAgICBUVUlfSU5QVVRfREFURV9PUFRJT05TLFxuICAgIFRVSV9NT0JJTEVfQ0FMRU5EQVIsXG4gICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcixcbiAgICBUdWlJbnB1dERhdGVPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZTpub3QoW211bHRpcGxlXSknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXREYXRlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpRGF0ZVN0cmVhbVdpdGhUcmFuc2Zvcm1lcihUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUiksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9EUk9QRE9XTl9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PlxuICAgICAgICAgICAgICAgIChpbmplY3QoVFVJX0lTX01PQklMRSkgJiZcbiAgICAgICAgICAgICAgICAgICAgaW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIsIEluamVjdEZsYWdzLk9wdGlvbmFsKSkgfHxcbiAgICAgICAgICAgICAgICBpbmplY3QoVFVJX0RST1BET1dOX0NPTVBPTkVOVCwgSW5qZWN0RmxhZ3MuU2tpcFNlbGYpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBtb250aDogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluOiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1pbjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4OiBUdWlEYXkgfCBudWxsID0gdGhpcy5vcHRpb25zLm1heDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIGl0ZW1zOiByZWFkb25seSBUdWlOYW1lZERheVtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IHR5cGUhOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aUFjdGl2ZVpvbmVEaXJlY3RpdmU+O1xuXG4gICAgcmVhZG9ubHkgZmlsbGVyJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUoXG4gICAgICAgIG1hcChkYXRlVGV4dHMgPT5cbiAgICAgICAgICAgIGNoYW5nZURhdGVTZXBhcmF0b3IoZGF0ZVRleHRzW3RoaXMuZGF0ZUZvcm1hdF0sIHRoaXMuZGF0ZVNlcGFyYXRvciksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8UmVjb3JkPHN0cmluZywgYW55Pj4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfU0VQQVJBVE9SKSByZWFkb25seSBkYXRlU2VwYXJhdG9yOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfREFURV9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgb3ZlcnJpZGUgcmVhZG9ubHkgdmFsdWVUcmFuc2Zvcm1lcjogQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyPFR1aURheSB8IG51bGw+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfREFURV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0RGF0ZU9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNkciwgdmFsdWVUcmFuc2Zvcm1lcik7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgZ2V0IHNpemUoKTogVHVpU2l6ZUwgfCBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFNpemUuc2l6ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNaW4oKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluID8/IHRoaXMub3B0aW9ucy5taW47XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWF4KCk6IFR1aURheSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCA/PyB0aGlzLm9wdGlvbnMubWF4O1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkPy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8/IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkPy5mb2N1c2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAoISF0aGlzLm1vYmlsZUNhbGVuZGFyIHx8IHRoaXMubmF0aXZlUGlja2VyKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlUGlja2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5hdGl2ZVBpY2tlcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IFR1aUlucHV0RGF0ZU9wdGlvbnNbJ2ljb24nXSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWNvbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7dmFsdWUsIG5hdGl2ZVZhbHVlLCBhY3RpdmVJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS50b1N0cmluZyh0aGlzLmRhdGVGb3JtYXQsIHRoaXMuZGF0ZVNlcGFyYXRvcikgOiBuYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRBY3RpdmVZZWFyTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICBpZiAodGhpcy5pdGVtc1swXSAmJiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUuZGF5U2FtZSh0aGlzLml0ZW1zWzBdLmRheSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zWzBdLmRpc3BsYXlEYXk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5tb250aCB8fFxuICAgICAgICAgICAgdGhpcy52YWx1ZSB8fFxuICAgICAgICAgICAgdHVpRGF0ZUNsYW1wKHRoaXMuZGVmYXVsdEFjdGl2ZVllYXJNb250aCwgdGhpcy5jb21wdXRlZE1pbiwgdGhpcy5jb21wdXRlZE1heClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8udmFsdWUgfHwgJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXNrKCk6IE1hc2tpdG9PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbVxuICAgICAgICAgICAgPyBNQVNLSVRPX0RFRkFVTFRfT1BUSU9OU1xuICAgICAgICAgICAgOiB0aGlzLmNvbXB1dGVNYXNrT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRNaW4sXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVkTWF4LFxuICAgICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVJdGVtKCk6IFR1aU5hbWVkRGF5IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiAodmFsdWUgJiYgdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5kYXkuZGF5U2FtZSh2YWx1ZSkpKSB8fCBudWxsO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkRmlsbGVyKGZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSA/ICcnIDogZmlsbGVyO1xuICAgIH1cblxuICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbiAgICAvKipcbiAgICAgKiBUT0RPOiBSZW1vdmUgaW4gNC4wXG4gICAgICogQGRlcHJlY2F0ZWQ6IHVzZSB7QGxpbmsgb25JY29uQ2xpY2t9IGluc3RlYWRcbiAgICAgKi9cbiAgICBvbk1vYmlsZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uSWNvbkNsaWNrKCk7XG4gICAgfVxuXG4gICAgb25JY29uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmIHRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWUgJiYgIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9XG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggIT09IERBVEVfRklMTEVSX0xFTkdUSFxuICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgIDogVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKHZhbHVlLCB0aGlzLmRhdGVGb3JtYXQpO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2sodmFsdWU6IFR1aURheSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uTW9udGhDaGFuZ2UobW9udGg6IFR1aU1vbnRoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IoXG4gICAgICAgIG9sZFZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBuZXdWYWx1ZTogVHVpRGF5IHwgbnVsbCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aU51bGxhYmxlU2FtZShvbGRWYWx1ZSwgbmV3VmFsdWUsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjb21wdXRlTWFza09wdGlvbnMoXG4gICAgICAgIG1vZGU6IFR1aURhdGVNb2RlLFxuICAgICAgICBzZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgbWluOiBUdWlEYXksXG4gICAgICAgIG1heDogVHVpRGF5LFxuICAgICk6IE1hc2tpdG9PcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIG1hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcih7XG4gICAgICAgICAgICBzZXBhcmF0b3IsXG4gICAgICAgICAgICBtb2RlOiBUVUlfREFURV9NT0RFX01BU0tJVE9fQURBUFRFUlttb2RlXSxcbiAgICAgICAgICAgIG1pbjogbWluLnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgICAgICBtYXg6IG1heC50b0xvY2FsTmF0aXZlRGF0ZSgpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImludGVyYWN0aXZlICYmICFuYXRpdmVQaWNrZXJcIlxuICAgIFtjb250ZW50XT1cImRyb3Bkb3duXCJcbiAgICBbb3Blbl09XCJvcGVuICYmIGludGVyYWN0aXZlICYmICFuYXRpdmVQaWNrZXJcIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgKnR1aUxldD1cImZpbGxlciQgfCBhc3luYyBhcyBmaWxsZXJcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWRhdGUtcmFuZ2VfX3RleHRmaWVsZFwiXG4gICAgICAgIHR1aVZhbHVlQWNjZXNzb3JcbiAgICAgICAgY2xhc3M9XCJ0LXRleHRmaWVsZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJjb21wdXRlZEZvY3VzYWJsZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFttYXNraXRvXT1cImNvbXB1dGVkTWFza1wiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRGaWxsZXJdPVwiZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyIHx8ICcnKVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImNhbGVuZGFySWNvbiAmJiBpY29uQ29udGVudFwiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wdXRlZFZhbHVlXCJcbiAgICAgICAgKGZvY3VzZWRDaGFuZ2UpPVwib25Gb2N1c2VkKCRldmVudClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ljb25Db250ZW50PlxuICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNhbGVuZGFySWNvbiBhcyBzcmM7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHNpemV9XCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZS1yYW5nZV9faWNvblwiXG4gICAgICAgICAgICB0dWlXcmFwcGVyXG4gICAgICAgICAgICBbY2xhc3MudC1pY29uXT1cIiFjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkljb25DbGljaygpXCJcbiAgICAgICAgPjwvdHVpLXN2Zz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAqbmdJZj1cImlzTW9iaWxlICYmIG5hdGl2ZVBpY2tlclwiXG4gICAgICAgICAgICB0dWlEYXRlXG4gICAgICAgICAgICBjbGFzcz1cInQtbmF0aXZlLWlucHV0XCJcbiAgICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICNkcm9wZG93bj1cInBvbHltb3JwaGV1c1wiXG4gICAgICAgIFtwb2x5bW9ycGhldXNdPVwidHlwZVwiXG4gICAgPlxuICAgICAgICA8dHVpLWNhbGVuZGFyXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWRhdGVfX2NhbGVuZGFyXCJcbiAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0PVwibW91c2Vkb3duXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZEl0ZW1IYW5kbGVyXT1cImRpc2FibGVkSXRlbUhhbmRsZXJcIlxuICAgICAgICAgICAgW21hcmtlckhhbmRsZXJdPVwibWFya2VySGFuZGxlclwiXG4gICAgICAgICAgICBbbWF4XT1cImNvbXB1dGVkTWF4XCJcbiAgICAgICAgICAgIFttaW5dPVwiY29tcHV0ZWRNaW5cIlxuICAgICAgICAgICAgW21vbnRoXT1cImNvbXB1dGVkQWN0aXZlWWVhck1vbnRoXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAoZGF5Q2xpY2spPVwib25EYXlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb250aENoYW5nZSk9XCJvbk1vbnRoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC90dWktY2FsZW5kYXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAxXCJcbiAgICAgICAgICAgIHR1aVByZXZlbnREZWZhdWx0PVwibW91c2Vkb3duXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRheUNsaWNrKGl0ZW1zWzBdLmRheSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW1zWzBdIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUVKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNILDBCQUEwQixFQUUxQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFFYixZQUFZLEVBQ1osMEJBQTBCLEVBRzFCLFlBQVksRUFFWixNQUFNLEVBRU4sUUFBUSxFQUNSLGVBQWUsRUFDZixPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBRWxCLDhCQUE4QixHQUtqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFDSCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLHNCQUFz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blN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIGluamVjdCxcbiAgICBJbmplY3RGbGFncyxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01BU0tJVE9fREVGQVVMVF9PUFRJT05TLCBNYXNraXRvT3B0aW9uc30gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQge21hc2tpdG9EYXRlT3B0aW9uc0dlbmVyYXRvcn0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQWJzdHJhY3RUdWlWYWx1ZVRyYW5zZm9ybWVyLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNoYW5nZURhdGVTZXBhcmF0b3IsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIFRVSV9EQVRFX0ZPUk1BVCxcbiAgICBUVUlfREFURV9TRVBBUkFUT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURhdGVDbGFtcCxcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aU51bGxhYmxlU2FtZSxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX0RST1BET1dOX0NPTVBPTkVOVCxcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpTmFtZWREYXl9IGZyb20gJ0B0YWlnYS11aS9raXQvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICAgIFRVSV9EQVRFX1RFWFRTLFxuICAgIFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSLFxuICAgIFRVSV9JTlBVVF9EQVRFX09QVElPTlMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbiAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyLFxuICAgIFR1aUlucHV0RGF0ZU9wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlOm5vdChbbXVsdGlwbGVdKScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0RGF0ZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB0dWlEYXRlU3RyZWFtV2l0aFRyYW5zZm9ybWVyKFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0RST1BET1dOX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+XG4gICAgICAgICAgICAgICAgKGluamVjdChUVUlfSVNfTU9CSUxFKSAmJlxuICAgICAgICAgICAgICAgICAgICBpbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUiwgSW5qZWN0RmxhZ3MuT3B0aW9uYWwpKSB8fFxuICAgICAgICAgICAgICAgIGluamVjdChUVUlfRFJPUERPV05fQ09NUE9ORU5ULCBJbmplY3RGbGFncy5Ta2lwU2VsZiksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxUdWlEYXk+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5PiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWluO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IFR1aURheSB8IG51bGwgPSB0aGlzLm9wdGlvbnMubWF4O1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1hcmtlckhhbmRsZXI6IFR1aU1hcmtlckhhbmRsZXIgPSBUVUlfREVGQVVMVF9NQVJLRVJfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgaXRlbXM6IHJlYWRvbmx5IFR1aU5hbWVkRGF5W10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgdHlwZSE6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT47XG5cbiAgICByZWFkb25seSBmaWxsZXIkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmRhdGVUZXh0cyQucGlwZShcbiAgICAgICAgbWFwKGRhdGVUZXh0cyA9PlxuICAgICAgICAgICAgY2hhbmdlRGF0ZVNlcGFyYXRvcihkYXRlVGV4dHNbdGhpcy5kYXRlRm9ybWF0XSwgdGhpcy5kYXRlU2VwYXJhdG9yKSxcbiAgICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9TRVBBUkFUT1IpIHJlYWRvbmx5IGRhdGVTZXBhcmF0b3I6IHN0cmluZyxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1ZBTFVFX1RSQU5TRk9STUVSKVxuICAgICAgICBvdmVycmlkZSByZWFkb25seSB2YWx1ZVRyYW5zZm9ybWVyOiBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXI8VHVpRGF5IHwgbnVsbD4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9EQVRFX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXREYXRlT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyLCB2YWx1ZVRyYW5zZm9ybWVyKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1pbigpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4gPz8gdGhpcy5vcHRpb25zLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXgoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4ID8/IHRoaXMub3B0aW9ucy5tYXg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQ/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQ/LmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICghIXRoaXMubW9iaWxlQ2FsZW5kYXIgfHwgdGhpcy5uYXRpdmVQaWNrZXIpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVQaWNrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubmF0aXZlUGlja2VyICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhciAmJiB0aGlzLmlzTW9iaWxlO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogVHVpSW5wdXREYXRlT3B0aW9uc1snaWNvbiddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pY29uO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZUl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKHRoaXMuZGF0ZUZvcm1hdCwgdGhpcy5kYXRlU2VwYXJhdG9yKSA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5kYXlTYW1lKHRoaXMuaXRlbXNbMF0uZGF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbMF0uZGlzcGxheURheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLm1vbnRoIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlIHx8XG4gICAgICAgICAgICB0dWlEYXRlQ2xhbXAodGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoLCB0aGlzLmNvbXB1dGVkTWluLCB0aGlzLmNvbXB1dGVkTWF4KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py52YWx1ZSB8fCAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtXG4gICAgICAgICAgICA/IE1BU0tJVE9fREVGQVVMVF9PUFRJT05TXG4gICAgICAgICAgICA6IHRoaXMuY29tcHV0ZU1hc2tPcHRpb25zKFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlZE1pbixcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRNYXgsXG4gICAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRheS5kYXlTYW1lKHZhbHVlKSkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSAmJiB0aGlzLmludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtID8gJycgOiBmaWxsZXI7XG4gICAgfVxuXG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9sc1xuICAgIC8qKlxuICAgICAqIFRPRE86IFJlbW92ZSBpbiA0LjBcbiAgICAgKiBAZGVwcmVjYXRlZDogdXNlIHtAbGluayBvbkljb25DbGlja30gaW5zdGVhZFxuICAgICAqL1xuICAgIG9uTW9iaWxlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25JY29uQ2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkljb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiAhdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpTnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVNYXNrT3B0aW9ucyhcbiAgICAgICAgbW9kZTogVHVpRGF0ZU1vZGUsXG4gICAgICAgIHNlcGFyYXRvcjogc3RyaW5nLFxuICAgICAgICBtaW46IFR1aURheSxcbiAgICAgICAgbWF4OiBUdWlEYXksXG4gICAgKTogTWFza2l0b09wdGlvbnMge1xuICAgICAgICByZXR1cm4gbWFza2l0b0RhdGVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIG1vZGU6IFRVSV9EQVRFX01PREVfTUFTS0lUT19BREFQVEVSW21vZGVdLFxuICAgICAgICAgICAgbWluOiBtaW4udG9Mb2NhbE5hdGl2ZURhdGUoKSxcbiAgICAgICAgICAgIG1heDogbWF4LnRvTG9jYWxOYXRpdmVEYXRlKCksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZVBpY2tlclwiXG4gICAgW2NvbnRlbnRdPVwiZHJvcGRvd25cIlxuICAgIFtvcGVuXT1cIm9wZW4gJiYgaW50ZXJhY3RpdmUgJiYgIW5hdGl2ZVBpY2tlclwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAqdHVpTGV0PVwiZmlsbGVyJCB8IGFzeW5jIGFzIGZpbGxlclwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZS1yYW5nZV9fdGV4dGZpZWxkXCJcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImNvbXB1dGVkRm9jdXNhYmxlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW21hc2tpdG9dPVwiY29tcHV0ZWRNYXNrXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEZpbGxlcl09XCJnZXRDb21wdXRlZEZpbGxlcihmaWxsZXIgfHwgJycpXCJcbiAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiY2FsZW5kYXJJY29uICYmIGljb25Db250ZW50XCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgICAgICAgICBzZWxlY3Q9XCJpbnB1dFwiXG4gICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNvbnRlbnQ+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FsZW5kYXJJY29uIGFzIHNyYzsgY29udGV4dDogeyRpbXBsaWNpdDogc2l6ZX1cIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1kYXRlLXJhbmdlX19pY29uXCJcbiAgICAgICAgICAgIHR1aVdyYXBwZXJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25dPVwiIWNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKClcIlxuICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICpuZ0lmPVwibmF0aXZlUGlja2VyXCJcbiAgICAgICAgICAgIHR1aURhdGVcbiAgICAgICAgICAgIGNsYXNzPVwidC1uYXRpdmUtaW5wdXRcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2Ryb3Bkb3duPVwicG9seW1vcnBoZXVzXCJcbiAgICAgICAgW3BvbHltb3JwaGV1c109XCJ0eXBlXCJcbiAgICA+XG4gICAgICAgIDx0dWktY2FsZW5kYXJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtZGF0ZV9fY2FsZW5kYXJcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkSXRlbUhhbmRsZXJdPVwiZGlzYWJsZWRJdGVtSGFuZGxlclwiXG4gICAgICAgICAgICBbbWFya2VySGFuZGxlcl09XCJtYXJrZXJIYW5kbGVyXCJcbiAgICAgICAgICAgIFttYXhdPVwiY29tcHV0ZWRNYXhcIlxuICAgICAgICAgICAgW21pbl09XCJjb21wdXRlZE1pblwiXG4gICAgICAgICAgICBbbW9udGhdPVwiY29tcHV0ZWRBY3RpdmVZZWFyTW9udGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKG1vbnRoQ2hhbmdlKT1cIm9uTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3R1aS1jYWxlbmRhcj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtcy5sZW5ndGggPT09IDFcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJtb3VzZWRvd25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGF5Q2xpY2soaXRlbXNbMF0uZGF5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbXNbMF0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuIl19