@snabcentr/client-ui 1.8.0 → 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +6 -0
- package/directives/index.d.ts +1 -0
- package/esm2020/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +16 -7
- package/esm2020/directives/index.mjs +2 -1
- package/fesm2015/snabcentr-client-ui.mjs +63 -54
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +63 -54
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts
CHANGED
@@ -13,6 +13,12 @@ export declare class ScAddDeliveryAddressDialogComponent implements AfterViewIni
|
|
13
13
|
private readonly userMetrikaService;
|
14
14
|
readonly context: TuiDialogContext<void, void>;
|
15
15
|
private readonly convertersService;
|
16
|
+
/**
|
17
|
+
* Округляет координаты до 6 цифр после запятой.
|
18
|
+
*
|
19
|
+
* @param coords Координаты точки.
|
20
|
+
*/
|
21
|
+
private static roundCoordinate;
|
16
22
|
/**
|
17
23
|
* Признак того, отображается этот компонент на мобильном устройстве или нет.
|
18
24
|
*/
|
package/directives/index.d.ts
CHANGED
@@ -2,4 +2,5 @@ export * from './next-input-focus/sc-next-input-focus.directive';
|
|
2
2
|
export * from './next-input-focus/sc-next-input-focus.module';
|
3
3
|
export * from './abstract-price-card/abstract-sc-price-card.directive';
|
4
4
|
export * from './tel-link/sc-tel-link.directive';
|
5
|
+
export * from './tel-link/sc-tel-link.module';
|
5
6
|
export * from './terminal-link/sc-terminal-link.directive';
|
@@ -1,3 +1,4 @@
|
|
1
|
+
var ScAddDeliveryAddressDialogComponent_1;
|
1
2
|
import { __decorate } from "tslib";
|
2
3
|
/* eslint-disable @typescript-eslint/unbound-method,lodash/prefer-lodash-method */
|
3
4
|
import { HttpErrorResponse } from '@angular/common/http';
|
@@ -19,7 +20,7 @@ import * as i7 from "angular8-yandex-maps";
|
|
19
20
|
/**
|
20
21
|
* Компонент добавления адреса доставки.
|
21
22
|
*/
|
22
|
-
let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogComponent {
|
23
|
+
let ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = class ScAddDeliveryAddressDialogComponent {
|
23
24
|
/**
|
24
25
|
* Инициализирует экземпляр класса {@link ScAddDeliveryAddressDialogComponent}.
|
25
26
|
*
|
@@ -105,6 +106,14 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
105
106
|
}),
|
106
107
|
});
|
107
108
|
}
|
109
|
+
/**
|
110
|
+
* Округляет координаты до 6 цифр после запятой.
|
111
|
+
*
|
112
|
+
* @param coords Координаты точки.
|
113
|
+
*/
|
114
|
+
static roundCoordinate(coords) {
|
115
|
+
return coords.map((coord) => Math.round(coord * 1e6) / 1e6);
|
116
|
+
}
|
108
117
|
/** @inheritdoc */
|
109
118
|
ngAfterViewInit() {
|
110
119
|
this.userMetrikaService.emitUserMetrikaEvent({
|
@@ -137,7 +146,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
137
146
|
*/
|
138
147
|
onSelectedAddress(suggestion) {
|
139
148
|
if ('addressString' in suggestion && suggestion.geoCoordinates) {
|
140
|
-
const coords = [suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long];
|
149
|
+
const coords = ScAddDeliveryAddressDialogComponent_1.roundCoordinate([suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long]);
|
141
150
|
if (!this.addressPlacemark) {
|
142
151
|
this.addressPlacemark = this.createPlacemark(coords);
|
143
152
|
}
|
@@ -162,8 +171,8 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
162
171
|
this.addressPlacemark.geometry?.setCoordinates(coords);
|
163
172
|
this.form.patchValue({
|
164
173
|
coordinates: {
|
165
|
-
lat: coords[0],
|
166
|
-
long: coords[1],
|
174
|
+
lat: Number(coords[0].toFixed(6)),
|
175
|
+
long: Number(coords[1].toFixed(6)),
|
167
176
|
},
|
168
177
|
});
|
169
178
|
}
|
@@ -199,7 +208,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
199
208
|
placemark.events.add('dragend', () => {
|
200
209
|
const coord = this.addressPlacemark?.geometry?.getCoordinates();
|
201
210
|
if (coord) {
|
202
|
-
this.setGeoCoordinates(coord);
|
211
|
+
this.setGeoCoordinates(ScAddDeliveryAddressDialogComponent_1.roundCoordinate(coord));
|
203
212
|
}
|
204
213
|
});
|
205
214
|
return placemark;
|
@@ -207,7 +216,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
207
216
|
};
|
208
217
|
ScAddDeliveryAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, deps: [{ token: i1.ScDeliveryAddressService }, { token: i1.ScUserMetrikaService }, { token: POLYMORPHEUS_CONTEXT }, { token: i1.ScConvertersService }], target: i0.ɵɵFactoryTarget.Component });
|
209
218
|
ScAddDeliveryAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScAddDeliveryAddressDialogComponent, selector: "sc-add-delivery-address-dialog", ngImport: i0, template: "<div class=\"relative flex flex-col gap-3 md:flex-row\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex w-full flex-col gap-3\"\n >\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\">\n <tui-input\n [pseudoInvalid]=\"(addressControl.valid && form.controls.coordinates.invalid) || null\"\n formControlName=\"address\"\n >\n \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n (selectedClick)=\"onSelectedAddress($event)\"\n ></sc-suggestion-field>\n <input\n tuiTextfield\n autocomplete=\"new-password\"\n />\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n <tui-error\n *ngIf=\"addressControl.valid && form.controls.coordinates.invalid\"\n error=\"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430\"\n ></tui-error>\n </label>\n <div\n formGroupName=\"contact\"\n class=\"flex grow flex-col gap-2\"\n >\n <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n <label tuiLabel=\"\u0424.\u0418.\u041E.\">\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0422\u0435\u043B\u0435\u0444\u043E\u043D\">\n <tui-input-phone formControlName=\"phone\"> \u0422\u0435\u043B\u0435\u0444\u043E\u043D </tui-input-phone>\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\">\n <tui-input formControlName=\"email\">\n <input\n tuiTextfield\n type=\"email\"\n />\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\">\n <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n <tui-error\n formControlName=\"position\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n </div>\n <div class=\"flex justify-center gap-8\">\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n [icon]=\"isMobile ? 'tuiIconX' : 'tuiIconXLarge'\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [icon]=\"isMobile ? 'tuiIconSave' : 'tuiIconSaveLarge'\"\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n </button>\n </div>\n </form>\n\n <div\n class=\"absolute -z-10 flex size-full md:w-1/2\"\n [ngClass]=\"{ 'z-0 relative': addressPlacemark }\"\n >\n <div\n class=\"flex-auto\"\n [ngClass]=\"{ 'pointer-events-none opacity-50': form.controls.coordinates.invalid }\"\n >\n <ya-map\n [zoom]=\"11\"\n [state]=\"{ controls: [] }\"\n (ready)=\"onMapReadyHandle($event)\"\n [options]=\"options\"\n ></ya-map>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "component", type: i3.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i5.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i5.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i5.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i5.TuiInputPhoneDirective, selector: "tui-input-phone" }, { kind: "component", type: i6.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "directive", type: i3.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i7.YaMapComponent, selector: "ya-map", inputs: ["center", "zoom", "state", "options"], outputs: ["ready", "actionbegin", "actionbreak", "actionend", "actiontick", "actiontickcomplete", "balloonclose", "balloonopen", "boundschange", "yaclick", "yacontextmenu", "yadblclick", "destroy", "hintclose", "hintopen", "marginchange", "yamousedown", "yamouseenter", "yamouseleave", "yamousemove", "yamouseup", "multitouchend", "multitouchmove", "multitouchstart", "optionschange", "sizechange", "typechange", "yawheel"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
210
|
-
ScAddDeliveryAddressDialogComponent = __decorate([
|
219
|
+
ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = __decorate([
|
211
220
|
UntilDestroy({ checkProperties: true })
|
212
221
|
], ScAddDeliveryAddressDialogComponent);
|
213
222
|
export { ScAddDeliveryAddressDialogComponent };
|
@@ -218,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
218
227
|
type: Inject,
|
219
228
|
args: [POLYMORPHEUS_CONTEXT]
|
220
229
|
}] }, { type: i1.ScConvertersService }]; } });
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9kZWxpdmVyeS1hZGRyZXNzL2FkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RlbGl2ZXJ5LWFkZHJlc3MvYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0ZBQWtGO0FBRWxGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBTUgsaUJBQWlCLEVBRWpCLHNCQUFzQixHQUV6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFFMUc7O0dB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QUNKLENBQUM7UUFFRixTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUM7WUFFaEUsSUFBSSxLQUFLLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOztnSUFqUFEsbUNBQW1DLDhGQW1IaEMsb0JBQW9CO29IQW5IdkIsbUNBQW1DLHNFQ2pDaEQscXFLQXdIQTtBRHZGYSxtQ0FBbUM7SUFEL0MsWUFBWSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO0dBQzNCLG1DQUFtQyxDQWtQL0M7U0FsUFksbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0ksZ0NBQWdDLG1CQUV6Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkFzSDFDLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kLGxvZGFzaC9wcmVmZXItbG9kYXNoLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1xuICAgIFNjQ29udmVydGVyc1NlcnZpY2UsXG4gICAgU2NEZWxpdmVyeUFkZHJlc3NTZXJ2aWNlLFxuICAgIFNjSURlbGl2ZXJ5QWRkcmVzcyxcbiAgICBTY0lEZWxpdmVyeUFkZHJlc3NPbkRhdGFDcmVhdGUsXG4gICAgU2NJU3VnZ2VzdGlvbkFkZHJlc3MsXG4gICAgU2NJU3VnZ2VzdGlvblR5cGUsXG4gICAgU2NTdWdnZXN0aW9uLFxuICAgIFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sXG4gICAgU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG59IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVFVJX0lTX01PQklMRSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpRGlhbG9nQ29udGV4dCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFBPTFlNT1JQSEVVU19DT05URVhUIH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7IFlhUmVhZHlFdmVudCB9IGZyb20gJ2FuZ3VsYXI4LXlhbmRleC1tYXBzJztcbmltcG9ydCB7IEFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICdwcm9qZWN0cy9jbGllbnQtdWkvYXV0aCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC00L7QsdCw0LLQu9C10L3QuNGPINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuQFVudGlsRGVzdHJveSh7IGNoZWNrUHJvcGVydGllczogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFNjQWRkRGVsaXZlcnlBZGRyZXNzRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC+0YLQvtCx0YDQsNC20LDQtdGC0YHRjyDRjdGC0L7RgiDQutC+0LzQv9C+0L3QtdC90YIg0L3QsCDQvNC+0LHQuNC70YzQvdC+0Lwg0YPRgdGC0YDQvtC50YHRgtCy0LUg0LjQu9C4INC90LXRgi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4gPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0YLQuNC/0L7QsiDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHN1Z2dlc3Rpb25UeXBlOiB0eXBlb2YgU2NJU3VnZ2VzdGlvblR5cGUgPSBTY0lTdWdnZXN0aW9uVHlwZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9uU3VibWl0JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0L7RgNC00LjQvdCw0YLRiyDRhtC10L3RgtGA0LAg0LrQsNGA0YLRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENlbnRlck1hcDogbnVtYmVyW10gPSBbNTcuMDAwMzUzLCA0MC45NzM5M107XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHRiNGC0LDQsSDQutCw0YDRgtGLINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkZWZhdWx0Wm9vbU1hcDogbnVtYmVyID0gMTE7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINC00L7QsdCw0LLQu9C10L3QuNGPINCw0LTRgNC10YEg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFNjSURlbGl2ZXJ5QWRkcmVzcyB8IG51bGw+ID0gdGhpcy5vblN1Ym1pdCQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUgYXMgU2NJRGVsaXZlcnlBZGRyZXNzT25EYXRhQ3JlYXRlKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzU2VydmljZS5jcmVhdGVEZWxpdmVyeUFkZHJlc3MkKHRoaXMuY29udmVydGVyc1NlcnZpY2UucmVtb3ZlTnVsbFJlY3Vyc2l2ZTxTY0lEZWxpdmVyeUFkZHJlc3NPbkRhdGFDcmVhdGU+KHZhbHVlKSkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuY29tcGxldGVXaXRoKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzLCBtZXNzYWdlIH0gPSBlcnJvci5lcnJvciBhcyBBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldChrZXkpPy5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogZXJyb3JzW2tleV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IFttZXNzYWdlXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBTY0lEZWxpdmVyeUFkZHJlc3MpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucmVxdWVzdCQucGlwZShtYXAoKGRhdGEpID0+IGRhdGEgPT09IG51bGwpKTtcblxuICAgIC8qKlxuICAgICAqINCT0YDRg9C/0L/QsCDRgSDQv9C+0LvRj9C80Lgg0LDQtNGA0LXRgdC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGFkZHJlc3NDb250cm9sOiBGb3JtQ29udHJvbDxTY0lTdWdnZXN0aW9uQWRkcmVzcyB8IHN0cmluZyB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPFNjSVN1Z2dlc3Rpb25BZGRyZXNzIHwgc3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0YHRgtGA0L7QudC60Lgg0LrQsNGA0YLRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3B0aW9uczogeW1hcHMuSU1hcE9wdGlvbnMgPSB7XG4gICAgICAgIGF1dG9GaXRUb1ZpZXdwb3J0OiAnYWx3YXlzJyxcbiAgICAgICAgeWFuZGV4TWFwRGlzYWJsZVBvaUludGVyYWN0aXZpdHk6IGZhbHNlLFxuICAgICAgICBtYXhab29tOiAxOSxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsCDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBhZGRyZXNzOiB0aGlzLmFkZHJlc3NDb250cm9sLFxuICAgICAgICBjb29yZGluYXRlczogbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBsYXQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIGxvbmc6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbnRhY3Q6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgcGhvbmU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTIpXSksXG4gICAgICAgICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMuZW1haWwpLFxuICAgICAgICAgICAgcG9zaXRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgfSksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQotC+0YfQutCwINCw0LTRgNC10YHQsCDQvdCwINC60LDRgNGC0LUuXG4gICAgICovXG4gICAgcHVibGljIGFkZHJlc3NQbGFjZW1hcms/OiB5bWFwcy5QbGFjZW1hcms7XG5cbiAgICAvKipcbiAgICAgKiDQr9C90LTQtdC60YEg0LrQsNGA0YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgeWFNYXA/OiB5bWFwcy5NYXA7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQWRkRGVsaXZlcnlBZGRyZXNzRGlhbG9nQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWxpdmVyeUFkZHJlc3NTZXJ2aWNlINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LDQtNGA0LXRgdCw0LzQuCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICogQHBhcmFtIGNvbnRleHQg0JrQvtC90YLQtdC60YHRgiDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0LrRgNGL0YIg0LrQvtC80L/QvtC90LXQvdGCLlxuICAgICAqIEBwYXJhbSBjb252ZXJ0ZXJzU2VydmljZSDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlbGl2ZXJ5QWRkcmVzc1NlcnZpY2U6IFNjRGVsaXZlcnlBZGRyZXNzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKSBwdWJsaWMgcmVhZG9ubHkgY29udGV4dDogVHVpRGlhbG9nQ29udGV4dDx2b2lkLCB2b2lkPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS51c2VyUHJvZmlsZURlbGl2ZXJ5QWRkcmVzc0FkZFNob3csXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWRkcmVzc0NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUdlb0Nvb3JkaW5hdGVzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INC30LDQs9GA0YPQt9C60Lgg0LrQsNGA0YLRiyDQvdCwINGB0YLRgNCw0L3QuNGG0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFyZ2V0INCt0LrQt9C10LzQv9C70Y/RgCDRhtC10LvQtdCy0L7Qs9C+INC+0LHRitC10LrRgtCwLlxuICAgICAqIEBwYXJhbSB0YXJnZXQudGFyZ2V0XG4gICAgICovXG4gICAgcHVibGljIG9uTWFwUmVhZHlIYW5kbGUoeyB0YXJnZXQgfTogWWFSZWFkeUV2ZW50PHltYXBzLk1hcD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy55YU1hcCA9IHRhcmdldDtcblxuICAgICAgICBpZiAodGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICB0YXJnZXQuZ2VvT2JqZWN0cy5hZGQodGhpcy5hZGRyZXNzUGxhY2VtYXJrKTtcblxuICAgICAgICAgICAgY29uc3QgYm91bmRzID0gdGhpcy5hZGRyZXNzUGxhY2VtYXJrLmdlb21ldHJ5Py5nZXRCb3VuZHMoKTtcblxuICAgICAgICAgICAgaWYgKGJvdW5kcykge1xuICAgICAgICAgICAgICAgIHRhcmdldC5zZXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INCy0YvQsdC+0YDQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60Lgg0LDRgNC10YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25TZWxlY3RlZEFkZHJlc3Moc3VnZ2VzdGlvbjogU2NTdWdnZXN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICgnYWRkcmVzc1N0cmluZycgaW4gc3VnZ2VzdGlvbiAmJiBzdWdnZXN0aW9uLmdlb0Nvb3JkaW5hdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBjb29yZHMgPSBbc3VnZ2VzdGlvbi5nZW9Db29yZGluYXRlcy5sYXQsIHN1Z2dlc3Rpb24uZ2VvQ29vcmRpbmF0ZXMubG9uZ107XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzUGxhY2VtYXJrID0gdGhpcy5jcmVhdGVQbGFjZW1hcmsoY29vcmRzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZXRHZW9Db29yZGluYXRlcyhjb29yZHMpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMueWFNYXA/Lmdlb09iamVjdHMuZ2V0TGVuZ3RoKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnlhTWFwPy5nZW9PYmplY3RzLmFkZCh0aGlzLmFkZHJlc3NQbGFjZW1hcmspO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBib3VuZHMgPSB0aGlzLmFkZHJlc3NQbGFjZW1hcmsuZ2VvbWV0cnk/LmdldEJvdW5kcygpO1xuXG4gICAgICAgICAgICBpZiAoYm91bmRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Qm91bmRzKGJvdW5kcyk7XG4gICAgICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Wm9vbSgxNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiB7QGxpbmsgYWRkcmVzc1BsYWNlbWFya30g0YLQvtGH0LrRgyDQvdCwINC+0L/RgNC10LTQtdC70ZHQvdC90YvQtSDQutC+0L7RgNC00LjQvdCw0YLRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb29yZHMg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldEdlb0Nvb3JkaW5hdGVzKGNvb3JkczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWRkcmVzc1BsYWNlbWFyaykge1xuICAgICAgICAgICAgdGhpcy5hZGRyZXNzUGxhY2VtYXJrLmdlb21ldHJ5Py5zZXRDb29yZGluYXRlcyhjb29yZHMpO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgbGF0OiBjb29yZHNbMF0sXG4gICAgICAgICAgICAgICAgICAgIGxvbmc6IGNvb3Jkc1sxXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiB7QGxpbmsgYWRkcmVzc1BsYWNlbWFya30g0YLQvtGH0LrRgyDQvdCwINC+0L/RgNC10LTQtdC70ZHQvdC90YvQtSDQutC+0L7RgNC00LjQvdCw0YLRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbW92ZUdlb0Nvb3JkaW5hdGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICB0aGlzLnlhTWFwPy5nZW9PYmplY3RzLnJlbW92ZSh0aGlzLmFkZHJlc3NQbGFjZW1hcmspO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgbGF0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBsb25nOiBudWxsLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Q2VudGVyKHRoaXMuZGVmYXVsdENlbnRlck1hcCk7XG4gICAgICAgICAgICB0aGlzLnlhTWFwPy5zZXRab29tKHRoaXMuZGVmYXVsdFpvb21NYXApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNGR0YIg0L7QsdGK0LXQutGCINGC0L7Rh9C60Lgg0Lgg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQvtCx0YvRgtC40Y8g0LTQu9GPINC90LXQs9C+LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvb3JkcyDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC+0YfQutC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlUGxhY2VtYXJrKGNvb3JkczogbnVtYmVyW10pOiB5bWFwcy5QbGFjZW1hcmsge1xuICAgICAgICBjb25zdCBwbGFjZW1hcmsgPSBuZXcgeW1hcHMuUGxhY2VtYXJrKFxuICAgICAgICAgICAgY29vcmRzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGljb25DYXB0aW9uOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJlc2V0OiAnaXNsYW5kcycsXG4gICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHBsYWNlbWFyay5ldmVudHMuYWRkKCdkcmFnZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29vcmQgPSB0aGlzLmFkZHJlc3NQbGFjZW1hcms/Lmdlb21ldHJ5Py5nZXRDb29yZGluYXRlcygpO1xuXG4gICAgICAgICAgICBpZiAoY29vcmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEdlb0Nvb3JkaW5hdGVzKGNvb3JkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHBsYWNlbWFyaztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBmbGV4LWNvbCBnYXAtMyBtZDpmbGV4LXJvd1wiPlxuICAgIDxmb3JtXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCQubmV4dCgpXCJcbiAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBnYXAtM1wiXG4gICAgPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQkNC00YDQtdGBINC00L7RgdGC0LDQstC60LhcIj5cbiAgICAgICAgICAgIDx0dWktaW5wdXRcbiAgICAgICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCIoYWRkcmVzc0NvbnRyb2wudmFsaWQgJiYgZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkKSB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQkNC00YDQtdGBINC00L7RgdGC0LDQstC60LhcbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENsaWNrKT1cIm9uU2VsZWN0ZWRBZGRyZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L3NjLXN1Z2dlc3Rpb24tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWRkcmVzc0NvbnRyb2wudmFsaWQgJiYgZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICBlcnJvcj1cItCS0YvQsdC10YDQuNGC0LUg0LLQsNGA0LjQsNC90YIg0LjQtyDRgdC/0LjRgdC60LBcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiY29udGFjdFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbCBnYXAtMlwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidy1mdWxsIGZvbnQtYm9sZFwiPtCa0L7QvdGC0LDQutGC0L3QvtC1INC70LjRhtC+OjwvcD5cbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCkLtCYLtCeLlwiPlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICDQpC7QmC7Qni5cbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZmlvXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc2Mtc3VnZ2VzdGlvbi1maWVsZD5cbiAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQotC10LvQtdGE0L7QvVwiPlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQtcGhvbmUgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIj4g0KLQtdC70LXRhNC+0L0gPC90dWktaW5wdXQtcGhvbmU+XG4gICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLXCI+XG4gICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zYy1zdWdnZXN0aW9uLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQlNC+0LvQttC90L7RgdGC0YxcIj5cbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCI+INCU0L7Qu9C20L3QvtGB0YLRjCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiaXNNb2JpbGUgPyAndHVpSWNvblgnIDogJ3R1aUljb25YTGFyZ2UnXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQntGC0LzQtdC90LBcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgIFtpY29uXT1cImlzTW9iaWxlID8gJ3R1aUljb25TYXZlJyA6ICd0dWlJY29uU2F2ZUxhcmdlJ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0YxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXotMTAgZmxleCBzaXplLWZ1bGwgbWQ6dy0xLzJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICd6LTAgcmVsYXRpdmUnOiBhZGRyZXNzUGxhY2VtYXJrIH1cIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWF1dG9cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncG9pbnRlci1ldmVudHMtbm9uZSBvcGFjaXR5LTUwJzogZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8eWEtbWFwXG4gICAgICAgICAgICAgICAgW3pvb21dPVwiMTFcIlxuICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJ7IGNvbnRyb2xzOiBbXSB9XCJcbiAgICAgICAgICAgICAgICAocmVhZHkpPVwib25NYXBSZWFkeUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICAgID48L3lhLW1hcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9kZWxpdmVyeS1hZGRyZXNzL2FkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RlbGl2ZXJ5LWFkZHJlc3MvYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtGQUFrRjtBQUVsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQU1ILGlCQUFpQixFQUVqQixzQkFBc0IsR0FFekIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBT0ksSUFBTSxtQ0FBbUMsMkNBQXpDLE1BQU0sbUNBQW1DO0lBaUg1Qzs7Ozs7OztPQU9HO0lBQ0gsWUFDcUIsc0JBQWdELEVBQ2hELGtCQUF3QyxFQUNYLE9BQXFDLEVBQ2xFLGlCQUFzQztRQUh0QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTBCO1FBQ2hELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUE4QjtRQUNsRSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBbkgzRDs7V0FFRztRQUNhLGFBQVEsR0FBWSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFMUQ7O1dBRUc7UUFDYSxtQkFBYyxHQUE2QixpQkFBaUIsQ0FBQztRQUU3RTs7V0FFRztRQUNhLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUvRDs7V0FFRztRQUNhLHFCQUFnQixHQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRW5FOztXQUVHO1FBQ2EsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDYyxhQUFRLEdBQTBDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDN0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBdUMsQ0FBQyxFQUM1RCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNoQixJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFpQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdEksR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUU7Z0JBQ3BDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQXlCLENBQUM7Z0JBRTVELElBQUksTUFBTSxFQUFFO29CQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNuRSxDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFBTSxJQUFJLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3REO2FBQ0o7WUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUF3QixDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUNsQixDQUNKLEVBQ0QsS0FBSyxFQUFFLENBQ1YsQ0FBQztRQUVGOztXQUVHO1FBQ2EsYUFBUSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWpHOztXQUVHO1FBQ0ksbUJBQWMsR0FBc0QsSUFBSSxXQUFXLENBQXVDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUo7O1dBRUc7UUFDSSxZQUFPLEdBQXNCO1lBQ2hDLGlCQUFpQixFQUFFLFFBQVE7WUFDM0IsZ0NBQWdDLEVBQUUsS0FBSztZQUN2QyxPQUFPLEVBQUUsRUFBRTtTQUNkLENBQUM7UUFFRjs7V0FFRztRQUNhLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDNUIsV0FBVyxFQUFFLElBQUksU0FBUyxDQUFDO2dCQUN2QixHQUFHLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUM5RCxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO2FBQ2xFLENBQUM7WUFDRixPQUFPLEVBQUUsSUFBSSxTQUFTLENBQUM7Z0JBQ25CLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQy9ELEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVGLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQzdELFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDdEUsQ0FBQztTQUNMLENBQUMsQ0FBQztJQXlCQSxDQUFDO0lBN0hKOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQWdCO1FBQzNDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQXdIRCxrQkFBa0I7SUFDWCxlQUFlO1FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUN6QyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsaUNBQWlDO1NBQ25FLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQTJCO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBRXBCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFFM0QsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QjtTQUNKO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxpQkFBaUIsQ0FBQyxVQUF3QjtRQUM3QyxJQUFJLGVBQWUsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLGNBQWMsRUFBRTtZQUM1RCxNQUFNLE1BQU0sR0FBRyxxQ0FBbUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEQ7WUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDckQ7WUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBRTNELElBQUksTUFBTSxFQUFFO2dCQUNSLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMzQjtTQUNKO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxpQkFBaUIsQ0FBQyxNQUFnQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDakIsV0FBVyxFQUFFO29CQUNULEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNyQzthQUNKLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDakIsV0FBVyxFQUFFO29CQUNULEdBQUcsRUFBRSxJQUFJO29CQUNULElBQUksRUFBRSxJQUFJO2lCQUNiO2FBQ0osQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxlQUFlLENBQUMsTUFBZ0I7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUNqQyxNQUFNLEVBQ047WUFDSSxXQUFXLEVBQUUsRUFBRTtTQUNsQixFQUNEO1lBQ0ksTUFBTSxFQUFFLFNBQVM7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDbEIsQ0FDSixDQUFDO1FBRUYsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBRWhFLElBQUksS0FBSyxFQUFFO2dCQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQ0FBbUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0RjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs7Z0lBMVBRLG1DQUFtQyw4RkE0SGhDLG9CQUFvQjtvSEE1SHZCLG1DQUFtQyxzRUNqQ2hELHFxS0F3SEE7QUR2RmEsbUNBQW1DO0lBRC9DLFlBQVksQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQztHQUMzQixtQ0FBbUMsQ0EyUC9DO1NBM1BZLG1DQUFtQzsyRkFBbkMsbUNBQW1DO2tCQU4vQyxTQUFTOytCQUNJLGdDQUFnQyxtQkFFekIsdUJBQXVCLENBQUMsTUFBTTs7MEJBK0gxQyxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCxsb2Rhc2gvcHJlZmVyLWxvZGFzaC1tZXRob2QgKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtcbiAgICBTY0NvbnZlcnRlcnNTZXJ2aWNlLFxuICAgIFNjRGVsaXZlcnlBZGRyZXNzU2VydmljZSxcbiAgICBTY0lEZWxpdmVyeUFkZHJlc3MsXG4gICAgU2NJRGVsaXZlcnlBZGRyZXNzT25EYXRhQ3JlYXRlLFxuICAgIFNjSVN1Z2dlc3Rpb25BZGRyZXNzLFxuICAgIFNjSVN1Z2dlc3Rpb25UeXBlLFxuICAgIFNjU3VnZ2VzdGlvbixcbiAgICBTY1VzZXJNZXRyaWthR29hbHNFbnVtLFxuICAgIFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxufSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9JU19NT0JJTEUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQT0xZTU9SUEhFVVNfQ09OVEVYVCB9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBZYVJlYWR5RXZlbnQgfSBmcm9tICdhbmd1bGFyOC15YW5kZXgtbWFwcyc7XG5pbXBvcnQgeyBBcGlFcnJvclJlc3BvbnNlIH0gZnJvbSAncHJvamVjdHMvY2xpZW50LXVpL2F1dGgnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQtNC+0LHQsNCy0LvQtdC90LjRjyDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbkBVbnRpbERlc3Ryb3koeyBjaGVja1Byb3BlcnRpZXM6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqINCe0LrRgNGD0LPQu9GP0LXRgiDQutC+0L7RgNC00LjQvdCw0YLRiyDQtNC+IDYg0YbQuNGE0YAg0L/QvtGB0LvQtSDQt9Cw0L/Rj9GC0L7QuS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb29yZHMg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyByb3VuZENvb3JkaW5hdGUoY29vcmRzOiBudW1iZXJbXSk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIGNvb3Jkcy5tYXAoKGNvb3JkKSA9PiBNYXRoLnJvdW5kKGNvb3JkICogMWU2KSAvIDFlNik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC+0YLQvtCx0YDQsNC20LDQtdGC0YHRjyDRjdGC0L7RgiDQutC+0LzQv9C+0L3QtdC90YIg0L3QsCDQvNC+0LHQuNC70YzQvdC+0Lwg0YPRgdGC0YDQvtC50YHRgtCy0LUg0LjQu9C4INC90LXRgi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4gPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0YLQuNC/0L7QsiDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHN1Z2dlc3Rpb25UeXBlOiB0eXBlb2YgU2NJU3VnZ2VzdGlvblR5cGUgPSBTY0lTdWdnZXN0aW9uVHlwZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBTdWJqZWN0fSDRgdC+0LHRi9GC0LjRjyDQvtGC0L/RgNCw0LLQutC4INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9uU3VibWl0JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0L7RgNC00LjQvdCw0YLRiyDRhtC10L3RgtGA0LAg0LrQsNGA0YLRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENlbnRlck1hcDogbnVtYmVyW10gPSBbNTcuMDAwMzUzLCA0MC45NzM5M107XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHRiNGC0LDQsSDQutCw0YDRgtGLINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkZWZhdWx0Wm9vbU1hcDogbnVtYmVyID0gMTE7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINC00L7QsdCw0LLQu9C10L3QuNGPINCw0LTRgNC10YEg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFNjSURlbGl2ZXJ5QWRkcmVzcyB8IG51bGw+ID0gdGhpcy5vblN1Ym1pdCQucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUgYXMgU2NJRGVsaXZlcnlBZGRyZXNzT25EYXRhQ3JlYXRlKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzU2VydmljZS5jcmVhdGVEZWxpdmVyeUFkZHJlc3MkKHRoaXMuY29udmVydGVyc1NlcnZpY2UucmVtb3ZlTnVsbFJlY3Vyc2l2ZTxTY0lEZWxpdmVyeUFkZHJlc3NPbkRhdGFDcmVhdGU+KHZhbHVlKSkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuY29tcGxldGVXaXRoKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzLCBtZXNzYWdlIH0gPSBlcnJvci5lcnJvciBhcyBBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldChrZXkpPy5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogZXJyb3JzW2tleV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IFttZXNzYWdlXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBTY0lEZWxpdmVyeUFkZHJlc3MpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucmVxdWVzdCQucGlwZShtYXAoKGRhdGEpID0+IGRhdGEgPT09IG51bGwpKTtcblxuICAgIC8qKlxuICAgICAqINCT0YDRg9C/0L/QsCDRgSDQv9C+0LvRj9C80Lgg0LDQtNGA0LXRgdC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGFkZHJlc3NDb250cm9sOiBGb3JtQ29udHJvbDxTY0lTdWdnZXN0aW9uQWRkcmVzcyB8IHN0cmluZyB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPFNjSVN1Z2dlc3Rpb25BZGRyZXNzIHwgc3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0YHRgtGA0L7QudC60Lgg0LrQsNGA0YLRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3B0aW9uczogeW1hcHMuSU1hcE9wdGlvbnMgPSB7XG4gICAgICAgIGF1dG9GaXRUb1ZpZXdwb3J0OiAnYWx3YXlzJyxcbiAgICAgICAgeWFuZGV4TWFwRGlzYWJsZVBvaUludGVyYWN0aXZpdHk6IGZhbHNlLFxuICAgICAgICBtYXhab29tOiAxOSxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsCDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBhZGRyZXNzOiB0aGlzLmFkZHJlc3NDb250cm9sLFxuICAgICAgICBjb29yZGluYXRlczogbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBsYXQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIGxvbmc6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbnRhY3Q6IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgcGhvbmU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTIpXSksXG4gICAgICAgICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMuZW1haWwpLFxuICAgICAgICAgICAgcG9zaXRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgfSksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQotC+0YfQutCwINCw0LTRgNC10YHQsCDQvdCwINC60LDRgNGC0LUuXG4gICAgICovXG4gICAgcHVibGljIGFkZHJlc3NQbGFjZW1hcms/OiB5bWFwcy5QbGFjZW1hcms7XG5cbiAgICAvKipcbiAgICAgKiDQr9C90LTQtdC60YEg0LrQsNGA0YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgeWFNYXA/OiB5bWFwcy5NYXA7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQWRkRGVsaXZlcnlBZGRyZXNzRGlhbG9nQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWxpdmVyeUFkZHJlc3NTZXJ2aWNlINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LDQtNGA0LXRgdCw0LzQuCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICogQHBhcmFtIGNvbnRleHQg0JrQvtC90YLQtdC60YHRgiDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0LrRgNGL0YIg0LrQvtC80L/QvtC90LXQvdGCLlxuICAgICAqIEBwYXJhbSBjb252ZXJ0ZXJzU2VydmljZSDQodC10YDQstC40YEg0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlbGl2ZXJ5QWRkcmVzc1NlcnZpY2U6IFNjRGVsaXZlcnlBZGRyZXNzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKSBwdWJsaWMgcmVhZG9ubHkgY29udGV4dDogVHVpRGlhbG9nQ29udGV4dDx2b2lkLCB2b2lkPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb252ZXJ0ZXJzU2VydmljZTogU2NDb252ZXJ0ZXJzU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS51c2VyUHJvZmlsZURlbGl2ZXJ5QWRkcmVzc0FkZFNob3csXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWRkcmVzc0NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUdlb0Nvb3JkaW5hdGVzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INC30LDQs9GA0YPQt9C60Lgg0LrQsNGA0YLRiyDQvdCwINGB0YLRgNCw0L3QuNGG0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFyZ2V0INCt0LrQt9C10LzQv9C70Y/RgCDRhtC10LvQtdCy0L7Qs9C+INC+0LHRitC10LrRgtCwLlxuICAgICAqIEBwYXJhbSB0YXJnZXQudGFyZ2V0XG4gICAgICovXG4gICAgcHVibGljIG9uTWFwUmVhZHlIYW5kbGUoeyB0YXJnZXQgfTogWWFSZWFkeUV2ZW50PHltYXBzLk1hcD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy55YU1hcCA9IHRhcmdldDtcblxuICAgICAgICBpZiAodGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICB0YXJnZXQuZ2VvT2JqZWN0cy5hZGQodGhpcy5hZGRyZXNzUGxhY2VtYXJrKTtcblxuICAgICAgICAgICAgY29uc3QgYm91bmRzID0gdGhpcy5hZGRyZXNzUGxhY2VtYXJrLmdlb21ldHJ5Py5nZXRCb3VuZHMoKTtcblxuICAgICAgICAgICAgaWYgKGJvdW5kcykge1xuICAgICAgICAgICAgICAgIHRhcmdldC5zZXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0YfQuNC6INCy0YvQsdC+0YDQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60Lgg0LDRgNC10YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25TZWxlY3RlZEFkZHJlc3Moc3VnZ2VzdGlvbjogU2NTdWdnZXN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICgnYWRkcmVzc1N0cmluZycgaW4gc3VnZ2VzdGlvbiAmJiBzdWdnZXN0aW9uLmdlb0Nvb3JkaW5hdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBjb29yZHMgPSBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudC5yb3VuZENvb3JkaW5hdGUoW3N1Z2dlc3Rpb24uZ2VvQ29vcmRpbmF0ZXMubGF0LCBzdWdnZXN0aW9uLmdlb0Nvb3JkaW5hdGVzLmxvbmddKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmFkZHJlc3NQbGFjZW1hcmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NQbGFjZW1hcmsgPSB0aGlzLmNyZWF0ZVBsYWNlbWFyayhjb29yZHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNldEdlb0Nvb3JkaW5hdGVzKGNvb3Jkcyk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy55YU1hcD8uZ2VvT2JqZWN0cy5nZXRMZW5ndGgoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMueWFNYXA/Lmdlb09iamVjdHMuYWRkKHRoaXMuYWRkcmVzc1BsYWNlbWFyayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuYWRkcmVzc1BsYWNlbWFyay5nZW9tZXRyeT8uZ2V0Qm91bmRzKCk7XG5cbiAgICAgICAgICAgIGlmIChib3VuZHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnlhTWFwPy5zZXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnlhTWFwPy5zZXRab29tKDE3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHtAbGluayBhZGRyZXNzUGxhY2VtYXJrfSDRgtC+0YfQutGDINC90LAg0L7Qv9GA0LXQtNC10LvRkdC90L3Ri9C1INC60L7QvtGA0LTQuNC90LDRgtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvb3JkcyDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC+0YfQutC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0R2VvQ29vcmRpbmF0ZXMoY29vcmRzOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hZGRyZXNzUGxhY2VtYXJrKSB7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NQbGFjZW1hcmsuZ2VvbWV0cnk/LnNldENvb3JkaW5hdGVzKGNvb3Jkcyk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBjb29yZGluYXRlczoge1xuICAgICAgICAgICAgICAgICAgICBsYXQ6IE51bWJlcihjb29yZHNbMF0udG9GaXhlZCg2KSksXG4gICAgICAgICAgICAgICAgICAgIGxvbmc6IE51bWJlcihjb29yZHNbMV0udG9GaXhlZCg2KSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIge0BsaW5rIGFkZHJlc3NQbGFjZW1hcmt9INGC0L7Rh9C60YMg0L3QsCDQvtC/0YDQtdC00LXQu9GR0L3QvdGL0LUg0LrQvtC+0YDQtNC40L3QsNGC0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVHZW9Db29yZGluYXRlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWRkcmVzc1BsYWNlbWFyaykge1xuICAgICAgICAgICAgdGhpcy55YU1hcD8uZ2VvT2JqZWN0cy5yZW1vdmUodGhpcy5hZGRyZXNzUGxhY2VtYXJrKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGxhdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbG9uZzogbnVsbCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMueWFNYXA/LnNldENlbnRlcih0aGlzLmRlZmF1bHRDZW50ZXJNYXApO1xuICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Wm9vbSh0aGlzLmRlZmF1bHRab29tTWFwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC+0LHRitC10LrRgiDRgtC+0YfQutC4INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGB0L7QsdGL0YLQuNGPINC00LvRjyDQvdC10LPQvi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb29yZHMg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVBsYWNlbWFyayhjb29yZHM6IG51bWJlcltdKTogeW1hcHMuUGxhY2VtYXJrIHtcbiAgICAgICAgY29uc3QgcGxhY2VtYXJrID0gbmV3IHltYXBzLlBsYWNlbWFyayhcbiAgICAgICAgICAgIGNvb3JkcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpY29uQ2FwdGlvbjogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByZXNldDogJ2lzbGFuZHMnLFxuICAgICAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBwbGFjZW1hcmsuZXZlbnRzLmFkZCgnZHJhZ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvb3JkID0gdGhpcy5hZGRyZXNzUGxhY2VtYXJrPy5nZW9tZXRyeT8uZ2V0Q29vcmRpbmF0ZXMoKTtcblxuICAgICAgICAgICAgaWYgKGNvb3JkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRHZW9Db29yZGluYXRlcyhTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudC5yb3VuZENvb3JkaW5hdGUoY29vcmQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHBsYWNlbWFyaztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZmxleCBmbGV4LWNvbCBnYXAtMyBtZDpmbGV4LXJvd1wiPlxuICAgIDxmb3JtXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCQubmV4dCgpXCJcbiAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBnYXAtM1wiXG4gICAgPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQkNC00YDQtdGBINC00L7RgdGC0LDQstC60LhcIj5cbiAgICAgICAgICAgIDx0dWktaW5wdXRcbiAgICAgICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCIoYWRkcmVzc0NvbnRyb2wudmFsaWQgJiYgZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkKSB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQkNC00YDQtdGBINC00L7RgdGC0LDQstC60LhcbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENsaWNrKT1cIm9uU2VsZWN0ZWRBZGRyZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L3NjLXN1Z2dlc3Rpb24tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWRkcmVzc0NvbnRyb2wudmFsaWQgJiYgZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICBlcnJvcj1cItCS0YvQsdC10YDQuNGC0LUg0LLQsNGA0LjQsNC90YIg0LjQtyDRgdC/0LjRgdC60LBcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiY29udGFjdFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbCBnYXAtMlwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidy1mdWxsIGZvbnQtYm9sZFwiPtCa0L7QvdGC0LDQutGC0L3QvtC1INC70LjRhtC+OjwvcD5cbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCkLtCYLtCeLlwiPlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICDQpC7QmC7Qni5cbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZmlvXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc2Mtc3VnZ2VzdGlvbi1maWVsZD5cbiAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQotC10LvQtdGE0L7QvVwiPlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQtcGhvbmUgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIj4g0KLQtdC70LXRhNC+0L0gPC90dWktaW5wdXQtcGhvbmU+XG4gICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLXCI+XG4gICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zYy1zdWdnZXN0aW9uLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQlNC+0LvQttC90L7RgdGC0YxcIj5cbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCI+INCU0L7Qu9C20L3QvtGB0YLRjCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiaXNNb2JpbGUgPyAndHVpSWNvblgnIDogJ3R1aUljb25YTGFyZ2UnXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQntGC0LzQtdC90LBcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgIFtpY29uXT1cImlzTW9iaWxlID8gJ3R1aUljb25TYXZlJyA6ICd0dWlJY29uU2F2ZUxhcmdlJ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0YxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXotMTAgZmxleCBzaXplLWZ1bGwgbWQ6dy0xLzJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICd6LTAgcmVsYXRpdmUnOiBhZGRyZXNzUGxhY2VtYXJrIH1cIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWF1dG9cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncG9pbnRlci1ldmVudHMtbm9uZSBvcGFjaXR5LTUwJzogZm9ybS5jb250cm9scy5jb29yZGluYXRlcy5pbnZhbGlkIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8eWEtbWFwXG4gICAgICAgICAgICAgICAgW3pvb21dPVwiMTFcIlxuICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJ7IGNvbnRyb2xzOiBbXSB9XCJcbiAgICAgICAgICAgICAgICAocmVhZHkpPVwib25NYXBSZWFkeUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICAgID48L3lhLW1hcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -2,5 +2,6 @@ export * from './next-input-focus/sc-next-input-focus.directive';
|
|
2
2
|
export * from './next-input-focus/sc-next-input-focus.module';
|
3
3
|
export * from './abstract-price-card/abstract-sc-price-card.directive';
|
4
4
|
export * from './tel-link/sc-tel-link.directive';
|
5
|
+
export * from './tel-link/sc-tel-link.module';
|
5
6
|
export * from './terminal-link/sc-terminal-link.directive';
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmV4dC1pbnB1dC1mb2N1cy9zYy1uZXh0LWlucHV0LWZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL25leHQtaW5wdXQtZm9jdXMvc2MtbmV4dC1pbnB1dC1mb2N1cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC1wcmljZS1jYXJkL2Fic3RyYWN0LXNjLXByaWNlLWNhcmQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWxpbmsvc2MtdGVsLWxpbmsuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWxpbmsvc2MtdGVsLWxpbmsubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVybWluYWwtbGluay9zYy10ZXJtaW5hbC1saW5rLmRpcmVjdGl2ZSc7XG4iXX0=
|
@@ -1764,6 +1764,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1764
1764
|
type: Input
|
1765
1765
|
}] } });
|
1766
1766
|
|
1767
|
+
/* eslint-disable class-methods-use-this */
|
1768
|
+
/**
|
1769
|
+
* Пайп для форматирования номера телефона.
|
1770
|
+
*
|
1771
|
+
* Если переданный номер телефона валиден, он будет отформатирован с использованием метода `formatPhoneNumber` сервиса `ScPhoneService`.
|
1772
|
+
* Если номер невалиден, возвращается исходное значение.
|
1773
|
+
*/
|
1774
|
+
class ScFormatePhonePipe {
|
1775
|
+
/**
|
1776
|
+
* Преобразует строковое значение номера телефона.
|
1777
|
+
*
|
1778
|
+
* @param value Строка, содержащая номер телефона.
|
1779
|
+
* @returns Отформатированный номер телефона, если он валиден, или исходное значение, если он невалиден.
|
1780
|
+
*/
|
1781
|
+
transform(value) {
|
1782
|
+
if (ScPhoneService.isValidPhoneNumber(value)) {
|
1783
|
+
return ScPhoneService.formatPhoneNumber(value);
|
1784
|
+
}
|
1785
|
+
return value; // Возвращаем оригинальный номер, если он невалиден
|
1786
|
+
}
|
1787
|
+
}
|
1788
|
+
ScFormatePhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1789
|
+
ScFormatePhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, isStandalone: true, name: "scFormatePhone" });
|
1790
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, decorators: [{
|
1791
|
+
type: Pipe,
|
1792
|
+
args: [{
|
1793
|
+
standalone: true,
|
1794
|
+
name: 'scFormatePhone',
|
1795
|
+
}]
|
1796
|
+
}] });
|
1797
|
+
|
1798
|
+
/**
|
1799
|
+
* Модуль валидации значения номера телефона.
|
1800
|
+
*/
|
1801
|
+
class ScTelLinkModule {
|
1802
|
+
}
|
1803
|
+
ScTelLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1804
|
+
ScTelLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, imports: [ScFormatePhonePipe, ScTelLinkDirective], exports: [ScFormatePhonePipe, ScTelLinkDirective] });
|
1805
|
+
ScTelLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule });
|
1806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, decorators: [{
|
1807
|
+
type: NgModule,
|
1808
|
+
args: [{
|
1809
|
+
imports: [ScFormatePhonePipe, ScTelLinkDirective],
|
1810
|
+
exports: [ScFormatePhonePipe, ScTelLinkDirective],
|
1811
|
+
}]
|
1812
|
+
}] });
|
1813
|
+
|
1767
1814
|
/**
|
1768
1815
|
* Компонент QR кода.
|
1769
1816
|
*/
|
@@ -1968,37 +2015,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1968
2015
|
}]
|
1969
2016
|
}] });
|
1970
2017
|
|
1971
|
-
/* eslint-disable class-methods-use-this */
|
1972
|
-
/**
|
1973
|
-
* Пайп для форматирования номера телефона.
|
1974
|
-
*
|
1975
|
-
* Если переданный номер телефона валиден, он будет отформатирован с использованием метода `formatPhoneNumber` сервиса `ScPhoneService`.
|
1976
|
-
* Если номер невалиден, возвращается исходное значение.
|
1977
|
-
*/
|
1978
|
-
class ScFormatePhonePipe {
|
1979
|
-
/**
|
1980
|
-
* Преобразует строковое значение номера телефона.
|
1981
|
-
*
|
1982
|
-
* @param value Строка, содержащая номер телефона.
|
1983
|
-
* @returns Отформатированный номер телефона, если он валиден, или исходное значение, если он невалиден.
|
1984
|
-
*/
|
1985
|
-
transform(value) {
|
1986
|
-
if (ScPhoneService.isValidPhoneNumber(value)) {
|
1987
|
-
return ScPhoneService.formatPhoneNumber(value);
|
1988
|
-
}
|
1989
|
-
return value; // Возвращаем оригинальный номер, если он невалиден
|
1990
|
-
}
|
1991
|
-
}
|
1992
|
-
ScFormatePhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1993
|
-
ScFormatePhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, isStandalone: true, name: "scFormatePhone" });
|
1994
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, decorators: [{
|
1995
|
-
type: Pipe,
|
1996
|
-
args: [{
|
1997
|
-
standalone: true,
|
1998
|
-
name: 'scFormatePhone',
|
1999
|
-
}]
|
2000
|
-
}] });
|
2001
|
-
|
2002
2018
|
/* eslint-disable no-restricted-syntax,@typescript-eslint/unbound-method */
|
2003
2019
|
/**
|
2004
2020
|
* Компонент формы создания нового контактного лица.
|
@@ -4155,10 +4171,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
4155
4171
|
}]
|
4156
4172
|
}] });
|
4157
4173
|
|
4174
|
+
var ScAddDeliveryAddressDialogComponent_1;
|
4158
4175
|
/**
|
4159
4176
|
* Компонент добавления адреса доставки.
|
4160
4177
|
*/
|
4161
|
-
let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogComponent {
|
4178
|
+
let ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = class ScAddDeliveryAddressDialogComponent {
|
4162
4179
|
/**
|
4163
4180
|
* Инициализирует экземпляр класса {@link ScAddDeliveryAddressDialogComponent}.
|
4164
4181
|
*
|
@@ -4245,6 +4262,14 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4245
4262
|
}),
|
4246
4263
|
});
|
4247
4264
|
}
|
4265
|
+
/**
|
4266
|
+
* Округляет координаты до 6 цифр после запятой.
|
4267
|
+
*
|
4268
|
+
* @param coords Координаты точки.
|
4269
|
+
*/
|
4270
|
+
static roundCoordinate(coords) {
|
4271
|
+
return coords.map((coord) => Math.round(coord * 1e6) / 1e6);
|
4272
|
+
}
|
4248
4273
|
/** @inheritdoc */
|
4249
4274
|
ngAfterViewInit() {
|
4250
4275
|
this.userMetrikaService.emitUserMetrikaEvent({
|
@@ -4279,7 +4304,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4279
4304
|
onSelectedAddress(suggestion) {
|
4280
4305
|
var _a, _b, _c, _d, _e;
|
4281
4306
|
if ('addressString' in suggestion && suggestion.geoCoordinates) {
|
4282
|
-
const coords = [suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long];
|
4307
|
+
const coords = ScAddDeliveryAddressDialogComponent_1.roundCoordinate([suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long]);
|
4283
4308
|
if (!this.addressPlacemark) {
|
4284
4309
|
this.addressPlacemark = this.createPlacemark(coords);
|
4285
4310
|
}
|
@@ -4305,8 +4330,8 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4305
4330
|
(_a = this.addressPlacemark.geometry) === null || _a === void 0 ? void 0 : _a.setCoordinates(coords);
|
4306
4331
|
this.form.patchValue({
|
4307
4332
|
coordinates: {
|
4308
|
-
lat: coords[0],
|
4309
|
-
long: coords[1],
|
4333
|
+
lat: Number(coords[0].toFixed(6)),
|
4334
|
+
long: Number(coords[1].toFixed(6)),
|
4310
4335
|
},
|
4311
4336
|
});
|
4312
4337
|
}
|
@@ -4344,7 +4369,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4344
4369
|
var _a, _b;
|
4345
4370
|
const coord = (_b = (_a = this.addressPlacemark) === null || _a === void 0 ? void 0 : _a.geometry) === null || _b === void 0 ? void 0 : _b.getCoordinates();
|
4346
4371
|
if (coord) {
|
4347
|
-
this.setGeoCoordinates(coord);
|
4372
|
+
this.setGeoCoordinates(ScAddDeliveryAddressDialogComponent_1.roundCoordinate(coord));
|
4348
4373
|
}
|
4349
4374
|
});
|
4350
4375
|
return placemark;
|
@@ -4352,7 +4377,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4352
4377
|
};
|
4353
4378
|
ScAddDeliveryAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, deps: [{ token: i1.ScDeliveryAddressService }, { token: i1.ScUserMetrikaService }, { token: POLYMORPHEUS_CONTEXT }, { token: i1.ScConvertersService }], target: i0.ɵɵFactoryTarget.Component });
|
4354
4379
|
ScAddDeliveryAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScAddDeliveryAddressDialogComponent, selector: "sc-add-delivery-address-dialog", ngImport: i0, template: "<div class=\"relative flex flex-col gap-3 md:flex-row\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex w-full flex-col gap-3\"\n >\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\">\n <tui-input\n [pseudoInvalid]=\"(addressControl.valid && form.controls.coordinates.invalid) || null\"\n formControlName=\"address\"\n >\n \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n (selectedClick)=\"onSelectedAddress($event)\"\n ></sc-suggestion-field>\n <input\n tuiTextfield\n autocomplete=\"new-password\"\n />\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n <tui-error\n *ngIf=\"addressControl.valid && form.controls.coordinates.invalid\"\n error=\"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430\"\n ></tui-error>\n </label>\n <div\n formGroupName=\"contact\"\n class=\"flex grow flex-col gap-2\"\n >\n <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n <label tuiLabel=\"\u0424.\u0418.\u041E.\">\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0422\u0435\u043B\u0435\u0444\u043E\u043D\">\n <tui-input-phone formControlName=\"phone\"> \u0422\u0435\u043B\u0435\u0444\u043E\u043D </tui-input-phone>\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\">\n <tui-input formControlName=\"email\">\n <input\n tuiTextfield\n type=\"email\"\n />\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\">\n <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n <tui-error\n formControlName=\"position\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n </div>\n <div class=\"flex justify-center gap-8\">\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n [icon]=\"isMobile ? 'tuiIconX' : 'tuiIconXLarge'\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [icon]=\"isMobile ? 'tuiIconSave' : 'tuiIconSaveLarge'\"\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n </button>\n </div>\n </form>\n\n <div\n class=\"absolute -z-10 flex size-full md:w-1/2\"\n [ngClass]=\"{ 'z-0 relative': addressPlacemark }\"\n >\n <div\n class=\"flex-auto\"\n [ngClass]=\"{ 'pointer-events-none opacity-50': form.controls.coordinates.invalid }\"\n >\n <ya-map\n [zoom]=\"11\"\n [state]=\"{ controls: [] }\"\n (ready)=\"onMapReadyHandle($event)\"\n [options]=\"options\"\n ></ya-map>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "component", type: i4.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4$1.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i4$1.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i4$1.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i4$1.TuiInputPhoneDirective, selector: "tui-input-phone" }, { kind: "component", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "directive", type: i4.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i7$2.YaMapComponent, selector: "ya-map", inputs: ["center", "zoom", "state", "options"], outputs: ["ready", "actionbegin", "actionbreak", "actionend", "actiontick", "actiontickcomplete", "balloonclose", "balloonopen", "boundschange", "yaclick", "yacontextmenu", "yadblclick", "destroy", "hintclose", "hintopen", "marginchange", "yamousedown", "yamouseenter", "yamouseleave", "yamousemove", "yamouseup", "multitouchend", "multitouchmove", "multitouchstart", "optionschange", "sizechange", "typechange", "yawheel"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
4355
|
-
ScAddDeliveryAddressDialogComponent = __decorate([
|
4380
|
+
ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = __decorate([
|
4356
4381
|
UntilDestroy({ checkProperties: true })
|
4357
4382
|
], ScAddDeliveryAddressDialogComponent);
|
4358
4383
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, decorators: [{
|
@@ -5661,22 +5686,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5661
5686
|
}] }];
|
5662
5687
|
} });
|
5663
5688
|
|
5664
|
-
/**
|
5665
|
-
* Модуль валидации значения номера телефона.
|
5666
|
-
*/
|
5667
|
-
class ScTelLinkModule {
|
5668
|
-
}
|
5669
|
-
ScTelLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
5670
|
-
ScTelLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, imports: [ScFormatePhonePipe, ScTelLinkDirective], exports: [ScFormatePhonePipe, ScTelLinkDirective] });
|
5671
|
-
ScTelLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule });
|
5672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, decorators: [{
|
5673
|
-
type: NgModule,
|
5674
|
-
args: [{
|
5675
|
-
imports: [ScFormatePhonePipe, ScTelLinkDirective],
|
5676
|
-
exports: [ScFormatePhonePipe, ScTelLinkDirective],
|
5677
|
-
}]
|
5678
|
-
}] });
|
5679
|
-
|
5680
5689
|
/**
|
5681
5690
|
* Модуль компонентов пользователя.
|
5682
5691
|
*/
|
@@ -5992,5 +6001,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5992
6001
|
* Generated bundle index. Do not edit.
|
5993
6002
|
*/
|
5994
6003
|
|
5995
|
-
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_LOADING_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_PRODUCT_PAGINATION_PARAMS, SC_USER_INFO, SC_USER_PROVIDERS, ScAccordionComponent, ScAccordionContentDirective, ScAccordionModule, ScAddContactDialogComponent, ScAddContragentBankAccountsDialogComponent, ScAddContragentDialogComponent, ScAddDeliveryAddressDialogComponent, ScAddressesSelectionFieldComponent, ScAskToSampleFormComponent, ScAuthModule, ScBannerComponent, ScBannerModule, ScBrandsListComponent, ScBrandsListModule, ScCartItemMobileComponent, ScCartModule, ScCatalogModule, ScCategoriesListComponent, ScCategoryCardComponent, ScContactsAccordionComponent, ScContactsModule, ScContragentsAccordionComponent, ScContragentsAccordionItemComponent, ScContragentsModule, ScDeliveryAddressAccordionComponent, ScDeliveryAddressAccordionItemComponent, ScDeliveryAddressModule, ScFavoriteBtnComponent, ScFormFieldsModule, ScFormatePhonePipe, ScInputQuantityComponent, ScNewContactFormComponent, ScNewContragentBankAccountsFormComponent, ScNewContragentFormComponent, ScNewsCardComponent, ScNewsCardSkeletonComponent, ScNewsModule, ScNextInputFocusDirective, ScNextInputFocusModule, ScOrderItemMobileComponent, ScOrderModule, ScPaymentStatusComponent, ScPreviewSampleComponent, ScPreviewSampleModule, ScPriceCardComponent, ScPriceHistoryComponent, ScPriceListPaginationComponent, ScPriceWarehouseStockComponent, ScProfileAccordionsContentComponent, ScProfileModule, ScQRCodeDialogComponent, ScQRCodeModule, ScResetUserPasswordComponent, ScShareButtonComponent, ScShareButtonModule, ScSignInFormByEmailComponent, ScSignInFormByPhoneComponent, ScSignInFormComponent, ScSignUpFormComponent, ScSuggestionFieldComponent, ScTelLinkDirective, ScTerminalLinkDirective, ScUpdateUserInfoDialogComponent, ScUserManagersComponent, ScUserModule, ScUserPhoneApproveDialogComponent, ScVerificationModule, ScVerificationPhoneCheckFormComponent, TreeDirective, TreeIconService, TreeLoaderService, TreeTopDirective, nextPageClickEvent, paginationParams$, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
|
6004
|
+
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_LOADING_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_PRODUCT_PAGINATION_PARAMS, SC_USER_INFO, SC_USER_PROVIDERS, ScAccordionComponent, ScAccordionContentDirective, ScAccordionModule, ScAddContactDialogComponent, ScAddContragentBankAccountsDialogComponent, ScAddContragentDialogComponent, ScAddDeliveryAddressDialogComponent, ScAddressesSelectionFieldComponent, ScAskToSampleFormComponent, ScAuthModule, ScBannerComponent, ScBannerModule, ScBrandsListComponent, ScBrandsListModule, ScCartItemMobileComponent, ScCartModule, ScCatalogModule, ScCategoriesListComponent, ScCategoryCardComponent, ScContactsAccordionComponent, ScContactsModule, ScContragentsAccordionComponent, ScContragentsAccordionItemComponent, ScContragentsModule, ScDeliveryAddressAccordionComponent, ScDeliveryAddressAccordionItemComponent, ScDeliveryAddressModule, ScFavoriteBtnComponent, ScFormFieldsModule, ScFormatePhonePipe, ScInputQuantityComponent, ScNewContactFormComponent, ScNewContragentBankAccountsFormComponent, ScNewContragentFormComponent, ScNewsCardComponent, ScNewsCardSkeletonComponent, ScNewsModule, ScNextInputFocusDirective, ScNextInputFocusModule, ScOrderItemMobileComponent, ScOrderModule, ScPaymentStatusComponent, ScPreviewSampleComponent, ScPreviewSampleModule, ScPriceCardComponent, ScPriceHistoryComponent, ScPriceListPaginationComponent, ScPriceWarehouseStockComponent, ScProfileAccordionsContentComponent, ScProfileModule, ScQRCodeDialogComponent, ScQRCodeModule, ScResetUserPasswordComponent, ScShareButtonComponent, ScShareButtonModule, ScSignInFormByEmailComponent, ScSignInFormByPhoneComponent, ScSignInFormComponent, ScSignUpFormComponent, ScSuggestionFieldComponent, ScTelLinkDirective, ScTelLinkModule, ScTerminalLinkDirective, ScUpdateUserInfoDialogComponent, ScUserManagersComponent, ScUserModule, ScUserPhoneApproveDialogComponent, ScVerificationModule, ScVerificationPhoneCheckFormComponent, TreeDirective, TreeIconService, TreeLoaderService, TreeTopDirective, nextPageClickEvent, paginationParams$, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
|
5996
6005
|
//# sourceMappingURL=snabcentr-client-ui.mjs.map
|