@eui/ecl 15.0.0-next.18 → 15.0.0-next.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/i18n-ecl/bg.json +4 -0
- package/assets/i18n-ecl/cs.json +4 -0
- package/assets/i18n-ecl/da.json +4 -0
- package/assets/i18n-ecl/de.json +4 -0
- package/assets/i18n-ecl/el.json +4 -0
- package/assets/i18n-ecl/en.json +4 -0
- package/assets/i18n-ecl/es.json +4 -0
- package/assets/i18n-ecl/et.json +4 -0
- package/assets/i18n-ecl/fi.json +4 -0
- package/assets/i18n-ecl/fr.json +4 -0
- package/assets/i18n-ecl/ga.json +4 -0
- package/assets/i18n-ecl/hr.json +4 -0
- package/assets/i18n-ecl/hu.json +4 -0
- package/assets/i18n-ecl/it.json +4 -0
- package/assets/i18n-ecl/lt.json +4 -0
- package/assets/i18n-ecl/lv.json +4 -0
- package/assets/i18n-ecl/mt.json +4 -0
- package/assets/i18n-ecl/nl.json +4 -0
- package/assets/i18n-ecl/pl.json +4 -0
- package/assets/i18n-ecl/pt.json +4 -0
- package/assets/i18n-ecl/ro.json +4 -0
- package/assets/i18n-ecl/sk.json +4 -0
- package/assets/i18n-ecl/sl.json +4 -0
- package/assets/i18n-ecl/sv.json +4 -0
- package/docs/classes/EclLanguageService.html +255 -0
- package/docs/components/EclAppComponent.html +81 -25
- package/docs/components/EclMultiselectComponent.html +13 -1
- package/docs/components/EclNewsTickerComponent.html +1 -1
- package/docs/components/EclNewsTickerItemComponent.html +0 -67
- package/docs/components/EclPaginationItemComponent.html +1 -1
- package/docs/dependencies.html +1 -1
- package/docs/directives/EclDatePickerDirective.html +13 -1
- package/docs/injectables/EclDefaultLanguageService.html +303 -0
- package/docs/interfaces/EclLanguage.html +45 -0
- package/docs/js/search/search_index.js +2 -2
- package/esm2020/lib/components/ecl-app/ecl-app.component.mjs +18 -28
- package/esm2020/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +15 -7
- package/esm2020/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +20 -8
- package/esm2020/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +2 -6
- package/esm2020/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +13 -3
- package/esm2020/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +3 -3
- package/esm2020/lib/model/ecl-language.model.mjs +1 -1
- package/esm2020/lib/services/ecl-default-language.service.mjs +45 -9
- package/esm2020/lib/services/ecl-language.service.mjs +1 -1
- package/fesm2015/eui-ecl.mjs +102 -54
- package/fesm2015/eui-ecl.mjs.map +1 -1
- package/fesm2020/eui-ecl.mjs +99 -51
- package/fesm2020/eui-ecl.mjs.map +1 -1
- package/lib/components/ecl-app/ecl-app.component.d.ts +3 -6
- package/lib/components/ecl-app/ecl-app.component.d.ts.map +1 -1
- package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts +3 -1
- package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts.map +1 -1
- package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +6 -2
- package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
- package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts +0 -1
- package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts.map +1 -1
- package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts +1 -0
- package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
- package/lib/model/ecl-language.model.d.ts +1 -0
- package/lib/model/ecl-language.model.d.ts.map +1 -1
- package/lib/services/ecl-default-language.service.d.ts +14 -1
- package/lib/services/ecl-default-language.service.d.ts.map +1 -1
- package/lib/services/ecl-language.service.d.ts +6 -0
- package/lib/services/ecl-language.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChild, EventEmitter,
|
|
2
|
-
import { GLOBAL_CONFIG_TOKEN } from '@eui/core';
|
|
1
|
+
import { Component, ContentChild, EventEmitter, HostBinding, Output, ViewChild } from '@angular/core';
|
|
3
2
|
import { Subject } from 'rxjs';
|
|
4
3
|
import { takeUntil } from 'rxjs/operators';
|
|
5
4
|
import { EclBaseEvent } from '../../model';
|
|
@@ -8,10 +7,9 @@ import { EclLanguageListComponent } from '../ecl-language-list';
|
|
|
8
7
|
import { EclSiteHeaderComponent } from '../ecl-site-header';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "../../services/ecl-language.service";
|
|
11
|
-
import * as i2 from "@
|
|
12
|
-
import * as i3 from "
|
|
13
|
-
import * as i4 from "../ecl-language-list/ecl-language-list.component";
|
|
14
|
-
import * as i5 from "../ecl-language-list/ecl-language-list-item.component";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "../ecl-language-list/ecl-language-list.component";
|
|
12
|
+
import * as i4 from "../ecl-language-list/ecl-language-list-item.component";
|
|
15
13
|
export class EclAppLanguageDismissEvent extends EclBaseEvent {
|
|
16
14
|
constructor(language) {
|
|
17
15
|
super();
|
|
@@ -19,16 +17,14 @@ export class EclAppLanguageDismissEvent extends EclBaseEvent {
|
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
19
|
export class EclAppComponent extends ECLBaseDirective {
|
|
22
|
-
constructor(
|
|
20
|
+
constructor(eclLanguageService, cd) {
|
|
23
21
|
super();
|
|
24
|
-
this.config = config;
|
|
25
22
|
this.eclLanguageService = eclLanguageService;
|
|
26
|
-
this.i18nService = i18nService;
|
|
27
23
|
this.cd = cd;
|
|
24
|
+
this.textDirection = 'ltr';
|
|
28
25
|
this.languageDismiss = new EventEmitter();
|
|
29
26
|
this.languages = [];
|
|
30
27
|
this.destroy$ = new Subject();
|
|
31
|
-
this.FALLBACK_LANGUAGE = { code: 'en', label: 'English' };
|
|
32
28
|
}
|
|
33
29
|
ngAfterViewInit() {
|
|
34
30
|
this.handleAppLanguagesState();
|
|
@@ -41,13 +37,11 @@ export class EclAppComponent extends ECLBaseDirective {
|
|
|
41
37
|
this.destroy$.unsubscribe();
|
|
42
38
|
}
|
|
43
39
|
handleAppLanguagesState() {
|
|
44
|
-
|
|
45
|
-
this.languages = languages.map((code) => this.eclLanguageService.getLanguageByCode(code));
|
|
40
|
+
this.languages = this.eclLanguageService.getConfiguredLanguages();
|
|
46
41
|
this.cd.detectChanges();
|
|
47
42
|
}
|
|
48
43
|
handleActiveLanguageChangeState() {
|
|
49
|
-
this.
|
|
50
|
-
const lang = this.eclLanguageService.getLanguageByCode(state.activeLang) || this.FALLBACK_LANGUAGE;
|
|
44
|
+
this.eclLanguageService.currentLanguage$.subscribe(lang => {
|
|
51
45
|
this.syncLanguageDataWithUI(lang);
|
|
52
46
|
this.hideLanguageListUI();
|
|
53
47
|
});
|
|
@@ -65,11 +59,8 @@ export class EclAppComponent extends ECLBaseDirective {
|
|
|
65
59
|
this.languageDismiss.next(new EclAppLanguageDismissEvent());
|
|
66
60
|
});
|
|
67
61
|
this.eclLanguageList.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
68
|
-
|
|
69
|
-
this.
|
|
70
|
-
activeLang: lang.code
|
|
71
|
-
});
|
|
72
|
-
this.languageDismiss.next(new EclAppLanguageDismissEvent(lang));
|
|
62
|
+
this.eclLanguageService.updateCurrentLanguage(evt.language);
|
|
63
|
+
this.languageDismiss.next(new EclAppLanguageDismissEvent(evt.language));
|
|
73
64
|
this.cd.detectChanges();
|
|
74
65
|
});
|
|
75
66
|
}
|
|
@@ -89,19 +80,18 @@ export class EclAppComponent extends ECLBaseDirective {
|
|
|
89
80
|
this.eclSiteHeader.eclLanguageComponent.languageLabel = lang.label;
|
|
90
81
|
}
|
|
91
82
|
this.eclLanguageList.selectedLanguageCode = lang.code;
|
|
83
|
+
this.textDirection = lang.isRtl ? 'rtl' : 'ltr';
|
|
92
84
|
}
|
|
93
85
|
}
|
|
94
|
-
/** @nocollapse */ EclAppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclAppComponent, deps: [{ token:
|
|
95
|
-
/** @nocollapse */ EclAppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclAppComponent, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, queries: [{ propertyName: "eclSiteHeader", first: true, predicate: EclSiteHeaderComponent, descendants: true }], viewQueries: [{ propertyName: "eclLanguageList", first: true, predicate: EclLanguageListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ecl-language-list \n [isHidden]=\"true\"\n [isOverlay]=\"true\">\n <ecl-language-list-item \n *ngFor=\"let lang of languages\" \n [languageCode]=\"lang.code\" \n [languageLabel]=\"lang.label\">\n </ecl-language-list-item>\n</ecl-language-list>", dependencies: [{ kind: "directive", type:
|
|
86
|
+
/** @nocollapse */ EclAppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclAppComponent, deps: [{ token: i1.EclLanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
+
/** @nocollapse */ EclAppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclAppComponent, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, host: { properties: { "attr.dir": "this.textDirection" } }, queries: [{ propertyName: "eclSiteHeader", first: true, predicate: EclSiteHeaderComponent, descendants: true }], viewQueries: [{ propertyName: "eclLanguageList", first: true, predicate: EclLanguageListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ecl-language-list \n [isHidden]=\"true\"\n [isOverlay]=\"true\">\n <ecl-language-list-item \n *ngFor=\"let lang of languages\" \n [languageCode]=\"lang.code\" \n [languageLabel]=\"lang.label\">\n </ecl-language-list-item>\n</ecl-language-list>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.EclLanguageListComponent, selector: "ecl-language-list", inputs: ["isOverlay", "selectedLanguageCode", "isHidden"], outputs: ["languageSelected", "close"] }, { kind: "component", type: i4.EclLanguageListItemComponent, selector: "ecl-language-list-item", inputs: ["isActive", "languageCode", "languageLabel"], outputs: ["itemClick"] }] });
|
|
96
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclAppComponent, decorators: [{
|
|
97
89
|
type: Component,
|
|
98
90
|
args: [{ selector: 'ecl-app', template: "<ng-content></ng-content>\n\n<ecl-language-list \n [isHidden]=\"true\"\n [isOverlay]=\"true\">\n <ecl-language-list-item \n *ngFor=\"let lang of languages\" \n [languageCode]=\"lang.code\" \n [languageLabel]=\"lang.label\">\n </ecl-language-list-item>\n</ecl-language-list>" }]
|
|
99
|
-
}], ctorParameters: function () { return [{ type:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
args: [GLOBAL_CONFIG_TOKEN]
|
|
104
|
-
}] }, { type: i1.EclLanguageService }, { type: i2.I18nService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { eclSiteHeader: [{
|
|
91
|
+
}], ctorParameters: function () { return [{ type: i1.EclLanguageService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textDirection: [{
|
|
92
|
+
type: HostBinding,
|
|
93
|
+
args: ['attr.dir']
|
|
94
|
+
}], eclSiteHeader: [{
|
|
105
95
|
type: ContentChild,
|
|
106
96
|
args: [EclSiteHeaderComponent]
|
|
107
97
|
}], eclLanguageList: [{
|
|
@@ -110,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
|
|
|
110
100
|
}], languageDismiss: [{
|
|
111
101
|
type: Output
|
|
112
102
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLWFwcC9lY2wtYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtYXBwL2VjbC1hcHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFnQixtQkFBbUIsRUFBZSxNQUFNLFdBQVcsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sYUFBYSxDQUFDO0FBRXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBd0MsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQUU1RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsWUFBWTtJQUN4RCxZQUFtQixRQUFzQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURPLGFBQVEsR0FBUixRQUFRLENBQWM7SUFFekMsQ0FBQztDQUNKO0FBTUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0lBWWpELFlBQ3VELE1BQW9CLEVBQzdELGtCQUFzQyxFQUN0QyxXQUF3QixFQUN4QixFQUFxQjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQUwyQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQzdELHVCQUFrQixH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LGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdsb2JhbENvbmZpZywgR0xPQkFMX0NPTkZJR19UT0tFTiwgSTE4blNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50LCBFY2xMYW5ndWFnZSB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IEVjbExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VjbC1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTGFuZ3VhZ2VMaXN0Q29tcG9uZW50LCBFY2xMYW5ndWFnZUxpc3RMYW5ndWFnZVNlbGVjdGVkRXZlbnQgfSBmcm9tICcuLi9lY2wtbGFuZ3VhZ2UtbGlzdCc7XG5pbXBvcnQgeyBFY2xTaXRlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNsLXNpdGUtaGVhZGVyJztcblxuZXhwb3J0IGNsYXNzIEVjbEFwcExhbmd1YWdlRGlzbWlzc0V2ZW50IGV4dGVuZHMgRWNsQmFzZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbGFuZ3VhZ2U/OiBFY2xMYW5ndWFnZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtYXBwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLWFwcC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbEFwcENvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuICAgIEBDb250ZW50Q2hpbGQoRWNsU2l0ZUhlYWRlckNvbXBvbmVudCkgZWNsU2l0ZUhlYWRlcjogRWNsU2l0ZUhlYWRlckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKEVjbExhbmd1YWdlTGlzdENvbXBvbmVudCkgZWNsTGFuZ3VhZ2VMaXN0OiBFY2xMYW5ndWFnZUxpc3RDb21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbGFuZ3VhZ2VEaXNtaXNzID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xBcHBMYW5ndWFnZURpc21pc3NFdmVudD4oKTtcblxuICAgIHB1YmxpYyBsYW5ndWFnZXM6IEFycmF5PEVjbExhbmd1YWdlPiA9IFtdO1xuXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgRkFMTEJBQ0tfTEFOR1VBR0U6IEVjbExhbmd1YWdlID0geyBjb2RlOiAnZW4nLCBsYWJlbDogJ0VuZ2xpc2gnIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChHTE9CQUxfQ09ORklHX1RPS0VOKSBwcm90ZWN0ZWQgY29uZmlnOiBHbG9iYWxDb25maWcsXG4gICAgICAgIHByb3RlY3RlZCBlY2xMYW5ndWFnZVNlcnZpY2U6IEVjbExhbmd1YWdlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkgeyBcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXBwTGFuZ3VhZ2VzU3RhdGUoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmVMYW5ndWFnZUNoYW5nZVN0YXRlKCk7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVMYW5ndWFnZUxpc3RVSUV2ZW50cygpO1xuICAgICAgICB0aGlzLmhhbmRsZVNpdGVIZWFkZXJVSUV2ZW50cygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFwcExhbmd1YWdlc1N0YXRlKCkge1xuICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZz8uaTE4bj8uaTE4blNlcnZpY2U/Lmxhbmd1YWdlcyB8fCBbXTtcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSBsYW5ndWFnZXMubWFwKChjb2RlOiBzdHJpbmcpID0+IHRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlQnlDb2RlKGNvZGUpKTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBY3RpdmVMYW5ndWFnZUNoYW5nZVN0YXRlKCkge1xuICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLmdldFN0YXRlKCkuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLmVjbExhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZUJ5Q29kZShzdGF0ZS5hY3RpdmVMYW5nKSB8fCB0aGlzLkZBTExCQUNLX0xBTkdVQUdFO1xuXG4gICAgICAgICAgICB0aGlzLnN5bmNMYW5ndWFnZURhdGFXaXRoVUkobGFuZyk7XG4gICAgICAgICAgICB0aGlzLmhpZGVMYW5ndWFnZUxpc3RVSSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVNpdGVIZWFkZXJVSUV2ZW50cygpIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsU2l0ZUhlYWRlciAmJiB0aGlzLmVjbFNpdGVIZWFkZXIuZWNsTGFuZ3VhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsU2l0ZUhlYWRlci5lY2xMYW5ndWFnZUNvbXBvbmVudC5sYW5ndWFnZUNsaWNrLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TGFuZ3VhZ2VMaXN0VUkoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVMYW5ndWFnZUxpc3RVSUV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5lY2xMYW5ndWFnZUxpc3QuY2xvc2UucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhpZGVMYW5ndWFnZUxpc3RVSSgpO1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZURpc21pc3MubmV4dChuZXcgRWNsQXBwTGFuZ3VhZ2VEaXNtaXNzRXZlbnQoKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZWNsTGFuZ3VhZ2VMaXN0Lmxhbmd1YWdlU2VsZWN0ZWQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApLnN1YnNjcmliZSgoZXZ0OiBFY2xMYW5ndWFnZUxpc3RMYW5ndWFnZVNlbGVjdGVkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBldnQubGFuZ3VhZ2U7XG5cbiAgICAgICAgICAgIHRoaXMuaTE4blNlcnZpY2UudXBkYXRlU3RhdGUoe1xuICAgICAgICAgICAgICAgIGFjdGl2ZUxhbmc6IGxhbmcuY29kZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VEaXNtaXNzLm5leHQobmV3IEVjbEFwcExhbmd1YWdlRGlzbWlzc0V2ZW50KGxhbmcpKTtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVMYW5ndWFnZUxpc3RVSSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsTGFuZ3VhZ2VMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmVjbExhbmd1YWdlTGlzdC5pc0hpZGRlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dMYW5ndWFnZUxpc3RVSSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsTGFuZ3VhZ2VMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmVjbExhbmd1YWdlTGlzdC5pc0hpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jTGFuZ3VhZ2VEYXRhV2l0aFVJKGxhbmc6IEVjbExhbmd1YWdlKSB7XG4gICAgICAgIGlmICh0aGlzLmVjbFNpdGVIZWFkZXIgJiYgdGhpcy5lY2xTaXRlSGVhZGVyLmVjbExhbmd1YWdlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmVjbFNpdGVIZWFkZXIuZWNsTGFuZ3VhZ2VDb21wb25lbnQubGFuZ3VhZ2VDb2RlID0gbGFuZy5jb2RlO1xuICAgICAgICAgICAgdGhpcy5lY2xTaXRlSGVhZGVyLmVjbExhbmd1YWdlQ29tcG9uZW50Lmxhbmd1YWdlTGFiZWwgPSBsYW5nLmxhYmVsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lY2xMYW5ndWFnZUxpc3Quc2VsZWN0ZWRMYW5ndWFnZUNvZGUgPSBsYW5nLmNvZGU7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZWNsLWxhbmd1YWdlLWxpc3QgXG4gICAgW2lzSGlkZGVuXT1cInRydWVcIlxuICAgIFtpc092ZXJsYXldPVwidHJ1ZVwiPlxuICAgIDxlY2wtbGFuZ3VhZ2UtbGlzdC1pdGVtIFxuICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZXNcIiBcbiAgICAgICAgW2xhbmd1YWdlQ29kZV09XCJsYW5nLmNvZGVcIiBcbiAgICAgICAgW2xhbmd1YWdlTGFiZWxdPVwibGFuZy5sYWJlbFwiPlxuICAgIDwvZWNsLWxhbmd1YWdlLWxpc3QtaXRlbT5cbjwvZWNsLWxhbmd1YWdlLWxpc3Q+Il19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWFwcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLWFwcC9lY2wtYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtYXBwL2VjbC1hcHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sYUFBYSxDQUFDO0FBRXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBd0MsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRTVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxZQUFZO0lBQ3hELFlBQW1CLFFBQXNCO1FBQ3JDLEtBQUssRUFBRSxDQUFDO1FBRE8sYUFBUSxHQUFSLFFBQVEsQ0FBYztJQUV6QyxDQUFDO0NBQ0o7QUFNRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUFZakQsWUFDYyxrQkFBc0MsRUFDdEMsRUFBcUI7UUFFL0IsS0FBSyxFQUFFLENBQUM7UUFIRSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBYlYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFLckMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FB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LENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDdEU7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDOztzSUE1RlEsZUFBZTswSEFBZixlQUFlLHVNQUdWLHNCQUFzQixpR0FDekIsd0JBQXdCLHVFQ3ZCdkMsb1RBVW9CO2tHRFNQLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0ksU0FBUzt5SUFJTSxhQUFhO3NCQUFyQyxXQUFXO3VCQUFDLFVBQVU7Z0JBRWUsYUFBYTtzQkFBbEQsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBQ0MsZUFBZTtzQkFBbkQsU0FBUzt1QkFBQyx3QkFBd0I7Z0JBRXpCLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQsIEVjbExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xuaW1wb3J0IHsgRWNsTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWNsLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xMYW5ndWFnZUxpc3RDb21wb25lbnQsIEVjbExhbmd1YWdlTGlzdExhbmd1YWdlU2VsZWN0ZWRFdmVudCB9IGZyb20gJy4uL2VjbC1sYW5ndWFnZS1saXN0JztcbmltcG9ydCB7IEVjbFNpdGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9lY2wtc2l0ZS1oZWFkZXInO1xuXG5leHBvcnQgY2xhc3MgRWNsQXBwTGFuZ3VhZ2VEaXNtaXNzRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBsYW5ndWFnZT86IEVjbExhbmd1YWdlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1hcHAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtYXBwLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRWNsQXBwQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpcicpIHRleHREaXJlY3Rpb24gPSAnbHRyJztcblxuICAgIEBDb250ZW50Q2hpbGQoRWNsU2l0ZUhlYWRlckNvbXBvbmVudCkgZWNsU2l0ZUhlYWRlcjogRWNsU2l0ZUhlYWRlckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKEVjbExhbmd1YWdlTGlzdENvbXBvbmVudCkgZWNsTGFuZ3VhZ2VMaXN0OiBFY2xMYW5ndWFnZUxpc3RDb21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbGFuZ3VhZ2VEaXNtaXNzID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xBcHBMYW5ndWFnZURpc21pc3NFdmVudD4oKTtcblxuICAgIHB1YmxpYyBsYW5ndWFnZXM6IEFycmF5PEVjbExhbmd1YWdlPiA9IFtdO1xuXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWNsTGFuZ3VhZ2VTZXJ2aWNlOiBFY2xMYW5ndWFnZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHsgXG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmhhbmRsZUFwcExhbmd1YWdlc1N0YXRlKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQWN0aXZlTGFuZ3VhZ2VDaGFuZ2VTdGF0ZSgpO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlTGFuZ3VhZ2VMaXN0VUlFdmVudHMoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTaXRlSGVhZGVyVUlFdmVudHMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBcHBMYW5ndWFnZXNTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLmVjbExhbmd1YWdlU2VydmljZS5nZXRDb25maWd1cmVkTGFuZ3VhZ2VzKCk7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZlTGFuZ3VhZ2VDaGFuZ2VTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5lY2xMYW5ndWFnZVNlcnZpY2UuY3VycmVudExhbmd1YWdlJC5zdWJzY3JpYmUobGFuZz0+IHtcbiAgICAgICAgICAgIHRoaXMuc3luY0xhbmd1YWdlRGF0YVdpdGhVSShsYW5nKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZUxhbmd1YWdlTGlzdFVJKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2l0ZUhlYWRlclVJRXZlbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5lY2xTaXRlSGVhZGVyICYmIHRoaXMuZWNsU2l0ZUhlYWRlci5lY2xMYW5ndWFnZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5lY2xTaXRlSGVhZGVyLmVjbExhbmd1YWdlQ29tcG9uZW50Lmxhbmd1YWdlQ2xpY2sucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dMYW5ndWFnZUxpc3RVSSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUxhbmd1YWdlTGlzdFVJRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmVjbExhbmd1YWdlTGlzdC5jbG9zZS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZUxhbmd1YWdlTGlzdFVJKCk7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlRGlzbWlzcy5uZXh0KG5ldyBFY2xBcHBMYW5ndWFnZURpc21pc3NFdmVudCgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5lY2xMYW5ndWFnZUxpc3QubGFuZ3VhZ2VTZWxlY3RlZC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICkuc3Vic2NyaWJlKChldnQ6IEVjbExhbmd1YWdlTGlzdExhbmd1YWdlU2VsZWN0ZWRFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lY2xMYW5ndWFnZVNlcnZpY2UudXBkYXRlQ3VycmVudExhbmd1YWdlKGV2dC5sYW5ndWFnZSk7XG5cbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VEaXNtaXNzLm5leHQobmV3IEVjbEFwcExhbmd1YWdlRGlzbWlzc0V2ZW50KGV2dC5sYW5ndWFnZSkpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZUxhbmd1YWdlTGlzdFVJKCkge1xuICAgICAgICBpZiAodGhpcy5lY2xMYW5ndWFnZUxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsTGFuZ3VhZ2VMaXN0LmlzSGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd0xhbmd1YWdlTGlzdFVJKCkge1xuICAgICAgICBpZiAodGhpcy5lY2xMYW5ndWFnZUxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsTGFuZ3VhZ2VMaXN0LmlzSGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNMYW5ndWFnZURhdGFXaXRoVUkobGFuZzogRWNsTGFuZ3VhZ2UpIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsU2l0ZUhlYWRlciAmJiB0aGlzLmVjbFNpdGVIZWFkZXIuZWNsTGFuZ3VhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsU2l0ZUhlYWRlci5lY2xMYW5ndWFnZUNvbXBvbmVudC5sYW5ndWFnZUNvZGUgPSBsYW5nLmNvZGU7XG4gICAgICAgICAgICB0aGlzLmVjbFNpdGVIZWFkZXIuZWNsTGFuZ3VhZ2VDb21wb25lbnQubGFuZ3VhZ2VMYWJlbCA9IGxhbmcubGFiZWw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVjbExhbmd1YWdlTGlzdC5zZWxlY3RlZExhbmd1YWdlQ29kZSA9IGxhbmcuY29kZTtcbiAgICAgICAgdGhpcy50ZXh0RGlyZWN0aW9uID0gbGFuZy5pc1J0bCA/ICdydGwnIDogJ2x0cic7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZWNsLWxhbmd1YWdlLWxpc3QgXG4gICAgW2lzSGlkZGVuXT1cInRydWVcIlxuICAgIFtpc092ZXJsYXldPVwidHJ1ZVwiPlxuICAgIDxlY2wtbGFuZ3VhZ2UtbGlzdC1pdGVtIFxuICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZXNcIiBcbiAgICAgICAgW2xhbmd1YWdlQ29kZV09XCJsYW5nLmNvZGVcIiBcbiAgICAgICAgW2xhbmd1YWdlTGFiZWxdPVwibGFuZy5sYWJlbFwiPlxuICAgIDwvZWNsLWxhbmd1YWdlLWxpc3QtaXRlbT5cbjwvZWNsLWxhbmd1YWdlLWxpc3Q+Il19
|
|
@@ -7,6 +7,7 @@ import { ECLBaseDirective } from '../ecl-base.directive';
|
|
|
7
7
|
import { Subject, takeUntil } from 'rxjs';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@ngx-translate/core";
|
|
10
|
+
import * as i2 from "../../services";
|
|
10
11
|
const pikadayDefaultI18n = {
|
|
11
12
|
previousMonth: 'Previous Month',
|
|
12
13
|
nextMonth: 'Next Month',
|
|
@@ -27,11 +28,12 @@ export const ECL_DATE_PICKER_VALUE_ACCESSOR = {
|
|
|
27
28
|
};
|
|
28
29
|
const noop = () => { };
|
|
29
30
|
export class EclDatePickerDirective extends ECLBaseDirective {
|
|
30
|
-
constructor(el, viewContainerRef, translateService) {
|
|
31
|
+
constructor(el, viewContainerRef, translateService, eclLanguageService) {
|
|
31
32
|
super();
|
|
32
33
|
this.el = el;
|
|
33
34
|
this.viewContainerRef = viewContainerRef;
|
|
34
35
|
this.translateService = translateService;
|
|
36
|
+
this.eclLanguageService = eclLanguageService;
|
|
35
37
|
this.yearRange = 40;
|
|
36
38
|
this.format = 'DD-MM-YYYY';
|
|
37
39
|
this.type = 'text';
|
|
@@ -82,6 +84,8 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
82
84
|
initPikaday() {
|
|
83
85
|
const i18nKey = 'ecl.date-picker.PIKADAY';
|
|
84
86
|
let i18nTranslation = this.translateService.instant(i18nKey);
|
|
87
|
+
const isRtl = this.eclLanguageService.getCurrentLanguage().isRtl;
|
|
88
|
+
const position = isRtl ? 'bottom right' : 'bottom left';
|
|
85
89
|
if (!i18nTranslation || i18nTranslation === i18nKey) {
|
|
86
90
|
i18nTranslation = pikadayDefaultI18n;
|
|
87
91
|
}
|
|
@@ -92,16 +96,20 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
92
96
|
yearRange: this.yearRange,
|
|
93
97
|
reposition: false,
|
|
94
98
|
i18n: i18nTranslation,
|
|
99
|
+
isRtl: isRtl,
|
|
100
|
+
position: position,
|
|
95
101
|
showDaysInNextAndPreviousMonths: true,
|
|
96
102
|
enableSelectionDaysInNextAndPreviousMonths: true,
|
|
97
103
|
onSelect: this.onSelectDate.bind(this),
|
|
98
104
|
onOpen() {
|
|
99
|
-
//
|
|
105
|
+
// Extend picker size on mobile
|
|
100
106
|
const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
|
|
101
107
|
const elRect = this.el.getBoundingClientRect();
|
|
102
|
-
|
|
108
|
+
const pickerMargin = isRtl ? vw - elRect.right : elRect.left;
|
|
109
|
+
if (vw < 768) {
|
|
103
110
|
this.el.style.width = 'auto';
|
|
104
|
-
this.el.style.
|
|
111
|
+
this.el.style.left = `${pickerMargin}px`;
|
|
112
|
+
this.el.style.right = `${pickerMargin}px`;
|
|
105
113
|
}
|
|
106
114
|
},
|
|
107
115
|
});
|
|
@@ -147,7 +155,7 @@ export class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
147
155
|
return eclIconComponent.location.nativeElement;
|
|
148
156
|
}
|
|
149
157
|
}
|
|
150
|
-
/** @nocollapse */ EclDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDatePickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
158
|
+
/** @nocollapse */ EclDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDatePickerDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.TranslateService }, { token: i2.EclLanguageService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
151
159
|
/** @nocollapse */ EclDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclDatePickerDirective, selector: "input[eclDatePicker]", inputs: { yearRange: "yearRange", format: "format" }, outputs: { datePicked: "datePicked" }, host: { listeners: { "click": "onClick()", "blur": "onBlur()" }, properties: { "attr.type": "this.type", "class": "this.cssClasses", "attr.disabled": "this.isDisabled" } }, providers: [ECL_DATE_PICKER_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });
|
|
152
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclDatePickerDirective, decorators: [{
|
|
153
161
|
type: Directive,
|
|
@@ -155,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
|
|
|
155
163
|
selector: 'input[eclDatePicker]',
|
|
156
164
|
providers: [ECL_DATE_PICKER_VALUE_ACCESSOR]
|
|
157
165
|
}]
|
|
158
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.TranslateService }]; }, propDecorators: { yearRange: [{
|
|
166
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.TranslateService }, { type: i2.EclLanguageService }]; }, propDecorators: { yearRange: [{
|
|
159
167
|
type: Input
|
|
160
168
|
}], format: [{
|
|
161
169
|
type: Input
|
|
@@ -177,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
|
|
|
177
185
|
type: HostListener,
|
|
178
186
|
args: ['blur']
|
|
179
187
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtZGF0ZS1waWNrZXIvZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxHQUVmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUUxQyxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsU0FBUyxFQUFFLFlBQVk7SUFDdkIsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDbEksUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3hGLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFF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QUEwQjtRQUM5QixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWpELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNyQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUM1QyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDO1FBRXpELE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztJQUNuRCxDQUFDOzs2SUFwS1Esc0JBQXNCO2lJQUF0QixzQkFBc0IseVRBRnBCLENBQUMsOEJBQThCLENBQUM7a0dBRWxDLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDOUM7K0pBRVksU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ29CLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVztnQkFHcEIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBT1YsVUFBVTtzQkFBbkIsTUFBTTtnQkFNUCxVQUFVO3NCQURULFdBQVc7dUJBQUMsZUFBZTtnQkFnQzVCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgUGlrYWRheSBmcm9tICdwaWthZGF5JztcbmltcG9ydCB7IEVjbEljb25Db21wb25lbnQgfSBmcm9tICcuLi9lY2wtaWNvbi9lY2wtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvZWNsLWJhc2UuZXZlbnQnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYW5nQ2hhbmdlRXZlbnQsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBwaWthZGF5RGVmYXVsdEkxOG4gPSB7XG4gICAgcHJldmlvdXNNb250aDogJ1ByZXZpb3VzIE1vbnRoJyxcbiAgICBuZXh0TW9udGg6ICdOZXh0IE1vbnRoJyxcbiAgICBtb250aHM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddLFxuICAgIHdlZWtkYXlzOiBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5J10sXG4gICAgd2Vla2RheXNTaG9ydDogWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXVxufTtcblxuZXhwb3J0IGNsYXNzIEVjbERhdGVQaWNrZXJEYXRlUGlja2VkRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlOiBEYXRlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgRUNMX0RBVEVfUElDS0VSX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWNsRGF0ZVBpY2tlckRpcmVjdGl2ZSksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5jb25zdCBub29wID0gKCkgPT4geyB9O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W2VjbERhdGVQaWNrZXJdJyxcbiAgICBwcm92aWRlcnM6IFtFQ0xfREFURV9QSUNLRVJfVkFMVUVfQUNDRVNTT1JdXG59KVxuZXhwb3J0IGNsYXNzIEVjbERhdGVQaWNrZXJEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB5ZWFyUmFuZ2U6IG51bWJlciA9IDQwO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogc3RyaW5nID0gJ0RELU1NLVlZWVknO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50eXBlJykgdHlwZSA9ICd0ZXh0JztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLWRhdGVwaWNrZXJfX2ZpZWxkJyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgZGF0ZVBpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsRGF0ZVBpY2tlckRhdGVQaWNrZWRFdmVudD4oKTtcblxuICAgIHByaXZhdGUgcGlja2VyOiBhbnk7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICAgIGlzRGlzYWJsZWQgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSBub29wO1xuXG4gICAgcHJpdmF0ZSBob3N0RWw6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFdyYXBwZXJFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBlY2xJY29uQ29tcG9uZW50RWw6IEhUTUxFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlaTE4bkV2ZW50cygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQaWthZGF5KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTWFya3VwKCk7XG4gICAgfVxuXG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgb25CbHVyKCkge1xuICAgICAgICBjb25zdCB0ZXh0RmllbGRWYWx1ZTogc3RyaW5nID0gdGhpcy5ob3N0RWwudmFsdWU7XG5cbiAgICAgICAgaWYgKHRleHRGaWVsZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucGlja2VyLmdldERhdGUoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGlja2VyLnNldERhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0UGlrYWRheSgpIHtcbiAgICAgICAgY29uc3QgaTE4bktleSA9ICdlY2wuZGF0ZS1waWNrZXIuUElLQURBWSc7XG4gICAgICAgIGxldCBpMThuVHJhbnNsYXRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChpMThuS2V5KTtcblxuICAgICAgICBpZiAoIWkxOG5UcmFuc2xhdGlvbiB8fCBpMThuVHJhbnNsYXRpb24gPT09IGkxOG5LZXkpIHtcbiAgICAgICAgICAgIGkxOG5UcmFuc2xhdGlvbiA9IHBpa2FkYXlEZWZhdWx0STE4bjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGlja2VyID0gbmV3IFBpa2FkYXkuZGVmYXVsdCh7XG4gICAgICAgICAgICBmaWVsZDogdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmZvcm1hdCxcbiAgICAgICAgICAgIHRoZW1lOiAnZWNsLWRhdGVwaWNrZXItdGhlbWUnLFxuICAgICAgICAgICAgeWVhclJhbmdlOiB0aGlzLnllYXJSYW5nZSxcbiAgICAgICAgICAgIHJlcG9zaXRpb246IGZhbHNlLFxuICAgICAgICAgICAgaTE4bjogaTE4blRyYW5zbGF0aW9uLFxuICAgICAgICAgICAgc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczogdHJ1ZSxcbiAgICAgICAgICAgIGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczogdHJ1ZSxcbiAgICAgICAgICAgIG9uU2VsZWN0OiB0aGlzLm9uU2VsZWN0RGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgb25PcGVuKCkge1xuICAgICAgICAgICAgICAgIC8vIEZpeCBwaWNrZXIgc2l6ZSB0aGF0IGV4Y2VlZHMgdncgb24gbW9iaWxlXG4gICAgICAgICAgICAgICAgY29uc3QgdncgPSBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IDAsXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoIHx8IDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsUmVjdCA9IHRoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZWxSZWN0LndpZHRoID49IHZ3KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUud2lkdGggPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUucmlnaHQgPSBgJHtlbFJlY3QubGVmdH1weGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVpMThuRXZlbnRzKCkge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsYW5nQ2hhbmdlRXZlbnQ6IExhbmdDaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBpa2FkYXkoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TZWxlY3REYXRlKGRhdGU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VkLm5leHQoXG4gICAgICAgICAgICBuZXcgRWNsRGF0ZVBpY2tlckRhdGVQaWNrZWRFdmVudChkYXRlKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKGRhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTWFya3VwKCkge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmdldEhvc3RQYXJlbnRFbGVtZW50KHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsID0gdGhpcy5jcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLmVjbEljb25Db21wb25lbnRFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmhvc3RQYXJlbnRFbCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5yZXBsYWNlQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmhvc3RFbCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5ob3N0RWwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMuZWNsSWNvbkNvbXBvbmVudEVsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0UGFyZW50RWxlbWVudChob3N0RWw6IEhUTUxJbnB1dEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiBob3N0RWwucGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhvc3RXcmFwcGVyQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlckNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB3cmFwcGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2VjbC1kYXRlcGlja2VyJyk7XG5cbiAgICAgICAgcmV0dXJuIHdyYXBwZXJDb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJY29uQ29tcG9uZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgZWNsSWNvbkNvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoRWNsSWNvbkNvbXBvbmVudCk7XG4gICAgICAgIGVjbEljb25Db21wb25lbnQuaW5zdGFuY2Uuc2l6ZSA9ICdzJztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5pY29uID0gJ2NhbGVuZGFyJztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5jbGFzcyA9ICdlY2wtZGF0ZXBpY2tlcl9faWNvbic7XG5cbiAgICAgICAgcmV0dXJuIGVjbEljb25Db21wb25lbnQubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB9XG59XG4iXX0=
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtZGF0ZS1waWNrZXIvZWNsLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxHQUVmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFHMUMsTUFBTSxrQkFBa0IsR0FBRztJQUN2QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ2xJLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQztJQUN4RixhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFB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Q1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7aUJBQzlDO2dNQUVZLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNvQixJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBR3BCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQU9WLFVBQVU7c0JBQW5CLE1BQU07Z0JBTVAsVUFBVTtzQkFEVCxXQUFXO3VCQUFDLGVBQWU7Z0JBaUM1QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIFBpa2FkYXkgZnJvbSAncGlrYWRheSc7XG5pbXBvcnQgeyBFY2xJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNsLWljb24vZWNsLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGFuZ0NoYW5nZUV2ZW50LCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjbExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuY29uc3QgcGlrYWRheURlZmF1bHRJMThuID0ge1xuICAgIHByZXZpb3VzTW9udGg6ICdQcmV2aW91cyBNb250aCcsXG4gICAgbmV4dE1vbnRoOiAnTmV4dCBNb250aCcsXG4gICAgbW9udGhzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSxcbiAgICB3ZWVrZGF5czogWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddLFxuICAgIHdlZWtkYXlzU2hvcnQ6IFsnU3VuJywgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0J11cbn07XG5cbmV4cG9ydCBjbGFzcyBFY2xEYXRlUGlja2VyRGF0ZVBpY2tlZEV2ZW50IGV4dGVuZHMgRWNsQmFzZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZTogRGF0ZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IEVDTF9EQVRFX1BJQ0tFUl9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjbERhdGVQaWNrZXJEaXJlY3RpdmUpLFxuICAgIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3Qgbm9vcCA9ICgpID0+IHsgfTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFtlY2xEYXRlUGlja2VyXScsXG4gICAgcHJvdmlkZXJzOiBbRUNMX0RBVEVfUElDS0VSX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBFY2xEYXRlUGlja2VyRGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgeWVhclJhbmdlOiBudW1iZXIgPSA0MDtcbiAgICBASW5wdXQoKSBmb3JtYXQ6IHN0cmluZyA9ICdERC1NTS1ZWVlZJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIHR5cGUgPSAndGV4dCc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1kYXRlcGlja2VyX19maWVsZCcpLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGRhdGVQaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbERhdGVQaWNrZXJEYXRlUGlja2VkRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIHBpY2tlcjogYW55O1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgICBpc0Rpc2FibGVkID0gbnVsbDtcblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gbm9vcDtcblxuICAgIHByaXZhdGUgaG9zdEVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFBhcmVudEVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGhvc3RXcmFwcGVyRWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgZWNsSWNvbkNvbXBvbmVudEVsOiBIVE1MRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVjbExhbmd1YWdlU2VydmljZTogRWNsTGFuZ3VhZ2VTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlaTE4bkV2ZW50cygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQaWthZGF5KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTWFya3VwKCk7XG4gICAgfVxuXG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgb25CbHVyKCkge1xuICAgICAgICBjb25zdCB0ZXh0RmllbGRWYWx1ZTogc3RyaW5nID0gdGhpcy5ob3N0RWwudmFsdWU7XG5cbiAgICAgICAgaWYgKHRleHRGaWVsZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucGlja2VyLmdldERhdGUoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGlja2VyLnNldERhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0UGlrYWRheSgpIHtcbiAgICAgICAgY29uc3QgaTE4bktleSA9ICdlY2wuZGF0ZS1waWNrZXIuUElLQURBWSc7XG4gICAgICAgIGxldCBpMThuVHJhbnNsYXRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChpMThuS2V5KTtcbiAgICAgICAgY29uc3QgaXNSdGwgPSB0aGlzLmVjbExhbmd1YWdlU2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKS5pc1J0bDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSBpc1J0bCA/ICdib3R0b20gcmlnaHQnIDogJ2JvdHRvbSBsZWZ0J1xuXG4gICAgICAgIGlmICghaTE4blRyYW5zbGF0aW9uIHx8IGkxOG5UcmFuc2xhdGlvbiA9PT0gaTE4bktleSkge1xuICAgICAgICAgICAgaTE4blRyYW5zbGF0aW9uID0gcGlrYWRheURlZmF1bHRJMThuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5waWNrZXIgPSBuZXcgUGlrYWRheS5kZWZhdWx0KHtcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZm9ybWF0LFxuICAgICAgICAgICAgdGhlbWU6ICdlY2wtZGF0ZXBpY2tlci10aGVtZScsXG4gICAgICAgICAgICB5ZWFyUmFuZ2U6IHRoaXMueWVhclJhbmdlLFxuICAgICAgICAgICAgcmVwb3NpdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBpMThuOiBpMThuVHJhbnNsYXRpb24sXG4gICAgICAgICAgICBpc1J0bDogaXNSdGwsXG4gICAgICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgICBzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgZW5hYmxlU2VsZWN0aW9uRGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgb25TZWxlY3Q6IHRoaXMub25TZWxlY3REYXRlLmJpbmQodGhpcyksXG4gICAgICAgICAgICBvbk9wZW4oKSB7XG4gICAgICAgICAgICAgICAgLy8gRXh0ZW5kIHBpY2tlciBzaXplIG9uIG1vYmlsZVxuICAgICAgICAgICAgICAgIGNvbnN0IHZ3ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbFJlY3QgPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpY2tlck1hcmdpbiA9IGlzUnRsID8gdncgLSBlbFJlY3QucmlnaHQgOiBlbFJlY3QubGVmdDtcblxuICAgICAgICAgICAgICAgIGlmICh2dyA8IDc2OCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLndpZHRoID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLmxlZnQgPSBgJHtwaWNrZXJNYXJnaW59cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLnJpZ2h0ID0gYCR7cGlja2VyTWFyZ2lufXB4YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZWkxOG5FdmVudHMoKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxhbmdDaGFuZ2VFdmVudDogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGlrYWRheSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNlbGVjdERhdGUoZGF0ZTogRGF0ZSkge1xuICAgICAgICB0aGlzLmRhdGVQaWNrZWQubmV4dChcbiAgICAgICAgICAgIG5ldyBFY2xEYXRlUGlja2VyRGF0ZVBpY2tlZEV2ZW50KGRhdGUpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVNYXJrdXAoKSB7XG4gICAgICAgIHRoaXMuaG9zdEVsID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpO1xuICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbCA9IHRoaXMuZ2V0SG9zdFBhcmVudEVsZW1lbnQodGhpcy5ob3N0RWwpO1xuICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwgPSB0aGlzLmNyZWF0ZUhvc3RXcmFwcGVyQ29udGFpbmVyKCk7XG4gICAgICAgIHRoaXMuZWNsSWNvbkNvbXBvbmVudEVsID0gdGhpcy5jcmVhdGVJY29uQ29tcG9uZW50KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaG9zdFBhcmVudEVsICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLnJlcGxhY2VDaGlsZCh0aGlzLmhvc3RXcmFwcGVyRWwsIHRoaXMuaG9zdEVsKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5hcHBlbmRDaGlsZCh0aGlzLmhvc3RFbCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyRWwuYXBwZW5kQ2hpbGQodGhpcy5lY2xJY29uQ29tcG9uZW50RWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEhvc3RQYXJlbnRFbGVtZW50KGhvc3RFbDogSFRNTElucHV0RWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIGhvc3RFbC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSG9zdFdyYXBwZXJDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB3cmFwcGVyQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHdyYXBwZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZWNsLWRhdGVwaWNrZXInKTtcblxuICAgICAgICByZXR1cm4gd3JhcHBlckNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUljb25Db21wb25lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBlY2xJY29uQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChFY2xJY29uQ29tcG9uZW50KTtcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5zaXplID0gJ3MnO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmljb24gPSAnY2FsZW5kYXInO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmNsYXNzID0gJ2VjbC1kYXRlcGlja2VyX19pY29uJztcblxuICAgICAgICByZXR1cm4gZWNsSWNvbkNvbXBvbmVudC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -9,13 +9,15 @@ import { EclIconComponent } from '../ecl-icon/ecl-icon.component';
|
|
|
9
9
|
import { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/forms";
|
|
12
|
+
import * as i2 from "@ngx-translate/core";
|
|
12
13
|
export class EclMultiselectComponent extends ECLBaseDirective {
|
|
13
|
-
constructor(ngControl, el, viewContainerRef, differs) {
|
|
14
|
+
constructor(ngControl, el, viewContainerRef, differs, translate) {
|
|
14
15
|
super();
|
|
15
16
|
this.ngControl = ngControl;
|
|
16
17
|
this.el = el;
|
|
17
18
|
this.viewContainerRef = viewContainerRef;
|
|
18
19
|
this.differs = differs;
|
|
20
|
+
this.translate = translate;
|
|
19
21
|
this.isInvalid = false;
|
|
20
22
|
this._disabled = false;
|
|
21
23
|
this.eclSize = 'm';
|
|
@@ -65,6 +67,7 @@ export class EclMultiselectComponent extends ECLBaseDirective {
|
|
|
65
67
|
this.createHtmlElements();
|
|
66
68
|
this.buildMultiselectDropdown(false);
|
|
67
69
|
}
|
|
70
|
+
this.handleTranslations();
|
|
68
71
|
}
|
|
69
72
|
ngDoCheck() {
|
|
70
73
|
this.multiselectContainer.classList.toggle('ecl-select__container--disabled', this.disabled);
|
|
@@ -291,8 +294,8 @@ export class EclMultiselectComponent extends ECLBaseDirective {
|
|
|
291
294
|
this.selectAll();
|
|
292
295
|
};
|
|
293
296
|
checkboxDiv.appendChild(this.checkboxSelectAll);
|
|
294
|
-
|
|
295
|
-
checkboxDiv.appendChild(checkboxLabel);
|
|
297
|
+
this.checkboxLabel = this.createCheckboxLabel('Select all', 'select-multiple-all' + idStr.substring(idStr.lastIndexOf('.') + 1));
|
|
298
|
+
checkboxDiv.appendChild(this.checkboxLabel);
|
|
296
299
|
return checkboxDiv;
|
|
297
300
|
}
|
|
298
301
|
createOptionsWrapper() {
|
|
@@ -334,14 +337,14 @@ export class EclMultiselectComponent extends ECLBaseDirective {
|
|
|
334
337
|
selectIconContainer.classList.add('ecl-select__icon');
|
|
335
338
|
return selectIconContainer;
|
|
336
339
|
}
|
|
337
|
-
searchOptions(keyword) {
|
|
340
|
+
searchOptions(keyword = '') {
|
|
338
341
|
if (keyword === '') {
|
|
339
342
|
this.multiSelectOptions.forEach(item => {
|
|
340
343
|
item.style.display = 'flex';
|
|
341
344
|
});
|
|
342
345
|
}
|
|
343
346
|
this.multiSelectOptions.forEach((item, cnt) => {
|
|
344
|
-
if (item.textContent.toLowerCase().indexOf(keyword) < 0) {
|
|
347
|
+
if (item.textContent.toLowerCase().indexOf(keyword.toLowerCase()) < 0) {
|
|
345
348
|
item.style.display = 'none';
|
|
346
349
|
}
|
|
347
350
|
});
|
|
@@ -357,8 +360,17 @@ export class EclMultiselectComponent extends ECLBaseDirective {
|
|
|
357
360
|
this.selectedValues = [];
|
|
358
361
|
this.multiSelectInput.value = null;
|
|
359
362
|
}
|
|
363
|
+
handleTranslations() {
|
|
364
|
+
this.translate
|
|
365
|
+
.stream('ecl.multiselect.SELECT-ALL')
|
|
366
|
+
.pipe(takeUntil(this.destroy$)).subscribe((translation) => {
|
|
367
|
+
if (this.checkboxLabel) {
|
|
368
|
+
this.checkboxLabel.textContent = translation;
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
}
|
|
360
372
|
}
|
|
361
|
-
/** @nocollapse */ EclMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
373
|
+
/** @nocollapse */ EclMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
362
374
|
/** @nocollapse */ EclMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMultiselectComponent, selector: "select[eclMultiselect]", inputs: { isInvalid: "isInvalid", eclPlaceholder: "eclPlaceholder", disabled: "disabled", eclSize: "eclSize" }, outputs: { eclChange: "eclChange" }, host: { listeners: { "document:click": "onKeyUp($event)" }, properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclOptionItems", predicate: EclMultiselectOptionDirective }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>" });
|
|
363
375
|
__decorate([
|
|
364
376
|
coerceBoolean
|
|
@@ -370,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
|
|
|
370
382
|
type: Optional
|
|
371
383
|
}, {
|
|
372
384
|
type: Self
|
|
373
|
-
}] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }]; }, propDecorators: { eclOptionItems: [{
|
|
385
|
+
}] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }, { type: i2.TranslateService }]; }, propDecorators: { eclOptionItems: [{
|
|
374
386
|
type: ContentChildren,
|
|
375
387
|
args: [EclMultiselectOptionDirective]
|
|
376
388
|
}], isInvalid: [{
|
|
@@ -393,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
|
|
|
393
405
|
type: HostListener,
|
|
394
406
|
args: ['document:click', ['$event']]
|
|
395
407
|
}] } });
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFHZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixJQUFJLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBTW5GLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFvRHpELFlBQ2tDLFNBQW9CLEVBQzFDLEVBQWMsRUFDZCxnQkFBa0MsRUFDbEMsT0FBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFMc0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUMxQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtR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LGNBQWM7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNqQyxNQUFNLEtBQUssR0FBcUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDekI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7OzhJQTVhUSx1QkFBdUI7a0lBQXZCLHVCQUF1Qiw4WEFHZiw2QkFBNkIsb0RDbkNsRCwyQkFBeUI7O0lEb0NwQixhQUFhOzBEQUE0QztrR0FKakQsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLHdCQUF3Qjs7MEJBd0Q3QixRQUFROzswQkFBSSxJQUFJO2tJQWxEMkIsY0FBYztzQkFBN0QsZUFBZTt1QkFBQyw2QkFBNkI7Z0JBQ3RCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRVIsY0FBYztzQkFBMUIsS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsZUFBZTtnQkFXNUIsT0FBTztzQkFBZixLQUFLO2dCQUdGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQU9WLFNBQVM7c0JBQWxCLE1BQU07Z0JBb0dQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENoZWNrYm94TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9lY2wtY2hlY2tib3gvZWNsLWNoZWNrYm94LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY2xJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNsLWljb24vZWNsLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9lY2wtbXVsdGlzZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VsZWN0W2VjbE11bHRpc2VsZWN0XScsXG4gICAgdGVtcGxhdGVVcmw6ICdlY2wtbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdENvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2ssIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEFmdGVyVmlld0luaXQge1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZSkgZWNsT3B0aW9uSXRlbXM6IFF1ZXJ5TGlzdDxFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZT47XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgaXNJbnZhbGlkOiBib29sZWFuIHwgYW55ICA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGVjbFBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZWNsUGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3RJbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLl9lY2xQbGFjZWhvbGRlciB8fCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgfHwgbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IGFueSkgeyB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZWNsU2l6ZTogc3RyaW5nID0gJ20nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0JyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgZWNsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwcml2YXRlIF9lY2xQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZT47XG4gICAgcHJpdmF0ZSBob3N0RWw6IEhUTUxTZWxlY3RFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFBhcmVudEVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGhvc3RXcmFwcGVyRWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgc2VsZWN0SWNvbkNvbnRhaW5lckVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGVjbEljb25Db21wb25lbnRFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aXNlbGVjdFdyYXBwZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgbXVsdGlzZWxlY3RDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgbXVsdGlEcm9wZG93bjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBvcHRpb25zV3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aVNlbGVjdE9wdGlvbnM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0SW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBjaGVja2JveFNlbGVjdEFsbDogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIHNlbGVjdGVkVmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzXG4gICAgICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmdldEhvc3RQYXJlbnRFbGVtZW50KHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsID0gdGhpcy5jcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLnNlbGVjdEljb25Db250YWluZXJFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLmVjbEljb25Db21wb25lbnRFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyID0gdGhpcy5jcmVhdGVXcmFwcGVyTXVsdGlzZWxlY3QoKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lciA9IHRoaXMuY3JlYXRlU2VsZWN0Q29udGFpbmVyTXVsdGlzZWxlY3QoKTtcblxuICAgICAgICBpZiAodGhpcy5ob3N0UGFyZW50RWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSHRtbEVsZW1lbnRzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYnVpbGRNdWx0aXNlbGVjdERyb3Bkb3duKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcblxuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0tZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKCdlY2wtc2VsZWN0X19jb250YWluZXItLWludmFsaWQnLCB0aGlzLmlzSW52YWxpZCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbE9wdGlvbkl0ZW1zKTtcblxuICAgICAgICBpZiAoZGlmZikge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVBbGxPcHRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgZGlmZi5mb3JFYWNoSXRlbShpdGVtID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlT3B0aW9uV2l0aENoZWNrYm94KGl0ZW0uaXRlbSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50VmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wdXNoKGVsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Q29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uS2V5VXAoZXY6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgaXNDbGlja0luc2lkZSA9IHRoaXMubXVsdGlEcm9wZG93bi5jb250YWlucyg8RWxlbWVudD5ldi50YXJnZXQpIHx8IHRoaXMubXVsdGlTZWxlY3RJbnB1dC5jb250YWlucyg8RWxlbWVudD5ldi50YXJnZXQpO1xuICAgICAgICBpZiAoIWlzQ2xpY2tJbnNpZGUpIHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVBbGxPcHRpb25zKCkge1xuICAgICAgICB3aGlsZSAodGhpcy5vcHRpb25zV3JhcHBlci5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyLmZpcnN0Q2hpbGQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uT3B0aW9uc0NoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5lY2xPcHRpb25JdGVtcy5mb3JFYWNoKGkgPT4gaS5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpc2VsZWN0V3JhcHBlci5yZW1vdmVDaGlsZCh0aGlzLm11bHRpRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZE11bHRpc2VsZWN0RHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU9yaWdpbmFsU2VsZWN0Q29tcG9uZW50KCkge1xuICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5yZXBsYWNlQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmhvc3RFbCk7XG4gICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5hcHBlbmRDaGlsZCh0aGlzLmhvc3RFbCk7XG4gICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXItLWhpZGRlbicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSHRtbEVsZW1lbnRzKCkge1xuICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5hcHBlbmRDaGlsZCh0aGlzLm11bHRpc2VsZWN0V3JhcHBlcik7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMubXVsdGlzZWxlY3RDb250YWluZXIpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0SWNvbkNvbnRhaW5lckVsKTtcbiAgICAgICAgdGhpcy5zZWxlY3RJY29uQ29udGFpbmVyRWwuYXBwZW5kQ2hpbGQodGhpcy5lY2xJY29uQ29tcG9uZW50RWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVG91Y2hlZCA9ICgpID0+IHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkTXVsdGlzZWxlY3REcm9wZG93bih3aXRoT3B0aW9uczogYm9vbGVhbikge1xuXG4gICAgICAgIHRoaXMubXVsdGlEcm9wZG93biA9IHRoaXMuY3JlYXRlRHJvcGRvd25Gb3JNdWx0aXNlbGVjdCgpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0V3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLm11bHRpRHJvcGRvd24pO1xuXG4gICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNlYXJjaEZvck11bHRpc2VsZWN0KCkpO1xuICAgICAgICB0aGlzLm11bHRpRHJvcGRvd24uYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVNdWx0aVNlbGVjdEFsbCgpKTtcbiAgICAgICAgdGhpcy5vcHRpb25zV3JhcHBlciA9IHRoaXMuY3JlYXRlT3B0aW9uc1dyYXBwZXIoKTtcbiAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLmFwcGVuZENoaWxkKHRoaXMub3B0aW9uc1dyYXBwZXIpO1xuXG4gICAgICAgIGlmICh3aXRoT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5lY2xPcHRpb25JdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zV3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZU9wdGlvbldpdGhDaGVja2JveChpdGVtKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTFNlbGVjdEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdFBhcmVudEVsZW1lbnQoaG9zdEVsOiBIVE1MU2VsZWN0RWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIGhvc3RFbC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSG9zdFdyYXBwZXJDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB3cmFwcGVyQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHdyYXBwZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyJyk7XG4gICAgICAgIHdyYXBwZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChgZWNsLXNlbGVjdF9fY29udGFpbmVyLS0ke3RoaXMuZWNsU2l6ZX1gKTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXJDb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVXcmFwcGVyTXVsdGlzZWxlY3QoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB3cmFwcGVyQ29udGFpbmVyTXVsdGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lck11bHRpLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX211bHRpcGxlJyk7XG4gICAgICAgIHJldHVybiB3cmFwcGVyQ29udGFpbmVyTXVsdGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWxlY3RDb250YWluZXJNdWx0aXNlbGVjdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdENvbnRhaW5lck11bHRpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHNlbGVjdENvbnRhaW5lck11bHRpLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lcicpO1xuICAgICAgICBzZWxlY3RDb250YWluZXJNdWx0aS5jbGFzc0xpc3QuYWRkKGBlY2wtc2VsZWN0X19jb250YWluZXItLSR7dGhpcy5lY2xTaXplfWApO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgc2VsZWN0Q29udGFpbmVyTXVsdGkuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLl9lY2xQbGFjZWhvbGRlciB8fCAnJyk7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC5yZWFkT25seSA9IHRydWU7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpO1xuICAgICAgICBpZiAodGhpcy5ob3N0RWwuaGFzQXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnKSkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUNvbnRyb2xOYW1lJywgdGhpcy5ob3N0RWwuZ2V0QXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0Lm9uY2xpY2sgPSAoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm11bHRpRHJvcGRvd24uc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gJ2Jsb2NrJyA6ICdub25lJztcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3QnKTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX211bHRpcGxlLXRvZ2dsZScpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdENvbnRhaW5lck11bHRpLmFwcGVuZENoaWxkKHRoaXMubXVsdGlTZWxlY3RJbnB1dCk7XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdENvbnRhaW5lck11bHRpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRHJvcGRvd25Gb3JNdWx0aXNlbGVjdCgpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25EaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgZHJvcGRvd25EaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtZHJvcGRvd24nKTtcbiAgICAgICAgZHJvcGRvd25EaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyJyk7XG4gICAgICAgIGRyb3Bkb3duRGl2LmNsYXNzTGlzdC5hZGQoYGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tJHt0aGlzLmVjbFNpemV9YCk7XG4gICAgICAgIGRyb3Bkb3duRGl2LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHJldHVybiBkcm9wZG93bkRpdjtcbiAgICB9XG5cbiAgICAvLyBzZWFyY2ggYm94IHRvIHNlYXJjaCBhbW9uZyBvcHRpb25zXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWFyY2hGb3JNdWx0aXNlbGVjdCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgY29uc3QgbXVsdGlTZWFyY2ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICBtdWx0aVNlYXJjaC50eXBlID0gJ3RleHQnO1xuICAgICAgICBtdWx0aVNlYXJjaC5jbGFzc0xpc3QuYWRkKCdlY2wtdGV4dC1pbnB1dCcpO1xuICAgICAgICBtdWx0aVNlYXJjaC5wbGFjZWhvbGRlciA9ICdTZWFyY2gnO1xuICAgICAgICAvLyBTZWFyY2ggZWxlbWVudHMuIEVsZW1lbnRzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIGNyaXRlcmlhIGFyZSBoaWRkZW5cbiAgICAgICAgbXVsdGlTZWFyY2gub25rZXl1cCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoT3B0aW9ucyhtdWx0aVNlYXJjaC52YWx1ZSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBtdWx0aVNlYXJjaDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZU9wdGlvbldpdGhDaGVja2JveChlbDogRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmUpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGlkU3RyID0gKG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGlkID0gJ2lkLScgKyBlbC52YWx1ZSArIGlkU3RyLnN1YnN0cmluZyhpZFN0ci5sYXN0SW5kZXhPZignLicpICsgMSk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tib3hEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgICBpZiAoZWwuY3NzQ2xhc3Nlcykge1xuICAgICAgICAgICAgZWwuY3NzQ2xhc3Nlcy5zcGxpdCgnICcpLmZvckVhY2goY2wgPT4ge1xuICAgICAgICAgICAgICAgIGNoZWNrYm94RGl2LmNsYXNzTGlzdC5hZGQoY2wpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGVja2JveElucHV0ID0gdGhpcy5jcmVhdGVDaGVja2JveElucHV0KGlkLCBlbC52YWx1ZSk7XG4gICAgICAgIGlmIChlbC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY2hlY2tib3hEaXYuY2xhc3NMaXN0LmFkZCgnZWNsLWNoZWNrYm94LS1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgY2hlY2tib3hJbnB1dC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGVja2JveElucHV0Lm9uY2xpY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50VmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWwuc2VsZWN0ZWQgfHwgKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuaW5kZXhPZihlbC52YWx1ZSkgPiAtMSkpIHtcbiAgICAgICAgICAgIGNoZWNrYm94SW5wdXQuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPT09ICcnID8gZWwubGFiZWwgOlxuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSArICcsJyArIGVsLmxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrYm94RGl2LmFwcGVuZENoaWxkKGNoZWNrYm94SW5wdXQpO1xuXG4gICAgICAgIGNvbnN0IGNoZWNrYm94TGFiZWwgPSB0aGlzLmNyZWF0ZUNoZWNrYm94TGFiZWwoZWwubGFiZWwsIGlkKTtcbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQoY2hlY2tib3hMYWJlbCk7XG5cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMucHVzaChjaGVja2JveERpdik7XG4gICAgICAgIHJldHVybiBjaGVja2JveERpdjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoZWNrYm94TGFiZWwodGV4dDogc3RyaW5nLCBpZDogc3RyaW5nKTogSFRNTExhYmVsRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94TGFiZWwgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEVjbENoZWNrYm94TGFiZWxDb21wb25lbnQpO1xuICAgICAgICBjaGVja2JveExhYmVsLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuaHRtbEZvciA9IGlkO1xuXG4gICAgICAgIGNvbnN0IHRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0ZXh0U3Bhbi5pbm5lckhUTUwgPSB0ZXh0O1xuXG4gICAgICAgIGNoZWNrYm94TGFiZWwubG9jYXRpb24ubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0U3Bhbik7XG4gICAgICAgIHJldHVybiBjaGVja2JveExhYmVsLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDaGVja2JveElucHV0KGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGNoZWNrYm94SW5wdXQudHlwZSA9ICdjaGVja2JveCc7XG4gICAgICAgIGNoZWNrYm94SW5wdXQuY2xhc3NMaXN0LmFkZCgnZWNsLWNoZWNrYm94X19pbnB1dCcpO1xuICAgICAgICBjaGVja2JveElucHV0LmlkID0gaWQ7XG4gICAgICAgIGNoZWNrYm94SW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94SW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gQWRkL3JlbW92ZSB2YWx1ZXMgZnJvbSB0aGUgc2VsZWN0IGlucHV0XG4gICAgcHJpdmF0ZSB1cGRhdGVDdXJyZW50VmFsdWUoKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnRzQXJyYXkgPSBbXTtcbiAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudHNWYWx1ZXNBcnJheSA9IFtdO1xuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0QWxsLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudHNWYWx1ZXNBcnJheS5wdXNoKCg8SFRNTElucHV0RWxlbWVudD5lbC5jaGlsZE5vZGVzWzBdKS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c0FycmF5LnB1c2goZWwuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSBzZWxlY3RlZEVsZW1lbnRzQXJyYXkuam9pbignLCcpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICB9XG5cbiAgICAvLyBDaGVja2JveCB0byBzZWxlY3QgYWxsIHRoZSBlbGVtZW50c1xuICAgIHByaXZhdGUgY3JlYXRlTXVsdGlTZWxlY3RBbGwoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBpZFN0ciA9IChuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpO1xuICAgICAgICBjb25zdCBjaGVja2JveERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjaGVja2JveERpdi5jbGFzc0xpc3QuYWRkKCdlY2wtY2hlY2tib3gnKTtcbiAgICAgICAgY2hlY2tib3hEaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtYWxsJyk7XG5cbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdEFsbCA9IHRoaXMuY3JlYXRlQ2hlY2tib3hJbnB1dCgnc2VsZWN0LW11bHRpcGxlLWFsbCcgKyBpZFN0ci5zdWJzdHJpbmcoaWRTdHIubGFzdEluZGV4T2YoJy4nKSArIDEpLCAnYWxsJyk7XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwub25jbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGwoKTtcbiAgICAgICAgfTtcbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveFNlbGVjdEFsbCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tib3hMYWJlbCA9IHRoaXMuY3JlYXRlQ2hlY2tib3hMYWJlbCgnU2VsZWN0IGFsbCcsICdzZWxlY3QtbXVsdGlwbGUtYWxsJyArIGlkU3RyLnN1YnN0cmluZyhpZFN0ci5sYXN0SW5kZXhPZignLicpICsgMSkpO1xuICAgICAgICBjaGVja2JveERpdi5hcHBlbmRDaGlsZChjaGVja2JveExhYmVsKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94RGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uc1dyYXBwZXIoKTogSFRNTEVsZW1lbnQge1xuXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtb3B0aW9ucycpO1xuICAgICAgICByZXR1cm4gZGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50c0FycmF5ID0gW107XG4gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnRzVmFsdWVzQXJyYXkgPSBbXTtcbiAgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUgZWxlbWVudHMsIHRoYXQgYXJlIG5vdCBkaXNhYmxlZFxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maWx0ZXIoZWxlbSA9PiBlbGVtLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveFNlbGVjdEFsbC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5LnB1c2goKDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF0pLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c0FycmF5LnB1c2goZWwuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSBzZWxlY3RlZEVsZW1lbnRzQXJyYXkuam9pbignLCcpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUljb25Db21wb25lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBlY2xJY29uQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChFY2xJY29uQ29tcG9uZW50KTtcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5zaXplID0gJ3MnO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmljb24gPSAnY29ybmVyLWFycm93JztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS50cmFuc2Zvcm0gPSAncm90YXRlLTE4MCc7XG4gICAgICAgIGVjbEljb25Db21wb25lbnQuaW5zdGFuY2UuY2xhc3MgPSAnZWNsLXNlbGVjdF9faWNvbi1zaGFwZSc7XG4gICAgICAgIHJldHVybiBlY2xJY29uQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJY29uQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SWNvbkNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBzZWxlY3RJY29uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2ljb24nKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdEljb25Db250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hPcHRpb25zKGtleXdvcmQpIHtcbiAgICAgICAgaWYgKGtleXdvcmQgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZvckVhY2goKGl0ZW0sIGNudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0udGV4dENvbnRlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleXdvcmQpIDwgMCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbXBvbmVudCgpIHtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
|
|
408
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFHZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixJQUFJLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU1uRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBcUR6RCxZQUNrQyxTQUFvQixFQUMxQyxFQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLE9BQXdCLEVBQ3hCLFNBQTJCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBTHNCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDMUMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLHFCQUFnQixHQUFoQixn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QjtnQkFDdEIsU0FBUztzQkFBakIsS0FBSztnQkFFUixjQUFjO3NCQUExQixLQUFLO2dCQVFGLFFBQVE7c0JBRFgsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxlQUFlO2dCQVc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBR0YsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBT1YsU0FBUztzQkFBbEIsTUFBTTtnQkF1R1AsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsQ2hlY2tib3hMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1jaGVja2JveC9lY2wtY2hlY2tib3gtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVjbEljb25Db21wb25lbnQgfSBmcm9tICcuLi9lY2wtaWNvbi9lY2wtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzZWxlY3RbZWNsTXVsdGlzZWxlY3RdJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE11bHRpc2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjaywgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlKSBlY2xPcHRpb25JdGVtczogUXVlcnlMaXN0PEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlPjtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc0ludmFsaWQ6IGJvb2xlYW4gfCBhbnkgID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzZXQgZWNsUGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9lY2xQbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdElucHV0KSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMuX2VjbFBsYWNlaG9sZGVyIHx8ICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCB8fCBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgYW55KSB7IHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBlY2xTaXplOiBzdHJpbmcgPSAnbSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zZWxlY3QnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBlY2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgX2VjbFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlPjtcbiAgICBwcml2YXRlIGhvc3RFbDogSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFdyYXBwZXJFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBzZWxlY3RJY29uQ29udGFpbmVyRWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgZWNsSWNvbkNvbXBvbmVudEVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG11bHRpc2VsZWN0V3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aXNlbGVjdENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aURyb3Bkb3duOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG9wdGlvbnNXcmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0T3B0aW9uczogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICAgIHByaXZhdGUgbXVsdGlTZWxlY3RJbnB1dDogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIGNoZWNrYm94U2VsZWN0QWxsOiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHByaXZhdGUgc2VsZWN0ZWRWYWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBjaGVja2JveExhYmVsOiBIVE1MTGFiZWxFbGVtZW50O1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmdldEhvc3RQYXJlbnRFbGVtZW50KHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsID0gdGhpcy5jcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLnNlbGVjdEljb25Db250YWluZXJFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLmVjbEljb25Db21wb25lbnRFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyID0gdGhpcy5jcmVhdGVXcmFwcGVyTXVsdGlzZWxlY3QoKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lciA9IHRoaXMuY3JlYXRlU2VsZWN0Q29udGFpbmVyTXVsdGlzZWxlY3QoKTtcblxuICAgICAgICBpZiAodGhpcy5ob3N0UGFyZW50RWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSHRtbEVsZW1lbnRzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYnVpbGRNdWx0aXNlbGVjdERyb3Bkb3duKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFuZGxlVHJhbnNsYXRpb25zKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgnZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0taW52YWxpZCcsIHRoaXMuaXNJbnZhbGlkKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsT3B0aW9uSXRlbXMpO1xuXG4gICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUFsbE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zID0gW107XG4gICAgICAgICAgICBkaWZmLmZvckVhY2hJdGVtKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1dyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVPcHRpb25XaXRoQ2hlY2tib3goaXRlbS5pdGVtKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub25PcHRpb25zQ2hhbmdlKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnB1c2goZWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25LZXlVcChldjogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBpc0NsaWNrSW5zaWRlID0gdGhpcy5tdWx0aURyb3Bkb3duLmNvbnRhaW5zKDxFbGVtZW50PmV2LnRhcmdldCkgfHwgdGhpcy5tdWx0aVNlbGVjdElucHV0LmNvbnRhaW5zKDxFbGVtZW50PmV2LnRhcmdldCk7XG4gICAgICAgIGlmICghaXNDbGlja0luc2lkZSkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUFsbE9wdGlvbnMoKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLm9wdGlvbnNXcmFwcGVyLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc1dyYXBwZXIuZmlyc3RDaGlsZC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25PcHRpb25zQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLmVjbE9wdGlvbkl0ZW1zLmZvckVhY2goaSA9PiBpLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyLnJlbW92ZUNoaWxkKHRoaXMubXVsdGlEcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkTXVsdGlzZWxlY3REcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKSB7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLnJlcGxhY2VDaGlsZCh0aGlzLmhvc3RXcmFwcGVyRWwsIHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0taGlkZGVuJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIdG1sRWxlbWVudHMoKSB7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLmFwcGVuZENoaWxkKHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdFdyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lcik7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3RJY29uQ29udGFpbmVyRWwpO1xuICAgICAgICB0aGlzLnNlbGVjdEljb25Db250YWluZXJFbC5hcHBlbmRDaGlsZCh0aGlzLmVjbEljb25Db21wb25lbnRFbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVUb3VjaGVkID0gKCkgPT4ge1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRNdWx0aXNlbGVjdERyb3Bkb3duKHdpdGhPcHRpb25zOiBib29sZWFuKSB7XG5cbiAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duID0gdGhpcy5jcmVhdGVEcm9wZG93bkZvck11bHRpc2VsZWN0KCk7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMubXVsdGlEcm9wZG93bik7XG5cbiAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU2VhcmNoRm9yTXVsdGlzZWxlY3QoKSk7XG4gICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZU11bHRpU2VsZWN0QWxsKCkpO1xuICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyID0gdGhpcy5jcmVhdGVPcHRpb25zV3JhcHBlcigpO1xuICAgICAgICB0aGlzLm11bHRpRHJvcGRvd24uYXBwZW5kQ2hpbGQodGhpcy5vcHRpb25zV3JhcHBlcik7XG5cbiAgICAgICAgaWYgKHdpdGhPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmVjbE9wdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlT3B0aW9uV2l0aENoZWNrYm94KGl0ZW0pKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0RWxlbWVudCgpOiBIVE1MU2VsZWN0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0UGFyZW50RWxlbWVudChob3N0RWw6IEhUTUxTZWxlY3RFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gaG9zdEVsLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXInKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGBlY2wtc2VsZWN0X19jb250YWluZXItLSR7dGhpcy5lY2xTaXplfWApO1xuICAgICAgICByZXR1cm4gd3JhcHBlckNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVdyYXBwZXJNdWx0aXNlbGVjdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJDb250YWluZXJNdWx0aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB3cmFwcGVyQ29udGFpbmVyTXVsdGkuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUnKTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXJDb250YWluZXJNdWx0aTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVNlbGVjdENvbnRhaW5lck11bHRpc2VsZWN0KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29udGFpbmVyTXVsdGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgc2VsZWN0Q29udGFpbmVyTXVsdGkuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyJyk7XG4gICAgICAgIHNlbGVjdENvbnRhaW5lck11bHRpLmNsYXNzTGlzdC5hZGQoYGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tJHt0aGlzLmVjbFNpemV9YCk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBzZWxlY3RDb250YWluZXJNdWx0aS5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXItLWRpc2FibGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMuX2VjbFBsYWNlaG9sZGVyIHx8ICcnKTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7XG4gICAgICAgIGlmICh0aGlzLmhvc3RFbC5oYXNBdHRyaWJ1dGUoJ2Zvcm1Db250cm9sTmFtZScpKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnLCB0aGlzLmhvc3RFbC5nZXRBdHRyaWJ1dGUoJ2Zvcm1Db250cm9sTmFtZScpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQub25jbGljayA9IChlKSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLm11bHRpRHJvcGRvd24uc3R5bGUuZGlzcGxheSA9IHRoaXMubXVsdGlEcm9wZG93bi5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgPyAnYmxvY2snIDogJ25vbmUnO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdCcpO1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtdG9nZ2xlJyk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0Q29udGFpbmVyTXVsdGkuYXBwZW5kQ2hpbGQodGhpcy5tdWx0aVNlbGVjdElucHV0KTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0Q29udGFpbmVyTXVsdGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkZvck11bHRpc2VsZWN0KCkge1xuICAgICAgICBjb25zdCBkcm9wZG93bkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBkcm9wZG93bkRpdi5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19tdWx0aXBsZS1kcm9wZG93bicpO1xuICAgICAgICBkcm9wZG93bkRpdi5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXInKTtcbiAgICAgICAgZHJvcGRvd25EaXYuY2xhc3NMaXN0LmFkZChgZWNsLXNlbGVjdF9fY29udGFpbmVyLS0ke3RoaXMuZWNsU2l6ZX1gKTtcbiAgICAgICAgZHJvcGRvd25EaXYuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgcmV0dXJuIGRyb3Bkb3duRGl2O1xuICAgIH1cblxuICAgIC8vIHNlYXJjaCBib3ggdG8gc2VhcmNoIGFtb25nIG9wdGlvbnNcbiAgICBwcml2YXRlIGNyZWF0ZVNlYXJjaEZvck11bHRpc2VsZWN0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBjb25zdCBtdWx0aVNlYXJjaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIG11bHRpU2VhcmNoLnR5cGUgPSAndGV4dCc7XG4gICAgICAgIG11bHRpU2VhcmNoLmNsYXNzTGlzdC5hZGQoJ2VjbC10ZXh0LWlucHV0Jyk7XG4gICAgICAgIG11bHRpU2VhcmNoLnBsYWNlaG9sZGVyID0gJ1NlYXJjaCc7XG4gICAgICAgIC8vIFNlYXJjaCBlbGVtZW50cy4gRWxlbWVudHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgY3JpdGVyaWEgYXJlIGhpZGRlblxuICAgICAgICBtdWx0aVNlYXJjaC5vbmtleXVwID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hPcHRpb25zKG11bHRpU2VhcmNoLnZhbHVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG11bHRpU2VhcmNoO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uV2l0aENoZWNrYm94KGVsOiBFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZSk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgaWRTdHIgPSAobmV3IERhdGUoKSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgaWQgPSAnaWQtJyArIGVsLnZhbHVlICsgaWRTdHIuc3Vic3RyaW5nKGlkU3RyLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcblxuICAgICAgICBjb25zdCBjaGVja2JveERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGlmIChlbC5jc3NDbGFzc2VzKSB7XG4gICAgICAgICAgICBlbC5jc3NDbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChjbCA9PiB7XG4gICAgICAgICAgICAgICAgY2hlY2tib3hEaXYuY2xhc3NMaXN0LmFkZChjbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoZWNrYm94SW5wdXQgPSB0aGlzLmNyZWF0ZUNoZWNrYm94SW5wdXQoaWQsIGVsLnZhbHVlKTtcbiAgICAgICAgaWYgKGVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBjaGVja2JveERpdi5jbGFzc0xpc3QuYWRkKCdlY2wtY2hlY2tib3gtLWRpc2FibGVkJyk7XG4gICAgICAgICAgICBjaGVja2JveElucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoZWNrYm94SW5wdXQub25jbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWNsQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFZhbHVlcyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbC5zZWxlY3RlZCB8fCAodGhpcy5zZWxlY3RlZFZhbHVlcy5pbmRleE9mKGVsLnZhbHVlKSA+IC0xKSkge1xuICAgICAgICAgICAgY2hlY2tib3hJbnB1dC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9PT0gJycgPyBlbC5sYWJlbCA6XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnZhbHVlICsgJywnICsgZWwubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQoY2hlY2tib3hJbnB1dCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tib3hMYWJlbCA9IHRoaXMuY3JlYXRlQ2hlY2tib3hMYWJlbChlbC5sYWJlbCwgaWQpO1xuICAgICAgICBjaGVja2JveERpdi5hcHBlbmRDaGlsZChjaGVja2JveExhYmVsKTtcblxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5wdXNoKGNoZWNrYm94RGl2KTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94RGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ2hlY2tib3hMYWJlbCh0ZXh0OiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBIVE1MTGFiZWxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hMYWJlbCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoRWNsQ2hlY2tib3hMYWJlbENvbXBvbmVudCk7XG4gICAgICAgIGNoZWNrYm94TGFiZWwubG9jYXRpb24ubmF0aXZlRWxlbWVudC5odG1sRm9yID0gaWQ7XG5cbiAgICAgICAgY29uc3QgdGV4dFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHRleHRTcGFuLmlubmVySFRNTCA9IHRleHQ7XG5cbiAgICAgICAgY2hlY2tib3hMYWJlbC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRleHRTcGFuKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94TGFiZWwubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoZWNrYm94SW5wdXQoaWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBjb25zdCBjaGVja2JveElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgY2hlY2tib3hJbnB1dC50eXBlID0gJ2NoZWNrYm94JztcbiAgICAgICAgY2hlY2tib3hJbnB1dC5jbGFzc0xpc3QuYWRkKCdlY2wtY2hlY2tib3hfX2lucHV0Jyk7XG4gICAgICAgIGNoZWNrYm94SW5wdXQuaWQgPSBpZDtcbiAgICAgICAgY2hlY2tib3hJbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gY2hlY2tib3hJbnB1dDtcbiAgICB9XG5cbiAgICAvLyBBZGQvcmVtb3ZlIHZhbHVlcyBmcm9tIHRoZSBzZWxlY3QgaW5wdXRcbiAgICBwcml2YXRlIHVwZGF0ZUN1cnJlbnRWYWx1ZSgpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudHNBcnJheSA9IFtdO1xuICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5ID0gW107XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gPEhUTUxJbnB1dEVsZW1lbnQ+ZWwuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5LnB1c2goKDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF0pLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzQXJyYXkucHVzaChlbC5jaGlsZE5vZGVzWzFdLnRleHRDb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZEVsZW1lbnRzVmFsdWVzQXJyYXk7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IHNlbGVjdGVkRWxlbWVudHNBcnJheS5qb2luKCcsJyk7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xuICAgIH1cblxuICAgIC8vIENoZWNrYm94IHRvIHNlbGVjdCBhbGwgdGhlIGVsZW1lbnRzXG4gICAgcHJpdmF0ZSBjcmVhdGVNdWx0aVNlbGVjdEFsbCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGlkU3RyID0gKG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNoZWNrYm94RGl2LmNsYXNzTGlzdC5hZGQoJ2VjbC1jaGVja2JveCcpO1xuICAgICAgICBjaGVja2JveERpdi5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19tdWx0aXBsZS1hbGwnKTtcblxuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0QWxsID0gdGhpcy5jcmVhdGVDaGVja2JveElucHV0KCdzZWxlY3QtbXVsdGlwbGUtYWxsJyArIGlkU3RyLnN1YnN0cmluZyhpZFN0ci5sYXN0SW5kZXhPZignLicpICsgMSksICdhbGwnKTtcbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdEFsbC5vbmNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbCgpO1xuICAgICAgICB9O1xuICAgICAgICBjaGVja2JveERpdi5hcHBlbmRDaGlsZCh0aGlzLmNoZWNrYm94U2VsZWN0QWxsKTtcblxuICAgICAgICB0aGlzLmNoZWNrYm94TGFiZWwgPSB0aGlzLmNyZWF0ZUNoZWNrYm94TGFiZWwoJ1NlbGVjdCBhbGwnLCAnc2VsZWN0LW11bHRpcGxlLWFsbCcgKyBpZFN0ci5zdWJzdHJpbmcoaWRTdHIubGFzdEluZGV4T2YoJy4nKSArIDEpKTtcbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveExhYmVsKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94RGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uc1dyYXBwZXIoKTogSFRNTEVsZW1lbnQge1xuXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtb3B0aW9ucycpO1xuICAgICAgICByZXR1cm4gZGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50c0FycmF5ID0gW107XG4gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnRzVmFsdWVzQXJyYXkgPSBbXTtcbiAgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUgZWxlbWVudHMsIHRoYXQgYXJlIG5vdCBkaXNhYmxlZFxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maWx0ZXIoZWxlbSA9PiBlbGVtLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveFNlbGVjdEFsbC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5LnB1c2goKDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF0pLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c0FycmF5LnB1c2goZWwuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSBzZWxlY3RlZEVsZW1lbnRzQXJyYXkuam9pbignLCcpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUljb25Db21wb25lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBlY2xJY29uQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChFY2xJY29uQ29tcG9uZW50KTtcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5zaXplID0gJ3MnO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmljb24gPSAnY29ybmVyLWFycm93JztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS50cmFuc2Zvcm0gPSAncm90YXRlLTE4MCc7XG4gICAgICAgIGVjbEljb25Db21wb25lbnQuaW5zdGFuY2UuY2xhc3MgPSAnZWNsLXNlbGVjdF9faWNvbi1zaGFwZSc7XG4gICAgICAgIHJldHVybiBlY2xJY29uQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJY29uQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SWNvbkNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBzZWxlY3RJY29uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2ljb24nKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdEljb25Db250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hPcHRpb25zKGtleXdvcmQ6IHN0cmluZyA9ICcnKSB7XG4gICAgICAgIGlmIChrZXl3b3JkID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChpdGVtLCBjbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXl3b3JkLnRvTG93ZXJDYXNlKCkpIDwgMCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbXBvbmVudCgpIHtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVUcmFuc2xhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlXG4gICAgICAgICAgICAuc3RyZWFtKCdlY2wubXVsdGlzZWxlY3QuU0VMRUNULUFMTCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKCh0cmFuc2xhdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5jaGVja2JveExhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hMYWJlbC50ZXh0Q29udGVudCA9IHRyYW5zbGF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
|