@huntsman-cancer-institute/input 17.9.3 → 17.9.4
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/esm2022/date/date-base.mjs +4 -4
- package/esm2022/date/date-date-range.component.mjs +4 -4
- package/esm2022/date/date-date.component.mjs +10 -10
- package/esm2022/date/date-validator.mjs +2 -2
- package/esm2022/date/date.module.mjs +5 -5
- package/esm2022/dropdown/dropdown-select-result.component.mjs +4 -4
- package/esm2022/dropdown/dropdown-select.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.module.mjs +5 -5
- package/esm2022/dropdown/dropdown.service.mjs +4 -4
- package/esm2022/dropdown/template-dropdown.directive.mjs +4 -4
- package/esm2022/inline/inline.component.mjs +4 -4
- package/esm2022/inline/inline.module.mjs +5 -5
- package/esm2022/search/search.component.mjs +4 -4
- package/esm2022/search/search.module.mjs +5 -5
- package/esm2022/select/custom-combobox.component.mjs +4 -4
- package/esm2022/select/custom-multi-combobox.component.mjs +4 -4
- package/esm2022/select/md-multi-select.component.mjs +4 -4
- package/esm2022/select/md-select.component.mjs +4 -4
- package/esm2022/select/native-select.component.mjs +6 -6
- package/esm2022/select/select.module.mjs +5 -5
- package/fesm2022/huntsman-cancer-institute-input.mjs +75 -75
- package/fesm2022/huntsman-cancer-institute-input.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,13 +4,13 @@ import { FormsModule } from "@angular/forms";
|
|
|
4
4
|
import { InlineComponent } from "./inline.component";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class InlineModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InlineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: InlineModule, declarations: [InlineComponent], imports: [CommonModule,
|
|
9
9
|
FormsModule], exports: [InlineComponent] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InlineModule, imports: [CommonModule,
|
|
11
11
|
FormsModule] }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InlineModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
imports: [
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
25
25
|
]
|
|
26
26
|
}]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9pbmxpbmUvaW5saW5lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQWNuRCxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBTnJCLGVBQWUsYUFKZixZQUFZO1lBQ1osV0FBVyxhQU1YLGVBQWU7Z0hBR04sWUFBWSxZQVZyQixZQUFZO1lBQ1osV0FBVzs7NEZBU0YsWUFBWTtrQkFaeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELFlBQVksRUFBRTt3QkFDWixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7SW5saW5lQ29tcG9uZW50fSBmcm9tIFwiLi9pbmxpbmUuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIElubGluZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSW5saW5lQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5saW5lTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -131,8 +131,8 @@ export class SearchComponent {
|
|
|
131
131
|
}
|
|
132
132
|
return filteredData;
|
|
133
133
|
}
|
|
134
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchComponent, selector: "hci-search", inputs: { isArray: "isArray", isIncludeChildren: "isIncludeChildren", anyComponent: "anyComponent", input: "input", data: "data" }, outputs: { dataFiltered: "dataFiltered" }, usesOnChanges: true, ngImport: i0, template: `
|
|
136
136
|
<div class="input-group ">
|
|
137
137
|
<input #searchBox type="text"
|
|
138
138
|
(keyup.enter)="doSearch(searchBox.value)"
|
|
@@ -147,7 +147,7 @@ export class SearchComponent {
|
|
|
147
147
|
</div>
|
|
148
148
|
`, isInline: true }); }
|
|
149
149
|
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchComponent, decorators: [{
|
|
151
151
|
type: Component,
|
|
152
152
|
args: [{
|
|
153
153
|
selector: "hci-search",
|
|
@@ -179,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
179
179
|
}], dataFiltered: [{
|
|
180
180
|
type: Output
|
|
181
181
|
}] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBRW5GLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7R0FFRztBQWtCSCxNQUFNLE9BQU8sZUFBZTtJQWMxQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVp4RCxlQUFVLEdBQVcsVUFBVSxDQUFDO1FBVXRCLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7SUFFYixDQUFDO0lBRTVELGVBQWU7UUFDYixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8s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QU0sR0FBWSxLQUFLLENBQUM7Z0JBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RFLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDakMsTUFBTSxHQUFHLElBQUksQ0FBQzt3QkFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzQixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDdkQsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs4R0EvSVUsZUFBZTtrR0FBZixlQUFlLHNQQWZoQjs7Ozs7Ozs7Ozs7OztHQWFUOzsyRkFFVSxlQUFlO2tCQWpCM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7aUJBQ0Y7c0ZBTVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgaXNEZXZNb2RlLCBPdXRwdXQsIFNpbXBsZUNoYW5nZSxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBJJ20ganVzdCBzY3Jld2luZyBhcm91bmQgd2l0aCBzb21lIGlkZWFzIGhlcmUsIGJld2FyZSBvZiBhY3R1YWxseSB1c2luZyBhbnkgb2YgdGhpcyBjb2RlLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLXNlYXJjaFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgXCI+XHJcbiAgICAgIDxpbnB1dCAjc2VhcmNoQm94IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJkb1NlYXJjaChzZWFyY2hCb3gudmFsdWUpXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvci4uLlwiXHJcbiAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGZvciB0ZXh0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZG9TZWFyY2goc2VhcmNoQm94LnZhbHVlKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaENvbXBvbmVudCB7XHJcblxyXG4gIENISUxEX05PREU6IHN0cmluZyA9IFwiY2hpbGRyZW5cIjtcclxuXHJcbiAgc2VhcmNoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNBcnJheTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0luY2x1ZGVDaGlsZHJlbjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgYW55Q29tcG9uZW50OiBhbnk7XHJcbiAgQElucHV0KCkgaW5wdXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcclxuXHJcbiAgQE91dHB1dCgpIGRhdGFGaWx0ZXJlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIlNlYXJjaENvbXBvbmVudC5uZ0FmdGVyVmlld0luaXRcIik7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuYW55Q29tcG9uZW50ICYmIHRoaXMuZGF0YSAmJiB0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgbGV0IGNoYW5nZXMgPSB7fTtcclxuICAgICAgICBjaGFuZ2VzW3RoaXMuaW5wdXRdID0gbmV3IFNpbXBsZUNoYW5nZShbXSwgdGhpcy5kYXRhLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5hbnlDb21wb25lbnQubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJTZWFyY2hDb21wb25lbnQubmdPbkNoYW5nZXNcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhICYmIHRoaXMuaXNBcnJheSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRhKSB7XHJcbiAgICAgICAgaWYgKGl0ZW1bdGhpcy5DSElMRF9OT0RFXSkge1xyXG4gICAgICAgICAgdGhpcy5pc0FycmF5ID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIHRyZWUgb3IgYSBncmlkPyAgV2hvIGtub3dzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudFxyXG4gICAqL1xyXG4gIGRvU2VhcmNoKHNlYXJjaEJveDogc3RyaW5nKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImRvU2VhcmNoXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoID0gc2VhcmNoQm94O1xyXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5pc0FycmF5KSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJhcnJheSBvcHRpb25cIik7XHJcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZmlsdGVyQXJyYXkodGhpcy5kYXRhKTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmlzSW5jbHVkZUNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJjaGlsZCBvcHRpb25cIik7XHJcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJub3QgY2hpbGQgb3B0aW9uXCIpO1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSB0aGlzLmZpbHRlclRyZWUoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBpcyB3aGF0IHRyaWdnZXJzIHRoZSBAT3V0cHV0XHJcbiAgICB0aGlzLmRhdGFGaWx0ZXJlZC5lbWl0KGZpbHRlcmVkRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuYW55Q29tcG9uZW50KSB7XHJcbiAgICAgIGxldCBjaGFuZ2VzID0ge307XHJcbiAgICAgIGNoYW5nZXNbdGhpcy5pbnB1dF0gPSBuZXcgU2ltcGxlQ2hhbmdlKHRoaXMuYW55Q29tcG9uZW50W3RoaXMuaW5wdXRdLCBmaWx0ZXJlZERhdGEsIGZhbHNlKTtcclxuICAgICAgdGhpcy5hbnlDb21wb25lbnQubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJBcnJheShkYXRhOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiZmlsdGVyQXJyYXlcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YS5maWx0ZXIoKG86IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gKG9bXCJuYW1lXCJdLmluZGV4T2YodGhpcy5zZWFyY2gpID49IDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmUgdHJlZSBzZWFyY2guICBJdCB3aWxsIGluY2x1ZGUgcGFyZW50IG5vZGVzIGlmIGEgbGVhZiBub2RlIG1hdGNoZXMgdGhlIHNlYXJjaCBzdHJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2FueVtdfSBkYXRhXHJcbiAgICogQHJldHVybnMge2FueVtdfVxyXG4gICAqL1xyXG4gIGZpbHRlclRyZWUoZGF0YTogYW55W10pOiBhbnlbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImZpbHRlclRyZWVPcmlnaW9uYWxcIik7XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICBsZXQgcHVzaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGlmIChjaGlsZFtcImNoaWxkcmVuXCJdKSB7XHJcbiAgICAgICAgY2hpbGRbXCJjaGlsZHJlblwiXSA9IHRoaXMuZmlsdGVyVHJlZShjaGlsZFtcImNoaWxkcmVuXCJdKTtcclxuICAgICAgICBpZiAoY2hpbGRbXCJjaGlsZHJlblwiXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBwdXNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgZmlsdGVyZWREYXRhLnB1c2goY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIXB1c2hlZCAmJiBjaGlsZFtcIm5hbWVcIl0uaW5kZXhPZih0aGlzLnNlYXJjaCkgPj0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGNoaWxkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY3Vyc2l2ZSB0cmVlIHNlYXJjaC4gIEl0IHdpbGwgaW5jbHVkZSBjaGlsZHJlbiBub2RlcyBpZiBhIHBhcmVudCBub2RlIG1hdGNoZXMgdGhlIHNlYXJjaCBzdHJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2FueVtdfSBkYXRhXHJcbiAgICogQHJldHVybnMge2FueVtdfVxyXG4gICAqL1xyXG4gIGZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW4oZGF0YTogYW55W10pOiBhbnlbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW5cIik7XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICBpZiAoY2hpbGRbXCJuYW1lXCJdLmluZGV4T2YodGhpcy5zZWFyY2gpID49IDApIHtcclxuICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChjaGlsZCk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBsZXQgcHVzaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNoaWxkW1wiY2hpbGRyZW5cIl0pIHtcclxuICAgICAgICAgIGNoaWxkW1wiY2hpbGRyZW5cIl0gPSB0aGlzLmZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW4oY2hpbGRbXCJjaGlsZHJlblwiXSk7XHJcbiAgICAgICAgICBpZiAoY2hpbGRbXCJjaGlsZHJlblwiXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHB1c2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFwdXNoZWQgJiYgY2hpbGRbXCJuYW1lXCJdLmluZGV4T2YodGhpcy5zZWFyY2gpID49IDApIHtcclxuICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBRW5GLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7R0FFRztBQWtCSCxNQUFNLE9BQU8sZUFBZTtJQWMxQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVp4RCxlQUFVLEdBQVcsVUFBVSxDQUFDO1FBVXRCLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7SUFFYixDQUFDO0lBRTVELGVBQWU7UUFDYixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8s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QU0sR0FBWSxLQUFLLENBQUM7Z0JBQzVCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RFLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDakMsTUFBTSxHQUFHLElBQUksQ0FBQzt3QkFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzQixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDdkQsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzsrR0EvSVUsZUFBZTttR0FBZixlQUFlLHNQQWZoQjs7Ozs7Ozs7Ozs7OztHQWFUOzs0RkFFVSxlQUFlO2tCQWpCM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7aUJBQ0Y7c0ZBTVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgaXNEZXZNb2RlLCBPdXRwdXQsIFNpbXBsZUNoYW5nZSxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBJJ20ganVzdCBzY3Jld2luZyBhcm91bmQgd2l0aCBzb21lIGlkZWFzIGhlcmUsIGJld2FyZSBvZiBhY3R1YWxseSB1c2luZyBhbnkgb2YgdGhpcyBjb2RlLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLXNlYXJjaFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgXCI+XHJcbiAgICAgIDxpbnB1dCAjc2VhcmNoQm94IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJkb1NlYXJjaChzZWFyY2hCb3gudmFsdWUpXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvci4uLlwiXHJcbiAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGZvciB0ZXh0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZG9TZWFyY2goc2VhcmNoQm94LnZhbHVlKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaENvbXBvbmVudCB7XHJcblxyXG4gIENISUxEX05PREU6IHN0cmluZyA9IFwiY2hpbGRyZW5cIjtcclxuXHJcbiAgc2VhcmNoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNBcnJheTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0luY2x1ZGVDaGlsZHJlbjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgYW55Q29tcG9uZW50OiBhbnk7XHJcbiAgQElucHV0KCkgaW5wdXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcclxuXHJcbiAgQE91dHB1dCgpIGRhdGFGaWx0ZXJlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIlNlYXJjaENvbXBvbmVudC5uZ0FmdGVyVmlld0luaXRcIik7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuYW55Q29tcG9uZW50ICYmIHRoaXMuZGF0YSAmJiB0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgbGV0IGNoYW5nZXMgPSB7fTtcclxuICAgICAgICBjaGFuZ2VzW3RoaXMuaW5wdXRdID0gbmV3IFNpbXBsZUNoYW5nZShbXSwgdGhpcy5kYXRhLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5hbnlDb21wb25lbnQubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJTZWFyY2hDb21wb25lbnQubmdPbkNoYW5nZXNcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhICYmIHRoaXMuaXNBcnJheSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRhKSB7XHJcbiAgICAgICAgaWYgKGl0ZW1bdGhpcy5DSElMRF9OT0RFXSkge1xyXG4gICAgICAgICAgdGhpcy5pc0FycmF5ID0gZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIHRyZWUgb3IgYSBncmlkPyAgV2hvIGtub3dzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudFxyXG4gICAqL1xyXG4gIGRvU2VhcmNoKHNlYXJjaEJveDogc3RyaW5nKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImRvU2VhcmNoXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoID0gc2VhcmNoQm94O1xyXG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5pc0FycmF5KSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJhcnJheSBvcHRpb25cIik7XHJcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZmlsdGVyQXJyYXkodGhpcy5kYXRhKTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmlzSW5jbHVkZUNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJjaGlsZCBvcHRpb25cIik7XHJcbiAgICAgIGZpbHRlcmVkRGF0YSA9IHRoaXMuZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJub3QgY2hpbGQgb3B0aW9uXCIpO1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSB0aGlzLmZpbHRlclRyZWUoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBpcyB3aGF0IHRyaWdnZXJzIHRoZSBAT3V0cHV0XHJcbiAgICB0aGlzLmRhdGFGaWx0ZXJlZC5lbWl0KGZpbHRlcmVkRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuYW55Q29tcG9uZW50KSB7XHJcbiAgICAgIGxldCBjaGFuZ2VzID0ge307XHJcbiAgICAgIGNoYW5nZXNbdGhpcy5pbnB1dF0gPSBuZXcgU2ltcGxlQ2hhbmdlKHRoaXMuYW55Q29tcG9uZW50W3RoaXMuaW5wdXRdLCBmaWx0ZXJlZERhdGEsIGZhbHNlKTtcclxuICAgICAgdGhpcy5hbnlDb21wb25lbnQubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJBcnJheShkYXRhOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiZmlsdGVyQXJyYXlcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YS5maWx0ZXIoKG86IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gKG9bXCJuYW1lXCJdLmluZGV4T2YodGhpcy5zZWFyY2gpID49IDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmUgdHJlZSBzZWFyY2guICBJdCB3aWxsIGluY2x1ZGUgcGFyZW50IG5vZGVzIGlmIGEgbGVhZiBub2RlIG1hdGNoZXMgdGhlIHNlYXJjaCBzdHJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2FueVtdfSBkYXRhXHJcbiAgICogQHJldHVybnMge2FueVtdfVxyXG4gICAqL1xyXG4gIGZpbHRlclRyZWUoZGF0YTogYW55W10pOiBhbnlbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImZpbHRlclRyZWVPcmlnaW9uYWxcIik7XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICBsZXQgcHVzaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGlmIChjaGlsZFtcImNoaWxkcmVuXCJdKSB7XHJcbiAgICAgICAgY2hpbGRbXCJjaGlsZHJlblwiXSA9IHRoaXMuZmlsdGVyVHJlZShjaGlsZFtcImNoaWxkcmVuXCJdKTtcclxuICAgICAgICBpZiAoY2hpbGRbXCJjaGlsZHJlblwiXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBwdXNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgZmlsdGVyZWREYXRhLnB1c2goY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIXB1c2hlZCAmJiBjaGlsZFtcIm5hbWVcIl0uaW5kZXhPZih0aGlzLnNlYXJjaCkgPj0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGNoaWxkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY3Vyc2l2ZSB0cmVlIHNlYXJjaC4gIEl0IHdpbGwgaW5jbHVkZSBjaGlsZHJlbiBub2RlcyBpZiBhIHBhcmVudCBub2RlIG1hdGNoZXMgdGhlIHNlYXJjaCBzdHJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2FueVtdfSBkYXRhXHJcbiAgICogQHJldHVybnMge2FueVtdfVxyXG4gICAqL1xyXG4gIGZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW4oZGF0YTogYW55W10pOiBhbnlbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW5cIik7XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICBpZiAoY2hpbGRbXCJuYW1lXCJdLmluZGV4T2YodGhpcy5zZWFyY2gpID49IDApIHtcclxuICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChjaGlsZCk7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBsZXQgcHVzaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNoaWxkW1wiY2hpbGRyZW5cIl0pIHtcclxuICAgICAgICAgIGNoaWxkW1wiY2hpbGRyZW5cIl0gPSB0aGlzLmZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW4oY2hpbGRbXCJjaGlsZHJlblwiXSk7XHJcbiAgICAgICAgICBpZiAoY2hpbGRbXCJjaGlsZHJlblwiXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHB1c2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFwdXNoZWQgJiYgY2hpbGRbXCJuYW1lXCJdLmluZGV4T2YodGhpcy5zZWFyY2gpID49IDApIHtcclxuICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -5,15 +5,15 @@ import { NgbModule } from "@ng-bootstrap/ng-bootstrap";
|
|
|
5
5
|
import { SearchComponent } from "./search.component";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class SearchModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: SearchModule, declarations: [SearchComponent], imports: [CommonModule,
|
|
10
10
|
FormsModule,
|
|
11
11
|
NgbModule], exports: [SearchComponent] }); }
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchModule, imports: [CommonModule,
|
|
13
13
|
FormsModule,
|
|
14
14
|
NgbModule] }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchModule, decorators: [{
|
|
17
17
|
type: NgModule,
|
|
18
18
|
args: [{
|
|
19
19
|
imports: [
|
|
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
29
29
|
]
|
|
30
30
|
}]
|
|
31
31
|
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWFyY2gvc2VhcmNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXJELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFnQm5ELE1BQU0sT0FBTyxZQUFZOytHQUFaLFlBQVk7Z0hBQVosWUFBWSxpQkFOckIsZUFBZSxhQUxmLFlBQVk7WUFDWixXQUFXO1lBQ1gsU0FBUyxhQU1ULGVBQWU7Z0hBR04sWUFBWSxZQVhyQixZQUFZO1lBQ1osV0FBVztZQUNYLFNBQVM7OzRGQVNBLFlBQVk7a0JBYnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxTQUFTO3FCQUNWO29CQUNELFlBQVksRUFBRTt3QkFDWixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7TmdiTW9kdWxlfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuXHJcbmltcG9ydCB7U2VhcmNoQ29tcG9uZW50fSBmcm9tIFwiLi9zZWFyY2guY29tcG9uZW50XCI7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZWFyY2hDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNlYXJjaENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -450,8 +450,8 @@ export class CustomComboBoxComponent {
|
|
|
450
450
|
ngOnDestroy() {
|
|
451
451
|
this.subs.unsubscribe();
|
|
452
452
|
}
|
|
453
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
454
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
453
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomComboBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
454
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomComboBoxComponent, selector: "hci-combobox", inputs: { maxOptionsToShow: "maxOptionsToShow", customViewportClass: "customViewportClass", customFieldClasses: "customFieldClasses", customOptionClasses: "customOptionClasses", label: "label", placeholder: "placeholder", temporaryPlaceholder: "temporaryPlaceholder", tooltip: "tooltip", allowNone: "allowNone", selectTextOnOpen: "selectTextOnOpen", cdkFocusInitial: "cdkFocusInitial", tabindex: "tabindex", options: "options", allowLoader: "allowLoader", valueField: "valueField", forceEmitObject: "forceEmitObject", displayField: "displayField", appearance: "appearance", floatLabel: "floatLabel", defineErrors: "defineErrors" }, outputs: { optionSelected: "optionSelected", optionChanged: "optionChanged", optionsLoaded: "optionsLoaded" }, host: { properties: { "attr.cdkFocusInitial": "this._cdkFocusInitial", "attr.tabindex": "this._tabindex" }, classAttribute: "hci-combobox-container" }, providers: [{
|
|
455
455
|
provide: NG_VALUE_ACCESSOR,
|
|
456
456
|
useExisting: forwardRef(() => CustomComboBoxComponent),
|
|
457
457
|
multi: true,
|
|
@@ -531,7 +531,7 @@ export class CustomComboBoxComponent {
|
|
|
531
531
|
</mat-form-field>
|
|
532
532
|
`, isInline: true, styles: [".hci-combobox-container{display:inline-block}.hci-combobox-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;margin:0 4px;color:var(--black-darkest)}.hci-combobox-arrow-wrapper{display:table-cell;vertical-align:middle}.hci-combobox-viewport mat-option{display:flex;align-items:center;padding:0 .2rem}.hci-combobox-viewport mat-option .mat-option-text{white-space:nowrap}.hci-combobox-viewport .hci-combobox-selected{background-color:#ddd}.hci-combobox-viewport .mat-active{background-color:#f3f3f3}.hci-combobox-viewport{overflow-anchor:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i6.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i6.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i7.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i8.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
533
533
|
}
|
|
534
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomComboBoxComponent, decorators: [{
|
|
535
535
|
type: Component,
|
|
536
536
|
args: [{ selector: "hci-combobox", template: `
|
|
537
537
|
<mat-form-field (click)="onClick($event)"
|
|
@@ -676,4 +676,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
676
676
|
type: ViewChild,
|
|
677
677
|
args: ["input", { read: MatAutocompleteTrigger, static: false }]
|
|
678
678
|
}] } });
|
|
679
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWxlY3QvY3VzdG9tLWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdDLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsNEJBQTRCLElBQUksc0JBQXNCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7QUF5STdHLE1BQU0sT0FBTyx1QkFBdUI7SUFVbEMsSUFDVyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBb0ZELFlBQW9CLEdBQXNCLEVBQ3RCLFFBQWtCO1FBRGxCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUE5Ry9CLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUc5QixxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFHOUIsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBd0J4QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6QyxvREFBb0Q7UUFDcEMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRXRDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFeEMsMkRBQTJEO1FBQ3RCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QyxvQkFBZSxHQUFXLFNBQVMsQ0FBQztRQUVwRCxvREFBb0Q7UUFDdEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBRTlCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXRCLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFDM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFL0IsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUdoQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVsQyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBR3hDLGtDQUFrQztRQUUzQixpQkFBWSxHQUFRLEVBQUMsUUFBUSxFQUFFLDBCQUEwQixFQUFDLENBQUM7UUFFMUQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBQ2pDLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUVuQyxpQkFBWSxHQUFvQixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDekQsaUJBQVksR0FBdUIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFDM0MsU0FBSSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBS3JDLHlCQUFvQixHQUFjO1lBQ2hDLEtBQUssRUFBRSxDQUFDO1lBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDO1NBQy9CLENBQUM7UUFJSyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUU5QixtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVELGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0Qsa0JBQWEsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQVdqRSxlQUFVLEdBQXVCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUVwQyxjQUFTLEdBQXNDLENBQUMsR0FBUyxFQUFFLEVBQUU7WUFDbEUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM5RSxDQUFDLENBQUE7SUFHeUMsQ0FBQztJQUUzQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxTQUFTLEdBQWMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQzdGLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQXNCLEVBQUUsRUFBRTtZQUVuRSxzRkFBc0Y7WUFDdEYsMEVBQTBFO1lBQzFFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxhQUFhLENBQUM7WUFFekMsb0RBQW9EO1lBQ3BELElBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUU1RyxJQUFJLENBQUMsb0JBQW9CLEdBQUc7Z0JBQzFCLEtBQUssRUFBRSxhQUFhO2dCQUNwQixHQUFHLEVBQUUsYUFBYSxHQUFHLEdBQUc7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLElBQUksYUFBYSxHQUFpQixPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6RSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUMsQ0FBQztvQkFDbEMsd0hBQXdIO29CQUN4SCx5RkFBeUY7b0JBQ3pGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksV0FBVyxHQUFpQixhQUFhLENBQUMsWUFBWSxDQUFDO1lBQzNELElBQUksV0FBVyxJQUFJLFFBQVEsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRTFCLG9FQUFvRTtnQkFDcEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLHFGQUFxRjtZQUNyRixzRUFBc0U7WUFDdEUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFRO1FBQ2pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFFBQWE7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFFBQVEsR0FBUSxJQUFJLENBQUM7UUFDekIsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLGlCQUFpQixHQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQzFELElBQUksUUFBUSxHQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDakUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3pCLElBQUksVUFBVSxHQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNqRyxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQzt3QkFDNUIsT0FBTyxJQUFJLENBQUM7b0JBQ2QsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQztRQUVELDZFQUE2RTtRQUM3RSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25FLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQy9HLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQW1CLEtBQUs7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxXQUFXLEdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDaEQsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RELENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzdCLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekUsQ0FBQztZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxVQUFVLEdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDMUYsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBRW5CLElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxrQkFBa0I7UUFDOUQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixrREFBa0Q7WUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFFMUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRCx5RkFBeUY7UUFDekYsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFVBQVU7UUFDZixrRkFBa0Y7UUFDbEYsbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFpQjtRQUM5QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFvQjtRQUMvQixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsQ0FBQztZQUVELHFGQUFxRjtZQUNyRixrRkFBa0Y7WUFDbEYsd0JBQXdCO1lBQ3hCLEVBQUU7WUFDRixxREFBcUQ7WUFDckQsRUFBRTtZQUNGLG9GQUFvRjtZQUNwRixjQUFjO1lBQ2QsRUFBRTtZQUNGLGNBQWM7WUFDZCx3R0FBd0c7WUFDeEcsbUdBQW1HO1lBQ25HLCtHQUErRztZQUMvRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQ3pELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFFeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsNEZBQTRGO0lBQzVGLDRFQUE0RTtJQUM1RSxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUVoRCwwRkFBMEY7WUFDMUYsMkRBQTJEO1lBQzNELElBQUksUUFBUSxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1lBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVc7UUFDekIsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzFDLENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQWEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsOEJBQThCO0lBQzlCLHFCQUFxQjtRQUNuQixJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFaEQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUMsQ0FBQztRQUVMLENBQUM7YUFBTSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksV0FBVyxHQUFXLENBQUMsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFFaEUsbUVBQW1FO1lBQ25FLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpJLHVGQUF1RjtZQUN2RixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSzttQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFDOUUsQ0FBQztnQkFDRCxXQUFXLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLGtCQUFrQjtZQUNsQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVO1FBQ2Ysb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVE7UUFDMUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxzQkFBc0I7UUFDM0Isb0VBQW9FO1FBQ3BFLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtZQUNqRyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsK0JBQStCO1lBQy9FLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUSxFQUFFLGNBQXVCLEtBQUs7UUFDOUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQzNGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBYTtRQUN2QixtREFBbUQ7UUFDbkQsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQ2xELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBemhCVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixzNkJBdER2QixDQUFDO2dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyw4VEFzSnlCLHNCQUFzQixrREFyT3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFVDs7MkZBdURVLHVCQUF1QjtrQkFuSW5DLFNBQVM7K0JBQ0UsY0FBYyxZQUNkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFVCxhQUNVLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsUUFDSTt3QkFDSixLQUFLLEVBQUUsd0JBQXdCO3FCQUNoQyxpQkE0Q2MsaUJBQWlCLENBQUMsSUFBSTs2R0FROUIsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFJSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBVUssbUJBQW1CO3NCQUQ3QixLQUFLO2dCQVlVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFHVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBRVUsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUVVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFHK0IsZ0JBQWdCO3NCQUFwRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFDbkIsZUFBZTtzQkFBOUIsS0FBSztnQkFHd0IsU0FBUztzQkFBdEMsV0FBVzt1QkFBQyxlQUFlO2dCQUNaLFFBQVE7c0JBQXZCLEtBQUs7Z0JBSVUsT0FBTztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1csZUFBZTtzQkFBL0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQXlCSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFHUCxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJckMsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSWxDLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2UsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ1wiO1xyXG5pbXBvcnQge01hdExlZ2FjeUF1dG9jb21wbGV0ZVRyaWdnZXIgYXMgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1hdXRvY29tcGxldGVcIjtcclxuaW1wb3J0IHtMaXN0UmFuZ2V9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcclxuaW1wb3J0IHtMaXN0S2V5TWFuYWdlciwgSGlnaGxpZ2h0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQge01hdExlZ2FjeU9wdGlvbiBhcyBNYXRPcHRpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktY29yZVwiO1xyXG5pbXBvcnQge0xlZ2FjeUZsb2F0TGFiZWxUeXBlIGFzIEZsb2F0TGFiZWxUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWZvcm0tZmllbGRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1jb21ib2JveFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cImVuZENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRoaXMudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY3VzdG9tRmllbGRDbGFzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbCAhPT0gdW5kZWZpbmVkXCI+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsID09PSB1bmRlZmluZWRcIj5cclxuICAgICAgICB7eyB0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChpbm5lckNvbnRyb2wudmFsdWUgPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyIH19XHJcbiAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgI2lucHV0XHJcbiAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgbmFtZT1cImN1c3RvbUNvbWJvQm94RmlsdGVyXCJcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChpbm5lckNvbnRyb2wudmFsdWUgPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlubmVyQ29udHJvbFwiXHJcbiAgICAgICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiY2RrRm9jdXNJbml0aWFsID09PSB1bmRlZmluZWQgPyBudWxsIDogY2RrRm9jdXNJbml0aWFsXCJcclxuICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXHJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxyXG4gICAgICAgICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiIGF0dHIuYXJpYS1sYWJlbD1cImhjaS1uZy1jdXN0b20tY29tYm9ib3gte3tsYWJlbH19XCJcclxuICAgICAgICAgICAgID5cclxuICAgICAgPGRpdiBtYXRTdWZmaXhcclxuICAgICAgICAgICBjbGFzcz1cImhjaS1jb21ib2JveC1hcnJvdy13cmFwcGVyXCJcclxuICAgICAgICAgICAoY2xpY2spID0gXCJ0b2dnbGVPcGVuKCRldmVudClcIlxyXG4gICAgICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRDbGljaygpXCJcclxuICAgICAgICAgICAobW91c2V1cCk9XCJlbmRDbGljaygpXCJcclxuICAgICAgICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhjaS1jb21ib2JveC1hcnJvd1wiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG1hdC1zcGlubmVyIG1hdFN1ZmZpeCAqbmdJZj1cInNob3dMb2FkZXIoKVwiIFtkaWFtZXRlcl09XCIzMFwiIHN0eWxlPVwiZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tbGVmdDogOHB4XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvQWN0aXZlRmlyc3RPcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInRoaXMuc2VsZWN0T3B0aW9uKCRldmVudC5vcHRpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJ0aGlzLm9uT3BlbmVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VkKT1cInRoaXMub25DbG9zZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJ0aGlzLmRpc3BsYXlGblwiPlxyXG4gICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgI3ZpZXdwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc09wZW4gPyBudWxsIDogJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGNpLWNvbWJvYm94LXZpZXdwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT0gXCJjdXN0b21WaWV3cG9ydENsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtU2l6ZV09XCJvcHRpb25TaXplUHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJudW1PcHRpb25zVG9TaG93ICogb3B0aW9uU2l6ZVB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5CdWZmZXJQeF09XCJudW1PcHRpb25zVG9TaG93ICogb3B0aW9uU2l6ZVB4ICogMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4QnVmZmVyUHhdPVwibnVtT3B0aW9uc1RvU2hvdyAqIG9wdGlvblNpemVQeCAqIDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNldXApPVwiZW5kQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImFsbG93Tm9uZSAmJiBpc09wZW4gJiYgKHRoaXMuZm9yY2VTaG93Tm9uZSB8fCAhdGhpcy5pbm5lckNvbnRyb2wudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImN1c3RvbU9wdGlvbkNsYXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJvcHRpb25TaXplUHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICBOb25lXHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqY2RrVmlydHVhbEZvcj1cImxldCBvcHQgb2YgdGhpcy5sb2FkZWRPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY3VzdG9tT3B0aW9uQ2xhc3Nlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGNpLWNvbWJvYm94LXNlbGVjdGVkXT1cIih2YWx1ZUZpZWxkID8gb3B0W3ZhbHVlRmllbGRdIDogb3B0KSA9PT0gb3V0ZXJDb250cm9sLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtc2VsZWN0ZWRdPVwiKHZhbHVlRmllbGQgPyBvcHRbdmFsdWVGaWVsZF0gOiBvcHQpID09PSBvdXRlckNvbnRyb2wudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJvcHRpb25TaXplUHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBkaXNwbGF5RmllbGQgPyBvcHRbZGlzcGxheUZpZWxkXSA6IG9wdCB9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAge3sgZ2V0RXJyb3IoKSB9fVxyXG4gICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tQ29tYm9Cb3hDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfV0sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6IFwiaGNpLWNvbWJvYm94LWNvbnRhaW5lclwiXHJcbiAgfSxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAuaGNpLWNvbWJvYm94LWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuaGNpLWNvbWJvYm94LWFycm93IHtcclxuICAgICAgd2lkdGg6IDA7XHJcbiAgICAgIGhlaWdodDogMDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZDtcclxuICAgICAgbWFyZ2luOiAwIDRweDtcclxuICAgICAgY29sb3I6IHZhcigtLWJsYWNrLWRhcmtlc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oY2ktY29tYm9ib3gtYXJyb3ctd3JhcHBlciB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLmhjaS1jb21ib2JveC12aWV3cG9ydCBtYXQtb3B0aW9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogMCAuMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuaGNpLWNvbWJvYm94LXZpZXdwb3J0IG1hdC1vcHRpb24gLm1hdC1vcHRpb24tdGV4dCB7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLmhjaS1jb21ib2JveC12aWV3cG9ydCAuaGNpLWNvbWJvYm94LXNlbGVjdGVkIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDtcclxuICAgIH1cclxuXHJcbiAgICAuaGNpLWNvbWJvYm94LXZpZXdwb3J0IC5tYXQtYWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcclxuICAgIH1cclxuXHJcbiAgICAvKiBmaXggaml0dGVyeSBzY3JvbGwgYnVnIGluIGNocm9tZSAqL1xyXG4gICAgLmhjaS1jb21ib2JveC12aWV3cG9ydCB7XHJcbiAgICAgIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcclxuICAgIH1cclxuICBgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29tYm9Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHB1YmxpYyBvcHRpb25TaXplUHg6IG51bWJlciA9IDI1O1xyXG4gIHB1YmxpYyBudW1PcHRpb25zVG9TaG93OiBudW1iZXIgPSAxMDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWF4T3B0aW9uc1RvU2hvdzogbnVtYmVyID0gMTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbVZpZXdwb3J0Q2xhc3M6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjdXN0b21GaWVsZENsYXNzZXModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY3VzdG9tRmllbGRDbGFzc2VzID0gdmFsdWUgPyB2YWx1ZSA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1c3RvbUZpZWxkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fY3VzdG9tRmllbGRDbGFzc2VzID8gdGhpcy5fY3VzdG9tRmllbGRDbGFzc2VzIDogXCJtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRcIjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjdXN0b21PcHRpb25DbGFzc2VzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2N1c3RvbU9wdGlvbkNsYXNzZXMgPSB2YWx1ZSA/IHZhbHVlIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VzdG9tT3B0aW9uQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fY3VzdG9tT3B0aW9uQ2xhc3NlcyA/IHRoaXMuX2N1c3RvbU9wdGlvbkNsYXNzZXMgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgYSBsYWJlbCBpcyBub3Qgc3BlY2lmaWVkIHRoZSBwbGFjZWhvbGRlciBpcyBwcm9tb3RlZCB0byBhIGxhYmVsLlxyXG4gIC8vIFRvIGNyZWF0ZSBhIGZvcm0gZmllbGQgd2l0aCBvbmx5IGEgcGxhY2Vob2xkZXIsIHNwZWNpZnkgYW4gZW1wdHlcclxuICAvLyBsYWJlbCB0byBwcmV2ZW50IHRoZSBwbGFjZWhvbGRlciBmcm9tIGJlaW5nIHByb21vdGVkLlxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gUmVtb3ZlcyB0aGUgcGxhY2Vob2xkZXIgYWZ0ZXIgYSBzZWxlY3Rpb24gaXMgbWFkZVxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0ZW1wb3JhcnlQbGFjZWhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dOb25lOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdFRleHRPbk9wZW4gPSB0cnVlO1xyXG5cclxuICAvLyB0ZWxsIG1hdC1kaWFsb2cgdG8gcGFzcyBpbml0aWFsIGZvY3VzIHRvIHRoZSBpbm5lciBpbnB1dFxyXG4gIEBIb3N0QmluZGluZyhcImF0dHIuY2RrRm9jdXNJbml0aWFsXCIpIF9jZGtGb2N1c0luaXRpYWwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjZGtGb2N1c0luaXRpYWw6IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gb24gdGFiLCBza2lwIHRoZSBob3N0IGVsZW1lbnQgYW5kIGZvY3VzIHRoZSBpbnB1dFxyXG4gIEBIb3N0QmluZGluZyhcImF0dHIudGFiaW5kZXhcIikgX3RhYmluZGV4ID0gbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgdGFiaW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBmb3JjZVNob3dOb25lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGFsbG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbG9hZGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwcml2YXRlIGZvcmNlRW1pdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgYXBwZWFyYW5jZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGU7XHJcblxyXG4gIC8vIFNldCB0byBlbXB0eSB0byBub3Qgc2hvdyBlcnJvcnNcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkZWZpbmVFcnJvcnM6IGFueSA9IHtyZXF1aXJlZDogXCJUaGlzIGlzIGEgcmVxdWlyZWQgZmllbGRcIn07XHJcblxyXG4gIHByaXZhdGUgX3Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICBwcml2YXRlIF9jdXN0b21GaWVsZENsYXNzZXM6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHJpdmF0ZSBfY3VzdG9tT3B0aW9uQ2xhc3Nlczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIG91dGVyQ29udHJvbDogQWJzdHJhY3RDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyBpbm5lckNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgcHJpdmF0ZSBpZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBub05nQ29udHJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEluZGV4OiBudW1iZXI7XHJcblxyXG4gIGtleU1hbmFnZXI6IExpc3RLZXlNYW5hZ2VyPEhpZ2hsaWdodGFibGU+O1xyXG4gIHZpZXdwb3J0UmVuZGVyUmFuZ2U6IExpc3RSYW5nZTtcclxuICB2aWV3cG9ydFZpc2libGVSYW5nZTogTGlzdFJhbmdlID0ge1xyXG4gICAgc3RhcnQ6IDAsXHJcbiAgICBlbmQ6IHRoaXMubnVtT3B0aW9uc1RvU2hvdyAtIDFcclxuICB9O1xyXG5cclxuICBhY3RpdmVWYWx1ZTogYW55O1xyXG5cclxuICBwdWJsaWMgY2xpY2tJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb3B0aW9uc0xvYWRlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ2aWV3cG9ydFwiLCB7c3RhdGljOiB0cnVlfSlcclxuICB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG5cclxuICBAVmlld0NoaWxkKFwiaW5wdXRcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKFwiaW5wdXRcIiwge3JlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogZmFsc2V9KVxyXG4gIGF1dG9Db21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2VGbjogKHZhbDogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICBwdWJsaWMgZGlzcGxheUZuOiAob3B0PzogYW55KSA9PiBzdHJpbmcgfCB1bmRlZmluZWQgPSAob3B0PzogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gb3B0ID8gKHRoaXMuZGlzcGxheUZpZWxkID8gb3B0W3RoaXMuZGlzcGxheUZpZWxkXSA6IG9wdCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nob3dMb2FkZXIgPSB0aGlzLmFsbG93TG9hZGVyICYmICghIHRoaXMub3B0aW9ucyB8fCB0aGlzLm9wdGlvbnMubGVuZ3RoID09PSAwKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sICYmIG5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMub3V0ZXJDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2w7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5vdXRlckNvbnRyb2wudmFsaWRhdG9yKTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMub3V0ZXJDb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vTmdDb250cm9sID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnMuYWRkKHRoaXMuaW5uZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKF92YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiAhdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICAvLyB3b3JrIGFyb3VuZCBmb3IgdmFsaWRhdG9ycyBub3QgYWx3YXlzIHByb3BhZ2F0aW5nXHJcbiAgICB0aGlzLnN1YnMuYWRkKHRoaXMub3V0ZXJDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChfZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMub3V0ZXJDb250cm9sLnZhbGlkYXRvcik7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLm91dGVyQ29udHJvbC5hc3luY1ZhbGlkYXRvcik7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0RXJyb3JzKHRoaXMub3V0ZXJDb250cm9sLmVycm9ycyk7XHJcblxyXG4gICAgICBpZiAodGhpcy5vdXRlckNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICAgIC8vIHRoaXMgb2JqZWN0IGlzIHVzZWQgdG8gY29udHJvbCB0aGUgYWN0aXZlIHN0YXRlIHdoZW4ga2V5aW5nIHVwIGFuZCBkb3duXHJcbiAgICB0aGlzLmtleU1hbmFnZXIgPSB0aGlzLmF1dG9Db21wbGV0ZVRyaWdnZXIuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyO1xyXG4gICAgdGhpcy5rZXlNYW5hZ2VyLndpdGhXcmFwKGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLnN1YnMuYWRkKGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLnZpZXdwb3J0LnJlbmRlcmVkUmFuZ2VTdHJlYW0sXHJcbiAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsZWRJbmRleENoYW5nZVxyXG4gICAgXSkuc3Vic2NyaWJlKChbcmVuZGVyZWRSYW5nZSwgc2Nyb2xsZWRJbmRleF06IFtMaXN0UmFuZ2UsIG51bWJlcl0pID0+IHtcclxuXHJcbiAgICAgIC8vIEluc3RlYWQgb2YgbG9hZGluZyB0aGUgd2hvbGUgaXRlbSBsaXN0IGF0IG9uY2UsIHRoZSB2aXJ0dWFsIHNjcm9sbCB2aWV3cG9ydCBidWZmZXJzXHJcbiAgICAgIC8vIGEgcmFuZ2Ugb2YgZW50cmllcywgb25seSBhIHBvcnRpb24gb2Ygd2hpY2ggYXJlIHdpdGhpbiB0aGUgdmlzaWJsZSBmb2xkXHJcbiAgICAgIHRoaXMudmlld3BvcnRSZW5kZXJSYW5nZSA9IHJlbmRlcmVkUmFuZ2U7XHJcblxyXG4gICAgICAvLyB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIHZpc2libGUgcmFuZ2Ugb3Vyc2VsdmVzXHJcbiAgICAgIGxldCBsZW46IG51bWJlciA9IE1hdGgubWluKHRoaXMubG9hZGVkT3B0aW9ucy5sZW5ndGggKyAodGhpcy5hbGxvd05vbmUgPyAxIDogMCksIHRoaXMubnVtT3B0aW9uc1RvU2hvdyAtIDEpO1xyXG5cclxuICAgICAgdGhpcy52aWV3cG9ydFZpc2libGVSYW5nZSA9IHtcclxuICAgICAgICBzdGFydDogc2Nyb2xsZWRJbmRleCxcclxuICAgICAgICBlbmQ6IHNjcm9sbGVkSW5kZXggKyBsZW5cclxuICAgICAgfTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMpIHtcclxuICAgICAgbGV0IG9wdGlvbnNDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMub3B0aW9ucztcclxuICAgICAgaWYgKCFvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSB8fCBvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZS5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICAgICAgaWYodGhpcy5pbm5lckNvbnRyb2wudmFsdWUgIT0gbnVsbCl7XHJcbiAgICAgICAgICAvL1Jlc2V0IHRoZSBpbm5lckNvbnRyb2wgdmFsdWUgb2YgdGhlIGRyb3Bkb3duIGxpc3QgdG8gYW4gZW1wdHkgYXJyYXkgaW4gY2FzZSBvZiBubyByZXN1bHRzIGFyZSBwcmVzZW50IHRvIGJlIGRpc3BsYXllZC5cclxuICAgICAgICAgIC8vVGhpcyBmbHVzaGVzIG91dCB0aGUgc3RhbGUgdmFsdWUgZnJvbSB0aGUgbGlzdCBpZiB0aGVyZSBhcmUgbm8gcmVzdWx0cyB0byBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgY3VycmVudE9wdHM6IGFueVtdID0gPGFueVtdPm9wdGlvbnNDaGFuZ2UuY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoY3VycmVudE9wdHMgJiYgXCJsZW5ndGhcIiBpbiBjdXJyZW50T3B0cyAmJiBjdXJyZW50T3B0cyAhPT0gb3B0aW9uc0NoYW5nZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3B0aW9uc0xvYWRlZC5lbWl0KCk7XHJcblxyXG4gICAgICAgIC8vIElmIG51bWJlciBvZiBvcHRpb25zIGlzIGxlc3MgdGhhbiBvdXIgbWF4LCByZWR1Y2Ugc2l6ZSBvZiBvdmVybGF5XHJcbiAgICAgICAgdGhpcy5udW1PcHRpb25zVG9TaG93ID0gTWF0aC5taW4oY3VycmVudE9wdHMubGVuZ3RoICsgKHRoaXMuYWxsb3dOb25lID8gMSA6IDApLCB0aGlzLm1heE9wdGlvbnNUb1Nob3cpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX3Nob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIFRoZSBhdXRvY29tcGxldGUgd2lsbCBhdXRvbWF0aWNhbGx5IHBvcCBvcGVuIG9uY2UgaXQgaGFzIG9wdGlvbnMgZmlsdGVyZWQgaW50byBpdCxcclxuICAgICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgaXQgdG8gb24gaW5pdGlhbCBwYWdlIGxvYWQgb3Igd2hlbiB0YWJiaW5nIHRob3VnaFxyXG4gICAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKG9iaik7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEVycm9yKCk6IHN0cmluZyB7XHJcbiAgICBmb3IgKGNvbnN0IGVycm9yIGluIHRoaXMub3V0ZXJDb250cm9sLmVycm9ycykge1xyXG4gICAgICBpZiAodGhpcy5kZWZpbmVFcnJvcnMgJiYgZXJyb3IgaW4gdGhpcy5kZWZpbmVFcnJvcnMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZpbmVFcnJvcnNbZXJyb3JdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRPbmx5Q3VycmVudFZhbHVlKGNudHJsVmFsOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zIHx8IHRoaXMub3B0aW9ucy5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3VmFsdWU6IGFueSA9IG51bGw7XHJcbiAgICBpZiAoY250cmxWYWwgIT09IG51bGwgJiYgY250cmxWYWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgY3VycmVudGx5U2VsZWN0ZWQ6IGFueSA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBvcHRWYWx1ZTogYW55ID0gdGhpcy52YWx1ZUZpZWxkID8gb3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvcHQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9yY2VFbWl0T2JqZWN0KSB7XHJcbiAgICAgICAgICBsZXQgb3V0ZXJWYWx1ZTogYW55ID0gY250cmxWYWwgPyAodGhpcy52YWx1ZUZpZWxkID8gY250cmxWYWxbdGhpcy52YWx1ZUZpZWxkXSA6IGNudHJsVmFsKSA6IG51bGw7XHJcbiAgICAgICAgICBpZiAob3B0VmFsdWUgPT09IG91dGVyVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBvcHRWYWx1ZSA9PT0gY250cmxWYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGN1cnJlbnRseVNlbGVjdGVkKSB7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBjdXJyZW50bHlTZWxlY3RlZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHByZWZlciB0byBjaGVjayBpZCBpZiBpdCBoYXMgb25lICB2cyBzdHJhaWdodCBhZ2FpbnN0IGl0J3Mgb2JqZWN0IGlkZW50aXR5XHJcbiAgICBpZiAodGhpcy5pbm5lckNvbnRyb2wudmFsdWUgJiYgbmV3VmFsdWUgIT0gbnVsbCAmJiB0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgaWYgKHRoaXMuaW5uZXJDb250cm9sLnZhbHVlW3RoaXMudmFsdWVGaWVsZF0gIT09IG5ld1ZhbHVlW3RoaXMudmFsdWVGaWVsZF0pIHtcclxuICAgICAgICB0aGlzLmlnbm9yZUlubmVyQ29udHJvbENoYW5nZXMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQobmV3VmFsdWVbdGhpcy52YWx1ZUZpZWxkXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbm5lckNvbnRyb2wudmFsdWUgIT09IG5ld1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgbGV0IG52ID0gbmV3VmFsdWUgPyAoKHRoaXMudmFsdWVGaWVsZCAmJiAhdGhpcy5mb3JjZUVtaXRPYmplY3QpID8gbmV3VmFsdWVbdGhpcy52YWx1ZUZpZWxkXSA6IG5ld1ZhbHVlKSA6IG51bGw7XHJcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChudik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbHRlck9wdGlvbnMoc2hvd0FsbDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcmNlU2hvd05vbmUgPSBzaG93QWxsO1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMgfHwgdGhpcy5vcHRpb25zLmxlbmd0aCA8IDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG93QWxsIHx8ICF0aGlzLmlubmVyQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzZWFyY2hWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmlubmVyQ29udHJvbC52YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIHNlYXJjaFZhbHVlID0gdGhpcy5pbm5lckNvbnRyb2wudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIHNlYXJjaFZhbHVlID0gdGhpcy5pbm5lckNvbnRyb2wudmFsdWVbdGhpcy5kaXNwbGF5RmllbGRdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2FkZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgb3B0RGlzcGxheTogc3RyaW5nID0gKHRoaXMuZGlzcGxheUZpZWxkID8gb3B0W3RoaXMuZGlzcGxheUZpZWxkXSA6IG9wdCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICByZXR1cm4gb3B0RGlzcGxheS5pbmNsdWRlcyhzZWFyY2hWYWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmZvcmNlU2hvd05vbmUgPSB0aGlzLmxvYWRlZE9wdGlvbnMubGVuZ3RoID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0T3B0SW5kZXgodGhpcy5vdXRlckNvbnRyb2wudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dMb2FkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hbGxvd0xvYWRlciAmJiB0aGlzLl9zaG93TG9hZGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW4oKSB7XHJcbiAgICBpZiAodGhpcy5pbm5lckNvbnRyb2wuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSBhdXRvY29tcGxldGUgd2lsbCBvbmx5IG9wZW4gd2hlbiBvcHRpb25zIGFyZSBsb2FkZWRcclxuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh0cnVlKTtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlVHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZSgpIHtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlVHJpZ2dlci5jbG9zZVBhbmVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25PcGVuZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcmNlU2hvd05vbmUgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICBpZih0aGlzLnNlbGVjdFRleHRPbk9wZW4pe1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpOyAvLyBIaWdobGlnaHRzIHRleHRcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMCkge1xyXG4gICAgICAvLyBtYWtlIHRoZSBzZWxlY3RlZCBvcHRpb24gYWxzbyB0aGUgYWN0aXZlIG9wdGlvblxyXG4gICAgICB0aGlzLmFjdGl2ZVZhbHVlID0gdGhpcy5nZXRPcHRWYWwodGhpcy5sb2FkZWRPcHRpb25zW3RoaXMuc2VsZWN0ZWRJbmRleF0pO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkT3B0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xvc2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuaW5uZXJDb250cm9sLnZhbHVlICYmIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZE9ubHlDdXJyZW50VmFsdWUodGhpcy5vdXRlckNvbnRyb2wudmFsdWUpO1xyXG5cclxuICAgIC8vIHJlc2V0IHRoZSBvcHRpb25zIHNvIHRoZSBhdXRvY29tcGxldGUgd29uJ3QgYXV0b21hdGljYWxseSBvcGVuIG9uIHRoZSBuZXh0IHRhYiB0aHJvdWdoXHJcbiAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGFydENsaWNrKCkge1xyXG4gICAgLy8gY2xpY2tpbmcgb24gY2VydGFpbiBwYXJ0cyBvZiB0aGUgbWF0LWZpZWxkIHdpbGwgXCJmbGlja2VyXCIgdGhlIGZvY3VzLCB0cmlnZ2VyaW5nXHJcbiAgICAvLyBlcnJvciB2YWxpZGF0aW9uIGVhcmx5LiBUaGlzIHRyYWNrcyB0aG9zZSBpbnRlcm5hbCBjbGlja3Mgc28gdGhleSBjYW4gYmUgaWdub3JlZFxyXG4gICAgdGhpcy5jbGlja0luUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuZENsaWNrKCkge1xyXG4gICAgdGhpcy5jbGlja0luUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcclxuICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlT3BlbihldmVudDogTW91c2VFdmVudCk6dm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25LZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09IFwiVGFiXCIgfHwgZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBUaGVyZSBpcyBhIGJ1ZyB3aGVyZSB0aGUgY2RrIGExMXkgS2V5TWFuYWdlciBpbXBsZW1lbnRhdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoXHJcbiAgICAgIC8vIHRoZSBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCB3aGljaCBjYXVzZXMgdGhlIERyb3AtZG93biBub3Qgc2Nyb2xsIHdpdGgga2V5Ym9hcmRcclxuICAgICAgLy8gb24gbG9uZyBvcHRpb24gbGlzdHMuXHJcbiAgICAgIC8vXHJcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzE2NTk4XHJcbiAgICAgIC8vXHJcbiAgICAgIC8vIFRoaXMgd29yayBhcm91bmQgdGFrZXMgY29udHJvbCBvZiB0aGUga2V5Ym9hcmQgYW5kIG1hbnVhbGx5IHNjcm9sbHMgYW5kIGFjdGl2YXRlc1xyXG4gICAgICAvLyB0aGUgb3B0aW9uc1xyXG4gICAgICAvL1xyXG4gICAgICAvLyBSZWZlcmVuY2VzOlxyXG4gICAgICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvc3JjL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtdHJpZ2dlci50c1xyXG4gICAgICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvc3JjL2Nkay9hMTF5L2tleS1tYW5hZ2VyL2xpc3Qta2V5LW1hbmFnZXIudHNcclxuICAgICAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL3NyYy9jZGsvYTExeS9rZXktbWFuYWdlci9hY3RpdmVkZXNjZW5kYW50LWtleS1tYW5hZ2VyLnRzXHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiIHx8IGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRBY3RpdmVJdGVtKCk7XHJcbiAgICAgICAgdGhpcy5zaGlmdEFjdGl2ZUl0ZW0oZXZlbnQua2V5KTtcclxuICAgICAgICB0aGlzLmNoZWNrQWN0aXZlQm91bmRhcmllcygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBiZWZvcmUgb3VyIGtleXByZXNzIGJpbmRpbmcgZXZlbiB0cmlnZ2VycywgYW5ndWxhciBoYXMgYWxyZWFkeSBtb3ZlZCB0aGUgYWN0aXZlIHNlbGVjdGlvblxyXG4gIC8vIHVuc3luY2luZyBpdCB3aXRoIG91ciBkaXNwbGF5LiB0aGlzIGNvZGUgcmUtaW5pdGlhbGl6ZXMgdGhlIGFjdGl2ZSBvcHRpb25cclxuICBpbml0QWN0aXZlSXRlbSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3RpdmVWYWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgYWN0aXZlSW5kZXg6IG51bWJlciA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKTtcclxuXHJcbiAgICAgIC8vIHRoaXMgZG9lcyB0aGUgY29udmVyc2lvbiBmcm9tIGFuIGluZGV4IHdpdGhpbiBhbGwgb3B0aW9ucyBkb3duIHRvIGEgcG9zaXRpb24gd2l0aGluIHRoZVxyXG4gICAgICAvLyBkaXNwbGF5ZWQgcmFuZ2UsIHdoaWNoIGlzIGFsbCB0aGUga2V5bWFuYWdlciBpcyBhd2FyZSBvZlxyXG4gICAgICBsZXQgcG9zaXRpb24gPSBhY3RpdmVJbmRleCAtIHRoaXMudmlld3BvcnRSZW5kZXJSYW5nZS5zdGFydDtcclxuICAgICAgdGhpcy5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0ocG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hpZnRBY3RpdmVJdGVtKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXIuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcclxuICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHRoaXMuZ2V0T3B0VmFsKCg8TWF0T3B0aW9uPnRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtKS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBjaGVjayBpZiB0aGUgYWN0aXZlIG9wdGlvbiBpbmRleCBpcyB3aXRoaW4gdGhlIGRpc3BsYXllZCB2aWV3cG9ydCB3aW5kb3dcclxuICAvLyBpZiBub3QsIHNjcm9sbCBpdCBpbnRvIHZpZXdcclxuICBjaGVja0FjdGl2ZUJvdW5kYXJpZXMoKTogdm9pZCB7XHJcbiAgICBsZXQgYWN0aXZlSW5kZXg6IG51bWJlciA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlSW5kZXggPCB0aGlzLnZpZXdwb3J0VmlzaWJsZVJhbmdlLnN0YXJ0KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQoYWN0aXZlSW5kZXggKiB0aGlzLm9wdGlvblNpemVQeCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoYWN0aXZlSW5kZXggPiB0aGlzLnZpZXdwb3J0VmlzaWJsZVJhbmdlLmVuZCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvT2Zmc2V0KChhY3RpdmVJbmRleCAtICh0aGlzLm51bU9wdGlvbnNUb1Nob3cgLSAxKSkgKiB0aGlzLm9wdGlvblNpemVQeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlSW5kZXgoKSB7XHJcbiAgICBsZXQgYWN0aXZlSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuYWN0aXZlVmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFjdGl2ZVZhbHVlICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAvLyBpZiB3ZSBhZGRlZCBhIG5vbmUgb3B0aW9uIHRoZSByZXR1cm5lZCBpbmRleCB3b3VsZCBiZSBvZmYgYnkgb25lXHJcbiAgICAgIGxldCB2YWxJbmRleCA9IHRoaXMuZ2V0T3B0SW5kZXgodGhpcy5hY3RpdmVWYWx1ZSkgKyAodGhpcy5hbGxvd05vbmUgJiYgKHRoaXMuZm9yY2VTaG93Tm9uZSB8fCAhdGhpcy5pbm5lckNvbnRyb2wudmFsdWUpID8gMSA6IDApO1xyXG5cclxuICAgICAgLy8gdGhlIGluZGV4IHNob3VsZCBiZSB3aXRoaW4gdGhlIHJhbmdlIG9mIG91ciBlbnRpcmUgYnVmZmVyLCBvciBqdXN0IGFsbG93IGl0IHRvIHJlc2V0XHJcbiAgICAgIGlmICh2YWxJbmRleCA+PSB0aGlzLnZpZXdwb3J0UmVuZGVyUmFuZ2Uuc3RhcnRcclxuICAgICAgICAmJiAoIXRoaXMudmlld3BvcnRSZW5kZXJSYW5nZS5lbmQgfHwgdmFsSW5kZXggPD0gdGhpcy52aWV3cG9ydFJlbmRlclJhbmdlLmVuZClcclxuICAgICAgKSB7XHJcbiAgICAgICAgYWN0aXZlSW5kZXggPSB2YWxJbmRleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhY3RpdmVJbmRleDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICAvLyBIaWdobGlnaHRzIHRleHRcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0VGV4dE9uT3Blbikge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzT3V0KCkge1xyXG4gICAgLy8gbWFyayBjb250cm9sIHRvdWNoZWQgYW5kIHRyaWdnZXIgZXJyb3IgdmFsaWRhdGlvblxyXG4gICAgaWYgKCF0aGlzLmNsaWNrSW5Qcm9ncmVzcykge1xyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RPcHRpb24ob3B0OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBuZXdWYWwgPSB0aGlzLmdldE9wdFZhbChvcHQsIHRoaXMuZm9yY2VFbWl0T2JqZWN0KTtcclxuXHJcbiAgICBpZiAodGhpcy5ub05nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm91dGVyQ29udHJvbC5zZXRWYWx1ZShuZXdWYWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25DaGFuZ2VGbihuZXdWYWwpO1xyXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KG5ld1ZhbCk7XHJcbiAgICB0aGlzLm9wdGlvbkNoYW5nZWQuZW1pdChuZXdWYWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XHJcbiAgICAvLyBzY3JvbGwgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBvcHRpb24gd2hlbiB3ZSBvcGVuIHRoZSBkcm9wZG93blxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+IDApIHtcclxuICAgICAgbGV0IG9mZnNldEluZGV4OiBudW1iZXIgPSB0aGlzLnNlbGVjdGVkSW5kZXggKyAodGhpcy5hbGxvd05vbmUgPyAxIDogMCk7IC8vIGFkanVzdCBmb3IgTm9uZSBlbnRyeVxyXG4gICAgICBvZmZzZXRJbmRleCAtPSAodGhpcy5udW1PcHRpb25zVG9TaG93IC8gMikgLSAxOyAvLyBjYWxjdWxhdGUgbWlkZGxlIG9mIHZpZXdwb3J0XHJcbiAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQob2Zmc2V0SW5kZXggKiB0aGlzLm9wdGlvblNpemVQeCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRPcHRWYWwob3B0OiBhbnksIGZvcmNlT2JqZWN0OiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiAhZm9yY2VPYmplY3QpIHtcclxuICAgICAgaWYgKG9wdCAhPT0gbnVsbCAmJiBvcHQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0ID09PSBcIm9iamVjdFwiICYmIHRoaXMudmFsdWVGaWVsZCBpbiBvcHQpIHtcclxuICAgICAgICByZXR1cm4gb3B0W3RoaXMudmFsdWVGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdDtcclxuICB9XHJcblxyXG4gIGdldE9wdEluZGV4KG9wdFZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgLy8gZmluZCB0aGUgaW5kZXggZm9yIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgb3B0aW9uXHJcbiAgICBpZiAob3B0VmFsdWUgIT09IG51bGwgJiYgb3B0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2FkZWRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRWYWwob3B0aW9uKSA9PT0gb3B0VmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
679
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWxlY3QvY3VzdG9tLWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdDLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsNEJBQTRCLElBQUksc0JBQXNCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7QUF5STdHLE1BQU0sT0FBTyx1QkFBdUI7SUFVbEMsSUFDVyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMs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QUFJLEVBQUM7Z0JBSWxDLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2UsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ1wiO1xyXG5pbXBvcnQge01hdExlZ2FjeUF1dG9jb21wbGV0ZVRyaWdnZXIgYXMgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1hdXRvY29tcGxldGVcIjtcclxuaW1wb3J0IHtMaXN0UmFuZ2V9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcclxuaW1wb3J0IHtMaXN0S2V5TWFuYWdlciwgSGlnaGxpZ2h0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQge01hdExlZ2FjeU9wdGlvbiBhcyBNYXRPcHRpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktY29yZVwiO1xyXG5pbXBvcnQge0xlZ2FjeUZsb2F0TGFiZWxUeXBlIGFzIEZsb2F0TGFiZWxUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWZvcm0tZmllbGRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1jb21ib2JveFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cImVuZENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRoaXMudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY3VzdG9tRmllbGRDbGFzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbCAhPT0gdW5kZWZpbmVkXCI+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsID09PSB1bmRlZmluZWRcIj5cclxuICAgICAgICB7eyB0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChpbm5lckNvbnRyb2wudmFsdWUgPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyIH19XHJcbiAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgI2lucHV0XHJcbiAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgbmFtZT1cImN1c3RvbUNvbWJvQm94RmlsdGVyXCJcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChpbm5lckNvbnRyb2wudmFsdWUgPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlubmVyQ29udHJvbFwiXHJcbiAgICAgICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiY2RrRm9jdXNJbml0aWFsID09PSB1bmRlZmluZWQgPyBudWxsIDogY2RrRm9jdXNJbml0aWFsXCJcclxuICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXHJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxyXG4gICAgICAgICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiIGF0dHIuYXJpYS1sYWJlbD1cImhjaS1uZy1jdXN0b20tY29tYm9ib3gte3tsYWJlbH19XCJcclxuICAgICAgICAgICAgID5cclxuICAgICAgPGRpdiBtYXRTdWZmaXhcclxuICAgICAgICAgICBjbGFzcz1cImhjaS1jb21ib2JveC1hcnJvdy13cmFwcGVyXCJcclxuICAgICAgICAgICAoY2xpY2spID0gXCJ0b2dnbGVPcGVuKCRldmVudClcIlxyXG4gICAgICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRDbGljaygpXCJcclxuICAgICAgICAgICAobW91c2V1cCk9XCJlbmRDbGljaygpXCJcclxuICAgICAgICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhjaS1jb21ib2JveC1hcnJvd1wiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG1hdC1zcGlubmVyIG1hdFN1ZmZpeCAqbmdJZj1cInNob3dMb2FkZXIoKVwiIFtkaWFtZXRlcl09XCIzMFwiIHN0eWxlPVwiZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tbGVmdDogOHB4XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvQWN0aXZlRmlyc3RPcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInRoaXMuc2VsZWN0T3B0aW9uKCRldmVudC5vcHRpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJ0aGlzLm9uT3BlbmVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VkKT1cInRoaXMub25DbG9zZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJ0aGlzLmRpc3BsYXlGblwiPlxyXG4gICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgI3ZpZXdwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc09wZW4gPyBudWxsIDogJ25vbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGNpLWNvbWJvYm94LXZpZXdwb3J0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT0gXCJjdXN0b21WaWV3cG9ydENsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtU2l6ZV09XCJvcHRpb25TaXplUHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJudW1PcHRpb25zVG9TaG93ICogb3B0aW9uU2l6ZVB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5CdWZmZXJQeF09XCJudW1PcHRpb25zVG9TaG93ICogb3B0aW9uU2l6ZVB4ICogMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4QnVmZmVyUHhdPVwibnVtT3B0aW9uc1RvU2hvdyAqIG9wdGlvblNpemVQeCAqIDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNldXApPVwiZW5kQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImFsbG93Tm9uZSAmJiBpc09wZW4gJiYgKHRoaXMuZm9yY2VTaG93Tm9uZSB8fCAhdGhpcy5pbm5lckNvbnRyb2wudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImN1c3RvbU9wdGlvbkNsYXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJvcHRpb25TaXplUHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICBOb25lXHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqY2RrVmlydHVhbEZvcj1cImxldCBvcHQgb2YgdGhpcy5sb2FkZWRPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY3VzdG9tT3B0aW9uQ2xhc3Nlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGNpLWNvbWJvYm94LXNlbGVjdGVkXT1cIih2YWx1ZUZpZWxkID8gb3B0W3ZhbHVlRmllbGRdIDogb3B0KSA9PT0gb3V0ZXJDb250cm9sLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXQtc2VsZWN0ZWRdPVwiKHZhbHVlRmllbGQgPyBvcHRbdmFsdWVGaWVsZF0gOiBvcHQpID09PSBvdXRlckNvbnRyb2wudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJvcHRpb25TaXplUHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBkaXNwbGF5RmllbGQgPyBvcHRbZGlzcGxheUZpZWxkXSA6IG9wdCB9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAge3sgZ2V0RXJyb3IoKSB9fVxyXG4gICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VzdG9tQ29tYm9Cb3hDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfV0sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6IFwiaGNpLWNvbWJvYm94LWNvbnRhaW5lclwiXHJcbiAgfSxcclxuICBzdHlsZXM6IFtgXHJcbiAgICAuaGNpLWNvbWJvYm94LWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuaGNpLWNvbWJvYm94LWFycm93IHtcclxuICAgICAgd2lkdGg6IDA7XHJcbiAgICAgIGhlaWdodDogMDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZDtcclxuICAgICAgbWFyZ2luOiAwIDRweDtcclxuICAgICAgY29sb3I6IHZhcigtLWJsYWNrLWRhcmtlc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC5oY2ktY29tYm9ib3gtYXJyb3ctd3JhcHBlciB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLmhjaS1jb21ib2JveC12aWV3cG9ydCBtYXQtb3B0aW9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogMCAuMnJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuaGNpLWNvbWJvYm94LXZpZXdwb3J0IG1hdC1vcHRpb24gLm1hdC1vcHRpb24tdGV4dCB7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB9XHJcblxyXG4gICAgLmhjaS1jb21ib2JveC12aWV3cG9ydCAuaGNpLWNvbWJvYm94LXNlbGVjdGVkIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDtcclxuICAgIH1cclxuXHJcbiAgICAuaGNpLWNvbWJvYm94LXZpZXdwb3J0IC5tYXQtYWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcclxuICAgIH1cclxuXHJcbiAgICAvKiBmaXggaml0dGVyeSBzY3JvbGwgYnVnIGluIGNocm9tZSAqL1xyXG4gICAgLmhjaS1jb21ib2JveC12aWV3cG9ydCB7XHJcbiAgICAgIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcclxuICAgIH1cclxuICBgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29tYm9Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHB1YmxpYyBvcHRpb25TaXplUHg6IG51bWJlciA9IDI1O1xyXG4gIHB1YmxpYyBudW1PcHRpb25zVG9TaG93OiBudW1iZXIgPSAxMDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWF4T3B0aW9uc1RvU2hvdzogbnVtYmVyID0gMTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbVZpZXdwb3J0Q2xhc3M6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjdXN0b21GaWVsZENsYXNzZXModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY3VzdG9tRmllbGRDbGFzc2VzID0gdmFsdWUgPyB2YWx1ZSA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1c3RvbUZpZWxkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fY3VzdG9tRmllbGRDbGFzc2VzID8gdGhpcy5fY3VzdG9tRmllbGRDbGFzc2VzIDogXCJtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRcIjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjdXN0b21PcHRpb25DbGFzc2VzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2N1c3RvbU9wdGlvbkNsYXNzZXMgPSB2YWx1ZSA/IHZhbHVlIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VzdG9tT3B0aW9uQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fY3VzdG9tT3B0aW9uQ2xhc3NlcyA/IHRoaXMuX2N1c3RvbU9wdGlvbkNsYXNzZXMgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8gSWYgYSBsYWJlbCBpcyBub3Qgc3BlY2lmaWVkIHRoZSBwbGFjZWhvbGRlciBpcyBwcm9tb3RlZCB0byBhIGxhYmVsLlxyXG4gIC8vIFRvIGNyZWF0ZSBhIGZvcm0gZmllbGQgd2l0aCBvbmx5IGEgcGxhY2Vob2xkZXIsIHNwZWNpZnkgYW4gZW1wdHlcclxuICAvLyBsYWJlbCB0byBwcmV2ZW50IHRoZSBwbGFjZWhvbGRlciBmcm9tIGJlaW5nIHByb21vdGVkLlxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gUmVtb3ZlcyB0aGUgcGxhY2Vob2xkZXIgYWZ0ZXIgYSBzZWxlY3Rpb24gaXMgbWFkZVxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0ZW1wb3JhcnlQbGFjZWhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dOb25lOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdFRleHRPbk9wZW4gPSB0cnVlO1xyXG5cclxuICAvLyB0ZWxsIG1hdC1kaWFsb2cgdG8gcGFzcyBpbml0aWFsIGZvY3VzIHRvIHRoZSBpbm5lciBpbnB1dFxyXG4gIEBIb3N0QmluZGluZyhcImF0dHIuY2RrRm9jdXNJbml0aWFsXCIpIF9jZGtGb2N1c0luaXRpYWwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjZGtGb2N1c0luaXRpYWw6IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gb24gdGFiLCBza2lwIHRoZSBob3N0IGVsZW1lbnQgYW5kIGZvY3VzIHRoZSBpbnB1dFxyXG4gIEBIb3N0QmluZGluZyhcImF0dHIudGFiaW5kZXhcIikgX3RhYmluZGV4ID0gbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgdGFiaW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBmb3JjZVNob3dOb25lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGFsbG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbG9hZGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwcml2YXRlIGZvcmNlRW1pdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgYXBwZWFyYW5jZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGU7XHJcblxyXG4gIC8vIFNldCB0byBlbXB0eSB0byBub3Qgc2hvdyBlcnJvcnNcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkZWZpbmVFcnJvcnM6IGFueSA9IHtyZXF1aXJlZDogXCJUaGlzIGlzIGEgcmVxdWlyZWQgZmllbGRcIn07XHJcblxyXG4gIHByaXZhdGUgX3Nob3dMb2FkZXIgPSBmYWxzZTtcclxuICBwcml2YXRlIF9jdXN0b21GaWVsZENsYXNzZXM6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHJpdmF0ZSBfY3VzdG9tT3B0aW9uQ2xhc3Nlczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIG91dGVyQ29udHJvbDogQWJzdHJhY3RDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyBpbm5lckNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XHJcbiAgcHJpdmF0ZSBpZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBub05nQ29udHJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEluZGV4OiBudW1iZXI7XHJcblxyXG4gIGtleU1hbmFnZXI6IExpc3RLZXlNYW5hZ2VyPEhpZ2hsaWdodGFibGU+O1xyXG4gIHZpZXdwb3J0UmVuZGVyUmFuZ2U6IExpc3RSYW5nZTtcclxuICB2aWV3cG9ydFZpc2libGVSYW5nZTogTGlzdFJhbmdlID0ge1xyXG4gICAgc3RhcnQ6IDAsXHJcbiAgICBlbmQ6IHRoaXMubnVtT3B0aW9uc1RvU2hvdyAtIDFcclxuICB9O1xyXG5cclxuICBhY3RpdmVWYWx1ZTogYW55O1xyXG5cclxuICBwdWJsaWMgY2xpY2tJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb3B0aW9uc0xvYWRlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ2aWV3cG9ydFwiLCB7c3RhdGljOiB0cnVlfSlcclxuICB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG5cclxuICBAVmlld0NoaWxkKFwiaW5wdXRcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKFwiaW5wdXRcIiwge3JlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogZmFsc2V9KVxyXG4gIGF1dG9Db21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2VGbjogKHZhbDogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICBwdWJsaWMgZGlzcGxheUZuOiAob3B0PzogYW55KSA9PiBzdHJpbmcgfCB1bmRlZmluZWQgPSAob3B0PzogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gb3B0ID8gKHRoaXMuZGlzcGxheUZpZWxkID8gb3B0W3RoaXMuZGlzcGxheUZpZWxkXSA6IG9wdCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nob3dMb2FkZXIgPSB0aGlzLmFsbG93TG9hZGVyICYmICghIHRoaXMub3B0aW9ucyB8fCB0aGlzLm9wdGlvbnMubGVuZ3RoID09PSAwKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sICYmIG5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMub3V0ZXJDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2w7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5vdXRlckNvbnRyb2wudmFsaWRhdG9yKTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMub3V0ZXJDb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vTmdDb250cm9sID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnMuYWRkKHRoaXMuaW5uZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKF92YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiAhdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICAvLyB3b3JrIGFyb3VuZCBmb3IgdmFsaWRhdG9ycyBub3QgYWx3YXlzIHByb3BhZ2F0aW5nXHJcbiAgICB0aGlzLnN1YnMuYWRkKHRoaXMub3V0ZXJDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChfZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMub3V0ZXJDb250cm9sLnZhbGlkYXRvcik7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLm91dGVyQ29udHJvbC5hc3luY1ZhbGlkYXRvcik7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0RXJyb3JzKHRoaXMub3V0ZXJDb250cm9sLmVycm9ycyk7XHJcblxyXG4gICAgICBpZiAodGhpcy5vdXRlckNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICAgIC8vIHRoaXMgb2JqZWN0IGlzIHVzZWQgdG8gY29udHJvbCB0aGUgYWN0aXZlIHN0YXRlIHdoZW4ga2V5aW5nIHVwIGFuZCBkb3duXHJcbiAgICB0aGlzLmtleU1hbmFnZXIgPSB0aGlzLmF1dG9Db21wbGV0ZVRyaWdnZXIuYXV0b2NvbXBsZXRlLl9rZXlNYW5hZ2VyO1xyXG4gICAgdGhpcy5rZXlNYW5hZ2VyLndpdGhXcmFwKGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLnN1YnMuYWRkKGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLnZpZXdwb3J0LnJlbmRlcmVkUmFuZ2VTdHJlYW0sXHJcbiAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsZWRJbmRleENoYW5nZVxyXG4gICAgXSkuc3Vic2NyaWJlKChbcmVuZGVyZWRSYW5nZSwgc2Nyb2xsZWRJbmRleF06IFtMaXN0UmFuZ2UsIG51bWJlcl0pID0+IHtcclxuXHJcbiAgICAgIC8vIEluc3RlYWQgb2YgbG9hZGluZyB0aGUgd2hvbGUgaXRlbSBsaXN0IGF0IG9uY2UsIHRoZSB2aXJ0dWFsIHNjcm9sbCB2aWV3cG9ydCBidWZmZXJzXHJcbiAgICAgIC8vIGEgcmFuZ2Ugb2YgZW50cmllcywgb25seSBhIHBvcnRpb24gb2Ygd2hpY2ggYXJlIHdpdGhpbiB0aGUgdmlzaWJsZSBmb2xkXHJcbiAgICAgIHRoaXMudmlld3BvcnRSZW5kZXJSYW5nZSA9IHJlbmRlcmVkUmFuZ2U7XHJcblxyXG4gICAgICAvLyB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIHZpc2libGUgcmFuZ2Ugb3Vyc2VsdmVzXHJcbiAgICAgIGxldCBsZW46IG51bWJlciA9IE1hdGgubWluKHRoaXMubG9hZGVkT3B0aW9ucy5sZW5ndGggKyAodGhpcy5hbGxvd05vbmUgPyAxIDogMCksIHRoaXMubnVtT3B0aW9uc1RvU2hvdyAtIDEpO1xyXG5cclxuICAgICAgdGhpcy52aWV3cG9ydFZpc2libGVSYW5nZSA9IHtcclxuICAgICAgICBzdGFydDogc2Nyb2xsZWRJbmRleCxcclxuICAgICAgICBlbmQ6IHNjcm9sbGVkSW5kZXggKyBsZW5cclxuICAgICAgfTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMpIHtcclxuICAgICAgbGV0IG9wdGlvbnNDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMub3B0aW9ucztcclxuICAgICAgaWYgKCFvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSB8fCBvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZS5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICAgICAgaWYodGhpcy5pbm5lckNvbnRyb2wudmFsdWUgIT0gbnVsbCl7XHJcbiAgICAgICAgICAvL1Jlc2V0IHRoZSBpbm5lckNvbnRyb2wgdmFsdWUgb2YgdGhlIGRyb3Bkb3duIGxpc3QgdG8gYW4gZW1wdHkgYXJyYXkgaW4gY2FzZSBvZiBubyByZXN1bHRzIGFyZSBwcmVzZW50IHRvIGJlIGRpc3BsYXllZC5cclxuICAgICAgICAgIC8vVGhpcyBmbHVzaGVzIG91dCB0aGUgc3RhbGUgdmFsdWUgZnJvbSB0aGUgbGlzdCBpZiB0aGVyZSBhcmUgbm8gcmVzdWx0cyB0byBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgICAgICB0aGlzLmlubmVyQ29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgY3VycmVudE9wdHM6IGFueVtdID0gPGFueVtdPm9wdGlvbnNDaGFuZ2UuY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoY3VycmVudE9wdHMgJiYgXCJsZW5ndGhcIiBpbiBjdXJyZW50T3B0cyAmJiBjdXJyZW50T3B0cyAhPT0gb3B0aW9uc0NoYW5nZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3B0aW9uc0xvYWRlZC5lbWl0KCk7XHJcblxyXG4gICAgICAgIC8vIElmIG51bWJlciBvZiBvcHRpb25zIGlzIGxlc3MgdGhhbiBvdXIgbWF4LCByZWR1Y2Ugc2l6ZSBvZiBvdmVybGF5XHJcbiAgICAgICAgdGhpcy5udW1PcHRpb25zVG9TaG93ID0gTWF0aC5taW4oY3VycmVudE9wdHMubGVuZ3RoICsgKHRoaXMuYWxsb3dOb25lID8gMSA6IDApLCB0aGlzLm1heE9wdGlvbnNUb1Nob3cpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX3Nob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIFRoZSBhdXRvY29tcGxldGUgd2lsbCBhdXRvbWF0aWNhbGx5IHBvcCBvcGVuIG9uY2UgaXQgaGFzIG9wdGlvbnMgZmlsdGVyZWQgaW50byBpdCxcclxuICAgICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgaXQgdG8gb24gaW5pdGlhbCBwYWdlIGxvYWQgb3Igd2hlbiB0YWJiaW5nIHRob3VnaFxyXG4gICAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKG9iaik7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEVycm9yKCk6IHN0cmluZyB7XHJcbiAgICBmb3IgKGNvbnN0IGVycm9yIGluIHRoaXMub3V0ZXJDb250cm9sLmVycm9ycykge1xyXG4gICAgICBpZiAodGhpcy5kZWZpbmVFcnJvcnMgJiYgZXJyb3IgaW4gdGhpcy5kZWZpbmVFcnJvcnMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZpbmVFcnJvcnNbZXJyb3JdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRPbmx5Q3VycmVudFZhbHVlKGNudHJsVmFsOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zIHx8IHRoaXMub3B0aW9ucy5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3VmFsdWU6IGFueSA9IG51bGw7XHJcbiAgICBpZiAoY250cmxWYWwgIT09IG51bGwgJiYgY250cmxWYWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgY3VycmVudGx5U2VsZWN0ZWQ6IGFueSA9IHRoaXMub3B0aW9ucy5maW5kKChvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBvcHRWYWx1ZTogYW55ID0gdGhpcy52YWx1ZUZpZWxkID8gb3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvcHQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9yY2VFbWl0T2JqZWN0KSB7XHJcbiAgICAgICAgICBsZXQgb3V0ZXJWYWx1ZTogYW55ID0gY250cmxWYWwgPyAodGhpcy52YWx1ZUZpZWxkID8gY250cmxWYWxbdGhpcy52YWx1ZUZpZWxkXSA6IGNudHJsVmFsKSA6IG51bGw7XHJcbiAgICAgICAgICBpZiAob3B0VmFsdWUgPT09IG91dGVyVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBvcHRWYWx1ZSA9PT0gY250cmxWYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGN1cnJlbnRseVNlbGVjdGVkKSB7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBjdXJyZW50bHlTZWxlY3RlZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHByZWZlciB0byBjaGVjayBpZCBpZiBpdCBoYXMgb25lICB2cyBzdHJhaWdodCBhZ2FpbnN0IGl0J3Mgb2JqZWN0IGlkZW50aXR5XHJcbiAgICBpZiAodGhpcy5pbm5lckNvbnRyb2wudmFsdWUgJiYgbmV3VmFsdWUgIT0gbnVsbCAmJiB0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgaWYgKHRoaXMuaW5uZXJDb250cm9sLnZhbHVlW3RoaXMudmFsdWVGaWVsZF0gIT09IG5ld1ZhbHVlW3RoaXMudmFsdWVGaWVsZF0pIHtcclxuICAgICAgICB0aGlzLmlnbm9yZUlubmVyQ29udHJvbENoYW5nZXMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQobmV3VmFsdWVbdGhpcy52YWx1ZUZpZWxkXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbm5lckNvbnRyb2wudmFsdWUgIT09IG5ld1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgbGV0IG52ID0gbmV3VmFsdWUgPyAoKHRoaXMudmFsdWVGaWVsZCAmJiAhdGhpcy5mb3JjZUVtaXRPYmplY3QpID8gbmV3VmFsdWVbdGhpcy52YWx1ZUZpZWxkXSA6IG5ld1ZhbHVlKSA6IG51bGw7XHJcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChudik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbHRlck9wdGlvbnMoc2hvd0FsbDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcmNlU2hvd05vbmUgPSBzaG93QWxsO1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMgfHwgdGhpcy5vcHRpb25zLmxlbmd0aCA8IDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG93QWxsIHx8ICF0aGlzLmlubmVyQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzZWFyY2hWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmlubmVyQ29udHJvbC52YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIHNlYXJjaFZhbHVlID0gdGhpcy5pbm5lckNvbnRyb2wudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIHNlYXJjaFZhbHVlID0gdGhpcy5pbm5lckNvbnRyb2wudmFsdWVbdGhpcy5kaXNwbGF5RmllbGRdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2FkZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgb3B0RGlzcGxheTogc3RyaW5nID0gKHRoaXMuZGlzcGxheUZpZWxkID8gb3B0W3RoaXMuZGlzcGxheUZpZWxkXSA6IG9wdCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICByZXR1cm4gb3B0RGlzcGxheS5pbmNsdWRlcyhzZWFyY2hWYWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmZvcmNlU2hvd05vbmUgPSB0aGlzLmxvYWRlZE9wdGlvbnMubGVuZ3RoID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0T3B0SW5kZXgodGhpcy5vdXRlckNvbnRyb2wudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dMb2FkZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hbGxvd0xvYWRlciAmJiB0aGlzLl9zaG93TG9hZGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW4oKSB7XHJcbiAgICBpZiAodGhpcy5pbm5lckNvbnRyb2wuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSBhdXRvY29tcGxldGUgd2lsbCBvbmx5IG9wZW4gd2hlbiBvcHRpb25zIGFyZSBsb2FkZWRcclxuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh0cnVlKTtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlVHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZSgpIHtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlVHJpZ2dlci5jbG9zZVBhbmVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25PcGVuZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcmNlU2hvd05vbmUgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICBpZih0aGlzLnNlbGVjdFRleHRPbk9wZW4pe1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpOyAvLyBIaWdobGlnaHRzIHRleHRcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMCkge1xyXG4gICAgICAvLyBtYWtlIHRoZSBzZWxlY3RlZCBvcHRpb24gYWxzbyB0aGUgYWN0aXZlIG9wdGlvblxyXG4gICAgICB0aGlzLmFjdGl2ZVZhbHVlID0gdGhpcy5nZXRPcHRWYWwodGhpcy5sb2FkZWRPcHRpb25zW3RoaXMuc2VsZWN0ZWRJbmRleF0pO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkT3B0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xvc2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuaW5uZXJDb250cm9sLnZhbHVlICYmIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZE9ubHlDdXJyZW50VmFsdWUodGhpcy5vdXRlckNvbnRyb2wudmFsdWUpO1xyXG5cclxuICAgIC8vIHJlc2V0IHRoZSBvcHRpb25zIHNvIHRoZSBhdXRvY29tcGxldGUgd29uJ3QgYXV0b21hdGljYWxseSBvcGVuIG9uIHRoZSBuZXh0IHRhYiB0aHJvdWdoXHJcbiAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGFydENsaWNrKCkge1xyXG4gICAgLy8gY2xpY2tpbmcgb24gY2VydGFpbiBwYXJ0cyBvZiB0aGUgbWF0LWZpZWxkIHdpbGwgXCJmbGlja2VyXCIgdGhlIGZvY3VzLCB0cmlnZ2VyaW5nXHJcbiAgICAvLyBlcnJvciB2YWxpZGF0aW9uIGVhcmx5LiBUaGlzIHRyYWNrcyB0aG9zZSBpbnRlcm5hbCBjbGlja3Mgc28gdGhleSBjYW4gYmUgaWdub3JlZFxyXG4gICAgdGhpcy5jbGlja0luUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuZENsaWNrKCkge1xyXG4gICAgdGhpcy5jbGlja0luUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5pc09wZW4pIHtcclxuICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlT3BlbihldmVudDogTW91c2VFdmVudCk6dm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25LZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09IFwiVGFiXCIgfHwgZXZlbnQua2V5ID09PSBcIkVudGVyXCIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICAgIHRoaXMub3BlbigpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBUaGVyZSBpcyBhIGJ1ZyB3aGVyZSB0aGUgY2RrIGExMXkgS2V5TWFuYWdlciBpbXBsZW1lbnRhdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoXHJcbiAgICAgIC8vIHRoZSBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCB3aGljaCBjYXVzZXMgdGhlIERyb3AtZG93biBub3Qgc2Nyb2xsIHdpdGgga2V5Ym9hcmRcclxuICAgICAgLy8gb24gbG9uZyBvcHRpb24gbGlzdHMuXHJcbiAgICAgIC8vXHJcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzE2NTk4XHJcbiAgICAgIC8vXHJcbiAgICAgIC8vIFRoaXMgd29yayBhcm91bmQgdGFrZXMgY29udHJvbCBvZiB0aGUga2V5Ym9hcmQgYW5kIG1hbnVhbGx5IHNjcm9sbHMgYW5kIGFjdGl2YXRlc1xyXG4gICAgICAvLyB0aGUgb3B0aW9uc1xyXG4gICAgICAvL1xyXG4gICAgICAvLyBSZWZlcmVuY2VzOlxyXG4gICAgICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvc3JjL21hdGVyaWFsL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtdHJpZ2dlci50c1xyXG4gICAgICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvc3JjL2Nkay9hMTF5L2tleS1tYW5hZ2VyL2xpc3Qta2V5LW1hbmFnZXIudHNcclxuICAgICAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL3NyYy9jZGsvYTExeS9rZXktbWFuYWdlci9hY3RpdmVkZXNjZW5kYW50LWtleS1tYW5hZ2VyLnRzXHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiIHx8IGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRBY3RpdmVJdGVtKCk7XHJcbiAgICAgICAgdGhpcy5zaGlmdEFjdGl2ZUl0ZW0oZXZlbnQua2V5KTtcclxuICAgICAgICB0aGlzLmNoZWNrQWN0aXZlQm91bmRhcmllcygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBiZWZvcmUgb3VyIGtleXByZXNzIGJpbmRpbmcgZXZlbiB0cmlnZ2VycywgYW5ndWxhciBoYXMgYWxyZWFkeSBtb3ZlZCB0aGUgYWN0aXZlIHNlbGVjdGlvblxyXG4gIC8vIHVuc3luY2luZyBpdCB3aXRoIG91ciBkaXNwbGF5LiB0aGlzIGNvZGUgcmUtaW5pdGlhbGl6ZXMgdGhlIGFjdGl2ZSBvcHRpb25cclxuICBpbml0QWN0aXZlSXRlbSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3RpdmVWYWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgYWN0aXZlSW5kZXg6IG51bWJlciA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKTtcclxuXHJcbiAgICAgIC8vIHRoaXMgZG9lcyB0aGUgY29udmVyc2lvbiBmcm9tIGFuIGluZGV4IHdpdGhpbiBhbGwgb3B0aW9ucyBkb3duIHRvIGEgcG9zaXRpb24gd2l0aGluIHRoZVxyXG4gICAgICAvLyBkaXNwbGF5ZWQgcmFuZ2UsIHdoaWNoIGlzIGFsbCB0aGUga2V5bWFuYWdlciBpcyBhd2FyZSBvZlxyXG4gICAgICBsZXQgcG9zaXRpb24gPSBhY3RpdmVJbmRleCAtIHRoaXMudmlld3BvcnRSZW5kZXJSYW5nZS5zdGFydDtcclxuICAgICAgdGhpcy5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0ocG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hpZnRBY3RpdmVJdGVtKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXIuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xyXG4gICAgICB0aGlzLmtleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcclxuICAgICAgdGhpcy5hY3RpdmVWYWx1ZSA9IHRoaXMuZ2V0T3B0VmFsKCg8TWF0T3B0aW9uPnRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtKS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBjaGVjayBpZiB0aGUgYWN0aXZlIG9wdGlvbiBpbmRleCBpcyB3aXRoaW4gdGhlIGRpc3BsYXllZCB2aWV3cG9ydCB3aW5kb3dcclxuICAvLyBpZiBub3QsIHNjcm9sbCBpdCBpbnRvIHZpZXdcclxuICBjaGVja0FjdGl2ZUJvdW5kYXJpZXMoKTogdm9pZCB7XHJcbiAgICBsZXQgYWN0aXZlSW5kZXg6IG51bWJlciA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlSW5kZXggPCB0aGlzLnZpZXdwb3J0VmlzaWJsZVJhbmdlLnN0YXJ0KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQoYWN0aXZlSW5kZXggKiB0aGlzLm9wdGlvblNpemVQeCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoYWN0aXZlSW5kZXggPiB0aGlzLnZpZXdwb3J0VmlzaWJsZVJhbmdlLmVuZCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvT2Zmc2V0KChhY3RpdmVJbmRleCAtICh0aGlzLm51bU9wdGlvbnNUb1Nob3cgLSAxKSkgKiB0aGlzLm9wdGlvblNpemVQeCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlSW5kZXgoKSB7XHJcbiAgICBsZXQgYWN0aXZlSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuYWN0aXZlVmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFjdGl2ZVZhbHVlICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAvLyBpZiB3ZSBhZGRlZCBhIG5vbmUgb3B0aW9uIHRoZSByZXR1cm5lZCBpbmRleCB3b3VsZCBiZSBvZmYgYnkgb25lXHJcbiAgICAgIGxldCB2YWxJbmRleCA9IHRoaXMuZ2V0T3B0SW5kZXgodGhpcy5hY3RpdmVWYWx1ZSkgKyAodGhpcy5hbGxvd05vbmUgJiYgKHRoaXMuZm9yY2VTaG93Tm9uZSB8fCAhdGhpcy5pbm5lckNvbnRyb2wudmFsdWUpID8gMSA6IDApO1xyXG5cclxuICAgICAgLy8gdGhlIGluZGV4IHNob3VsZCBiZSB3aXRoaW4gdGhlIHJhbmdlIG9mIG91ciBlbnRpcmUgYnVmZmVyLCBvciBqdXN0IGFsbG93IGl0IHRvIHJlc2V0XHJcbiAgICAgIGlmICh2YWxJbmRleCA+PSB0aGlzLnZpZXdwb3J0UmVuZGVyUmFuZ2Uuc3RhcnRcclxuICAgICAgICAmJiAoIXRoaXMudmlld3BvcnRSZW5kZXJSYW5nZS5lbmQgfHwgdmFsSW5kZXggPD0gdGhpcy52aWV3cG9ydFJlbmRlclJhbmdlLmVuZClcclxuICAgICAgKSB7XHJcbiAgICAgICAgYWN0aXZlSW5kZXggPSB2YWxJbmRleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhY3RpdmVJbmRleDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzT3Blbikge1xyXG4gICAgICAvLyBIaWdobGlnaHRzIHRleHRcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0VGV4dE9uT3Blbikge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzT3V0KCkge1xyXG4gICAgLy8gbWFyayBjb250cm9sIHRvdWNoZWQgYW5kIHRyaWdnZXIgZXJyb3IgdmFsaWRhdGlvblxyXG4gICAgaWYgKCF0aGlzLmNsaWNrSW5Qcm9ncmVzcykge1xyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RPcHRpb24ob3B0OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBuZXdWYWwgPSB0aGlzLmdldE9wdFZhbChvcHQsIHRoaXMuZm9yY2VFbWl0T2JqZWN0KTtcclxuXHJcbiAgICBpZiAodGhpcy5ub05nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm91dGVyQ29udHJvbC5zZXRWYWx1ZShuZXdWYWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25DaGFuZ2VGbihuZXdWYWwpO1xyXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KG5ld1ZhbCk7XHJcbiAgICB0aGlzLm9wdGlvbkNoYW5nZWQuZW1pdChuZXdWYWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XHJcbiAgICAvLyBzY3JvbGwgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBvcHRpb24gd2hlbiB3ZSBvcGVuIHRoZSBkcm9wZG93blxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+IDApIHtcclxuICAgICAgbGV0IG9mZnNldEluZGV4OiBudW1iZXIgPSB0aGlzLnNlbGVjdGVkSW5kZXggKyAodGhpcy5hbGxvd05vbmUgPyAxIDogMCk7IC8vIGFkanVzdCBmb3IgTm9uZSBlbnRyeVxyXG4gICAgICBvZmZzZXRJbmRleCAtPSAodGhpcy5udW1PcHRpb25zVG9TaG93IC8gMikgLSAxOyAvLyBjYWxjdWxhdGUgbWlkZGxlIG9mIHZpZXdwb3J0XHJcbiAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQob2Zmc2V0SW5kZXggKiB0aGlzLm9wdGlvblNpemVQeCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRPcHRWYWwob3B0OiBhbnksIGZvcmNlT2JqZWN0OiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiAhZm9yY2VPYmplY3QpIHtcclxuICAgICAgaWYgKG9wdCAhPT0gbnVsbCAmJiBvcHQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0ID09PSBcIm9iamVjdFwiICYmIHRoaXMudmFsdWVGaWVsZCBpbiBvcHQpIHtcclxuICAgICAgICByZXR1cm4gb3B0W3RoaXMudmFsdWVGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdDtcclxuICB9XHJcblxyXG4gIGdldE9wdEluZGV4KG9wdFZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgLy8gZmluZCB0aGUgaW5kZXggZm9yIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgb3B0aW9uXHJcbiAgICBpZiAob3B0VmFsdWUgIT09IG51bGwgJiYgb3B0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2FkZWRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRWYWwob3B0aW9uKSA9PT0gb3B0VmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -184,8 +184,8 @@ export class CustomMultiComboBoxComponent {
|
|
|
184
184
|
this.innerControlSubscription.unsubscribe();
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
187
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomMultiComboBoxComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomMultiComboBoxComponent, selector: "hci-multi-combobox", inputs: { label: "label", placeholder: "placeholder", temporaryPlaceholder: "temporaryPlaceholder", tooltip: "tooltip", options: "options", valueField: "valueField", forceEmitObject: "forceEmitObject", displayField: "displayField", appearance: "appearance", initialFocus: "initialFocus", floatLabel: "floatLabel" }, outputs: { selectionChanged: "selectionChanged" }, providers: [{
|
|
189
189
|
provide: NG_VALUE_ACCESSOR,
|
|
190
190
|
useExisting: CustomMultiComboBoxComponent,
|
|
191
191
|
multi: true,
|
|
@@ -220,7 +220,7 @@ export class CustomMultiComboBoxComponent {
|
|
|
220
220
|
</div>
|
|
221
221
|
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
222
222
|
}
|
|
223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomMultiComboBoxComponent, decorators: [{
|
|
224
224
|
type: Component,
|
|
225
225
|
args: [{ selector: "hci-multi-combobox", template: `
|
|
226
226
|
<div class="combobox-multi-container d-flex font-sm">
|
|
@@ -287,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
287
287
|
}], selectionChanged: [{
|
|
288
288
|
type: Output
|
|
289
289
|
}] } });
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWxlY3QvY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUFFLFVBQVUsRUFDckIsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUNTLFNBQVMsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsSUFBSSxTQUFTLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBMkM3RSxNQUFNLE9BQU8sNEJBQTRCO0lBaUN2QyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUJ0QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUdyQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVsQyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBSWpDLGlCQUFZLEdBQW9CLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsaUJBQVksR0FBdUIsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFF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T0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDRyxhQUFhO3NCQUFuRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRXJCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtXLFVBQVU7c0JBQTFCLEtBQUs7Z0JBQ1csZUFBZTtzQkFBL0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQVNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LCBTaW1wbGVDaGFuZ2UsXHJcbiAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtNYXRMZWdhY3lTZWxlY3QgYXMgTWF0U2VsZWN0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNlbGVjdFwiO1xyXG5pbXBvcnQge0xlZ2FjeUZsb2F0TGFiZWxUeXBlIGFzIEZsb2F0TGFiZWxUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWZvcm0tZmllbGRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1tdWx0aS1jb21ib2JveFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tYm9ib3gtbXVsdGktY29udGFpbmVyIGQtZmxleCBmb250LXNtXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW21hdFRvb2x0aXBdPVwidGhpcy50b29sdGlwXCIgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbCAhPT0gdW5kZWZpbmVkXCI+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWwgPT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgdGVtcG9yYXJ5UGxhY2Vob2xkZXIgPyAob3V0ZXJDb250cm9sLnZhbHVlICYmIG91dGVyQ29udHJvbC52YWx1ZS5sZW5ndGggPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0ICNpbnB1dCBtYXRJbnB1dCBuYW1lPVwiY3VzdG9tTXVsdGlDb21ib0JveEZpbHRlclwiIGNsYXNzPVwiZWxsaXBzaXNcIlxyXG4gICAgICAgICAgICAgICAoZm9jdXMpPVwidGhpcy5vbklucHV0Rm9jdXMoKVwiXHJcbiAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChvdXRlckNvbnRyb2wudmFsdWUgJiYgb3V0ZXJDb250cm9sLnZhbHVlLmxlbmd0aCA/ICcnIDogcGxhY2Vob2xkZXIpIDogcGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGhpcy5pbm5lckNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiaW5pdGlhbEZvY3VzID09PSB1bmRlZmluZWQgPyBudWxsIDogaW5pdGlhbEZvY3VzXCI+XHJcbiAgICAgICAgPGRpdiBtYXRTdWZmaXggY2xhc3M9XCJoY2ktY29tYm9ib3gtYXJyb3ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgI3NlbGVjdCBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwidGhpcy5zZWxlY3RPcHRpb25zKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAob3BlbmVkQ2hhbmdlKT1cInRoaXMub25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRMaXN0SXRlbXNcIlxyXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUJ5SURcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdCBvZiB0aGlzLmxvYWRlZE9wdGlvbnNcIiBbdmFsdWVdPVwib3B0XCI+XHJcbiAgICAgICAgICAgICAge3t0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHR9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwidGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvblwiPkxvYWRpbmcuLi48L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIXRoaXMuaW5jbHVkZUxvYWRpbmdPcHRpb24gJiYgIXRoaXMub3B0aW9ucy5sZW5ndGhcIj5Ob25lPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBDdXN0b21NdWx0aUNvbWJvQm94Q29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfV0sXHJcbiAgc3R5bGVzOiBbYGBdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbU11bHRpQ29tYm9Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dFwiLCB7IHN0YXRpYzogZmFsc2V9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInNlbGVjdFwiLCB7IHN0YXRpYzogZmFsc2V9KSBzZWxlY3RFbGVtZW50OiBNYXRTZWxlY3Q7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcG9yYXJ5UGxhY2Vob2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGluY2x1ZGVMb2FkaW5nT3B0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbG9hZGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuICBwcml2YXRlIGlzU2VsZWN0T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwcml2YXRlIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwcml2YXRlIGZvcmNlRW1pdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgYXBwZWFyYW5jZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbEZvY3VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xyXG5cclxuICBwdWJsaWMgb3V0ZXJDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFtdKTtcclxuICBwdWJsaWMgaW5uZXJDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiXCIpO1xyXG4gIHByaXZhdGUgaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaW5uZXJDb250cm9sU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub05nQ29udHJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZExpc3RJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWw6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sICYmIG5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMub3V0ZXJDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2w7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZE9ubHlDdXJyZW50VmFsdWUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vTmdDb250cm9sID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlubmVyQ29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuaW5uZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMpIHtcclxuICAgICAgbGV0IG9wdGlvbnNDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMub3B0aW9ucztcclxuICAgICAgaWYgKCFvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0RWxlbWVudC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRPbmx5Q3VycmVudFZhbHVlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZWRPcHRpb25zID0gW107XHJcbiAgICBpZiAodGhpcy5vdXRlckNvbnRyb2wudmFsdWUgJiYgdGhpcy5vdXRlckNvbnRyb2wudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IG9wdCBvZiB0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5pc09wdEluT3V0ZXJWYWx1ZShvcHQpKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZE9wdGlvbnMucHVzaChvcHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZExpc3RJdGVtcyA9IHRoaXMubG9hZGVkT3B0aW9ucztcclxuXHJcblxyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZUxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgZm9yIChsZXQgb3B0IG9mIHRoaXMubG9hZGVkT3B0aW9ucykge1xyXG4gICAgICBpZiAoY3VycmVudFZhbHVlTGFiZWwpIHtcclxuICAgICAgICBjdXJyZW50VmFsdWVMYWJlbCArPSBcIiwgXCI7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudFZhbHVlTGFiZWwgKz0gdGhpcy5kaXNwbGF5RmllbGQgPyBvcHRbdGhpcy5kaXNwbGF5RmllbGRdIDogb3B0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKGN1cnJlbnRWYWx1ZUxhYmVsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyT3B0aW9ucyhzaG93QWxsOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChzaG93QWxsIHx8ICF0aGlzLmlubmVyQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgc2VhcmNoVmFsdWU6IHN0cmluZyA9IHRoaXMuaW5uZXJDb250cm9sLnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMubG9hZGVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdDogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IG9wdERpc3BsYXk6IHN0cmluZyA9ICh0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHQpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIG9wdERpc3BsYXkuaW5jbHVkZXMoc2VhcmNoVmFsdWUpIHx8IHRoaXMuaXNPcHRJbk91dGVyVmFsdWUob3B0KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzT3B0SW5PdXRlclZhbHVlKG9wdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgb3B0VmFsdWU6IGFueSA9IHRoaXMudmFsdWVGaWVsZCA/IG9wdFt0aGlzLnZhbHVlRmllbGRdIDogb3B0O1xyXG4gICAgaWYgKHRoaXMuZm9yY2VFbWl0T2JqZWN0KSB7XHJcbiAgICAgIGZvciAobGV0IG91dGVyVmFsT3B0IG9mIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IG91dGVyT3B0VmFsdWU6IGFueSA9IHRoaXMudmFsdWVGaWVsZCA/IG91dGVyVmFsT3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvdXRlclZhbE9wdDtcclxuICAgICAgICBpZiAob3B0VmFsdWUgPT09IG91dGVyT3B0VmFsdWUpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlLmluY2x1ZGVzKG9wdFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW5lZENoYW5nZShvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gb3BlbmVkO1xyXG4gICAgaWYgKG9wZW5lZCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XHJcblxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKFwiXCIpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKHRydWUpO1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUxvYWRpbmdPcHRpb24gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvbiA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE9wdGlvbnMob3B0aW9uczogYW55W10pOiB2b2lkIHtcclxuICAgIGxldCBuZXdWYWw6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGxldCBvcHQgb2Ygb3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0KSB7XHJcbiAgICAgICAgbmV3VmFsLnB1c2goKHRoaXMudmFsdWVGaWVsZCAmJiAhdGhpcy5mb3JjZUVtaXRPYmplY3QpID8gb3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvcHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub05nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm91dGVyQ29udHJvbC5zZXRWYWx1ZShuZXdWYWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25DaGFuZ2VGbihuZXdWYWwpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQobmV3VmFsKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdE9wZW4pIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcGFyZUJ5SUQoaXRlbU9uZSwgaXRlbVR3bykge1xyXG4gICAgaWYoIWl0ZW1PbmUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICghaXRlbVR3bykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZih0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICByZXR1cm4gaXRlbU9uZVt0aGlzLnZhbHVlRmllbGRdICYmIGl0ZW1Ud29bdGhpcy52YWx1ZUZpZWxkXSAmJiBpdGVtT25lW3RoaXMudmFsdWVGaWVsZF0gPT09IGl0ZW1Ud29bdGhpcy52YWx1ZUZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gIGl0ZW1PbmUgPT09IGl0ZW1Ud287XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pbm5lckNvbnRyb2xTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWxlY3QvY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUFFLFVBQVUsRUFDckIsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUNTLFNBQVMsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsSUFBSSxTQUFTLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBMkM3RSxNQUFNLE9BQU8sNEJBQTRCO0lBaUN2QyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUJ0QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUdyQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVsQyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBSWpDLGlCQUFZLEdBQW9CLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsaUJBQVksR0FBdUIsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFF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T0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDRyxhQUFhO3NCQUFuRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRXJCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtXLFVBQVU7c0JBQTFCLEtBQUs7Z0JBQ1csZUFBZTtzQkFBL0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQVNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LCBTaW1wbGVDaGFuZ2UsXHJcbiAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtNYXRMZWdhY3lTZWxlY3QgYXMgTWF0U2VsZWN0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNlbGVjdFwiO1xyXG5pbXBvcnQge0xlZ2FjeUZsb2F0TGFiZWxUeXBlIGFzIEZsb2F0TGFiZWxUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWZvcm0tZmllbGRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1tdWx0aS1jb21ib2JveFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tYm9ib3gtbXVsdGktY29udGFpbmVyIGQtZmxleCBmb250LXNtXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW21hdFRvb2x0aXBdPVwidGhpcy50b29sdGlwXCIgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbCAhPT0gdW5kZWZpbmVkXCI+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWwgPT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgdGVtcG9yYXJ5UGxhY2Vob2xkZXIgPyAob3V0ZXJDb250cm9sLnZhbHVlICYmIG91dGVyQ29udHJvbC52YWx1ZS5sZW5ndGggPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0ICNpbnB1dCBtYXRJbnB1dCBuYW1lPVwiY3VzdG9tTXVsdGlDb21ib0JveEZpbHRlclwiIGNsYXNzPVwiZWxsaXBzaXNcIlxyXG4gICAgICAgICAgICAgICAoZm9jdXMpPVwidGhpcy5vbklucHV0Rm9jdXMoKVwiXHJcbiAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChvdXRlckNvbnRyb2wudmFsdWUgJiYgb3V0ZXJDb250cm9sLnZhbHVlLmxlbmd0aCA/ICcnIDogcGxhY2Vob2xkZXIpIDogcGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGhpcy5pbm5lckNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiaW5pdGlhbEZvY3VzID09PSB1bmRlZmluZWQgPyBudWxsIDogaW5pdGlhbEZvY3VzXCI+XHJcbiAgICAgICAgPGRpdiBtYXRTdWZmaXggY2xhc3M9XCJoY2ktY29tYm9ib3gtYXJyb3ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgI3NlbGVjdCBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwidGhpcy5zZWxlY3RPcHRpb25zKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAob3BlbmVkQ2hhbmdlKT1cInRoaXMub25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRMaXN0SXRlbXNcIlxyXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUJ5SURcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdCBvZiB0aGlzLmxvYWRlZE9wdGlvbnNcIiBbdmFsdWVdPVwib3B0XCI+XHJcbiAgICAgICAgICAgICAge3t0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHR9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwidGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvblwiPkxvYWRpbmcuLi48L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIXRoaXMuaW5jbHVkZUxvYWRpbmdPcHRpb24gJiYgIXRoaXMub3B0aW9ucy5sZW5ndGhcIj5Ob25lPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBDdXN0b21NdWx0aUNvbWJvQm94Q29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfV0sXHJcbiAgc3R5bGVzOiBbYGBdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbU11bHRpQ29tYm9Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dFwiLCB7IHN0YXRpYzogZmFsc2V9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInNlbGVjdFwiLCB7IHN0YXRpYzogZmFsc2V9KSBzZWxlY3RFbGVtZW50OiBNYXRTZWxlY3Q7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcG9yYXJ5UGxhY2Vob2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGluY2x1ZGVMb2FkaW5nT3B0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbG9hZGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuICBwcml2YXRlIGlzU2VsZWN0T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwcml2YXRlIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwcml2YXRlIGZvcmNlRW1pdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgYXBwZWFyYW5jZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbEZvY3VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xyXG5cclxuICBwdWJsaWMgb3V0ZXJDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFtdKTtcclxuICBwdWJsaWMgaW5uZXJDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiXCIpO1xyXG4gIHByaXZhdGUgaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaW5uZXJDb250cm9sU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub05nQ29udHJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZExpc3RJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWw6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sICYmIG5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMub3V0ZXJDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2w7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZE9ubHlDdXJyZW50VmFsdWUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vTmdDb250cm9sID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlubmVyQ29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuaW5uZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMpIHtcclxuICAgICAgbGV0IG9wdGlvbnNDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMub3B0aW9ucztcclxuICAgICAgaWYgKCFvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0RWxlbWVudC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRPbmx5Q3VycmVudFZhbHVlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZWRPcHRpb25zID0gW107XHJcbiAgICBpZiAodGhpcy5vdXRlckNvbnRyb2wudmFsdWUgJiYgdGhpcy5vdXRlckNvbnRyb2wudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IG9wdCBvZiB0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5pc09wdEluT3V0ZXJWYWx1ZShvcHQpKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZE9wdGlvbnMucHVzaChvcHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZExpc3RJdGVtcyA9IHRoaXMubG9hZGVkT3B0aW9ucztcclxuXHJcblxyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZUxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgZm9yIChsZXQgb3B0IG9mIHRoaXMubG9hZGVkT3B0aW9ucykge1xyXG4gICAgICBpZiAoY3VycmVudFZhbHVlTGFiZWwpIHtcclxuICAgICAgICBjdXJyZW50VmFsdWVMYWJlbCArPSBcIiwgXCI7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudFZhbHVlTGFiZWwgKz0gdGhpcy5kaXNwbGF5RmllbGQgPyBvcHRbdGhpcy5kaXNwbGF5RmllbGRdIDogb3B0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKGN1cnJlbnRWYWx1ZUxhYmVsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyT3B0aW9ucyhzaG93QWxsOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChzaG93QWxsIHx8ICF0aGlzLmlubmVyQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgc2VhcmNoVmFsdWU6IHN0cmluZyA9IHRoaXMuaW5uZXJDb250cm9sLnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMubG9hZGVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdDogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IG9wdERpc3BsYXk6IHN0cmluZyA9ICh0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHQpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIG9wdERpc3BsYXkuaW5jbHVkZXMoc2VhcmNoVmFsdWUpIHx8IHRoaXMuaXNPcHRJbk91dGVyVmFsdWUob3B0KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzT3B0SW5PdXRlclZhbHVlKG9wdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgb3B0VmFsdWU6IGFueSA9IHRoaXMudmFsdWVGaWVsZCA/IG9wdFt0aGlzLnZhbHVlRmllbGRdIDogb3B0O1xyXG4gICAgaWYgKHRoaXMuZm9yY2VFbWl0T2JqZWN0KSB7XHJcbiAgICAgIGZvciAobGV0IG91dGVyVmFsT3B0IG9mIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IG91dGVyT3B0VmFsdWU6IGFueSA9IHRoaXMudmFsdWVGaWVsZCA/IG91dGVyVmFsT3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvdXRlclZhbE9wdDtcclxuICAgICAgICBpZiAob3B0VmFsdWUgPT09IG91dGVyT3B0VmFsdWUpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlLmluY2x1ZGVzKG9wdFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW5lZENoYW5nZShvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gb3BlbmVkO1xyXG4gICAgaWYgKG9wZW5lZCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XHJcblxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKFwiXCIpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKHRydWUpO1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUxvYWRpbmdPcHRpb24gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvbiA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE9wdGlvbnMob3B0aW9uczogYW55W10pOiB2b2lkIHtcclxuICAgIGxldCBuZXdWYWw6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGxldCBvcHQgb2Ygb3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0KSB7XHJcbiAgICAgICAgbmV3VmFsLnB1c2goKHRoaXMudmFsdWVGaWVsZCAmJiAhdGhpcy5mb3JjZUVtaXRPYmplY3QpID8gb3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvcHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub05nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm91dGVyQ29udHJvbC5zZXRWYWx1ZShuZXdWYWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25DaGFuZ2VGbihuZXdWYWwpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQobmV3VmFsKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdE9wZW4pIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcGFyZUJ5SUQoaXRlbU9uZSwgaXRlbVR3bykge1xyXG4gICAgaWYoIWl0ZW1PbmUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICghaXRlbVR3bykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZih0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICByZXR1cm4gaXRlbU9uZVt0aGlzLnZhbHVlRmllbGRdICYmIGl0ZW1Ud29bdGhpcy52YWx1ZUZpZWxkXSAmJiBpdGVtT25lW3RoaXMudmFsdWVGaWVsZF0gPT09IGl0ZW1Ud29bdGhpcy52YWx1ZUZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gIGl0ZW1PbmUgPT09IGl0ZW1Ud287XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pbm5lckNvbnRyb2xTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|