@netgrif/components-core 6.4.0 → 6.4.1-rc.1
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/esm2020/lib/data-fields/case-ref-field/model/abstract-case-ref-base-field-component.mjs +2 -2
- package/esm2020/lib/header/abstract-header.component.mjs +69 -4
- package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +6 -3
- package/esm2020/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.mjs +2 -2
- package/esm2020/lib/search/search-service/search.service.mjs +8 -1
- package/esm2020/lib/utility/navigation-item-task-filter-factory.mjs +3 -3
- package/esm2020/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +2 -2
- package/esm2020/lib/view/case-view/service/case-view-service.mjs +6 -2
- package/fesm2015/netgrif-components-core.mjs +90 -13
- package/fesm2015/netgrif-components-core.mjs.map +1 -1
- package/fesm2020/netgrif-components-core.mjs +85 -10
- package/fesm2020/netgrif-components-core.mjs.map +1 -1
- package/lib/header/abstract-header.component.d.ts +14 -2
- package/lib/navigation/utility/filter-extraction.service.d.ts +1 -1
- package/lib/search/search-service/search.service.d.ts +5 -0
- package/lib/utility/navigation-item-task-filter-factory.d.ts +2 -1
- package/lib/view/case-view/service/case-view-service.d.ts +2 -0
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ export class AbstractCaseListPaginatorComponent extends AbstractDefaultCaseListC
|
|
|
14
14
|
this.route = route;
|
|
15
15
|
this.pageSize = 20;
|
|
16
16
|
this.pageIndex = 0;
|
|
17
|
-
this.pageSizeOptions = [10, 20, 50];
|
|
17
|
+
this.pageSizeOptions = [10, 20, 50, 100];
|
|
18
18
|
this._caseViewService.nextPagePagination(this.pageSize, this.pageIndex);
|
|
19
19
|
this._caseViewService.paginationView = true;
|
|
20
20
|
this.cases$ = this._caseViewService.cases$.pipe(tap(() => {
|
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
50
50
|
}], disabled: [{
|
|
51
51
|
type: Input
|
|
52
52
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY2FzZS1saXN0LXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3ZpZXcvY2FzZS12aWV3L2NvbXBvbmVudHMvY2FzZS1saXN0LXBhZ2luYXRvci9hYnN0cmFjdC1jYXNlLWxpc3QtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUluQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFFaEcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkRBQTJELENBQUM7Ozs7O0FBTTNHLE1BQU0sT0FBZ0Isa0NBQW1DLFNBQVEsZ0NBQWdDO0lBUzdGLFlBQXNCLGdCQUFpQyxFQUNqQyxJQUFtQixFQUNLLGVBQWdDLEVBQ3hELEtBQXNCO1FBQ3hDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUVuQixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQVRyQyxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLG9CQUFlLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQVNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxhQUFhLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFVO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDOztnSUEvQmlCLGtDQUFrQyw4RUFXcEIsWUFBWTtvSEFYMUIsa0NBQWtDLHVKQUYxQyxFQUFFOzRGQUVNLGtDQUFrQztrQkFKdkQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBWWdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWTt5RUFMNUIsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDYXNlfSBmcm9tICcuLi8uLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2UnO1xuaW1wb3J0IHtDYXNlVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2FzZS12aWV3LXNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfVEFCX0RBVEF9IGZyb20gJy4uLy4uLy4uLy4uL3RhYnMvdGFiLWRhdGEtaW5qZWN0aW9uLXRva2VuL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge0luamVjdGVkVGFiRGF0YX0gZnJvbSAnLi4vLi4vLi4vLi4vdGFicy9pbnRlcmZhY2VzJztcbmltcG9ydCB7QWJzdHJhY3REZWZhdWx0Q2FzZUxpc3RDb21wb25lbnR9IGZyb20gJy4uL2RlZmF1bHQtY2FzZS1saXN0L2Fic3RyYWN0LWRlZmF1bHQtY2FzZS1saXN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWNhc2UtbGlzdC1wYWdpbmF0b3InLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdENhc2VMaXN0UGFnaW5hdG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REZWZhdWx0Q2FzZUxpc3RDb21wb25lbnQge1xuXG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBwYWdlU2l6ZSA9IDIwO1xuICAgIHB1YmxpYyBwYWdlSW5kZXggPSAwO1xuICAgIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyMCwgNTAsIDEwMF07XG4gICAgQElucHV0KCkgcHVibGljIGFwcHJvdmFsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY2FzZVZpZXdTZXJ2aWNlOiBDYXNlVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfVEFCX0RBVEEpIGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJEYXRhLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKF9jYXNlVmlld1NlcnZpY2UsIF9sb2csIGluamVjdGVkVGFiRGF0YSwgcm91dGUpO1xuICAgICAgICB0aGlzLl9jYXNlVmlld1NlcnZpY2UubmV4dFBhZ2VQYWdpbmF0aW9uKHRoaXMucGFnZVNpemUsIHRoaXMucGFnZUluZGV4KTtcbiAgICAgICAgdGhpcy5fY2FzZVZpZXdTZXJ2aWNlLnBhZ2luYXRpb25WaWV3ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jYXNlcyQgPSB0aGlzLl9jYXNlVmlld1NlcnZpY2UuY2FzZXMkLnBpcGUodGFwKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5fY2FzZVZpZXdTZXJ2aWNlLnBhZ2luYXRpb24udG90YWxFbGVtZW50cztcbiAgICAgICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY2FzZVZpZXdTZXJ2aWNlLnBhZ2luYXRpb24ubnVtYmVyO1xuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMub25SZWRpcmVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhZ2VDaGFuZ2VkKGUpIHtcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBlLnBhZ2VJbmRleDtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IGUucGFnZVNpemU7XG4gICAgICAgIHRoaXMuX2Nhc2VWaWV3U2VydmljZS5uZXh0UGFnZVBhZ2luYXRpb24odGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlSW5kZXgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFja0J5SWQoX2luZGV4OiBudW1iZXIsIGNhemU6IENhc2UpIHtcbiAgICAgICAgcmV0dXJuIGNhemUuc3RyaW5nSWQ7XG4gICAgfVxufVxuIl19
|
|
@@ -42,6 +42,7 @@ export class CaseViewService extends AbstractSortableViewComponent {
|
|
|
42
42
|
useCachedProcesses: true
|
|
43
43
|
};
|
|
44
44
|
this._paginationView = false;
|
|
45
|
+
this._cases = [];
|
|
45
46
|
this._newCaseConfiguration = { ...this.DEFAULT_NEW_CASE_CONFIGURATION };
|
|
46
47
|
if (newCaseConfig !== null) {
|
|
47
48
|
Object.assign(this._newCaseConfiguration, newCaseConfig);
|
|
@@ -80,7 +81,7 @@ export class CaseViewService extends AbstractSortableViewComponent {
|
|
|
80
81
|
}
|
|
81
82
|
return { ...acc, ...pageLoadResult.cases };
|
|
82
83
|
}, {}));
|
|
83
|
-
this._cases$ = casesMap.pipe(map(v => Object.values(v)));
|
|
84
|
+
this._cases$ = casesMap.pipe(map(v => Object.values(v)), tap(cases => this._cases = cases));
|
|
84
85
|
}
|
|
85
86
|
ngOnDestroy() {
|
|
86
87
|
super.ngOnDestroy();
|
|
@@ -96,6 +97,9 @@ export class CaseViewService extends AbstractSortableViewComponent {
|
|
|
96
97
|
get cases$() {
|
|
97
98
|
return this._cases$;
|
|
98
99
|
}
|
|
100
|
+
get cases() {
|
|
101
|
+
return this._cases;
|
|
102
|
+
}
|
|
99
103
|
get pagination() {
|
|
100
104
|
return this._pagination;
|
|
101
105
|
}
|
|
@@ -298,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
298
302
|
type: Inject,
|
|
299
303
|
args: [NAE_NEW_CASE_CONFIGURATION]
|
|
300
304
|
}] }, { type: i11.PermissionService }]; } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3ZpZXcvY2FzZS12aWV3L3NlcnZpY2UvY2FzZS12aWV3LXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFNaEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDMUUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFHaEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFHdEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBUTVGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBTzNFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFNUYsT0FBTyxF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RyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBaUM7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxLQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakYsQ0FBQzs7NkdBN1RRLGVBQWUsNlVBd0JRLDZCQUE2Qiw2QkFDN0IsMEJBQTBCO2lIQXpCakQsZUFBZTs0RkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkF5Qk0sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkI7OzBCQUNoRCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2FzZVJlc291cmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2VuZ2luZS1lbmRwb2ludC9jYXNlLXJlc291cmNlLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDYXNlfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NuYWNrLWJhci9zZXJ2aWNlcy9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlYXJjaC9zZWFyY2gtc2VydmljZS9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBjb25jYXRNYXAsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc2Nhbiwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGFnaW5hdGlvbn0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9wYWdpbmF0aW9uJztcbmltcG9ydCB7Q2FzZU1ldGFGaWVsZH0gZnJvbSAnLi4vLi4vLi4vaGVhZGVyL2Nhc2UtaGVhZGVyL2Nhc2UtbWVudGEtZW51bSc7XG5pbXBvcnQge1BhZ2VMb2FkUmVxdWVzdENvbnRleHR9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3BhZ2UtbG9hZC1yZXF1ZXN0LWNvbnRleHQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9tb2RlbHMvZmlsdGVyJztcbmltcG9ydCB7TGlzdFJhbmdlfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvbG9hZGluZy13aXRoLWZpbHRlci1lbWl0dGVyJztcbmltcG9ydCB7Q2FzZVBhZ2VMb2FkUmVxdWVzdFJlc3VsdH0gZnJvbSAnLi4vbW9kZWxzL2Nhc2UtcGFnZS1sb2FkLXJlcXVlc3QtcmVzdWx0JztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7YXJyYXlUb09ic2VydmFibGV9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvYXJyYXktdG8tb2JzZXJ2YWJsZSc7XG5pbXBvcnQge1Blcm1pc3Npb25UeXBlfSBmcm9tICcuLi8uLi8uLi9wcm9jZXNzL3Blcm1pc3Npb25zJztcbmltcG9ydCB7TkFFX05FV19DQVNFX0NPTkZJR1VSQVRJT059IGZyb20gJy4uL21vZGVscy9uZXctY2FzZS1jb25maWd1cmF0aW9uLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge05ld0Nhc2VDb25maWd1cmF0aW9ufSBmcm9tICcuLi9tb2RlbHMvbmV3LWNhc2UtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9wcm9jZXNzL3Byb2Nlc3Muc2VydmljZSc7XG5pbXBvcnQge1BldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zfSBmcm9tICcuLi8uLi8uLi9wcm9jZXNzL3BldHJpLW5ldC1yZWZlcmVuY2Utd2l0aC1wZXJtaXNzaW9ucyc7XG5pbXBvcnQge1xuICAgIFNlYXJjaEluZGV4UmVzb2x2ZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL3NlYXJjaC9zZWFyY2gta2V5d29yZC1yZXNvbHZlci1zZXJ2aWNlL3NlYXJjaC1pbmRleC1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7QWxsb3dlZE5ldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9hbGxvd2VkLW5ldHMvc2VydmljZXMvYWxsb3dlZC1uZXRzLnNlcnZpY2UnO1xuaW1wb3J0IHtBYnN0cmFjdFNvcnRhYmxlVmlld0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Qvc29ydGFibGUtdmlldyc7XG5pbXBvcnQge1xuICAgIE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhXG59IGZyb20gJy4uLy4uLy4uL3NpZGUtbWVudS9jb250ZW50LWNvbXBvbmVudHMvbmV3LWNhc2UvbW9kZWwvbmV3LWNhc2UtaW5qZWN0aW9uLWRhdGEnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYXV0aG9yaXphdGlvbi9wZXJtaXNzaW9uL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9tZXNzYWdlLXJlc291cmNlJztcbmltcG9ydCB7Q3JlYXRlQ2FzZUV2ZW50T3V0Y29tZX0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvY2FzZS1vdXRjb21lcy9jcmVhdGUtY2FzZS1ldmVudC1vdXRjb21lJztcbmltcG9ydCB7UGFnaW5hdGlvblBhcmFtc30gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2luYXRpb24tcGFyYW1zJztcbmltcG9ydCB7Y3JlYXRlU29ydFBhcmFtLCBQYWdpbmF0aW9uU29ydH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2luYXRpb24tc29ydCc7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7TkFFX05FV19DQVNFX0RJQUxPR19DT01QT05FTlR9IGZyb20gJy4uLy4uLy4uL2RpYWxvZy9pbmplY3Rpb24tdG9rZW5zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhc2VWaWV3U2VydmljZSBleHRlbmRzIEFic3RyYWN0U29ydGFibGVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHJlYWRvbmx5IERFRkFVTFRfTkVXX0NBU0VfQ09ORklHVVJBVElPTjogTmV3Q2FzZUNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIHVzZUNhY2hlZFByb2Nlc3NlczogdHJ1ZVxuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgX2xvYWRpbmckOiBMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXI7XG4gICAgcHJvdGVjdGVkIF9jYXNlcyQ6IE9ic2VydmFibGU8QXJyYXk8Q2FzZT4+O1xuICAgIHByb3RlY3RlZCBfbmV4dFBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8UGFnZUxvYWRSZXF1ZXN0Q29udGV4dD47XG4gICAgcHJvdGVjdGVkIF9lbmRPZkRhdGE6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9wYWdpbmF0aW9uOiBQYWdpbmF0aW9uO1xuICAgIHByb3RlY3RlZCBfbmV3Q2FzZUNvbmZpZ3VyYXRpb246IE5ld0Nhc2VDb25maWd1cmF0aW9uO1xuICAgIHByb3RlY3RlZCBfcGFnaW5hdGlvblZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfYWxsb3dlZE5ldHNTZXJ2aWNlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Nhc2VSZXNvdXJjZVNlcnZpY2U6IENhc2VSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Byb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICAgICAgICAgICAgICByZXNvbHZlcjogU2VhcmNoSW5kZXhSZXNvbHZlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfTkVXX0NBU0VfRElBTE9HX0NPTVBPTkVOVCkgcHJvdGVjdGVkIF9uZXdDYXNlQ29tcG9uZW50OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChOQUVfTkVXX0NBU0VfQ09ORklHVVJBVElPTikgbmV3Q2FzZUNvbmZpZzogTmV3Q2FzZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIocmVzb2x2ZXIpO1xuICAgICAgICB0aGlzLl9uZXdDYXNlQ29uZmlndXJhdGlvbiA9IHsuLi50aGlzLkRFRkFVTFRfTkVXX0NBU0VfQ09ORklHVVJBVElPTn07XG4gICAgICAgIGlmIChuZXdDYXNlQ29uZmlnICE9PSBudWxsKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX25ld0Nhc2VDb25maWd1cmF0aW9uLCBuZXdDYXNlQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2FkaW5nJCA9IG5ldyBMb2FkaW5nV2l0aEZpbHRlckVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZW5kT2ZEYXRhID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb24gPSB7XG4gICAgICAgICAgICBzaXplOiAyNSxcbiAgICAgICAgICAgIHRvdGFsRWxlbWVudHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG51bWJlcjogLTFcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fbmV4dFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdlTG9hZFJlcXVlc3RDb250ZXh0PihcbiAgICAgICAgICAgIG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9wYWdpbmF0aW9uLCB7bnVtYmVyOiAwfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgY2FzZXNNYXAgPSB0aGlzLl9uZXh0UGFnZSQucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKHAgPT4gdGhpcy5sb2FkUGFnZShwKSksXG4gICAgICAgICAgICBtYXAocGFnZUxvYWRSZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dCAmJiBwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5jbGVhckxvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzZXQgYW4gZW1wdHkgdmFsdWUgdG8gdGhlIHZpcnR1YWwgc2Nyb2xsIGFuZCB0aGVuIHJlcGxhY2UgaXQgYnkgdGhlIHJlYWwgdmFsdWUgZm9yY2luZyBpdCB0byByZWRyYXcgaXRzIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFt7Y2FzZXM6IHt9LCByZXF1ZXN0Q29udGV4dDogbnVsbH0sIHBhZ2VMb2FkUmVzdWx0XTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5VG9PYnNlcnZhYmxlKHJlc3VsdHMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihwYWdlTG9hZFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb25jYXRNYXAobyA9PiBvKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYywgcGFnZUxvYWRSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2VMb2FkUmVzdWx0LmNhc2VzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm9mZihwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3BhZ2luYXRpb24sIHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYWdpbmF0aW9uVmlldykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFnZUxvYWRSZXN1bHQuY2FzZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7Li4uYWNjLCAuLi5wYWdlTG9hZFJlc3VsdC5jYXNlc307XG4gICAgICAgICAgICB9LCB7fSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fY2FzZXMkID0gY2FzZXNNYXAucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IE9iamVjdC52YWx1ZXModikpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2xvYWRpbmckLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX25leHRQYWdlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmckLmlzQWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhc2VzJCgpOiBPYnNlcnZhYmxlPEFycmF5PENhc2U+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlcyQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYWdpbmF0aW9uKCk6IFBhZ2luYXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFjdGl2ZUZpbHRlcigpOiBGaWx0ZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBwYWdpbmF0aW9uVmlldyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uVmlldyA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkUGFnZShyZXF1ZXN0Q29udGV4dDogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IE9ic2VydmFibGU8Q2FzZVBhZ2VMb2FkUmVxdWVzdFJlc3VsdD4ge1xuICAgICAgICBpZiAocmVxdWVzdENvbnRleHQgPT09IG51bGwgfHwgcmVxdWVzdENvbnRleHQucGFnZU51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7Y2FzZXM6IHt9LCByZXF1ZXN0Q29udGV4dH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICBwYXJhbXMgPSB0aGlzLmFkZFNvcnRQYXJhbXMocGFyYW1zKTtcbiAgICAgICAgcGFyYW1zID0gdGhpcy5hZGRQYWdlUGFyYW1zKHBhcmFtcywgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbik7XG4gICAgICAgIHRoaXMuX2xvYWRpbmckLm9uKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nhc2VSZXNvdXJjZVNlcnZpY2Uuc2VhcmNoQ2FzZXMocmVxdWVzdENvbnRleHQuZmlsdGVyLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdMb2FkaW5nIGNhc2VzIGhhcyBmYWlsZWQhJywgZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5vZmYocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe2NvbnRlbnQ6IFtdLCBwYWdpbmF0aW9uOiB7Li4udGhpcy5fcGFnaW5hdGlvbn19KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByID0gcmVxdWVzdENvbnRleHQuZmlsdGVyID09PSB0aGlzLl9zZWFyY2hTZXJ2aWNlLmFjdGl2ZUZpbHRlcjtcbiAgICAgICAgICAgICAgICBpZiAoIXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnUmVjZWl2ZWQgY2FzZXMgcGFnZSBpcyBubyBsb25nZXIgcmVsZXZhbnQgc2luY2UgdGhlIGFjdGl2ZSBmaWx0ZXIgaGFzIGNoYW5nZWQgYmVmb3JlIGl0IGNvdWxkIGFycml2ZS4nXG4gICAgICAgICAgICAgICAgICAgICAgICArICcgRGlzY2FyZGluZy4uLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKGMgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVxdWVzdENvbnRleHQucGFnaW5hdGlvbiwgYy5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKGMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9ICFBcnJheS5pc0FycmF5KGMuY29udGVudClcbiAgICAgICAgICAgICAgICAgICAgfHwgYy5jb250ZW50Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICB8fCBjLnBhZ2luYXRpb24ubnVtYmVyID09PSBjLnBhZ2luYXRpb24udG90YWxQYWdlcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKGNhc2VzID0+IEFycmF5LmlzQXJyYXkoY2FzZXMuY29udGVudCkgPyBjYXNlcyA6IHsuLi5jYXNlcywgY29udGVudDogW119KSxcbiAgICAgICAgICAgIG1hcChjYXNlcyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhc2VzLmNvbnRlbnQucmVkdWNlKChhY2MsIGN1cikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gey4uLmFjYywgW2N1ci5zdHJpbmdJZF06IGN1cn07XG4gICAgICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoY2FzZXMgPT4gKHtjYXNlcywgcmVxdWVzdENvbnRleHR9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dFBhZ2UocmVuZGVyZWRSYW5nZTogTGlzdFJhbmdlLCB0b3RhbExvYWRlZDogbnVtYmVyLCByZXF1ZXN0Q29udGV4dD86IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQpIHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24pO1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5udW1iZXIgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0KSB8fCB0aGlzLl9lbmRPZkRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZW5kZXJlZFJhbmdlLmVuZCA9PT0gdG90YWxMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX25leHRQYWdlJC5uZXh0KHJlcXVlc3RDb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0UGFnZVBhZ2luYXRpb24obGVuZ3RoOiBudW1iZXIsIHBhZ2VJbmRleDogbnVtYmVyLCByZXF1ZXN0Q29udGV4dD86IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQpIHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0ID0gbmV3IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQodGhpcy5hY3RpdmVGaWx0ZXIsIHRoaXMuX3BhZ2luYXRpb24pO1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5zaXplID0gbGVuZ3RoO1xuICAgICAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5udW1iZXIgPSBwYWdlSW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmdSZWxldmFudEZpbHRlcihyZXF1ZXN0Q29udGV4dCkgfHwgdGhpcy5fZW5kT2ZEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbmV4dFBhZ2UkLm5leHQocmVxdWVzdENvbnRleHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMb2FkaW5nUmVsZXZhbnRGaWx0ZXIocmVxdWVzdENvbnRleHQ/OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiByZXF1ZXN0Q29udGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX2xvYWRpbmckLmlzQWN0aXZlV2l0aEZpbHRlcihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVOZXdDYXNlKG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb246IE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhID0ge1xuICAgICAgICBlbmFibGVDYXNlVGl0bGU6IHRydWUsXG4gICAgICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQ6IHRydWVcbiAgICB9KTogT2JzZXJ2YWJsZTxDYXNlPiB7XG4gICAgICAgIGNvbnN0IG15Q2FzZSA9IG5ldyBTdWJqZWN0PENhc2U+KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuKHRoaXMuX25ld0Nhc2VDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnNDAlJyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnMzAwcHgnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogXCJkaWFsb2ctcmVzcG9uc2l2ZVwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFsbG93ZWROZXRzJDogdGhpcy5nZXROZXdDYXNlQWxsb3dlZE5ldHMobmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbi5ibG9ja05ldHMpLFxuICAgICAgICAgICAgICAgIG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoJGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmICgkZXZlbnQ/LmRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJGV2ZW50Lm1lc3NhZ2UsICRldmVudC5kYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIG15Q2FzZS5uZXh0KCRldmVudC5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG15Q2FzZS5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG15Q2FzZS5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRGVmYXVsdE5ld0Nhc2UobmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbjogTmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbkRhdGEgPSB7XG4gICAgICAgIGVuYWJsZUNhc2VUaXRsZTogdHJ1ZSxcbiAgICAgICAgaXNDYXNlVGl0bGVSZXF1aXJlZDogdHJ1ZVxuICAgIH0pOiBPYnNlcnZhYmxlPENhc2U+IHtcbiAgICAgICAgY29uc3QgbXlDYXNlID0gbmV3IFN1YmplY3Q8Q2FzZT4oKTtcbiAgICAgICAgdGhpcy5nZXROZXdDYXNlQWxsb3dlZE5ldHMobmV3Q2FzZUNyZWF0aW9uQ29uZmlndXJhdGlvbi5ibG9ja05ldHMpLnN1YnNjcmliZSgobmV0czogQXJyYXk8UGV0cmlOZXRSZWZlcmVuY2VXaXRoUGVybWlzc2lvbnM+KSA9PiB7XG4gICAgICAgICAgICBpZiAoIW5ldHMgfHwgbmV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLm5vTmV0cycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0JhcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignTm8gbmV0cyBhdmFpbGFibGUgZm9yIGNhc2UgY3JlYXRpb24uIEVuc3VyZSB0aGUgYWxsb3dlZCBuZXRzIGNvbmZpZ3VyYXRpb24gaXMgY29ycmVjdC4nKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLmNyZWF0ZUNhc2Uoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncGFuZWwtcHJpbWFyeS1pY29uJyxcbiAgICAgICAgICAgICAgICBuZXRJZDogbmV0c1swXS5zdHJpbmdJZFxuICAgICAgICAgICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogRXZlbnRPdXRjb21lTWVzc2FnZVJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5TdWNjZXNzU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5jcmVhdGVDYXNlJylcbiAgICAgICAgICAgICAgICAgICAgKyAnICcgKyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmRlZmF1bHRDYXNlTmFtZScpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIG15Q2FzZS5uZXh0KChyZXNwb25zZS5vdXRjb21lIGFzIENyZWF0ZUNhc2VFdmVudE91dGNvbWUpLmFDYXNlKTtcbiAgICAgICAgICAgICAgICBteUNhc2UuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlID8gZXJyb3IubWVzc2FnZSA6IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlQ2FzZUVycm9yJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdFcnJvciBvY2N1cnJlZCBkdXJpbmcgY2FzZSBjcmVhdGlvbjogJyArIGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZSB8fCB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmVycm9yQ3JlYXRlJyk7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBhbGxvd2VkIG5ldHMuIEVycm9yOiAnICsgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0JhcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG15Q2FzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmV3Q2FzZUFsbG93ZWROZXRzKGJsb2NrTmV0czogc3RyaW5nW10gPSBbXSk6IE9ic2VydmFibGU8QXJyYXk8UGV0cmlOZXRSZWZlcmVuY2VXaXRoUGVybWlzc2lvbnM+PiB7XG4gICAgICAgIGlmICh0aGlzLl9uZXdDYXNlQ29uZmlndXJhdGlvbi51c2VDYWNoZWRQcm9jZXNzZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMkLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKG5ldCA9PiBuZXQuZmlsdGVyKG4gPT4gYmxvY2tOZXRzLmluZGV4T2Yobi5pZGVudGlmaWVyKSA9PT0gLTEpKSxcbiAgICAgICAgICAgICAgICBtYXAobmV0ID0+IG5ldC5maWx0ZXIobiA9PiB0aGlzLl9wZXJtaXNzaW9uU2VydmljZS5oYXNOZXRQZXJtaXNzaW9uKFBlcm1pc3Npb25UeXBlLkNSRUFURSwgbikpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMkLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGFsbG93ZWROZXRzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NTZXJ2aWNlLmdldE5ldFJlZmVyZW5jZXMoYWxsb3dlZE5ldHMubWFwKG5ldCA9PiBuZXQuaWRlbnRpZmllcikpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAobmV0ID0+IG5ldC5maWx0ZXIobiA9PiBibG9ja05ldHMuaW5kZXhPZihuLmlkZW50aWZpZXIpID09PSAtMSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKG5ldCA9PiBuZXQuZmlsdGVyKG4gPT4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzTmV0UGVybWlzc2lvbihQZXJtaXNzaW9uVHlwZS5DUkVBVEUsIG4pKSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgbnVtYmVyIG9mIGFsbG93ZWQgbmV0cyBvZiBjYXNlIHZpZXdcbiAgICAgKiBAcmV0dXJucyBsZW5ndGggb2YgYWxsb3dlZE5ldHMgYXJyYXkgaWYgaXQgaXMgZGVmaW5lZCwgMCBpZiBpdCBpcyB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsb3dlZE5ldHNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzID09PSB1bmRlZmluZWQgPyAwIDogdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWRkUGFnZVBhcmFtcyhwYXJhbXM6IEh0dHBQYXJhbXMsIHBhZ2luYXRpb246IFBhZ2luYXRpb24pOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfU0laRSwgYCR7cGFnaW5hdGlvbi5zaXplfWApO1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9OVU1CRVIsIGAke3BhZ2luYXRpb24ubnVtYmVyfWApO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0U29ydFBhcmFtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTb3J0UGFyYW0oJ3N0cmluZ0lkJywgUGFnaW5hdGlvblNvcnQuREVTQ0VORElORyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldE1ldGFGaWVsZFNvcnRJZCgpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2xhc3RIZWFkZXJTZWFyY2hTdGF0ZS5maWVsZElkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FzZU1ldGFGaWVsZC5USVRMRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RpdGxlLmtleXdvcmQnO1xuICAgICAgICAgICAgY2FzZSBDYXNlTWV0YUZpZWxkLlZJU1VBTF9JRDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Zpc3VhbElkLmtleXdvcmQnO1xuICAgICAgICAgICAgY2FzZSBDYXNlTWV0YUZpZWxkLkNSRUFUSU9OX0RBVEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjcmVhdGlvbkRhdGVTb3J0YWJsZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sYXN0SGVhZGVyU2VhcmNoU3RhdGUuZmllbGRJZGVudGlmaWVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYXNlcyQgfHwgIXRoaXMuX3BhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uLCB0cnVlKTtcbiAgICAgICAgcmVxdWVzdENvbnRleHQucGFnaW5hdGlvbi5udW1iZXIgPSAwO1xuICAgICAgICBjb25zdCByYW5nZSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiAtMSxcbiAgICAgICAgICAgIGVuZDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubmV4dFBhZ2UocmFuZ2UsIDAsIHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQXV0aG9yaXR5KGF1dGhvcml0eTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlci5oYXNBdXRob3JpdHkoYXV0aG9yaXR5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgdXNlciBoYXMgdGhlIFtWSUVXXXtAbGluayBQZXJtaXNzaW9uVHlwZSNWSUVXfSBwZXJtaXNzaW9uIG9uIHRoZSBjdXJyZW50IGNhc2VcbiAgICAgKiBAcGFyYW0gYUNhc2UgdGhlIHRlc3RlZCBjYXNlXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHRoZSBgVklFV2AgcGVybWlzc2lvbiBvbiB0aGUgdGVzdGVkIGNhc2UsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyB2aWV3RW5hYmxlZChhQ2FzZTogQ2FzZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzQ2FzZVBlcm1pc3Npb24oYUNhc2UsIFBlcm1pc3Npb25UeXBlLlZJRVcpO1xuICAgIH1cbn1cbiJdfQ==
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aWV3LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3ZpZXcvY2FzZS12aWV3L3NlcnZpY2UvY2FzZS12aWV3LXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFNaEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDMUUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFHaEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFHdEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBUTVGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBTzNFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFNUYsT0FBTyxF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Q0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0YsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHO1lBQ1YsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNULEdBQUcsRUFBRSxDQUFDO1NBQ1QsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQWlDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsS0FBVztRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OzZHQXBVUSxlQUFlLDZVQXlCUSw2QkFBNkIsNkJBQzdCLDBCQUEwQjtpSEExQmpELGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBMEJNLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCOzswQkFDaEQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Nhc2VSZXNvdXJjZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9lbmdpbmUtZW5kcG9pbnQvY2FzZS1yZXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Q2FzZX0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9jYXNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLXNlcnZpY2Uvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgY29uY2F0TWFwLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHNjYW4sIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhZ2luYXRpb259IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvcGFnaW5hdGlvbic7XG5pbXBvcnQge0Nhc2VNZXRhRmllbGR9IGZyb20gJy4uLy4uLy4uL2hlYWRlci9jYXNlLWhlYWRlci9jYXNlLW1lbnRhLWVudW0nO1xuaW1wb3J0IHtQYWdlTG9hZFJlcXVlc3RDb250ZXh0fSBmcm9tICcuLi8uLi9hYnN0cmFjdC9wYWdlLWxvYWQtcmVxdWVzdC1jb250ZXh0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvbW9kZWxzL2ZpbHRlcic7XG5pbXBvcnQge0xpc3RSYW5nZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7TG9hZGluZ1dpdGhGaWx0ZXJFbWl0dGVyfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2xvYWRpbmctd2l0aC1maWx0ZXItZW1pdHRlcic7XG5pbXBvcnQge0Nhc2VQYWdlTG9hZFJlcXVlc3RSZXN1bHR9IGZyb20gJy4uL21vZGVscy9jYXNlLXBhZ2UtbG9hZC1yZXF1ZXN0LXJlc3VsdCc7XG5pbXBvcnQge1VzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQge2FycmF5VG9PYnNlcnZhYmxlfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2FycmF5LXRvLW9ic2VydmFibGUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uVHlwZX0gZnJvbSAnLi4vLi4vLi4vcHJvY2Vzcy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQge05BRV9ORVdfQ0FTRV9DT05GSUdVUkFUSU9OfSBmcm9tICcuLi9tb2RlbHMvbmV3LWNhc2UtY29uZmlndXJhdGlvbi1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtOZXdDYXNlQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vbW9kZWxzL25ldy1jYXNlLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vcHJvY2Vzcy9wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHtQZXRyaU5ldFJlZmVyZW5jZVdpdGhQZXJtaXNzaW9uc30gZnJvbSAnLi4vLi4vLi4vcHJvY2Vzcy9wZXRyaS1uZXQtcmVmZXJlbmNlLXdpdGgtcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtcbiAgICBTZWFyY2hJbmRleFJlc29sdmVyU2VydmljZVxufSBmcm9tICcuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLWtleXdvcmQtcmVzb2x2ZXItc2VydmljZS9zZWFyY2gtaW5kZXgtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQge0FsbG93ZWROZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vYWxsb3dlZC1uZXRzL3NlcnZpY2VzL2FsbG93ZWQtbmV0cy5zZXJ2aWNlJztcbmltcG9ydCB7QWJzdHJhY3RTb3J0YWJsZVZpZXdDb21wb25lbnR9IGZyb20gJy4uLy4uL2Fic3RyYWN0L3NvcnRhYmxlLXZpZXcnO1xuaW1wb3J0IHtcbiAgICBOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YVxufSBmcm9tICcuLi8uLi8uLi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL25ldy1jYXNlL21vZGVsL25ldy1jYXNlLWluamVjdGlvbi1kYXRhJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2F1dGhvcml6YXRpb24vcGVybWlzc2lvbi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2V9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZSc7XG5pbXBvcnQge0NyZWF0ZUNhc2VFdmVudE91dGNvbWV9IGZyb20gJy4uLy4uLy4uL2V2ZW50L21vZGVsL2V2ZW50LW91dGNvbWVzL2Nhc2Utb3V0Y29tZXMvY3JlYXRlLWNhc2UtZXZlbnQtb3V0Y29tZSc7XG5pbXBvcnQge1BhZ2luYXRpb25QYXJhbXN9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLXBhcmFtcyc7XG5pbXBvcnQge2NyZWF0ZVNvcnRQYXJhbSwgUGFnaW5hdGlvblNvcnR9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLXNvcnQnO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge05BRV9ORVdfQ0FTRV9ESUFMT0dfQ09NUE9ORU5UfSBmcm9tICcuLi8uLi8uLi9kaWFsb2cvaW5qZWN0aW9uLXRva2Vucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlVmlld1NlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFNvcnRhYmxlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICByZWFkb25seSBERUZBVUxUX05FV19DQVNFX0NPTkZJR1VSQVRJT046IE5ld0Nhc2VDb25maWd1cmF0aW9uID0ge1xuICAgICAgICB1c2VDYWNoZWRQcm9jZXNzZXM6IHRydWVcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIF9sb2FkaW5nJDogTG9hZGluZ1dpdGhGaWx0ZXJFbWl0dGVyO1xuICAgIHByb3RlY3RlZCBfY2FzZXMkOiBPYnNlcnZhYmxlPEFycmF5PENhc2U+PjtcbiAgICBwcm90ZWN0ZWQgX2Nhc2VzOiBBcnJheTxDYXNlPjtcbiAgICBwcm90ZWN0ZWQgX25leHRQYWdlJDogQmVoYXZpb3JTdWJqZWN0PFBhZ2VMb2FkUmVxdWVzdENvbnRleHQ+O1xuICAgIHByb3RlY3RlZCBfZW5kT2ZEYXRhOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbjtcbiAgICBwcm90ZWN0ZWQgX25ld0Nhc2VDb25maWd1cmF0aW9uOiBOZXdDYXNlQ29uZmlndXJhdGlvbjtcbiAgICBwcm90ZWN0ZWQgX3BhZ2luYXRpb25WaWV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2FsbG93ZWROZXRzU2VydmljZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYXNlUmVzb3VyY2VTZXJ2aWNlOiBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdXNlcjogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcmVzb2x2ZXI6IFNlYXJjaEluZGV4UmVzb2x2ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX05FV19DQVNFX0RJQUxPR19DT01QT05FTlQpIHByb3RlY3RlZCBfbmV3Q2FzZUNvbXBvbmVudDogYW55LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX05FV19DQVNFX0NPTkZJR1VSQVRJT04pIG5ld0Nhc2VDb25maWc6IE5ld0Nhc2VDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKHJlc29sdmVyKTtcbiAgICAgICAgdGhpcy5fY2FzZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fbmV3Q2FzZUNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5ERUZBVUxUX05FV19DQVNFX0NPTkZJR1VSQVRJT059O1xuICAgICAgICBpZiAobmV3Q2FzZUNvbmZpZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9uZXdDYXNlQ29uZmlndXJhdGlvbiwgbmV3Q2FzZUNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9hZGluZyQgPSBuZXcgTG9hZGluZ1dpdGhGaWx0ZXJFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2UuYWN0aXZlRmlsdGVyJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2VuZE9mRGF0YSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uID0ge1xuICAgICAgICAgICAgc2l6ZTogMjUsXG4gICAgICAgICAgICB0b3RhbEVsZW1lbnRzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0b3RhbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBudW1iZXI6IC0xXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX25leHRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFnZUxvYWRSZXF1ZXN0Q29udGV4dD4oXG4gICAgICAgICAgICBuZXcgUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCh0aGlzLmFjdGl2ZUZpbHRlciwgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcGFnaW5hdGlvbiwge251bWJlcjogMH0pKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGNhc2VzTWFwID0gdGhpcy5fbmV4dFBhZ2UkLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcChwID0+IHRoaXMubG9hZFBhZ2UocCkpLFxuICAgICAgICAgICAgbWFwKHBhZ2VMb2FkUmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQgJiYgcGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQuY2xlYXJMb2FkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2Ugc2V0IGFuIGVtcHR5IHZhbHVlIHRvIHRoZSB2aXJ0dWFsIHNjcm9sbCBhbmQgdGhlbiByZXBsYWNlIGl0IGJ5IHRoZSByZWFsIHZhbHVlIGZvcmNpbmcgaXQgdG8gcmVkcmF3IGl0cyBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBbe2Nhc2VzOiB7fSwgcmVxdWVzdENvbnRleHQ6IG51bGx9LCBwYWdlTG9hZFJlc3VsdF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheVRvT2JzZXJ2YWJsZShyZXN1bHRzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YocGFnZUxvYWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29uY2F0TWFwKG8gPT4gbyksXG4gICAgICAgICAgICBzY2FuKChhY2MsIHBhZ2VMb2FkUmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VMb2FkUmVzdWx0LnJlcXVlc3RDb250ZXh0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlTG9hZFJlc3VsdC5jYXNlcztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5vZmYocGFnZUxvYWRSZXN1bHQucmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9wYWdpbmF0aW9uLCBwYWdlTG9hZFJlc3VsdC5yZXF1ZXN0Q29udGV4dC5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGFnaW5hdGlvblZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhZ2VMb2FkUmVzdWx0LmNhc2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gey4uLmFjYywgLi4ucGFnZUxvYWRSZXN1bHQuY2FzZXN9O1xuICAgICAgICAgICAgfSwge30pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2Nhc2VzJCA9IGNhc2VzTWFwLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiBPYmplY3QudmFsdWVzKHYpIGFzIEFycmF5PENhc2U+KSxcbiAgICAgICAgICAgIHRhcChjYXNlcyA9PiB0aGlzLl9jYXNlcyA9IGNhc2VzIGFzIEFycmF5PENhc2U+KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fbG9hZGluZyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fbmV4dFBhZ2UkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQuaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2FkaW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2FzZXMkKCk6IE9ic2VydmFibGU8QXJyYXk8Q2FzZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nhc2VzJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhc2VzKCk6IEFycmF5PENhc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nhc2VzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBhY3RpdmVGaWx0ZXIoKTogRmlsdGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFNlcnZpY2UuYWN0aXZlRmlsdGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGFnaW5hdGlvblZpZXcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvblZpZXcgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZFBhZ2UocmVxdWVzdENvbnRleHQ6IFBhZ2VMb2FkUmVxdWVzdENvbnRleHQpOiBPYnNlcnZhYmxlPENhc2VQYWdlTG9hZFJlcXVlc3RSZXN1bHQ+IHtcbiAgICAgICAgaWYgKHJlcXVlc3RDb250ZXh0ID09PSBudWxsIHx8IHJlcXVlc3RDb250ZXh0LnBhZ2VOdW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe2Nhc2VzOiB7fSwgcmVxdWVzdENvbnRleHR9KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgcGFyYW1zID0gdGhpcy5hZGRTb3J0UGFyYW1zKHBhcmFtcyk7XG4gICAgICAgIHBhcmFtcyA9IHRoaXMuYWRkUGFnZVBhcmFtcyhwYXJhbXMsIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24pO1xuICAgICAgICB0aGlzLl9sb2FkaW5nJC5vbihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlUmVzb3VyY2VTZXJ2aWNlLnNlYXJjaENhc2VzKHJlcXVlc3RDb250ZXh0LmZpbHRlciwgcGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignTG9hZGluZyBjYXNlcyBoYXMgZmFpbGVkIScsIGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQub2ZmKHJlcXVlc3RDb250ZXh0LmZpbHRlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHtjb250ZW50OiBbXSwgcGFnaW5hdGlvbjogey4uLnRoaXMuX3BhZ2luYXRpb259fSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgciA9IHJlcXVlc3RDb250ZXh0LmZpbHRlciA9PT0gdGhpcy5fc2VhcmNoU2VydmljZS5hY3RpdmVGaWx0ZXI7XG4gICAgICAgICAgICAgICAgaWYgKCFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm9mZihyZXF1ZXN0Q29udGV4dC5maWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ1JlY2VpdmVkIGNhc2VzIHBhZ2UgaXMgbm8gbG9uZ2VyIHJlbGV2YW50IHNpbmNlIHRoZSBhY3RpdmUgZmlsdGVyIGhhcyBjaGFuZ2VkIGJlZm9yZSBpdCBjb3VsZCBhcnJpdmUuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKyAnIERpc2NhcmRpbmcuLi4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcChjID0+IHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24sIGMucGFnaW5hdGlvbik7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcChjID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmRPZkRhdGEgPSAhQXJyYXkuaXNBcnJheShjLmNvbnRlbnQpXG4gICAgICAgICAgICAgICAgICAgIHx8IGMuY29udGVudC5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgfHwgYy5wYWdpbmF0aW9uLm51bWJlciA9PT0gYy5wYWdpbmF0aW9uLnRvdGFsUGFnZXM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcChjYXNlcyA9PiBBcnJheS5pc0FycmF5KGNhc2VzLmNvbnRlbnQpID8gY2FzZXMgOiB7Li4uY2FzZXMsIGNvbnRlbnQ6IFtdfSksXG4gICAgICAgICAgICBtYXAoY2FzZXMgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYXNlcy5jb250ZW50LnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5hY2MsIFtjdXIuc3RyaW5nSWRdOiBjdXJ9O1xuICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKGNhc2VzID0+ICh7Y2FzZXMsIHJlcXVlc3RDb250ZXh0fSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRQYWdlKHJlbmRlcmVkUmFuZ2U6IExpc3RSYW5nZSwgdG90YWxMb2FkZWQ6IG51bWJlciwgcmVxdWVzdENvbnRleHQ/OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KSB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24ubnVtYmVyICs9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmdSZWxldmFudEZpbHRlcihyZXF1ZXN0Q29udGV4dCkgfHwgdGhpcy5fZW5kT2ZEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVuZGVyZWRSYW5nZS5lbmQgPT09IHRvdGFsTG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9uZXh0UGFnZSQubmV4dChyZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dFBhZ2VQYWdpbmF0aW9uKGxlbmd0aDogbnVtYmVyLCBwYWdlSW5kZXg6IG51bWJlciwgcmVxdWVzdENvbnRleHQ/OiBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KSB7XG4gICAgICAgIGlmIChyZXF1ZXN0Q29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXF1ZXN0Q29udGV4dCA9IG5ldyBQYWdlTG9hZFJlcXVlc3RDb250ZXh0KHRoaXMuYWN0aXZlRmlsdGVyLCB0aGlzLl9wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24uc2l6ZSA9IGxlbmd0aDtcbiAgICAgICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24ubnVtYmVyID0gcGFnZUluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nUmVsZXZhbnRGaWx0ZXIocmVxdWVzdENvbnRleHQpIHx8IHRoaXMuX2VuZE9mRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX25leHRQYWdlJC5uZXh0KHJlcXVlc3RDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTG9hZGluZ1JlbGV2YW50RmlsdGVyKHJlcXVlc3RDb250ZXh0PzogUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9sb2FkaW5nJC5pc0FjdGl2ZVdpdGhGaWx0ZXIocmVxdWVzdENvbnRleHQuZmlsdGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlTmV3Q2FzZShuZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uOiBOZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uRGF0YSA9IHtcbiAgICAgICAgZW5hYmxlQ2FzZVRpdGxlOiB0cnVlLFxuICAgICAgICBpc0Nhc2VUaXRsZVJlcXVpcmVkOiB0cnVlXG4gICAgfSk6IE9ic2VydmFibGU8Q2FzZT4ge1xuICAgICAgICBjb25zdCBteUNhc2UgPSBuZXcgU3ViamVjdDxDYXNlPigpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3Blbih0aGlzLl9uZXdDYXNlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogJzQwJScsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMwMHB4JyxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFwiZGlhbG9nLXJlc3BvbnNpdmVcIixcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhbGxvd2VkTmV0cyQ6IHRoaXMuZ2V0TmV3Q2FzZUFsbG93ZWROZXRzKG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb24uYmxvY2tOZXRzKSxcbiAgICAgICAgICAgICAgICBuZXdDYXNlQ3JlYXRpb25Db25maWd1cmF0aW9uXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCRldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoJGV2ZW50Py5kYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKCRldmVudC5tZXNzYWdlLCAkZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICBteUNhc2UubmV4dCgkZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBteUNhc2UuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBteUNhc2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURlZmF1bHROZXdDYXNlKG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb246IE5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb25EYXRhID0ge1xuICAgICAgICBlbmFibGVDYXNlVGl0bGU6IHRydWUsXG4gICAgICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQ6IHRydWVcbiAgICB9KTogT2JzZXJ2YWJsZTxDYXNlPiB7XG4gICAgICAgIGNvbnN0IG15Q2FzZSA9IG5ldyBTdWJqZWN0PENhc2U+KCk7XG4gICAgICAgIHRoaXMuZ2V0TmV3Q2FzZUFsbG93ZWROZXRzKG5ld0Nhc2VDcmVhdGlvbkNvbmZpZ3VyYXRpb24uYmxvY2tOZXRzKS5zdWJzY3JpYmUoKG5ldHM6IEFycmF5PFBldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zPikgPT4ge1xuICAgICAgICAgICAgaWYgKCFuZXRzIHx8IG5ldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5ub05ldHMnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ05vIG5ldHMgYXZhaWxhYmxlIGZvciBjYXNlIGNyZWF0aW9uLiBFbnN1cmUgdGhlIGFsbG93ZWQgbmV0cyBjb25maWd1cmF0aW9uIGlzIGNvcnJlY3QuJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5jcmVhdGVDYXNlKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogbnVsbCxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3BhbmVsLXByaW1hcnktaWNvbicsXG4gICAgICAgICAgICAgICAgbmV0SWQ6IG5ldHNbMF0uc3RyaW5nSWRcbiAgICAgICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuU3VjY2Vzc1NuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdzaWRlLW1lbnUubmV3LWNhc2UuY3JlYXRlQ2FzZScpXG4gICAgICAgICAgICAgICAgICAgICsgJyAnICsgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5kZWZhdWx0Q2FzZU5hbWUnKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICBteUNhc2UubmV4dCgocmVzcG9uc2Uub3V0Y29tZSBhcyBDcmVhdGVDYXNlRXZlbnRPdXRjb21lKS5hQ2FzZSk7XG4gICAgICAgICAgICAgICAgbXlDYXNlLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZSA/IGVycm9yLm1lc3NhZ2UgOiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnc2lkZS1tZW51Lm5ldy1jYXNlLmNyZWF0ZUNhc2VFcnJvcicpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0JhcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignRXJyb3Igb2NjdXJyZWQgZHVyaW5nIGNhc2UgY3JlYXRpb246ICcgKyBlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3NpZGUtbWVudS5uZXctY2FzZS5lcnJvckNyZWF0ZScpO1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWxsb3dlZCBuZXRzLiBFcnJvcjogJyArIGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBteUNhc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5ld0Nhc2VBbGxvd2VkTmV0cyhibG9ja05ldHM6IHN0cmluZ1tdID0gW10pOiBPYnNlcnZhYmxlPEFycmF5PFBldHJpTmV0UmVmZXJlbmNlV2l0aFBlcm1pc3Npb25zPj4ge1xuICAgICAgICBpZiAodGhpcy5fbmV3Q2FzZUNvbmZpZ3VyYXRpb24udXNlQ2FjaGVkUHJvY2Vzc2VzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChuZXQgPT4gbmV0LmZpbHRlcihuID0+IGJsb2NrTmV0cy5pbmRleE9mKG4uaWRlbnRpZmllcikgPT09IC0xKSksXG4gICAgICAgICAgICAgICAgbWFwKG5ldCA9PiBuZXQuZmlsdGVyKG4gPT4gdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaGFzTmV0UGVybWlzc2lvbihQZXJtaXNzaW9uVHlwZS5DUkVBVEUsIG4pKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChhbGxvd2VkTmV0cyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzU2VydmljZS5nZXROZXRSZWZlcmVuY2VzKGFsbG93ZWROZXRzLm1hcChuZXQgPT4gbmV0LmlkZW50aWZpZXIpKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKG5ldCA9PiBuZXQuZmlsdGVyKG4gPT4gYmxvY2tOZXRzLmluZGV4T2Yobi5pZGVudGlmaWVyKSA9PT0gLTEpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChuZXQgPT4gbmV0LmZpbHRlcihuID0+IHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmhhc05ldFBlcm1pc3Npb24oUGVybWlzc2lvblR5cGUuQ1JFQVRFLCBuKSkpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG51bWJlciBvZiBhbGxvd2VkIG5ldHMgb2YgY2FzZSB2aWV3XG4gICAgICogQHJldHVybnMgbGVuZ3RoIG9mIGFsbG93ZWROZXRzIGFycmF5IGlmIGl0IGlzIGRlZmluZWQsIDAgaWYgaXQgaXMgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIGdldEFsbG93ZWROZXRzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsbG93ZWROZXRzU2VydmljZS5hbGxvd2VkTmV0cyA9PT0gdW5kZWZpbmVkID8gMCA6IHRoaXMuX2FsbG93ZWROZXRzU2VydmljZS5hbGxvd2VkTmV0cy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFkZFBhZ2VQYXJhbXMocGFyYW1zOiBIdHRwUGFyYW1zLCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uKTogSHR0cFBhcmFtcyB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX1NJWkUsIGAke3BhZ2luYXRpb24uc2l6ZX1gKTtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChQYWdpbmF0aW9uUGFyYW1zLlBBR0VfTlVNQkVSLCBgJHtwYWdpbmF0aW9uLm51bWJlcn1gKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFNvcnRQYXJhbSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY3JlYXRlU29ydFBhcmFtKCdzdHJpbmdJZCcsIFBhZ2luYXRpb25Tb3J0LkRFU0NFTkRJTkcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRNZXRhRmllbGRTb3J0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9sYXN0SGVhZGVyU2VhcmNoU3RhdGUuZmllbGRJZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBjYXNlIENhc2VNZXRhRmllbGQuVElUTEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0aXRsZS5rZXl3b3JkJztcbiAgICAgICAgICAgIGNhc2UgQ2FzZU1ldGFGaWVsZC5WSVNVQUxfSUQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2aXN1YWxJZC5rZXl3b3JkJztcbiAgICAgICAgICAgIGNhc2UgQ2FzZU1ldGFGaWVsZC5DUkVBVElPTl9EQVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiAnY3JlYXRpb25EYXRlU29ydGFibGUnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbGFzdEhlYWRlclNlYXJjaFN0YXRlLmZpZWxkSWRlbnRpZmllcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWxvYWQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY2FzZXMkIHx8ICF0aGlzLl9wYWdpbmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9lbmRPZkRhdGEgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgcmVxdWVzdENvbnRleHQgPSBuZXcgUGFnZUxvYWRSZXF1ZXN0Q29udGV4dCh0aGlzLmFjdGl2ZUZpbHRlciwgdGhpcy5fcGFnaW5hdGlvbiwgdHJ1ZSk7XG4gICAgICAgIHJlcXVlc3RDb250ZXh0LnBhZ2luYXRpb24ubnVtYmVyID0gMDtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSB7XG4gICAgICAgICAgICBzdGFydDogLTEsXG4gICAgICAgICAgICBlbmQ6IDBcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLm5leHRQYWdlKHJhbmdlLCAwLCByZXF1ZXN0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0F1dGhvcml0eShhdXRob3JpdHk6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXIuaGFzQXV0aG9yaXR5KGF1dGhvcml0eSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaGFzIHRoZSBbVklFV117QGxpbmsgUGVybWlzc2lvblR5cGUjVklFV30gcGVybWlzc2lvbiBvbiB0aGUgY3VycmVudCBjYXNlXG4gICAgICogQHBhcmFtIGFDYXNlIHRoZSB0ZXN0ZWQgY2FzZVxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyB0aGUgYFZJRVdgIHBlcm1pc3Npb24gb24gdGhlIHRlc3RlZCBjYXNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmlld0VuYWJsZWQoYUNhc2U6IENhc2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmhhc0Nhc2VQZXJtaXNzaW9uKGFDYXNlLCBQZXJtaXNzaW9uVHlwZS5WSUVXKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -6161,7 +6161,7 @@ let AbstractCaseRefBaseFieldComponent = class AbstractCaseRefBaseFieldComponent
|
|
|
6161
6161
|
this.caseViewType = caseViewType;
|
|
6162
6162
|
}
|
|
6163
6163
|
createFilter(filterValue) {
|
|
6164
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
6164
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
6165
6165
|
let portalInjector;
|
|
6166
6166
|
const filterProperty = ((_c = (_b = (_a = this.dataField) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.properties) === null || _c === void 0 ? void 0 : _c.filter) === 'true';
|
|
6167
6167
|
let query;
|
|
@@ -6170,13 +6170,13 @@ let AbstractCaseRefBaseFieldComponent = class AbstractCaseRefBaseFieldComponent
|
|
|
6170
6170
|
}
|
|
6171
6171
|
let providers = [
|
|
6172
6172
|
{
|
|
6173
|
-
provide: NAE_DEFAULT_HEADERS, useValue: (_h = (_g = this.dataField.component) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h.headers.split(',')
|
|
6173
|
+
provide: NAE_DEFAULT_HEADERS, useValue: (_j = (_h = (_g = this.dataField.component) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h.headers) === null || _j === void 0 ? void 0 : _j.split(',')
|
|
6174
6174
|
},
|
|
6175
6175
|
{
|
|
6176
|
-
provide: NAE_CASE_REF_CREATE_CASE, useValue: ((
|
|
6176
|
+
provide: NAE_CASE_REF_CREATE_CASE, useValue: ((_l = (_k = this.dataField.component) === null || _k === void 0 ? void 0 : _k.properties) === null || _l === void 0 ? void 0 : _l.createCase) === 'true'
|
|
6177
6177
|
},
|
|
6178
6178
|
{
|
|
6179
|
-
provide: NAE_CASE_REF_SEARCH, useValue: ((
|
|
6179
|
+
provide: NAE_CASE_REF_SEARCH, useValue: ((_o = (_m = this.dataField.component) === null || _m === void 0 ? void 0 : _m.properties) === null || _o === void 0 ? void 0 : _o.search) === 'true'
|
|
6180
6180
|
},
|
|
6181
6181
|
{
|
|
6182
6182
|
provide: NAE_BASE_FILTER,
|
|
@@ -14453,6 +14453,13 @@ class SearchService {
|
|
|
14453
14453
|
this._activeFilter.next(this._baseFilter.clone());
|
|
14454
14454
|
}
|
|
14455
14455
|
}
|
|
14456
|
+
/**
|
|
14457
|
+
* Loads whole new filter and search cases/tasks based on this filter
|
|
14458
|
+
* @param newFilter whole new filter that should be used for search
|
|
14459
|
+
*/
|
|
14460
|
+
updateWithFullFilter(newFilter) {
|
|
14461
|
+
this._activeFilter.next(newFilter);
|
|
14462
|
+
}
|
|
14456
14463
|
/**
|
|
14457
14464
|
* @returns `undefined` if the predicate tree contains no complete query.
|
|
14458
14465
|
* Otherwise returns the serialized form of the completed queries in the predicate tree.
|
|
@@ -18866,6 +18873,7 @@ class CaseViewService extends AbstractSortableViewComponent {
|
|
|
18866
18873
|
useCachedProcesses: true
|
|
18867
18874
|
};
|
|
18868
18875
|
this._paginationView = false;
|
|
18876
|
+
this._cases = [];
|
|
18869
18877
|
this._newCaseConfiguration = Object.assign({}, this.DEFAULT_NEW_CASE_CONFIGURATION);
|
|
18870
18878
|
if (newCaseConfig !== null) {
|
|
18871
18879
|
Object.assign(this._newCaseConfiguration, newCaseConfig);
|
|
@@ -18904,7 +18912,7 @@ class CaseViewService extends AbstractSortableViewComponent {
|
|
|
18904
18912
|
}
|
|
18905
18913
|
return Object.assign(Object.assign({}, acc), pageLoadResult.cases);
|
|
18906
18914
|
}, {}));
|
|
18907
|
-
this._cases$ = casesMap.pipe(map(v => Object.values(v)));
|
|
18915
|
+
this._cases$ = casesMap.pipe(map(v => Object.values(v)), tap(cases => this._cases = cases));
|
|
18908
18916
|
}
|
|
18909
18917
|
ngOnDestroy() {
|
|
18910
18918
|
super.ngOnDestroy();
|
|
@@ -18920,6 +18928,9 @@ class CaseViewService extends AbstractSortableViewComponent {
|
|
|
18920
18928
|
get cases$() {
|
|
18921
18929
|
return this._cases$;
|
|
18922
18930
|
}
|
|
18931
|
+
get cases() {
|
|
18932
|
+
return this._cases;
|
|
18933
|
+
}
|
|
18923
18934
|
get pagination() {
|
|
18924
18935
|
return this._pagination;
|
|
18925
18936
|
}
|
|
@@ -21232,7 +21243,7 @@ class AbstractTaskListPaginationComponent extends AbstractDefaultTaskListCompone
|
|
|
21232
21243
|
this.route = route;
|
|
21233
21244
|
this.pageSize = 20;
|
|
21234
21245
|
this.pageIndex = 0;
|
|
21235
|
-
this.pageSizeOptions = [10, 20, 50];
|
|
21246
|
+
this.pageSizeOptions = [10, 20, 50, 100];
|
|
21236
21247
|
}
|
|
21237
21248
|
set tasks$(tasks) {
|
|
21238
21249
|
this._tasks$ = tasks.pipe((tap(() => {
|
|
@@ -26100,10 +26111,12 @@ function stopPropagation($event) {
|
|
|
26100
26111
|
}
|
|
26101
26112
|
|
|
26102
26113
|
class AbstractHeaderComponent {
|
|
26103
|
-
constructor(_injector, _translate, _overflowService) {
|
|
26114
|
+
constructor(_injector, _translate, _overflowService, _caseViewService, _dataFieldPortalData) {
|
|
26104
26115
|
this._injector = _injector;
|
|
26105
26116
|
this._translate = _translate;
|
|
26106
26117
|
this._overflowService = _overflowService;
|
|
26118
|
+
this._caseViewService = _caseViewService;
|
|
26119
|
+
this._dataFieldPortalData = _dataFieldPortalData;
|
|
26107
26120
|
this.DEFAULT_COLUMN_COUNT = 6;
|
|
26108
26121
|
this.DEFAULT_COLUMN_WIDTH = 220;
|
|
26109
26122
|
this.INPUT_DEBOUNCE_TIME = 600;
|
|
@@ -26118,6 +26131,7 @@ class AbstractHeaderComponent {
|
|
|
26118
26131
|
this._initHeaderCount = undefined;
|
|
26119
26132
|
this._initResponsiveHeaders = undefined;
|
|
26120
26133
|
this.initializeFormControls(this._overflowService !== null);
|
|
26134
|
+
this._changeValue = true;
|
|
26121
26135
|
}
|
|
26122
26136
|
set maxHeaderColumns(count) {
|
|
26123
26137
|
if (this.headerService) {
|
|
@@ -26156,6 +26170,7 @@ class AbstractHeaderComponent {
|
|
|
26156
26170
|
this.headerService.responsiveHeaders = this._initResponsiveHeaders;
|
|
26157
26171
|
}
|
|
26158
26172
|
this.headerService.preferenceColumnCount$.subscribe(value => this.columnCountControl.setValue(value));
|
|
26173
|
+
this.resolveApprovalDatafields();
|
|
26159
26174
|
}
|
|
26160
26175
|
ngOnDestroy() {
|
|
26161
26176
|
if (this.canOverflow) {
|
|
@@ -26163,6 +26178,9 @@ class AbstractHeaderComponent {
|
|
|
26163
26178
|
this.subColumnCountControl.unsubscribe();
|
|
26164
26179
|
this.subOverflowControl.unsubscribe();
|
|
26165
26180
|
}
|
|
26181
|
+
if (this._subCases) {
|
|
26182
|
+
this._subCases.unsubscribe();
|
|
26183
|
+
}
|
|
26166
26184
|
}
|
|
26167
26185
|
/**
|
|
26168
26186
|
* Injects the correct {@link AbstractHeaderService} instance based on this component's type
|
|
@@ -26253,8 +26271,57 @@ class AbstractHeaderComponent {
|
|
|
26253
26271
|
}
|
|
26254
26272
|
});
|
|
26255
26273
|
}
|
|
26274
|
+
indeterminate() {
|
|
26275
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
26276
|
+
if (this._caseViewService) {
|
|
26277
|
+
return ((_c = (_b = (_a = this._dataFieldPortalData) === null || _a === void 0 ? void 0 : _a.dataField) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.length) > 0 &&
|
|
26278
|
+
this._caseViewService.cases.some(value => { var _a; return (_a = this._dataFieldPortalData) === null || _a === void 0 ? void 0 : _a.dataField.value.includes(value.stringId); }) &&
|
|
26279
|
+
!this.resolveApprovalValue();
|
|
26280
|
+
}
|
|
26281
|
+
return ((_f = (_e = (_d = this._dataFieldPortalData) === null || _d === void 0 ? void 0 : _d.dataField) === null || _e === void 0 ? void 0 : _e.value) === null || _f === void 0 ? void 0 : _f.length) > 0 &&
|
|
26282
|
+
((_j = (_h = (_g = this._dataFieldPortalData) === null || _g === void 0 ? void 0 : _g.dataField) === null || _h === void 0 ? void 0 : _h.value) === null || _j === void 0 ? void 0 : _j.length) < ((_m = (_l = (_k = this._dataFieldPortalData) === null || _k === void 0 ? void 0 : _k.dataField) === null || _l === void 0 ? void 0 : _l.choices) === null || _m === void 0 ? void 0 : _m.length);
|
|
26283
|
+
}
|
|
26284
|
+
typeApproval() {
|
|
26285
|
+
var _a;
|
|
26286
|
+
return ((_a = this._dataFieldPortalData) === null || _a === void 0 ? void 0 : _a.dataField) instanceof MultichoiceField ? 'multichoice' : 'enumeration';
|
|
26287
|
+
}
|
|
26288
|
+
resolveApprovalDatafields() {
|
|
26289
|
+
if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof MultichoiceField && this._caseViewService) {
|
|
26290
|
+
this.approvalFormControl.setValue(this.resolveApprovalValue());
|
|
26291
|
+
this.approvalFormControl.valueChanges.subscribe(value => {
|
|
26292
|
+
if (this._changeValue) {
|
|
26293
|
+
if (value) {
|
|
26294
|
+
this._dataFieldPortalData.dataField.value = this._caseViewService.cases.map(caze => caze.stringId);
|
|
26295
|
+
}
|
|
26296
|
+
else {
|
|
26297
|
+
this._dataFieldPortalData.dataField.value = [];
|
|
26298
|
+
}
|
|
26299
|
+
}
|
|
26300
|
+
this._changeValue = true;
|
|
26301
|
+
});
|
|
26302
|
+
this._dataFieldPortalData.dataField.valueChanges().subscribe(() => {
|
|
26303
|
+
this._changeValue = false;
|
|
26304
|
+
this.approvalFormControl.setValue(this.resolveApprovalValue());
|
|
26305
|
+
});
|
|
26306
|
+
this._subCases = this._caseViewService.cases$.subscribe(() => {
|
|
26307
|
+
this._changeValue = false;
|
|
26308
|
+
this.approvalFormControl.setValue(this.resolveApprovalValue());
|
|
26309
|
+
});
|
|
26310
|
+
}
|
|
26311
|
+
if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof EnumerationField) {
|
|
26312
|
+
this.approvalFormControl.valueChanges.subscribe(value => {
|
|
26313
|
+
this._dataFieldPortalData.dataField.value = null;
|
|
26314
|
+
});
|
|
26315
|
+
}
|
|
26316
|
+
}
|
|
26317
|
+
resolveApprovalValue() {
|
|
26318
|
+
if (this._caseViewService.cases.length === 0) {
|
|
26319
|
+
return false;
|
|
26320
|
+
}
|
|
26321
|
+
return this._caseViewService.cases.every(value => { var _a; return (_a = this._dataFieldPortalData) === null || _a === void 0 ? void 0 : _a.dataField.value.includes(value.stringId); });
|
|
26322
|
+
}
|
|
26256
26323
|
}
|
|
26257
|
-
AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1$2.TranslateService }, { token: OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
26324
|
+
AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1$2.TranslateService }, { token: OverflowService, optional: true }, { token: CaseViewService, optional: true }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
26258
26325
|
AbstractHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractHeaderComponent, selector: "ncc-abstract-header", inputs: { type: "type", hideHeaderMenu: "hideHeaderMenu", showEditButton: "showEditButton", showSortButton: "showSortButton", showSearchButton: "showSearchButton", showTableSection: "showTableSection", approval: "approval", maxHeaderColumns: "maxHeaderColumns", responsiveHeaders: "responsiveHeaders" }, ngImport: i0, template: '', isInline: true });
|
|
26259
26326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, decorators: [{
|
|
26260
26327
|
type: Component,
|
|
@@ -26265,6 +26332,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
26265
26332
|
}], ctorParameters: function () {
|
|
26266
26333
|
return [{ type: i0.Injector }, { type: i1$2.TranslateService }, { type: OverflowService, decorators: [{
|
|
26267
26334
|
type: Optional
|
|
26335
|
+
}] }, { type: CaseViewService, decorators: [{
|
|
26336
|
+
type: Optional
|
|
26337
|
+
}] }, { type: undefined, decorators: [{
|
|
26338
|
+
type: Optional
|
|
26339
|
+
}, {
|
|
26340
|
+
type: Inject,
|
|
26341
|
+
args: [DATA_FIELD_PORTAL_DATA]
|
|
26268
26342
|
}] }];
|
|
26269
26343
|
}, propDecorators: { type: [{
|
|
26270
26344
|
type: Input
|
|
@@ -29372,7 +29446,7 @@ class FilterExtractionService {
|
|
|
29372
29446
|
}
|
|
29373
29447
|
return this.extractCompleteFilterFromData(dataSection.slice(taskRefIndex.dataGroupIndex + 1));
|
|
29374
29448
|
}
|
|
29375
|
-
extractCompleteFilterFromData(dataSection, fieldId = UserFilterConstants.FILTER_FIELD_ID) {
|
|
29449
|
+
extractCompleteFilterFromData(dataSection, filterData, fieldId = UserFilterConstants.FILTER_FIELD_ID) {
|
|
29376
29450
|
const filterIndex = getFieldIndexFromDataGroups(dataSection, fieldId);
|
|
29377
29451
|
if (filterIndex === undefined) {
|
|
29378
29452
|
return undefined;
|
|
@@ -29384,7 +29458,10 @@ class FilterExtractionService {
|
|
|
29384
29458
|
catch (e) {
|
|
29385
29459
|
throw new Error('Filter segment could not be extracted from filter field');
|
|
29386
29460
|
}
|
|
29387
|
-
|
|
29461
|
+
if (!!filterData) {
|
|
29462
|
+
filterSegment = filterSegment.merge(filterData, MergeOperator.AND);
|
|
29463
|
+
}
|
|
29464
|
+
const parentFilter = this.extractCompleteFilterFromData(dataSection.slice(filterIndex.dataGroupIndex + 1), filterData);
|
|
29388
29465
|
if (parentFilter !== undefined && parentFilter.type === filterSegment.type) {
|
|
29389
29466
|
return filterSegment.merge(parentFilter, MergeOperator.AND);
|
|
29390
29467
|
}
|
|
@@ -31075,7 +31152,7 @@ class AbstractCaseListPaginatorComponent extends AbstractDefaultCaseListComponen
|
|
|
31075
31152
|
this.route = route;
|
|
31076
31153
|
this.pageSize = 20;
|
|
31077
31154
|
this.pageIndex = 0;
|
|
31078
|
-
this.pageSizeOptions = [10, 20, 50];
|
|
31155
|
+
this.pageSizeOptions = [10, 20, 50, 100];
|
|
31079
31156
|
this._caseViewService.nextPagePagination(this.pageSize, this.pageIndex);
|
|
31080
31157
|
this._caseViewService.paginationView = true;
|
|
31081
31158
|
this.cases$ = this._caseViewService.cases$.pipe(tap(() => {
|
|
@@ -33431,9 +33508,9 @@ function mapToContent(source, filter, pagination) {
|
|
|
33431
33508
|
* @param extractionService
|
|
33432
33509
|
* @param navigationItemTaskData a navigation item task containing the aggregated data representing a navigation item
|
|
33433
33510
|
*/
|
|
33434
|
-
function navigationItemTaskFilterFactory(extractionService, navigationItemTaskData) {
|
|
33511
|
+
function navigationItemTaskFilterFactory(extractionService, navigationItemTaskData, filterData) {
|
|
33435
33512
|
return {
|
|
33436
|
-
filter: extractionService.extractCompleteFilterFromData(navigationItemTaskData)
|
|
33513
|
+
filter: extractionService.extractCompleteFilterFromData(navigationItemTaskData, filterData)
|
|
33437
33514
|
};
|
|
33438
33515
|
}
|
|
33439
33516
|
|