@snabcentr/client-ui 3.46.1 → 3.47.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/configurators/index.d.ts +2 -0
  2. package/configurators/models/index.d.ts +2 -0
  3. package/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.d.ts +22 -0
  4. package/configurators/models/sandwich/sc-i-sandwich-settings.d.ts +18 -0
  5. package/configurators/sandwich/index.d.ts +3 -0
  6. package/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.d.ts +8 -0
  7. package/configurators/sandwich/sc-i-new-cart-item-sandwich.d.ts +14 -0
  8. package/configurators/sandwich/sc-sandwich.component.d.ts +138 -0
  9. package/directives/select-on-focusin/sc-select-on-focusin.directive.d.ts +1 -1
  10. package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +2 -2
  11. package/esm2022/configurators/index.mjs +3 -0
  12. package/esm2022/configurators/models/index.mjs +3 -0
  13. package/esm2022/configurators/models/sandwich/sc-i-configurator-search-product-sandwich.mjs +2 -0
  14. package/esm2022/configurators/models/sandwich/sc-i-sandwich-settings.mjs +2 -0
  15. package/esm2022/configurators/sandwich/index.mjs +4 -0
  16. package/esm2022/configurators/sandwich/sandwich-skeleton/sc-sandwich-skeleton.component.mjs +14 -0
  17. package/esm2022/configurators/sandwich/sc-i-new-cart-item-sandwich.mjs +2 -0
  18. package/esm2022/configurators/sandwich/sc-sandwich.component.mjs +311 -0
  19. package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +3 -3
  20. package/esm2022/providers/index.mjs +2 -1
  21. package/esm2022/providers/sc-debounce-time-default.mjs +9 -0
  22. package/esm2022/public-api.mjs +2 -1
  23. package/fesm2022/snabcentr-client-ui.mjs +320 -11
  24. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/providers/index.d.ts +1 -0
  27. package/providers/sc-debounce-time-default.d.ts +5 -0
  28. package/public-api.d.ts +1 -0
  29. package/styles/tailwind/tailwind.scss +69 -1
@@ -0,0 +1,2 @@
1
+ export * from './sandwich';
2
+ export * from './models';
@@ -0,0 +1,2 @@
1
+ export * from './sandwich/sc-i-sandwich-settings';
2
+ export * from './sandwich/sc-i-configurator-search-product-sandwich';
@@ -0,0 +1,22 @@
1
+ import { ScIConfiguratorSearchProductBase } from '@snabcentr/client-core';
2
+ /**
3
+ * Модель данных конфигурации для поиска подходящего товара с помощью конфигуратора распила сэндвич-панелей.
4
+ */
5
+ export interface ScIConfiguratorSearchProductSandwich extends ScIConfiguratorSearchProductBase {
6
+ /**
7
+ * Идентификатор записи продукта.
8
+ */
9
+ productId: number;
10
+ /**
11
+ * Идентификатор записи категории.
12
+ */
13
+ productCategoryId: number;
14
+ /**
15
+ * Идентификатор расчета.
16
+ */
17
+ calculationId: string;
18
+ /**
19
+ * Количество продукта.
20
+ */
21
+ quantity: number;
22
+ }
@@ -0,0 +1,18 @@
1
+ import { ScIConfiguratorSettingsBase } from '@snabcentr/client-core';
2
+ /**
3
+ * Модель данных настроек для конфигуратора сэндвич-панелей.
4
+ */
5
+ export interface ScISandwichSettings extends ScIConfiguratorSettingsBase {
6
+ /**
7
+ * Минимальная ширина изделия в миллиметрах.
8
+ */
9
+ minWidth: number;
10
+ /**
11
+ * Минимальная длина изделия в миллиметрах.
12
+ */
13
+ minLength: number;
14
+ /**
15
+ * Признак, что в конфигураторе разрешено просматривать товары в виде таблицы.
16
+ */
17
+ allowShowTable: boolean;
18
+ }
@@ -0,0 +1,3 @@
1
+ export * from './sc-sandwich.component';
2
+ export * from './sandwich-skeleton/sc-sandwich-skeleton.component';
3
+ export * from './sc-i-new-cart-item-sandwich';
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Skeleton конфигуратора сэндвич-панелей.
4
+ */
5
+ export declare class ScSandwichSkeletonComponent {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScSandwichSkeletonComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScSandwichSkeletonComponent, "sc-sandwich-skeleton", never, {}, {}, never, never, true, never>;
8
+ }
@@ -0,0 +1,14 @@
1
+ import { ScINewCartItemBase } from '@snabcentr/client-core';
2
+ /**
3
+ * Модель данных товара, который необходимо добавить в корзину, используя конфигуратор распила сэндвич-панелей.
4
+ */
5
+ export interface ScINewCartItemSandwich extends ScINewCartItemBase {
6
+ /**
7
+ * Идентификатор записи категории.
8
+ */
9
+ productCategoryId: number;
10
+ /**
11
+ * Идентификатор расчета.
12
+ */
13
+ calculationId: string;
14
+ }
@@ -0,0 +1,138 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { FormArray, FormControl, FormGroup, ValidatorFn } from '@angular/forms';
3
+ import { ScCartItem, ScIConfiguratorCalculateResult, ScProduct } from '@snabcentr/client-core';
4
+ import { Observable } from 'rxjs';
5
+ import { ScISandwichSettings } from '../models/sandwich/sc-i-sandwich-settings';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Конфигуратор распила сэндвич-панелей.
9
+ */
10
+ export declare class ScSandwichComponent implements OnInit {
11
+ /**
12
+ * Данные настроек окружения.
13
+ */
14
+ private readonly debounceTimeDefault;
15
+ /**
16
+ * Настройки для конфигуратора сэндвич-панелей.
17
+ */
18
+ readonly settings: import("@angular/core").InputSignal<ScISandwichSettings | undefined>;
19
+ /**
20
+ * Идентификатор категории.
21
+ */
22
+ readonly categoryId: import("@angular/core").InputSignal<string | number>;
23
+ /**
24
+ * Название конфигуратора.
25
+ */
26
+ readonly editor: import("@angular/core").InputSignal<string>;
27
+ /**
28
+ * Позиция товара/услуги в корзине.
29
+ */
30
+ readonly cartItem: import("@angular/core").InputSignal<ScCartItem | undefined>;
31
+ /**
32
+ * Событие переключения отображения товаров.
33
+ */
34
+ readonly toggleShowEvent: import("@angular/core").OutputEmitterRef<void>;
35
+ /**
36
+ * Форма добавления/редактирования продукта в корзине.
37
+ */
38
+ protected readonly form: FormGroup<{
39
+ productCategoryId: FormControl<number | null>;
40
+ configurator: FormControl<string | null>;
41
+ quantity: FormControl<number | null>;
42
+ marker: FormControl<string>;
43
+ items: FormArray<FormGroup<{
44
+ width: FormControl<number>;
45
+ length: FormControl<number>;
46
+ quantity: FormControl<number>;
47
+ }>>;
48
+ calculationId: FormControl<string | null>;
49
+ }>;
50
+ /**
51
+ * Сервис для работы с корзиной.
52
+ */
53
+ private readonly cartService;
54
+ /**
55
+ * Сервис конвертации данных.
56
+ */
57
+ private readonly convertersService;
58
+ /**
59
+ * Контекст диалогового окна, в котором открыт компонент.
60
+ */
61
+ private readonly context;
62
+ /**
63
+ * Сервис для работы с каталогом.
64
+ */
65
+ private readonly catalogService;
66
+ /**
67
+ * Сервис для работы с конфигураторами.
68
+ */
69
+ private readonly configuratorService;
70
+ /**
71
+ * {@link Observable} списка товаров категории.
72
+ */
73
+ protected readonly products$: Observable<ScProduct[]>;
74
+ /**
75
+ * Выбранный продукт (материал для раскроя).
76
+ */
77
+ protected readonly product: FormControl<ScProduct | null>;
78
+ /**
79
+ * Результат расчета оптимизации раскладки.
80
+ */
81
+ protected readonly calculateResult$: Observable<ScIConfiguratorCalculateResult | null>;
82
+ /**
83
+ * Валидатор для ширины изделия.
84
+ */
85
+ protected readonly validatorWidth$: Observable<ValidatorFn | null>;
86
+ /**
87
+ * Валидатор для длины изделия.
88
+ */
89
+ protected readonly validatorLength$: Observable<ValidatorFn | null>;
90
+ /**
91
+ * Признак того, что выполняется запрос на отправку данных выполняется.
92
+ */
93
+ protected readonly isSubmitLoading: import("@angular/core").WritableSignal<boolean>;
94
+ /**
95
+ * Ссылка для автоматического управления уничтожением зависимостей.
96
+ */
97
+ private readonly destroyRef;
98
+ /**
99
+ * Массив изделий.
100
+ */
101
+ get items(): FormArray<ReturnType<ScSandwichComponent['createItemGroup']>>;
102
+ /** @inheritDoc */
103
+ ngOnInit(): void;
104
+ /**
105
+ * Создает группу для изделия.
106
+ *
107
+ * @param item Параметры изделия.
108
+ */
109
+ private createItemGroup;
110
+ /**
111
+ * Добавляет новое изделие в форму.
112
+ */
113
+ protected addItem(): void;
114
+ /**
115
+ * Удаляет изделие из формы.
116
+ *
117
+ * @param index Индекс изделия.
118
+ */
119
+ protected removeItem(index: number): void;
120
+ /**
121
+ * Возвращает итоговую стоимость.
122
+ *
123
+ * @param calculateResult Результат расчета оптимизации раскладки.
124
+ */
125
+ protected getTotalCost(calculateResult: ScIConfiguratorCalculateResult): number;
126
+ /**
127
+ * Обработчик добавления/редактирования продукта в корзине.
128
+ *
129
+ * @param calculateResult Результат расчета оптимизации раскладки.
130
+ */
131
+ protected onSubmit(calculateResult: ScIConfiguratorCalculateResult | null): void;
132
+ /**
133
+ * Устанавливает начальные значения для полей формы.
134
+ */
135
+ private setDefaultFormValue;
136
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScSandwichComponent, never>;
137
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScSandwichComponent, "sc-sandwich", never, { "settings": { "alias": "settings"; "required": false; "isSignal": true; }; "categoryId": { "alias": "categoryId"; "required": true; "isSignal": true; }; "editor": { "alias": "editor"; "required": true; "isSignal": true; }; "cartItem": { "alias": "cartItem"; "required": true; "isSignal": true; }; }, { "toggleShowEvent": "toggleShowEvent"; }, never, never, true, never>;
138
+ }
@@ -10,5 +10,5 @@ export declare class ScSelectOnFocusinDirective {
10
10
  */
11
11
  protected onFocusIn(target: HTMLElement): void;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ScSelectOnFocusinDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<ScSelectOnFocusinDirective, "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber]", never, {}, {}, never, never, true, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ScSelectOnFocusinDirective, "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber], input[tuiTextfield], input[tuiInputSlider]", never, {}, {}, never, never, true, never>;
14
14
  }
@@ -201,7 +201,7 @@ export class ScAddOrEditingCartItemFormComponent {
201
201
  }
202
202
  }
203
203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddOrEditingCartItemFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScAddOrEditingCartItemFormComponent, isStandalone: true, selector: "sc-add-or-editing-cart-item-form", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, cartItem: { classPropertyName: "cartItem", publicName: "cartItem", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addToCart: "addToCart", editCartItem: "editCartItem" }, ngImport: i0, template: "<!-- \u0424\u043E\u0440\u043C\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0437\u043C\u0435\u0440\u044F\u0435\u043C\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430. -->\n<form\n *ngIf=\"product\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n ScNextInputFocus\n class=\"flex flex-col gap-2\"\n>\n @let step = lengthStep();\n\n <!-- \u0414\u043B\u0438\u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 (\u043C\u0435\u0442\u0440\u0430\u0436) -->\n <label\n *ngIf=\"productIsMeasurable()\"\n tuiLabel\n >\n \u041C\u0435\u0442\u0440\u0430\u0436, {{ product().unit.name }}\n @if (!step || maxLength()) {\n {{ lengthHint() }}\n }\n\n <tui-textfield>\n <input\n tuiInputNumber\n formControlName=\"length\"\n [tuiNumberFormat]=\"{ precision: 2 }\"\n [max]=\"maxLength() || null\"\n [min]=\"minLength() || null\"\n (keydown.arrowDown)=\"onStepLength(-(lengthStep() ?? 0.01))\"\n (keydown.arrowUp)=\"onStepLength(lengthStep() ?? 0.01)\"\n autocomplete=\"length\"\n />\n </tui-textfield>\n <tui-error\n formControlName=\"length\"\n [error]=\"[] | tuiFieldError | async\"\n />\n <p\n *ngIf=\"lengthStep()\"\n class=\"tui-form__field-note\"\n >\n \u041C\u0435\u0442\u0440\u0430\u0436 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u0435\u043D {{ lengthStep() }}\n </p>\n </label>\n\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <label tuiLabel>\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u0448\u0442.\n <tui-textfield>\n <tui-chip\n *ngIf=\"isLengthConfigurator() && productMultiplicity() && step\"\n size=\"s\"\n appearance=\"negative\"\n class=\"font-bold\"\n >\n x {{ step }} {{ product().unit.name }}\n </tui-chip>\n\n <input\n placeholder=\"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\"\n tuiInputNumber\n [tuiNumberFormat]=\"{ decimalMode: 'not-zero' }\"\n [min]=\"productMultiplicity()\"\n (keydown.arrowDown)=\"onStepQuantity(-productMultiplicity())\"\n (keydown.arrowUp)=\"onStepQuantity(productMultiplicity())\"\n formControlName=\"quantity\"\n autocomplete=\"quantity\"\n />\n </tui-textfield>\n <p class=\"tui-form__field-note\">\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u043E {{ productMultiplicity() }}</p>\n <tui-error\n formControlName=\"quantity\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430 -->\n <label tuiLabel>\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <tui-input formControlName=\"marker\">\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <input\n tuiTextfieldLegacy\n autocomplete=\"marker\"\n />\n </tui-input>\n <tui-error\n formControlName=\"marker\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <div class=\"flex flex-col items-center\">\n @let cost = totalCost$ | async;\n\n <div *ngIf=\"cost\">\n \u0418\u0442\u043E\u0433\u043E:<span class=\"text-2xl font-bold\">\n {{ cost | tuiAmount | async }}\n {{ product().currency.symbol }}\n </span>\n </div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <button\n tuiButton\n iconStart=\"@tui.check\"\n [disabled]=\"form.invalid\"\n [loading]=\"isLoading()\"\n type=\"submit\"\n class=\"mt-2\"\n >\n {{ cartItem() ? '\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C' : '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443' }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ScNextInputFocusModule }, { kind: "directive", type: i2.ScNextInputFocusDirective, selector: "form[ScNextInputFocus]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TuiLabel, selector: "label[tuiLabel]" }, { kind: "directive", type: ScSelectOnFocusinDirective, selector: "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber]" }, { kind: "directive", type: TuiNumberFormat, selector: "[tuiNumberFormat]", inputs: ["tuiNumberFormat"] }, { kind: "component", type: TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "ngmodule", type: TuiInputModule }, { kind: "component", type: i3.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i3.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "directive", type: i5.TuiInputNumberDirective, selector: "input[tuiInputNumber]", inputs: ["min", "max", "prefix", "postfix"] }, { kind: "component", type: i6.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "pipe", type: TuiAmountPipe, name: "tuiAmount" }, { kind: "directive", type: TuiChip, selector: "tui-chip,[tuiChip]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScAddOrEditingCartItemFormComponent, isStandalone: true, selector: "sc-add-or-editing-cart-item-form", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, cartItem: { classPropertyName: "cartItem", publicName: "cartItem", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addToCart: "addToCart", editCartItem: "editCartItem" }, ngImport: i0, template: "<!-- \u0424\u043E\u0440\u043C\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0437\u043C\u0435\u0440\u044F\u0435\u043C\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430. -->\n<form\n *ngIf=\"product\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n ScNextInputFocus\n class=\"flex flex-col gap-2\"\n>\n @let step = lengthStep();\n\n <!-- \u0414\u043B\u0438\u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 (\u043C\u0435\u0442\u0440\u0430\u0436) -->\n <label\n *ngIf=\"productIsMeasurable()\"\n tuiLabel\n >\n \u041C\u0435\u0442\u0440\u0430\u0436, {{ product().unit.name }}\n @if (!step || maxLength()) {\n {{ lengthHint() }}\n }\n\n <tui-textfield>\n <input\n tuiInputNumber\n formControlName=\"length\"\n [tuiNumberFormat]=\"{ precision: 2 }\"\n [max]=\"maxLength() || null\"\n [min]=\"minLength() || null\"\n (keydown.arrowDown)=\"onStepLength(-(lengthStep() ?? 0.01))\"\n (keydown.arrowUp)=\"onStepLength(lengthStep() ?? 0.01)\"\n autocomplete=\"length\"\n />\n </tui-textfield>\n <tui-error\n formControlName=\"length\"\n [error]=\"[] | tuiFieldError | async\"\n />\n <p\n *ngIf=\"lengthStep()\"\n class=\"tui-form__field-note\"\n >\n \u041C\u0435\u0442\u0440\u0430\u0436 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u0435\u043D {{ lengthStep() }}\n </p>\n </label>\n\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <label tuiLabel>\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u0448\u0442.\n <tui-textfield>\n <tui-chip\n *ngIf=\"isLengthConfigurator() && productMultiplicity() && step\"\n size=\"s\"\n appearance=\"negative\"\n class=\"font-bold\"\n >\n x {{ step }} {{ product().unit.name }}\n </tui-chip>\n\n <input\n placeholder=\"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\"\n tuiInputNumber\n [tuiNumberFormat]=\"{ decimalMode: 'not-zero' }\"\n [min]=\"productMultiplicity()\"\n (keydown.arrowDown)=\"onStepQuantity(-productMultiplicity())\"\n (keydown.arrowUp)=\"onStepQuantity(productMultiplicity())\"\n formControlName=\"quantity\"\n autocomplete=\"quantity\"\n />\n </tui-textfield>\n <p class=\"tui-form__field-note\">\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u043E {{ productMultiplicity() }}</p>\n <tui-error\n formControlName=\"quantity\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430 -->\n <label tuiLabel>\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <tui-input formControlName=\"marker\">\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <input\n tuiTextfieldLegacy\n autocomplete=\"marker\"\n />\n </tui-input>\n <tui-error\n formControlName=\"marker\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <div class=\"flex flex-col items-center\">\n @let cost = totalCost$ | async;\n\n <div *ngIf=\"cost\">\n \u0418\u0442\u043E\u0433\u043E:<span class=\"text-2xl font-bold\">\n {{ cost | tuiAmount | async }}\n {{ product().currency.symbol }}\n </span>\n </div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <button\n tuiButton\n iconStart=\"@tui.check\"\n [disabled]=\"form.invalid\"\n [loading]=\"isLoading()\"\n type=\"submit\"\n class=\"mt-2\"\n >\n {{ cartItem() ? '\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C' : '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443' }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ScNextInputFocusModule }, { kind: "directive", type: i2.ScNextInputFocusDirective, selector: "form[ScNextInputFocus]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TuiLabel, selector: "label[tuiLabel]" }, { kind: "directive", type: ScSelectOnFocusinDirective, selector: "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber], input[tuiTextfield], input[tuiInputSlider]" }, { kind: "directive", type: TuiNumberFormat, selector: "[tuiNumberFormat]", inputs: ["tuiNumberFormat"] }, { kind: "component", type: TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "ngmodule", type: TuiInputModule }, { kind: "component", type: i3.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i3.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "directive", type: i5.TuiInputNumberDirective, selector: "input[tuiInputNumber]", inputs: ["min", "max", "prefix", "postfix"] }, { kind: "component", type: i6.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "pipe", type: TuiAmountPipe, name: "tuiAmount" }, { kind: "directive", type: TuiChip, selector: "tui-chip,[tuiChip]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
205
205
  }
206
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddOrEditingCartItemFormComponent, decorators: [{
207
207
  type: Component,
@@ -230,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
230
230
  TuiChip,
231
231
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- \u0424\u043E\u0440\u043C\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0437\u043C\u0435\u0440\u044F\u0435\u043C\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430. -->\n<form\n *ngIf=\"product\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n ScNextInputFocus\n class=\"flex flex-col gap-2\"\n>\n @let step = lengthStep();\n\n <!-- \u0414\u043B\u0438\u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 (\u043C\u0435\u0442\u0440\u0430\u0436) -->\n <label\n *ngIf=\"productIsMeasurable()\"\n tuiLabel\n >\n \u041C\u0435\u0442\u0440\u0430\u0436, {{ product().unit.name }}\n @if (!step || maxLength()) {\n {{ lengthHint() }}\n }\n\n <tui-textfield>\n <input\n tuiInputNumber\n formControlName=\"length\"\n [tuiNumberFormat]=\"{ precision: 2 }\"\n [max]=\"maxLength() || null\"\n [min]=\"minLength() || null\"\n (keydown.arrowDown)=\"onStepLength(-(lengthStep() ?? 0.01))\"\n (keydown.arrowUp)=\"onStepLength(lengthStep() ?? 0.01)\"\n autocomplete=\"length\"\n />\n </tui-textfield>\n <tui-error\n formControlName=\"length\"\n [error]=\"[] | tuiFieldError | async\"\n />\n <p\n *ngIf=\"lengthStep()\"\n class=\"tui-form__field-note\"\n >\n \u041C\u0435\u0442\u0440\u0430\u0436 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u0435\u043D {{ lengthStep() }}\n </p>\n </label>\n\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <label tuiLabel>\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u0448\u0442.\n <tui-textfield>\n <tui-chip\n *ngIf=\"isLengthConfigurator() && productMultiplicity() && step\"\n size=\"s\"\n appearance=\"negative\"\n class=\"font-bold\"\n >\n x {{ step }} {{ product().unit.name }}\n </tui-chip>\n\n <input\n placeholder=\"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\"\n tuiInputNumber\n [tuiNumberFormat]=\"{ decimalMode: 'not-zero' }\"\n [min]=\"productMultiplicity()\"\n (keydown.arrowDown)=\"onStepQuantity(-productMultiplicity())\"\n (keydown.arrowUp)=\"onStepQuantity(productMultiplicity())\"\n formControlName=\"quantity\"\n autocomplete=\"quantity\"\n />\n </tui-textfield>\n <p class=\"tui-form__field-note\">\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u043E {{ productMultiplicity() }}</p>\n <tui-error\n formControlName=\"quantity\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430 -->\n <label tuiLabel>\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <tui-input formControlName=\"marker\">\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <input\n tuiTextfieldLegacy\n autocomplete=\"marker\"\n />\n </tui-input>\n <tui-error\n formControlName=\"marker\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <div class=\"flex flex-col items-center\">\n @let cost = totalCost$ | async;\n\n <div *ngIf=\"cost\">\n \u0418\u0442\u043E\u0433\u043E:<span class=\"text-2xl font-bold\">\n {{ cost | tuiAmount | async }}\n {{ product().currency.symbol }}\n </span>\n </div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <button\n tuiButton\n iconStart=\"@tui.check\"\n [disabled]=\"form.invalid\"\n [loading]=\"isLoading()\"\n type=\"submit\"\n class=\"mt-2\"\n >\n {{ cartItem() ? '\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C' : '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443' }}\n </button>\n </div>\n</form>\n" }]
232
232
  }] });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLW9yLWVkaXRpbmctY2FydC1pdGVtLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvYWRkLW9yLWVkaXRpbmctY2FydC1pdGVtLWRpYWxvZy9hZGQtb3ItZWRpdGluZy1jYXJ0LWl0ZW0tZm9ybS9zYy1hZGQtb3ItZWRpdGluZy1jYXJ0LWl0ZW0tZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2FydC9hZGQtb3ItZWRpdGluZy1jYXJ0LWl0ZW0tZGlhbG9nL2FkZC1vci1lZGl0aW5nLWNhcnQtaXRlbS1mb3JtL3NjLWFkZC1vci1lZGl0aW5nLWNhcnQtaXRlbS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBGQUEwRjtBQUUxRixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBRUgsbUJBQW1CLEVBSW5CLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsb0JBQW9CLEdBQ3ZCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFB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QUtkLFNBQVMsb0lBQ1QsZ0JBQWdCLGtIQUNoQixTQUFTLHlDQUNULGlCQUFpQix5UkFJakIsYUFBYSxrREFDYixPQUFPOzs0RkFJRixtQ0FBbUM7a0JBOUIvQyxTQUFTO2lDQUNNLElBQUksWUFDTixrQ0FBa0MsV0FFbkM7d0JBQ0wsSUFBSTt3QkFDSixXQUFXO3dCQUNYLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLDBCQUEwQjt3QkFDMUIsZUFBZTt3QkFDZixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsT0FBTztxQkFDVixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNvbmFyanMvbm8tbmVzdGVkLXRlbXBsYXRlLWxpdGVyYWxzLEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgU2NDYXJ0SXRlbSxcbiAgICBTY0NvbnZlcnRlcnNTZXJ2aWNlLFxuICAgIFNjSU5ld0NhcnRJdGVtQmFzZSxcbiAgICBTY0lOZXdDYXJ0SXRlbU1lYXN1cmVkLFxuICAgIFNjUHJvZHVjdCxcbiAgICBTY1VuaXRzSGVscGVyLFxuICAgIFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sXG4gICAgU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG59IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQW1vdW50UGlwZSB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZSc7XG5pbXBvcnQgeyB0dWlDb250cm9sVmFsdWUsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRXJyb3IsIFR1aUxhYmVsLCBUdWlOdW1iZXJGb3JtYXQsIFR1aVRleHRmaWVsZCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUFwcGVhcmFuY2UsIFR1aVdpdGhBcHBlYXJhbmNlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9hcHBlYXJhbmNlJztcbmltcG9ydCB7IFR1aUljb25zLCBUdWlXaXRoSWNvbnMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2ljb25zJztcbmltcG9ydCB7IFR1aUJ1dHRvbkxvYWRpbmcsIFR1aUNoaXAsIFR1aUZpZWxkRXJyb3JQaXBlLCBUdWlJbnB1dE51bWJlciB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpSW5wdXRNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBwYWlyd2lzZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjTmV4dElucHV0Rm9jdXNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL25leHQtaW5wdXQtZm9jdXMvc2MtbmV4dC1pbnB1dC1mb2N1cy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NTZWxlY3RPbkZvY3VzaW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL3NlbGVjdC1vbi1mb2N1c2luL3NjLXNlbGVjdC1vbi1mb2N1c2luLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBzdGVwVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycy9zdGVwLXZhbGlkYXRvcic7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC00L7QsdCw0LLQu9C10L3QuNGPIC8g0LjQt9C80LXQvdC10L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLWFkZC1vci1lZGl0aW5nLWNhcnQtaXRlbS1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYWRkLW9yLWVkaXRpbmctY2FydC1pdGVtLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFNjTmV4dElucHV0Rm9jdXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aUxhYmVsLFxuICAgICAgICBTY1NlbGVjdE9uRm9jdXNpbkRpcmVjdGl2ZSxcbiAgICAgICAgVHVpTnVtYmVyRm9ybWF0LFxuICAgICAgICBUdWlFcnJvcixcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgICAgIFR1aVdpdGhBcHBlYXJhbmNlLFxuICAgICAgICBUdWlJY29ucyxcbiAgICAgICAgVHVpV2l0aEljb25zLFxuICAgICAgICBUdWlCdXR0b24sXG4gICAgICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgVHVpRmllbGRFcnJvclBpcGUsXG4gICAgICAgIFR1aUlucHV0TnVtYmVyLFxuICAgICAgICBUdWlOdW1iZXJGb3JtYXQsXG4gICAgICAgIFR1aVRleHRmaWVsZCxcbiAgICAgICAgVHVpQW1vdW50UGlwZSxcbiAgICAgICAgVHVpQ2hpcCxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0FkZE9yRWRpdGluZ0NhcnRJdGVtRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LTQvtCx0LDQstC70LXQvdC40Y8gLyDQuNC30LzQtdC90LXQvdC40Y8g0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cDx7XG4gICAgICAgIGxlbmd0aD86IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+O1xuICAgICAgICBxdWFudGl0eTogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgICAgIG1hcmtlcjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgfT4oe1xuICAgICAgICBxdWFudGl0eTogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBtYXJrZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPignJyksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0L4g0YLQvtCy0LDRgNC1LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBwcm9kdWN0ID0gaW5wdXQucmVxdWlyZWQ8U2NQcm9kdWN0PigpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQtNC70Y8g0YPQutCw0LfQsNC90L3QvtC5INC60LDRgtC10LPQvtGA0LjQuCDQuNC70Lgg0L/RgNC+0LTRg9C60YLQsCDQtNC10LnRgdGC0LLRg9C10YIg0LrQvtC90YTQuNCz0YPRgNCw0YLQvtGAINC00LvQuNC90YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTGVuZ3RoQ29uZmlndXJhdG9yID0gY29tcHV0ZWQoKCkgPT4gQm9vbGVhbih0aGlzLnByb2R1Y3QoKS5wcm9wZXJ0aWVzPy5bJ2lzTGVuZ3RoQ29uZmlndXJhdG9yJ10pKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDRgtC+0LLQsNGA0LUg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNhcnRJdGVtID0gaW5wdXQ8U2NDYXJ0SXRlbSB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpc0xvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC/0YDQvtC00LDQttC4INGC0L7QstCw0YDQsCDQvdCwINC80LXRgtGA0LDQti5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvZHVjdElzTWVhc3VyYWJsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudW5pdHNIZWxwZXIucHJvZHVjdElzTWVhc3VyYWJsZSh0aGlzLnByb2R1Y3QoKSkpO1xuXG4gICAgLyoqXG4gICAgICog0JrRgNCw0YLQvdC+0YHRgtGMINC60L7Qu9C40YfQtdGB0YLQstCwINC00LvRjyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb2R1Y3RNdWx0aXBsaWNpdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVuaXRzSGVscGVyLnByb2R1Y3RNdWx0aXBsaWNpdHkodGhpcy5wcm9kdWN0KCkpKTtcblxuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdGL0Lkg0LzQtdGC0YDQsNC2INC00LvRjyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1pbkxlbmd0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZHVjdCgpLnByb3BlcnRpZXM/Lm1pbkxlbmd0aCA/PyAodGhpcy5wcm9kdWN0KCkuaWdub3JlTWluQ291bnRDaGVjayA/IDAgOiB0aGlzLnByb2R1Y3QoKS5taW5Db3VudCkpO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INC80LXRgtGA0LDQtiDQtNC70Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXhMZW5ndGggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb2R1Y3QoKS5wcm9wZXJ0aWVzPy5tYXhMZW5ndGgpO1xuXG4gICAgLyoqXG4gICAgICog0KjQsNCzINC40LfQvNC10L3QtdC90LjRjyDQvNC10YLRgNCw0LbQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGVuZ3RoU3RlcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZHVjdCgpLnByb3BlcnRpZXM/Lmxlbmd0aFN0ZXAgPz8gKHRoaXMucHJvZHVjdCgpLmlnbm9yZU1pbkNvdW50Q2hlY2sgPyAwIDogdGhpcy5wcm9kdWN0KCkubWluQ291bnQpKTtcblxuICAgIC8qKlxuICAgICAqINCf0L7QtNGB0LrQsNC30LrQsCDQv9C+INC80LjQvdC40LzQsNC70YzQvdC+0LzRgyDQuCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LzRgyDQvNC10YLRgNCw0LbRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxlbmd0aEhpbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1pbiA9IHRoaXMubWluTGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IG1heCA9IHRoaXMubWF4TGVuZ3RoKCk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbmVzdGVkLWNvbmRpdGlvbmFsLCBzb25hcmpzL3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgcmV0dXJuIG1pbiB8fCBtYXggPyBgKCR7bWluID8gYNC+0YIgJHttaW59YCA6ICcnfSR7bWluICYmIG1heCA/ICcgJyA6ICcnfSR7bWF4ID8gYNC00L4gJHttYXh9YCA6ICcnfSAke3RoaXMucHJvZHVjdCgpLnVuaXQubmFtZX0pYCA6ICcnO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JjRgtC+0LPQvtCy0LDRjyDRgdGC0L7QuNC80L7RgdGC0Ywg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB0b3RhbENvc3QkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT3V0cHV0fSDRgdC+0LHRi9GC0LjRjyDQtNC+0LHQsNCy0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90YMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFkZFRvQ2FydCA9IG91dHB1dDxTY0lOZXdDYXJ0SXRlbUJhc2U+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT3V0cHV0fSDRgdC+0LHRi9GC0LjRjyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdENhcnRJdGVtID0gb3V0cHV0PE9taXQ8U2NJTmV3Q2FydEl0ZW1CYXNlLCAncHJvZHVjdElkJz4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIt0L/QvtC80L7RidC90LjQuiDQtNC70Y8g0YDQsNCx0L7RgtGLINGB0L4g0LfQvdCw0YfQtdC90LjRj9C80Lgg0LXQtNC40L3QuNGGINC40LfQvNC10YDQtdC90LjRjyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bml0c0hlbHBlcjogU2NVbml0c0hlbHBlciA9IGluamVjdChTY1VuaXRzSGVscGVyKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZSA9IGluamVjdChTY0NvbnZlcnRlcnNTZXJ2aWNlKTtcblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLmNhcnRJdGVtQWRkU2hvdyxcbiAgICAgICAgICAgIHBhcmFtczogeyBwcm9kdWN0X2lkOiB0aGlzLnByb2R1Y3QoKS5pZCB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0SXNNZWFzdXJhYmxlKCkpIHtcbiAgICAgICAgICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQv9C+0LvQtSDQstCy0L7QtNCwINC00LvQuNC90YssINC10YHQu9C4INGC0L7QstCw0YAg0LjQt9C80LXRgNGP0LXQvNGL0LkuXG4gICAgICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnbGVuZ3RoJywgbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KHRoaXMuY2FydEl0ZW0oKT8ubGVuZ3RoID8/IHRoaXMubWluTGVuZ3RoKCkgPz8gMC4wMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDAuMDEpXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQtyDQutC+0YDQt9C40L3RiyDQuNC70Lgg0LrRgNCw0YLQvdC+0YHRgtC4INGC0L7QstCw0YDQsC5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgcXVhbnRpdHk6IHRoaXMuY2FydEl0ZW0oKT8ucXVhbnRpdHkgPz8gdGhpcy51bml0c0hlbHBlci5wcm9kdWN0TXVsdGlwbGljaXR5KHRoaXMucHJvZHVjdCgpKSxcbiAgICAgICAgICAgIG1hcmtlcjogdGhpcy5jYXJ0SXRlbSgpPy5tYXJrZXIgPz8gJycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmxlbmd0aFN0ZXAoKTtcblxuICAgICAgICBpZiAodGhpcy5pc0xlbmd0aENvbmZpZ3VyYXRvcigpICYmIHRoaXMubGVuZ3RoU3RlcCgpICYmIHRoaXMuZm9ybS5jb250cm9scy5xdWFudGl0eS52YWx1ZSAmJiBzdGVwKSB7XG4gICAgICAgICAgICAvLyDQldGB0LvQuCDQtdGB0YLRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YAg0LTQu9C40L3Riywg0YDQsNGB0YHRh9C40YLRi9Cy0LDQtdC8INC90LDRh9Cw0LvRjNC90L4g0LfQvdCw0YfQtdC90LjQtSDQtNC70LjQvdGLLlxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmxlbmd0aD8ucGF0Y2hWYWx1ZSh0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkudmFsdWUgKiBzdGVwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQstCw0LvQuNC00LDRhtC40Y4g0YjQsNCz0LAg0LTQu9GPINC60L7Qu9C40YfQtdGB0YLQstCwLlxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkuYWRkVmFsaWRhdG9ycyhzdGVwVmFsaWRhdG9yKHRoaXMudW5pdHNIZWxwZXIucHJvZHVjdFN0ZXBGb3JWYWxpZGF0b3IodGhpcy5wcm9kdWN0KCkpKSk7XG4gICAgICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQstCw0LvQuNC00LDRhtC40Y4g0YjQsNCz0LAg0LTQu9GPINC00LvQuNC90YsuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2xlbmd0aCcpPy5hZGRWYWxpZGF0b3JzKHN0ZXBWYWxpZGF0b3IodGhpcy5wcm9kdWN0KCkucHJvcGVydGllcz8ubGVuZ3RoU3RlcCA/PyAodGhpcy5wcm9kdWN0KCkuaWdub3JlTWluQ291bnRDaGVjayA/IDAgOiAodGhpcy5wcm9kdWN0KCkubWluQ291bnQgPz8gMCkpKSk7XG5cbiAgICAgICAgLy8g0KHRh9C40YLQsNC10Lwg0LjRgtC+0LPQvtCy0YPRjiDRgdGC0L7QuNC80L7RgdGC0Ywg0LfQsNC60LDQt9CwLlxuICAgICAgICB0aGlzLnRvdGFsQ29zdCQgPSB0dWlDb250cm9sVmFsdWU8e1xuICAgICAgICAgICAgbGVuZ3RoPzogbnVtYmVyO1xuICAgICAgICAgICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICAgICAgfT4odGhpcy5mb3JtKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLCAvLyDQmNGB0L/RgNCw0LLQu9GP0LXQvCDQvtGI0LjQsdC60YMgTkcwOTUwLlxuICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzLmxlbmd0aCA9PT0gY3VycmVudC5sZW5ndGggJiYgcHJldmlvdXMucXVhbnRpdHkgPT09IGN1cnJlbnQucXVhbnRpdHkpLCAvLyDQotC+0LvRjNC60L4g0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNC5XG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlIGFzIHsgbGVuZ3RoPzogbnVtYmVyOyBxdWFudGl0eTogbnVtYmVyIH0pLFxuICAgICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICAgIG1hcCgoW3ByZXZpb3VzLCBjdXJyZW50XSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdsZW5ndGgnKTtcblxuICAgICAgICAgICAgICAgIC8vINCV0YHQu9C4INC90LXRgiDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQsCDQtNC70LjQvdGLINC40LvQuCDQvdC10LrQvtGA0YDQtdC60YLQvdGL0LUg0LTQsNC90L3Ri9C1IOKAlCDQstC+0LfQstGA0LDRidCw0LXQvCDQsdC10Lcg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0xlbmd0aENvbmZpZ3VyYXRvcigpIHx8IGlzVW5kZWZpbmVkKGN1cnJlbnQubGVuZ3RoKSB8fCAhbGVuZ3RoQ29udHJvbCB8fCB0aGlzLmZvcm0uaW52YWxpZCB8fCAhc3RlcCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDQldGB0LvQuCDQuNC30LzQtdC90LjQu9C+0YHRjCDQutC+0LvQuNGH0LXRgdGC0LLQviDigJQg0L/QtdGA0LXRgdGH0LjRgtGL0LLQsNC10Lwg0LTQu9C40L3Rgy5cbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXMucXVhbnRpdHkgIT09IGN1cnJlbnQucXVhbnRpdHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzLnF1YW50aXR5LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtLmNvbnRyb2xzLnF1YW50aXR5LnZhbHVlICogc3RlcDtcbiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQ29udHJvbC5wYXRjaFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDQldGB0LvQuCDQuNC30LzQtdC90LjQu9Cw0YHRjCDQtNC70LjQvdCwIOKAlCDQv9C10YDQtdGB0YfQuNGC0YvQstCw0LXQvCDQutC+0LvQuNGH0LXRgdGC0LLQviDQuCDQstC+0LfQstGA0LDRidCw0LXQvCDQt9C90LDRh9C10L3QuNC1INC00LvQuNC90YsuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzLmxlbmd0aCAhPT0gY3VycmVudC5sZW5ndGggJiYgbGVuZ3RoQ29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGxlbmd0aENvbnRyb2wudmFsdWUgLyBzdGVwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkucGF0Y2hWYWx1ZShuZXdWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbGVuZ3RoOiBzdGVwLCBxdWFudGl0eTogbmV3VmFsdWUgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDQktC+0LfQstGA0LDRidCw0LXQvCDQuNGC0L7Qs9C+0LLRi9C1INC30L3QsNGH0LXQvdC40Y8g0LTQu9GPINGA0LDRgdGH0ZHRgtCwINGB0YLQvtC40LzQvtGB0YLQuC5cbiAgICAgICAgICAgICAgICByZXR1cm4geyBsZW5ndGg6IHN0ZXAsIHF1YW50aXR5OiBjdXJyZW50LnF1YW50aXR5IH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8vINCh0YfQuNGC0LDQtdC8INGB0YLQvtC40LzQvtGB0YLRjDog0YbQtdC90LAgKiDQtNC70LjQvdCwICog0LrQvtC70LjRh9C10YHRgtCy0L4uXG4gICAgICAgICAgICBtYXAoKHsgbGVuZ3RoLCBxdWFudGl0eSB9KSA9PiAodGhpcy5wcm9kdWN0KCkuY29zdFJ1YiA/PyAwKSAqIChsZW5ndGggPz8gMSkgKiBxdWFudGl0eSksXG4gICAgICAgICAgICBtYXAoKHN1bSkgPT4gTWF0aC5yb3VuZChzdW0gKiAxMDApIC8gMTAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INGB0L7QsdGL0YLQuNGPINGI0LDQs9CwINC80LXRgtGA0LDQttCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXAg0KjQsNCzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN0ZXBMZW5ndGgoc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxlbmd0aENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdsZW5ndGgnKTtcblxuICAgICAgICBpZiAoIXRoaXMucHJvZHVjdElzTWVhc3VyYWJsZSgpIHx8ICFsZW5ndGhDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZW5ndGggPSBsZW5ndGhDb250cm9sLnZhbHVlID8/IDA7XG4gICAgICAgIGxldCBuZXdMZW5ndGggPSBNYXRoLm1heCh0aGlzLm1pbkxlbmd0aCgpID8/IHN0ZXAsIGxlbmd0aCArIHN0ZXApO1xuICAgICAgICAvLyDQntC60YDRg9Cz0LvRj9C10Lwg0LTQviDQsdC70LjQttCw0LnRiNC10LPQviDQutGA0LDRgtC90L7Qs9C+INGH0LjRgdC70LAuXG4gICAgICAgIG5ld0xlbmd0aCA9IE1hdGgucm91bmQobmV3TGVuZ3RoIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICBsZW5ndGhDb250cm9sLnNldFZhbHVlKE51bWJlcihuZXdMZW5ndGgudG9GaXhlZCgyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INGB0L7QsdGL0YLQuNGPINGI0LDQs9CwINC60L7Qu9C40YfQtdGB0YLQstCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXAg0KjQsNCzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN0ZXBRdWFudGl0eShzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcXVhbnRpdHkgPSB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkudmFsdWUgPz8gMDtcblxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkuc2V0VmFsdWUoTWF0aC5tYXgodGhpcy5wcm9kdWN0TXVsdGlwbGljaXR5KCksIHF1YW50aXR5IC0gKHF1YW50aXR5ICUgc3RlcCkgKyBzdGVwKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0YHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10LwgbnVsbC3Qv9C+0LvRjyDQuNC3INC30L3QsNGH0LXQvdC40Y8g0YTQvtGA0LzRiy5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnJlbW92ZU51bGw8U2NJTmV3Q2FydEl0ZW1NZWFzdXJlZD4odGhpcy5mb3JtLnZhbHVlIGFzIFNjSU5ld0NhcnRJdGVtTWVhc3VyZWQpO1xuXG4gICAgICAgIC8vINCV0YHQu9C4INGN0YLQviDQtNC+0LHQsNCy0LvQtdC90LjQtSDQvdC+0LLQvtCz0L4g0YLQvtCy0LDRgNCwIOKAlCDQtNC+0LHQsNCy0LvRj9C10LwgcHJvZHVjdElkLlxuICAgICAgICBpZiAoIXRoaXMuY2FydEl0ZW0oKSkge1xuICAgICAgICAgICAgdmFsdWUucHJvZHVjdElkID0gdGhpcy5wcm9kdWN0KCkuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5sZW5ndGhTdGVwKCk7XG5cbiAgICAgICAgLy8g0JXRgdC70Lgg0YLQvtCy0LDRgCDQuNC30LzQtdGA0Y/QtdC80YvQuSDQuCDQtdGB0YLRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YAg0LTQu9C40L3RiyDigJQg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LTQu9C40L3RgyDQv9C+INGI0LDQs9GDICjQutC+0LvQuNGH0LXRgdGC0LLQviDRg9C20LUg0LHRg9C00LXRgiDQstGL0YfQuNGB0LvQtdC90L4g0L/QviDRhNC+0YDQvNGD0LvQtSDQnNC10YLRgNCw0LYvbWluLWNvdW50KVxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0SXNNZWFzdXJhYmxlKCkgJiYgdGhpcy5pc0xlbmd0aENvbmZpZ3VyYXRvcigpICYmIHN0ZXApIHtcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA9IHN0ZXA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDQn9C+0LzQtdGH0LDQtdC8INCy0YHQtSDQv9C+0LvRjyDRhNC+0YDQvNGLINC60LDQuiBcInRvdWNoXCIg0Lgg0LfQsNC/0YPRgdC60LDQtdC8INCy0LDQu9C40LTQsNGG0LjRjiDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQvtGI0LjQsdC+0Log0YEg0YHQtdGA0LLQtdGA0LAuXG4gICAgICAgIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUodGhpcy5mb3JtKTtcblxuICAgICAgICAvLyDQkiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0YDQtdC20LjQvNCwIOKAlCDRgNC10LTQsNC60YLQuNGA0YPQtdC8INC40LvQuCDQtNC+0LHQsNCy0LvRj9C10Lwg0YLQvtCy0LDRgC5cbiAgICAgICAgaWYgKHRoaXMuY2FydEl0ZW0oKSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0Q2FydEl0ZW0uZW1pdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRvQ2FydC5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjwhLS0g0KTQvtGA0LzQsCDQtNC+0LHQsNCy0LvQtdC90LjRjyDQuNC30LzQtdGA0Y/QtdC80L7Qs9C+INGC0L7QstCw0YDQsC4gLS0+XG48Zm9ybVxuICAgICpuZ0lmPVwicHJvZHVjdFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiXG4gICAgU2NOZXh0SW5wdXRGb2N1c1xuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiXG4+XG4gICAgQGxldCBzdGVwID0gbGVuZ3RoU3RlcCgpO1xuXG4gICAgPCEtLSDQlNC70LjQvdCwINGC0L7QstCw0YDQsCAo0LzQtdGC0YDQsNC2KSAtLT5cbiAgICA8bGFiZWxcbiAgICAgICAgKm5nSWY9XCJwcm9kdWN0SXNNZWFzdXJhYmxlKClcIlxuICAgICAgICB0dWlMYWJlbFxuICAgID5cbiAgICAgICAg0JzQtdGC0YDQsNC2LCB7eyBwcm9kdWN0KCkudW5pdC5uYW1lIH19XG4gICAgICAgIEBpZiAoIXN0ZXAgfHwgbWF4TGVuZ3RoKCkpIHtcbiAgICAgICAgICAgIHt7IGxlbmd0aEhpbnQoKSB9fVxuICAgICAgICB9XG5cbiAgICAgICAgPHR1aS10ZXh0ZmllbGQ+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0dWlJbnB1dE51bWJlclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3R1aU51bWJlckZvcm1hdF09XCJ7IHByZWNpc2lvbjogMiB9XCJcbiAgICAgICAgICAgICAgICBbbWF4XT1cIm1heExlbmd0aCgpIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgIFttaW5dPVwibWluTGVuZ3RoKCkgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uU3RlcExlbmd0aCgtKGxlbmd0aFN0ZXAoKSA/PyAwLjAxKSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwib25TdGVwTGVuZ3RoKGxlbmd0aFN0ZXAoKSA/PyAwLjAxKVwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibGVuZ3RoXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVuZ3RoXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxwXG4gICAgICAgICAgICAqbmdJZj1cImxlbmd0aFN0ZXAoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInR1aS1mb3JtX19maWVsZC1ub3RlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0JzQtdGC0YDQsNC2INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQutGA0LDRgtC10L0ge3sgbGVuZ3RoU3RlcCgpIH19XG4gICAgICAgIDwvcD5cbiAgICA8L2xhYmVsPlxuXG4gICAgPCEtLSDQmtC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LLQsNGA0LAgLS0+XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICDQmtC+0LvQuNGH0LXRgdGC0LLQviwg0YjRgi5cbiAgICAgICAgPHR1aS10ZXh0ZmllbGQ+XG4gICAgICAgICAgICA8dHVpLWNoaXBcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTGVuZ3RoQ29uZmlndXJhdG9yKCkgJiYgcHJvZHVjdE11bHRpcGxpY2l0eSgpICYmIHN0ZXBcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwibmVnYXRpdmVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9udC1ib2xkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB4IHt7IHN0ZXAgfX0ge3sgcHJvZHVjdCgpLnVuaXQubmFtZSB9fVxuICAgICAgICAgICAgPC90dWktY2hpcD5cblxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQmtC+0LvQuNGH0LXRgdGC0LLQvlwiXG4gICAgICAgICAgICAgICAgdHVpSW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICBbdHVpTnVtYmVyRm9ybWF0XT1cInsgZGVjaW1hbE1vZGU6ICdub3QtemVybycgfVwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJwcm9kdWN0TXVsdGlwbGljaXR5KClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJvblN0ZXBRdWFudGl0eSgtcHJvZHVjdE11bHRpcGxpY2l0eSgpKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJvblN0ZXBRdWFudGl0eShwcm9kdWN0TXVsdGlwbGljaXR5KCkpXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJxdWFudGl0eVwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwicXVhbnRpdHlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC90dWktdGV4dGZpZWxkPlxuICAgICAgICA8cCBjbGFzcz1cInR1aS1mb3JtX19maWVsZC1ub3RlXCI+0JrQvtC70LjRh9C10YHRgtCy0L4g0LTQvtC70LbQvdC+INCx0YvRgtGMINC60YDQsNGC0L3QviB7eyBwcm9kdWN0TXVsdGlwbGljaXR5KCkgfX08L3A+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInF1YW50aXR5XCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIDwhLS0g0JzQsNGA0LrQuNGA0L7QstC60LAgLS0+XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICDQnNCw0YDQutC40YDQvtCy0LrQsFxuICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cIm1hcmtlclwiPlxuICAgICAgICAgICAg0JzQsNGA0LrQuNGA0L7QstC60LBcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm1hcmtlclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWFya2VyXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIDwhLS0g0JrQvdC+0L/QutCwINC00L7QsdCw0LLQu9C10L3QuNGPIC8g0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90YMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIEBsZXQgY29zdCA9IHRvdGFsQ29zdCQgfCBhc3luYztcblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29zdFwiPlxuICAgICAgICAgICAg0JjRgtC+0LPQvjo8c3BhbiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgIHt7IGNvc3QgfCB0dWlBbW91bnQgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QoKS5jdXJyZW5jeS5zeW1ib2wgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSDQmtC90L7Qv9C60LAg0LTQvtCx0LDQstC70LXQvdC40Y8gLyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3RgyAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLmNoZWNrXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBjbGFzcz1cIm10LTJcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBjYXJ0SXRlbSgpID8gJ9CY0LfQvNC10L3QuNGC0YwnIDogJ9CU0L7QsdCw0LLQuNGC0Ywg0LIg0LrQvtGA0LfQuNC90YMnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLW9yLWVkaXRpbmctY2FydC1pdGVtLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvYWRkLW9yLWVkaXRpbmctY2FydC1pdGVtLWRpYWxvZy9hZGQtb3ItZWRpdGluZy1jYXJ0LWl0ZW0tZm9ybS9zYy1hZGQtb3ItZWRpdGluZy1jYXJ0LWl0ZW0tZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2FydC9hZGQtb3ItZWRpdGluZy1jYXJ0LWl0ZW0tZGlhbG9nL2FkZC1vci1lZGl0aW5nLWNhcnQtaXRlbS1mb3JtL3NjLWFkZC1vci1lZGl0aW5nLWNhcnQtaXRlbS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBGQUEwRjtBQUUxRixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBRUgsbUJBQW1CLEVBSW5CLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsb0JBQW9CLEdBQ3ZCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFB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QUtkLFNBQVMsb0lBQ1QsZ0JBQWdCLGtIQUNoQixTQUFTLHlDQUNULGlCQUFpQix5UkFJakIsYUFBYSxrREFDYixPQUFPOzs0RkFJRixtQ0FBbUM7a0JBOUIvQyxTQUFTO2lDQUNNLElBQUksWUFDTixrQ0FBa0MsV0FFbkM7d0JBQ0wsSUFBSTt3QkFDSixXQUFXO3dCQUNYLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixRQUFRO3dCQUNSLDBCQUEwQjt3QkFDMUIsZUFBZTt3QkFDZixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsT0FBTztxQkFDVixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNvbmFyanMvbm8tbmVzdGVkLXRlbXBsYXRlLWxpdGVyYWxzLEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgU2NDYXJ0SXRlbSxcbiAgICBTY0NvbnZlcnRlcnNTZXJ2aWNlLFxuICAgIFNjSU5ld0NhcnRJdGVtQmFzZSxcbiAgICBTY0lOZXdDYXJ0SXRlbU1lYXN1cmVkLFxuICAgIFNjUHJvZHVjdCxcbiAgICBTY1VuaXRzSGVscGVyLFxuICAgIFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sXG4gICAgU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG59IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQW1vdW50UGlwZSB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZSc7XG5pbXBvcnQgeyB0dWlDb250cm9sVmFsdWUsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRXJyb3IsIFR1aUxhYmVsLCBUdWlOdW1iZXJGb3JtYXQsIFR1aVRleHRmaWVsZCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUFwcGVhcmFuY2UsIFR1aVdpdGhBcHBlYXJhbmNlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9hcHBlYXJhbmNlJztcbmltcG9ydCB7IFR1aUljb25zLCBUdWlXaXRoSWNvbnMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2ljb25zJztcbmltcG9ydCB7IFR1aUJ1dHRvbkxvYWRpbmcsIFR1aUNoaXAsIFR1aUZpZWxkRXJyb3JQaXBlLCBUdWlJbnB1dE51bWJlciB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpSW5wdXRNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBwYWlyd2lzZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjTmV4dElucHV0Rm9jdXNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL25leHQtaW5wdXQtZm9jdXMvc2MtbmV4dC1pbnB1dC1mb2N1cy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NTZWxlY3RPbkZvY3VzaW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL3NlbGVjdC1vbi1mb2N1c2luL3NjLXNlbGVjdC1vbi1mb2N1c2luLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBzdGVwVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycy9zdGVwLXZhbGlkYXRvcic7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC00L7QsdCw0LLQu9C10L3QuNGPIC8g0LjQt9C80LXQvdC10L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLWFkZC1vci1lZGl0aW5nLWNhcnQtaXRlbS1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYWRkLW9yLWVkaXRpbmctY2FydC1pdGVtLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFNjTmV4dElucHV0Rm9jdXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aUxhYmVsLFxuICAgICAgICBTY1NlbGVjdE9uRm9jdXNpbkRpcmVjdGl2ZSxcbiAgICAgICAgVHVpTnVtYmVyRm9ybWF0LFxuICAgICAgICBUdWlFcnJvcixcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgICAgIFR1aVdpdGhBcHBlYXJhbmNlLFxuICAgICAgICBUdWlJY29ucyxcbiAgICAgICAgVHVpV2l0aEljb25zLFxuICAgICAgICBUdWlCdXR0b24sXG4gICAgICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgVHVpRmllbGRFcnJvclBpcGUsXG4gICAgICAgIFR1aUlucHV0TnVtYmVyLFxuICAgICAgICBUdWlOdW1iZXJGb3JtYXQsXG4gICAgICAgIFR1aVRleHRmaWVsZCxcbiAgICAgICAgVHVpQW1vdW50UGlwZSxcbiAgICAgICAgVHVpQ2hpcCxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0FkZE9yRWRpdGluZ0NhcnRJdGVtRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LTQvtCx0LDQstC70LXQvdC40Y8gLyDQuNC30LzQtdC90LXQvdC40Y8g0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cDx7XG4gICAgICAgIGxlbmd0aD86IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+O1xuICAgICAgICBxdWFudGl0eTogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD47XG4gICAgICAgIG1hcmtlcjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgfT4oe1xuICAgICAgICBxdWFudGl0eTogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBtYXJrZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPignJyksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0L4g0YLQvtCy0LDRgNC1LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBwcm9kdWN0ID0gaW5wdXQucmVxdWlyZWQ8U2NQcm9kdWN0PigpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQtNC70Y8g0YPQutCw0LfQsNC90L3QvtC5INC60LDRgtC10LPQvtGA0LjQuCDQuNC70Lgg0L/RgNC+0LTRg9C60YLQsCDQtNC10LnRgdGC0LLRg9C10YIg0LrQvtC90YTQuNCz0YPRgNCw0YLQvtGAINC00LvQuNC90YsuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTGVuZ3RoQ29uZmlndXJhdG9yID0gY29tcHV0ZWQoKCkgPT4gQm9vbGVhbih0aGlzLnByb2R1Y3QoKS5wcm9wZXJ0aWVzPy5bJ2lzTGVuZ3RoQ29uZmlndXJhdG9yJ10pKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDRgtC+0LLQsNGA0LUg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNhcnRJdGVtID0gaW5wdXQ8U2NDYXJ0SXRlbSB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpc0xvYWRpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC/0YDQvtC00LDQttC4INGC0L7QstCw0YDQsCDQvdCwINC80LXRgtGA0LDQti5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvZHVjdElzTWVhc3VyYWJsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudW5pdHNIZWxwZXIucHJvZHVjdElzTWVhc3VyYWJsZSh0aGlzLnByb2R1Y3QoKSkpO1xuXG4gICAgLyoqXG4gICAgICog0JrRgNCw0YLQvdC+0YHRgtGMINC60L7Qu9C40YfQtdGB0YLQstCwINC00LvRjyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb2R1Y3RNdWx0aXBsaWNpdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVuaXRzSGVscGVyLnByb2R1Y3RNdWx0aXBsaWNpdHkodGhpcy5wcm9kdWN0KCkpKTtcblxuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdGL0Lkg0LzQtdGC0YDQsNC2INC00LvRjyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1pbkxlbmd0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZHVjdCgpLnByb3BlcnRpZXM/Lm1pbkxlbmd0aCA/PyAodGhpcy5wcm9kdWN0KCkuaWdub3JlTWluQ291bnRDaGVjayA/IDAgOiB0aGlzLnByb2R1Y3QoKS5taW5Db3VudCkpO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INC80LXRgtGA0LDQtiDQtNC70Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXhMZW5ndGggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb2R1Y3QoKS5wcm9wZXJ0aWVzPy5tYXhMZW5ndGgpO1xuXG4gICAgLyoqXG4gICAgICog0KjQsNCzINC40LfQvNC10L3QtdC90LjRjyDQvNC10YLRgNCw0LbQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGVuZ3RoU3RlcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZHVjdCgpLnByb3BlcnRpZXM/Lmxlbmd0aFN0ZXAgPz8gKHRoaXMucHJvZHVjdCgpLmlnbm9yZU1pbkNvdW50Q2hlY2sgPyAwIDogdGhpcy5wcm9kdWN0KCkubWluQ291bnQpKTtcblxuICAgIC8qKlxuICAgICAqINCf0L7QtNGB0LrQsNC30LrQsCDQv9C+INC80LjQvdC40LzQsNC70YzQvdC+0LzRgyDQuCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LzRgyDQvNC10YLRgNCw0LbRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxlbmd0aEhpbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1pbiA9IHRoaXMubWluTGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IG1heCA9IHRoaXMubWF4TGVuZ3RoKCk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbmVzdGVkLWNvbmRpdGlvbmFsLCBzb25hcmpzL3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgcmV0dXJuIG1pbiB8fCBtYXggPyBgKCR7bWluID8gYNC+0YIgJHttaW59YCA6ICcnfSR7bWluICYmIG1heCA/ICcgJyA6ICcnfSR7bWF4ID8gYNC00L4gJHttYXh9YCA6ICcnfSAke3RoaXMucHJvZHVjdCgpLnVuaXQubmFtZX0pYCA6ICcnO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JjRgtC+0LPQvtCy0LDRjyDRgdGC0L7QuNC80L7RgdGC0Ywg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB0b3RhbENvc3QkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT3V0cHV0fSDRgdC+0LHRi9GC0LjRjyDQtNC+0LHQsNCy0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90YMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFkZFRvQ2FydCA9IG91dHB1dDxTY0lOZXdDYXJ0SXRlbUJhc2U+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT3V0cHV0fSDRgdC+0LHRi9GC0LjRjyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdENhcnRJdGVtID0gb3V0cHV0PE9taXQ8U2NJTmV3Q2FydEl0ZW1CYXNlLCAncHJvZHVjdElkJz4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIt0L/QvtC80L7RidC90LjQuiDQtNC70Y8g0YDQsNCx0L7RgtGLINGB0L4g0LfQvdCw0YfQtdC90LjRj9C80Lgg0LXQtNC40L3QuNGGINC40LfQvNC10YDQtdC90LjRjyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bml0c0hlbHBlcjogU2NVbml0c0hlbHBlciA9IGluamVjdChTY1VuaXRzSGVscGVyKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZSA9IGluamVjdChTY1VzZXJNZXRyaWthU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZSA9IGluamVjdChTY0NvbnZlcnRlcnNTZXJ2aWNlKTtcblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLmNhcnRJdGVtQWRkU2hvdyxcbiAgICAgICAgICAgIHBhcmFtczogeyBwcm9kdWN0X2lkOiB0aGlzLnByb2R1Y3QoKS5pZCB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0SXNNZWFzdXJhYmxlKCkpIHtcbiAgICAgICAgICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQv9C+0LvQtSDQstCy0L7QtNCwINC00LvQuNC90YssINC10YHQu9C4INGC0L7QstCw0YAg0LjQt9C80LXRgNGP0LXQvNGL0LkuXG4gICAgICAgICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnbGVuZ3RoJywgbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KHRoaXMuY2FydEl0ZW0oKT8ubGVuZ3RoID8/IHRoaXMubWluTGVuZ3RoKCkgPz8gMC4wMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDAuMDEpXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQtyDQutC+0YDQt9C40L3RiyDQuNC70Lgg0LrRgNCw0YLQvdC+0YHRgtC4INGC0L7QstCw0YDQsC5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgcXVhbnRpdHk6IHRoaXMuY2FydEl0ZW0oKT8ucXVhbnRpdHkgPz8gdGhpcy51bml0c0hlbHBlci5wcm9kdWN0TXVsdGlwbGljaXR5KHRoaXMucHJvZHVjdCgpKSxcbiAgICAgICAgICAgIG1hcmtlcjogdGhpcy5jYXJ0SXRlbSgpPy5tYXJrZXIgPz8gJycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmxlbmd0aFN0ZXAoKTtcblxuICAgICAgICBpZiAodGhpcy5pc0xlbmd0aENvbmZpZ3VyYXRvcigpICYmIHRoaXMubGVuZ3RoU3RlcCgpICYmIHRoaXMuZm9ybS5jb250cm9scy5xdWFudGl0eS52YWx1ZSAmJiBzdGVwKSB7XG4gICAgICAgICAgICAvLyDQldGB0LvQuCDQtdGB0YLRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YAg0LTQu9C40L3Riywg0YDQsNGB0YHRh9C40YLRi9Cy0LDQtdC8INC90LDRh9Cw0LvRjNC90L4g0LfQvdCw0YfQtdC90LjQtSDQtNC70LjQvdGLLlxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmxlbmd0aD8ucGF0Y2hWYWx1ZSh0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkudmFsdWUgKiBzdGVwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQstCw0LvQuNC00LDRhtC40Y4g0YjQsNCz0LAg0LTQu9GPINC60L7Qu9C40YfQtdGB0YLQstCwLlxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkuYWRkVmFsaWRhdG9ycyhzdGVwVmFsaWRhdG9yKHRoaXMudW5pdHNIZWxwZXIucHJvZHVjdFN0ZXBGb3JWYWxpZGF0b3IodGhpcy5wcm9kdWN0KCkpKSk7XG4gICAgICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQstCw0LvQuNC00LDRhtC40Y4g0YjQsNCz0LAg0LTQu9GPINC00LvQuNC90YsuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2xlbmd0aCcpPy5hZGRWYWxpZGF0b3JzKHN0ZXBWYWxpZGF0b3IodGhpcy5wcm9kdWN0KCkucHJvcGVydGllcz8ubGVuZ3RoU3RlcCA/PyAodGhpcy5wcm9kdWN0KCkuaWdub3JlTWluQ291bnRDaGVjayA/IDAgOiAodGhpcy5wcm9kdWN0KCkubWluQ291bnQgPz8gMCkpKSk7XG5cbiAgICAgICAgLy8g0KHRh9C40YLQsNC10Lwg0LjRgtC+0LPQvtCy0YPRjiDRgdGC0L7QuNC80L7RgdGC0Ywg0LfQsNC60LDQt9CwLlxuICAgICAgICB0aGlzLnRvdGFsQ29zdCQgPSB0dWlDb250cm9sVmFsdWU8e1xuICAgICAgICAgICAgbGVuZ3RoPzogbnVtYmVyO1xuICAgICAgICAgICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICAgICAgfT4odGhpcy5mb3JtKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLCAvLyDQmNGB0L/RgNCw0LLQu9GP0LXQvCDQvtGI0LjQsdC60YMgTkcwOTUwLlxuICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzLmxlbmd0aCA9PT0gY3VycmVudC5sZW5ndGggJiYgcHJldmlvdXMucXVhbnRpdHkgPT09IGN1cnJlbnQucXVhbnRpdHkpLCAvLyDQotC+0LvRjNC60L4g0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNC5XG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlIGFzIHsgbGVuZ3RoPzogbnVtYmVyOyBxdWFudGl0eTogbnVtYmVyIH0pLFxuICAgICAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgICAgIG1hcCgoW3ByZXZpb3VzLCBjdXJyZW50XSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdsZW5ndGgnKTtcblxuICAgICAgICAgICAgICAgIC8vINCV0YHQu9C4INC90LXRgiDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQsCDQtNC70LjQvdGLINC40LvQuCDQvdC10LrQvtGA0YDQtdC60YLQvdGL0LUg0LTQsNC90L3Ri9C1IOKAlCDQstC+0LfQstGA0LDRidCw0LXQvCDQsdC10Lcg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0xlbmd0aENvbmZpZ3VyYXRvcigpIHx8IGlzVW5kZWZpbmVkKGN1cnJlbnQubGVuZ3RoKSB8fCAhbGVuZ3RoQ29udHJvbCB8fCB0aGlzLmZvcm0uaW52YWxpZCB8fCAhc3RlcCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDQldGB0LvQuCDQuNC30LzQtdC90LjQu9C+0YHRjCDQutC+0LvQuNGH0LXRgdGC0LLQviDigJQg0L/QtdGA0LXRgdGH0LjRgtGL0LLQsNC10Lwg0LTQu9C40L3Rgy5cbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXMucXVhbnRpdHkgIT09IGN1cnJlbnQucXVhbnRpdHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzLnF1YW50aXR5LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtLmNvbnRyb2xzLnF1YW50aXR5LnZhbHVlICogc3RlcDtcbiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQ29udHJvbC5wYXRjaFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDQldGB0LvQuCDQuNC30LzQtdC90LjQu9Cw0YHRjCDQtNC70LjQvdCwIOKAlCDQv9C10YDQtdGB0YfQuNGC0YvQstCw0LXQvCDQutC+0LvQuNGH0LXRgdGC0LLQviDQuCDQstC+0LfQstGA0LDRidCw0LXQvCDQt9C90LDRh9C10L3QuNC1INC00LvQuNC90YsuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzLmxlbmd0aCAhPT0gY3VycmVudC5sZW5ndGggJiYgbGVuZ3RoQ29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGxlbmd0aENvbnRyb2wudmFsdWUgLyBzdGVwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkucGF0Y2hWYWx1ZShuZXdWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbGVuZ3RoOiBzdGVwLCBxdWFudGl0eTogbmV3VmFsdWUgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDQktC+0LfQstGA0LDRidCw0LXQvCDQuNGC0L7Qs9C+0LLRi9C1INC30L3QsNGH0LXQvdC40Y8g0LTQu9GPINGA0LDRgdGH0ZHRgtCwINGB0YLQvtC40LzQvtGB0YLQuC5cbiAgICAgICAgICAgICAgICByZXR1cm4geyBsZW5ndGg6IHN0ZXAsIHF1YW50aXR5OiBjdXJyZW50LnF1YW50aXR5IH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIC8vINCh0YfQuNGC0LDQtdC8INGB0YLQvtC40LzQvtGB0YLRjDog0YbQtdC90LAgKiDQtNC70LjQvdCwICog0LrQvtC70LjRh9C10YHRgtCy0L4uXG4gICAgICAgICAgICBtYXAoKHsgbGVuZ3RoLCBxdWFudGl0eSB9KSA9PiAodGhpcy5wcm9kdWN0KCkuY29zdFJ1YiA/PyAwKSAqIChsZW5ndGggPz8gMSkgKiBxdWFudGl0eSksXG4gICAgICAgICAgICBtYXAoKHN1bSkgPT4gTWF0aC5yb3VuZChzdW0gKiAxMDApIC8gMTAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INGB0L7QsdGL0YLQuNGPINGI0LDQs9CwINC80LXRgtGA0LDQttCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXAg0KjQsNCzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN0ZXBMZW5ndGgoc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxlbmd0aENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdsZW5ndGgnKTtcblxuICAgICAgICBpZiAoIXRoaXMucHJvZHVjdElzTWVhc3VyYWJsZSgpIHx8ICFsZW5ndGhDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZW5ndGggPSBsZW5ndGhDb250cm9sLnZhbHVlID8/IDA7XG4gICAgICAgIGxldCBuZXdMZW5ndGggPSBNYXRoLm1heCh0aGlzLm1pbkxlbmd0aCgpID8/IHN0ZXAsIGxlbmd0aCArIHN0ZXApO1xuICAgICAgICAvLyDQntC60YDRg9Cz0LvRj9C10Lwg0LTQviDQsdC70LjQttCw0LnRiNC10LPQviDQutGA0LDRgtC90L7Qs9C+INGH0LjRgdC70LAuXG4gICAgICAgIG5ld0xlbmd0aCA9IE1hdGgucm91bmQobmV3TGVuZ3RoIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICBsZW5ndGhDb250cm9sLnNldFZhbHVlKE51bWJlcihuZXdMZW5ndGgudG9GaXhlZCgyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INGB0L7QsdGL0YLQuNGPINGI0LDQs9CwINC60L7Qu9C40YfQtdGB0YLQstCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXAg0KjQsNCzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN0ZXBRdWFudGl0eShzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcXVhbnRpdHkgPSB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkudmFsdWUgPz8gMDtcblxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucXVhbnRpdHkuc2V0VmFsdWUoTWF0aC5tYXgodGhpcy5wcm9kdWN0TXVsdGlwbGljaXR5KCksIHF1YW50aXR5IC0gKHF1YW50aXR5ICUgc3RlcCkgKyBzdGVwKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0YHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10LwgbnVsbC3Qv9C+0LvRjyDQuNC3INC30L3QsNGH0LXQvdC40Y8g0YTQvtGA0LzRiy5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnJlbW92ZU51bGw8U2NJTmV3Q2FydEl0ZW1NZWFzdXJlZD4odGhpcy5mb3JtLnZhbHVlIGFzIFNjSU5ld0NhcnRJdGVtTWVhc3VyZWQpO1xuXG4gICAgICAgIC8vINCV0YHQu9C4INGN0YLQviDQtNC+0LHQsNCy0LvQtdC90LjQtSDQvdC+0LLQvtCz0L4g0YLQvtCy0LDRgNCwIOKAlCDQtNC+0LHQsNCy0LvRj9C10LwgcHJvZHVjdElkLlxuICAgICAgICBpZiAoIXRoaXMuY2FydEl0ZW0oKSkge1xuICAgICAgICAgICAgdmFsdWUucHJvZHVjdElkID0gdGhpcy5wcm9kdWN0KCkuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5sZW5ndGhTdGVwKCk7XG5cbiAgICAgICAgLy8g0JXRgdC70Lgg0YLQvtCy0LDRgCDQuNC30LzQtdGA0Y/QtdC80YvQuSDQuCDQtdGB0YLRjCDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YAg0LTQu9C40L3RiyDigJQg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0LTQu9C40L3RgyDQv9C+INGI0LDQs9GDICjQutC+0LvQuNGH0LXRgdGC0LLQviDRg9C20LUg0LHRg9C00LXRgiDQstGL0YfQuNGB0LvQtdC90L4g0L/QviDRhNC+0YDQvNGD0LvQtSDQnNC10YLRgNCw0LYvbWluLWNvdW50KVxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0SXNNZWFzdXJhYmxlKCkgJiYgdGhpcy5pc0xlbmd0aENvbmZpZ3VyYXRvcigpICYmIHN0ZXApIHtcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA9IHN0ZXA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDQn9C+0LzQtdGH0LDQtdC8INCy0YHQtSDQv9C+0LvRjyDRhNC+0YDQvNGLINC60LDQuiBcInRvdWNoXCIg0Lgg0LfQsNC/0YPRgdC60LDQtdC8INCy0LDQu9C40LTQsNGG0LjRjiDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQvtGI0LjQsdC+0Log0YEg0YHQtdGA0LLQtdGA0LAuXG4gICAgICAgIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUodGhpcy5mb3JtKTtcblxuICAgICAgICAvLyDQkiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0YDQtdC20LjQvNCwIOKAlCDRgNC10LTQsNC60YLQuNGA0YPQtdC8INC40LvQuCDQtNC+0LHQsNCy0LvRj9C10Lwg0YLQvtCy0LDRgC5cbiAgICAgICAgaWYgKHRoaXMuY2FydEl0ZW0oKSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0Q2FydEl0ZW0uZW1pdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRvQ2FydC5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjwhLS0g0KTQvtGA0LzQsCDQtNC+0LHQsNCy0LvQtdC90LjRjyDQuNC30LzQtdGA0Y/QtdC80L7Qs9C+INGC0L7QstCw0YDQsC4gLS0+XG48Zm9ybVxuICAgICpuZ0lmPVwicHJvZHVjdFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiXG4gICAgU2NOZXh0SW5wdXRGb2N1c1xuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiXG4+XG4gICAgQGxldCBzdGVwID0gbGVuZ3RoU3RlcCgpO1xuXG4gICAgPCEtLSDQlNC70LjQvdCwINGC0L7QstCw0YDQsCAo0LzQtdGC0YDQsNC2KSAtLT5cbiAgICA8bGFiZWxcbiAgICAgICAgKm5nSWY9XCJwcm9kdWN0SXNNZWFzdXJhYmxlKClcIlxuICAgICAgICB0dWlMYWJlbFxuICAgID5cbiAgICAgICAg0JzQtdGC0YDQsNC2LCB7eyBwcm9kdWN0KCkudW5pdC5uYW1lIH19XG4gICAgICAgIEBpZiAoIXN0ZXAgfHwgbWF4TGVuZ3RoKCkpIHtcbiAgICAgICAgICAgIHt7IGxlbmd0aEhpbnQoKSB9fVxuICAgICAgICB9XG5cbiAgICAgICAgPHR1aS10ZXh0ZmllbGQ+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0dWlJbnB1dE51bWJlclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3R1aU51bWJlckZvcm1hdF09XCJ7IHByZWNpc2lvbjogMiB9XCJcbiAgICAgICAgICAgICAgICBbbWF4XT1cIm1heExlbmd0aCgpIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgIFttaW5dPVwibWluTGVuZ3RoKCkgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uU3RlcExlbmd0aCgtKGxlbmd0aFN0ZXAoKSA/PyAwLjAxKSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwib25TdGVwTGVuZ3RoKGxlbmd0aFN0ZXAoKSA/PyAwLjAxKVwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibGVuZ3RoXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVuZ3RoXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxwXG4gICAgICAgICAgICAqbmdJZj1cImxlbmd0aFN0ZXAoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInR1aS1mb3JtX19maWVsZC1ub3RlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAg0JzQtdGC0YDQsNC2INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQutGA0LDRgtC10L0ge3sgbGVuZ3RoU3RlcCgpIH19XG4gICAgICAgIDwvcD5cbiAgICA8L2xhYmVsPlxuXG4gICAgPCEtLSDQmtC+0LvQuNGH0LXRgdGC0LLQviDRgtC+0LLQsNGA0LAgLS0+XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICDQmtC+0LvQuNGH0LXRgdGC0LLQviwg0YjRgi5cbiAgICAgICAgPHR1aS10ZXh0ZmllbGQ+XG4gICAgICAgICAgICA8dHVpLWNoaXBcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTGVuZ3RoQ29uZmlndXJhdG9yKCkgJiYgcHJvZHVjdE11bHRpcGxpY2l0eSgpICYmIHN0ZXBcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwibmVnYXRpdmVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9udC1ib2xkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB4IHt7IHN0ZXAgfX0ge3sgcHJvZHVjdCgpLnVuaXQubmFtZSB9fVxuICAgICAgICAgICAgPC90dWktY2hpcD5cblxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQmtC+0LvQuNGH0LXRgdGC0LLQvlwiXG4gICAgICAgICAgICAgICAgdHVpSW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICBbdHVpTnVtYmVyRm9ybWF0XT1cInsgZGVjaW1hbE1vZGU6ICdub3QtemVybycgfVwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJwcm9kdWN0TXVsdGlwbGljaXR5KClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJvblN0ZXBRdWFudGl0eSgtcHJvZHVjdE11bHRpcGxpY2l0eSgpKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJvblN0ZXBRdWFudGl0eShwcm9kdWN0TXVsdGlwbGljaXR5KCkpXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJxdWFudGl0eVwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwicXVhbnRpdHlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC90dWktdGV4dGZpZWxkPlxuICAgICAgICA8cCBjbGFzcz1cInR1aS1mb3JtX19maWVsZC1ub3RlXCI+0JrQvtC70LjRh9C10YHRgtCy0L4g0LTQvtC70LbQvdC+INCx0YvRgtGMINC60YDQsNGC0L3QviB7eyBwcm9kdWN0TXVsdGlwbGljaXR5KCkgfX08L3A+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInF1YW50aXR5XCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIDwhLS0g0JzQsNGA0LrQuNGA0L7QstC60LAgLS0+XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICDQnNCw0YDQutC40YDQvtCy0LrQsFxuICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cIm1hcmtlclwiPlxuICAgICAgICAgICAg0JzQsNGA0LrQuNGA0L7QstC60LBcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm1hcmtlclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWFya2VyXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIDwhLS0g0JrQvdC+0L/QutCwINC00L7QsdCw0LLQu9C10L3QuNGPIC8g0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90YMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIEBsZXQgY29zdCA9IHRvdGFsQ29zdCQgfCBhc3luYztcblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29zdFwiPlxuICAgICAgICAgICAg0JjRgtC+0LPQvjo8c3BhbiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgIHt7IGNvc3QgfCB0dWlBbW91bnQgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QoKS5jdXJyZW5jeS5zeW1ib2wgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSDQmtC90L7Qv9C60LAg0LTQvtCx0LDQstC70LXQvdC40Y8gLyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3RgyAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLmNoZWNrXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBjbGFzcz1cIm10LTJcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBjYXJ0SXRlbSgpID8gJ9CY0LfQvNC10L3QuNGC0YwnIDogJ9CU0L7QsdCw0LLQuNGC0Ywg0LIg0LrQvtGA0LfQuNC90YMnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './sandwich';
2
+ export * from './models';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29uZmlndXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2FuZHdpY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './sandwich/sc-i-sandwich-settings';
2
+ export * from './sandwich/sc-i-configurator-search-product-sandwich';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29uZmlndXJhdG9ycy9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNEQUFzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zYW5kd2ljaC9zYy1pLXNhbmR3aWNoLXNldHRpbmdzJztcbmV4cG9ydCAqIGZyb20gJy4vc2FuZHdpY2gvc2MtaS1jb25maWd1cmF0b3Itc2VhcmNoLXByb2R1Y3Qtc2FuZHdpY2gnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jb25maWd1cmF0b3Itc2VhcmNoLXByb2R1Y3Qtc2FuZHdpY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29uZmlndXJhdG9ycy9tb2RlbHMvc2FuZHdpY2gvc2MtaS1jb25maWd1cmF0b3Itc2VhcmNoLXByb2R1Y3Qtc2FuZHdpY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjSUNvbmZpZ3VyYXRvclNlYXJjaFByb2R1Y3RCYXNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5cbi8qKlxuICog0JzQvtC00LXQu9GMINC00LDQvdC90YvRhSDQutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0LTQu9GPINC/0L7QuNGB0LrQsCDQv9C+0LTRhdC+0LTRj9GJ0LXQs9C+INGC0L7QstCw0YDQsCDRgSDQv9C+0LzQvtGJ0YzRjiDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQsCDRgNCw0YHQv9C40LvQsCDRgdGN0L3QtNCy0LjRhy3Qv9Cw0L3QtdC70LXQuS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY0lDb25maWd1cmF0b3JTZWFyY2hQcm9kdWN0U2FuZHdpY2ggZXh0ZW5kcyBTY0lDb25maWd1cmF0b3JTZWFyY2hQcm9kdWN0QmFzZSB7XG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LfQsNC/0LjRgdC4INC/0YDQvtC00YPQutGC0LAuXG4gICAgICovXG4gICAgcHJvZHVjdElkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQt9Cw0L/QuNGB0Lgg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHByb2R1Y3RDYXRlZ29yeUlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgNCw0YHRh9C10YLQsC5cbiAgICAgKi9cbiAgICBjYWxjdWxhdGlvbklkOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDQv9GA0L7QtNGD0LrRgtCwLlxuICAgICAqL1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1zYW5kd2ljaC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb25maWd1cmF0b3JzL21vZGVscy9zYW5kd2ljaC9zYy1pLXNhbmR3aWNoLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY0lDb25maWd1cmF0b3JTZXR0aW5nc0Jhc2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcblxuLyoqXG4gKiDQnNC+0LTQtdC70Ywg0LTQsNC90L3Ri9GFINC90LDRgdGC0YDQvtC10Log0LTQu9GPINC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgNCwINGB0Y3QvdC00LLQuNGHLdC/0LDQvdC10LvQtdC5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjSVNhbmR3aWNoU2V0dGluZ3MgZXh0ZW5kcyBTY0lDb25maWd1cmF0b3JTZXR0aW5nc0Jhc2Uge1xuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0YjQuNGA0LjQvdCwINC40LfQtNC10LvQuNGPINCyINC80LjQu9C70LjQvNC10YLRgNCw0YUuXG4gICAgICovXG4gICAgbWluV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0LTQu9C40L3QsCDQuNC30LTQtdC70LjRjyDQsiDQvNC40LvQu9C40LzQtdGC0YDQsNGFLlxuICAgICAqL1xuICAgIG1pbkxlbmd0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQsiDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQtSDRgNCw0LfRgNC10YjQtdC90L4g0L/RgNC+0YHQvNCw0YLRgNC40LLQsNGC0Ywg0YLQvtCy0LDRgNGLINCyINCy0LjQtNC1INGC0LDQsdC70LjRhtGLLlxuICAgICAqL1xuICAgIGFsbG93U2hvd1RhYmxlOiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './sc-sandwich.component';
2
+ export * from './sandwich-skeleton/sc-sandwich-skeleton.component';
3
+ export * from './sc-i-new-cart-item-sandwich';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29uZmlndXJhdG9ycy9zYW5kd2ljaC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2Mtc2FuZHdpY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2FuZHdpY2gtc2tlbGV0b24vc2Mtc2FuZHdpY2gtc2tlbGV0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1uZXctY2FydC1pdGVtLXNhbmR3aWNoJztcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Skeleton конфигуратора сэндвич-панелей.
5
+ */
6
+ export class ScSandwichSkeletonComponent {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSandwichSkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScSandwichSkeletonComponent, isStandalone: true, selector: "sc-sandwich-skeleton", ngImport: i0, template: "<div class=\"w-100\">\n <div class=\"flex flex-col gap-3\">\n <!-- \u041F\u043E\u043B\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0442\u043E\u0432\u0430\u0440\u0430. -->\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n\n <!-- \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \"\u0420\u0430\u0437\u043C\u0435\u0440\u044B \u0438\u0437\u0434\u0435\u043B\u0438\u0439\". -->\n <div class=\"my-1.5 h-5 w-1/3 rounded bg-sc-light-grey\"></div>\n\n <!-- \u0422\u0435\u043A\u0441\u0442 \u0441 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C\u0438. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n </div>\n\n <!-- \u0411\u043B\u043E\u043A \u0441 \u0438\u0437\u0434\u0435\u043B\u0438\u044F\u043C\u0438. -->\n <div class=\"flex flex-col gap-3\">\n <!-- \u041F\u0435\u0440\u0432\u043E\u0435 \u0438\u0437\u0434\u0435\u043B\u0438\u0435. -->\n <div class=\"flex grow gap-4\">\n <div class=\"grid grow grid-cols-3 gap-4\">\n <!-- \u0428\u0438\u0440\u0438\u043D\u0430. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-1/2 rounded bg-sc-light-grey\"></div>\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-1/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-2 w-2/3 rounded bg-sc-light-grey\"></div>\n </div>\n <!-- \u0414\u043B\u0438\u043D\u0430. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-1/2 rounded bg-sc-light-grey\"></div>\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-1/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-2 w-2/3 rounded bg-sc-light-grey\"></div>\n </div>\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-1/2 rounded bg-sc-light-grey\"></div>\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n </div>\n </div>\n <div class=\"mt-6 size-8 shrink-0 rounded-sm bg-sc-light-grey\"></div>\n </div>\n </div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u0434\u0435\u043B\u0438\u0435\". -->\n <button\n tuiButton\n appearance=\"secondary\"\n class=\"sc-skeleton self-center\"\n ></button>\n\n <!-- \u041F\u043E\u043B\u0435 \"\u0418\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0438\u0441\u0442\u043E\u0432\". -->\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n\n <!-- \u041F\u043E\u043B\u0435 \"\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\". -->\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n\n <!-- \u0418\u0442\u043E\u0433\u043E\u0432\u0430\u044F \u0441\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C. -->\n <div class=\"my-2.5 h-6 w-1/3 rounded bg-sc-light-grey\"></div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438. -->\n <button\n tuiButton\n class=\"sc-skeleton self-center\"\n ></button>\n </div>\n</div>\n" }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScSandwichSkeletonComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ standalone: true, selector: 'sc-sandwich-skeleton', template: "<div class=\"w-100\">\n <div class=\"flex flex-col gap-3\">\n <!-- \u041F\u043E\u043B\u0435 \u0432\u044B\u0431\u043E\u0440\u0430 \u0442\u043E\u0432\u0430\u0440\u0430. -->\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n\n <!-- \u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \"\u0420\u0430\u0437\u043C\u0435\u0440\u044B \u0438\u0437\u0434\u0435\u043B\u0438\u0439\". -->\n <div class=\"my-1.5 h-5 w-1/3 rounded bg-sc-light-grey\"></div>\n\n <!-- \u0422\u0435\u043A\u0441\u0442 \u0441 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043C\u0438. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-2/3 rounded bg-sc-light-grey\"></div>\n </div>\n\n <!-- \u0411\u043B\u043E\u043A \u0441 \u0438\u0437\u0434\u0435\u043B\u0438\u044F\u043C\u0438. -->\n <div class=\"flex flex-col gap-3\">\n <!-- \u041F\u0435\u0440\u0432\u043E\u0435 \u0438\u0437\u0434\u0435\u043B\u0438\u0435. -->\n <div class=\"flex grow gap-4\">\n <div class=\"grid grow grid-cols-3 gap-4\">\n <!-- \u0428\u0438\u0440\u0438\u043D\u0430. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-1/2 rounded bg-sc-light-grey\"></div>\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-1/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-2 w-2/3 rounded bg-sc-light-grey\"></div>\n </div>\n <!-- \u0414\u043B\u0438\u043D\u0430. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-1/2 rounded bg-sc-light-grey\"></div>\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n <div class=\"my-1 h-3 w-1/3 rounded bg-sc-light-grey\"></div>\n <div class=\"my-1 h-2 w-2/3 rounded bg-sc-light-grey\"></div>\n </div>\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E. -->\n <div class=\"flex flex-col gap-1\">\n <div class=\"my-1 h-3 w-1/2 rounded bg-sc-light-grey\"></div>\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n </div>\n </div>\n <div class=\"mt-6 size-8 shrink-0 rounded-sm bg-sc-light-grey\"></div>\n </div>\n </div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u0434\u0435\u043B\u0438\u0435\". -->\n <button\n tuiButton\n appearance=\"secondary\"\n class=\"sc-skeleton self-center\"\n ></button>\n\n <!-- \u041F\u043E\u043B\u0435 \"\u0418\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0438\u0441\u0442\u043E\u0432\". -->\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n\n <!-- \u041F\u043E\u043B\u0435 \"\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\". -->\n <div class=\"mb-4 mt-2 h-10 w-full rounded-sm bg-sc-light-grey\"></div>\n\n <!-- \u0418\u0442\u043E\u0433\u043E\u0432\u0430\u044F \u0441\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C. -->\n <div class=\"my-2.5 h-6 w-1/3 rounded bg-sc-light-grey\"></div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438. -->\n <button\n tuiButton\n class=\"sc-skeleton self-center\"\n ></button>\n </div>\n</div>\n" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2FuZHdpY2gtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbmZpZ3VyYXRvcnMvc2FuZHdpY2gvc2FuZHdpY2gtc2tlbGV0b24vc2Mtc2FuZHdpY2gtc2tlbGV0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbmZpZ3VyYXRvcnMvc2FuZHdpY2gvc2FuZHdpY2gtc2tlbGV0b24vc2Mtc2FuZHdpY2gtc2tlbGV0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7O0dBRUc7QUFNSCxNQUFNLE9BQU8sMkJBQTJCOytHQUEzQiwyQkFBMkI7bUdBQTNCLDJCQUEyQixnRkNWeEMsKytIQW9FQTs7NEZEMURhLDJCQUEyQjtrQkFMdkMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2tlbGV0b24g0LrQvtC90YTQuNCz0YPRgNCw0YLQvtGA0LAg0YHRjdC90LTQstC40Yct0L/QsNC90LXQu9C10LkuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1zYW5kd2ljaC1za2VsZXRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXNhbmR3aWNoLXNrZWxldG9uLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTYW5kd2ljaFNrZWxldG9uQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwidy0xMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICA8IS0tINCf0L7Qu9C1INCy0YvQsdC+0YDQsCDRgtC+0LLQsNGA0LAuIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCBtdC0yIGgtMTAgdy1mdWxsIHJvdW5kZWQtc20gYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuXG4gICAgICAgIDwhLS0g0JfQsNCz0L7Qu9C+0LLQvtC6IFwi0KDQsNC30LzQtdGA0Ysg0LjQt9C00LXQu9C40LlcIi4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS0xLjUgaC01IHctMS8zIHJvdW5kZWQgYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuXG4gICAgICAgIDwhLS0g0KLQtdC60YHRgiDRgSDQv9Cw0YDQsNC80LXRgtGA0LDQvNC4LiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0xIGgtMyB3LTIvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0xIGgtMyB3LTIvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0xIGgtMyB3LTIvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0xIGgtMyB3LTIvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSDQkdC70L7QuiDRgSDQuNC30LTQtdC70LjRj9C80LguIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICAgICAgICAgICAgPCEtLSDQn9C10YDQstC+0LUg0LjQt9C00LXQu9C40LUuIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ3JvdyBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyb3cgZ3JpZC1jb2xzLTMgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSDQqNC40YDQuNC90LAuIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTEgaC0zIHctMS8yIHJvdW5kZWQgYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgbXQtMiBoLTEwIHctZnVsbCByb3VuZGVkLXNtIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0xIGgtMyB3LTEvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0xIGgtMiB3LTIvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0g0JTQu9C40L3QsC4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMSBoLTMgdy0xLzIgcm91bmRlZCBiZy1zYy1saWdodC1ncmV5XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCBtdC0yIGgtMTAgdy1mdWxsIHJvdW5kZWQtc20gYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTEgaC0zIHctMS8zIHJvdW5kZWQgYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTEgaC0yIHctMi8zIHJvdW5kZWQgYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSDQmtC+0LvQuNGH0LXRgdGC0LLQvi4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMSBoLTMgdy0xLzIgcm91bmRlZCBiZy1zYy1saWdodC1ncmV5XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCBtdC0yIGgtMTAgdy1mdWxsIHJvdW5kZWQtc20gYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNiBzaXplLTggc2hyaW5rLTAgcm91bmRlZC1zbSBiZy1zYy1saWdodC1ncmV5XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSDQmtC90L7Qv9C60LAgXCLQlNC+0LHQsNCy0LjRgtGMINC40LfQtNC10LvQuNC1XCIuIC0tPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgY2xhc3M9XCJzYy1za2VsZXRvbiBzZWxmLWNlbnRlclwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8IS0tINCf0L7Qu9C1IFwi0JjRgtC+0LPQvtCy0L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQu9C40YHRgtC+0LJcIi4gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi00IG10LTIgaC0xMCB3LWZ1bGwgcm91bmRlZC1zbSBiZy1zYy1saWdodC1ncmV5XCI+PC9kaXY+XG5cbiAgICAgICAgPCEtLSDQn9C+0LvQtSBcItCc0LDRgNC60LjRgNC+0LLQutCwXCIuIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCBtdC0yIGgtMTAgdy1mdWxsIHJvdW5kZWQtc20gYmctc2MtbGlnaHQtZ3JleVwiPjwvZGl2PlxuXG4gICAgICAgIDwhLS0g0JjRgtC+0LPQvtCy0LDRjyDRgdGC0L7QuNC80L7RgdGC0YwuIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXktMi41IGgtNiB3LTEvMyByb3VuZGVkIGJnLXNjLWxpZ2h0LWdyZXlcIj48L2Rpdj5cblxuICAgICAgICA8IS0tINCa0L3QvtC/0LrQsCDQvtGC0L/RgNCw0LLQutC4LiAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNjLXNrZWxldG9uIHNlbGYtY2VudGVyXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1uZXctY2FydC1pdGVtLXNhbmR3aWNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbmZpZ3VyYXRvcnMvc2FuZHdpY2gvc2MtaS1uZXctY2FydC1pdGVtLXNhbmR3aWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY0lOZXdDYXJ0SXRlbUJhc2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcblxuLyoqXG4gKiDQnNC+0LTQtdC70Ywg0LTQsNC90L3Ri9GFINGC0L7QstCw0YDQsCwg0LrQvtGC0L7RgNGL0Lkg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LTQvtCx0LDQstC40YLRjCDQsiDQutC+0YDQt9C40L3Rgywg0LjRgdC/0L7Qu9GM0LfRg9GPINC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgCDRgNCw0YHQv9C40LvQsCDRgdGN0L3QtNCy0LjRhy3Qv9Cw0L3QtdC70LXQuS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY0lOZXdDYXJ0SXRlbVNhbmR3aWNoIGV4dGVuZHMgU2NJTmV3Q2FydEl0ZW1CYXNlIHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQt9Cw0L/QuNGB0Lgg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHByb2R1Y3RDYXRlZ29yeUlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRgNCw0YHRh9C10YLQsC5cbiAgICAgKi9cbiAgICBjYWxjdWxhdGlvbklkOiBzdHJpbmc7XG59XG4iXX0=