@acpaas-ui/ngx-forms 6.0.0-beta.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @acpaas-ui/ngx-forms
2
2
 
3
- The forms module is a collection of several forms-related modules, like an autocomplete, a datepicker, a mask, a range slider, a timepicker, etc.
3
+ The forms module is a collection of several forms-related modules, like an autocomplete, a datepicker, a range slider, a timepicker, etc.
4
4
  You can find an overview in the [Modules](#modules) section below.
5
5
 
6
6
  ## Documentation
@@ -9,14 +9,14 @@ Visit our [documentation site](https://antwerp-ui.digipolis.be/) for full how-to
9
9
 
10
10
  ## <a name="modules"></a>Modules
11
11
 
12
- | Name | Description | Documentation |
13
- | ----------- | ------ | -------------------------- |
14
- | `AutoCompleteModule` | This module creates an input field with autocomplete functionality. | [Documentation](src/lib/auto-complete/README.md) |
15
- | `DatepickerModule` | This package allows the user to select a date either by input or by picking one in the calendar flyout. | [Documentation](src/lib/datepicker/README.md) |
16
- | `RangeSliderModule` | This module provides a range slider. | [Documentation](src/lib/range-slider/README.md) |
17
- | `SearchFilterModule` | This package allows the user to use a JIRA-like filter component with remote search capabilities. | [Documentation](src/lib/search-filter/README.md) |
18
- | `TimepickerModule` | This package allows the user set the time either by choosing a slot in the dropdown or by typing in the autocomplete field. | [Documentation](src/lib/timepicker/README.md) |
19
- | `UploadModule` | This module provides a couple of upload components and a specific `Uploader` class. | [Documentation](src/lib/upload/README.md) |
12
+ | Name | Description | Documentation |
13
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
14
+ | `AutoCompleteModule` | This module creates an input field with autocomplete functionality. | [Documentation](src/lib/auto-complete/README.md) |
15
+ | `DatepickerModule` | This package allows the user to select a date either by input or by picking one in the calendar flyout. | [Documentation](src/lib/datepicker/README.md) |
16
+ | `RangeSliderModule` | This module provides a range slider. | [Documentation](src/lib/range-slider/README.md) |
17
+ | `SearchFilterModule` | This package allows the user to use a JIRA-like filter component with remote search capabilities. | [Documentation](src/lib/search-filter/README.md) |
18
+ | `TimepickerModule` | This package allows the user set the time either by choosing a slot in the dropdown or by typing in the autocomplete field. | [Documentation](src/lib/timepicker/README.md) |
19
+ | `UploadModule` | This module provides a couple of upload components and a specific `Uploader` class. | [Documentation](src/lib/upload/README.md) |
20
20
 
21
21
  ## Contributing
22
22
 
@@ -3,7 +3,6 @@ import { CommonModule } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { FlyoutModule } from '@acpaas-ui/ngx-flyout';
5
5
  import { SelectableListModule } from '@acpaas-ui/ngx-selectable-list';
6
- import { MaskModule } from '../mask/mask.module';
7
6
  import { SearchService } from '../shared/services/search.service';
8
7
  import { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';
9
8
  import * as i0 from "@angular/core";
@@ -11,15 +10,15 @@ export class AutoCompleteModule {
11
10
  }
12
11
  /** @nocollapse */ AutoCompleteModule.ɵfac = function AutoCompleteModule_Factory(t) { return new (t || AutoCompleteModule)(); };
13
12
  /** @nocollapse */ AutoCompleteModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: AutoCompleteModule });
14
- /** @nocollapse */ AutoCompleteModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [SearchService], imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule, MaskModule] });
13
+ /** @nocollapse */ AutoCompleteModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [SearchService], imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule] });
15
14
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AutoCompleteModule, [{
16
15
  type: NgModule,
17
16
  args: [{
18
- imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule, MaskModule],
17
+ imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule],
19
18
  declarations: [AutoCompleteComponent],
20
19
  exports: [AutoCompleteComponent],
21
20
  providers: [SearchService],
22
21
  }]
23
22
  }], null, null); })();
24
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AutoCompleteModule, { declarations: [AutoCompleteComponent], imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule, MaskModule], exports: [AutoCompleteComponent] }); })();
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztBQVEzRixNQUFNLE9BQU8sa0JBQWtCOzt1R0FBbEIsa0JBQWtCO21HQUFsQixrQkFBa0I7d0dBRmxCLENBQUMsYUFBYSxDQUFDLFlBSGhCLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFVBQVU7dUZBS3hFLGtCQUFrQjtjQU45QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxDQUFDO2dCQUNwRixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ2hDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUMzQjs7d0ZBQ1ksa0JBQWtCLG1CQUpkLHFCQUFxQixhQUQxQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxVQUFVLGFBRXpFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbHlvdXRNb2R1bGUgfSBmcm9tICdAYWNwYWFzLXVpL25neC1mbHlvdXQnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUxpc3RNb2R1bGUgfSBmcm9tICdAYWNwYWFzLXVpL25neC1zZWxlY3RhYmxlLWxpc3QnO1xuaW1wb3J0IHsgTWFza01vZHVsZSB9IGZyb20gJy4uL21hc2svbWFzay5tb2R1bGUnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBGbHlvdXRNb2R1bGUsIFNlbGVjdGFibGVMaXN0TW9kdWxlLCBNYXNrTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbQXV0b0NvbXBsZXRlQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0F1dG9Db21wbGV0ZUNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1NlYXJjaFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVNb2R1bGUge31cbiJdfQ==
23
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AutoCompleteModule, { declarations: [AutoCompleteComponent], imports: [CommonModule, FormsModule, FlyoutModule, SelectableListModule], exports: [AutoCompleteComponent] }); })();
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBUTNGLE1BQU0sT0FBTyxrQkFBa0I7O3VHQUFsQixrQkFBa0I7bUdBQWxCLGtCQUFrQjt3R0FGbEIsQ0FBQyxhQUFhLENBQUMsWUFIaEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsb0JBQW9CO3VGQUs1RCxrQkFBa0I7Y0FOOUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixDQUFDO2dCQUN4RSxZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ2hDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUMzQjs7d0ZBQ1ksa0JBQWtCLG1CQUpkLHFCQUFxQixhQUQxQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsYUFFN0QscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZseW91dE1vZHVsZSB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LWZseW91dCc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlTGlzdE1vZHVsZSB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LXNlbGVjdGFibGUtbGlzdCc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEZseW91dE1vZHVsZSwgU2VsZWN0YWJsZUxpc3RNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtBdXRvQ29tcGxldGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQXV0b0NvbXBsZXRlQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbU2VhcmNoU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZU1vZHVsZSB7fVxuIl19
@@ -8,80 +8,61 @@ import * as i2 from "@angular/common";
8
8
  import * as i3 from "@angular/forms";
9
9
  import * as i4 from "@acpaas-ui/ngx-flyout";
10
10
  import * as i5 from "@acpaas-ui/ngx-selectable-list";
11
- import * as i6 from "../../../mask/directives/mask.directive";
12
- function AutoCompleteComponent_input_1_Template(rf, ctx) { if (rf & 1) {
13
- const _r4 = i0.ɵɵgetCurrentView();
14
- i0.ɵɵelementStart(0, "input", 4);
15
- i0.ɵɵlistener("focus", function AutoCompleteComponent_input_1_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onFocus()); })("keyArrowDown", function AutoCompleteComponent_input_1_Template_input_keyArrowDown_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onKeyArrowDown()); })("keyArrowUp", function AutoCompleteComponent_input_1_Template_input_keyArrowUp_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.onKeyArrowUp()); })("keyEnter", function AutoCompleteComponent_input_1_Template_input_keyEnter_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onKeyEnter($event)); })("keyEscape", function AutoCompleteComponent_input_1_Template_input_keyEscape_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.onKeyEscape()); })("ngModelChange", function AutoCompleteComponent_input_1_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.query = $event); })("ngModelChange", function AutoCompleteComponent_input_1_Template_input_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.doSearch()); });
16
- i0.ɵɵelementEnd();
17
- } if (rf & 2) {
18
- const ctx_r0 = i0.ɵɵnextContext();
19
- i0.ɵɵproperty("ngModel", ctx_r0.query)("disabled", ctx_r0.isDisabled ? true : null)("id", ctx_r0.id)("placeholder", ctx_r0.placeholder)("autocomplete", ctx_r0.autoComplete);
20
- } }
21
- function AutoCompleteComponent_input_2_Template(rf, ctx) { if (rf & 1) {
22
- const _r12 = i0.ɵɵgetCurrentView();
23
- i0.ɵɵelementStart(0, "input", 5);
24
- i0.ɵɵlistener("focus", function AutoCompleteComponent_input_2_Template_input_focus_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.onFocus()); })("keyArrowDown", function AutoCompleteComponent_input_2_Template_input_keyArrowDown_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onKeyArrowDown()); })("keyArrowUp", function AutoCompleteComponent_input_2_Template_input_keyArrowUp_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onKeyArrowUp()); })("keyEnter", function AutoCompleteComponent_input_2_Template_input_keyEnter_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.onKeyEnter($event)); })("keyEscape", function AutoCompleteComponent_input_2_Template_input_keyEscape_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.onKeyEscape()); })("ngModelChange", function AutoCompleteComponent_input_2_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.query = $event); })("ngModelChange", function AutoCompleteComponent_input_2_Template_input_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.doSearch()); });
25
- i0.ɵɵelementEnd();
26
- } if (rf & 2) {
27
- const ctx_r1 = i0.ɵɵnextContext();
28
- i0.ɵɵproperty("ngModel", ctx_r1.query)("auiMask", ctx_r1.mask)("disabled", ctx_r1.isDisabled ? true : null)("id", ctx_r1.id)("placeholder", ctx_r1.placeholder)("autocomplete", ctx_r1.autoComplete);
29
- } }
30
- function AutoCompleteComponent_div_3_span_1_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "span", 10);
32
- i0.ɵɵelement(1, "span", 11);
33
- i0.ɵɵelementStart(2, "span", 12);
11
+ function AutoCompleteComponent_div_2_span_1_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelementStart(0, "span", 7);
13
+ i0.ɵɵelement(1, "span", 8);
14
+ i0.ɵɵelementStart(2, "span", 9);
34
15
  i0.ɵɵtext(3);
35
16
  i0.ɵɵelementEnd()();
36
17
  } if (rf & 2) {
37
- const ctx_r19 = i0.ɵɵnextContext(2);
18
+ const ctx_r1 = i0.ɵɵnextContext(2);
38
19
  i0.ɵɵadvance(3);
39
- i0.ɵɵtextInterpolate(ctx_r19.loadingText);
20
+ i0.ɵɵtextInterpolate(ctx_r1.loadingText);
40
21
  } }
41
- function AutoCompleteComponent_div_3_span_2_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelementStart(0, "span", 13);
22
+ function AutoCompleteComponent_div_2_span_2_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelementStart(0, "span", 10);
43
24
  i0.ɵɵtext(1);
44
25
  i0.ɵɵelementEnd();
45
26
  } if (rf & 2) {
46
- const ctx_r20 = i0.ɵɵnextContext(2);
27
+ const ctx_r2 = i0.ɵɵnextContext(2);
47
28
  i0.ɵɵadvance(1);
48
- i0.ɵɵtextInterpolate(ctx_r20.searchIncentiveText);
29
+ i0.ɵɵtextInterpolate(ctx_r2.searchIncentiveText);
49
30
  } }
50
- function AutoCompleteComponent_div_3_span_3_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "span", 13);
31
+ function AutoCompleteComponent_div_2_span_3_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "span", 10);
52
33
  i0.ɵɵtext(1);
53
34
  i0.ɵɵelementEnd();
54
35
  } if (rf & 2) {
55
- const ctx_r21 = i0.ɵɵnextContext(2);
36
+ const ctx_r3 = i0.ɵɵnextContext(2);
56
37
  i0.ɵɵadvance(1);
57
- i0.ɵɵtextInterpolate(ctx_r21.noResultsText);
38
+ i0.ɵɵtextInterpolate(ctx_r3.noResultsText);
58
39
  } }
59
- function AutoCompleteComponent_div_3_aui_selectable_list_4_Template(rf, ctx) { if (rf & 1) {
60
- const _r24 = i0.ɵɵgetCurrentView();
61
- i0.ɵɵelementStart(0, "aui-selectable-list", 14);
62
- i0.ɵɵlistener("selected", function AutoCompleteComponent_div_3_aui_selectable_list_4_Template_aui_selectable_list_selected_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.onSelect($event)); });
40
+ function AutoCompleteComponent_div_2_aui_selectable_list_4_Template(rf, ctx) { if (rf & 1) {
41
+ const _r6 = i0.ɵɵgetCurrentView();
42
+ i0.ɵɵelementStart(0, "aui-selectable-list", 11);
43
+ i0.ɵɵlistener("selected", function AutoCompleteComponent_div_2_aui_selectable_list_4_Template_aui_selectable_list_selected_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.onSelect($event)); });
63
44
  i0.ɵɵelementEnd();
64
45
  } if (rf & 2) {
65
- const ctx_r22 = i0.ɵɵnextContext(2);
66
- i0.ɵɵproperty("index", ctx_r22.index)("itemTemplate", ctx_r22.template)("items", ctx_r22.results)("label", ctx_r22.label)("search", ctx_r22.query);
46
+ const ctx_r4 = i0.ɵɵnextContext(2);
47
+ i0.ɵɵproperty("index", ctx_r4.index)("itemTemplate", ctx_r4.template)("items", ctx_r4.results)("label", ctx_r4.label)("search", ctx_r4.query);
67
48
  } }
68
- function AutoCompleteComponent_div_3_Template(rf, ctx) { if (rf & 1) {
69
- i0.ɵɵelementStart(0, "div", 6);
70
- i0.ɵɵtemplate(1, AutoCompleteComponent_div_3_span_1_Template, 4, 1, "span", 7);
71
- i0.ɵɵtemplate(2, AutoCompleteComponent_div_3_span_2_Template, 2, 1, "span", 8);
72
- i0.ɵɵtemplate(3, AutoCompleteComponent_div_3_span_3_Template, 2, 1, "span", 8);
73
- i0.ɵɵtemplate(4, AutoCompleteComponent_div_3_aui_selectable_list_4_Template, 1, 5, "aui-selectable-list", 9);
49
+ function AutoCompleteComponent_div_2_Template(rf, ctx) { if (rf & 1) {
50
+ i0.ɵɵelementStart(0, "div", 3);
51
+ i0.ɵɵtemplate(1, AutoCompleteComponent_div_2_span_1_Template, 4, 1, "span", 4);
52
+ i0.ɵɵtemplate(2, AutoCompleteComponent_div_2_span_2_Template, 2, 1, "span", 5);
53
+ i0.ɵɵtemplate(3, AutoCompleteComponent_div_2_span_3_Template, 2, 1, "span", 5);
54
+ i0.ɵɵtemplate(4, AutoCompleteComponent_div_2_aui_selectable_list_4_Template, 1, 5, "aui-selectable-list", 6);
74
55
  i0.ɵɵelementEnd();
75
56
  } if (rf & 2) {
76
- const ctx_r2 = i0.ɵɵnextContext();
57
+ const ctx_r0 = i0.ɵɵnextContext();
77
58
  i0.ɵɵadvance(1);
78
- i0.ɵɵproperty("ngIf", ctx_r2.focused && ctx_r2.loadingText && ctx_r2.searching);
59
+ i0.ɵɵproperty("ngIf", ctx_r0.focused && ctx_r0.loadingText && ctx_r0.searching);
79
60
  i0.ɵɵadvance(1);
80
- i0.ɵɵproperty("ngIf", ctx_r2.focused && ctx_r2.searchIncentiveText && !ctx_r2.searching && !ctx_r2.query && !ctx_r2.results.length);
61
+ i0.ɵɵproperty("ngIf", ctx_r0.focused && ctx_r0.searchIncentiveText && !ctx_r0.searching && !ctx_r0.query && !ctx_r0.results.length);
81
62
  i0.ɵɵadvance(1);
82
- i0.ɵɵproperty("ngIf", ctx_r2.focused && ctx_r2.noResultsText && !ctx_r2.searching && ctx_r2.query && !ctx_r2.results.length);
63
+ i0.ɵɵproperty("ngIf", ctx_r0.focused && ctx_r0.noResultsText && !ctx_r0.searching && ctx_r0.query && !ctx_r0.results.length);
83
64
  i0.ɵɵadvance(1);
84
- i0.ɵɵproperty("ngIf", ctx_r2.results.length > 0 && !(ctx_r2.focused && ctx_r2.loadingText && ctx_r2.searching));
65
+ i0.ɵɵproperty("ngIf", ctx_r0.results.length > 0 && !(ctx_r0.focused && ctx_r0.loadingText && ctx_r0.searching));
85
66
  } }
86
67
  export class AutoCompleteComponent {
87
68
  constructor(ref, searchService) {
@@ -91,7 +72,6 @@ export class AutoCompleteComponent {
91
72
  this.data = []; // The values to search in when remote search is disabled
92
73
  this.remote = false; // Disable or enamble remote search
93
74
  this.minCharacters = 0;
94
- this.mask = null;
95
75
  this.clearInvalid = false;
96
76
  this.showAllByDefault = false;
97
77
  this.autoComplete = 'off';
@@ -288,28 +268,27 @@ export class AutoCompleteComponent {
288
268
  let _t;
289
269
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.flyout = _t.first);
290
270
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.flyoutZone = _t.first);
291
- } }, inputs: { id: "id", placeholder: "placeholder", description: "description", inputLabel: "inputLabel", results: "results", data: "data", remote: "remote", minCharacters: "minCharacters", mask: "mask", clearInvalid: "clearInvalid", searchIncentiveText: "searchIncentiveText", loadingText: "loadingText", noResultsText: "noResultsText", showAllByDefault: "showAllByDefault", autoComplete: "autoComplete", label: "label", value: "value" }, outputs: { search: "search", select: "select" }, features: [i0.ɵɵProvidersFeature([
271
+ } }, inputs: { id: "id", placeholder: "placeholder", description: "description", inputLabel: "inputLabel", results: "results", data: "data", remote: "remote", minCharacters: "minCharacters", clearInvalid: "clearInvalid", searchIncentiveText: "searchIncentiveText", loadingText: "loadingText", noResultsText: "noResultsText", showAllByDefault: "showAllByDefault", autoComplete: "autoComplete", label: "label", value: "value" }, outputs: { search: "search", select: "select" }, features: [i0.ɵɵProvidersFeature([
292
272
  {
293
273
  provide: NG_VALUE_ACCESSOR,
294
274
  useExisting: forwardRef((() => AutoCompleteComponent)),
295
275
  multi: true,
296
276
  },
297
- ]), i0.ɵɵNgOnChangesFeature], decls: 4, vars: 4, consts: [["aria-haspopup", "listbox", "auiFlyout", "", 1, "m-flyout", "m-flyout--scrollable", "m-flyout--full", "o-auto-complete", 3, "toggleClick", "closed"], ["aria-autocomplete", "list", "auiFlyoutAction", "", "auiSelectableActions", "", "type", "text", "class", "a-input", 3, "ngModel", "disabled", "id", "placeholder", "autocomplete", "focus", "keyArrowDown", "keyArrowUp", "keyEnter", "keyEscape", "ngModelChange", 4, "ngIf"], ["aria-autocomplete", "list", "auiFlyoutAction", "", "auiSelectableActions", "", "type", "text", "class", "a-input", 3, "ngModel", "auiMask", "disabled", "id", "placeholder", "autocomplete", "focus", "keyArrowDown", "keyArrowUp", "keyEnter", "keyEscape", "ngModelChange", 4, "ngIf"], ["auiFlyoutZone", "", 4, "ngIf"], ["aria-autocomplete", "list", "auiFlyoutAction", "", "auiSelectableActions", "", "type", "text", 1, "a-input", 3, "ngModel", "disabled", "id", "placeholder", "autocomplete", "focus", "keyArrowDown", "keyArrowUp", "keyEnter", "keyEscape", "ngModelChange"], ["aria-autocomplete", "list", "auiFlyoutAction", "", "auiSelectableActions", "", "type", "text", 1, "a-input", 3, "ngModel", "auiMask", "disabled", "id", "placeholder", "autocomplete", "focus", "keyArrowDown", "keyArrowUp", "keyEnter", "keyEscape", "ngModelChange"], ["auiFlyoutZone", ""], ["class", "a-spinner a-spinner--s u-margin-xs", "role", "alert", 4, "ngIf"], ["class", "o-auto-complete__info u-text-light u-margin-xs", 4, "ngIf"], [3, "index", "itemTemplate", "items", "label", "search", "selected", 4, "ngIf"], ["role", "alert", 1, "a-spinner", "a-spinner--s", "u-margin-xs"], [1, "a-spinner__circle"], [1, "a-spinner__text"], [1, "o-auto-complete__info", "u-text-light", "u-margin-xs"], [3, "index", "itemTemplate", "items", "label", "search", "selected"]], template: function AutoCompleteComponent_Template(rf, ctx) { if (rf & 1) {
277
+ ]), i0.ɵɵNgOnChangesFeature], decls: 3, vars: 7, consts: [["aria-haspopup", "listbox", "auiFlyout", "", 1, "m-flyout", "m-flyout--scrollable", "m-flyout--full", "o-auto-complete", 3, "toggleClick", "closed"], ["aria-autocomplete", "list", "auiFlyoutAction", "", "auiSelectableActions", "", "type", "text", 1, "a-input", 3, "ngModel", "disabled", "id", "placeholder", "autocomplete", "focus", "keyArrowDown", "keyArrowUp", "keyEnter", "keyEscape", "ngModelChange"], ["auiFlyoutZone", "", 4, "ngIf"], ["auiFlyoutZone", ""], ["class", "a-spinner a-spinner--s u-margin-xs", "role", "alert", 4, "ngIf"], ["class", "o-auto-complete__info u-text-light u-margin-xs", 4, "ngIf"], [3, "index", "itemTemplate", "items", "label", "search", "selected", 4, "ngIf"], ["role", "alert", 1, "a-spinner", "a-spinner--s", "u-margin-xs"], [1, "a-spinner__circle"], [1, "a-spinner__text"], [1, "o-auto-complete__info", "u-text-light", "u-margin-xs"], [3, "index", "itemTemplate", "items", "label", "search", "selected"]], template: function AutoCompleteComponent_Template(rf, ctx) { if (rf & 1) {
298
278
  i0.ɵɵelementStart(0, "div", 0);
299
279
  i0.ɵɵlistener("closed", function AutoCompleteComponent_Template_div_closed_0_listener() { return ctx.onFlyoutClosed(); });
300
- i0.ɵɵtemplate(1, AutoCompleteComponent_input_1_Template, 1, 5, "input", 1);
301
- i0.ɵɵtemplate(2, AutoCompleteComponent_input_2_Template, 1, 6, "input", 2);
302
- i0.ɵɵtemplate(3, AutoCompleteComponent_div_3_Template, 5, 4, "div", 3);
280
+ i0.ɵɵelementStart(1, "input", 1);
281
+ i0.ɵɵlistener("focus", function AutoCompleteComponent_Template_input_focus_1_listener() { return ctx.onFocus(); })("keyArrowDown", function AutoCompleteComponent_Template_input_keyArrowDown_1_listener() { return ctx.onKeyArrowDown(); })("keyArrowUp", function AutoCompleteComponent_Template_input_keyArrowUp_1_listener() { return ctx.onKeyArrowUp(); })("keyEnter", function AutoCompleteComponent_Template_input_keyEnter_1_listener($event) { return ctx.onKeyEnter($event); })("keyEscape", function AutoCompleteComponent_Template_input_keyEscape_1_listener() { return ctx.onKeyEscape(); })("ngModelChange", function AutoCompleteComponent_Template_input_ngModelChange_1_listener($event) { return ctx.query = $event; })("ngModelChange", function AutoCompleteComponent_Template_input_ngModelChange_1_listener() { return ctx.doSearch(); });
282
+ i0.ɵɵelementEnd();
283
+ i0.ɵɵtemplate(2, AutoCompleteComponent_div_2_Template, 5, 4, "div", 2);
303
284
  i0.ɵɵelementEnd();
304
285
  } if (rf & 2) {
305
286
  i0.ɵɵproperty("toggleClick", false);
306
287
  i0.ɵɵadvance(1);
307
- i0.ɵɵproperty("ngIf", !ctx.mask);
308
- i0.ɵɵadvance(1);
309
- i0.ɵɵproperty("ngIf", ctx.mask);
288
+ i0.ɵɵproperty("ngModel", ctx.query)("disabled", ctx.isDisabled ? true : null)("id", ctx.id)("placeholder", ctx.placeholder)("autocomplete", ctx.autoComplete);
310
289
  i0.ɵɵadvance(1);
311
290
  i0.ɵɵproperty("ngIf", !ctx.isDisabled);
312
- } }, dependencies: [i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.FlyoutActionDirective, i4.FlyoutZoneDirective, i4.FlyoutDirective, i5.SelectableListComponent, i5.SelectableActionsDirective, i6.MaskDirective], styles: [".o-auto-complete[_ngcontent-%COMP%], .o-auto-complete__info[_ngcontent-%COMP%]{display:block}"] });
291
+ } }, dependencies: [i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.FlyoutActionDirective, i4.FlyoutZoneDirective, i4.FlyoutDirective, i5.SelectableListComponent, i5.SelectableActionsDirective], styles: [".o-auto-complete[_ngcontent-%COMP%], .o-auto-complete__info[_ngcontent-%COMP%]{display:block}"] });
313
292
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AutoCompleteComponent, [{
314
293
  type: Component,
315
294
  args: [{ selector: 'aui-auto-complete', providers: [
@@ -318,7 +297,7 @@ export class AutoCompleteComponent {
318
297
  useExisting: forwardRef((() => AutoCompleteComponent)),
319
298
  multi: true,
320
299
  },
321
- ], template: "<div\n (closed)=\"onFlyoutClosed()\"\n [toggleClick]=\"false\"\n aria-haspopup=\"listbox\"\n auiFlyout\n class=\"m-flyout m-flyout--scrollable m-flyout--full o-auto-complete\"\n>\n <input\n (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"!mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n class=\"a-input\"\n />\n <input\n (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n *ngIf=\"mask\"\n [auiMask]=\"mask\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n class=\"a-input\"\n />\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n <span *ngIf=\"focused && loadingText && searching\" class=\"a-spinner a-spinner--s u-margin-xs\" role=\"alert\">\n <span class=\"a-spinner__circle\"></span>\n <span class=\"a-spinner__text\">{{ loadingText }}</span>\n </span>\n <span\n *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ searchIncentiveText }}</span\n >\n <span\n *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ noResultsText }}</span\n >\n <aui-selectable-list\n (selected)=\"onSelect($event)\"\n *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\"\n [index]=\"index\"\n [itemTemplate]=\"template\"\n [items]=\"results\"\n [label]=\"label\"\n [search]=\"query\"\n ></aui-selectable-list>\n </div>\n</div>\n", styles: [".o-auto-complete,.o-auto-complete__info{display:block}\n"] }]
300
+ ], template: "<div\n (closed)=\"onFlyoutClosed()\"\n [toggleClick]=\"false\"\n aria-haspopup=\"listbox\"\n auiFlyout\n class=\"m-flyout m-flyout--scrollable m-flyout--full o-auto-complete\"\n>\n <input\n (focus)=\"onFocus()\"\n (keyArrowDown)=\"onKeyArrowDown()\"\n (keyArrowUp)=\"onKeyArrowUp()\"\n (keyEnter)=\"onKeyEnter($event)\"\n (keyEscape)=\"onKeyEscape()\"\n [(ngModel)]=\"query\"\n (ngModelChange)=\"doSearch()\"\n [disabled]=\"isDisabled ? true : null\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n aria-autocomplete=\"list\"\n auiFlyoutAction\n auiSelectableActions\n [autocomplete]=\"autoComplete\"\n type=\"text\"\n class=\"a-input\"\n />\n <div *ngIf=\"!isDisabled\" auiFlyoutZone>\n <span *ngIf=\"focused && loadingText && searching\" class=\"a-spinner a-spinner--s u-margin-xs\" role=\"alert\">\n <span class=\"a-spinner__circle\"></span>\n <span class=\"a-spinner__text\">{{ loadingText }}</span>\n </span>\n <span\n *ngIf=\"focused && searchIncentiveText && !searching && !query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ searchIncentiveText }}</span\n >\n <span\n *ngIf=\"focused && noResultsText && !searching && query && !results.length\"\n class=\"o-auto-complete__info u-text-light u-margin-xs\"\n >{{ noResultsText }}</span\n >\n <aui-selectable-list\n (selected)=\"onSelect($event)\"\n *ngIf=\"results.length > 0 && !(focused && loadingText && searching)\"\n [index]=\"index\"\n [itemTemplate]=\"template\"\n [items]=\"results\"\n [label]=\"label\"\n [search]=\"query\"\n ></aui-selectable-list>\n </div>\n</div>\n", styles: [".o-auto-complete,.o-auto-complete__info{display:block}\n"] }]
322
301
  }], function () { return [{ type: i0.ElementRef }, { type: i1.SearchService }]; }, { id: [{
323
302
  type: Input
324
303
  }], placeholder: [{
@@ -335,8 +314,6 @@ export class AutoCompleteComponent {
335
314
  type: Input
336
315
  }], minCharacters: [{
337
316
  type: Input
338
- }], mask: [{
339
- type: Input
340
317
  }], clearInvalid: [{
341
318
  type: Input
342
319
  }], searchIncentiveText: [{
@@ -367,4 +344,4 @@ export class AutoCompleteComponent {
367
344
  type: ContentChild,
368
345
  args: [TemplateRef, { static: true }]
369
346
  }] }); })();
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2F1dG8tY29tcGxldGUvY29tcG9uZW50cy9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hdXRvLWNvbXBsZXRlL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7SUNUM0UsZ0NBa0JFO0lBakJBLG1LQUFTLGVBQUEsZ0JBQVMsQ0FBQSxJQUFDLG9LQUNILGVBQUEsdUJBQWdCLENBQUEsSUFEYixnS0FFTCxlQUFBLHFCQUFjLENBQUEsSUFGVCxrS0FHUCxlQUFBLHlCQUFrQixDQUFBLElBSFgsOEpBSU4sZUFBQSxvQkFBYSxDQUFBLElBSlAscU5BQUEsdUtBTUYsZUFBQSxrQkFBVSxDQUFBLElBTlI7SUFEckIsaUJBa0JFOzs7SUFaQSxzQ0FBbUIsNkNBQUEsaUJBQUEsbUNBQUEscUNBQUE7Ozs7SUFhckIsZ0NBbUJFO0lBbEJBLHFLQUFTLGVBQUEsaUJBQVMsQ0FBQSxJQUFDLHNLQUNILGVBQUEsd0JBQWdCLENBQUEsSUFEYixrS0FFTCxlQUFBLHNCQUFjLENBQUEs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LHNDQUFpQjs7dUZEZloscUJBQXFCO2NBWmpDLFNBQVM7MkJBQ0UsbUJBQW1CLGFBR2xCO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHNCQUFzQixFQUFDO3dCQUNwRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjt5RkFHUSxFQUFFO2tCQUFWLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUdHLEtBQUs7a0JBQWIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUdJLE1BQU07a0JBQWYsTUFBTTtZQUVHLE1BQU07a0JBQWYsTUFBTTtZQUV1QyxNQUFNO2tCQUFuRCxTQUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDTSxVQUFVO2tCQUEzRCxTQUFTO21CQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUVJLFFBQVE7a0JBQTNELFlBQVk7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBGbHlvdXREaXJlY3RpdmUsIEZseW91dFpvbmVEaXJlY3RpdmUgfSBmcm9tICdAYWNwYWFzLXVpL25neC1mbHlvdXQnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zZWFyY2guc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1hdXRvLWNvbXBsZXRlJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0by1jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b0NvbXBsZXRlQ29tcG9uZW50KSwgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgQElucHV0KCkgaW5wdXRMYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSByZXN1bHRzOiBhbnlbXSA9IFtdOyAvLyBUaGUgdmFsdWVzIGZvciB0aGUgc2VsZWN0YWJsZSBsaXN0XG4gIEBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107IC8vIFRoZSB2YWx1ZXMgdG8gc2VhcmNoIGluIHdoZW4gcmVtb3RlIHNlYXJjaCBpcyBkaXNhYmxlZFxuICBASW5wdXQoKSByZW1vdGUgPSBmYWxzZTsgLy8gRGlzYWJsZSBvciBlbmFtYmxlIHJlbW90ZSBzZWFyY2hcbiAgQElucHV0KCkgbWluQ2hhcmFjdGVycyA9IDA7XG4gIEBJbnB1dCgpIG1hc2s6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIGNsZWFySW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2hJbmNlbnRpdmVUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRpbmdUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5vUmVzdWx0c1RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgc2hvd0FsbEJ5RGVmYXVsdCA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvQ29tcGxldGUgPSAnb2ZmJztcblxuICAvLyBzcGVjaWZ5IHdoaWNoIGxhYmVsL3ZhbHVlIHByb3BzIHRvIHVzZVxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nO1xuXG4gIC8vIEV2ZW50ZW1pdHRlciBmb3Igc2VhcmNodmFsdWUgKHBhcmVudCBvYmplY3Qgc2hvdWxkIHVwZGF0ZSB0aGUgcmVzdWx0cyB3aXRoIHRoaXMgcGFyYW0pXG4gIEBPdXRwdXQoKSBzZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChGbHlvdXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGZseW91dDogRmx5b3V0RGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKEZseW91dFpvbmVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGZseW91dFpvbmU6IEZseW91dFpvbmVEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyBxdWVyeSA9ICcnO1xuICBwdWJsaWMgaW5kZXggPSAtMTsgLy8gaW5kZXggZm9yIGFjdGl2ZSBlbGVtZW50IGluIHNlbGVjdGFibGUgbGlzdCwgYnkgZGVmYXVsdCAtMSAoc28gaXQgc3RhcnRzIGluIHRoZSBpbnB1dCBmaWVsZClcbiAgcHVibGljIHNlbGVjdGVkSXRlbTogYW55ID0gbnVsbDsgLy8ga2VlcCBhIGJhY2t1cCBvZiB0aGUgc2VsZWN0ZWRJdGVtXG4gIHB1YmxpYyBzZWFyY2hpbmcgPSBmYWxzZTsgLy8gdHJhY2sgcmVtb3RlIHNlYXJjaCBzdGF0ZVxuICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVtb3RlVmFsdWUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyB1cGRhdGVNb2RlbCA9IChfOiBhbnkpID0+IHt9O1xuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlID0gJycpIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmRhdGEuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtW3RoaXMudmFsdWVdID09PSB2YWx1ZSk7XG5cbiAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICByZXR1cm4gKHRoaXMucXVlcnkgPSBzZWxlY3RlZFt0aGlzLmxhYmVsXSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlbW90ZSAmJiAhIXZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVtb3RlVmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucXVlcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbCA9IGZuO1xuICB9XG5cbiAgLy8gQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEpICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwICYmICF0aGlzLnF1ZXJ5ICYmIHRoaXMuc2hvd0FsbEJ5RGVmYXVsdCkge1xuICAgICAgdGhpcy5yZXN1bHRzID0gWy4uLnRoaXMuZGF0YV07XG4gICAgfVxuICB9XG5cbiAgLy8gT25DaGFuZ2VzIGludGVyZmFjZVxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghY2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0RhdGEgPSBnZXQoY2hhbmdlcywgJ2RhdGEuY3VycmVudFZhbHVlJywgW10pO1xuICAgIGlmICghaXNFcXVhbChuZXdEYXRhLCBnZXQoY2hhbmdlcywgJ2RhdGEucHJldmlvdXNWYWx1ZScsIFtdKSkpIHtcbiAgICAgIGlmICh0aGlzLnJlbW90ZSkge1xuICAgICAgICB0aGlzLnJlbW90ZVNlYXJjaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2NhbFNlYXJjaCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnJlc3VsdHMgJiYgY2hhbmdlcy5yZXN1bHRzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKGl0ZW06IGFueSkge1xuICAgIHRoaXMucXVlcnkgPSBpdGVtICE9PSBudWxsID8gKHRoaXMubGFiZWwgPyBpdGVtW3RoaXMubGFiZWxdIDogaXRlbSkgOiAnJztcbiAgICB0aGlzLnNlbGVjdC5lbWl0KGl0ZW0pO1xuXG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLmxhYmVsID8gdGhpcy5sYWJlbCA6IG51bGw7XG4gICAgdGhpcy51cGRhdGVNb2RlbChrZXkgPyBpdGVtW2tleV0gfHwgJycgOiBpdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XG4gIH1cblxuICAvKipcbiAgICogdHJpZ2dlcnMgb24gaW5wdXQgdmFsdWUgY2hhbmdlXG4gICAqL1xuICBwdWJsaWMgZG9TZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5pbmRleCA9IC0xOyAvLyByZXNldCBpbmRleFxuICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnJlbW90ZSkge1xuICAgICAgdGhpcy5zZWFyY2guZW1pdCh0aGlzLnF1ZXJ5KTsgLy8gYXNrIGZvciBuZXcgcmVtb3RlIGRhdGFcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2NhbFNlYXJjaCgpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkZseW91dCgpOyAvLyBvcGVuIHRoZSBmbHlvdXQgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZVxuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXJzIG9uIHNlbGVjdGFibGUtbGlzdDpzZWxlY3QgLT4gb25DbGljayBldmVudCBpbiBzZWxlY3RhYmxlLWxpc3RcbiAgICovXG4gIHB1YmxpYyBvblNlbGVjdChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShpdGVtKTtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7IC8vIENsb3NlIHRoZSBmbHlvdXQgbWFudWFsbHlcbiAgfVxuXG4gIHB1YmxpYyBvbkZseW91dENsb3NlZCgpOiB2b2lkIHtcbiAgICAvLyB0aGVyZSBpcyBvbmx5IDEgcmVzdWx0LCBzZWxlY3QgaXRcbiAgICBpZiAodGhpcy5pbmRleCA+PSAwICYmIHRoaXMucmVzdWx0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLm9uU2VsZWN0KHRoaXMucmVzdWx0c1swXSk7XG4gICAgfVxuXG4gICAgLy8gdGhlcmUgaXMgbm8gcXVlcnkgbm9yIHNlbGVjdGVkIGl0ZW0sIGNsZWFyIHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgaWYgKCF0aGlzLnF1ZXJ5ICYmIHRoaXMuaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5vblNlbGVjdChudWxsKTtcbiAgICB9XG5cbiAgICAvLyByZXNldCB0aGUgcXVlcnkgZm9yIGFuIGludmFsaWQgcXVlcnkgaWYgY2xlYXJJbnZhbGlkIGlzIHRydWVcbiAgICBpZiAodGhpcy5jbGVhckludmFsaWQgJiYgdGhpcy5xdWVyeSAmJiAhdGhpcy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuc2VsZWN0ZWRJdGVtID8gKHRoaXMubGFiZWwgPyB0aGlzLnNlbGVjdGVkSXRlbVt0aGlzLmxhYmVsXSA6IHRoaXMuc2VsZWN0ZWRJdGVtKSA6ICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleUFycm93RG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmRleCA8IHRoaXMucmVzdWx0cy5sZW5ndGggLSAxKSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3QoMSk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlBcnJvd1VwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdCgtMSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uS2V5RW50ZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gRG8gbm90IHN1Ym1pdCBmb3JtIHdoZW4gc2VsZWN0aW5nIGFuIGl0ZW0uXG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuaW5kZXggPj0gMCA/IHRoaXMucmVzdWx0c1t0aGlzLmluZGV4XSA6IHRoaXMucXVlcnk7XG5cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShxdWVyeSk7XG4gICAgdGhpcy5jbG9zZUZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RXNjYXBlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VGbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5vcGVuRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkZseW91dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mbHlvdXQpIHtcbiAgICAgIHRoaXMuZmx5b3V0Lm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VGbHlvdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmx5b3V0KSB7XG4gICAgICB0aGlzLmZseW91dC5jbG9zZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGxvY2FsU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0cyA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2godGhpcy5kYXRhLCB7XG4gICAgICBtaW5MZW5ndGg6IHRoaXMubWluQ2hhcmFjdGVycyxcbiAgICAgIGtleTogdGhpcy5sYWJlbCxcbiAgICAgIHF1ZXJ5OiB0aGlzLnF1ZXJ5LFxuICAgICAgc2hvd0FsbEJ5RGVmYXVsdDogdGhpcy5zaG93QWxsQnlEZWZhdWx0LFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucmVzdWx0cy5sZW5ndGggPT09IDEgJiYgdGhpcy5xdWVyeSA9PT0gdGhpcy5yZXN1bHRzWzBdW3RoaXMubGFiZWxdKSB7XG4gICAgICB0aGlzLmluZGV4ID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHJlbW90ZVNlYXJjaCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVtb3RlVmFsdWUgfHwgIXRoaXMuZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5kYXRhLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1bdGhpcy52YWx1ZV0gPT09IHRoaXMucXVlcnk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtID09PSB0aGlzLnF1ZXJ5O1xuICAgIH0pO1xuXG4gICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5sYWJlbCA/IHNlbGVjdGVkW3RoaXMubGFiZWxdIDogc2VsZWN0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLnJlbW90ZVZhbHVlID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsTGlzdChmYWN0b3I6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaW5kZXggKz0gZmFjdG9yO1xuXG4gICAgaWYgKCF0aGlzLmZseW91dFpvbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaUl0ZW1zID0gdGhpcy5mbHlvdXRab25lLmVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7XG4gICAgY29uc3QgbGlIZWlnaHQgPSBsaUl0ZW1zWzFdID8gbGlJdGVtc1sxXS5vZmZzZXRIZWlnaHQgOiBsaUl0ZW1zWzBdLm9mZnNldEhlaWdodDtcbiAgICBjb25zdCB6b25lSGVpZ2h0ID0gdGhpcy5mbHlvdXRab25lLmVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IG9mZnNldCA9IHpvbmVIZWlnaHQgLyBsaUhlaWdodCAvIDI7XG5cbiAgICB0aGlzLmZseW91dFpvbmUuZWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLmluZGV4ICogbGlIZWlnaHQgLSBvZmZzZXQgKiBsaUhlaWdodDtcbiAgfVxufVxuIiwiPGRpdlxuICAoY2xvc2VkKT1cIm9uRmx5b3V0Q2xvc2VkKClcIlxuICBbdG9nZ2xlQ2xpY2tdPVwiZmFsc2VcIlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gIGF1aUZseW91dFxuICBjbGFzcz1cIm0tZmx5b3V0IG0tZmx5b3V0LS1zY3JvbGxhYmxlIG0tZmx5b3V0LS1mdWxsIG8tYXV0by1jb21wbGV0ZVwiXG4+XG4gIDxpbnB1dFxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChrZXlBcnJvd0Rvd24pPVwib25LZXlBcnJvd0Rvd24oKVwiXG4gICAgKGtleUFycm93VXApPVwib25LZXlBcnJvd1VwKClcIlxuICAgIChrZXlFbnRlcik9XCJvbktleUVudGVyKCRldmVudClcIlxuICAgIChrZXlFc2NhcGUpPVwib25LZXlFc2NhcGUoKVwiXG4gICAgWyhuZ01vZGVsKV09XCJxdWVyeVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9TZWFyY2goKVwiXG4gICAgKm5nSWY9XCIhbWFza1wiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgYXVpRmx5b3V0QWN0aW9uXG4gICAgYXVpU2VsZWN0YWJsZUFjdGlvbnNcbiAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9Db21wbGV0ZVwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiYS1pbnB1dFwiXG4gIC8+XG4gIDxpbnB1dFxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChrZXlBcnJvd0Rvd24pPVwib25LZXlBcnJvd0Rvd24oKVwiXG4gICAgKGtleUFycm93VXApPVwib25LZXlBcnJvd1VwKClcIlxuICAgIChrZXlFbnRlcik9XCJvbktleUVudGVyKCRldmVudClcIlxuICAgIChrZXlFc2NhcGUpPVwib25LZXlFc2NhcGUoKVwiXG4gICAgWyhuZ01vZGVsKV09XCJxdWVyeVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9TZWFyY2goKVwiXG4gICAgKm5nSWY9XCJtYXNrXCJcbiAgICBbYXVpTWFza109XCJtYXNrXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICBhdWlGbHlvdXRBY3Rpb25cbiAgICBhdWlTZWxlY3RhYmxlQWN0aW9uc1xuICAgIFthdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3M9XCJhLWlucHV0XCJcbiAgLz5cbiAgPGRpdiAqbmdJZj1cIiFpc0Rpc2FibGVkXCIgYXVpRmx5b3V0Wm9uZT5cbiAgICA8c3BhbiAqbmdJZj1cImZvY3VzZWQgJiYgbG9hZGluZ1RleHQgJiYgc2VhcmNoaW5nXCIgY2xhc3M9XCJhLXNwaW5uZXIgYS1zcGlubmVyLS1zIHUtbWFyZ2luLXhzXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImEtc3Bpbm5lcl9fY2lyY2xlXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJhLXNwaW5uZXJfX3RleHRcIj57eyBsb2FkaW5nVGV4dCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiZm9jdXNlZCAmJiBzZWFyY2hJbmNlbnRpdmVUZXh0ICYmICFzZWFyY2hpbmcgJiYgIXF1ZXJ5ICYmICFyZXN1bHRzLmxlbmd0aFwiXG4gICAgICBjbGFzcz1cIm8tYXV0by1jb21wbGV0ZV9faW5mbyB1LXRleHQtbGlnaHQgdS1tYXJnaW4teHNcIlxuICAgICAgPnt7IHNlYXJjaEluY2VudGl2ZVRleHQgfX08L3NwYW5cbiAgICA+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiZm9jdXNlZCAmJiBub1Jlc3VsdHNUZXh0ICYmICFzZWFyY2hpbmcgJiYgcXVlcnkgJiYgIXJlc3VsdHMubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwiby1hdXRvLWNvbXBsZXRlX19pbmZvIHUtdGV4dC1saWdodCB1LW1hcmdpbi14c1wiXG4gICAgICA+e3sgbm9SZXN1bHRzVGV4dCB9fTwvc3BhblxuICAgID5cbiAgICA8YXVpLXNlbGVjdGFibGUtbGlzdFxuICAgICAgKHNlbGVjdGVkKT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgICAgKm5nSWY9XCJyZXN1bHRzLmxlbmd0aCA+IDAgJiYgIShmb2N1c2VkICYmIGxvYWRpbmdUZXh0ICYmIHNlYXJjaGluZylcIlxuICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgIFtpdGVtVGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgW2l0ZW1zXT1cInJlc3VsdHNcIlxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgIFtzZWFyY2hdPVwicXVlcnlcIlxuICAgID48L2F1aS1zZWxlY3RhYmxlLWxpc3Q+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2F1dG8tY29tcGxldGUvY29tcG9uZW50cy9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hdXRvLWNvbXBsZXRlL2NvbXBvbmVudHMvYXV0by1jb21wbGV0ZS9hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0lDVXpFLCtCQUEwRztJQUN4RywwQkFBdUM7SUFDdkMsK0JBQThCO0lBQUEsWUFBaUI7SUFBQSxpQkFBTyxFQUFBOzs7SUFBeEIsZUFBaUI7SUFBakIsd0NBQWlCOzs7SUFFakQsZ0NBR0c7SUFBQSxZQUF5QjtJQUFBLGlCQUMzQjs7O0lBREUsZUFBeUI7SUFBekIsZ0RBQXlCOzs7SUFFNUIsZ0NBR0c7SUFBQSxZQUFtQjtJQUFBLGlCQUNyQjs7O0lBREUsZUFBbUI7SUFBbkIsMENBQW1COzs7O0lBRXRCLCtDQVFDO0lBUEMsa05BQVksZUFBQSx1QkFBZ0IsQ0FBQSxJQUFDO0lBTzlCLGlCQUFzQjs7O0lBTHJCLG9DQUFlLGlDQUFBLHlCQUFBLHVCQUFBLHdCQUFBOzs7SUFsQm5CLDhCQUF1QztJQUNyQyw4RUFHTztJQUNQLDhFQUlDO0lBQ0QsOEVBSUM7SUFDRCw0R0FRdUI7SUFDekIsaUJBQU07OztJQXZCRyxlQUF5QztJQUF6QywrRUFBeUM7SUFLN0MsZUFBK0U7SUFBL0UsbUlBQStFO0lBSy9FLGVBQXdFO0lBQXhFLDRIQUF3RTtJQU14RSxlQUFrRTtJQUFsRSwrR0FBa0U7O0FEWHpFLE1BQU0sT0FBTyxxQkFBcUI7SUF1Q2hDLFlBQW9CLEdBQWUsRUFBVSxhQUE0QjtRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFsQ2hFLFlBQU8sR0FBVSxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7UUFDMUQsU0FBSSxHQUFVLEVBQUUsQ0FBQyxDQUFDLHlEQUF5RDtRQUMzRSxXQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsbUNBQW1DO1FBQ25ELGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBSXJCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQU05Qix5RkFBeUY7UUFDL0UsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELDREQUE0RDtRQUNsRCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPbEQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLCtGQUErRjtRQUMzRyxpQkFBWSxHQUFRLElBQUksQ0FBQyxDQUFDLG9DQUFvQztRQUM5RCxjQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsNEJBQTRCO1FBQy9DLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUlyQixnQkFBVyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFGd0MsQ0FBQztJQUk3RSxtQ0FBbUM7SUFDNUIsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBRTNFLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM1QztZQUVELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtTQUNGO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELG1DQUFtQztJQUM1QixnQkFBZ0IsQ0FBQyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtQ0FBbUM7SUFDNUIsaUJBQWlCLEtBQUksQ0FBQztJQUV0QixnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDNUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtJQUNmLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7U0FDRjtRQUVELElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsSUFBUztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7SUFDbEQsQ0FBQztJQUVNLGNBQWM7UUFDbkIsb0NBQW9DO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkM7UUFFRCwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO1FBRUQsK0RBQStEO1FBQy9ELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDN0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN4RztJQUNILENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsS0FBWTtRQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyw2Q0FBNkM7UUFFckUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXRFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2xELFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ3hDO1lBRUQsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDM0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNoRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7SUFDaEYsQ0FBQzs7NkdBeFBVLHFCQUFxQjt1R0FBckIscUJBQXFCO29DQTRCbEIsV0FBVzs7Ozs7dUJBSGQsZUFBZTt1QkFDZixtQkFBbUI7Ozs7O2lnQkFsQ25CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGO1FDN0JILDhCQU1DO1FBTEMsaUdBQVUsb0JBQWdCLElBQUM7UUFNM0IsZ0NBaUJFO1FBaEJBLGlHQUFTLGFBQVMsSUFBQyxrR0FDSCxvQkFBZ0IsSUFEYiw4RkFFTCxrQkFBYyxJQUZULGdHQUdQLHNCQUFrQixJQUhYLDRGQUlOLGlCQUFhLElBSlAsZ0lBQUEsb0dBTUYsY0FBVSxJQU5SO1FBRHJCLGlCQWlCRTtRQUNGLHNFQXdCTTtRQUNSLGlCQUFNOztRQWhESixtQ0FBcUI7UUFXbkIsZUFBbUI7UUFBbkIsbUNBQW1CLDBDQUFBLGNBQUEsZ0NBQUEsa0NBQUE7UUFZZixlQUFpQjtRQUFqQixzQ0FBaUI7O3VGRE1aLHFCQUFxQjtjQVpqQyxTQUFTOzJCQUNFLG1CQUFtQixhQUdsQjtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxzQkFBc0IsRUFBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7eUZBR1EsRUFBRTtrQkFBVixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFHRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFHSSxNQUFNO2tCQUFmLE1BQU07WUFFRyxNQUFNO2tCQUFmLE1BQU07WUFFdUMsTUFBTTtrQkFBbkQsU0FBUzttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ00sVUFBVTtrQkFBM0QsU0FBUzttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFSSxRQUFRO2tCQUEzRCxZQUFZO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlLCBGbHlvdXRab25lRGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvc2VhcmNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktYXV0by1jb21wbGV0ZScsXG4gIHN0eWxlVXJsczogWycuL2F1dG8tY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9Db21wbGV0ZUNvbXBvbmVudCksIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlucHV0TGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcmVzdWx0czogYW55W10gPSBbXTsgLy8gVGhlIHZhbHVlcyBmb3IgdGhlIHNlbGVjdGFibGUgbGlzdFxuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdOyAvLyBUaGUgdmFsdWVzIHRvIHNlYXJjaCBpbiB3aGVuIHJlbW90ZSBzZWFyY2ggaXMgZGlzYWJsZWRcbiAgQElucHV0KCkgcmVtb3RlID0gZmFsc2U7IC8vIERpc2FibGUgb3IgZW5hbWJsZSByZW1vdGUgc2VhcmNoXG4gIEBJbnB1dCgpIG1pbkNoYXJhY3RlcnMgPSAwO1xuICBASW5wdXQoKSBjbGVhckludmFsaWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoSW5jZW50aXZlVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBsb2FkaW5nVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBub1Jlc3VsdHNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dBbGxCeURlZmF1bHQgPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gJ29mZic7XG5cbiAgLy8gc3BlY2lmeSB3aGljaCBsYWJlbC92YWx1ZSBwcm9wcyB0byB1c2VcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZztcblxuICAvLyBFdmVudGVtaXR0ZXIgZm9yIHNlYXJjaHZhbHVlIChwYXJlbnQgb2JqZWN0IHNob3VsZCB1cGRhdGUgdGhlIHJlc3VsdHMgd2l0aCB0aGlzIHBhcmFtKVxuICBAT3V0cHV0KCkgc2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoRmx5b3V0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBmbHlvdXQ6IEZseW91dERpcmVjdGl2ZTtcbiAgQFZpZXdDaGlsZChGbHlvdXRab25lRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBmbHlvdXRab25lOiBGbHlvdXRab25lRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgcXVlcnkgPSAnJztcbiAgcHVibGljIGluZGV4ID0gLTE7IC8vIGluZGV4IGZvciBhY3RpdmUgZWxlbWVudCBpbiBzZWxlY3RhYmxlIGxpc3QsIGJ5IGRlZmF1bHQgLTEgKHNvIGl0IHN0YXJ0cyBpbiB0aGUgaW5wdXQgZmllbGQpXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7IC8vIGtlZXAgYSBiYWNrdXAgb2YgdGhlIHNlbGVjdGVkSXRlbVxuICBwdWJsaWMgc2VhcmNoaW5nID0gZmFsc2U7IC8vIHRyYWNrIHJlbW90ZSBzZWFyY2ggc3RhdGVcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlbW90ZVZhbHVlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge31cblxuICBwdWJsaWMgdXBkYXRlTW9kZWwgPSAoXzogYW55KSA9PiB7fTtcblxuICAvLyBDT05UUk9MX1ZBTFVFX0FDQ0VTU09SIGludGVyZmFjZVxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZSA9ICcnKSB7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5kYXRhLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLnZhbHVlXSA9PT0gdmFsdWUpO1xuXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnF1ZXJ5ID0gc2VsZWN0ZWRbdGhpcy5sYWJlbF0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZW1vdGUgJiYgISF2YWx1ZSkge1xuICAgICAgICB0aGlzLnJlbW90ZVZhbHVlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnF1ZXJ5ID0gdmFsdWU7XG4gIH1cblxuICAvLyBDT05UUk9MX1ZBTFVFX0FDQ0VTU09SIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbikge1xuICAgIHRoaXMudXBkYXRlTW9kZWwgPSBmbjtcbiAgfVxuXG4gIC8vIENPTlRST0xfVkFMVUVfQUNDRVNTT1IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHt9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhKSAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMCAmJiAhdGhpcy5xdWVyeSAmJiB0aGlzLnNob3dBbGxCeURlZmF1bHQpIHtcbiAgICAgIHRoaXMucmVzdWx0cyA9IFsuLi50aGlzLmRhdGFdO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9uQ2hhbmdlcyBpbnRlcmZhY2VcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdEYXRhID0gZ2V0KGNoYW5nZXMsICdkYXRhLmN1cnJlbnRWYWx1ZScsIFtdKTtcbiAgICBpZiAoIWlzRXF1YWwobmV3RGF0YSwgZ2V0KGNoYW5nZXMsICdkYXRhLnByZXZpb3VzVmFsdWUnLCBbXSkpKSB7XG4gICAgICBpZiAodGhpcy5yZW1vdGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdGVTZWFyY2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9jYWxTZWFyY2goKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5yZXN1bHRzICYmIGNoYW5nZXMucmVzdWx0cy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnF1ZXJ5ID0gaXRlbSAhPT0gbnVsbCA/ICh0aGlzLmxhYmVsID8gaXRlbVt0aGlzLmxhYmVsXSA6IGl0ZW0pIDogJyc7XG4gICAgdGhpcy5zZWxlY3QuZW1pdChpdGVtKTtcblxuICAgIGlmICghaXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy5sYWJlbCA/IHRoaXMubGFiZWwgOiBudWxsO1xuICAgIHRoaXMudXBkYXRlTW9kZWwoa2V5ID8gaXRlbVtrZXldIHx8ICcnIDogaXRlbSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIHRyaWdnZXJzIG9uIGlucHV0IHZhbHVlIGNoYW5nZVxuICAgKi9cbiAgcHVibGljIGRvU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuaW5kZXggPSAtMTsgLy8gcmVzZXQgaW5kZXhcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5yZW1vdGUpIHtcbiAgICAgIHRoaXMuc2VhcmNoLmVtaXQodGhpcy5xdWVyeSk7IC8vIGFzayBmb3IgbmV3IHJlbW90ZSBkYXRhXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9jYWxTZWFyY2goKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5GbHlvdXQoKTsgLy8gb3BlbiB0aGUgZmx5b3V0IHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiB0cmlnZ2VycyBvbiBzZWxlY3RhYmxlLWxpc3Q6c2VsZWN0IC0+IG9uQ2xpY2sgZXZlbnQgaW4gc2VsZWN0YWJsZS1saXN0XG4gICAqL1xuICBwdWJsaWMgb25TZWxlY3QoaXRlbTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoaXRlbSk7XG4gICAgdGhpcy5jbG9zZUZseW91dCgpOyAvLyBDbG9zZSB0aGUgZmx5b3V0IG1hbnVhbGx5XG4gIH1cblxuICBwdWJsaWMgb25GbHlvdXRDbG9zZWQoKTogdm9pZCB7XG4gICAgLy8gdGhlcmUgaXMgb25seSAxIHJlc3VsdCwgc2VsZWN0IGl0XG4gICAgaWYgKHRoaXMuaW5kZXggPj0gMCAmJiB0aGlzLnJlc3VsdHMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5vblNlbGVjdCh0aGlzLnJlc3VsdHNbMF0pO1xuICAgIH1cblxuICAgIC8vIHRoZXJlIGlzIG5vIHF1ZXJ5IG5vciBzZWxlY3RlZCBpdGVtLCBjbGVhciB0aGUgc2VsZWN0ZWQgaXRlbVxuICAgIGlmICghdGhpcy5xdWVyeSAmJiB0aGlzLmluZGV4IDwgMCkge1xuICAgICAgcmV0dXJuIHRoaXMub25TZWxlY3QobnVsbCk7XG4gICAgfVxuXG4gICAgLy8gcmVzZXQgdGhlIHF1ZXJ5IGZvciBhbiBpbnZhbGlkIHF1ZXJ5IGlmIGNsZWFySW52YWxpZCBpcyB0cnVlXG4gICAgaWYgKHRoaXMuY2xlYXJJbnZhbGlkICYmIHRoaXMucXVlcnkgJiYgIXRoaXMucmVzdWx0cy5sZW5ndGggJiYgdGhpcy5pbmRleCA8IDApIHtcbiAgICAgIHRoaXMucXVlcnkgPSB0aGlzLnNlbGVjdGVkSXRlbSA/ICh0aGlzLmxhYmVsID8gdGhpcy5zZWxlY3RlZEl0ZW1bdGhpcy5sYWJlbF0gOiB0aGlzLnNlbGVjdGVkSXRlbSkgOiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25LZXlBcnJvd0Rvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5kZXggPCB0aGlzLnJlc3VsdHMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zY3JvbGxMaXN0KDEpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5QXJyb3dVcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3QoLTEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleUVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIERvIG5vdCBzdWJtaXQgZm9ybSB3aGVuIHNlbGVjdGluZyBhbiBpdGVtLlxuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmluZGV4ID49IDAgPyB0aGlzLnJlc3VsdHNbdGhpcy5pbmRleF0gOiB0aGlzLnF1ZXJ5O1xuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UocXVlcnkpO1xuICAgIHRoaXMuY2xvc2VGbHlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleUVzY2FwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRmx5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMub3BlbkZseW91dCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW5GbHlvdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmx5b3V0KSB7XG4gICAgICB0aGlzLmZseW91dC5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlRmx5b3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZseW91dCkge1xuICAgICAgdGhpcy5mbHlvdXQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NhbFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3VsdHMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRoaXMuZGF0YSwge1xuICAgICAgbWluTGVuZ3RoOiB0aGlzLm1pbkNoYXJhY3RlcnMsXG4gICAgICBrZXk6IHRoaXMubGFiZWwsXG4gICAgICBxdWVyeTogdGhpcy5xdWVyeSxcbiAgICAgIHNob3dBbGxCeURlZmF1bHQ6IHRoaXMuc2hvd0FsbEJ5RGVmYXVsdCxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnJlc3VsdHMubGVuZ3RoID09PSAxICYmIHRoaXMucXVlcnkgPT09IHRoaXMucmVzdWx0c1swXVt0aGlzLmxhYmVsXSkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdGVTZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlbW90ZVZhbHVlIHx8ICF0aGlzLmRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGF0YS5maW5kKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpdGVtW3RoaXMudmFsdWVdID09PSB0aGlzLnF1ZXJ5O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbSA9PT0gdGhpcy5xdWVyeTtcbiAgICB9KTtcblxuICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMubGFiZWwgPyBzZWxlY3RlZFt0aGlzLmxhYmVsXSA6IHNlbGVjdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdGVWYWx1ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbExpc3QoZmFjdG9yOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4ICs9IGZhY3RvcjtcblxuICAgIGlmICghdGhpcy5mbHlvdXRab25lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlJdGVtcyA9IHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaScpO1xuICAgIGNvbnN0IGxpSGVpZ2h0ID0gbGlJdGVtc1sxXSA/IGxpSXRlbXNbMV0ub2Zmc2V0SGVpZ2h0IDogbGlJdGVtc1swXS5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3Qgem9uZUhlaWdodCA9IHRoaXMuZmx5b3V0Wm9uZS5lbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBvZmZzZXQgPSB6b25lSGVpZ2h0IC8gbGlIZWlnaHQgLyAyO1xuXG4gICAgdGhpcy5mbHlvdXRab25lLmVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5pbmRleCAqIGxpSGVpZ2h0IC0gb2Zmc2V0ICogbGlIZWlnaHQ7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsb3NlZCk9XCJvbkZseW91dENsb3NlZCgpXCJcbiAgW3RvZ2dsZUNsaWNrXT1cImZhbHNlXCJcbiAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICBhdWlGbHlvdXRcbiAgY2xhc3M9XCJtLWZseW91dCBtLWZseW91dC0tc2Nyb2xsYWJsZSBtLWZseW91dC0tZnVsbCBvLWF1dG8tY29tcGxldGVcIlxuPlxuICA8aW5wdXRcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAoa2V5QXJyb3dEb3duKT1cIm9uS2V5QXJyb3dEb3duKClcIlxuICAgIChrZXlBcnJvd1VwKT1cIm9uS2V5QXJyb3dVcCgpXCJcbiAgICAoa2V5RW50ZXIpPVwib25LZXlFbnRlcigkZXZlbnQpXCJcbiAgICAoa2V5RXNjYXBlKT1cIm9uS2V5RXNjYXBlKClcIlxuICAgIFsobmdNb2RlbCldPVwicXVlcnlcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImRvU2VhcmNoKClcIlxuICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkID8gdHJ1ZSA6IG51bGxcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxuICAgIGF1aUZseW91dEFjdGlvblxuICAgIGF1aVNlbGVjdGFibGVBY3Rpb25zXG4gICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvQ29tcGxldGVcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImEtaW5wdXRcIlxuICAvPlxuICA8ZGl2ICpuZ0lmPVwiIWlzRGlzYWJsZWRcIiBhdWlGbHlvdXRab25lPlxuICAgIDxzcGFuICpuZ0lmPVwiZm9jdXNlZCAmJiBsb2FkaW5nVGV4dCAmJiBzZWFyY2hpbmdcIiBjbGFzcz1cImEtc3Bpbm5lciBhLXNwaW5uZXItLXMgdS1tYXJnaW4teHNcIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYS1zcGlubmVyX19jaXJjbGVcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImEtc3Bpbm5lcl9fdGV4dFwiPnt7IGxvYWRpbmdUZXh0IH19PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJmb2N1c2VkICYmIHNlYXJjaEluY2VudGl2ZVRleHQgJiYgIXNlYXJjaGluZyAmJiAhcXVlcnkgJiYgIXJlc3VsdHMubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwiby1hdXRvLWNvbXBsZXRlX19pbmZvIHUtdGV4dC1saWdodCB1LW1hcmdpbi14c1wiXG4gICAgICA+e3sgc2VhcmNoSW5jZW50aXZlVGV4dCB9fTwvc3BhblxuICAgID5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJmb2N1c2VkICYmIG5vUmVzdWx0c1RleHQgJiYgIXNlYXJjaGluZyAmJiBxdWVyeSAmJiAhcmVzdWx0cy5sZW5ndGhcIlxuICAgICAgY2xhc3M9XCJvLWF1dG8tY29tcGxldGVfX2luZm8gdS10ZXh0LWxpZ2h0IHUtbWFyZ2luLXhzXCJcbiAgICAgID57eyBub1Jlc3VsdHNUZXh0IH19PC9zcGFuXG4gICAgPlxuICAgIDxhdWktc2VsZWN0YWJsZS1saXN0XG4gICAgICAoc2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgICAqbmdJZj1cInJlc3VsdHMubGVuZ3RoID4gMCAmJiAhKGZvY3VzZWQgJiYgbG9hZGluZ1RleHQgJiYgc2VhcmNoaW5nKVwiXG4gICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICBbaXRlbXNdPVwicmVzdWx0c1wiXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgW3NlYXJjaF09XCJxdWVyeVwiXG4gICAgPjwvYXVpLXNlbGVjdGFibGUtbGlzdD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -2,10 +2,10 @@ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Inject, I
2
2
  import { Subject } from 'rxjs';
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
5
- import { DateHelper } from '@acpaas-ui/js-date-utils';
5
+ import { DateHelper } from '@acpaas-ui/ngx-utils';
6
6
  import { FlyoutDirective } from '@acpaas-ui/ngx-flyout';
7
7
  import { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_MONTH_LABELS, CALENDAR_WEEKDAY_LABELS, } from '@acpaas-ui/ngx-calendar';
8
- import { DATEPICKER_DATE_MASK, DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR_LABELS, DATEPICKER_SEPARATOR_CHAR, } from '../../datepicker.conf';
8
+ import { DATEPICKER_SEPARATOR_CHAR, DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR_LABELS, } from '../../datepicker.conf';
9
9
  import { IntervalBuilder } from '@acpaas-ui/ngx-utils';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@acpaas-ui/ngx-calendar";
@@ -47,7 +47,6 @@ export class DatepickerComponent {
47
47
  this.placeholder = 'dd/mm/yyyy';
48
48
  // eslint-disable-next-line @angular-eslint/no-output-native
49
49
  this.blur = new EventEmitter();
50
- this.dateMask = { mask: DATEPICKER_DATE_MASK, showMaskOnHover: false };
51
50
  this.isDisabled = false;
52
51
  this.componentDestroyed$ = new Subject();
53
52
  this.onChange = () => undefined;
@@ -271,4 +270,4 @@ export class DatepickerComponent {
271
270
  }], blur: [{
272
271
  type: Output
273
272
  }] }); })();
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RhdGVwaWNrZXIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFJTCxhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsdUJBQXVCLEdBS3hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQiwrQkFBK0IsRUFDL0IsdUJBQXVCLEVBQ3ZCLHlCQUF5QixHQUMxQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBWSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7SUM1QjdELDhCQUE4RTs7O0lBQzlFLDZCQUFrQztJQUNoQyw4QkFPWTtJQUNkLDBCQUFlOztJQU5YLGVBQXFCO0lBQXJCLG1D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YUFBYTt3QkFDdEIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGOztzQkE4QkUsTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixNQUFNO3VCQUFDLHVCQUF1Qjs7c0JBQzlCLE1BQU07dUJBQUMsdUJBQXVCO3VIQTdCYSxNQUFNO2tCQUFuRCxTQUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRTtrQkFBVixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFFTixHQUFHO2tCQURGLEtBQUs7WUFHTixHQUFHO2tCQURGLEtBQUs7WUFFRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFHSSxJQUFJO2tCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL2pzLWRhdGUtdXRpbHMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7XG4gIENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICBDQUxFTkRBUl9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX1dFRUtEQVlfTEFCRUxTLFxuICBDYWxlbmRhclNlcnZpY2UsXG4gIERhdGVwaWNrZXJSZXN1bHQsXG4gIFdlZWtkYXlMYWJlbHNDb25maWcsXG4gIE1vbnRoTGFiZWxzQ29uZmlnLFxufSBmcm9tICdAYWNwYWFzLXVpL25neC1jYWxlbmRhcic7XG5cbmltcG9ydCB7XG4gIERBVEVQSUNLRVJfREFURV9NQVNLLFxuICBEQVRFUElDS0VSX0RFRkFVTFRfRVJST1JfTEFCRUxTLFxuICBEQVRFUElDS0VSX0VSUk9SX0xBQkVMUyxcbiAgREFURVBJQ0tFUl9TRVBBUkFUT1JfQ0hBUixcbn0gZnJvbSAnLi4vLi4vZGF0ZXBpY2tlci5jb25mJztcbmltcG9ydCB7IERhdGVwaWNrZXJWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi4vLi4vdHlwZXMvZGF0ZXBpY2tlci50eXBlcyc7XG5pbXBvcnQgeyBJbnRlcnZhbCwgSW50ZXJ2YWxCdWlsZGVyIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tZm9yd2FyZC1yZWZcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1mb3J3YXJkLXJlZlxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQFZpZXdDaGlsZChGbHlvdXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGZseW91dDogRmx5b3V0RGlyZWN0aXZlO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ2RkL21tL3l5eXknO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBASW5wdXQoKSByYW5nZTogRGF0ZVJhbmdlO1xuICBASW5wdXQoKVxuICBtaW46IERhdGUgfCBudWxsO1xuICBASW5wdXQoKVxuICBtYXg6IERhdGUgfCBudWxsO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6ICdvZmYnO1xuICBASW5wdXQoKSB3ZWVrZGF5TGFiZWxzOiBXZWVrZGF5TGFiZWxzQ29uZmlnO1xuICBASW5wdXQoKSBtb250aExhYmVsczogTW9udGhMYWJlbHNDb25maWc7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZGF0ZU1hc2sgPSB7IG1hc2s6IERBVEVQSUNLRVJfREFURV9NQVNLLCBzaG93TWFza09uSG92ZXI6IGZhbHNlIH07XG4gIHB1YmxpYyBmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sO1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgaW50ZXJ2YWw6IEludGVydmFsLklJbnRlcnZhbDxEYXRlPjtcblxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfTU9OVEhfTEFCRUxTKSBwcml2YXRlIG1vZHVsZU1vbnRoTGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9NT05USF9MQUJFTFMsXG4gICAgQEluamVjdChDQUxFTkRBUl9XRUVLREFZX0xBQkVMUykgcHJpdmF0ZSBtb2R1bGVXZWVrZGF5TGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgICBASW5qZWN0KERBVEVQSUNLRVJfRVJST1JfTEFCRUxTKSBwcml2YXRlIGVycm9yTGFiZWxzID0gREFURVBJQ0tFUl9ERUZBVUxUX0VSUk9SX0xBQkVMUyxcbiAgICBwdWJsaWMgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMud2Vla2RheUxhYmVscyA9IHRoaXMud2Vla2RheUxhYmVscyB8fCB0aGlzLm1vZHVsZVdlZWtkYXlMYWJlbHM7XG4gICAgdGhpcy5tb250aExhYmVscyA9IHRoaXMubW9udGhMYWJlbHMgfHwgdGhpcy5tb2R1bGVNb250aExhYmVscztcbiAgICB0aGlzLmNyZWF0ZUludGVydmFsKCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCB9KTtcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gdmFsdWUuc3BsaXQoREFURVBJQ0tFUl9TRVBBUkFUT1JfQ0hBUikucmV2ZXJzZSgpLmpvaW4oJy0nKTtcbiAgICAgICAgY29uc3QgZGF0ZSA9IERhdGVIZWxwZXIucGFyc2VEYXRlKGZvcm1hdCwgJ3l5eXktTU0tZGQnKTtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIENoYW5nZSB2YWx1ZSB3aXRoIG9yaWdpbmFsIHZhbHVlIChhbmQgbm90IG51bGwgb3IgJycpIHNvIHdlIGNhbiBhZGQgYW4gZXJyb3IgaW4gdGhlIHZhbGlkYXRlIGZ1bmN0aW9uXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLm1pbiB8fCBjaGFuZ2VzLm1heCkge1xuICAgICAgdGhpcy5jcmVhdGVJbnRlcnZhbCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW50ZXJ2YWwoKSB7XG4gICAgaWYgKCF0aGlzLm1pbiAmJiAhdGhpcy5tYXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gQ3JlYXRlIGFuIGludGVydmFsIGlmIG1pbi9tYXggaXMgZmlsbGVkIGluXG4gICAgdGhpcy5pbnRlcnZhbCA9IEludGVydmFsQnVpbGRlci5kYXRlSW50ZXJ2YWwoXG4gICAgICB0aGlzLm1pbiA/IG5ldyBEYXRlKHRoaXMubWluKSA6IG51bGwsXG4gICAgICB0aGlzLm1heCA/IG5ldyBEYXRlKHRoaXMubWF4KSA6IG51bGxcbiAgICApXG4gICAgICAubm90KClcbiAgICAgIC5idWlsZCgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9XG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgID8gdGhpcy5pc0lTT0RhdGVGb3JtYXQodmFsdWUpXG4gICAgICAgICAgPyBuZXcgRGF0ZSh2YWx1ZSlcbiAgICAgICAgICA6IERhdGVIZWxwZXIucGFyc2VEYXRlKHZhbHVlLCAnZGQvTU0veXl5eScpXG4gICAgICAgIDogdmFsdWU7XG4gICAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuc2VsZWN0ZWREYXRlID8gdGhpcy5mb3JtYXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlKSA6ICcnO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZGF0ZVN0cmluZyk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHJlczogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgaWYgKGlzRGlzYWJsZWQgJiYgdGhpcy5mb3JtQ29udHJvbC5lbmFibGVkKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIGlmICghaXNEaXNhYmxlZCAmJiB0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGF0ZUZyb21DYWxlbmRhcihyZXN1bHQ6IERhdGVwaWNrZXJSZXN1bHQpOiB2b2lkIHtcbiAgICBpZiAocmVzdWx0LmNvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0RGF0ZShyZXN1bHQuZGF0ZSkpO1xuICAgICAgdGhpcy5mbHlvdXQuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGF0ZUhlbHBlci5mb3JtYXREYXRlKGRhdGUsICdERC9NTS9ZWVlZJywge1xuICAgICAgbGVhZGluZ1plcm86IHRydWUsXG4gICAgICBtb250aExhYmVsczogdGhpcy5tb250aExhYmVscyxcbiAgICAgIHdlZWtkYXlMYWJlbHM6IHRoaXMud2Vla2RheUxhYmVscyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjdHJsOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiBEYXRlcGlja2VyVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gbm8gZXJyb3Igb24gZW1wdHkgdmFsdWUgKGFkZCByZXF1aXJlZCB2YWxpZGF0b3IgaW4gYXBwKVxuICAgIGlmIChjdHJsLnZhbHVlID09PSAnJyB8fCBjdHJsLnZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB0aHJvdyBmb3JtYXQgZXJyb3IgaWYgbm8gdmFsaWQgZGF0ZSB3YXMgcHJvdmlkZWRcbiAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUoY3RybC52YWx1ZSk7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb3JtYXQ6IHRoaXMuZXJyb3JMYWJlbHMuRVJST1JTX0lOVkFMSURfREFURSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gbm8gZXJyb3IgaWYgdmFsaWQgZGF0ZSBhbiBubyByYW5nZSBwcm92aWRlZFxuICAgIGlmICghdGhpcy5yYW5nZSB8fCAhdGhpcy5yYW5nZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHRocm93IGVycm9yIHdoZW4gb3V0IG9mIHJhbmdlXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5nZXRSYW5nZUZvckRhdGUoZGF0ZSwgdGhpcy5yYW5nZSk7XG5cbiAgICByZXR1cm4gcmFuZ2UuaW5kZXhPZihkYXRlLmdldERhdGUoKSkgPj0gMFxuICAgICAgPyB7XG4gICAgICAgICAgcmFuZ2U6IHRoaXMuZXJyb3JMYWJlbHMuRVJST1JTX0lOVkFMSURfUkFOR0UsXG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCbHVyKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ibHVyLmVtaXQoZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoZSk7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlOiAocmVzOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBpc0lTT0RhdGVGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXFxkezR9LVxcZHsyfS1cXGR7Mn1ULiovKTtcbiAgfVxufVxuIiwiPGRpdiBhcmlhLWhhc3BvcHVwPVwiZ3JpZFwiIGF1aUZseW91dCBjbGFzcz1cImF1aS1kYXRlcGlja2VyIGEtaW5wdXQgaGFzLWljb24tcmlnaHRcIj5cbiAgPGxhYmVsIGNsYXNzPVwiYS1pbnB1dF9fbGFiZWxcIiBmb3I9XCJpZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPHNtYWxsIGNsYXNzPVwiYS1pbnB1dF9fZGVzY3JpcHRpb25cIiBpZD1cImlkXCI+IHt7IGRlc2NyaXB0aW9uIH19PC9zbWFsbD5cbiAgPGRpdiBjbGFzcz1cImEtaW5wdXRfX3dyYXBwZXJcIj5cbiAgICA8aW5wdXRcbiAgICAgIChibHVyKT1cImhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgIGlkPVwie3sgaWQgfX1cIlxuICAgICAgbGFiZWw9XCJQaWNrIGRhdGVcIlxuICAgICAgZGVzY3JpcHRpb249XCJEZXNjcmlwdGlvblwiXG4gICAgICBuYW1lPVwie3sgbmFtZSB9fVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICAgIDxhdWktaWNvbiAqbmdJZj1cImlzRGlzYWJsZWRcIiBuYW1lPVwiYWktY2FsZW5kYXItM1wiIHJvbGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIi8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Rpc2FibGVkXCI+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgYXVpRmx5b3V0QWN0aW9uXG4gICAgICAgIFtvcGVuT25Gb2N1c109XCJmYWxzZVwiXG4gICAgICAgIG5hbWU9XCJhaS1jYWxlbmRhci0zXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiaXMtY2xpY2thYmxlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEaXNhYmxlZFwiPlxuICAgICAgPGRpdiBhdWlGbHlvdXRab25lIGNsYXNzPVwibS1kYXRlcGlja2VyIG0tZGF0ZXBpY2tlci0tZml4ZWRcIiByb2xlPVwiZGlhbG9nXCI+XG4gICAgICAgIDxhdWktY2FsZW5kYXJcbiAgICAgICAgICAoc2VsZWN0RGF0ZSk9XCJzZWxlY3REYXRlRnJvbUNhbGVuZGFyKCRldmVudClcIlxuICAgICAgICAgIFtyYW5nZV09XCJyYW5nZVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbFwiXG4gICAgICAgICAgW3dlZWtkYXlMYWJlbHNdPVwid2Vla2RheUxhYmVsc1wiXG4gICAgICAgICAgW21vbnRoTGFiZWxzXT1cIm1vbnRoTGFiZWxzXCJcbiAgICAgICAgPjwvYXVpLWNhbGVuZGFyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2RhdGVwaWNrZXIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFJTCxhQUFhLEVBQ2IsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsdUJBQXVCLEdBS3hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0IsdUJBQXVCLEdBQ3hCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFZLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztJQzNCN0QsOEJBQThFOzs7SUFDOUUsNkJBQWtDO0lBQ2hDLDhCQU9ZO0lBQ2QsMEJBQWU7O0lBTlgsZUFBcUI7SUFBckIsbUNBQXFCOzs7O0lBUXpC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O2lCQUNGOztzQkE2QkUsTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixNQUFNO3VCQUFDLHVCQUF1Qjs7c0JBQzlCLE1BQU07dUJBQUMsdUJBQXVCO3VIQTVCYSxNQUFNO2tCQUFuRCxTQUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRTtrQkFBVixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFFTixHQUFHO2tCQURGLEtBQUs7WUFHTixHQUFHO2tCQURGLEtBQUs7WUFFRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFHSSxJQUFJO2tCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5pbXBvcnQgeyBGbHlvdXREaXJlY3RpdmUgfSBmcm9tICdAYWNwYWFzLXVpL25neC1mbHlvdXQnO1xuaW1wb3J0IHtcbiAgQ0FMRU5EQVJfREVGQVVMVF9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gIENBTEVOREFSX01PTlRIX0xBQkVMUyxcbiAgQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMsXG4gIENhbGVuZGFyU2VydmljZSxcbiAgRGF0ZXBpY2tlclJlc3VsdCxcbiAgV2Vla2RheUxhYmVsc0NvbmZpZyxcbiAgTW9udGhMYWJlbHNDb25maWcsXG59IGZyb20gJ0BhY3BhYXMtdWkvbmd4LWNhbGVuZGFyJztcblxuaW1wb3J0IHtcbiAgREFURVBJQ0tFUl9TRVBBUkFUT1JfQ0hBUixcbiAgREFURVBJQ0tFUl9ERUZBVUxUX0VSUk9SX0xBQkVMUyxcbiAgREFURVBJQ0tFUl9FUlJPUl9MQUJFTFMsXG59IGZyb20gJy4uLy4uL2RhdGVwaWNrZXIuY29uZic7XG5pbXBvcnQgeyBEYXRlcGlja2VyVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4uLy4uL3R5cGVzL2RhdGVwaWNrZXIudHlwZXMnO1xuaW1wb3J0IHsgSW50ZXJ2YWwsIEludGVydmFsQnVpbGRlciB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWZvcndhcmQtcmVmXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tZm9yd2FyZC1yZWZcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBWaWV3Q2hpbGQoRmx5b3V0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBmbHlvdXQ6IEZseW91dERpcmVjdGl2ZTtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdkZC9tbS95eXl5JztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcbiAgQElucHV0KCkgcmFuZ2U6IERhdGVSYW5nZTtcbiAgQElucHV0KClcbiAgbWluOiBEYXRlIHwgbnVsbDtcbiAgQElucHV0KClcbiAgbWF4OiBEYXRlIHwgbnVsbDtcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiAnb2ZmJztcbiAgQElucHV0KCkgd2Vla2RheUxhYmVsczogV2Vla2RheUxhYmVsc0NvbmZpZztcbiAgQElucHV0KCkgbW9udGhMYWJlbHM6IE1vbnRoTGFiZWxzQ29uZmlnO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgcHVibGljIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IERhdGU7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBpbnRlcnZhbDogSW50ZXJ2YWwuSUludGVydmFsPERhdGU+O1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVzdHJveWVkJDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDQUxFTkRBUl9NT05USF9MQUJFTFMpIHByaXZhdGUgbW9kdWxlTW9udGhMYWJlbHMgPSBDQUxFTkRBUl9ERUZBVUxUX01PTlRIX0xBQkVMUyxcbiAgICBASW5qZWN0KENBTEVOREFSX1dFRUtEQVlfTEFCRUxTKSBwcml2YXRlIG1vZHVsZVdlZWtkYXlMYWJlbHMgPSBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICAgIEBJbmplY3QoREFURVBJQ0tFUl9FUlJPUl9MQUJFTFMpIHByaXZhdGUgZXJyb3JMYWJlbHMgPSBEQVRFUElDS0VSX0RFRkFVTFRfRVJST1JfTEFCRUxTLFxuICAgIHB1YmxpYyBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy53ZWVrZGF5TGFiZWxzID0gdGhpcy53ZWVrZGF5TGFiZWxzIHx8IHRoaXMubW9kdWxlV2Vla2RheUxhYmVscztcbiAgICB0aGlzLm1vbnRoTGFiZWxzID0gdGhpcy5tb250aExhYmVscyB8fCB0aGlzLm1vZHVsZU1vbnRoTGFiZWxzO1xuICAgIHRoaXMuY3JlYXRlSW50ZXJ2YWwoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkIH0pO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSB2YWx1ZS5zcGxpdChEQVRFUElDS0VSX1NFUEFSQVRPUl9DSEFSKS5yZXZlcnNlKCkuam9pbignLScpO1xuICAgICAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUoZm9ybWF0LCAneXl5eS1NTS1kZCcpO1xuICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGRhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQ2hhbmdlIHZhbHVlIHdpdGggb3JpZ2luYWwgdmFsdWUgKGFuZCBub3QgbnVsbCBvciAnJykgc28gd2UgY2FuIGFkZCBhbiBlcnJvciBpbiB0aGUgdmFsaWRhdGUgZnVuY3Rpb25cbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMubWluIHx8IGNoYW5nZXMubWF4KSB7XG4gICAgICB0aGlzLmNyZWF0ZUludGVydmFsKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcnZhbCgpIHtcbiAgICBpZiAoIXRoaXMubWluICYmICF0aGlzLm1heCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDcmVhdGUgYW4gaW50ZXJ2YWwgaWYgbWluL21heCBpcyBmaWxsZWQgaW5cbiAgICB0aGlzLmludGVydmFsID0gSW50ZXJ2YWxCdWlsZGVyLmRhdGVJbnRlcnZhbChcbiAgICAgIHRoaXMubWluID8gbmV3IERhdGUodGhpcy5taW4pIDogbnVsbCxcbiAgICAgIHRoaXMubWF4ID8gbmV3IERhdGUodGhpcy5tYXgpIDogbnVsbFxuICAgIClcbiAgICAgIC5ub3QoKVxuICAgICAgLmJ1aWxkKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID1cbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB0aGlzLmlzSVNPRGF0ZUZvcm1hdCh2YWx1ZSlcbiAgICAgICAgICA/IG5ldyBEYXRlKHZhbHVlKVxuICAgICAgICAgIDogRGF0ZUhlbHBlci5wYXJzZURhdGUodmFsdWUsICdkZC9NTS95eXl5JylcbiAgICAgICAgOiB2YWx1ZTtcbiAgICBjb25zdCBkYXRlU3RyaW5nID0gdGhpcy5zZWxlY3RlZERhdGUgPyB0aGlzLmZvcm1hdERhdGUodGhpcy5zZWxlY3RlZERhdGUpIDogJyc7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRlU3RyaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAocmVzOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCAmJiB0aGlzLmZvcm1Db250cm9sLmVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2UgaWYgKCFpc0Rpc2FibGVkICYmIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REYXRlRnJvbUNhbGVuZGFyKHJlc3VsdDogRGF0ZXBpY2tlclJlc3VsdCk6IHZvaWQge1xuICAgIGlmIChyZXN1bHQuY29tcGxldGUpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXREYXRlKHJlc3VsdC5kYXRlKSk7XG4gICAgICB0aGlzLmZseW91dC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBEYXRlSGVscGVyLmZvcm1hdERhdGUoZGF0ZSwgJ0REL01NL1lZWVknLCB7XG4gICAgICBsZWFkaW5nWmVybzogdHJ1ZSxcbiAgICAgIG1vbnRoTGFiZWxzOiB0aGlzLm1vbnRoTGFiZWxzLFxuICAgICAgd2Vla2RheUxhYmVsczogdGhpcy53ZWVrZGF5TGFiZWxzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGN0cmw6IFVudHlwZWRGb3JtQ29udHJvbCk6IERhdGVwaWNrZXJWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICAvLyBubyBlcnJvciBvbiBlbXB0eSB2YWx1ZSAoYWRkIHJlcXVpcmVkIHZhbGlkYXRvciBpbiBhcHApXG4gICAgaWYgKGN0cmwudmFsdWUgPT09ICcnIHx8IGN0cmwudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHRocm93IGZvcm1hdCBlcnJvciBpZiBubyB2YWxpZCBkYXRlIHdhcyBwcm92aWRlZFxuICAgIGNvbnN0IGRhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZShjdHJsLnZhbHVlKTtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvcm1hdDogdGhpcy5lcnJvckxhYmVscy5FUlJPUlNfSU5WQUxJRF9EQVRFLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBubyBlcnJvciBpZiB2YWxpZCBkYXRlIGFuIG5vIHJhbmdlIHByb3ZpZGVkXG4gICAgaWYgKCF0aGlzLnJhbmdlIHx8ICF0aGlzLnJhbmdlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gdGhyb3cgZXJyb3Igd2hlbiBvdXQgb2YgcmFuZ2VcbiAgICBjb25zdCByYW5nZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmdldFJhbmdlRm9yRGF0ZShkYXRlLCB0aGlzLnJhbmdlKTtcblxuICAgIHJldHVybiByYW5nZS5pbmRleE9mKGRhdGUuZ2V0RGF0ZSgpKSA+PSAwXG4gICAgICA/IHtcbiAgICAgICAgICByYW5nZTogdGhpcy5lcnJvckxhYmVscy5FUlJPUlNfSU5WQUxJRF9SQU5HRSxcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUJsdXIoZTogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXIuZW1pdChlKTtcbiAgICB0aGlzLm9uVG91Y2hlZChlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uVG91Y2hlZDogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGlzSVNPRGF0ZUZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9cXGR7NH0tXFxkezJ9LVxcZHsyfVQuKi8pO1xuICB9XG59XG4iLCI8ZGl2IGFyaWEtaGFzcG9wdXA9XCJncmlkXCIgYXVpRmx5b3V0IGNsYXNzPVwiYXVpLWRhdGVwaWNrZXIgYS1pbnB1dCBoYXMtaWNvbi1yaWdodFwiPlxuICA8bGFiZWwgY2xhc3M9XCJhLWlucHV0X19sYWJlbFwiIGZvcj1cImlkXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICA8c21hbGwgY2xhc3M9XCJhLWlucHV0X19kZXNjcmlwdGlvblwiIGlkPVwiaWRcIj4ge3sgZGVzY3JpcHRpb24gfX08L3NtYWxsPlxuICA8ZGl2IGNsYXNzPVwiYS1pbnB1dF9fd3JhcHBlclwiPlxuICAgIDxpbnB1dFxuICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgaWQ9XCJ7eyBpZCB9fVwiXG4gICAgICBsYWJlbD1cIlBpY2sgZGF0ZVwiXG4gICAgICBkZXNjcmlwdGlvbj1cIkRlc2NyaXB0aW9uXCJcbiAgICAgIG5hbWU9XCJ7eyBuYW1lIH19XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgIC8+XG4gICAgPGF1aS1pY29uICpuZ0lmPVwiaXNEaXNhYmxlZFwiIG5hbWU9XCJhaS1jYWxlbmRhci0zXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiLz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRGlzYWJsZWRcIj5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBhdWlGbHlvdXRBY3Rpb25cbiAgICAgICAgW29wZW5PbkZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgbmFtZT1cImFpLWNhbGVuZGFyLTNcIlxuICAgICAgICBjbGFzc05hbWU9XCJpcy1jbGlja2FibGVcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Rpc2FibGVkXCI+XG4gICAgICA8ZGl2IGF1aUZseW91dFpvbmUgY2xhc3M9XCJtLWRhdGVwaWNrZXIgbS1kYXRlcGlja2VyLS1maXhlZFwiIHJvbGU9XCJkaWFsb2dcIj5cbiAgICAgICAgPGF1aS1jYWxlbmRhclxuICAgICAgICAgIChzZWxlY3REYXRlKT1cInNlbGVjdERhdGVGcm9tQ2FsZW5kYXIoJGV2ZW50KVwiXG4gICAgICAgICAgW3JhbmdlXT1cInJhbmdlXCJcbiAgICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgW2ludGVydmFsXT1cImludGVydmFsXCJcbiAgICAgICAgICBbd2Vla2RheUxhYmVsc109XCJ3ZWVrZGF5TGFiZWxzXCJcbiAgICAgICAgICBbbW9udGhMYWJlbHNdPVwibW9udGhMYWJlbHNcIlxuICAgICAgICA+PC9hdWktY2FsZW5kYXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -5,5 +5,4 @@ export const DATEPICKER_DEFAULT_ERROR_LABELS = {
5
5
  ERRORS_INVALID_RANGE: 'INVALID_RANGE',
6
6
  };
7
7
  export const DATEPICKER_SEPARATOR_CHAR = '/';
8
- export const DATEPICKER_DATE_MASK = `99${DATEPICKER_SEPARATOR_CHAR}99${DATEPICKER_SEPARATOR_CHAR}9999`;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb25mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29uZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUF3QixhQUFhLENBQUMsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRztJQUM3QyxtQkFBbUIsRUFBRSxjQUFjO0lBQ25DLG9CQUFvQixFQUFFLGVBQWU7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLHlCQUF5QixLQUFLLHlCQUF5QixNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckVycm9yTGFiZWxzIH0gZnJvbSAnLi90eXBlcy9kYXRlcGlja2VyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IERBVEVQSUNLRVJfRVJST1JfTEFCRUxTID0gbmV3IEluamVjdGlvblRva2VuPERhdGVwaWNrZXJFcnJvckxhYmVscz4oJ2Vycm9yTGFiZWxzJyk7XG5cbmV4cG9ydCBjb25zdCBEQVRFUElDS0VSX0RFRkFVTFRfRVJST1JfTEFCRUxTID0ge1xuICBFUlJPUlNfSU5WQUxJRF9EQVRFOiAnSU5WQUxJRF9EQVRFJyxcbiAgRVJST1JTX0lOVkFMSURfUkFOR0U6ICdJTlZBTElEX1JBTkdFJyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFUElDS0VSX1NFUEFSQVRPUl9DSEFSID0gJy8nO1xuZXhwb3J0IGNvbnN0IERBVEVQSUNLRVJfREFURV9NQVNLID0gYDk5JHtEQVRFUElDS0VSX1NFUEFSQVRPUl9DSEFSfTk5JHtEQVRFUElDS0VSX1NFUEFSQVRPUl9DSEFSfTk5OTlgO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb25mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29uZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUF3QixhQUFhLENBQUMsQ0FBQztBQUVoRyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRztJQUM3QyxtQkFBbUIsRUFBRSxjQUFjO0lBQ25DLG9CQUFvQixFQUFFLGVBQWU7Q0FDdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlcGlja2VyRXJyb3JMYWJlbHMgfSBmcm9tICcuL3R5cGVzL2RhdGVwaWNrZXIudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgREFURVBJQ0tFUl9FUlJPUl9MQUJFTFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0ZXBpY2tlckVycm9yTGFiZWxzPignZXJyb3JMYWJlbHMnKTtcblxuZXhwb3J0IGNvbnN0IERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMgPSB7XG4gIEVSUk9SU19JTlZBTElEX0RBVEU6ICdJTlZBTElEX0RBVEUnLFxuICBFUlJPUlNfSU5WQUxJRF9SQU5HRTogJ0lOVkFMSURfUkFOR0UnLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIgPSAnLyc7XG4iXX0=