@fundamental-ngx/platform 0.43.41 → 0.43.42
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/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
- package/esm2020/form/form-generator/form-generator/form-generator.component.mjs +1 -1
- package/esm2020/list/free-content-list-item/free-content-list-item.component.mjs +8 -6
- package/esm2020/list/list.component.mjs +1 -1
- package/esm2020/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +1 -1
- package/esm2020/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
- package/esm2020/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +3 -3
- package/esm2020/table/components/table-row/table-row.component.mjs +1 -1
- package/esm2020/table/table.component.mjs +9 -5
- package/esm2020/table-helpers/directives/table-cell-resizable.directive.mjs +30 -24
- package/esm2020/table-helpers/services/table-column-resize.service.mjs +3 -4
- package/esm2020/table-helpers/table.mjs +1 -1
- package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
- package/esm2020/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +1 -1
- package/esm2020/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-form.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-list.mjs +7 -5
- package/fesm2015/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +30 -24
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table.mjs +11 -7
- package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-form.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-list.mjs +7 -5
- package/fesm2020/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +30 -24
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table.mjs +11 -7
- package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.43.42.tgz +0 -0
- package/list/free-content-list-item/free-content-list-item.component.d.ts +3 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/table/table.component.d.ts +3 -1
- package/table-helpers/table.d.ts +1 -0
- package/fundamental-ngx-platform-v0.43.41.tgz +0 -0
|
@@ -4,7 +4,7 @@ import { TableCellDirective } from '@fundamental-ngx/core/table';
|
|
|
4
4
|
import equal from 'fast-deep-equal';
|
|
5
5
|
import { TableColumnResizeService } from '../services/table-column-resize.service';
|
|
6
6
|
import { fromEvent } from 'rxjs';
|
|
7
|
-
import { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { debounceTime, distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export const TABLE_CELL_RESIZABLE_THRESHOLD_PX = 4;
|
|
10
10
|
/**
|
|
@@ -38,7 +38,7 @@ export class PlatformTableCellResizableDirective extends TableCellDirective {
|
|
|
38
38
|
ngOnInit() {
|
|
39
39
|
this._zone.runOutsideAngular(() => {
|
|
40
40
|
fromEvent(this.elementRef.nativeElement, 'mousemove')
|
|
41
|
-
.pipe(filter(() => this._tableColumnResizeService?.resizeInProgress !== true), map((event) => this._getResizer(event) || { resizerPosition: 0, resizedColumn: this.columnName }), distinctUntilChanged((prev, curr) => equal(prev, curr)), takeUntil(this._destroy$))
|
|
41
|
+
.pipe(filter(() => this._tableColumnResizeService?.resizeInProgress !== true), debounceTime(5), map((event) => this._getResizer(event) || { resizerPosition: 0, resizedColumn: this.columnName }), distinctUntilChanged((prev, curr) => equal(prev, curr)), takeUntil(this._destroy$))
|
|
42
42
|
.subscribe((data) => {
|
|
43
43
|
this._tableColumnResizeService.setInitialResizerPosition(data.resizerPosition, data.resizedColumn);
|
|
44
44
|
});
|
|
@@ -64,30 +64,36 @@ export class PlatformTableCellResizableDirective extends TableCellDirective {
|
|
|
64
64
|
_getResizer(event) {
|
|
65
65
|
const el = this.elementRef.nativeElement;
|
|
66
66
|
const elPosition = el.getBoundingClientRect();
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
// check if mouse is within 5px of cell border
|
|
68
|
+
if (event.clientX > elPosition.x + elPosition.width - 5 || event.clientX < elPosition.x + 5) {
|
|
69
|
+
let resizerPosition;
|
|
70
|
+
let resizedColumn;
|
|
71
|
+
const pointerOnLeft = this._isRtl
|
|
72
|
+
? elPosition.right - event.clientX < TABLE_CELL_RESIZABLE_THRESHOLD_PX
|
|
73
|
+
: event.clientX - elPosition.left < TABLE_CELL_RESIZABLE_THRESHOLD_PX;
|
|
74
|
+
if (pointerOnLeft && this._resizableSide !== 'end') {
|
|
75
|
+
resizerPosition = this._isRtl
|
|
76
|
+
? el.parentElement.offsetWidth - (el.offsetLeft + el.offsetWidth)
|
|
77
|
+
: el.offsetLeft;
|
|
78
|
+
resizedColumn = this._tableColumnResizeService.getPreviousColumnName(this.columnName);
|
|
79
|
+
}
|
|
80
|
+
const pointerOnRight = this._isRtl
|
|
81
|
+
? event.clientX - elPosition.left < TABLE_CELL_RESIZABLE_THRESHOLD_PX
|
|
82
|
+
: elPosition.right - event.clientX < TABLE_CELL_RESIZABLE_THRESHOLD_PX;
|
|
83
|
+
if (pointerOnRight && this._resizableSide !== 'start') {
|
|
84
|
+
resizerPosition = this._isRtl
|
|
85
|
+
? el.parentElement.offsetWidth - el.offsetLeft
|
|
86
|
+
: el.offsetLeft + el.offsetWidth;
|
|
87
|
+
resizedColumn = this.columnName;
|
|
88
|
+
}
|
|
89
|
+
if (!resizedColumn) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return { resizerPosition: resizerPosition, resizedColumn };
|
|
77
93
|
}
|
|
78
|
-
|
|
79
|
-
? event.clientX - elPosition.left < TABLE_CELL_RESIZABLE_THRESHOLD_PX
|
|
80
|
-
: elPosition.right - event.clientX < TABLE_CELL_RESIZABLE_THRESHOLD_PX;
|
|
81
|
-
if (pointerOnRight && this._resizableSide !== 'start') {
|
|
82
|
-
resizerPosition = this._isRtl
|
|
83
|
-
? el.parentElement.offsetWidth - el.offsetLeft
|
|
84
|
-
: el.offsetLeft + el.offsetWidth;
|
|
85
|
-
resizedColumn = this.columnName;
|
|
86
|
-
}
|
|
87
|
-
if (!resizedColumn) {
|
|
94
|
+
else {
|
|
88
95
|
return null;
|
|
89
96
|
}
|
|
90
|
-
return { resizerPosition: resizerPosition, resizedColumn };
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
99
|
PlatformTableCellResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PlatformTableCellResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -131,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
131
137
|
}], columnName: [{
|
|
132
138
|
type: Input
|
|
133
139
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1yZXNpemFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvZGlyZWN0aXZlcy90YWJsZS1jZWxsLXJlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSTlFLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsQ0FBQztBQUVuRDs7R0FFRztBQW1CSCxNQUFNLE9BQU8sbUNBQ1QsU0FBUSxrQkFBa0I7SUFHMUIsa0RBQWtEO0lBQ2xELElBQ0ksYUFBYSxDQUFDLEtBQStCO1FBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBU0QsY0FBYztJQUNkLElBQVksTUFBTTtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFVRCxj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QUUsa0JBQWtCO1lBQzNCLFdBQVcsRUFBRSxtQ0FBbUM7U0FDbkQ7S0FDSjsyRkFFUSxtQ0FBbUM7a0JBbEIvQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyxxQ0FBcUM7eUJBQ25EO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcscUNBQXFDO3lCQUNuRDt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLHFDQUFxQzt5QkFDbkQ7cUJBQ0o7aUJBQ0o7MEVBT08sYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBVzlCLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSwgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFRhYmxlQ2VsbERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90YWJsZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RhYmxlLWNvbHVtbi1yZXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblJlc2l6YWJsZVNpZGUgPSAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCc7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9DRUxMX1JFU0laQUJMRV9USFJFU0hPTERfUFggPSA0O1xuXG4vKipcbiAqIFRyYWNrcyBtb3VzZSBtb3ZlbWVudCBvdmVyIHRoZSBjZWxsIGlmIHRoZSBtb3VzZSBwb2ludGVyIG5lYXIgdGhlIHNpZGUgb2YgdGhlIGNlbGwsIGluZm9ybXMgcmVzaXplIHNlcnZpY2UuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFRhYmxlQ2VsbFJlc2l6YWJsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBQbGF0Zm9ybVRhYmxlQ2VsbFJlc2l6YWJsZURpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUYWJsZUNlbGxEaXJlY3RpdmUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmVcbiAgICBleHRlbmRzIFRhYmxlQ2VsbERpcmVjdGl2ZVxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKiogRmlyc3QgY29sdW1uIGNhbiBiZSByZXNpemVkIG9ubHkgYnkgaXRzIGVuZCAqL1xuICAgIEBJbnB1dCgnZmRwVGFibGVDZWxsUmVzaXphYmxlJylcbiAgICBzZXQgcmVzaXphYmxlU2lkZSh2YWx1ZTogVGFibGVDb2x1bW5SZXNpemFibGVTaWRlKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Jlc2l6YWJsZVNpZGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQ29sdW1uIG5hbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbk5hbWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXphYmxlU2lkZTogVGFibGVDb2x1bW5SZXNpemFibGVTaWRlID0gJ2JvdGgnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfaXNSdGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuZ2V0VmFsdWUoKSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZSA9IGluamVjdChUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlPy5yZXNpemVJblByb2dyZXNzICE9PSB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChldmVudCkgPT4gdGhpcy5fZ2V0UmVzaXplcihldmVudCkgfHwgeyByZXNpemVyUG9zaXRpb246IDAsIHJlc2l6ZWRDb2x1bW46IHRoaXMuY29sdW1uTmFtZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IGVxdWFsKHByZXYsIGN1cnIpKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5zZXRJbml0aWFsUmVzaXplclBvc2l0aW9uKGRhdGEucmVzaXplclBvc2l0aW9uLCBkYXRhLnJlc2l6ZWRDb2x1bW4pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXMnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5zZXRJbml0aWFsUmVzaXplclBvc2l0aW9uKDAsIHRoaXMuY29sdW1uTmFtZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5OYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZT8ucmVnaXN0ZXJDb2x1bW5DZWxsKHRoaXMuY29sdW1uTmFtZSwgdGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZUNvbHVtblJlc2l6ZVNlcnZpY2U/LnVucmVnaXN0ZXJDb2x1bW5DZWxsKHRoaXMuY29sdW1uTmFtZSwgdGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFJlc2l6ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB7IHJlc2l6ZXJQb3NpdGlvbjogbnVtYmVyOyByZXNpemVkQ29sdW1uOiBzdHJpbmcgfSB8IG51bGwge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBlbFBvc2l0aW9uID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgbGV0IHJlc2l6ZXJQb3NpdGlvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICBsZXQgcmVzaXplZENvbHVtbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IHBvaW50ZXJPbkxlZnQgPSB0aGlzLl9pc1J0bFxuICAgICAgICAgICAgPyBlbFBvc2l0aW9uLnJpZ2h0IC0gZXZlbnQuY2xpZW50WCA8IFRBQkxFX0NFTExfUkVTSVpBQkxFX1RIUkVTSE9MRF9QWFxuICAgICAgICAgICAgOiBldmVudC5jbGllbnRYIC0gZWxQb3NpdGlvbi5sZWZ0IDwgVEFCTEVfQ0VMTF9SRVNJWkFCTEVfVEhSRVNIT0xEX1BYO1xuXG4gICAgICAgIGlmIChwb2ludGVyT25MZWZ0ICYmIHRoaXMuX3Jlc2l6YWJsZVNpZGUgIT09ICdlbmQnKSB7XG4gICAgICAgICAgICByZXNpemVyUG9zaXRpb24gPSB0aGlzLl9pc1J0bFxuICAgICAgICAgICAgICAgID8gZWwucGFyZW50RWxlbWVudCEub2Zmc2V0V2lkdGggLSAoZWwub2Zmc2V0TGVmdCArIGVsLm9mZnNldFdpZHRoKVxuICAgICAgICAgICAgICAgIDogZWwub2Zmc2V0TGVmdDtcblxuICAgICAgICAgICAgcmVzaXplZENvbHVtbiA9IHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZS5nZXRQcmV2aW91c0NvbHVtbk5hbWUodGhpcy5jb2x1bW5OYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvaW50ZXJPblJpZ2h0ID0gdGhpcy5faXNSdGxcbiAgICAgICAgICAgID8gZXZlbnQuY2xpZW50WCAtIGVsUG9zaXRpb24ubGVmdCA8IFRBQkxFX0NFTExfUkVTSVpBQkxFX1RIUkVTSE9MRF9QWFxuICAgICAgICAgICAgOiBlbFBvc2l0aW9uLnJpZ2h0IC0gZXZlbnQuY2xpZW50WCA8IFRBQkxFX0NFTExfUkVTSVpBQkxFX1RIUkVTSE9MRF9QWDtcblxuICAgICAgICBpZiAocG9pbnRlck9uUmlnaHQgJiYgdGhpcy5fcmVzaXphYmxlU2lkZSAhPT0gJ3N0YXJ0Jykge1xuICAgICAgICAgICAgcmVzaXplclBvc2l0aW9uID0gdGhpcy5faXNSdGxcbiAgICAgICAgICAgICAgICA/IGVsLnBhcmVudEVsZW1lbnQhLm9mZnNldFdpZHRoIC0gZWwub2Zmc2V0TGVmdFxuICAgICAgICAgICAgICAgIDogZWwub2Zmc2V0TGVmdCArIGVsLm9mZnNldFdpZHRoO1xuXG4gICAgICAgICAgICByZXNpemVkQ29sdW1uID0gdGhpcy5jb2x1bW5OYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZXNpemVkQ29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IHJlc2l6ZXJQb3NpdGlvbjogcmVzaXplclBvc2l0aW9uISwgcmVzaXplZENvbHVtbiB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC1yZXNpemFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvZGlyZWN0aXZlcy90YWJsZS1jZWxsLXJlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUk1RixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7QUFFbkQ7O0dBRUc7QUFtQkgsTUFBTSxPQUFPLG1DQUNULFNBQVEsa0JBQWtCO0lBRzFCLGtEQUFrRDtJQUNsRCxJQUNJLGFBQWEsQ0FBQyxLQUErQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQVNELGNBQWM7SUFDZCxJQUFZLE1BQU07UUFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEtBQUssQ0FBQztJQUNyRCxD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YSxFQUFFLENBQUM7U0FDL0Q7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDOztnSUFwSFEsbUNBQW1DO29IQUFuQyxtQ0FBbUMsdUtBZmpDO1FBQ1A7WUFDSSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFdBQVcsRUFBRSxtQ0FBbUM7U0FDbkQ7UUFDRDtZQUNJLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsV0FBVyxFQUFFLG1DQUFtQztTQUNuRDtRQUNEO1lBQ0ksT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixXQUFXLEVBQUUsbUNBQW1DO1NBQ25EO0tBQ0o7MkZBRVEsbUNBQW1DO2tCQWxCL0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcscUNBQXFDO3lCQUNuRDt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixXQUFXLHFDQUFxQzt5QkFDbkQ7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxxQ0FBcUM7eUJBQ25EO3FCQUNKO2lCQUNKOzBFQU9PLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsdUJBQXVCO2dCQVc5QixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBUYWJsZUNlbGxEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGFibGUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90YWJsZS1jb2x1bW4tcmVzaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBUYWJsZUNvbHVtblJlc2l6YWJsZVNpZGUgPSAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCc7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9DRUxMX1JFU0laQUJMRV9USFJFU0hPTERfUFggPSA0O1xuXG4vKipcbiAqIFRyYWNrcyBtb3VzZSBtb3ZlbWVudCBvdmVyIHRoZSBjZWxsIGlmIHRoZSBtb3VzZSBwb2ludGVyIG5lYXIgdGhlIHNpZGUgb2YgdGhlIGNlbGwsIGluZm9ybXMgcmVzaXplIHNlcnZpY2UuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFRhYmxlQ2VsbFJlc2l6YWJsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBQbGF0Zm9ybVRhYmxlQ2VsbFJlc2l6YWJsZURpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUYWJsZUNlbGxEaXJlY3RpdmUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1UYWJsZUNlbGxSZXNpemFibGVEaXJlY3RpdmVcbiAgICBleHRlbmRzIFRhYmxlQ2VsbERpcmVjdGl2ZVxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKiogRmlyc3QgY29sdW1uIGNhbiBiZSByZXNpemVkIG9ubHkgYnkgaXRzIGVuZCAqL1xuICAgIEBJbnB1dCgnZmRwVGFibGVDZWxsUmVzaXphYmxlJylcbiAgICBzZXQgcmVzaXphYmxlU2lkZSh2YWx1ZTogVGFibGVDb2x1bW5SZXNpemFibGVTaWRlKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Jlc2l6YWJsZVNpZGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQ29sdW1uIG5hbWUgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbk5hbWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXphYmxlU2lkZTogVGFibGVDb2x1bW5SZXNpemFibGVTaWRlID0gJ2JvdGgnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfaXNSdGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuZ2V0VmFsdWUoKSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZSA9IGluamVjdChUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlPy5yZXNpemVJblByb2dyZXNzICE9PSB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLl9nZXRSZXNpemVyKGV2ZW50KSB8fCB7IHJlc2l6ZXJQb3NpdGlvbjogMCwgcmVzaXplZENvbHVtbjogdGhpcy5jb2x1bW5OYW1lIH0pLFxuICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycikgPT4gZXF1YWwocHJldiwgY3VycikpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLnNldEluaXRpYWxSZXNpemVyUG9zaXRpb24oZGF0YS5yZXNpemVyUG9zaXRpb24sIGRhdGEucmVzaXplZENvbHVtbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8Rm9jdXNFdmVudD4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1cycpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLnNldEluaXRpYWxSZXNpemVyUG9zaXRpb24oMCwgdGhpcy5jb2x1bW5OYW1lKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbk5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlPy5yZWdpc3RlckNvbHVtbkNlbGwodGhpcy5jb2x1bW5OYW1lLCB0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uUmVzaXplU2VydmljZT8udW5yZWdpc3RlckNvbHVtbkNlbGwodGhpcy5jb2x1bW5OYW1lLCB0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UmVzaXplcihldmVudDogTW91c2VFdmVudCk6IHsgcmVzaXplclBvc2l0aW9uOiBudW1iZXI7IHJlc2l6ZWRDb2x1bW46IHN0cmluZyB9IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGVsUG9zaXRpb24gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgLy8gY2hlY2sgaWYgbW91c2UgaXMgd2l0aGluIDVweCBvZiBjZWxsIGJvcmRlclxuICAgICAgICBpZiAoZXZlbnQuY2xpZW50WCA+IGVsUG9zaXRpb24ueCArIGVsUG9zaXRpb24ud2lkdGggLSA1IHx8IGV2ZW50LmNsaWVudFggPCBlbFBvc2l0aW9uLnggKyA1KSB7XG4gICAgICAgICAgICBsZXQgcmVzaXplclBvc2l0aW9uOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBsZXQgcmVzaXplZENvbHVtbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBjb25zdCBwb2ludGVyT25MZWZ0ID0gdGhpcy5faXNSdGxcbiAgICAgICAgICAgICAgICA/IGVsUG9zaXRpb24ucmlnaHQgLSBldmVudC5jbGllbnRYIDwgVEFCTEVfQ0VMTF9SRVNJWkFCTEVfVEhSRVNIT0xEX1BYXG4gICAgICAgICAgICAgICAgOiBldmVudC5jbGllbnRYIC0gZWxQb3NpdGlvbi5sZWZ0IDwgVEFCTEVfQ0VMTF9SRVNJWkFCTEVfVEhSRVNIT0xEX1BYO1xuXG4gICAgICAgICAgICBpZiAocG9pbnRlck9uTGVmdCAmJiB0aGlzLl9yZXNpemFibGVTaWRlICE9PSAnZW5kJykge1xuICAgICAgICAgICAgICAgIHJlc2l6ZXJQb3NpdGlvbiA9IHRoaXMuX2lzUnRsXG4gICAgICAgICAgICAgICAgICAgID8gZWwucGFyZW50RWxlbWVudCEub2Zmc2V0V2lkdGggLSAoZWwub2Zmc2V0TGVmdCArIGVsLm9mZnNldFdpZHRoKVxuICAgICAgICAgICAgICAgICAgICA6IGVsLm9mZnNldExlZnQ7XG5cbiAgICAgICAgICAgICAgICByZXNpemVkQ29sdW1uID0gdGhpcy5fdGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlLmdldFByZXZpb3VzQ29sdW1uTmFtZSh0aGlzLmNvbHVtbk5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwb2ludGVyT25SaWdodCA9IHRoaXMuX2lzUnRsXG4gICAgICAgICAgICAgICAgPyBldmVudC5jbGllbnRYIC0gZWxQb3NpdGlvbi5sZWZ0IDwgVEFCTEVfQ0VMTF9SRVNJWkFCTEVfVEhSRVNIT0xEX1BYXG4gICAgICAgICAgICAgICAgOiBlbFBvc2l0aW9uLnJpZ2h0IC0gZXZlbnQuY2xpZW50WCA8IFRBQkxFX0NFTExfUkVTSVpBQkxFX1RIUkVTSE9MRF9QWDtcblxuICAgICAgICAgICAgaWYgKHBvaW50ZXJPblJpZ2h0ICYmIHRoaXMuX3Jlc2l6YWJsZVNpZGUgIT09ICdzdGFydCcpIHtcbiAgICAgICAgICAgICAgICByZXNpemVyUG9zaXRpb24gPSB0aGlzLl9pc1J0bFxuICAgICAgICAgICAgICAgICAgICA/IGVsLnBhcmVudEVsZW1lbnQhLm9mZnNldFdpZHRoIC0gZWwub2Zmc2V0TGVmdFxuICAgICAgICAgICAgICAgICAgICA6IGVsLm9mZnNldExlZnQgKyBlbC5vZmZzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgIHJlc2l6ZWRDb2x1bW4gPSB0aGlzLmNvbHVtbk5hbWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcmVzaXplZENvbHVtbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyByZXNpemVyUG9zaXRpb246IHJlc2l6ZXJQb3NpdGlvbiEsIHJlc2l6ZWRDb2x1bW4gfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -3,7 +3,6 @@ import { BehaviorSubject, Subject, Subscription, fromEvent } from 'rxjs';
|
|
|
3
3
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { SELECTION_COLUMN_WIDTH } from '../constants';
|
|
5
5
|
import { RtlService } from '@fundamental-ngx/cdk/utils';
|
|
6
|
-
import { TABLE_COLUMN_MIN_WIDTH } from '../constants';
|
|
7
6
|
import { TableScrollDispatcherService } from './table-scroll-dispatcher.service';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
import * as i1 from "./table-scroll-dispatcher.service";
|
|
@@ -247,8 +246,8 @@ export class TableColumnResizeService {
|
|
|
247
246
|
if (!columnWidth || !resizedElement) {
|
|
248
247
|
return;
|
|
249
248
|
}
|
|
250
|
-
if (diffX < 0 && columnWidth + diffX <
|
|
251
|
-
diffX =
|
|
249
|
+
if (diffX < 0 && columnWidth + diffX < this._tableRef.minimumColumnWidth) {
|
|
250
|
+
diffX = this._tableRef.minimumColumnWidth - columnWidth;
|
|
252
251
|
}
|
|
253
252
|
if (!this.fixedWidth) {
|
|
254
253
|
for (const [columnName, cells] of this._columnsCellMap.entries()) {
|
|
@@ -326,4 +325,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
326
325
|
}], ctorParameters: function () { return [{ type: i1.TableScrollDispatcherService }, { type: i2.RtlService, decorators: [{
|
|
327
326
|
type: Optional
|
|
328
327
|
}] }]; } });
|
|
329
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvc2VydmljZXMvdGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd0RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7OztBQUVqRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUM7QUFFNUM7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBeURqQyxnREFBZ0Q7SUFDaEQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQVFELHVDQUF1QztJQUN2QyxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUtELHFDQUFxQztJQUNyQyxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUMvRSxDQUFDO0lBRUQsY0FBYztJQUNkLElBQVksSUFBSTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUNxQiw2QkFBMkQsRUFDL0MsV0FBdUI7UUFEbkMsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUE4QjtRQUMvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTdGeEQsOEVBQThFO1FBQ3JFLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEYsY0FBYztRQUNOLDBCQUFxQixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBRTFELGNBQWM7UUFDTixvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFrRCxDQUFDO1FBRXBGLGNBQWM7UUFDTix3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFFM0MsY0FBYztRQUNOLG1DQUE4QixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBRS9FLGNBQWM7UUFDTixvQ0FBK0IsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQUVoRixjQUFjO1FBQ04sa0NBQTZCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFFbEUsY0FBYztRQUNOLG1DQUE4QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBRW5FLGNBQWM7UUFDTixZQUFPLEdBQWtCLElBQUksQ0FBQztRQUV0QyxjQUFjO1FBQ04sa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTVDLGNBQWM7UUFDTixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFLbEMsY0FBYztRQUNOLHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFFL0MsY0FBYztRQUNOLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRXhCLGNBQWM7UUFDTixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFNUMsY0FBYztRQUNOLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXpDLGNBQWM7UUFDTiw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3RELGNBQWM7UUFDTix1QkFBa0IsR0FBa0IsSUFBSSxDQUFDO1FBT2pELDhCQUE4QjtRQUNyQixzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVsRiwyQ0FBMkM7UUFDbEMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFPaEUsK0JBQStCO1FBQ3RCLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBc0J2RCxJQUFJLENBQUMsNkJBQTZCO1lBQzlCLEVBQUUsb0JBQW9CLEVBQUU7YUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVcsQ0FBQyxHQUFVO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsY0FBYyxDQUFDLGtCQUE0QjtRQUN2QyxJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQztRQUNILGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsK0JBQStCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztJQUNkLHdCQUF3QjtRQUNwQixJQUFJLGlCQUFpQixHQUFHLENBQUMsRUFDckIsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN0QixLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzlFLGlCQUFpQjtnQkFDYixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQzFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDckU7UUFDRCxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLCtCQUErQixDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9FLGFBQWE7Z0JBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUMxRyxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztTQUNsRTtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsbUNBQW1DLENBQUMsVUFBa0IsRUFBRSxLQUFhO1FBQ2pFLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3hFLElBQUksTUFBTSxLQUFLLFVBQVUsRUFBRTtnQkFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNoQjtpQkFBTSxJQUFJLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7YUFDakU7U0FDSjtJQUNMLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsbUJBQW1CLENBQUMsVUFBa0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixFQUFFLGVBQWUsRUFBRTtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUMxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7YUFDMUQ7WUFDRCxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRyxJQUFJLHlCQUF5QixHQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLE1BQU07Z0JBQ3hFLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDMUUsd0dBQXdHO1lBQ3hHLDhGQUE4RjtZQUM5RixJQUFJLHlCQUF5QixHQUFHLEdBQUcsRUFBRTtnQkFDakMseUJBQXlCLEdBQUcsR0FBRyxDQUFDO2FBQ25DO1lBQ0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLHlCQUF5QixHQUFHLElBQUksQ0FBQztTQUN6RjthQUFNO1lBQ0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRSxPQUFPLGVBQWUsSUFBSSxPQUFPLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLHFCQUFxQixDQUFDLFVBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLGlCQUFpQixDQUFDLFVBQWtCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0dBQWtHO0lBQ2xHLG1CQUFtQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELDhGQUE4RjtJQUM5RixtQkFBbUIsQ0FBQyxVQUFrQjtRQUNsQyxPQUFPLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCwrREFBK0Q7SUFDL0Qsa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxTQUFxQjtRQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLG9CQUFvQixDQUFDLFVBQWtCLEVBQUUsU0FBcUI7UUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9ELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNGLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUVELFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLGNBQWMsQ0FBQyxVQUFrQixFQUFFLEtBQWE7UUFDNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELHlCQUF5QixDQUFDLGVBQXVCLEVBQUUsYUFBcUI7UUFDcEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVqRCxJQUFJLGVBQWUsSUFBSSxJQUFJLEVBQUU7WUFDekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLEdBQUcsMEJBQTBCLEdBQUcsZ0JBQWdCLENBQUM7WUFDeEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixXQUFXLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUVuQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixZQUFZLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWpELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1lBRXRGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrRkFBa0Y7SUFDbEYsY0FBYyxDQUFDLEtBQWE7UUFDeEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBQ3pGLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUVsRSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pDLE9BQU87U0FDVjtRQUVELElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxXQUFXLEdBQUcsS0FBSyxHQUFHLHNCQUFzQixFQUFFO1lBQzNELEtBQUssR0FBRyxzQkFBc0IsR0FBRyxXQUFXLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDOUQsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUNkLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQzFCLFVBQVUsRUFDVixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FDOUQsQ0FBQztpQkFDTDthQUNKO1NBQ0o7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTdEOzs7V0FHRztRQUNILElBQ0ksS0FBSyxHQUFHLENBQUM7WUFDVCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUNwRTtZQUNFLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFDO1lBQzlFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUMvRCxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDN0U7WUFDRCxNQUFNLFFBQVEsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztZQUNyRSxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFFRCxNQUFNLFlBQVksR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVyRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO0lBQ2QscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUMzRCxDQUFDO0lBRUQsc0NBQXNDO0lBQzlCLGlDQUFpQztRQUNyQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFhLFFBQVEsRUFBRSxXQUFXLENBQUM7YUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN0QixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQztZQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7WUFFdEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSywwQkFBMEIsQ0FBQyxZQUFvQjtRQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZTthQUMvQixHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN6QixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBQ3BFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFHLE1BQU0sY0FBYyxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRTFHLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBQ0QsYUFBYSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUM5RSxDQUFDOztxSEEvWFEsd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBK0ZGLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNFTEVDVElPTl9DT0xVTU5fV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgVEFCTEVfQ09MVU1OX01JTl9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vdGFibGUnO1xuaW1wb3J0IHsgVGFibGVTY3JvbGxEaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4vdGFibGUtc2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9SRVNJWkVSX0JPUkRFUl9XSURUSCA9IDM7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgYWxsIHRoaW5ncyByZWxhdGVkIHRvIGNvbHVtbiByZXNpemluZzpcbiAqIC0gU2V0dGluZyByZXNpemVyXG4gKiAtIFByb2Nlc3NpbmcgcmVzaXplXG4gKiAtIENhbGN1bGF0aW5nIHRoZSByZWFsIGNvbHVtbnMgd2lkdGhcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uUmVzaXplU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIFN1YmplY3QgdGhhdCBlbWl0cyBuZXcgbWFwIG9mIGZpeGVkIGNvbHVtbnMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgd2lkdGguICovXG4gICAgcmVhZG9ubHkgZml4ZWRDb2x1bXNXaWR0aENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgc3RyaW5nPj4obmV3IE1hcCgpKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZpeGVkQ29sdW1uc1dpZHRoTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29sdW1uc0NlbGxNYXAgPSBuZXcgTWFwPHN0cmluZywgRWxlbWVudFJlZjxIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQ+W10+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5OYW1lczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtblJpZ2h0T2Zmc2V0UHhNYXAgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdGFydFg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jbGllbnRTdGFydFg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZWRDb2x1bW46IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXplclBvc2l0aW9uOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2Nyb2xsTGVmdCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21hcmtGb3JDaGVjayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJsZVJlZjogVGFibGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxUYWJsZVdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBJbmRpY2F0ZSBpZiByZXNpemluZyBwcm9jZXNzIGluIHByb2dyZXNzLiAqL1xuICAgIGdldCByZXNpemVJblByb2dyZXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplSW5Qcm9ncmVzcztcbiAgICB9XG5cbiAgICAvKiogUmVzaXplIHByb2dyZXNzIHN0cmVhbS4gKi9cbiAgICByZWFkb25seSByZXNpemVJblByb2dyZXNzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5fcmVzaXplSW5Qcm9ncmVzcyk7XG5cbiAgICAvKiogV2hldGhlciBjZWxsIG1vY2sgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgcmVhZG9ubHkgY2VsbE1vY2tWaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEN1cnJlbnQgY29sdW1uIHJlc2l6ZXIgcG9zaXRpb24uICovXG4gICAgZ2V0IHJlc2l6ZXJQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplclBvc2l0aW9uID8/IDA7XG4gICAgfVxuXG4gICAgLyoqIFJlc2l6ZXIgcG9zaXRpb24gc3RyZWFtLiAqL1xuICAgIHJlYWRvbmx5IHJlc2l6ZXJQb3NpdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgICAvKiogT2JzZXJ2YWJsZSB0byBub3RpZnkgdG8gcnVuIENEICovXG4gICAgZ2V0IG1hcmtGb3JDaGVjaygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hcmtGb3JDaGVjay5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogdGFibGUgaGFzIGZpeGVkIHdpZHRoIGlmIGFsbCBvZiBpdCdzIGNvbHVtbnMgYXJlIGZpeGVkICovXG4gICAgZ2V0IGZpeGVkV2lkdGgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5zaXplID09PSB0aGlzLl92aXNpYmxlQ29sdW1uTmFtZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2U6IFRhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fdGFibGVTY3JvbGxEaXNwYXRjaGVyU2VydmljZVxuICAgICAgICAgICAgPy5ob3Jpem9udGFsbHlTY3JvbGxlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNjcm9sbGFibGUpID0+ICh0aGlzLl9zY3JvbGxMZWZ0ID0gc2Nyb2xsYWJsZS5nZXRTY3JvbGxMZWZ0KCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVzaXplSW5Qcm9ncmVzcyQubmV4dChmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplck1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFRhYmxlUmVmKHJlZjogVGFibGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVSZWYgPSByZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gaW5pdGlhbGl6ZXMgc2VydmljZSB3aXRoIGRhdGEsIHRyaWdnZXIgY29sdW1ucyB3aWR0aCBjYWxjdWxhdGlvbi4gKi9cbiAgICBzZXRDb2x1bW5OYW1lcyh2aXNpYmxlQ29sdW1uTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0TmVpZ2hib3VyTWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcC5jbGVhcigpO1xuICAgICAgICB2aXNpYmxlQ29sdW1uTmFtZXMuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAuc2V0KGNvbHVtbiwgdmlzaWJsZUNvbHVtbk5hbWVzW2luZGV4IC0gMV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmlzaWJsZUNvbHVtbk5hbWVzLnJldmVyc2UoKS5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuc2V0KGNvbHVtbiwgdmlzaWJsZUNvbHVtbk5hbWVzW2luZGV4IC0gMV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbk5hbWVzID0gWy4uLnZpc2libGVDb2x1bW5OYW1lc107XG4gICAgICAgIHRoaXMudXBkYXRlRnJvemVuQ29sdW1uc1dpZHRoKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB1cGRhdGVGcm96ZW5Db2x1bW5zV2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGxldCBhbGxQcmV2aW91c1dpZHRocyA9IDAsXG4gICAgICAgICAgICBhbGxOZXh0V2lkdGhzID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBbY29sdW1uLCBwcmV2Q29sdW1uXSBvZiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGFsbFByZXZpb3VzV2lkdGhzICs9XG4gICAgICAgICAgICAgICAgdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KHByZXZDb2x1bW4gYXMgc3RyaW5nKT8uWzBdPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID8/IDA7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLnNldChjb2x1bW4sIGFsbFByZXZpb3VzV2lkdGhzKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFtjb2x1bW4sIG5leHRDb2x1bW5dIG9mIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGFsbE5leHRXaWR0aHMgKz1cbiAgICAgICAgICAgICAgICB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQobmV4dENvbHVtbiBhcyBzdHJpbmcpPy5bMF0/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPz8gMDtcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE9mZnNldFB4TWFwLnNldChjb2x1bW4sIGFsbE5leHRXaWR0aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB1cGRhdGVGcm96ZW5Db2x1bW5zV2lkdGhBZnRlclJlc2l6ZShjb2x1bW5OYW1lOiBzdHJpbmcsIGRpZmZYOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgW2NvbHVtbiwgd2lkdGhdIG9mIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0T2Zmc2V0UHhNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBpZiAoY29sdW1uID09PSBjb2x1bW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0T2Zmc2V0UHhNYXAuc2V0KGNvbHVtbiwgd2lkdGggKyBkaWZmWCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmV0cmlldmVzIGN1c3RvbSBjb2x1bW4gdmFsdWUgb3IgcmV0dXJucyBgdW5zZXRgICovXG4gICAgZ2V0Q29sdW1uV2lkdGhTdHlsZShjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5fdGFibGVSZWYuX3ZpcnR1YWxTY3JvbGxEaXJlY3RpdmU/LnNjcm9sbFdob2xlUm93cykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsVGFibGVXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxUYWJsZVdpZHRoID0gdGhpcy5fdGFibGVSZWYuX3RhYmxlV2lkdGhQeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkNvbHVtbldpZHRoID0gU0VMRUNUSU9OX0NPTFVNTl9XSURUSC5nZXQodGhpcy5fdGFibGVSZWYuY29udGVudERlbnNpdHlPYnNlcnZlci52YWx1ZSkgPz8gMDtcbiAgICAgICAgICAgIGxldCBzaXplRGl2aWRlZEJ5Q29sdW1uc0NvdW50ID1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsVGFibGVXaWR0aCAvIHRoaXMuX3RhYmxlUmVmLmdldFZpc2libGVUYWJsZUNvbHVtbnMoKS5sZW5ndGggLVxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbHVtbldpZHRoIC8gdGhpcy5fdGFibGVSZWYuZ2V0VmlzaWJsZVRhYmxlQ29sdW1ucygpLmxlbmd0aDtcbiAgICAgICAgICAgIC8vIEluIHRoZSBldmVudCBvZiB0YWJsZXMgd2l0aCBhIHZlcnkgaGlnaCBudW1iZXIgb2YgY29sdW1ucywgbmVlZCB0byBwcmV2ZW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yIHdoaWNoXG4gICAgICAgICAgICAvLyB3b3VsZCBtYWtlIGVhY2ggY29sdW1uIG5vdCB3aWRlIGVub3VnaCB0byBiZSB1c2FibGUgYW5kIGluc3RlYWQgdXNlIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXIuXG4gICAgICAgICAgICBpZiAoc2l6ZURpdmlkZWRCeUNvbHVtbnNDb3VudCA8IDE3Nikge1xuICAgICAgICAgICAgICAgIHNpemVEaXZpZGVkQnlDb2x1bW5zQ291bnQgPSAxNzY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuZ2V0KGNvbHVtbk5hbWUpIHx8IHNpemVEaXZpZGVkQnlDb2x1bW5zQ291bnQgKyAncHgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlZFdpZHRoID0gdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuZ2V0KGNvbHVtbk5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRXaWR0aCB8fCAndW5zZXQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFByZXZpb3VzIGNvbHVtbiBuYW1lICovXG4gICAgZ2V0UHJldmlvdXNDb2x1bW5OYW1lKGNvbHVtbk5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcC5nZXQoY29sdW1uTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIFByZXZpb3VzIGNvbHVtbiBuYW1lICovXG4gICAgZ2V0TmV4dENvbHVtbk5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcC5nZXQoY29sdW1uTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIE92ZXJhbGwgcHJldmlvdXMgY29sdW1ucyB3aWR0aC4gVXNlZCB0byBjYWxjdWxhdGUgb2Zmc2V0IGZvciB0aGUgYWJzb2x1dGUgcG9zaXRpb25lZCBjZWxscy4gKi9cbiAgICBnZXRQcmV2Q29sdW1uc1dpZHRoKGNvbHVtbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLmdldChjb2x1bW5OYW1lKSA/PyAwO1xuICAgIH1cblxuICAgIC8qKiBPdmVyYWxsIG5leHQgY29sdW1ucyB3aWR0aC4gVXNlZCB0byBjYWxjdWxhdGUgb2Zmc2V0IGZvciB0aGUgYWJzb2x1dGUgcG9zaXRpb25lZCBjZWxscy4gKi9cbiAgICBnZXROZXh0Q29sdW1uc1dpZHRoKGNvbHVtbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHRPZmZzZXRQeE1hcC5nZXQoY29sdW1uTmFtZSkgPz8gMDtcbiAgICB9XG5cbiAgICAvKiogUmVnaXN0ZXIgY29sdW1uJ3MgY2VsbCB0byBnZXQgaXRzIGRpbWVuc2lvbnMgaW4gZnVydGhlci4gKi9cbiAgICByZWdpc3RlckNvbHVtbkNlbGwoY29sdW1uTmFtZTogc3RyaW5nLCBjZWxsRWxSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1uQ2VsbHMgPSB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQoY29sdW1uTmFtZSkgfHwgW107XG4gICAgICAgIHRoaXMuX2NvbHVtbnNDZWxsTWFwLnNldChjb2x1bW5OYW1lLCBbY2VsbEVsUmVmLCAuLi5jb2x1bW5DZWxsc10pO1xuICAgIH1cblxuICAgIC8qKiBVbnJlZ2lzdGVyIGNvbHVtbidzIGNlbGwuICovXG4gICAgdW5yZWdpc3RlckNvbHVtbkNlbGwoY29sdW1uTmFtZTogc3RyaW5nLCBjZWxsRWxSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1uQ2VsbHMgPSB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQoY29sdW1uTmFtZSkgfHwgW107XG4gICAgICAgIGNvbnN0IGVsbUluZGV4ID0gY29sdW1uQ2VsbHMuZmluZEluZGV4KChlKSA9PiBlLm5hdGl2ZUVsZW1lbnQgPT09IGNlbGxFbFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoZWxtSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb2x1bW5DZWxscy5zcGxpY2UoZWxtSW5kZXgsIDEpO1xuXG4gICAgICAgIHRoaXMuX2NvbHVtbnNDZWxsTWFwLnNldChjb2x1bW5OYW1lLCBjb2x1bW5DZWxscyk7XG4gICAgfVxuXG4gICAgLyoqIFJlZ2lzdGVyIHRoZSB2YWx1ZSBvZiBjb2x1bW4gd2lkdGggdGhhdCBjaGFuZ2VkIGZyb20gIGlucHV0ICovXG4gICAgc2V0Q3VzdG9tV2lkdGgoY29sdW1uTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLnNldChjb2x1bW5OYW1lLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuZml4ZWRDb2x1bXNXaWR0aENoYW5nZS5uZXh0KHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHRoZSBhcHByb3ByaWF0ZSBjb2x1bW4gcmVzaXplciBwb3NpdGlvbi4gKi9cbiAgICBzZXRJbml0aWFsUmVzaXplclBvc2l0aW9uKHJlc2l6ZXJQb3NpdGlvbjogbnVtYmVyLCByZXNpemVkQ29sdW1uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVzaXplZENvbHVtbiA9IHJlc2l6ZWRDb2x1bW47XG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcblxuICAgICAgICBpZiAocmVzaXplclBvc2l0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbExlZnRPZmZzZXQgPSB0aGlzLl9zY3JvbGxMZWZ0ICogKHRoaXMuX3J0bCA/IDEgOiAtMSk7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSByZXNpemVyUG9zaXRpb24gLSBUQUJMRV9SRVNJWkVSX0JPUkRFUl9XSURUSCArIHNjcm9sbExlZnRPZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSGlkZSB0aGUgY29sdW1uIHJlc2l6ZXIuICovXG4gICAgaGlkZVJlc2l6ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9yZXNpemVJblByb2dyZXNzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjay5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBzdGFydCByZXNpemluZy4gKi9cbiAgICBzdGFydFJlc2l6ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdGFydFggPSB0aGlzLnJlc2l6ZXJQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5fY2xpZW50U3RhcnRYID0gZXZlbnQuY2xpZW50WDtcblxuICAgICAgICB0aGlzLl91cGRhdGVSZXNpemVyUG9zaXRpb25Pbk1vdXNlTW92ZSgpO1xuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBlbmQgcmVzaXppbmcuICovXG4gICAgZmluaXNoUmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMuX3N0YXJ0WCAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnRTdGFydFggPSB0aGlzLl9jbGllbnRTdGFydFggPz8gMDtcbiAgICAgICAgICAgIGNvbnN0IGRpZmZYID0gdGhpcy5fcnRsID8gY2xpZW50U3RhcnRYIC0gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFggLSBjbGllbnRTdGFydFg7XG5cbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZXNpemUoZGlmZlgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RhcnRYID0gbnVsbDtcbiAgICAgICAgdGhpcy5fY2xpZW50U3RhcnRYID0gbnVsbDtcblxuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2submV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBVcGRhdGUgY29sdW1ucyB3aWR0aCBhZnRlciByZXNpemluZywgcHJldmVudCBmcm9tIGhhdmluZyB0b28gc21hbGwgY29sdW1ucy4gKi9cbiAgICBfcHJvY2Vzc1Jlc2l6ZShkaWZmWDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRFbGVtZW50ID0gdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KHRoaXMuX3Jlc2l6ZWRDb2x1bW4pPy5bMF0/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gcmVzaXplZEVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAgIGlmICghY29sdW1uV2lkdGggfHwgIXJlc2l6ZWRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGlmZlggPCAwICYmIGNvbHVtbldpZHRoICsgZGlmZlggPCBUQUJMRV9DT0xVTU5fTUlOX1dJRFRIKSB7XG4gICAgICAgICAgICBkaWZmWCA9IFRBQkxFX0NPTFVNTl9NSU5fV0lEVEggLSBjb2x1bW5XaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5maXhlZFdpZHRoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtjb2x1bW5OYW1lLCBjZWxsc10gb2YgdGhpcy5fY29sdW1uc0NlbGxNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNlbGxzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5zZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbHNbMF0ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArICdweCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpeGVkQ29sdW1zV2lkdGhDaGFuZ2UubmV4dCh0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluIGNhc2UgXCJfcmVzaXplZENvbHVtblwiIGlzIGZyZWV6YWJsZSwgbWFrZSBzdXJlIHRoZSBvdmVyYWxsIHdpZHRoIG9mIGZyZWV6YWJsZSBjb2x1bW5zIGRvZXMgbm90IGV4Y2VlZCB0aGUgd2lkdGggb2YgdGhlIHRhYmxlLlxuICAgICAgICAgKiBJZiBpdCBkb2VzLCBjb2x1bW5zIHdpbGwgYmUgbWFkZSB1bmZyb3plbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRpZmZYID4gMCAmJlxuICAgICAgICAgICAgKHRoaXMuX3RhYmxlUmVmLl9mcmVlemFibGVDb2x1bW5zLmhhcyh0aGlzLl9yZXNpemVkQ29sdW1uKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlUmVmLl9mcmVlemFibGVFbmRDb2x1bW5zPy5oYXModGhpcy5fcmVzaXplZENvbHVtbikpXG4gICAgICAgICkge1xuICAgICAgICAgICAgbGV0IGFjdHVhbFdpZHRoID0gdGhpcy5nZXRQcmV2Q29sdW1uc1dpZHRoKHRoaXMuX3Jlc2l6ZWRDb2x1bW4pICsgY29sdW1uV2lkdGg7XG4gICAgICAgICAgICBpZiAodGhpcy5fdGFibGVSZWYuX2ZyZWV6YWJsZUVuZENvbHVtbnM/Lmhhcyh0aGlzLl9yZXNpemVkQ29sdW1uKSkge1xuICAgICAgICAgICAgICAgIGFjdHVhbFdpZHRoID0gdGhpcy5nZXROZXh0Q29sdW1uc1dpZHRoKHRoaXMuX3Jlc2l6ZWRDb2x1bW4pICsgY29sdW1uV2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdXaWR0aCA9IGFjdHVhbFdpZHRoICsgZGlmZlg7XG4gICAgICAgICAgICBjb25zdCBtYXhXaWR0aCA9IHRoaXMuX3RhYmxlUmVmLmdldE1heEFsbG93ZWRGcmVlemFibGVDb2x1bW5zV2lkdGgoKTtcbiAgICAgICAgICAgIGlmIChuZXdXaWR0aCA+PSBtYXhXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlUmVmLl9mcmVlemFibGVDb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YWJsZVJlZi51bmZyZWV6ZShjb2x1bW4udG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVkV2lkdGggPSBjb2x1bW5XaWR0aCArIGRpZmZYO1xuICAgICAgICB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5zZXQodGhpcy5fcmVzaXplZENvbHVtbiwgdXBkYXRlZFdpZHRoICsgJ3B4Jyk7XG4gICAgICAgIHRoaXMuZml4ZWRDb2x1bXNXaWR0aENoYW5nZS5uZXh0KHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwKTtcbiAgICAgICAgdGhpcy51cGRhdGVGcm96ZW5Db2x1bW5zV2lkdGhBZnRlclJlc2l6ZSh0aGlzLl9yZXNpemVkQ29sdW1uLCBkaWZmWCk7XG5cbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShyZXNpemVkRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBhZGRpbmcgPSBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nTGVmdCwgMTApICsgcGFyc2VJbnQoY29tcHV0ZWQucGFkZGluZ1JpZ2h0LCAxMCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUhlYWRlck92ZXJmbG93U3RhdGUodXBkYXRlZFdpZHRoIC0gcGFkZGluZyk7XG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjay5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0SW5pdGlhbFRhYmxlV2lkdGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxUYWJsZVdpZHRoID0gdGhpcy5fdGFibGVSZWYuX3RhYmxlV2lkdGhQeDtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlIGNvbHVtbiByZXNpemVyIHBvc2l0aW9uLiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVJlc2l6ZXJQb3NpdGlvbk9uTW91c2VNb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVyTW92ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRTdGFydFggPSB0aGlzLl9jbGllbnRTdGFydFggPz8gMDtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmWCA9IHRoaXMuX3J0bCA/IGNsaWVudFN0YXJ0WCAtIGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRYIC0gY2xpZW50U3RhcnRYO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gKHRoaXMuX3N0YXJ0WCA/PyAwKSArIGRpZmZYO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBoZWFkZXIgdGV4dCBsZW5ndGggZ29lcyBvdmVyIHRoZSBjb2x1bW4gd2lkdGguIEluIHN1Y2ggY2FzZSBhcHBsaWVzIHRleHQgdHJ1bmNhdGlvbiB3aXRoXG4gICAgICogZWxsaXBzaXMgYW5kIG1ha2Ugc3VyZSB3ZSBhbHNvIHNob3cgYSB0b29sdGlwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVIZWFkZXJPdmVyZmxvd1N0YXRlKHVwZGF0ZWRXaWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9jb2x1bW5zQ2VsbE1hcFxuICAgICAgICAgICAgLmdldCh0aGlzLl9yZXNpemVkQ29sdW1uKVxuICAgICAgICAgICAgPy5maW5kKChjKSA9PiBjPy5uYXRpdmVFbGVtZW50LnRhZ05hbWUgPT09ICdUSCcpPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1uID0gdGhpcy5fdGFibGVSZWYuZ2V0VmlzaWJsZVRhYmxlQ29sdW1ucygpLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdGhpcy5fcmVzaXplZENvbHVtbik7XG4gICAgICAgIGNvbnN0IGhlYWRlclRleHRFbGVtID0gZWxlbWVudD8ucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5fdGFibGVSZWYuaWR9LWhlYWRlci1jZWxsLSR7dGhpcy5fcmVzaXplZENvbHVtbn1gKTtcblxuICAgICAgICBpZiAoIWhlYWRlclRleHRFbGVtIHx8ICF2aXNpYmxlQ29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmlzaWJsZUNvbHVtbi5oZWFkZXJPdmVyZmxvd3MgPSBoZWFkZXJUZXh0RWxlbS5zY3JvbGxXaWR0aCA+IHVwZGF0ZWRXaWR0aDtcbiAgICB9XG59XG4iXX0=
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvc2VydmljZXMvdGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBRWpGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUF5RGpDLGdEQUFnRDtJQUNoRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBUUQsdUNBQXVDO0lBQ3ZDLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBS0QscUNBQXFDO0lBQ3JDLElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksS0FBSyxJ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QU0sY0FBYyxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRTFHLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBQ0QsYUFBYSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUM5RSxDQUFDOztxSEEvWFEsd0JBQXdCO3lIQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBK0ZGLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNFTEVDVElPTl9DT0xVTU5fV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL3RhYmxlJztcbmltcG9ydCB7IFRhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLXNjcm9sbC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfUkVTSVpFUl9CT1JERVJfV0lEVEggPSAzO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIGFsbCB0aGluZ3MgcmVsYXRlZCB0byBjb2x1bW4gcmVzaXppbmc6XG4gKiAtIFNldHRpbmcgcmVzaXplclxuICogLSBQcm9jZXNzaW5nIHJlc2l6ZVxuICogLSBDYWxjdWxhdGluZyB0aGUgcmVhbCBjb2x1bW5zIHdpZHRoXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBTdWJqZWN0IHRoYXQgZW1pdHMgbmV3IG1hcCBvZiBmaXhlZCBjb2x1bW5zIGFuZCB0aGVpciByZXNwZWN0aXZlIHdpZHRoLiAqL1xuICAgIHJlYWRvbmx5IGZpeGVkQ29sdW1zV2lkdGhDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxzdHJpbmcsIHN0cmluZz4+KG5ldyBNYXAoKSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maXhlZENvbHVtbnNXaWR0aE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbHVtbnNDZWxsTWFwID0gbmV3IE1hcDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50PltdPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5MZWZ0TmVpZ2hib3VyTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtblJpZ2h0TmVpZ2hib3VyTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtbkxlZnRPZmZzZXRQeE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5SaWdodE9mZnNldFB4TWFwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3RhcnRYOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xpZW50U3RhcnRYOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXplSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVkQ29sdW1uOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZXJQb3NpdGlvbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Njcm9sbExlZnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tYXJrRm9yQ2hlY2sgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVyTW92ZVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFibGVSZWY6IFRhYmxlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsVGFibGVXaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogSW5kaWNhdGUgaWYgcmVzaXppbmcgcHJvY2VzcyBpbiBwcm9ncmVzcy4gKi9cbiAgICBnZXQgcmVzaXplSW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3M7XG4gICAgfVxuXG4gICAgLyoqIFJlc2l6ZSBwcm9ncmVzcyBzdHJlYW0uICovXG4gICAgcmVhZG9ubHkgcmVzaXplSW5Qcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3MpO1xuXG4gICAgLyoqIFdoZXRoZXIgY2VsbCBtb2NrIHNob3VsZCBiZSB2aXNpYmxlLiAqL1xuICAgIHJlYWRvbmx5IGNlbGxNb2NrVmlzaWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBDdXJyZW50IGNvbHVtbiByZXNpemVyIHBvc2l0aW9uLiAqL1xuICAgIGdldCByZXNpemVyUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2l6ZXJQb3NpdGlvbiA/PyAwO1xuICAgIH1cblxuICAgIC8qKiBSZXNpemVyIHBvc2l0aW9uIHN0cmVhbS4gKi9cbiAgICByZWFkb25seSByZXNpemVyUG9zaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gICAgLyoqIE9ic2VydmFibGUgdG8gbm90aWZ5IHRvIHJ1biBDRCAqL1xuICAgIGdldCBtYXJrRm9yQ2hlY2soKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXJrRm9yQ2hlY2suYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqIHRhYmxlIGhhcyBmaXhlZCB3aWR0aCBpZiBhbGwgb2YgaXQncyBjb2x1bW5zIGFyZSBmaXhlZCAqL1xuICAgIGdldCBmaXhlZFdpZHRoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuc2l6ZSA9PT0gdGhpcy5fdmlzaWJsZUNvbHVtbk5hbWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9ydGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZVNjcm9sbERpc3BhdGNoZXJTZXJ2aWNlOiBUYWJsZVNjcm9sbERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3RhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2VcbiAgICAgICAgICAgID8uaG9yaXpvbnRhbGx5U2Nyb2xsZWQoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzY3JvbGxhYmxlKSA9PiAodGhpcy5fc2Nyb2xsTGVmdCA9IHNjcm9sbGFibGUuZ2V0U2Nyb2xsTGVmdCgpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzaXplSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRUYWJsZVJlZihyZWY6IFRhYmxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlUmVmID0gcmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGluaXRpYWxpemVzIHNlcnZpY2Ugd2l0aCBkYXRhLCB0cmlnZ2VyIGNvbHVtbnMgd2lkdGggY2FsY3VsYXRpb24uICovXG4gICAgc2V0Q29sdW1uTmFtZXModmlzaWJsZUNvbHVtbk5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcC5jbGVhcigpO1xuICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuY2xlYXIoKTtcbiAgICAgICAgdmlzaWJsZUNvbHVtbk5hbWVzLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0TmVpZ2hib3VyTWFwLnNldChjb2x1bW4sIHZpc2libGVDb2x1bW5OYW1lc1tpbmRleCAtIDFdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZpc2libGVDb2x1bW5OYW1lcy5yZXZlcnNlKCkuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtblJpZ2h0TmVpZ2hib3VyTWFwLnNldChjb2x1bW4sIHZpc2libGVDb2x1bW5OYW1lc1tpbmRleCAtIDFdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5OYW1lcyA9IFsuLi52aXNpYmxlQ29sdW1uTmFtZXNdO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb3plbkNvbHVtbnNXaWR0aCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdXBkYXRlRnJvemVuQ29sdW1uc1dpZHRoKCk6IHZvaWQge1xuICAgICAgICBsZXQgYWxsUHJldmlvdXNXaWR0aHMgPSAwLFxuICAgICAgICAgICAgYWxsTmV4dFdpZHRocyA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgW2NvbHVtbiwgcHJldkNvbHVtbl0gb2YgdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBhbGxQcmV2aW91c1dpZHRocyArPVxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbHVtbnNDZWxsTWFwLmdldChwcmV2Q29sdW1uIGFzIHN0cmluZyk/LlswXT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnRPZmZzZXRQeE1hcC5zZXQoY29sdW1uLCBhbGxQcmV2aW91c1dpZHRocyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbY29sdW1uLCBuZXh0Q29sdW1uXSBvZiB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBhbGxOZXh0V2lkdGhzICs9XG4gICAgICAgICAgICAgICAgdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KG5leHRDb2x1bW4gYXMgc3RyaW5nKT8uWzBdPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID8/IDA7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHRPZmZzZXRQeE1hcC5zZXQoY29sdW1uLCBhbGxOZXh0V2lkdGhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdXBkYXRlRnJvemVuQ29sdW1uc1dpZHRoQWZ0ZXJSZXNpemUoY29sdW1uTmFtZTogc3RyaW5nLCBkaWZmWDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IFtjb2x1bW4sIHdpZHRoXSBvZiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgaWYgKGNvbHVtbiA9PT0gY29sdW1uTmFtZSkge1xuICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLnNldChjb2x1bW4sIHdpZHRoICsgZGlmZlgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHJpZXZlcyBjdXN0b20gY29sdW1uIHZhbHVlIG9yIHJldHVybnMgYHVuc2V0YCAqL1xuICAgIGdldENvbHVtbldpZHRoU3R5bGUoY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX3RhYmxlUmVmLl92aXJ0dWFsU2Nyb2xsRGlyZWN0aXZlPy5zY3JvbGxXaG9sZVJvd3MpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5faW5pdGlhbFRhYmxlV2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsVGFibGVXaWR0aCA9IHRoaXMuX3RhYmxlUmVmLl90YWJsZVdpZHRoUHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25Db2x1bW5XaWR0aCA9IFNFTEVDVElPTl9DT0xVTU5fV0lEVEguZ2V0KHRoaXMuX3RhYmxlUmVmLmNvbnRlbnREZW5zaXR5T2JzZXJ2ZXIudmFsdWUpID8/IDA7XG4gICAgICAgICAgICBsZXQgc2l6ZURpdmlkZWRCeUNvbHVtbnNDb3VudCA9XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbFRhYmxlV2lkdGggLyB0aGlzLl90YWJsZVJlZi5nZXRWaXNpYmxlVGFibGVDb2x1bW5zKCkubGVuZ3RoIC1cbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db2x1bW5XaWR0aCAvIHRoaXMuX3RhYmxlUmVmLmdldFZpc2libGVUYWJsZUNvbHVtbnMoKS5sZW5ndGg7XG4gICAgICAgICAgICAvLyBJbiB0aGUgZXZlbnQgb2YgdGFibGVzIHdpdGggYSB2ZXJ5IGhpZ2ggbnVtYmVyIG9mIGNvbHVtbnMsIG5lZWQgdG8gcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvciB3aGljaFxuICAgICAgICAgICAgLy8gd291bGQgbWFrZSBlYWNoIGNvbHVtbiBub3Qgd2lkZSBlbm91Z2ggdG8gYmUgdXNhYmxlIGFuZCBpbnN0ZWFkIHVzZSBhIGhvcml6b250YWwgc2Nyb2xsYmFyLlxuICAgICAgICAgICAgaWYgKHNpemVEaXZpZGVkQnlDb2x1bW5zQ291bnQgPCAxNzYpIHtcbiAgICAgICAgICAgICAgICBzaXplRGl2aWRlZEJ5Q29sdW1uc0NvdW50ID0gMTc2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLmdldChjb2x1bW5OYW1lKSB8fCBzaXplRGl2aWRlZEJ5Q29sdW1uc0NvdW50ICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRXaWR0aCA9IHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLmdldChjb2x1bW5OYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVkV2lkdGggfHwgJ3Vuc2V0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQcmV2aW91cyBjb2x1bW4gbmFtZSAqL1xuICAgIGdldFByZXZpb3VzQ29sdW1uTmFtZShjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAuZ2V0KGNvbHVtbk5hbWUpO1xuICAgIH1cblxuICAgIC8qKiBQcmV2aW91cyBjb2x1bW4gbmFtZSAqL1xuICAgIGdldE5leHRDb2x1bW5OYW1lKGNvbHVtbk5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuZ2V0KGNvbHVtbk5hbWUpO1xuICAgIH1cblxuICAgIC8qKiBPdmVyYWxsIHByZXZpb3VzIGNvbHVtbnMgd2lkdGguIFVzZWQgdG8gY2FsY3VsYXRlIG9mZnNldCBmb3IgdGhlIGFic29sdXRlIHBvc2l0aW9uZWQgY2VsbHMuICovXG4gICAgZ2V0UHJldkNvbHVtbnNXaWR0aChjb2x1bW5OYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnRPZmZzZXRQeE1hcC5nZXQoY29sdW1uTmFtZSkgPz8gMDtcbiAgICB9XG5cbiAgICAvKiogT3ZlcmFsbCBuZXh0IGNvbHVtbnMgd2lkdGguIFVzZWQgdG8gY2FsY3VsYXRlIG9mZnNldCBmb3IgdGhlIGFic29sdXRlIHBvc2l0aW9uZWQgY2VsbHMuICovXG4gICAgZ2V0TmV4dENvbHVtbnNXaWR0aChjb2x1bW5OYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUNvbHVtblJpZ2h0T2Zmc2V0UHhNYXAuZ2V0KGNvbHVtbk5hbWUpID8/IDA7XG4gICAgfVxuXG4gICAgLyoqIFJlZ2lzdGVyIGNvbHVtbidzIGNlbGwgdG8gZ2V0IGl0cyBkaW1lbnNpb25zIGluIGZ1cnRoZXIuICovXG4gICAgcmVnaXN0ZXJDb2x1bW5DZWxsKGNvbHVtbk5hbWU6IHN0cmluZywgY2VsbEVsUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbkNlbGxzID0gdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KGNvbHVtbk5hbWUpIHx8IFtdO1xuICAgICAgICB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5zZXQoY29sdW1uTmFtZSwgW2NlbGxFbFJlZiwgLi4uY29sdW1uQ2VsbHNdKTtcbiAgICB9XG5cbiAgICAvKiogVW5yZWdpc3RlciBjb2x1bW4ncyBjZWxsLiAqL1xuICAgIHVucmVnaXN0ZXJDb2x1bW5DZWxsKGNvbHVtbk5hbWU6IHN0cmluZywgY2VsbEVsUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbkNlbGxzID0gdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KGNvbHVtbk5hbWUpIHx8IFtdO1xuICAgICAgICBjb25zdCBlbG1JbmRleCA9IGNvbHVtbkNlbGxzLmZpbmRJbmRleCgoZSkgPT4gZS5uYXRpdmVFbGVtZW50ID09PSBjZWxsRWxSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKGVsbUluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1uQ2VsbHMuc3BsaWNlKGVsbUluZGV4LCAxKTtcblxuICAgICAgICB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5zZXQoY29sdW1uTmFtZSwgY29sdW1uQ2VsbHMpO1xuICAgIH1cblxuICAgIC8qKiBSZWdpc3RlciB0aGUgdmFsdWUgb2YgY29sdW1uIHdpZHRoIHRoYXQgY2hhbmdlZCBmcm9tICBpbnB1dCAqL1xuICAgIHNldEN1c3RvbVdpZHRoKGNvbHVtbk5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5zZXQoY29sdW1uTmFtZSwgdmFsdWUpO1xuICAgICAgICB0aGlzLmZpeGVkQ29sdW1zV2lkdGhDaGFuZ2UubmV4dCh0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCB0aGUgYXBwcm9wcmlhdGUgY29sdW1uIHJlc2l6ZXIgcG9zaXRpb24uICovXG4gICAgc2V0SW5pdGlhbFJlc2l6ZXJQb3NpdGlvbihyZXNpemVyUG9zaXRpb246IG51bWJlciwgcmVzaXplZENvbHVtbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZWRDb2x1bW4gPSByZXNpemVkQ29sdW1uO1xuICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG5cbiAgICAgICAgaWYgKHJlc2l6ZXJQb3NpdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxMZWZ0T2Zmc2V0ID0gdGhpcy5fc2Nyb2xsTGVmdCAqICh0aGlzLl9ydGwgPyAxIDogLTEpO1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gcmVzaXplclBvc2l0aW9uIC0gVEFCTEVfUkVTSVpFUl9CT1JERVJfV0lEVEggKyBzY3JvbGxMZWZ0T2Zmc2V0O1xuICAgICAgICAgICAgdGhpcy5yZXNpemVyUG9zaXRpb24kLm5leHQodGhpcy5yZXNpemVyUG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEhpZGUgdGhlIGNvbHVtbiByZXNpemVyLiAqL1xuICAgIGhpZGVSZXNpemVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcmVzaXplSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXNpemVyUG9zaXRpb24kLm5leHQodGhpcy5yZXNpemVyUG9zaXRpb24pO1xuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2submV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGUgc3RhcnQgcmVzaXppbmcuICovXG4gICAgc3RhcnRSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3RhcnRYID0gdGhpcy5yZXNpemVyUG9zaXRpb247XG4gICAgICAgIHRoaXMuX2NsaWVudFN0YXJ0WCA9IGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlUmVzaXplclBvc2l0aW9uT25Nb3VzZU1vdmUoKTtcblxuICAgICAgICB0aGlzLl9yZXNpemVJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXNpemVJblByb2dyZXNzJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGUgZW5kIHJlc2l6aW5nLiAqL1xuICAgIGZpbmlzaFJlc2l6ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVyTW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXNpemVJblByb2dyZXNzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXNpemVyUG9zaXRpb24kLm5leHQodGhpcy5yZXNpemVyUG9zaXRpb24pO1xuXG4gICAgICAgIGlmICh0aGlzLl9zdGFydFggIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50U3RhcnRYID0gdGhpcy5fY2xpZW50U3RhcnRYID8/IDA7XG4gICAgICAgICAgICBjb25zdCBkaWZmWCA9IHRoaXMuX3J0bCA/IGNsaWVudFN0YXJ0WCAtIGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRYIC0gY2xpZW50U3RhcnRYO1xuXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVzaXplKGRpZmZYKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N0YXJ0WCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2NsaWVudFN0YXJ0WCA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlIGNvbHVtbnMgd2lkdGggYWZ0ZXIgcmVzaXppbmcsIHByZXZlbnQgZnJvbSBoYXZpbmcgdG9vIHNtYWxsIGNvbHVtbnMuICovXG4gICAgX3Byb2Nlc3NSZXNpemUoZGlmZlg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCByZXNpemVkRWxlbWVudCA9IHRoaXMuX2NvbHVtbnNDZWxsTWFwLmdldCh0aGlzLl9yZXNpemVkQ29sdW1uKT8uWzBdPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IHJlc2l6ZWRFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgICBpZiAoIWNvbHVtbldpZHRoIHx8ICFyZXNpemVkRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRpZmZYIDwgMCAmJiBjb2x1bW5XaWR0aCArIGRpZmZYIDwgdGhpcy5fdGFibGVSZWYubWluaW11bUNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICBkaWZmWCA9IHRoaXMuX3RhYmxlUmVmLm1pbmltdW1Db2x1bW5XaWR0aCAtIGNvbHVtbldpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmZpeGVkV2lkdGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2NvbHVtbk5hbWUsIGNlbGxzXSBvZiB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2VsbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsc1swXS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZml4ZWRDb2x1bXNXaWR0aENoYW5nZS5uZXh0KHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSW4gY2FzZSBcIl9yZXNpemVkQ29sdW1uXCIgaXMgZnJlZXphYmxlLCBtYWtlIHN1cmUgdGhlIG92ZXJhbGwgd2lkdGggb2YgZnJlZXphYmxlIGNvbHVtbnMgZG9lcyBub3QgZXhjZWVkIHRoZSB3aWR0aCBvZiB0aGUgdGFibGUuXG4gICAgICAgICAqIElmIGl0IGRvZXMsIGNvbHVtbnMgd2lsbCBiZSBtYWRlIHVuZnJvemVuLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGlmZlggPiAwICYmXG4gICAgICAgICAgICAodGhpcy5fdGFibGVSZWYuX2ZyZWV6YWJsZUNvbHVtbnMuaGFzKHRoaXMuX3Jlc2l6ZWRDb2x1bW4pIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSZWYuX2ZyZWV6YWJsZUVuZENvbHVtbnM/Lmhhcyh0aGlzLl9yZXNpemVkQ29sdW1uKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgYWN0dWFsV2lkdGggPSB0aGlzLmdldFByZXZDb2x1bW5zV2lkdGgodGhpcy5fcmVzaXplZENvbHVtbikgKyBjb2x1bW5XaWR0aDtcbiAgICAgICAgICAgIGlmICh0aGlzLl90YWJsZVJlZi5fZnJlZXphYmxlRW5kQ29sdW1ucz8uaGFzKHRoaXMuX3Jlc2l6ZWRDb2x1bW4pKSB7XG4gICAgICAgICAgICAgICAgYWN0dWFsV2lkdGggPSB0aGlzLmdldE5leHRDb2x1bW5zV2lkdGgodGhpcy5fcmVzaXplZENvbHVtbikgKyBjb2x1bW5XaWR0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRoID0gYWN0dWFsV2lkdGggKyBkaWZmWDtcbiAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5fdGFibGVSZWYuZ2V0TWF4QWxsb3dlZEZyZWV6YWJsZUNvbHVtbnNXaWR0aCgpO1xuICAgICAgICAgICAgaWYgKG5ld1dpZHRoID49IG1heFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSZWYuX2ZyZWV6YWJsZUNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlUmVmLnVuZnJlZXplKGNvbHVtbi50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRXaWR0aCA9IGNvbHVtbldpZHRoICsgZGlmZlg7XG4gICAgICAgIHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLnNldCh0aGlzLl9yZXNpemVkQ29sdW1uLCB1cGRhdGVkV2lkdGggKyAncHgnKTtcbiAgICAgICAgdGhpcy5maXhlZENvbHVtc1dpZHRoQ2hhbmdlLm5leHQodGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXApO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb3plbkNvbHVtbnNXaWR0aEFmdGVyUmVzaXplKHRoaXMuX3Jlc2l6ZWRDb2x1bW4sIGRpZmZYKTtcblxuICAgICAgICBjb25zdCBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJlc2l6ZWRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdMZWZ0LCAxMCkgKyBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nUmlnaHQsIDEwKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlSGVhZGVyT3ZlcmZsb3dTdGF0ZSh1cGRhdGVkV2lkdGggLSBwYWRkaW5nKTtcbiAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRJbml0aWFsVGFibGVXaWR0aCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbFRhYmxlV2lkdGggPSB0aGlzLl90YWJsZVJlZi5fdGFibGVXaWR0aFB4O1xuICAgIH1cblxuICAgIC8qKiBVcGRhdGUgY29sdW1uIHJlc2l6ZXIgcG9zaXRpb24uICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlUmVzaXplclBvc2l0aW9uT25Nb3VzZU1vdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFN0YXJ0WCA9IHRoaXMuX2NsaWVudFN0YXJ0WCA/PyAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpZmZYID0gdGhpcy5fcnRsID8gY2xpZW50U3RhcnRYIC0gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFggLSBjbGllbnRTdGFydFg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSAodGhpcy5fc3RhcnRYID8/IDApICsgZGlmZlg7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVyUG9zaXRpb24kLm5leHQodGhpcy5yZXNpemVyUG9zaXRpb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGhlYWRlciB0ZXh0IGxlbmd0aCBnb2VzIG92ZXIgdGhlIGNvbHVtbiB3aWR0aC4gSW4gc3VjaCBjYXNlIGFwcGxpZXMgdGV4dCB0cnVuY2F0aW9uIHdpdGhcbiAgICAgKiBlbGxpcHNpcyBhbmQgbWFrZSBzdXJlIHdlIGFsc28gc2hvdyBhIHRvb2x0aXAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUhlYWRlck92ZXJmbG93U3RhdGUodXBkYXRlZFdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2NvbHVtbnNDZWxsTWFwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuX3Jlc2l6ZWRDb2x1bW4pXG4gICAgICAgICAgICA/LmZpbmQoKGMpID0+IGM/Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ1RIJyk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZpc2libGVDb2x1bW4gPSB0aGlzLl90YWJsZVJlZi5nZXRWaXNpYmxlVGFibGVDb2x1bW5zKCkuZmluZCgoYykgPT4gYy5uYW1lID09PSB0aGlzLl9yZXNpemVkQ29sdW1uKTtcbiAgICAgICAgY29uc3QgaGVhZGVyVGV4dEVsZW0gPSBlbGVtZW50Py5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLl90YWJsZVJlZi5pZH0taGVhZGVyLWNlbGwtJHt0aGlzLl9yZXNpemVkQ29sdW1ufWApO1xuXG4gICAgICAgIGlmICghaGVhZGVyVGV4dEVsZW0gfHwgIXZpc2libGVDb2x1bW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2aXNpYmxlQ29sdW1uLmhlYWRlck92ZXJmbG93cyA9IGhlYWRlclRleHRFbGVtLnNjcm9sbFdpZHRoID4gdXBkYXRlZFdpZHRoO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -12,4 +12,4 @@ export class Table {
|
|
|
12
12
|
this.openTableColumnSettings = new EventEmitter();
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUtaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWlCbkUsTUFBTSxPQUFnQixLQUFLO0lBQTNCO1FBMktJLCtDQUErQztRQUN0QywwQkFBcUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU5RSxpREFBaUQ7UUFDeEMsNEJBQXVCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFaEYsZ0RBQWdEO1FBQ3ZDLDJCQUFzQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9FLGlEQUFpRDtRQUN4Qyw0QkFBdUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQWFwRixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2VhcmNoLWZpZWxkJztcbmltcG9ydCB7IFByZXNldE1hbmFnZWRDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvY3VzYWJsZUdyaWREaXJlY3RpdmUsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlciB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbGxlY3Rpb25Tb3J0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy90YWJsZS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQsIFNhdmVSb3dzRXZlbnQsIFRhYmxlSW5pdGlhbFN0YXRlLCBUYWJsZVJvdywgVGFibGVWaXJ0dWFsU2Nyb2xsIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFibGVTY3JvbGxhYmxlIH0gZnJvbSAnLi9zZXJ2aWNlcy90YWJsZS1zY3JvbGwtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZVZhbHVlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZTxUID0gYW55PiBpbXBsZW1lbnRzIFByZXNldE1hbmFnZWRDb21wb25lbnQ8UGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ+IHtcbiAgICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgX2xvYWRQcmV2aW91c1BhZ2VzOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgcGFnZVNjcm9sbGluZzogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGxvYWRQYWdlc0JlZm9yZTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHBhZ2VTaXplOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgYWJzdHJhY3QgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBmcmVlemVFbmRDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY3VycmVudCBwcmVzZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiAqL1xuICAgIGFic3RyYWN0IHByZXNldENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldD47XG5cbiAgICAvKiogU3VtIG9mIHdpZHRocyBvZiBmaXhlZCBjb2x1bW5zIChzZW1hbnRpYyBoaWdobGlnaHRpbmcsIHNlbGVjdGlvbikgKi9cbiAgICBhYnN0cmFjdCBnZXQgX2ZpeGVkQ29sdW1uc1BhZGRpbmcoKTogbnVtYmVyO1xuXG4gICAgLyoqIEZyZWV6YWJsZSBjb2x1bW4gbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcyAqL1xuICAgIGFic3RyYWN0IGdldCBfZnJlZXphYmxlQ29sdW1ucygpOiBSZWFkb25seU1hcDxzdHJpbmcsIG51bWJlcj47XG5cbiAgICAvKiogRnJlZXphYmxlIGNvbHVtbiBuYW1lcyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSBpbmRleGVzICovXG4gICAgYWJzdHJhY3QgZ2V0IF9mcmVlemFibGVFbmRDb2x1bW5zKCk6IFJlYWRvbmx5TWFwPHN0cmluZywgbnVtYmVyPjtcblxuICAgIC8qKiBXaWR0aCBvZiB0aGUgdGFibGUgZWxlbWVudCBpbiBweCAqL1xuICAgIGFic3RyYWN0IGdldCBfdGFibGVXaWR0aFB4KCk6IG51bWJlcjtcblxuICAgIGFic3RyYWN0IGdldCBsb2FkaW5nU3RhdGUoKTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGluaXRpYWxTdGF0ZTogVGFibGVJbml0aWFsU3RhdGUgfCBudWxsO1xuXG4gICAgLyoqIFRhYmxlIGNvbHVtbnMgZGVmaW5pdGlvbiBsaXN0ICovXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVDb2x1bW5zU3RyZWFtOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSB0YWJsZVNjcm9sbE1vY2tDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSB0YWJsZVNjcm9sbGFibGU6IFRhYmxlU2Nyb2xsYWJsZTtcblxuICAgIGFic3RyYWN0IF92aXJ0dWFsU2Nyb2xsRGlyZWN0aXZlOiBUYWJsZVZpcnR1YWxTY3JvbGwgfCBudWxsO1xuXG4gICAgYWJzdHJhY3QgX3RhYmxlUm93c1Zpc2libGU6IFRhYmxlUm93PFQ+W107XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzOiBUYWJsZVJvdzxUPltdO1xuXG4gICAgYWJzdHJhY3QgX3RhYmxlUm93c0luVmlld1BvcnRQbGFjZWhvbGRlcjogbnVtYmVyW107XG5cbiAgICBhYnN0cmFjdCBfZm9jdXNhYmxlR3JpZDogRm9jdXNhYmxlR3JpZERpcmVjdGl2ZTtcblxuICAgIGFic3RyYWN0IF9zZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICBhYnN0cmFjdCBjb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyO1xuXG4gICAgLyoqIEdldCB0YWJsZSBzdGF0ZSAqL1xuICAgIGFic3RyYWN0IGdldFRhYmxlU3RhdGUoKTogVGFibGVTdGF0ZTtcblxuICAgIC8qKiBTZXQgdGFibGUgc3RhdGUgKi9cbiAgICBhYnN0cmFjdCBzZXRUYWJsZVN0YXRlKHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiB2b2lkO1xuXG4gICAgLyoqIEdldCB0YWJsZSBjb2x1bW5zIGRlZmluaXRpb24gbGlzdCAqL1xuICAgIGFic3RyYWN0IGdldFRhYmxlQ29sdW1ucygpOiBUYWJsZUNvbHVtbltdO1xuXG4gICAgLyoqIEdldCBhIGxpc3Qgb2YgdmlzaWJsZSB0YWJsZSBjb2x1bW5zLiAqL1xuICAgIGFic3RyYWN0IGdldFZpc2libGVUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXTtcblxuICAgIC8qKiBTZXQgU29ydGluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IHNvcnQoc29ydFJ1bGVzOiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgU29ydGluZyBydWxlcyB0byB0aGUgZXhpc3Rpbmcgb25lcyAqL1xuICAgIGFic3RyYWN0IGFkZFNvcnQoc29ydFJ1bGVzOiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZDtcblxuICAgIC8qKiBTZXQgRmlsdGVyaW5nIHJ1bGVzICovXG4gICAgYWJzdHJhY3QgZmlsdGVyKGZpbHRlclJ1bGVzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkO1xuXG4gICAgLyoqIEFkZCBGaWx0ZXIgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRGaWx0ZXIoZmlsdGVyUnVsZXM6IENvbGxlY3Rpb25GaWx0ZXJbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IGdyb3VwaW5nIHJ1bGVzICovXG4gICAgYWJzdHJhY3QgZ3JvdXAoZ3JvdXBSdWxlczogQ29sbGVjdGlvbkdyb3VwW10pOiB2b2lkO1xuXG4gICAgLyoqIEFkZCBHcm91cCBydWxlcyB0byB0aGUgZXhpc3Rpbmcgb25lcyAqL1xuICAgIGFic3RyYWN0IGFkZEdyb3VwKGdyb3VwUnVsZXM6IENvbGxlY3Rpb25Hcm91cFtdKTogdm9pZDtcblxuICAgIC8qKiBTZXQgdGFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IHNldENvbHVtbnMoY29sdW1uczogc3RyaW5nW10pOiB2b2lkO1xuXG4gICAgLyoqIFRvZ2dsZSByb3cgY2hlY2tlZCBzdGF0ZS4gKi9cbiAgICBhYnN0cmFjdCB0b2dnbGVTZWxlY3RhYmxlUm93KHJvd0luZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgLyoqIEZyZWV6ZSB0YWJsZSBjb2x1bW5zIHRvIGluY2x1ZGluZyAqL1xuICAgIGFic3RyYWN0IGZyZWV6ZVRvQ29sdW1uKGNvbHVtbktleTogc3RyaW5nLCBlbmQ/OiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBVbmZyZWV6ZSBjb2x1bW4gKi9cbiAgICBhYnN0cmFjdCB1bmZyZWV6ZShjb2x1bW5LZXk6IHN0cmluZywgZW5kPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogU2VhcmNoIGluIGFsbCB0YWJsZSBjb2x1bW5zICovXG4gICAgYWJzdHJhY3Qgc2VhcmNoKHNlYXJjaElucHV0OiBTZWFyY2hJbnB1dCk6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBTb3J0IFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd1NvcnRTZXR0aW5nc0luVG9vbGJhcihzaG93U29ydFNldHRpbmdzOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIEZpbHRlciBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dGaWx0ZXJTZXR0aW5nc0luVG9vbGJhcihzaG93RmlsdGVyU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgR3JvdXAgU2V0dGluZ3MgYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBhYnN0cmFjdCBzaG93R3JvdXBTZXR0aW5nc0luVG9vbGJhcihzaG93R3JvdXBTZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBDb2x1bW5zIFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd0NvbHVtblNldHRpbmdzSW5Ub29sYmFyKHNob3dDb2x1bW5TZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogRGlzYWJsZSBmaWx0ZXJpbmcgYnkgaGVhZGVyIGNvbHVtbiBtZW51ICovXG4gICAgYWJzdHJhY3Qgc2V0SGVhZGVyQ29sdW1uRmlsdGVyaW5nRGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFNldCBjdXJyZW50IHBhZ2UgKi9cbiAgICBhYnN0cmFjdCBzZXRDdXJyZW50UGFnZShjdXJyZW50UGFnZTogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKiBHZXRzIHRoZSBtYXggYWxsb3dlZCB3aWR0aCBmb3IgYWxsIGZyZWV6YWJsZSBjb2x1bW5zICovXG4gICAgYWJzdHJhY3QgZ2V0TWF4QWxsb3dlZEZyZWV6YWJsZUNvbHVtbnNXaWR0aCgpOiBudW1iZXI7XG5cbiAgICAvKiogR2V0IHRhYmxlIGRhdGEgc291cmNlICovXG4gICAgYWJzdHJhY3QgZ2V0RGF0YVNvdXJjZSgpOiBUYWJsZURhdGFTb3VyY2U8VD47XG5cbiAgICAvKiogTWFudWFsbHkgdHJpZ2dlcnMgY29sdW1ucyB3aWR0aCByZWNhbGN1bGF0aW9uICovXG4gICAgYWJzdHJhY3QgcmVjYWxjdWxhdGVUYWJsZUNvbHVtbldpZHRoKCk6IHZvaWQ7XG5cbiAgICAvKiogRmV0Y2ggZGF0YSBzb3VyY2UgZGF0YS4gKi9cbiAgICBhYnN0cmFjdCBmZXRjaCgpOiB2b2lkO1xuXG4gICAgLyoqIEFkZHMgZW1wdHkgcm93IGZvciBlZGl0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJvd3MgYXJyYXkuICovXG4gICAgYWJzdHJhY3QgYWRkUm93KCk6IHZvaWQ7XG5cbiAgICAvKiogRW1pdHMgc2F2ZSBldmVudCBhbmQgcmVzZXRzIGVkaXRhYmxlIHJvd3MgYXJyYXkuICovXG4gICAgYWJzdHJhY3Qgc2F2ZVJvd3MoKTogdm9pZDtcblxuICAgIC8qKiBDYW5jZWxzIGVkaXRpbmcgYW5kIGRpc2NhcmRzIG5ld2x5IGFkZGVkIHJvd3MgKi9cbiAgICBhYnN0cmFjdCBjYW5jZWxFZGl0aW5nKCk6IHZvaWQ7XG5cbiAgICAvKiogRXhwYW5kIGFsbCB0aGUgcm93cyBvZiB0aGUgdGFibGUgKi9cbiAgICBhYnN0cmFjdCBleHBhbmRBbGwoKTogdm9pZDtcblxuICAgIC8qKiBDb2xsYXBzZSBhbGwgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlICovXG4gICAgYWJzdHJhY3QgY29sbGFwc2VBbGwoKTogdm9pZDtcblxuICAgIC8qKiBTZXRzIHNlbGVjdGVkIHByZXNldC4gKi9cbiAgICBhYnN0cmFjdCBzZXRQcmVzZXQoZGF0YTogUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQpOiB2b2lkO1xuXG4gICAgLyoqIFJldHVybnMgY3VycmVudCBwcmVzZXQuICovXG4gICAgYWJzdHJhY3QgZ2V0Q3VycmVudFByZXNldCgpOiBQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldDtcblxuICAgIGFic3RyYWN0IGdldFJvd3NJblZpZXdwb3J0KCk6IG51bWJlcltdO1xuXG4gICAgYWJzdHJhY3Qgc2V0Um93c0luVmlld3BvcnQoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCB0b2dnbGVFeHBhbmRhYmxlVGFibGVSb3cocm93OiBUYWJsZVJvdzxUPiwgZm9yY2VGZXRjaD86IGJvb2xlYW4pO1xuXG4gICAgYWJzdHJhY3Qgb25UYWJsZVJvd3NDaGFuZ2VkKCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCByZWZyZXNoRG5kTGlzdCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgY2xlYXJUYWJsZVJvd3MoKTogdm9pZDtcblxuICAgIGFic3RyYWN0IF9vblNweUludGVyc2VjdChpbnRlcnNlY3RlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBTb3J0IFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZVNvcnRTZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIFRvb2xiYXIgRmlsdGVyIFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZUZpbHRlclNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBHcm91cCBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVHcm91cFNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBDb2x1bW4gU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlQ29sdW1uU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIGVtcHR5IHJvdyBhZGRlZC4gKi9cbiAgICByZWFkb25seSBlbXB0eVJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBzYXZlIGJ1dHRvbiBwcmVzc2VkLiAqL1xuICAgIHJlYWRvbmx5IHNhdmU6IEV2ZW50RW1pdHRlcjxTYXZlUm93c0V2ZW50PFQ+PjtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIGNhbmNlbCBidXR0b24gcHJlc3NlZC4gKi9cbiAgICByZWFkb25seSBjYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIHRhYmxlIGlzIHNjcm9sbGVkIHdoaWxlIHVzaW5nIHBhZ2VTY3JvbGxpbmcuICovXG4gICAgcmVhZG9ubHkgdGFibGVTY3JvbGxlZDogRXZlbnRFbWl0dGVyPG51bWJlcj47XG59XG4iXX0=
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUtaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWlCbkUsTUFBTSxPQUFnQixLQUFLO0lBQTNCO1FBNktJLCtDQUErQztRQUN0QywwQkFBcUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU5RSxpREFBaUQ7UUFDeEMsNEJBQXVCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFaEYsZ0RBQWdEO1FBQ3ZDLDJCQUFzQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9FLGlEQUFpRDtRQUN4Qyw0QkFBdUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQWFwRixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2VhcmNoLWZpZWxkJztcbmltcG9ydCB7IFByZXNldE1hbmFnZWRDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvY3VzYWJsZUdyaWREaXJlY3RpdmUsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlciB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbGxlY3Rpb25Tb3J0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy90YWJsZS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQsIFNhdmVSb3dzRXZlbnQsIFRhYmxlSW5pdGlhbFN0YXRlLCBUYWJsZVJvdywgVGFibGVWaXJ0dWFsU2Nyb2xsIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFibGVTY3JvbGxhYmxlIH0gZnJvbSAnLi9zZXJ2aWNlcy90YWJsZS1zY3JvbGwtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZVZhbHVlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZTxUID0gYW55PiBpbXBsZW1lbnRzIFByZXNldE1hbmFnZWRDb21wb25lbnQ8UGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ+IHtcbiAgICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgX2xvYWRQcmV2aW91c1BhZ2VzOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgcGFnZVNjcm9sbGluZzogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGxvYWRQYWdlc0JlZm9yZTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHBhZ2VTaXplOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgYWJzdHJhY3QgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBmcmVlemVFbmRDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY3VycmVudCBwcmVzZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiAqL1xuICAgIGFic3RyYWN0IHByZXNldENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldD47XG5cbiAgICAvKiogU3VtIG9mIHdpZHRocyBvZiBmaXhlZCBjb2x1bW5zIChzZW1hbnRpYyBoaWdobGlnaHRpbmcsIHNlbGVjdGlvbikgKi9cbiAgICBhYnN0cmFjdCBnZXQgX2ZpeGVkQ29sdW1uc1BhZGRpbmcoKTogbnVtYmVyO1xuXG4gICAgLyoqIEZyZWV6YWJsZSBjb2x1bW4gbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcyAqL1xuICAgIGFic3RyYWN0IGdldCBfZnJlZXphYmxlQ29sdW1ucygpOiBSZWFkb25seU1hcDxzdHJpbmcsIG51bWJlcj47XG5cbiAgICAvKiogRnJlZXphYmxlIGNvbHVtbiBuYW1lcyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSBpbmRleGVzICovXG4gICAgYWJzdHJhY3QgZ2V0IF9mcmVlemFibGVFbmRDb2x1bW5zKCk6IFJlYWRvbmx5TWFwPHN0cmluZywgbnVtYmVyPjtcblxuICAgIC8qKiBXaWR0aCBvZiB0aGUgdGFibGUgZWxlbWVudCBpbiBweCAqL1xuICAgIGFic3RyYWN0IGdldCBfdGFibGVXaWR0aFB4KCk6IG51bWJlcjtcblxuICAgIGFic3RyYWN0IGdldCBsb2FkaW5nU3RhdGUoKTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGluaXRpYWxTdGF0ZTogVGFibGVJbml0aWFsU3RhdGUgfCBudWxsO1xuXG4gICAgLyoqIFRhYmxlIGNvbHVtbnMgZGVmaW5pdGlvbiBsaXN0ICovXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVDb2x1bW5zU3RyZWFtOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSB0YWJsZVNjcm9sbE1vY2tDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSB0YWJsZVNjcm9sbGFibGU6IFRhYmxlU2Nyb2xsYWJsZTtcblxuICAgIGFic3RyYWN0IF92aXJ0dWFsU2Nyb2xsRGlyZWN0aXZlOiBUYWJsZVZpcnR1YWxTY3JvbGwgfCBudWxsO1xuXG4gICAgYWJzdHJhY3QgX3RhYmxlUm93c1Zpc2libGU6IFRhYmxlUm93PFQ+W107XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzOiBUYWJsZVJvdzxUPltdO1xuXG4gICAgYWJzdHJhY3QgX3RhYmxlUm93c0luVmlld1BvcnRQbGFjZWhvbGRlcjogbnVtYmVyW107XG5cbiAgICBhYnN0cmFjdCBfZm9jdXNhYmxlR3JpZDogRm9jdXNhYmxlR3JpZERpcmVjdGl2ZTtcblxuICAgIGFic3RyYWN0IF9zZWxlY3Rpb25Nb2RlOiBTZWxlY3Rpb25Nb2RlVmFsdWU7XG5cbiAgICBhYnN0cmFjdCBjb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyO1xuXG4gICAgLyoqIEdldCB0YWJsZSBzdGF0ZSAqL1xuICAgIGFic3RyYWN0IGdldFRhYmxlU3RhdGUoKTogVGFibGVTdGF0ZTtcblxuICAgIC8qKiBTZXQgdGFibGUgc3RhdGUgKi9cbiAgICBhYnN0cmFjdCBzZXRUYWJsZVN0YXRlKHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiB2b2lkO1xuXG4gICAgLyoqIEdldCB0YWJsZSBjb2x1bW5zIGRlZmluaXRpb24gbGlzdCAqL1xuICAgIGFic3RyYWN0IGdldFRhYmxlQ29sdW1ucygpOiBUYWJsZUNvbHVtbltdO1xuXG4gICAgLyoqIEdldCBhIGxpc3Qgb2YgdmlzaWJsZSB0YWJsZSBjb2x1bW5zLiAqL1xuICAgIGFic3RyYWN0IGdldFZpc2libGVUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXTtcblxuICAgIC8qKiBTZXQgU29ydGluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IHNvcnQoc29ydFJ1bGVzOiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgU29ydGluZyBydWxlcyB0byB0aGUgZXhpc3Rpbmcgb25lcyAqL1xuICAgIGFic3RyYWN0IGFkZFNvcnQoc29ydFJ1bGVzOiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZDtcblxuICAgIC8qKiBTZXQgRmlsdGVyaW5nIHJ1bGVzICovXG4gICAgYWJzdHJhY3QgZmlsdGVyKGZpbHRlclJ1bGVzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkO1xuXG4gICAgLyoqIEFkZCBGaWx0ZXIgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRGaWx0ZXIoZmlsdGVyUnVsZXM6IENvbGxlY3Rpb25GaWx0ZXJbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IGdyb3VwaW5nIHJ1bGVzICovXG4gICAgYWJzdHJhY3QgZ3JvdXAoZ3JvdXBSdWxlczogQ29sbGVjdGlvbkdyb3VwW10pOiB2b2lkO1xuXG4gICAgLyoqIEFkZCBHcm91cCBydWxlcyB0byB0aGUgZXhpc3Rpbmcgb25lcyAqL1xuICAgIGFic3RyYWN0IGFkZEdyb3VwKGdyb3VwUnVsZXM6IENvbGxlY3Rpb25Hcm91cFtdKTogdm9pZDtcblxuICAgIC8qKiBTZXQgdGFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IHNldENvbHVtbnMoY29sdW1uczogc3RyaW5nW10pOiB2b2lkO1xuXG4gICAgLyoqIFRvZ2dsZSByb3cgY2hlY2tlZCBzdGF0ZS4gKi9cbiAgICBhYnN0cmFjdCB0b2dnbGVTZWxlY3RhYmxlUm93KHJvd0luZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgLyoqIEZyZWV6ZSB0YWJsZSBjb2x1bW5zIHRvIGluY2x1ZGluZyAqL1xuICAgIGFic3RyYWN0IGZyZWV6ZVRvQ29sdW1uKGNvbHVtbktleTogc3RyaW5nLCBlbmQ/OiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBVbmZyZWV6ZSBjb2x1bW4gKi9cbiAgICBhYnN0cmFjdCB1bmZyZWV6ZShjb2x1bW5LZXk6IHN0cmluZywgZW5kPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogU2VhcmNoIGluIGFsbCB0YWJsZSBjb2x1bW5zICovXG4gICAgYWJzdHJhY3Qgc2VhcmNoKHNlYXJjaElucHV0OiBTZWFyY2hJbnB1dCk6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBTb3J0IFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd1NvcnRTZXR0aW5nc0luVG9vbGJhcihzaG93U29ydFNldHRpbmdzOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIEZpbHRlciBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dGaWx0ZXJTZXR0aW5nc0luVG9vbGJhcihzaG93RmlsdGVyU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgR3JvdXAgU2V0dGluZ3MgYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBhYnN0cmFjdCBzaG93R3JvdXBTZXR0aW5nc0luVG9vbGJhcihzaG93R3JvdXBTZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBDb2x1bW5zIFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd0NvbHVtblNldHRpbmdzSW5Ub29sYmFyKHNob3dDb2x1bW5TZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogRGlzYWJsZSBmaWx0ZXJpbmcgYnkgaGVhZGVyIGNvbHVtbiBtZW51ICovXG4gICAgYWJzdHJhY3Qgc2V0SGVhZGVyQ29sdW1uRmlsdGVyaW5nRGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFNldCBjdXJyZW50IHBhZ2UgKi9cbiAgICBhYnN0cmFjdCBzZXRDdXJyZW50UGFnZShjdXJyZW50UGFnZTogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKiBHZXRzIHRoZSBtYXggYWxsb3dlZCB3aWR0aCBmb3IgYWxsIGZyZWV6YWJsZSBjb2x1bW5zICovXG4gICAgYWJzdHJhY3QgZ2V0TWF4QWxsb3dlZEZyZWV6YWJsZUNvbHVtbnNXaWR0aCgpOiBudW1iZXI7XG5cbiAgICAvKiogR2V0IHRhYmxlIGRhdGEgc291cmNlICovXG4gICAgYWJzdHJhY3QgZ2V0RGF0YVNvdXJjZSgpOiBUYWJsZURhdGFTb3VyY2U8VD47XG5cbiAgICAvKiogTWFudWFsbHkgdHJpZ2dlcnMgY29sdW1ucyB3aWR0aCByZWNhbGN1bGF0aW9uICovXG4gICAgYWJzdHJhY3QgcmVjYWxjdWxhdGVUYWJsZUNvbHVtbldpZHRoKCk6IHZvaWQ7XG5cbiAgICAvKiogRmV0Y2ggZGF0YSBzb3VyY2UgZGF0YS4gKi9cbiAgICBhYnN0cmFjdCBmZXRjaCgpOiB2b2lkO1xuXG4gICAgLyoqIEFkZHMgZW1wdHkgcm93IGZvciBlZGl0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJvd3MgYXJyYXkuICovXG4gICAgYWJzdHJhY3QgYWRkUm93KCk6IHZvaWQ7XG5cbiAgICAvKiogRW1pdHMgc2F2ZSBldmVudCBhbmQgcmVzZXRzIGVkaXRhYmxlIHJvd3MgYXJyYXkuICovXG4gICAgYWJzdHJhY3Qgc2F2ZVJvd3MoKTogdm9pZDtcblxuICAgIC8qKiBDYW5jZWxzIGVkaXRpbmcgYW5kIGRpc2NhcmRzIG5ld2x5IGFkZGVkIHJvd3MgKi9cbiAgICBhYnN0cmFjdCBjYW5jZWxFZGl0aW5nKCk6IHZvaWQ7XG5cbiAgICAvKiogRXhwYW5kIGFsbCB0aGUgcm93cyBvZiB0aGUgdGFibGUgKi9cbiAgICBhYnN0cmFjdCBleHBhbmRBbGwoKTogdm9pZDtcblxuICAgIC8qKiBDb2xsYXBzZSBhbGwgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlICovXG4gICAgYWJzdHJhY3QgY29sbGFwc2VBbGwoKTogdm9pZDtcblxuICAgIC8qKiBTZXRzIHNlbGVjdGVkIHByZXNldC4gKi9cbiAgICBhYnN0cmFjdCBzZXRQcmVzZXQoZGF0YTogUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQpOiB2b2lkO1xuXG4gICAgLyoqIFJldHVybnMgY3VycmVudCBwcmVzZXQuICovXG4gICAgYWJzdHJhY3QgZ2V0Q3VycmVudFByZXNldCgpOiBQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldDtcblxuICAgIGFic3RyYWN0IGdldFJvd3NJblZpZXdwb3J0KCk6IG51bWJlcltdO1xuXG4gICAgYWJzdHJhY3Qgc2V0Um93c0luVmlld3BvcnQoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCB0b2dnbGVFeHBhbmRhYmxlVGFibGVSb3cocm93OiBUYWJsZVJvdzxUPiwgZm9yY2VGZXRjaD86IGJvb2xlYW4pO1xuXG4gICAgYWJzdHJhY3Qgb25UYWJsZVJvd3NDaGFuZ2VkKCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCByZWZyZXNoRG5kTGlzdCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgY2xlYXJUYWJsZVJvd3MoKTogdm9pZDtcblxuICAgIGFic3RyYWN0IF9vblNweUludGVyc2VjdChpbnRlcnNlY3RlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBtaW5pbXVtQ29sdW1uV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBUb29sYmFyIFNvcnQgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlU29ydFNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBGaWx0ZXIgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlRmlsdGVyU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIEdyb3VwIFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZUdyb3VwU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIENvbHVtbiBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVDb2x1bW5TZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gZW1wdHkgcm93IGFkZGVkLiAqL1xuICAgIHJlYWRvbmx5IGVtcHR5Um93QWRkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIHNhdmUgYnV0dG9uIHByZXNzZWQuICovXG4gICAgcmVhZG9ubHkgc2F2ZTogRXZlbnRFbWl0dGVyPFNhdmVSb3dzRXZlbnQ8VD4+O1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gY2FuY2VsIGJ1dHRvbiBwcmVzc2VkLiAqL1xuICAgIHJlYWRvbmx5IGNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gdGFibGUgaXMgc2Nyb2xsZWQgd2hpbGUgdXNpbmcgcGFnZVNjcm9sbGluZy4gKi9cbiAgICByZWFkb25seSB0YWJsZVNjcm9sbGVkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPjtcbn1cbiJdfQ==
|