ngx-aur-mat-table 12.2.47 → 12.2.49
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/bundles/ngx-aur-mat-table.umd.js +11 -8
- package/bundles/ngx-aur-mat-table.umd.js.map +1 -1
- package/esm2015/lib/ngx-aur-mat-table.component.js +6 -4
- package/esm2015/lib/providers/SelectionProvider.js +6 -6
- package/fesm2015/ngx-aur-mat-table.js +10 -8
- package/fesm2015/ngx-aur-mat-table.js.map +1 -1
- package/lib/providers/SelectionProvider.d.ts +2 -2
- package/package.json +1 -1
|
@@ -76,9 +76,11 @@ export class NgxAurMatTableComponent {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
ngOnChanges(changes) {
|
|
79
|
+
var _a, _b, _c;
|
|
79
80
|
if ((changes['tableData'] && this.tableData) || (changes['displayColumns'] && this._displayColumns)) {
|
|
81
|
+
const selected = (_c = (_b = (_a = this.selectionProvider) === null || _a === void 0 ? void 0 : _a.selection) === null || _b === void 0 ? void 0 : _b.selected) !== null && _c !== void 0 ? _c : [];
|
|
80
82
|
this.tableData = this.tableData || [];
|
|
81
|
-
this.prepareTableData();
|
|
83
|
+
this.prepareTableData(selected);
|
|
82
84
|
}
|
|
83
85
|
if (changes['highlight'] && this.highlight) {
|
|
84
86
|
this.handleHighlightChange(this.highlight);
|
|
@@ -147,7 +149,7 @@ export class NgxAurMatTableComponent {
|
|
|
147
149
|
}
|
|
148
150
|
}
|
|
149
151
|
}
|
|
150
|
-
prepareTableData() {
|
|
152
|
+
prepareTableData(initSelection = []) {
|
|
151
153
|
this.initTable();
|
|
152
154
|
this.initCustomSortFunctionsMap();
|
|
153
155
|
this.initPaginator();
|
|
@@ -157,7 +159,7 @@ export class NgxAurMatTableComponent {
|
|
|
157
159
|
this.rowActionsProvider = RowActionProvider.create(this.tableConfig)
|
|
158
160
|
.addActionColumn(this._displayColumns)
|
|
159
161
|
.setView(this.tableDataSource.data);
|
|
160
|
-
this.selectionProvider = SelectionProvider.create(this.tableConfig, this.tableDataSource)
|
|
162
|
+
this.selectionProvider = SelectionProvider.create(this.tableConfig, this.tableDataSource, initSelection)
|
|
161
163
|
.addCheckboxColumn(this._displayColumns)
|
|
162
164
|
.bindEventEmitters(this.selected, this.onSelect, this.onDeselect, this.selectionModel);
|
|
163
165
|
this.paginationProvider = PaginationProvider.create(this.tableConfig);
|
|
@@ -317,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
317
319
|
}], highlight: [{
|
|
318
320
|
type: Input
|
|
319
321
|
}] } });
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFFLFlBQVksRUFDdkIsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE9BQU8sRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RixPQUFPLEVBQWMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVyRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0YsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFDLFVB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RUFBQztnQkFHN0IsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHb0MsWUFBWTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVKLE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBYixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBSUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBd0JFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsIENvbnRlbnRDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb2x1bW5WaWV3LCBUYWJsZUNvbmZpZ30gZnJvbSAnLi9tb2RlbC9Db2x1bW5Db25maWcnO1xyXG5pbXBvcnQge01hdFNvcnQsIFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQge01hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHtTZWxlY3Rpb25Qcm92aWRlciwgU2VsZWN0aW9uUHJvdmlkZXJEdW1teX0gZnJvbSAnLi9wcm92aWRlcnMvU2VsZWN0aW9uUHJvdmlkZXInO1xyXG5pbXBvcnQge0FjdGlvbkV2ZW50LCBSb3dBY3Rpb25Qcm92aWRlciwgUm93QWN0aW9uUHJvdmlkZXJEdW1teX0gZnJvbSAnLi9wcm92aWRlcnMvUm93QWN0aW9uUHJvdmlkZXInO1xyXG5pbXBvcnQge1RhYmxlUm93fSBmcm9tIFwiLi9tb2RlbC9UYWJsZVJvd1wiO1xyXG5pbXBvcnQge1RhYmxlVmlld0ZhY3Rvcnl9IGZyb20gXCIuL21vZGVsL1RhYmxlVmlld0ZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbmRleFByb3ZpZGVyLCBJbmRleFByb3ZpZGVyRHVtbXl9IGZyb20gXCIuL3Byb3ZpZGVycy9JbmRleFByb3ZpZGVyXCI7XHJcbmltcG9ydCB7UGFnaW5hdGlvblByb3ZpZGVyLCBQYWdpbmF0aW9uUHJvdmlkZXJEdW1teX0gZnJvbSBcIi4vcHJvdmlkZXJzL1BhZ2luYXRpb25Qcm92aWRlclwiO1xyXG5pbXBvcnQge01hdFRhYmxlRGF0YVNvdXJjZUZhY3Rvcnl9IGZyb20gXCIuL2ZhY3Rvcmllcy9NYXRUYWJsZURhdGFTb3VyY2VGYWN0b3J5XCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbHVtbnNGYWN0b3J5fSBmcm9tIFwiLi9mYWN0b3JpZXMvRGlzcGxheUNvbHVtbnNGYWN0b3J5XCI7XHJcbmltcG9ydCB7RW1wdHlWYWx1ZX0gZnJvbSBcIi4vbW9kZWwvRW1wdHlWYWx1ZVwiO1xyXG5pbXBvcnQge1RvdGFsUm93UHJvdmlkZXIsIFRvdGFsUm93UHJvdmlkZXJEdW1teX0gZnJvbSBcIi4vcHJvdmlkZXJzL1RvdGFsUm93UHJvdmlkZXJcIjtcclxuaW1wb3J0IHtOZ3hBdXJGaWx0ZXJzfSBmcm9tIFwiLi9maWx0ZXJzL05neEF1ckZpbHRlcnNcIjtcclxuaW1wb3J0IHtOZ3hBdXJNYXRUYWJsZVB1YmxpY30gZnJvbSBcIi4vbmd4LWF1ci1tYXQtdGFibGUtcHVibGljXCI7XHJcbmltcG9ydCB7T2Zmc2V0VXRpbH0gZnJvbSBcIi4vdXRpbHMvb2Zmc2V0LnV0aWxcIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7Tmd4VGFibGVTdWJGb290ZXJSb3dEaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZS9uZ3gtdGFibGUtc3ViLWZvb3Rlci1yb3cuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlnaGxpZ2h0Q29udGFpbmVyPFQ+IHtcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9mZnNldCB7XHJcbiAgbGVmdDogbnVtYmVyLFxyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAga2V5OiBzdHJpbmdcclxufVxyXG5cclxuZW51bSBFeHBhbmRTdGF0ZSB7XHJcbiAgQ09MTEFQU0VEID0gJ2NvbGxhcHNlZCcsXHJcbiAgRVhQQU5ERUQgPSAnZXhwYW5kZWQnXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXVyLW1hdC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcclxuICAgICAgc3RhdGUoRXhwYW5kU3RhdGUuQ09MTEFQU0VELCBzdHlsZSh7aGVpZ2h0OiAnMHB4JywgbWluSGVpZ2h0OiAnMCd9KSksXHJcbiAgICAgIHN0YXRlKEV4cGFuZFN0YXRlLkVYUEFOREVELCBzdHlsZSh7aGVpZ2h0OiAnKid9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oYCR7RXhwYW5kU3RhdGUuRVhQQU5ERUR9IDw9PiAke0V4cGFuZFN0YXRlLkNPTExBUFNFRH1gLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknKSksXHJcbiAgICBdKSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4QXVyTWF0VGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBOZ3hBdXJNYXRUYWJsZVB1YmxpYzxUPiB7XHJcblxyXG4gIGV4cGFuZGVkU3RhdGVFbnVtID0gRXhwYW5kU3RhdGU7XHJcblxyXG4gIHB1YmxpYyB0YWJsZURhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRhYmxlUm93PFQ+PihbXSk7XHJcbiAgX2Rpc3BsYXlDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIF9jdXN0b21EaXNwbGF5Q29sdW1uc0VuYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGRpc3BsYXlDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoY29sdW1ucykge1xyXG4gICAgICB0aGlzLl9kaXNwbGF5Q29sdW1ucyA9IFsuLi5jb2x1bW5zXTtcclxuICAgICAgdGhpcy5fY3VzdG9tRGlzcGxheUNvbHVtbnNFbmFibGVkID0gY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0YWJsZVZpZXc6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSA9IFtdO1xyXG5cclxuICBAQ29udGVudENoaWxkKE5neFRhYmxlU3ViRm9vdGVyUm93RGlyZWN0aXZlKSBzdWJGb290ZXJSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkcmVuKCdyb3dMaW5rJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSByb3dzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSB0YWJsZTogRWxlbWVudFJlZjtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBJbnB1dCgpIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZzxUPjtcclxuXHJcbiAgQElucHV0KCkgdGFibGVEYXRhOiBUW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgZXh0ZW5kZWRSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHtzdGF0aWM6IGZhbHNlfSkgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwge3N0YXRpYzogdHJ1ZX0pIG1hdFNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIEBPdXRwdXQoKSBzb3J0OiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIGV2ZW50cyBpZiBlbmFibGVkIGFjdGlvbnNcclxuICBAT3V0cHV0KCkgb25Sb3dBY3Rpb246IEV2ZW50RW1pdHRlcjxBY3Rpb25FdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkV2ZW50PFQ+PigpO1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8vIGV2ZW50cyBpZiBlbmFibGVkIHNlbGVjdCBldmVudFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIEBPdXRwdXQoKSBvbkRlc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGVkUm93c0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uRXZlbnQ8VFtdPj4oKTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbk1vZGVsID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25Nb2RlbDxUPj4oKTtcclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcbiAgQE91dHB1dCgpIG9uUm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIHJldHVybiBmaWx0ZXJlZCByb3dzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjb2x1bW5PZmZzZXRzID0gbmV3IEV2ZW50RW1pdHRlcjxDb2x1bW5PZmZzZXRbXT4oKTtcclxuICBwcml2YXRlIHByZXZDb2x1bW5PZmZzZXRzOiBDb2x1bW5PZmZzZXRbXSA9IFtdO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgcHJpdmF0ZSByZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyID0gRW1wdHlWYWx1ZS5SRVNJWkVfT0JTRVJWRVI7XHJcblxyXG4gIHNlbGVjdGlvblByb3ZpZGVyOiBTZWxlY3Rpb25Qcm92aWRlcjxUPiA9IG5ldyBTZWxlY3Rpb25Qcm92aWRlckR1bW15KCk7XHJcblxyXG4gIHJvd0FjdGlvbnNQcm92aWRlcjogUm93QWN0aW9uUHJvdmlkZXI8VD4gPSBuZXcgUm93QWN0aW9uUHJvdmlkZXJEdW1teTxUPigpO1xyXG5cclxuICBpbmRleFByb3ZpZGVyOiBJbmRleFByb3ZpZGVyID0gbmV3IEluZGV4UHJvdmlkZXJEdW1teSgpO1xyXG5cclxuICBwYWdpbmF0aW9uUHJvdmlkZXI6IFBhZ2luYXRpb25Qcm92aWRlciA9IG5ldyBQYWdpbmF0aW9uUHJvdmlkZXJEdW1teSgpO1xyXG5cclxuICB0b3RhbFJvd1Byb3ZpZGVyOiBUb3RhbFJvd1Byb3ZpZGVyPFQ+ID0gbmV3IFRvdGFsUm93UHJvdmlkZXJEdW1teSgpO1xyXG5cclxuICBoaWdobGlnaHRlZDogVCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBjdXN0b21Tb3J0RnVuY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIChkYXRhOiBUYWJsZVJvdzxUPiwga2V5OiBzdHJpbmcpID0+IGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJTdG9yYWdlID0gbmV3IE1hcDxzdHJpbmcsIE5neEF1ckZpbHRlcnMuQmFzZTxUPj4oKTtcclxuXHJcbiAgLy/Qt9C90LDRh9C10L3QuNC1INC/0LXRgNC10LTQsNC10YLRgdGPINCyINC60L7QvdGC0LXQudC90LXRgNC1INC40L3QsNGH0LUgT25DaGFuZ2Ug0L3QtSDQstC40LTQuNGCINC40LfQvNC10L3QtdC90LjQuSDQutC+0LPQtNCwINC/0LXRgNC10LTQsNGO0YLRgdGPINC+0LTQuNC90LDQutC+0LLRi9C1INC30L3QsNGH0LXQvdC40LUg0Lgg0L/QvtC00YHQstC10YLQutCwINGB0YLRgNC+0LrQuCDQvdC1INC+0YLQutC70Y7Rh9Cw0LXRgtGB0Y9cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgQElucHV0KCkgaGlnaGxpZ2h0OiBIaWdobGlnaHRDb250YWluZXI8VD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKChjaGFuZ2VzWyd0YWJsZURhdGEnXSAmJiB0aGlzLnRhYmxlRGF0YSkgfHwgKGNoYW5nZXNbJ2Rpc3BsYXlDb2x1bW5zJ10gJiYgdGhpcy5fZGlzcGxheUNvbHVtbnMpKSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZURhdGEgfHwgW107XHJcbiAgICAgIHRoaXMucHJlcGFyZVRhYmxlRGF0YSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2hpZ2hsaWdodCddICYmIHRoaXMuaGlnaGxpZ2h0KSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0Q2hhbmdlKHRoaXMuaGlnaGxpZ2h0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSGlnaGxpZ2h0Q2hhbmdlKGg6IEhpZ2hsaWdodENvbnRhaW5lcjxUPikge1xyXG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0ZWQgPT09IGgudmFsdWUpIHtcclxuICAgICAgdGhpcy5oaWdobGlnaHQgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodGVkID0gaC52YWx1ZTtcclxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRhYmxlRGF0YVNvdXJjZS5kYXRhLmZpbmRJbmRleChyb3cgPT4gcm93LnJvd1NyYyA9PT0gaC52YWx1ZSk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yb3dzPy50b0FycmF5KClbaW5kZXhdPy5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgICAgIGJlaGF2aW9yOiBcInNtb290aFwiLFxyXG4gICAgICAgICAgYmxvY2s6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICBpbmxpbmU6IFwiY2VudGVyXCJcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudGFibGVDb25maWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5pdCBpbnB1dHMgW3RhYmxlQ29uZmlnXSBpcyBtYW5kYXRvcnkhXCIpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyB3ZSBuZWVkIHRoaXMsIGluIG9yZGVyIHRvIG1ha2UgcGFnaW5hdGlvbiB3b3JrIHdpdGggKm5nSWZcclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRQYWdpbmF0b3IoKVxyXG4gICAgdGhpcy5pbml0U29ydGluZ0RhdGFBY2Nlc3NvcigpO1xyXG4gICAgdGhpcy5yZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy51cGRhdGVDb2x1bW5PZmZzZXRzKCkpO1xyXG4gICAgdGhpcy5yZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgdGhpcy51cGRhdGVDb2x1bW5PZmZzZXRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRQYWdpbmF0b3IoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWJsZURhdGFTb3VyY2UpIHtcclxuICAgICAgdGhpcy50YWJsZURhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5tYXRQYWdpbmF0b3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRTb3J0aW5nRGF0YUFjY2Vzc29yKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhU291cmNlKSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhU291cmNlLnNvcnRpbmdEYXRhQWNjZXNzb3IgPSAoZGF0YSwga2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tU29ydEZ1bmN0aW9uID0gdGhpcy5jdXN0b21Tb3J0RnVuY3Rpb25zLmdldChrZXkpO1xyXG4gICAgICAgIHJldHVybiBjdXN0b21Tb3J0RnVuY3Rpb24gPyBjdXN0b21Tb3J0RnVuY3Rpb24oZGF0YSwga2V5KSA6IGRhdGFba2V5XTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1uT2Zmc2V0cygpIHtcclxuICAgIGlmICh0aGlzLnRhYmxlPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsKCd0aCcpKSB7XHJcbiAgICAgIGNvbnN0IG9mZnNldHM6IENvbHVtbk9mZnNldFtdID0gQXJyYXkuZnJvbSh0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGgnKSlcclxuICAgICAgICAubWFwKChjKSA9PiAoYyBhcyBIVE1MRWxlbWVudCkpXHJcbiAgICAgICAgLm1hcCgoYywgaW5kZXgpID0+ICh7XHJcbiAgICAgICAgICBsZWZ0OiBjLm9mZnNldExlZnQsXHJcbiAgICAgICAgICB3aWR0aDogYy5vZmZzZXRXaWR0aCxcclxuICAgICAgICAgIGtleTogdGhpcy5fZGlzcGxheUNvbHVtbnNbaW5kZXhdXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICBpZiAoT2Zmc2V0VXRpbC5hcmVOb3RFcXVhbCh0aGlzLnByZXZDb2x1bW5PZmZzZXRzLCBvZmZzZXRzKSkge1xyXG4gICAgICAgIHRoaXMucHJldkNvbHVtbk9mZnNldHMgPSBvZmZzZXRzO1xyXG4gICAgICAgIHRoaXMuY29sdW1uT2Zmc2V0cy5lbWl0KG9mZnNldHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByZXBhcmVUYWJsZURhdGEoKSB7XHJcbiAgICB0aGlzLmluaXRUYWJsZSgpO1xyXG4gICAgdGhpcy5pbml0Q3VzdG9tU29ydEZ1bmN0aW9uc01hcCgpO1xyXG4gICAgdGhpcy5pbml0UGFnaW5hdG9yKCk7XHJcbiAgICB0aGlzLmluaXRTb3J0aW5nRGF0YUFjY2Vzc29yKCk7XHJcbiAgICB0aGlzLmluZGV4UHJvdmlkZXIgPSBJbmRleFByb3ZpZGVyLmNyZWF0ZSh0aGlzLnRhYmxlQ29uZmlnKVxyXG4gICAgICAuYWRkSW5kZXhDb2x1bW4odGhpcy5fZGlzcGxheUNvbHVtbnMpO1xyXG5cclxuICAgIHRoaXMucm93QWN0aW9uc1Byb3ZpZGVyID0gUm93QWN0aW9uUHJvdmlkZXIuY3JlYXRlKHRoaXMudGFibGVDb25maWcpXHJcbiAgICAgIC5hZGRBY3Rpb25Db2x1bW4odGhpcy5fZGlzcGxheUNvbHVtbnMpXHJcbiAgICAgIC5zZXRWaWV3KHRoaXMudGFibGVEYXRhU291cmNlLmRhdGEpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIgPSBTZWxlY3Rpb25Qcm92aWRlci5jcmVhdGUodGhpcy50YWJsZUNvbmZpZywgdGhpcy50YWJsZURhdGFTb3VyY2UpXHJcbiAgICAgIC5hZGRDaGVja2JveENvbHVtbih0aGlzLl9kaXNwbGF5Q29sdW1ucylcclxuICAgICAgLmJpbmRFdmVudEVtaXR0ZXJzKHRoaXMuc2VsZWN0ZWQsIHRoaXMub25TZWxlY3QsIHRoaXMub25EZXNlbGVjdCwgdGhpcy5zZWxlY3Rpb25Nb2RlbCk7XHJcblxyXG4gICAgdGhpcy5wYWdpbmF0aW9uUHJvdmlkZXIgPSBQYWdpbmF0aW9uUHJvdmlkZXIuY3JlYXRlKHRoaXMudGFibGVDb25maWcpO1xyXG5cclxuICAgIHRoaXMudG90YWxSb3dQcm92aWRlciA9IFRvdGFsUm93UHJvdmlkZXIuY3JlYXRlKHRoaXMudGFibGVDb25maWcsIHRoaXMudGFibGVEYXRhU291cmNlKVxyXG4gICAgICAuc2V0U3R5bGUoKVxyXG4gICAgICAuc2V0VG90YWxSb3coKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEN1c3RvbVNvcnRGdW5jdGlvbnNNYXAoKSB7XHJcbiAgICB0aGlzLnRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcclxuICAgICAgLmZpbHRlcihjID0+IGMuc29ydCAmJiBjLnNvcnQuZW5hYmxlICYmIGMuc29ydC5jdXN0b21Tb3J0KVxyXG4gICAgICAuZm9yRWFjaChjID0+IHRoaXMuY3VzdG9tU29ydEZ1bmN0aW9ucy5zZXQoYy5rZXksIGMuc29ydCEuY3VzdG9tU29ydCEpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VGFibGUoKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IE1hdFRhYmxlRGF0YVNvdXJjZUZhY3RvcnkuY29udmVydCh0aGlzLnRhYmxlRGF0YSwgdGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zQ2ZnKTtcclxuICAgIHRoaXMudGFibGVWaWV3ID0gVGFibGVWaWV3RmFjdG9yeS50b1ZpZXcodGhpcy50YWJsZURhdGFTb3VyY2UuZGF0YSwgdGhpcy50YWJsZUNvbmZpZylcclxuICAgIGlmICghdGhpcy5fY3VzdG9tRGlzcGxheUNvbHVtbnNFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuX2Rpc3BsYXlDb2x1bW5zID0gRGlzcGxheUNvbHVtbnNGYWN0b3J5LmNyZWF0ZSh0aGlzLnRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5U2VhcmNoRmlsdGVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLmVtaXRGaWx0ZXJlZFZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlclN0b3JhZ2UuZ2V0KGZpbHRlck5hbWUpKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmFnZS5kZWxldGUoZmlsdGVyTmFtZSk7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzSW50ZXJuYWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcsIGZpbHRlcjogTmd4QXVyRmlsdGVycy5CYXNlPFQ+KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RvcmFnZS5nZXQoZmlsdGVyTmFtZSkgfHwgKCF0aGlzLmZpbHRlclN0b3JhZ2UuZ2V0KGZpbHRlck5hbWUpIS5lcXVhbHMoZmlsdGVyKSkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdG9yYWdlLnNldChmaWx0ZXJOYW1lLCBmaWx0ZXIpO1xyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyc0ludGVybmFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB0aGlzLmFwcGx5RmlsdGVyc0ludGVybmFsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5RmlsdGVyc0ludGVybmFsKCkge1xyXG4gICAgY29uc3QgZmlsdGVyQWN0aW9ucyA9IFsuLi50aGlzLmZpbHRlclN0b3JhZ2UudmFsdWVzKCldO1xyXG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGEpID0+IHtcclxuICAgICAgcmV0dXJuIGZpbHRlckFjdGlvbnMuZXZlcnkoZmlsdGVyQWN0aW9uID0+IGZpbHRlckFjdGlvbi5maWx0ZXJGbigpKGRhdGEpKTtcclxuICAgIH07XHJcbiAgICAvLyDQn9GA0LjQvNC10L3QtdC90LjQtSDRhNC40LvRjNGC0YDQsNGG0LjQuC4g0L3Rg9C20L3QviDQv9C10YDQtdC00LDRgtGMINGD0L3QuNC60LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0YfRgtC+0LHRiyDRhNC40LvRjNGC0YDQsNGG0LjRjyDQt9Cw0L/Rg9GB0YLQuNC70LDRgdGMXHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXIgPSAndHJpZ2dlci0nICsgTWF0aC5yYW5kb20oKTtcclxuICAgIHRoaXMuZW1pdEZpbHRlcmVkVmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGaWx0ZXJlZFZhbHVlcygpOiB2b2lkIHtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCh0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubWFwKGYgPT4gZi5yb3dTcmMpKVxyXG4gIH1cclxuXHJcbiAgc29ydFRhYmxlKHNvcnRQYXJhbWV0ZXJzOiBTb3J0KSB7XHJcbiAgICB0aGlzLnNvcnQuZW1pdChzb3J0UGFyYW1ldGVycyk7XHJcbiAgfVxyXG5cclxuICBlbWl0U2VsZWN0ZWRSb3dzQWN0aW9uKGFjdGlvbjogc3RyaW5nLCByb3dzOiBUW10pIHtcclxuICAgIHRoaXMub25TZWxlY3RlZFJvd3NBY3Rpb24uZW1pdCh7YWN0aW9uLCB2YWx1ZTogcm93c30pO1xyXG4gIH1cclxuXHJcbiAgZW1pdFJvd0FjdGlvbihhY3Rpb246IHN0cmluZywgcm93OiBULCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25Sb3dBY3Rpb24uZW1pdCh7YWN0aW9uLCB2YWx1ZTogcm93fSk7XHJcbiAgfVxyXG5cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLm1hc3RlclRvZ2dsZSgpO1xyXG4gIH1cclxuXHJcbiAgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLmlzQWxsU2VsZWN0ZWQoKTtcclxuICB9XHJcblxyXG4gIGNhc3RTcmMocm93OiBhbnkpOiBUYWJsZVJvdzxUPiB7XHJcbiAgICByZXR1cm4gcm93O1xyXG4gIH1cclxuXHJcbiAgcm93Q2xpY2socm93OiBUYWJsZVJvdzxUPikge1xyXG4gICAgaWYgKHJvdy5yb3dTcmMgIT09IHRoaXMuaGlnaGxpZ2h0ZWQgfHwgKHJvdy5yb3dTcmMgPT09IHRoaXMuaGlnaGxpZ2h0ZWQgJiYgIXRoaXMudGFibGVDb25maWcuY2xpY2tDZmc/LmNhbmNlbGFibGUpKSB7XHJcbiAgICAgIHRoaXMub25Sb3dDbGljay5lbWl0KHJvdy5yb3dTcmMpO1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodGVkID0gcm93LnJvd1NyYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25Sb3dDbGljay5lbWl0KHVuZGVmaW5lZCk7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0aW9uTW9kZWwoKTogU2VsZWN0aW9uTW9kZWw8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyDQntGB0YLQsNC90LDQstC70LjQstCw0LXQvCDQvdCw0LHQu9GO0LTQtdC90LjQtSDQv9GA0Lgg0YPQvdC40YfRgtC+0LbQtdC90LjQuCDQutC+0LzQv9C+0L3QtdC90YLQsFxyXG4gICAgdGhpcy5yZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXVyLW1hdC10YWJsZVwiPlxyXG4gIDxuZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBGaWx0ZXIgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVDb25maWcuZmlsdGVyQ2ZnXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7IHRhYmxlQ29uZmlnLmZpbHRlckNmZz8ubGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGtleXVwKT1cImFwcGx5U2VhcmNoRmlsdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7dGFibGVDb25maWcuZmlsdGVyQ2ZnPy5wbGFjZWhvbGRlcn19XCJcclxuICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeD5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBUYWJsZSAtLT5cclxuICAgIDx0YWJsZSAjdGFibGUgbWF0LXRhYmxlIG1hdFNvcnRcclxuICAgICAgICAgICBbbXVsdGlUZW1wbGF0ZURhdGFSb3dzXT1cImV4dGVuZGVkUm93VGVtcGxhdGUgIT09IG51bGxcIlxyXG4gICAgICAgICAgIFtkYXRhU291cmNlXT1cInRhYmxlRGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydFRhYmxlKCRldmVudClcIlxyXG4gICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwidGFibGVDb25maWcudGFibGVWaWV3Py5oZWlnaHRcIlxyXG4gICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cInRhYmxlQ29uZmlnLnRhYmxlVmlldz8ubWF4SGVpZ2h0XCJcclxuICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodF09XCJ0YWJsZUNvbmZpZy50YWJsZVZpZXc/Lm1pbkhlaWdodFwiPlxyXG5cclxuICAgICAgPCEtLSAgICAgICAgaW5kZXgtY29sdW1uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmRleFByb3ZpZGVyLmlzRW5hYmxlZFwiIFttYXRDb2x1bW5EZWZdPVwiaW5kZXhQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImluZGV4UHJvdmlkZXIuaGVhZGVyVmlld1wiPlxyXG4gICAgICAgICAgICB7eyBpbmRleFByb3ZpZGVyLm5hbWUgfX1cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgcm93SW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAge3sgcm93SW5kZXggKyBpbmRleFByb3ZpZGVyLm9mZnNldCB9fVxyXG4gICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XHJcbiAgICAgICAgICB7eyB0b3RhbFJvd1Byb3ZpZGVyLnRvdGFscy5nZXQoaW5kZXhQcm92aWRlci5DT0xVTU5fTkFNRSkgfHwgJycgfX1cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gICAgICAgIHNlbGVjdGlvbi1jb2x1bW4tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cInNlbGVjdGlvblByb3ZpZGVyLkNPTFVNTl9OQU1FXCIgKm5nSWY9XCJzZWxlY3Rpb25Qcm92aWRlci5pc0VuYWJsZWRcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiPlxyXG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGFibGVDb25maWcuc2VsZWN0aW9uQ2ZnPy5zaG93U2VsZWN0ZWRDb3VudCAmJiBzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaGFzVmFsdWUoKVwiPlxyXG4gICAgICAgICAgICAgICh7eyBzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19L3t7IHRhYmxlRGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubGVuZ3RoIH19KVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiB0YWJsZUNvbmZpZz8uc2VsZWN0aW9uQ2ZnPy5hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWl0U2VsZWN0ZWRSb3dzQWN0aW9uKGFjdGlvbi5hY3Rpb24sIHNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5zZWxlY3RlZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiYWN0aW9uLmljb24udG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQ29uZmlnLnNlbGVjdGlvbkNmZyEuYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY3Rpb24uaWNvbi5jb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uaWNvbi5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLnRvZ2dsZShjYXN0U3JjKHJvdykucm93U3JjKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaXNTZWxlY3RlZChjYXN0U3JjKHJvdykucm93U3JjKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gYWN0aW9uIGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0FjdGlvbnNQcm92aWRlci5pc0VuYWJsZWRcIiBbbWF0Q29sdW1uRGVmXT1cInJvd0FjdGlvbnNQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRSb3dBY3Rpb24oYWN0aW9uLmFjdGlvbiwgZWxlbWVudC5yb3dTcmMsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3Rpb24uaWNvbi50b29sdGlwIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zUHJvdmlkZXIuYWN0aW9uVmlldy5nZXQoZWxlbWVudC5pZClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY3Rpb24uaWNvbi5jb2xvclwiPlxyXG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5pY29uLm5hbWUgfX1cclxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHJvd0FjdGlvbnNQcm92aWRlci5DT0xVTU5fTkFNRX1cIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgIHZhbHVlLWljb24tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uQ29uZmlnIG9mIHRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbkNvbmZpZy5rZXlcIj5cclxuXHJcbiAgICAgICAgPCEtLSBpZiBzb3J0YWJsZSBjb2x1bW4gaGVhZGVyIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Db25maWcuc29ydCAmJiBjb2x1bW5Db25maWcuc29ydC5lbmFibGU7IGVsc2Ugbm90U29ydGFibGVcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW21hdC1zb3J0LWhlYWRlcl09XCJjb2x1bW5Db25maWcua2V5XCJcclxuICAgICAgICAgICAgICBbYXJyb3dQb3NpdGlvbl09XCJjb2x1bW5Db25maWcuc29ydC5wb3NpdGlvbiA9PT0gJ3JpZ2h0JyA/ICdiZWZvcmUnIDogJ2FmdGVyJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVmFsdWVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gZWxzZSBub3Qgc29ydGFibGUgLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTb3J0YWJsZT5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tICAgICAgaGVhZGVyIHZhbHVlLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJWYWx1ZT5cclxuICAgICAgICAgIDxsaWItY29sdW1uLXZpZXcgW2NvbmZpZ109XCJjb2x1bW5Db25maWcuaGVhZGVyVmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb2x1bW5Db25maWcubmFtZVwiPlxyXG4gICAgICAgICAgPC9saWItY29sdW1uLXZpZXc+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSBjb2x1bW4gdmFsdWUg0L/QvtC70YPRh9Cw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0LrQvtC70L7QvdC+0Log0L3Rg9C20L3QviDRh9C10YDQtdC3IGdldFZpZXcocm93SW5kZXgsIGNvbHVtbkNvbmZpZy5rZXkpINGC0LDQvCDQvdCw0YXQvtC00Y/RgtGB0Y8g0YPQttC1XHJcbiAgICAgICAg0L/QvtC00LPQvtGC0L7QstC70LXQvdC90YvQtSDQt9C90LDRh9C10L3QuNGPINC00LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjy0tPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O1wiPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlld1xyXG4gICAgICAgICAgICBbY29uZmlnXT1cInRhYmxlVmlld1tlbGVtZW50LmlkXT8uZ2V0KGNvbHVtbkNvbmZpZy5rZXkpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IGNvbHVtbkNvbmZpZy5rZXlcIj5cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XHJcbiAgICAgICAgICB7eyB0b3RhbFJvd1Byb3ZpZGVyLnRvdGFscy5nZXQoY29sdW1uQ29uZmlnLmtleSkgfHwgJycgfX1cclxuICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIl9kaXNwbGF5Q29sdW1uczsgIHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LmhlYWRlclwiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICNyb3dMaW5rXHJcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogX2Rpc3BsYXlDb2x1bW5zO1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwicm93Q2xpY2socm93KVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3BvaW50ZXInOiB0YWJsZUNvbmZpZy5jbGlja0NmZz8ucG9pbnRlciB8fCBmYWxzZSwgJ25ldy1jb2xvcic6IGhpZ2hsaWdodGVkPT09cm93LnJvd1NyYyAmJiB0YWJsZUNvbmZpZz8uY2xpY2tDZmc/LmhpZ2hsaWdodENsaWNrZWQ/LmNvbG9yfVwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAnY29sb3InOiBoaWdobGlnaHRlZD09PXJvdy5yb3dTcmM/IHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uY29sb3IgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGhpZ2hsaWdodGVkID09PSByb3cucm93U3JjPyB0YWJsZUNvbmZpZz8uY2xpY2tDZmc/LmhpZ2hsaWdodENsaWNrZWQ/LmJhY2tncm91bmQgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAnYm9yZGVyJzogaGlnaGxpZ2h0ZWQgPT09IHJvdy5yb3dTcmM/IHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uYm9yZGVyIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICB9XCI+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gICAgICA8IS0tZXhwYW5kZWQtcm93LS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZXhwYW5kZWRSb3dcIj5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFthdHRyLmNvbHNwYW5dPVwiX2Rpc3BsYXlDb2x1bW5zLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1kZXRhaWxcIlxyXG4gICAgICAgICAgICAgICBbQGRldGFpbEV4cGFuZF09XCJlbGVtZW50LnJvd1NyYyA9PT0gaGlnaGxpZ2h0ZWQgPyBleHBhbmRlZFN0YXRlRW51bS5FWFBBTkRFRCA6IGV4cGFuZGVkU3RhdGVFbnVtLkNPTExBUFNFRFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXh0ZW5kZWRSb3dUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZWxlbWVudH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4dGVuZGVkUm93VGVtcGxhdGVcIj5cclxuICAgICAgICA8dHIgbWF0LXJvdyBjbGFzcz1cImV4cGFuZGVkLXJvd1wiICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2V4cGFuZGVkUm93J11cIj48L3RyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPCEtLWV4cGFuZGVkLXJvdy0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvdGFsUm93UHJvdmlkZXIuaXNFbmFibGVkXCI+XHJcbiAgICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJfZGlzcGxheUNvbHVtbnM7IHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LnRvdGFsXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cInRvdGFsUm93UHJvdmlkZXIuc3R5bGVcIj48L3RyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1zdWItZm9vdGVyLXJvdy0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YkZvb3RlclJvd1wiPlxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWYgW2F0dHIuY29sc3Bhbl09XCJfZGlzcGxheUNvbHVtbnMubGVuZ3RoXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmd4QXVyVGFibGVTdWJGb290ZXJSb3ddXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViRm9vdGVyUm93VGVtcGxhdGVcIj5cclxuICAgICAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cIlsnc3ViRm9vdGVyUm93J107IHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LnN1YkZvb3RlclwiPjwvdHI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tICAgICAgc3ViLWZvb3Rlci1yb3cgRU5ELS0+XHJcblxyXG4gICAgICA8IS0tc3ViLWZvb3Rlci1wYWdpbmF0aW9uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3ViRm9vdGVyUGFnaW5hdGlvblwiPlxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWYgW2F0dHIuY29sc3Bhbl09XCJfZGlzcGxheUNvbHVtbnMubGVuZ3RoXCIgPlxyXG5cclxuICAgICAgICAgICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdpbmF0aW9uUHJvdmlkZXIuc2l6ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvblByb3ZpZGVyLnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwidGhpcy50YWJsZUNvbmZpZz8ucGFnZWFibGVDZmc/LnN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+XHJcbiAgICAgICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cclxuXHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnaW5hdGlvblByb3ZpZGVyLmlzRW5hYmxlZFwiPlxyXG4gICAgICAgIDx0ciBtYXQtZm9vdGVyLXJvdyAqbWF0Rm9vdGVyUm93RGVmPVwiWydzdWJGb290ZXJQYWdpbmF0aW9uJ107IHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LnN1YkZvb3RlclBhZ2luYXRpb25cIiBbc3R5bGVdPVwidGhpcy50YWJsZUNvbmZpZz8ucGFnZWFibGVDZmc/LnN0eWxlXCI+PC90cj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS0gICAgICBzdWItZm9vdGVyLXBhZ2luYXRpb24gRU5ELS0+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPCEtLSBQYWdpbmF0aW9uIC0tPlxyXG5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2Zvb3RlckNlbGxUZW1wbGF0ZSBsZXQtY29sdW1uTmFtZT5cclxuICA8dGQgbWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmPlxyXG4gICAge3sgdG90YWxSb3dQcm92aWRlci50b3RhbHMuZ2V0KGNvbHVtbk5hbWUpIHx8ICcnIH19XHJcbiAgPC90ZD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci1tYXQtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUFFLFlBQVksRUFDdkIsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLE9BQU8sRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RixPQUFPLEVBQWMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVyRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0YsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFDLFVB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QkFBNkI7Z0JBR0UsSUFBSTtzQkFBaEQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUVILEtBQUs7c0JBQTVDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFHN0IsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHb0MsWUFBWTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUVKLE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsSUFBSTtzQkFBYixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBSUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBd0JFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsIENvbnRlbnRDaGlsZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb2x1bW5WaWV3LCBUYWJsZUNvbmZpZ30gZnJvbSAnLi9tb2RlbC9Db2x1bW5Db25maWcnO1xyXG5pbXBvcnQge01hdFNvcnQsIFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQge01hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge01hdFBhZ2luYXRvcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHtTZWxlY3Rpb25Qcm92aWRlciwgU2VsZWN0aW9uUHJvdmlkZXJEdW1teX0gZnJvbSAnLi9wcm92aWRlcnMvU2VsZWN0aW9uUHJvdmlkZXInO1xyXG5pbXBvcnQge0FjdGlvbkV2ZW50LCBSb3dBY3Rpb25Qcm92aWRlciwgUm93QWN0aW9uUHJvdmlkZXJEdW1teX0gZnJvbSAnLi9wcm92aWRlcnMvUm93QWN0aW9uUHJvdmlkZXInO1xyXG5pbXBvcnQge1RhYmxlUm93fSBmcm9tIFwiLi9tb2RlbC9UYWJsZVJvd1wiO1xyXG5pbXBvcnQge1RhYmxlVmlld0ZhY3Rvcnl9IGZyb20gXCIuL21vZGVsL1RhYmxlVmlld0ZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbmRleFByb3ZpZGVyLCBJbmRleFByb3ZpZGVyRHVtbXl9IGZyb20gXCIuL3Byb3ZpZGVycy9JbmRleFByb3ZpZGVyXCI7XHJcbmltcG9ydCB7UGFnaW5hdGlvblByb3ZpZGVyLCBQYWdpbmF0aW9uUHJvdmlkZXJEdW1teX0gZnJvbSBcIi4vcHJvdmlkZXJzL1BhZ2luYXRpb25Qcm92aWRlclwiO1xyXG5pbXBvcnQge01hdFRhYmxlRGF0YVNvdXJjZUZhY3Rvcnl9IGZyb20gXCIuL2ZhY3Rvcmllcy9NYXRUYWJsZURhdGFTb3VyY2VGYWN0b3J5XCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbHVtbnNGYWN0b3J5fSBmcm9tIFwiLi9mYWN0b3JpZXMvRGlzcGxheUNvbHVtbnNGYWN0b3J5XCI7XHJcbmltcG9ydCB7RW1wdHlWYWx1ZX0gZnJvbSBcIi4vbW9kZWwvRW1wdHlWYWx1ZVwiO1xyXG5pbXBvcnQge1RvdGFsUm93UHJvdmlkZXIsIFRvdGFsUm93UHJvdmlkZXJEdW1teX0gZnJvbSBcIi4vcHJvdmlkZXJzL1RvdGFsUm93UHJvdmlkZXJcIjtcclxuaW1wb3J0IHtOZ3hBdXJGaWx0ZXJzfSBmcm9tIFwiLi9maWx0ZXJzL05neEF1ckZpbHRlcnNcIjtcclxuaW1wb3J0IHtOZ3hBdXJNYXRUYWJsZVB1YmxpY30gZnJvbSBcIi4vbmd4LWF1ci1tYXQtdGFibGUtcHVibGljXCI7XHJcbmltcG9ydCB7T2Zmc2V0VXRpbH0gZnJvbSBcIi4vdXRpbHMvb2Zmc2V0LnV0aWxcIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7Tmd4VGFibGVTdWJGb290ZXJSb3dEaXJlY3RpdmV9IGZyb20gXCIuL2RpcmVjdGl2ZS9uZ3gtdGFibGUtc3ViLWZvb3Rlci1yb3cuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlnaGxpZ2h0Q29udGFpbmVyPFQ+IHtcclxuICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9mZnNldCB7XHJcbiAgbGVmdDogbnVtYmVyLFxyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAga2V5OiBzdHJpbmdcclxufVxyXG5cclxuZW51bSBFeHBhbmRTdGF0ZSB7XHJcbiAgQ09MTEFQU0VEID0gJ2NvbGxhcHNlZCcsXHJcbiAgRVhQQU5ERUQgPSAnZXhwYW5kZWQnXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXVyLW1hdC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25neC1hdXItbWF0LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZ3gtYXVyLW1hdC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcclxuICAgICAgc3RhdGUoRXhwYW5kU3RhdGUuQ09MTEFQU0VELCBzdHlsZSh7aGVpZ2h0OiAnMHB4JywgbWluSGVpZ2h0OiAnMCd9KSksXHJcbiAgICAgIHN0YXRlKEV4cGFuZFN0YXRlLkVYUEFOREVELCBzdHlsZSh7aGVpZ2h0OiAnKid9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oYCR7RXhwYW5kU3RhdGUuRVhQQU5ERUR9IDw9PiAke0V4cGFuZFN0YXRlLkNPTExBUFNFRH1gLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknKSksXHJcbiAgICBdKSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4QXVyTWF0VGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBOZ3hBdXJNYXRUYWJsZVB1YmxpYzxUPiB7XHJcblxyXG4gIGV4cGFuZGVkU3RhdGVFbnVtID0gRXhwYW5kU3RhdGU7XHJcblxyXG4gIHB1YmxpYyB0YWJsZURhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRhYmxlUm93PFQ+PihbXSk7XHJcbiAgX2Rpc3BsYXlDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIF9jdXN0b21EaXNwbGF5Q29sdW1uc0VuYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGRpc3BsYXlDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoY29sdW1ucykge1xyXG4gICAgICB0aGlzLl9kaXNwbGF5Q29sdW1ucyA9IFsuLi5jb2x1bW5zXTtcclxuICAgICAgdGhpcy5fY3VzdG9tRGlzcGxheUNvbHVtbnNFbmFibGVkID0gY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0YWJsZVZpZXc6IE1hcDxzdHJpbmcsIENvbHVtblZpZXc8c3RyaW5nPj5bXSA9IFtdO1xyXG5cclxuICBAQ29udGVudENoaWxkKE5neFRhYmxlU3ViRm9vdGVyUm93RGlyZWN0aXZlKSBzdWJGb290ZXJSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIEB0cy1pZ25vcmVcclxuICBAVmlld0NoaWxkcmVuKCdyb3dMaW5rJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSByb3dzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSB0YWJsZTogRWxlbWVudFJlZjtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBJbnB1dCgpIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZzxUPjtcclxuXHJcbiAgQElucHV0KCkgdGFibGVEYXRhOiBUW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgZXh0ZW5kZWRSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHtzdGF0aWM6IGZhbHNlfSkgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwge3N0YXRpYzogdHJ1ZX0pIG1hdFNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIEBPdXRwdXQoKSBzb3J0OiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIGV2ZW50cyBpZiBlbmFibGVkIGFjdGlvbnNcclxuICBAT3V0cHV0KCkgb25Sb3dBY3Rpb246IEV2ZW50RW1pdHRlcjxBY3Rpb25FdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkV2ZW50PFQ+PigpO1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8vIGV2ZW50cyBpZiBlbmFibGVkIHNlbGVjdCBldmVudFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xyXG4gIEBPdXRwdXQoKSBvbkRlc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGVkUm93c0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uRXZlbnQ8VFtdPj4oKTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbk1vZGVsID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25Nb2RlbDxUPj4oKTtcclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcbiAgQE91dHB1dCgpIG9uUm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIHJldHVybiBmaWx0ZXJlZCByb3dzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjb2x1bW5PZmZzZXRzID0gbmV3IEV2ZW50RW1pdHRlcjxDb2x1bW5PZmZzZXRbXT4oKTtcclxuICBwcml2YXRlIHByZXZDb2x1bW5PZmZzZXRzOiBDb2x1bW5PZmZzZXRbXSA9IFtdO1xyXG5cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgcHJpdmF0ZSByZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyID0gRW1wdHlWYWx1ZS5SRVNJWkVfT0JTRVJWRVI7XHJcblxyXG4gIHNlbGVjdGlvblByb3ZpZGVyOiBTZWxlY3Rpb25Qcm92aWRlcjxUPiA9IG5ldyBTZWxlY3Rpb25Qcm92aWRlckR1bW15KCk7XHJcblxyXG4gIHJvd0FjdGlvbnNQcm92aWRlcjogUm93QWN0aW9uUHJvdmlkZXI8VD4gPSBuZXcgUm93QWN0aW9uUHJvdmlkZXJEdW1teTxUPigpO1xyXG5cclxuICBpbmRleFByb3ZpZGVyOiBJbmRleFByb3ZpZGVyID0gbmV3IEluZGV4UHJvdmlkZXJEdW1teSgpO1xyXG5cclxuICBwYWdpbmF0aW9uUHJvdmlkZXI6IFBhZ2luYXRpb25Qcm92aWRlciA9IG5ldyBQYWdpbmF0aW9uUHJvdmlkZXJEdW1teSgpO1xyXG5cclxuICB0b3RhbFJvd1Byb3ZpZGVyOiBUb3RhbFJvd1Byb3ZpZGVyPFQ+ID0gbmV3IFRvdGFsUm93UHJvdmlkZXJEdW1teSgpO1xyXG5cclxuICBoaWdobGlnaHRlZDogVCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBjdXN0b21Tb3J0RnVuY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIChkYXRhOiBUYWJsZVJvdzxUPiwga2V5OiBzdHJpbmcpID0+IGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJTdG9yYWdlID0gbmV3IE1hcDxzdHJpbmcsIE5neEF1ckZpbHRlcnMuQmFzZTxUPj4oKTtcclxuXHJcbiAgLy/Qt9C90LDRh9C10L3QuNC1INC/0LXRgNC10LTQsNC10YLRgdGPINCyINC60L7QvdGC0LXQudC90LXRgNC1INC40L3QsNGH0LUgT25DaGFuZ2Ug0L3QtSDQstC40LTQuNGCINC40LfQvNC10L3QtdC90LjQuSDQutC+0LPQtNCwINC/0LXRgNC10LTQsNGO0YLRgdGPINC+0LTQuNC90LDQutC+0LLRi9C1INC30L3QsNGH0LXQvdC40LUg0Lgg0L/QvtC00YHQstC10YLQutCwINGB0YLRgNC+0LrQuCDQvdC1INC+0YLQutC70Y7Rh9Cw0LXRgtGB0Y9cclxuICAvLyBAdHMtaWdub3JlXHJcbiAgQElucHV0KCkgaGlnaGxpZ2h0OiBIaWdobGlnaHRDb250YWluZXI8VD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKChjaGFuZ2VzWyd0YWJsZURhdGEnXSAmJiB0aGlzLnRhYmxlRGF0YSkgfHwgKGNoYW5nZXNbJ2Rpc3BsYXlDb2x1bW5zJ10gJiYgdGhpcy5fZGlzcGxheUNvbHVtbnMpKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb25Qcm92aWRlcj8uc2VsZWN0aW9uPy5zZWxlY3RlZCA/PyBbXTtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlRGF0YSB8fCBbXTtcclxuICAgICAgdGhpcy5wcmVwYXJlVGFibGVEYXRhKHNlbGVjdGVkKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydoaWdobGlnaHQnXSAmJiB0aGlzLmhpZ2hsaWdodCkge1xyXG4gICAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodENoYW5nZSh0aGlzLmhpZ2hsaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUhpZ2hsaWdodENoYW5nZShoOiBIaWdobGlnaHRDb250YWluZXI8VD4pIHtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkID09PSBoLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oaWdobGlnaHRlZCA9IGgudmFsdWU7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50YWJsZURhdGFTb3VyY2UuZGF0YS5maW5kSW5kZXgocm93ID0+IHJvdy5yb3dTcmMgPT09IGgudmFsdWUpO1xyXG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgIHRoaXMucm93cz8udG9BcnJheSgpW2luZGV4XT8ubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIixcclxuICAgICAgICAgIGJsb2NrOiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgaW5saW5lOiBcImNlbnRlclwiXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRhYmxlQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImluaXQgaW5wdXRzIFt0YWJsZUNvbmZpZ10gaXMgbWFuZGF0b3J5IVwiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gd2UgbmVlZCB0aGlzLCBpbiBvcmRlciB0byBtYWtlIHBhZ2luYXRpb24gd29yayB3aXRoICpuZ0lmXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0UGFnaW5hdG9yKClcclxuICAgIHRoaXMuaW5pdFNvcnRpbmdEYXRhQWNjZXNzb3IoKTtcclxuICAgIHRoaXMucmVzaXplQ29sdW1uT2Zmc2V0c09ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMudXBkYXRlQ29sdW1uT2Zmc2V0cygpKTtcclxuICAgIHRoaXMucmVzaXplQ29sdW1uT2Zmc2V0c09ic2VydmVyLm9ic2VydmUodGhpcy50YWJsZS5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMudXBkYXRlQ29sdW1uT2Zmc2V0cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0UGFnaW5hdG9yKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhU291cmNlKSB7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMubWF0UGFnaW5hdG9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0U29ydGluZ0RhdGFBY2Nlc3NvcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YVNvdXJjZSkge1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5zb3J0aW5nRGF0YUFjY2Vzc29yID0gKGRhdGEsIGtleSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbVNvcnRGdW5jdGlvbiA9IHRoaXMuY3VzdG9tU29ydEZ1bmN0aW9ucy5nZXQoa2V5KTtcclxuICAgICAgICByZXR1cm4gY3VzdG9tU29ydEZ1bmN0aW9uID8gY3VzdG9tU29ydEZ1bmN0aW9uKGRhdGEsIGtleSkgOiBkYXRhW2tleV07XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUNvbHVtbk9mZnNldHMoKSB7XHJcbiAgICBpZiAodGhpcy50YWJsZT8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbCgndGgnKSkge1xyXG4gICAgICBjb25zdCBvZmZzZXRzOiBDb2x1bW5PZmZzZXRbXSA9IEFycmF5LmZyb20odGhpcy50YWJsZS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJykpXHJcbiAgICAgICAgLm1hcCgoYykgPT4gKGMgYXMgSFRNTEVsZW1lbnQpKVxyXG4gICAgICAgIC5tYXAoKGMsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICAgbGVmdDogYy5vZmZzZXRMZWZ0LFxyXG4gICAgICAgICAgd2lkdGg6IGMub2Zmc2V0V2lkdGgsXHJcbiAgICAgICAgICBrZXk6IHRoaXMuX2Rpc3BsYXlDb2x1bW5zW2luZGV4XVxyXG4gICAgICAgIH0pKTtcclxuICAgICAgaWYgKE9mZnNldFV0aWwuYXJlTm90RXF1YWwodGhpcy5wcmV2Q29sdW1uT2Zmc2V0cywgb2Zmc2V0cykpIHtcclxuICAgICAgICB0aGlzLnByZXZDb2x1bW5PZmZzZXRzID0gb2Zmc2V0cztcclxuICAgICAgICB0aGlzLmNvbHVtbk9mZnNldHMuZW1pdChvZmZzZXRzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlVGFibGVEYXRhKGluaXRTZWxlY3Rpb246IFRbXSA9IFtdKSB7XHJcbiAgICB0aGlzLmluaXRUYWJsZSgpO1xyXG4gICAgdGhpcy5pbml0Q3VzdG9tU29ydEZ1bmN0aW9uc01hcCgpO1xyXG4gICAgdGhpcy5pbml0UGFnaW5hdG9yKCk7XHJcbiAgICB0aGlzLmluaXRTb3J0aW5nRGF0YUFjY2Vzc29yKCk7XHJcbiAgICB0aGlzLmluZGV4UHJvdmlkZXIgPSBJbmRleFByb3ZpZGVyLmNyZWF0ZSh0aGlzLnRhYmxlQ29uZmlnKVxyXG4gICAgICAuYWRkSW5kZXhDb2x1bW4odGhpcy5fZGlzcGxheUNvbHVtbnMpO1xyXG5cclxuICAgIHRoaXMucm93QWN0aW9uc1Byb3ZpZGVyID0gUm93QWN0aW9uUHJvdmlkZXIuY3JlYXRlKHRoaXMudGFibGVDb25maWcpXHJcbiAgICAgIC5hZGRBY3Rpb25Db2x1bW4odGhpcy5fZGlzcGxheUNvbHVtbnMpXHJcbiAgICAgIC5zZXRWaWV3KHRoaXMudGFibGVEYXRhU291cmNlLmRhdGEpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIgPSBTZWxlY3Rpb25Qcm92aWRlci5jcmVhdGUodGhpcy50YWJsZUNvbmZpZywgdGhpcy50YWJsZURhdGFTb3VyY2UsIGluaXRTZWxlY3Rpb24pXHJcbiAgICAgIC5hZGRDaGVja2JveENvbHVtbih0aGlzLl9kaXNwbGF5Q29sdW1ucylcclxuICAgICAgLmJpbmRFdmVudEVtaXR0ZXJzKHRoaXMuc2VsZWN0ZWQsIHRoaXMub25TZWxlY3QsIHRoaXMub25EZXNlbGVjdCwgdGhpcy5zZWxlY3Rpb25Nb2RlbCk7XHJcblxyXG4gICAgdGhpcy5wYWdpbmF0aW9uUHJvdmlkZXIgPSBQYWdpbmF0aW9uUHJvdmlkZXIuY3JlYXRlKHRoaXMudGFibGVDb25maWcpO1xyXG5cclxuICAgIHRoaXMudG90YWxSb3dQcm92aWRlciA9IFRvdGFsUm93UHJvdmlkZXIuY3JlYXRlKHRoaXMudGFibGVDb25maWcsIHRoaXMudGFibGVEYXRhU291cmNlKVxyXG4gICAgICAuc2V0U3R5bGUoKVxyXG4gICAgICAuc2V0VG90YWxSb3coKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEN1c3RvbVNvcnRGdW5jdGlvbnNNYXAoKSB7XHJcbiAgICB0aGlzLnRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcclxuICAgICAgLmZpbHRlcihjID0+IGMuc29ydCAmJiBjLnNvcnQuZW5hYmxlICYmIGMuc29ydC5jdXN0b21Tb3J0KVxyXG4gICAgICAuZm9yRWFjaChjID0+IHRoaXMuY3VzdG9tU29ydEZ1bmN0aW9ucy5zZXQoYy5rZXksIGMuc29ydCEuY3VzdG9tU29ydCEpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VGFibGUoKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IE1hdFRhYmxlRGF0YVNvdXJjZUZhY3RvcnkuY29udmVydCh0aGlzLnRhYmxlRGF0YSwgdGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zQ2ZnKTtcclxuICAgIHRoaXMudGFibGVWaWV3ID0gVGFibGVWaWV3RmFjdG9yeS50b1ZpZXcodGhpcy50YWJsZURhdGFTb3VyY2UuZGF0YSwgdGhpcy50YWJsZUNvbmZpZylcclxuICAgIGlmICghdGhpcy5fY3VzdG9tRGlzcGxheUNvbHVtbnNFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuX2Rpc3BsYXlDb2x1bW5zID0gRGlzcGxheUNvbHVtbnNGYWN0b3J5LmNyZWF0ZSh0aGlzLnRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5U2VhcmNoRmlsdGVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLmVtaXRGaWx0ZXJlZFZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlclN0b3JhZ2UuZ2V0KGZpbHRlck5hbWUpKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmFnZS5kZWxldGUoZmlsdGVyTmFtZSk7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzSW50ZXJuYWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcsIGZpbHRlcjogTmd4QXVyRmlsdGVycy5CYXNlPFQ+KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RvcmFnZS5nZXQoZmlsdGVyTmFtZSkgfHwgKCF0aGlzLmZpbHRlclN0b3JhZ2UuZ2V0KGZpbHRlck5hbWUpIS5lcXVhbHMoZmlsdGVyKSkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdG9yYWdlLnNldChmaWx0ZXJOYW1lLCBmaWx0ZXIpO1xyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyc0ludGVybmFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB0aGlzLmFwcGx5RmlsdGVyc0ludGVybmFsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5RmlsdGVyc0ludGVybmFsKCkge1xyXG4gICAgY29uc3QgZmlsdGVyQWN0aW9ucyA9IFsuLi50aGlzLmZpbHRlclN0b3JhZ2UudmFsdWVzKCldO1xyXG4gICAgdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGEpID0+IHtcclxuICAgICAgcmV0dXJuIGZpbHRlckFjdGlvbnMuZXZlcnkoZmlsdGVyQWN0aW9uID0+IGZpbHRlckFjdGlvbi5maWx0ZXJGbigpKGRhdGEpKTtcclxuICAgIH07XHJcbiAgICAvLyDQn9GA0LjQvNC10L3QtdC90LjQtSDRhNC40LvRjNGC0YDQsNGG0LjQuC4g0L3Rg9C20L3QviDQv9C10YDQtdC00LDRgtGMINGD0L3QuNC60LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0YfRgtC+0LHRiyDRhNC40LvRjNGC0YDQsNGG0LjRjyDQt9Cw0L/Rg9GB0YLQuNC70LDRgdGMXHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXIgPSAndHJpZ2dlci0nICsgTWF0aC5yYW5kb20oKTtcclxuICAgIHRoaXMuZW1pdEZpbHRlcmVkVmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGaWx0ZXJlZFZhbHVlcygpOiB2b2lkIHtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCh0aGlzLnRhYmxlRGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubWFwKGYgPT4gZi5yb3dTcmMpKVxyXG4gIH1cclxuXHJcbiAgc29ydFRhYmxlKHNvcnRQYXJhbWV0ZXJzOiBTb3J0KSB7XHJcbiAgICB0aGlzLnNvcnQuZW1pdChzb3J0UGFyYW1ldGVycyk7XHJcbiAgfVxyXG5cclxuICBlbWl0U2VsZWN0ZWRSb3dzQWN0aW9uKGFjdGlvbjogc3RyaW5nLCByb3dzOiBUW10pIHtcclxuICAgIHRoaXMub25TZWxlY3RlZFJvd3NBY3Rpb24uZW1pdCh7YWN0aW9uLCB2YWx1ZTogcm93c30pO1xyXG4gIH1cclxuXHJcbiAgZW1pdFJvd0FjdGlvbihhY3Rpb246IHN0cmluZywgcm93OiBULCAkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25Sb3dBY3Rpb24uZW1pdCh7YWN0aW9uLCB2YWx1ZTogcm93fSk7XHJcbiAgfVxyXG5cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLm1hc3RlclRvZ2dsZSgpO1xyXG4gIH1cclxuXHJcbiAgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvblByb3ZpZGVyLmlzQWxsU2VsZWN0ZWQoKTtcclxuICB9XHJcblxyXG4gIGNhc3RTcmMocm93OiBhbnkpOiBUYWJsZVJvdzxUPiB7XHJcbiAgICByZXR1cm4gcm93O1xyXG4gIH1cclxuXHJcbiAgcm93Q2xpY2socm93OiBUYWJsZVJvdzxUPikge1xyXG4gICAgaWYgKHJvdy5yb3dTcmMgIT09IHRoaXMuaGlnaGxpZ2h0ZWQgfHwgKHJvdy5yb3dTcmMgPT09IHRoaXMuaGlnaGxpZ2h0ZWQgJiYgIXRoaXMudGFibGVDb25maWcuY2xpY2tDZmc/LmNhbmNlbGFibGUpKSB7XHJcbiAgICAgIHRoaXMub25Sb3dDbGljay5lbWl0KHJvdy5yb3dTcmMpO1xyXG4gICAgICB0aGlzLmhpZ2hsaWdodGVkID0gcm93LnJvd1NyYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25Sb3dDbGljay5lbWl0KHVuZGVmaW5lZCk7XHJcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0aW9uTW9kZWwoKTogU2VsZWN0aW9uTW9kZWw8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyDQntGB0YLQsNC90LDQstC70LjQstCw0LXQvCDQvdCw0LHQu9GO0LTQtdC90LjQtSDQv9GA0Lgg0YPQvdC40YfRgtC+0LbQtdC90LjQuCDQutC+0LzQv9C+0L3QtdC90YLQsFxyXG4gICAgdGhpcy5yZXNpemVDb2x1bW5PZmZzZXRzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXVyLW1hdC10YWJsZVwiPlxyXG4gIDxuZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBGaWx0ZXIgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVDb25maWcuZmlsdGVyQ2ZnXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7IHRhYmxlQ29uZmlnLmZpbHRlckNmZz8ubGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGtleXVwKT1cImFwcGx5U2VhcmNoRmlsdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7dGFibGVDb25maWcuZmlsdGVyQ2ZnPy5wbGFjZWhvbGRlcn19XCJcclxuICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeD5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBUYWJsZSAtLT5cclxuICAgIDx0YWJsZSAjdGFibGUgbWF0LXRhYmxlIG1hdFNvcnRcclxuICAgICAgICAgICBbbXVsdGlUZW1wbGF0ZURhdGFSb3dzXT1cImV4dGVuZGVkUm93VGVtcGxhdGUgIT09IG51bGxcIlxyXG4gICAgICAgICAgIFtkYXRhU291cmNlXT1cInRhYmxlRGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydFRhYmxlKCRldmVudClcIlxyXG4gICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwidGFibGVDb25maWcudGFibGVWaWV3Py5oZWlnaHRcIlxyXG4gICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cInRhYmxlQ29uZmlnLnRhYmxlVmlldz8ubWF4SGVpZ2h0XCJcclxuICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodF09XCJ0YWJsZUNvbmZpZy50YWJsZVZpZXc/Lm1pbkhlaWdodFwiPlxyXG5cclxuICAgICAgPCEtLSAgICAgICAgaW5kZXgtY29sdW1uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmRleFByb3ZpZGVyLmlzRW5hYmxlZFwiIFttYXRDb2x1bW5EZWZdPVwiaW5kZXhQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlldyBbY29uZmlnXT1cImluZGV4UHJvdmlkZXIuaGVhZGVyVmlld1wiPlxyXG4gICAgICAgICAgICB7eyBpbmRleFByb3ZpZGVyLm5hbWUgfX1cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgcm93SW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAge3sgcm93SW5kZXggKyBpbmRleFByb3ZpZGVyLm9mZnNldCB9fVxyXG4gICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XHJcbiAgICAgICAgICB7eyB0b3RhbFJvd1Byb3ZpZGVyLnRvdGFscy5nZXQoaW5kZXhQcm92aWRlci5DT0xVTU5fTkFNRSkgfHwgJycgfX1cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gICAgICAgIHNlbGVjdGlvbi1jb2x1bW4tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cInNlbGVjdGlvblByb3ZpZGVyLkNPTFVNTl9OQU1FXCIgKm5nSWY9XCJzZWxlY3Rpb25Qcm92aWRlci5pc0VuYWJsZWRcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiPlxyXG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGFibGVDb25maWcuc2VsZWN0aW9uQ2ZnPy5zaG93U2VsZWN0ZWRDb3VudCAmJiBzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaGFzVmFsdWUoKVwiPlxyXG4gICAgICAgICAgICAgICh7eyBzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19L3t7IHRhYmxlRGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubGVuZ3RoIH19KVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiB0YWJsZUNvbmZpZz8uc2VsZWN0aW9uQ2ZnPy5hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWl0U2VsZWN0ZWRSb3dzQWN0aW9uKGFjdGlvbi5hY3Rpb24sIHNlbGVjdGlvblByb3ZpZGVyLnNlbGVjdGlvbi5zZWxlY3RlZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiYWN0aW9uLmljb24udG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQ29uZmlnLnNlbGVjdGlvbkNmZyEuYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY3Rpb24uaWNvbi5jb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uaWNvbi5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uUHJvdmlkZXIuc2VsZWN0aW9uLnRvZ2dsZShjYXN0U3JjKHJvdykucm93U3JjKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Qcm92aWRlci5zZWxlY3Rpb24uaXNTZWxlY3RlZChjYXN0U3JjKHJvdykucm93U3JjKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gYWN0aW9uIGNvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0FjdGlvbnNQcm92aWRlci5pc0VuYWJsZWRcIiBbbWF0Q29sdW1uRGVmXT1cInJvd0FjdGlvbnNQcm92aWRlci5DT0xVTU5fTkFNRVwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtaXRSb3dBY3Rpb24oYWN0aW9uLmFjdGlvbiwgZWxlbWVudC5yb3dTcmMsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3Rpb24uaWNvbi50b29sdGlwIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zUHJvdmlkZXIuYWN0aW9uVmlldy5nZXQoZWxlbWVudC5pZClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY3Rpb24uaWNvbi5jb2xvclwiPlxyXG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5pY29uLm5hbWUgfX1cclxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHJvd0FjdGlvbnNQcm92aWRlci5DT0xVTU5fTkFNRX1cIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tICAgIHZhbHVlLWljb24tLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uQ29uZmlnIG9mIHRhYmxlQ29uZmlnLmNvbHVtbnNDZmdcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbkNvbmZpZy5rZXlcIj5cclxuXHJcbiAgICAgICAgPCEtLSBpZiBzb3J0YWJsZSBjb2x1bW4gaGVhZGVyIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Db25maWcuc29ydCAmJiBjb2x1bW5Db25maWcuc29ydC5lbmFibGU7IGVsc2Ugbm90U29ydGFibGVcIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgW21hdC1zb3J0LWhlYWRlcl09XCJjb2x1bW5Db25maWcua2V5XCJcclxuICAgICAgICAgICAgICBbYXJyb3dQb3NpdGlvbl09XCJjb2x1bW5Db25maWcuc29ydC5wb3NpdGlvbiA9PT0gJ3JpZ2h0JyA/ICdiZWZvcmUnIDogJ2FmdGVyJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVmFsdWVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gZWxzZSBub3Qgc29ydGFibGUgLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTb3J0YWJsZT5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJWYWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tICAgICAgaGVhZGVyIHZhbHVlLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJWYWx1ZT5cclxuICAgICAgICAgIDxsaWItY29sdW1uLXZpZXcgW2NvbmZpZ109XCJjb2x1bW5Db25maWcuaGVhZGVyVmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb2x1bW5Db25maWcubmFtZVwiPlxyXG4gICAgICAgICAgPC9saWItY29sdW1uLXZpZXc+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSBjb2x1bW4gdmFsdWUg0L/QvtC70YPRh9Cw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0LrQvtC70L7QvdC+0Log0L3Rg9C20L3QviDRh9C10YDQtdC3IGdldFZpZXcocm93SW5kZXgsIGNvbHVtbkNvbmZpZy5rZXkpINGC0LDQvCDQvdCw0YXQvtC00Y/RgtGB0Y8g0YPQttC1XHJcbiAgICAgICAg0L/QvtC00LPQvtGC0L7QstC70LXQvdC90YvQtSDQt9C90LDRh9C10L3QuNGPINC00LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjy0tPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O1wiPlxyXG4gICAgICAgICAgPGxpYi1jb2x1bW4tdmlld1xyXG4gICAgICAgICAgICBbY29uZmlnXT1cInRhYmxlVmlld1tlbGVtZW50LmlkXT8uZ2V0KGNvbHVtbkNvbmZpZy5rZXkpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImVsZW1lbnQgfCBkYXRhUHJvcGVydHlHZXR0ZXI6IGNvbHVtbkNvbmZpZy5rZXlcIj5cclxuICAgICAgICAgIDwvbGliLWNvbHVtbi12aWV3PlxyXG4gICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XHJcbiAgICAgICAgICB7eyB0b3RhbFJvd1Byb3ZpZGVyLnRvdGFscy5nZXQoY29sdW1uQ29uZmlnLmtleSkgfHwgJycgfX1cclxuICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIl9kaXNwbGF5Q29sdW1uczsgIHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LmhlYWRlclwiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICNyb3dMaW5rXHJcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogX2Rpc3BsYXlDb2x1bW5zO1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwicm93Q2xpY2socm93KVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3BvaW50ZXInOiB0YWJsZUNvbmZpZy5jbGlja0NmZz8ucG9pbnRlciB8fCBmYWxzZSwgJ25ldy1jb2xvcic6IGhpZ2hsaWdodGVkPT09cm93LnJvd1NyYyAmJiB0YWJsZUNvbmZpZz8uY2xpY2tDZmc/LmhpZ2hsaWdodENsaWNrZWQ/LmNvbG9yfVwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAnY29sb3InOiBoaWdobGlnaHRlZD09PXJvdy5yb3dTcmM/IHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uY29sb3IgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGhpZ2hsaWdodGVkID09PSByb3cucm93U3JjPyB0YWJsZUNvbmZpZz8uY2xpY2tDZmc/LmhpZ2hsaWdodENsaWNrZWQ/LmJhY2tncm91bmQgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAnYm9yZGVyJzogaGlnaGxpZ2h0ZWQgPT09IHJvdy5yb3dTcmM/IHRhYmxlQ29uZmlnPy5jbGlja0NmZz8uaGlnaGxpZ2h0Q2xpY2tlZD8uYm9yZGVyIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICB9XCI+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gICAgICA8IS0tZXhwYW5kZWQtcm93LS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZXhwYW5kZWRSb3dcIj5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFthdHRyLmNvbHNwYW5dPVwiX2Rpc3BsYXlDb2x1bW5zLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1kZXRhaWxcIlxyXG4gICAgICAgICAgICAgICBbQGRldGFpbEV4cGFuZF09XCJlbGVtZW50LnJvd1NyYyA9PT0gaGlnaGxpZ2h0ZWQgPyBleHBhbmRlZFN0YXRlRW51bS5FWFBBTkRFRCA6IGV4cGFuZGVkU3RhdGVFbnVtLkNPTExBUFNFRFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXh0ZW5kZWRSb3dUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZWxlbWVudH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4dGVuZGVkUm93VGVtcGxhdGVcIj5cclxuICAgICAgICA8dHIgbWF0LXJvdyBjbGFzcz1cImV4cGFuZGVkLXJvd1wiICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2V4cGFuZGVkUm93J11cIj48L3RyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPCEtLWV4cGFuZGVkLXJvdy0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvdGFsUm93UHJvdmlkZXIuaXNFbmFibGVkXCI+XHJcbiAgICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJfZGlzcGxheUNvbHVtbnM7IHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LnRvdGFsXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cInRvdGFsUm93UHJvdmlkZXIuc3R5bGVcIj48L3RyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS1zdWItZm9vdGVyLXJvdy0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN1YkZvb3RlclJvd1wiPlxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWYgW2F0dHIuY29sc3Bhbl09XCJfZGlzcGxheUNvbHVtbnMubGVuZ3RoXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmd4QXVyVGFibGVTdWJGb290ZXJSb3ddXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViRm9vdGVyUm93VGVtcGxhdGVcIj5cclxuICAgICAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cIlsnc3ViRm9vdGVyUm93J107IHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LnN1YkZvb3RlclwiPjwvdHI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tICAgICAgc3ViLWZvb3Rlci1yb3cgRU5ELS0+XHJcblxyXG4gICAgICA8IS0tc3ViLWZvb3Rlci1wYWdpbmF0aW9uLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3ViRm9vdGVyUGFnaW5hdGlvblwiPlxyXG4gICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWYgW2F0dHIuY29sc3Bhbl09XCJfZGlzcGxheUNvbHVtbnMubGVuZ3RoXCIgPlxyXG5cclxuICAgICAgICAgICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdpbmF0aW9uUHJvdmlkZXIuc2l6ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvblByb3ZpZGVyLnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwidGhpcy50YWJsZUNvbmZpZz8ucGFnZWFibGVDZmc/LnN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+XHJcbiAgICAgICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cclxuXHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnaW5hdGlvblByb3ZpZGVyLmlzRW5hYmxlZFwiPlxyXG4gICAgICAgIDx0ciBtYXQtZm9vdGVyLXJvdyAqbWF0Rm9vdGVyUm93RGVmPVwiWydzdWJGb290ZXJQYWdpbmF0aW9uJ107IHN0aWNreTogdGhpcy50YWJsZUNvbmZpZy5zdGlja3lDZmc/LnN1YkZvb3RlclBhZ2luYXRpb25cIiBbc3R5bGVdPVwidGhpcy50YWJsZUNvbmZpZz8ucGFnZWFibGVDZmc/LnN0eWxlXCI+PC90cj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS0gICAgICBzdWItZm9vdGVyLXBhZ2luYXRpb24gRU5ELS0+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPCEtLSBQYWdpbmF0aW9uIC0tPlxyXG5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2Zvb3RlckNlbGxUZW1wbGF0ZSBsZXQtY29sdW1uTmFtZT5cclxuICA8dGQgbWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmPlxyXG4gICAge3sgdG90YWxSb3dQcm92aWRlci50b3RhbHMuZ2V0KGNvbHVtbk5hbWUpIHx8ICcnIH19XHJcbiAgPC90ZD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -2,11 +2,11 @@ import { SelectionModel } from '@angular/cdk/collections';
|
|
|
2
2
|
import { EmptyValue } from "../model/EmptyValue";
|
|
3
3
|
import { AbstractProvider } from "./AbstractProvider";
|
|
4
4
|
export class SelectionProvider extends AbstractProvider {
|
|
5
|
-
constructor(tableConfig, tableDataSource) {
|
|
5
|
+
constructor(tableConfig, tableDataSource, initSelection) {
|
|
6
6
|
super();
|
|
7
7
|
this.isEnabled = true;
|
|
8
8
|
this.config = (tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.selectionCfg) || EmptyValue.SELECTION_CONFIG;
|
|
9
|
-
this.selection = new SelectionModel(this.config.multiple,
|
|
9
|
+
this.selection = new SelectionModel(this.config.multiple, initSelection);
|
|
10
10
|
this.tableDataSource = tableDataSource;
|
|
11
11
|
}
|
|
12
12
|
get COLUMN_NAME() {
|
|
@@ -54,9 +54,9 @@ export class SelectionProvider extends AbstractProvider {
|
|
|
54
54
|
static canEnable(tableConfig) {
|
|
55
55
|
return (tableConfig.selectionCfg && tableConfig.selectionCfg.enable) || false;
|
|
56
56
|
}
|
|
57
|
-
static create(tableConfig, tableDataSource) {
|
|
57
|
+
static create(tableConfig, tableDataSource, initSelection) {
|
|
58
58
|
if (SelectionProvider.canEnable(tableConfig)) {
|
|
59
|
-
return new SelectionProvider(tableConfig, tableDataSource);
|
|
59
|
+
return new SelectionProvider(tableConfig, tableDataSource, initSelection);
|
|
60
60
|
}
|
|
61
61
|
return new SelectionProviderDummy();
|
|
62
62
|
}
|
|
@@ -64,7 +64,7 @@ export class SelectionProvider extends AbstractProvider {
|
|
|
64
64
|
SelectionProvider.COLUMN_NAME = 'tbl_selects';
|
|
65
65
|
export class SelectionProviderDummy extends SelectionProvider {
|
|
66
66
|
constructor() {
|
|
67
|
-
super(EmptyValue.TABLE_CONFIG, EmptyValue.MAT_TABLE_DATA_SOURCE);
|
|
67
|
+
super(EmptyValue.TABLE_CONFIG, EmptyValue.MAT_TABLE_DATA_SOURCE, []);
|
|
68
68
|
this.isEnabled = true;
|
|
69
69
|
}
|
|
70
70
|
addCheckboxColumn(columns) {
|
|
@@ -74,4 +74,4 @@ export class SelectionProviderDummy extends SelectionProvider {
|
|
|
74
74
|
return this;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0aW9uUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL3Byb3ZpZGVycy9TZWxlY3Rpb25Qcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFLeEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sT0FBTyxpQkFBcUIsU0FBUSxnQkFBZ0I7SUFPeEQsWUFBWSxXQUEyQixFQUFFLGVBQWdELEVBQUUsYUFBa0I7UUFDM0csS0FBSyxFQUFFLENBQUM7UUFQTSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBUS9CLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsWUFBWSxLQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksY0FBYyxDQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBRU0saUJBQWlCLENBQUMsT0FBaUI7UUFDeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQTJCLEVBQUUsUUFBMkIsRUFBRSxVQUE2QixFQUFFLGNBQStDO1FBQy9KLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUI7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNyRjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDcEMsT0FBTyxXQUFXLEtBQUssT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFJLFdBQTJCO1FBQ3JELE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFJLFdBQTJCLEVBQUUsZUFBZ0QsRUFBRSxhQUFrQjtRQUN2SCxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksaUJBQWlCLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUMzRTtRQUNELE9BQU8sSUFBSSxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7O0FBbEVzQiw2QkFBVyxHQUFHLGFBQWEsQ0FBQztBQXFFckQsTUFBTSxPQUFPLHNCQUEwQixTQUFRLGlCQUFvQjtJQUdqRTtRQUNFLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUg5QyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBSTFDLENBQUM7SUFFZSxpQkFBaUIsQ0FBQyxPQUFpQjtRQUNqRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFZSxpQkFBaUIsQ0FBQyxRQUEyQixFQUFFLFFBQTJCLEVBQUUsVUFBNkI7UUFDdkgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NlbGVjdGlvbk1vZGVsfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQge01hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VGFibGVSb3d9IGZyb20gXCIuLi9tb2RlbC9UYWJsZVJvd1wiO1xyXG5pbXBvcnQge1NlbGVjdGlvbkNvbmZpZywgVGFibGVDb25maWd9IGZyb20gXCIuLi9tb2RlbC9Db2x1bW5Db25maWdcIjtcclxuaW1wb3J0IHtFbXB0eVZhbHVlfSBmcm9tIFwiLi4vbW9kZWwvRW1wdHlWYWx1ZVwiO1xyXG5pbXBvcnQge0Fic3RyYWN0UHJvdmlkZXJ9IGZyb20gXCIuL0Fic3RyYWN0UHJvdmlkZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Qcm92aWRlcjxUPiBleHRlbmRzIEFic3RyYWN0UHJvdmlkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBpc0VuYWJsZWQgPSB0cnVlO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09MVU1OX05BTUUgPSAndGJsX3NlbGVjdHMnO1xyXG4gIHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8VD47XHJcbiAgY29uZmlnOiBTZWxlY3Rpb25Db25maWc7XHJcbiAgdGFibGVEYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8VGFibGVSb3c8VD4+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0YWJsZUNvbmZpZzogVGFibGVDb25maWc8VD4sIHRhYmxlRGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFRhYmxlUm93PFQ+PiwgaW5pdFNlbGVjdGlvbjogVFtdKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5jb25maWcgPSB0YWJsZUNvbmZpZz8uc2VsZWN0aW9uQ2ZnIHx8IEVtcHR5VmFsdWUuU0VMRUNUSU9OX0NPTkZJRztcclxuICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRoaXMuY29uZmlnLm11bHRpcGxlLCBpbml0U2VsZWN0aW9uKTtcclxuICAgIHRoaXMudGFibGVEYXRhU291cmNlID0gdGFibGVEYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IENPTFVNTl9OQU1FKCkge1xyXG4gICAgcmV0dXJuIFNlbGVjdGlvblByb3ZpZGVyLkNPTFVNTl9OQU1FO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZENoZWNrYm94Q29sdW1uKGNvbHVtbnM6IHN0cmluZ1tdKTogU2VsZWN0aW9uUHJvdmlkZXI8VD4ge1xyXG4gICAgaWYgKHRoaXMuaGFzS2V5KHRoaXMuQ09MVU1OX05BTUUsIGNvbHVtbnMpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnBvc2l0aW9uID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIGNvbHVtbnMudW5zaGlmdCh0aGlzLkNPTFVNTl9OQU1FKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbHVtbnMucHVzaCh0aGlzLkNPTFVNTl9OQU1FKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGJpbmRFdmVudEVtaXR0ZXJzKHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VFtdPiwgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxUW10+LCBvbkRlc2VsZWN0OiBFdmVudEVtaXR0ZXI8VFtdPiwgc2VsZWN0aW9uTW9kZWw6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25Nb2RlbDxUPj4pOiBTZWxlY3Rpb25Qcm92aWRlcjxUPiB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudC5hZGRlZCkge1xyXG4gICAgICAgIG9uU2VsZWN0LmVtaXQoZXZlbnQuYWRkZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC5yZW1vdmVkKSB7XHJcbiAgICAgICAgb25EZXNlbGVjdC5lbWl0KGV2ZW50LnJlbW92ZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIHNlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgfSk7XHJcbiAgICBzZWxlY3Rpb25Nb2RlbC5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1hc3RlclRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyZWREYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cucm93U3JjKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0FsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy50YWJsZURhdGFTb3VyY2UuZmlsdGVyZWREYXRhO1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gZmlsdGVyZWREYXRhLmxlbmd0aDtcclxuICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNhbkVuYWJsZTxUPih0YWJsZUNvbmZpZzogVGFibGVDb25maWc8VD4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGFibGVDb25maWcuc2VsZWN0aW9uQ2ZnICYmIHRhYmxlQ29uZmlnLnNlbGVjdGlvbkNmZy5lbmFibGUpIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdGU8VD4odGFibGVDb25maWc6IFRhYmxlQ29uZmlnPFQ+LCB0YWJsZURhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxUYWJsZVJvdzxUPj4sIGluaXRTZWxlY3Rpb246IFRbXSk6IFNlbGVjdGlvblByb3ZpZGVyPFQ+IHtcclxuICAgIGlmIChTZWxlY3Rpb25Qcm92aWRlci5jYW5FbmFibGUodGFibGVDb25maWcpKSB7XHJcbiAgICAgIHJldHVybiBuZXcgU2VsZWN0aW9uUHJvdmlkZXIodGFibGVDb25maWcsIHRhYmxlRGF0YVNvdXJjZSwgaW5pdFNlbGVjdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFNlbGVjdGlvblByb3ZpZGVyRHVtbXkoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Qcm92aWRlckR1bW15PFQ+IGV4dGVuZHMgU2VsZWN0aW9uUHJvdmlkZXI8VD4ge1xyXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBpc0VuYWJsZWQgPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKEVtcHR5VmFsdWUuVEFCTEVfQ09ORklHLCBFbXB0eVZhbHVlLk1BVF9UQUJMRV9EQVRBX1NPVVJDRSwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlIGFkZENoZWNrYm94Q29sdW1uKGNvbHVtbnM6IHN0cmluZ1tdKTogU2VsZWN0aW9uUHJvdmlkZXI8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGUgYmluZEV2ZW50RW1pdHRlcnMoc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxUW10+LCBvblNlbGVjdDogRXZlbnRFbWl0dGVyPFRbXT4sIG9uRGVzZWxlY3Q6IEV2ZW50RW1pdHRlcjxUW10+KTogU2VsZWN0aW9uUHJvdmlkZXI8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -76,11 +76,11 @@ class AbstractProvider {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
class SelectionProvider extends AbstractProvider {
|
|
79
|
-
constructor(tableConfig, tableDataSource) {
|
|
79
|
+
constructor(tableConfig, tableDataSource, initSelection) {
|
|
80
80
|
super();
|
|
81
81
|
this.isEnabled = true;
|
|
82
82
|
this.config = (tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.selectionCfg) || EmptyValue.SELECTION_CONFIG;
|
|
83
|
-
this.selection = new SelectionModel(this.config.multiple,
|
|
83
|
+
this.selection = new SelectionModel(this.config.multiple, initSelection);
|
|
84
84
|
this.tableDataSource = tableDataSource;
|
|
85
85
|
}
|
|
86
86
|
get COLUMN_NAME() {
|
|
@@ -128,9 +128,9 @@ class SelectionProvider extends AbstractProvider {
|
|
|
128
128
|
static canEnable(tableConfig) {
|
|
129
129
|
return (tableConfig.selectionCfg && tableConfig.selectionCfg.enable) || false;
|
|
130
130
|
}
|
|
131
|
-
static create(tableConfig, tableDataSource) {
|
|
131
|
+
static create(tableConfig, tableDataSource, initSelection) {
|
|
132
132
|
if (SelectionProvider.canEnable(tableConfig)) {
|
|
133
|
-
return new SelectionProvider(tableConfig, tableDataSource);
|
|
133
|
+
return new SelectionProvider(tableConfig, tableDataSource, initSelection);
|
|
134
134
|
}
|
|
135
135
|
return new SelectionProviderDummy();
|
|
136
136
|
}
|
|
@@ -138,7 +138,7 @@ class SelectionProvider extends AbstractProvider {
|
|
|
138
138
|
SelectionProvider.COLUMN_NAME = 'tbl_selects';
|
|
139
139
|
class SelectionProviderDummy extends SelectionProvider {
|
|
140
140
|
constructor() {
|
|
141
|
-
super(EmptyValue.TABLE_CONFIG, EmptyValue.MAT_TABLE_DATA_SOURCE);
|
|
141
|
+
super(EmptyValue.TABLE_CONFIG, EmptyValue.MAT_TABLE_DATA_SOURCE, []);
|
|
142
142
|
this.isEnabled = true;
|
|
143
143
|
}
|
|
144
144
|
addCheckboxColumn(columns) {
|
|
@@ -587,9 +587,11 @@ class NgxAurMatTableComponent {
|
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
589
|
ngOnChanges(changes) {
|
|
590
|
+
var _a, _b, _c;
|
|
590
591
|
if ((changes['tableData'] && this.tableData) || (changes['displayColumns'] && this._displayColumns)) {
|
|
592
|
+
const selected = (_c = (_b = (_a = this.selectionProvider) === null || _a === void 0 ? void 0 : _a.selection) === null || _b === void 0 ? void 0 : _b.selected) !== null && _c !== void 0 ? _c : [];
|
|
591
593
|
this.tableData = this.tableData || [];
|
|
592
|
-
this.prepareTableData();
|
|
594
|
+
this.prepareTableData(selected);
|
|
593
595
|
}
|
|
594
596
|
if (changes['highlight'] && this.highlight) {
|
|
595
597
|
this.handleHighlightChange(this.highlight);
|
|
@@ -658,7 +660,7 @@ class NgxAurMatTableComponent {
|
|
|
658
660
|
}
|
|
659
661
|
}
|
|
660
662
|
}
|
|
661
|
-
prepareTableData() {
|
|
663
|
+
prepareTableData(initSelection = []) {
|
|
662
664
|
this.initTable();
|
|
663
665
|
this.initCustomSortFunctionsMap();
|
|
664
666
|
this.initPaginator();
|
|
@@ -668,7 +670,7 @@ class NgxAurMatTableComponent {
|
|
|
668
670
|
this.rowActionsProvider = RowActionProvider.create(this.tableConfig)
|
|
669
671
|
.addActionColumn(this._displayColumns)
|
|
670
672
|
.setView(this.tableDataSource.data);
|
|
671
|
-
this.selectionProvider = SelectionProvider.create(this.tableConfig, this.tableDataSource)
|
|
673
|
+
this.selectionProvider = SelectionProvider.create(this.tableConfig, this.tableDataSource, initSelection)
|
|
672
674
|
.addCheckboxColumn(this._displayColumns)
|
|
673
675
|
.bindEventEmitters(this.selected, this.onSelect, this.onDeselect, this.selectionModel);
|
|
674
676
|
this.paginationProvider = PaginationProvider.create(this.tableConfig);
|