@trudb/tru-common-lib 0.0.833 → 0.0.835
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.
|
@@ -59,7 +59,13 @@ export class TruDataGrid {
|
|
|
59
59
|
onSelectionChanged: (params) => { },
|
|
60
60
|
onCellEditingStopped: (params) => {
|
|
61
61
|
//this.gridOptions.api.redrawRows({ rowNodes: params.node });
|
|
62
|
+
params.api.refreshCells({
|
|
63
|
+
force: true,
|
|
64
|
+
rowNodes: [params.node]
|
|
65
|
+
});
|
|
62
66
|
},
|
|
67
|
+
onCellValueChanged: (params) => {
|
|
68
|
+
}
|
|
63
69
|
};
|
|
64
70
|
parentToolbarTemplate = null;
|
|
65
71
|
subs = [];
|
|
@@ -244,13 +250,11 @@ export class TruDataGrid {
|
|
|
244
250
|
if (key.code === 'Space') {
|
|
245
251
|
key.preventDefault();
|
|
246
252
|
key.stopPropagation();
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
});
|
|
253
|
-
}
|
|
253
|
+
this.gridOptions.api?.startEditingCell({
|
|
254
|
+
rowIndex: event.rowIndex,
|
|
255
|
+
colKey: event.column.getColId(),
|
|
256
|
+
key: key.code
|
|
257
|
+
});
|
|
254
258
|
}
|
|
255
259
|
};
|
|
256
260
|
onCellFocused(event) {
|
|
@@ -387,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
387
391
|
}], name: [{
|
|
388
392
|
type: Input
|
|
389
393
|
}] } });
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUF3RCxNQUFNLGVBQWUsQ0FBQztBQU1sSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFJaEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxXQUFXO0lBNkNaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQWpERCxNQUFNLENBQXNCO0lBQzVCLE1BQU0sQ0FBTztJQUNiLElBQUksQ0FBTztJQUVwQixnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUVwQyxVQUFVLEdBQVEsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFDbEIsV0FBVyxHQUFlLEVBQUUsQ0FBQztJQUM3QixrQkFBa0IsQ0FBTTtJQUN4QixtQkFBbUIsR0FBZSxFQUFFLENBQUM7SUFDckMsMEJBQTBCLENBQU07SUFDaEMsUUFBUSxHQUFx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Q0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7dUdBcFpVLFdBQVc7MkZBQVgsV0FBVyxpTUN4QnhCLDR3RkE2Q0E7OzJGRHJCYSxXQUFXO2tCQVB2QixTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFDLHVCQUF1QixFQUFFLE1BQU0sRUFBQzttUUFHOUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IFRydVNlYXJjaFZpZXdFdmVudEhhbmRsZXIgfSBmcm9tICcuLi8uLi9iYXNlLXZpZXdzL3NlYXJjaC9zZXJ2aWNlcy90cnUtc2VhcmNoLXZpZXctZXZlbnQtaGFuZGxlcic7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWRhdGEtY29udGV4dCc7XHJcbmltcG9ydCB7IFRydVVpTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXVpLW5vdGlmaWNhdGlvbic7XHJcbmltcG9ydCB7IElUcnVEYXRhR3JpZENvbmZpZyB9IGZyb20gJy4vY2xhc3Nlcy90cnUtZGF0YS1ncmlkLWNvbmZpZyc7XHJcbmltcG9ydCB7IFRydURhdGFHcmlkVHlwZXMgfSBmcm9tICcuL2VudW1zL3RydS1kYXRhLWdyaWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBJVHJ1VG9vbGJhckRyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi4vdG9vbGJhci9jbGFzc2VzL3RydS10b29sYmFyLWRyb3Bkb3duLW9wdGlvbic7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBza2lwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICd1bmRlcnNjb3JlJztcclxuaW1wb3J0IHsgVHJ1U2VhcmNoUmVzdWx0Vmlld01hbmFnZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtc2VhcmNoLXJlc3VsdC12aWV3LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBUcnVDb25uZWN0aW9uSHViIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LWNvbm5lY3Rpb24taHViJztcclxuaW1wb3J0IHsgQ29sRGVmLCBDb2x1bW4sIFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgVHJ1RGF0YUdyaWRMb2FkaW5nT3ZlcmxheSB9IGZyb20gJy4vb3ZlcmxheXMvdHJ1LWRhdGEtZ3JpZC1sb2FkaW5nLW92ZXJsYXkvdHJ1LWRhdGEtZ3JpZC1sb2FkaW5nLW92ZXJsYXknO1xyXG5pbXBvcnQgeyBUcnVEYXRhR3JpZE5vUm93c092ZXJsYXkgfSBmcm9tICcuL292ZXJsYXlzL3RydS1kYXRhLWdyaWQtbm8tcm93cy1vdmVybGF5L3RydS1kYXRhLWdyaWQtbm8tcm93cy1vdmVybGF5JztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uLCBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnYnJlZXplLWNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RydS1kYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtZGF0YS1ncmlkLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1kYXRhLWdyaWQuY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7J1tjbGFzcy50cnUtZGF0YS1ncmlkXSc6ICd0cnVlJ31cclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURhdGFHcmlkIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElUcnVEYXRhR3JpZENvbmZpZztcclxuICBASW5wdXQoKSBlbnRpdHkhOiBhbnk7XHJcbiAgQElucHV0KCkgbmFtZSE6IGFueTtcclxuXHJcbiAgVHJ1RGF0YUdyaWRUeXBlcyA9IFRydURhdGFHcmlkVHlwZXM7XHJcblxyXG4gIGNvbHVtbkRlZnM6IGFueSA9IFtdO1xyXG4gIHJvd0RhdGE6IGFueSA9IFtdO1xyXG4gIHZpZXdDaG9pY2VzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgc2VsZWN0ZWRWaWV3Q2hvaWNlOiBhbnk7XHJcbiAgdW5hc3NvY2lhdGVkQ2hvaWNlczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHNlbGVjdGVkVW5hc3NvY2lhdGVkQ2hvaWNlOiBhbnk7XHJcbiAgZ3JpZFR5cGU6IFRydURhdGFHcmlkVHlwZXMgPSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaFxyXG4gIHVuc2F2ZWRFbnRpdGllczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGxvYWRlZEVudGl0aWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgbGF0ZXN0U2V0dXBRdWVyeTogYW55O1xyXG4gIGZpcnN0U2VhcmNoUmFuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ3JpZE9wdGlvbnM6IGFueSA9IHtcclxuICAgIHJvd1NlbGVjdGlvbjogJ211bHRpcGxlJyxcclxuICAgIHJvd1N0eWxlOiB7IGJhY2tncm91bmQ6ICd3aGl0ZScgfSxcclxuICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50OiBUcnVEYXRhR3JpZExvYWRpbmdPdmVybGF5LFxyXG4gICAgbG9hZGluZ092ZXJsYXlDb21wb25lbnRQYXJhbXM6IHtcclxuICAgICAgbG9hZGluZ01lc3NhZ2U6ICdTZWFyY2hpbmcgLSBPbmUgbW9tZW50IHBsZWFzZS4uLicsXHJcbiAgICB9LFxyXG4gICAgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudDogVHJ1RGF0YUdyaWROb1Jvd3NPdmVybGF5LFxyXG4gICAgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudFBhcmFtczoge1xyXG4gICAgICBub1Jvd3NNZXNzYWdlRnVuYzogKCkgPT5cclxuICAgICAge1xyXG4gICAgICAgIGlmICh0aGlzLmZpcnN0U2VhcmNoUmFuKVxyXG4gICAgICAgICAgcmV0dXJuICdTb3JyeSAtIG5vIHJvd3MgZm91bmQhJ1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHJldHVybiAnQ2xpY2sgc2VhcmNoIHRvIGRpc3BsYXkgcmVzdWx0cy4nXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb25TZWxlY3Rpb25DaGFuZ2VkOiAocGFyYW1zOiBhbnkpID0+IHsgfSxcclxuICAgIG9uQ2VsbEVkaXRpbmdTdG9wcGVkOiAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgLy90aGlzLmdyaWRPcHRpb25zLmFwaS5yZWRyYXdSb3dzKHsgcm93Tm9kZXM6IHBhcmFtcy5ub2RlIH0pO1xyXG4gICAgfSxcclxuICB9XHJcbiAgcGFyZW50VG9vbGJhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgc3ViczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hSZXN1bHRWaWV3TWFuYWdlcjogVHJ1U2VhcmNoUmVzdWx0Vmlld01hbmFnZXIsXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgc2VhcmNoVmlld0V2ZW50SGFuZGxlcjogVHJ1U2VhcmNoVmlld0V2ZW50SGFuZGxlcixcclxuICAgIHByaXZhdGUgdWlOb3RpZmljYXRpb246IFRydVVpTm90aWZpY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBjb25uZWN0aW9uSHViOiBUcnVDb25uZWN0aW9uSHViKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVuaGFuY2VSb3dEYXRhRm9yRW50aXR5ID0gKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICBsZXQgcm93RGF0YSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5yb3dEYXRhRW5oYW5jZXIoZW50aXR5KTtcclxuICAgIHJvd0RhdGEuJGVudGl0eSA9IGVudGl0eTtcclxuICAgIHJldHVybiByb3dEYXRhO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgc2V0Tm9Sb3dzVGVtcGxhdGUgPSAoKSA9PiB7XHJcbiAgICAvL3RoaXMubm9Sb3dzVGVtcGxhdGUgPSBgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTRweDtmb250LXdlaWdodDpib2xkO1wiPk5vIGRhdGEgZm91bmQuPC9zcGFuPmA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5hcHBFbnZpcm9ubWVudC5vblNhdmVDb21wbGV0ZSQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50Py5zdWNjZXNzZnVsKVxyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZHJhd1Jvd3MoKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuYXBwRW52aXJvbm1lbnQub25SZXZlcnRDb21wbGV0ZSQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50Py5zdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgbGV0IHJvd3NUb1JlbW92ZTogQXJyYXk8YW55PiA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnJvd0RhdGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJvd0RhdGFbaV0uJGVudGl0eVt0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZS5uYW1lICsgJ1JlZiddIDwgMClcclxuICAgICAgICAgICAgcm93c1RvUmVtb3ZlLnB1c2godGhpcy5yb3dEYXRhW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuYXBwbHlUcmFuc2FjdGlvbih7IHJlbW92ZTogcm93c1RvUmVtb3ZlIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZHJhd1Jvd3MoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuYXBwRW52aXJvbm1lbnQub25EZWxldGVDb21wbGV0ZSQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50Py5zdWNjZXNzZnVsICYmIGV2ZW50LmVudGl0aWVzICYmIGV2ZW50LmVudGl0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIGxldCByb3dzVG9SZW1vdmU6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5yb3dEYXRhLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gZXZlbnQuZW50aXRpZXMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucm93RGF0YVtpXS4kZW50aXR5ID09PSBldmVudC5lbnRpdGllc1tqXSlcclxuICAgICAgICAgICAgICByb3dzVG9SZW1vdmUucHVzaCh0aGlzLnJvd0RhdGFbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiByb3dzVG9SZW1vdmUgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVkcmF3Um93cygpO1xyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnNlYXJjaFZpZXdFdmVudEhhbmRsZXIub25TZWFyY2goKS5waXBlKHNraXAoMSkpLnN1YnNjcmliZSgoc2V0dXBRdWVyeTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMub25TZWFyY2goc2V0dXBRdWVyeSk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFDb250ZXh0Lm9uUHJvcGVydHlDaGFuZ2VkKCkuc3Vic2NyaWJlKChjaGFuZ2VBcmdzOiBFbnRpdHlDaGFuZ2VkRXZlbnRBcmdzKSA9PiB7XHJcbiAgICAgIGlmIChjaGFuZ2VBcmdzLmVudGl0eUFjdGlvbiA9PT0gRW50aXR5QWN0aW9uLkF0dGFjaCAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLm5hbWUgPT09IGNoYW5nZUFyZ3MuZW50aXR5Py5jb25zdHJ1Y3Rvci5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5hZGRFbnRpdHkoY2hhbmdlQXJncy5lbnRpdHkpXHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuY29ubmVjdGlvbkh1Yi5zdWJzY3JpYmUoXHJcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQsXHJcbiAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLFxyXG4gICAgICB0aGlzLmNvbmZpZy50YWJsZU5hbWUsXHJcbiAgICAgICgpID0+IHsgcmV0dXJuIHRoaXMubG9hZGVkRW50aXRpZXMgfSxcclxuICAgICAgKCkgPT4geyByZXR1cm4gdGhpcy5sYXRlc3RTZXR1cFF1ZXJ5IH0sXHJcbiAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5leHBhbmRzLFxyXG4gICAgICBbXSxcclxuICAgICAgKCkgPT4geyByZXR1cm4gdHJ1ZTsgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5yZWZyZXNoQ2VsbHMoeyBmb3JjZTogdHJ1ZSB9KTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEdyaWREYXRhID0gKGVudGl0aWVzOiBBcnJheTxhbnk+KSA9PiB7XHJcbiAgICB0aGlzLnJvd0RhdGEgPSBlbnRpdGllcy5tYXAodGhpcy5lbmhhbmNlUm93RGF0YUZvckVudGl0eSwgZW50aXRpZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkTWFueVRvTWFueUdyaWREYXRhID0gKGFzc29jaWF0ZWRFbnRpdGllczogQXJyYXk8YW55PiwgYXNzb2NpYXRhYmxlRW50aXRpZXM6IEFycmF5PGFueT4sIGluaXRhbExvYWQ6IGJvb2xlYW4pID0+IHtcclxuICAgIGlmIChpbml0YWxMb2FkKVxyXG4gICAgICB0aGlzLnJvd0RhdGEgPSBhc3NvY2lhdGVkRW50aXRpZXMubWFwKHRoaXMuZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHksIGFzc29jaWF0ZWRFbnRpdGllcyk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGFzc29jaWF0ZWRFbnRpdGllcyA9IHRoaXMucm93RGF0YS5tYXAoKGU6IGFueSkgPT4geyByZXR1cm4gZS4kZW50aXR5IH0pO1xyXG4gICAgbGV0IGFzc29jaWF0YWJsZVR5cGVOYW1lID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eU1hbnlUb01hbnlUeXBlLm5hbWVcclxuICAgIGxldCBhc3NvY2lhdGVkTWFwT2ZBc3NvY2lhdGFibGUgPSBfLm1hcChhc3NvY2lhdGVkRW50aXRpZXMsIGZ1bmN0aW9uIChlKSB7IHJldHVybiBlWydvJyArIGFzc29jaWF0YWJsZVR5cGVOYW1lXTsgfSk7XHJcbiAgICB0aGlzLnVuYXNzb2NpYXRlZENob2ljZXMgPSBhc3NvY2lhdGFibGVFbnRpdGllcy5maWx0ZXIob2JqZWN0MSA9PiB7XHJcbiAgICAgIHJldHVybiAhYXNzb2NpYXRlZE1hcE9mQXNzb2NpYXRhYmxlLnNvbWUob2JqZWN0MiA9PiB7IHJldHVybiBvYmplY3QxLnZhbHVlLiQgPT09IG9iamVjdDJbYXNzb2NpYXRhYmxlVHlwZU5hbWUgKyAnUmVmJ107IH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4cG9ydERhdGEgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnVpTm90aWZpY2F0aW9uLnNob3dFeHBvcnREaWFsb2coKS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKCFyZXN1bHQpIHJldHVybjtcclxuICAgICAgbGV0IGV4cG9ydEdyaWRTcGVjO1xyXG4gICAgICBpZiAodGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUpXHJcbiAgICAgICAgZXhwb3J0R3JpZFNwZWMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZS5uYW1lO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgZXhwb3J0R3JpZFNwZWMgPSAnJGN1c3RvbT0nICsgMTtcclxuXHJcbiAgICAgIGxldCByb3dOb2RlczogYW55ID0gW107XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmZvckVhY2hOb2RlKChyb3dOb2RlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICByb3dOb2Rlcy5wdXNoKHJvd05vZGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgbGV0IHJlZnMgPSBfLm1hcChyb3dOb2RlcywgKHJvd05vZGUpID0+IHsgcmV0dXJuIHJvd05vZGUuZGF0YS4kZW50aXR5W3RoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLm5hbWUgKyAnUmVmJ107IH0pO1xyXG4gICAgICB0aGlzLmRhdGFDb250ZXh0XHJcbiAgICAgICAgLmVudGl0eUFjY2VzcygpXHJcbiAgICAgICAgLmV4cG9ydCh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSwgZXhwb3J0R3JpZFNwZWMsIHRoaXMubGF0ZXN0U2V0dXBRdWVyeSwgcmVmcy5qb2luKCcsJyksIHJlc3VsdCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25TdXBwcmVzc0tleWJvYXJkRXZlbnQgPSAocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuID0+IHtcclxuICAgIGxldCBpc1RhYktleSA9IHBhcmFtcy5ldmVudC5rZXkgPT09ICdUYWInO1xyXG4gICAgbGV0IGlzQXJyb3dEb3duID0gcGFyYW1zLmV2ZW50LmtleSA9PT0gJ0Fycm93RG93bic7XHJcbiAgICBsZXQgaXNBcnJvd1VwID0gcGFyYW1zLmV2ZW50LmtleSA9PT0gJ0Fycm93VXAnO1xyXG4gICAgbGV0IGlzQXJyb3dMZWZ0ID0gcGFyYW1zLmV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCc7XHJcbiAgICBsZXQgaXNBcnJvd1JpZ2h0ID0gcGFyYW1zLmV2ZW50LmtleSA9PT0gJ0Fycm93UmlnaHQnO1xyXG4gICAgbGV0IGlzU2hpZnRLZXkgPSBwYXJhbXMuZXZlbnQuc2hpZnRLZXk7XHJcbiAgICBsZXQgaXNBbHRLZXkgPSBwYXJhbXMuZXZlbnQuYWx0S2V5O1xyXG5cclxuICAgIGxldCBmb2N1c2VkQ2VsbCA9IHBhcmFtcy5hcGkuZ2V0Rm9jdXNlZENlbGwoKTtcclxuICAgIGxldCBoYXNDaG9pY2VzID0gcGFyYW1zLmRhdGFbcGFyYW1zLmNvbHVtbi5nZXRDb2xJZCgpXSAmJiBwYXJhbXMuZGF0YVtwYXJhbXMuY29sdW1uLmdldENvbElkKCldLmNob2ljZXMgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgaWYgKHBhcmFtcy5jb2x1bW4uaXNQaW5uZWQoKSkge1xyXG4gICAgICBpZiAoaXNUYWJLZXkgJiYgIWlzU2hpZnRLZXkpXHJcbiAgICAgICAgcGFyYW1zLmFwaS50YWJUb05leHRDZWxsKCk7XHJcbiAgICAgIGVsc2UgaWYgKGlzVGFiS2V5ICYmIGlzU2hpZnRLZXkpXHJcbiAgICAgICAgcGFyYW1zLmFwaS50YWJUb1ByZXZpb3VzQ2VsbCgpO1xyXG4gICAgICBlbHNlIGlmIChpc0Fycm93TGVmdClcclxuICAgICAgICBwYXJhbXMuYXBpLnRhYlRvUHJldmlvdXNDZWxsKCk7XHJcbiAgICAgIGVsc2UgaWYgKGlzQXJyb3dSaWdodClcclxuICAgICAgICBwYXJhbXMuYXBpLnRhYlRvTmV4dENlbGwoKTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuc3RvcEVkaXRpbmcoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChoYXNDaG9pY2VzICYmIGlzQWx0S2V5ICYmIChpc0Fycm93RG93biB8fCBpc0Fycm93VXApKSB7XHJcbiAgICAgIHBhcmFtcy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcGFyYW1zLmFwaS5zdGFydEVkaXRpbmdDZWxsKHtcclxuICAgICAgICByb3dJbmRleDogZm9jdXNlZENlbGw/LnJvd0luZGV4IGFzIG51bWJlcixcclxuICAgICAgICBjb2xLZXk6IGZvY3VzZWRDZWxsPy5jb2x1bW4gYXMgQ29sdW1uLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBhZGRFbnRpdHkgPSAobmV3RW50aXR5OiBhbnkpID0+IHtcclxuICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpIHtcclxuICAgICAgbGV0IHBhcmVudE5hbWUgPSB0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lO1xyXG4gICAgICBsZXQgdW5hc3NvY2lhdGVkVHlwZSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZTtcclxuICAgICAgbGV0IHJlZiA9IHRoaXMuc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2UudmFsdWUuJDtcclxuICAgICAgbGV0IGNoaWxkVG9Bc3NvY2lhdGUgPSB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaEJ5UmVmQ2FjaGVPbmx5KHVuYXNzb2NpYXRlZFR5cGUsIHJlZiwgdHJ1ZSlcclxuICAgICAgaWYgKGNoaWxkVG9Bc3NvY2lhdGUpIHtcclxuICAgICAgICBsZXQgZW5oYW5jZWRFbnRpdHkgPSB0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5KG5ld0VudGl0eSk7XHJcbiAgICAgICAgZW5oYW5jZWRFbnRpdHkuJGVudGl0eVt1bmFzc29jaWF0ZWRUeXBlLm5hbWUgKyAnUmVmJ10gPSBjaGlsZFRvQXNzb2NpYXRlW3VuYXNzb2NpYXRlZFR5cGUubmFtZSArICdSZWYnXTtcclxuICAgICAgICBlbmhhbmNlZEVudGl0eS4kZW50aXR5W3BhcmVudE5hbWUgKyAnUmVmJ10gPSB0aGlzLmVudGl0eVtwYXJlbnROYW1lICsgJ1JlZiddO1xyXG4gICAgICAgIC8vIHJlbW92ZSBpdGVtIGZyb20gdGhlIGFkZCBkcm9wZG93biBjb250cm9sXHJcbiAgICAgICAgbGV0IGl0ZW1JbmRleCA9IHRoaXMudW5hc3NvY2lhdGVkQ2hvaWNlcy5maW5kSW5kZXgoKGNob2ljZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGNob2ljZVt1bmFzc29jaWF0ZWRUeXBlLm5hbWUgKyAnUmVmJ10gPT09IGNoaWxkVG9Bc3NvY2lhdGVbdW5hc3NvY2lhdGVkVHlwZS5uYW1lICsgJ1JlZiddO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudW5hc3NvY2lhdGVkQ2hvaWNlcy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICAvLyBjbGVhciBhZGQgc2VsZWN0aW9uXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVuYXNzb2NpYXRlZENob2ljZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAvLyBhZGQgcm93IHRvIGdyaWRcclxuICAgICAgICB0aGlzLnVuc2F2ZWRFbnRpdGllcy5wdXNoKGVuaGFuY2VkRW50aXR5KTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgYWRkOiBbZW5oYW5jZWRFbnRpdHldLCBhZGRJbmRleDogMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGVuaGFuY2VkRW50aXR5ID0gdGhpcy5lbmhhbmNlUm93RGF0YUZvckVudGl0eShuZXdFbnRpdHkpO1xyXG4gICAgICB0aGlzLnJvd0RhdGEudW5zaGlmdChlbmhhbmNlZEVudGl0eSk7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyBhZGQ6IFtlbmhhbmNlZEVudGl0eV0sIGFkZEluZGV4OiAwIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVmYXVsdENvbERlZjogQ29sRGVmID0ge1xyXG4gICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiB0aGlzLm9uU3VwcHJlc3NLZXlib2FyZEV2ZW50XHJcbiAgfTtcclxuXHJcbiAgZ2V0Um93Q291bnQgPSAoKSA9PiB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgdGhpcy5ncmlkT3B0aW9ucy5hcGk/LmZvckVhY2hOb2RlQWZ0ZXJGaWx0ZXIoKCkgPT4gY291bnQrKyk7XHJcbiAgICByZXR1cm4gJ1Jvd3M6ICcgKyBjb3VudDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkUm93Q291bnQgPSAoKSA9PiB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgY291bnQgPSB0aGlzLmdyaWRPcHRpb25zLmFwaT8uZ2V0U2VsZWN0ZWRSb3dzKCkubGVuZ3RoO1xyXG4gICAgcmV0dXJuICdTZWxlY3RlZDogJyArIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgb25Sb3dEYXRhQ2hhbmdlZCA9IChkYXRhOiBhbnkpID0+IHtcclxuICAgIGlmICh0aGlzLnJvd0RhdGEgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZXROb1Jvd3NUZW1wbGF0ZSgpO1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLnNob3dOb1Jvd3NPdmVybGF5ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2VsbERvdWJsZUNsaWNrZWQgPSAoZ3JpZENvbmZpZzogYW55KSA9PiB7XHJcbiAgICBpZiAoZ3JpZENvbmZpZy5jb2xEZWYuY2VsbENsYXNzID09PSAnYWctcGstYWxpZ25lZC1jZWxsJylcclxuICAgICAgdGhpcy5jb25maWcucm93SGVhZGVyRG91YmxlQ2xpY2tlZChncmlkQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIG9uQ2VsbEtleURvd24gPSAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgaWYgKCFldmVudC5ldmVudCkgcmV0dXJuO1xyXG4gICAgY29uc3Qga2V5ID0gKGV2ZW50LmV2ZW50IGFzIHVua25vd24pIGFzIEtleWJvYXJkRXZlbnQ7XHJcbiAgICBpZiAoa2V5LmNvZGUgPT09ICdTcGFjZScpIHtcclxuICAgICAga2V5LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGtleS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgIGlmICghZXZlbnQuY29sRGVmLmNlbGxSZW5kZXJlcikge1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpPy5zdGFydEVkaXRpbmdDZWxsKHtcclxuICAgICAgICAgIHJvd0luZGV4OiBldmVudC5yb3dJbmRleCxcclxuICAgICAgICAgIGNvbEtleTogZXZlbnQuY29sdW1uLmdldENvbElkKCksXHJcbiAgICAgICAgICBrZXk6IGtleS5jb2RlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgfVxyXG5cclxuICBvbkNlbGxGb2N1c2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC5jb2x1bW4uY29sRGVmLnBpbm5lZCkge1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmRlc2VsZWN0QWxsKCk7XHJcbiAgICB9XHJcbiAgICAvL2xldCBjb2x1bW5EZWZzID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmNvbHVtbkRlZnM7XHJcbiAgICAvL2lmIChldmVudC5jb2x1bW4uY29sRGVmLnBpbm5lZCkge1xyXG4gICAgLy8gIGNvbHVtbkRlZnMuZm9yRWFjaCgoY29sdW1uRGVmOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIC8vICAgIGlmIChpbmRleCAhPT0gMClcclxuICAgIC8vICAgICAgY29sdW1uRGVmLmhlYWRlckNsYXNzID0gJ2FnLWNvbHVtbi1mb2N1cyc7XHJcbiAgICAvLyAgfSk7XHJcbiAgICAvL30gZWxzZSB7XHJcbiAgICAvLyAgY29sdW1uRGVmcy5mb3JFYWNoKChjb2x1bW5EZWY6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gICAgaWYgKGluZGV4ICE9PSAwICYmIGV2ZW50LmNvbHVtbi5jb2xJZCA9PT0gY29sdW1uRGVmLmZpZWxkKVxyXG4gICAgLy8gICAgICBjb2x1bW5EZWYuaGVhZGVyQ2xhc3MgPSAnYWctY29sdW1uLWZvY3VzJztcclxuICAgIC8vICAgIGVsc2VcclxuICAgIC8vICAgICAgY29sdW1uRGVmLmhlYWRlckNsYXNzID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gIH0pO1xyXG4gICAgLy99XHJcbiAgICAvL3RoaXMuZ3JpZE9wdGlvbnMuYXBpLnNldENvbHVtbkRlZnMoY29sdW1uRGVmcyk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCA9IChzZXR1cFF1ZXJ5OiBhbnkpID0+IHtcclxuICAgIHRoaXMuZmlyc3RTZWFyY2hSYW4gPSB0cnVlO1xyXG4gICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuaGlkZU92ZXJsYXkoKTtcclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNob3dMb2FkaW5nT3ZlcmxheSgpO1xyXG5cclxuICAgIGxldCBlbnRpdHlMb2FkZWQgPSB0aGlzLmxvYWRlZEVudGl0aWVzLnNvbWUoKHJlZikgPT4geyByZXR1cm4gcmVmID09PSB0aGlzLmVudGl0eVt0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lICsgJ1JlZiddOyB9KTtcclxuICAgIGxldCBqb2lucyA9IFtdO1xyXG4gICAgaWYgKGVudGl0eUxvYWRlZCkge1xyXG4gICAgICBqb2lucy5wdXNoKHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoQ2FjaGVPbmx5KFxyXG4gICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLFxyXG4gICAgICAgIHNldHVwUXVlcnksXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmV4cGFuZHMpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaFF1ZXJ5Q2hvaWNlcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZSxcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5tYW55VG9NYW55U2V0dXBRdWVyeSh0aGlzLmVudGl0eSksIG51bGwsIGZhbHNlKSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGpvaW5zLnB1c2godGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2goXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsXHJcbiAgICAgICAgc2V0dXBRdWVyeSxcclxuICAgICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZXhwYW5kcywgZmFsc2UpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaFF1ZXJ5Q2hvaWNlcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZSxcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5tYW55VG9NYW55U2V0dXBRdWVyeSh0aGlzLmVudGl0eSksIG51bGwsIHRydWUpKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGF0ZXN0U2V0dXBRdWVyeSA9IHNldHVwUXVlcnk7XHJcblxyXG4gICAgZm9ya0pvaW4oam9pbnMpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3VsdHMgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0Tm9Sb3dzVGVtcGxhdGUoKTtcclxuICAgICAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KVxyXG4gICAgICAgICAgdGhpcy5sb2FkTWFueVRvTWFueUdyaWREYXRhKHJlc3VsdHNbMF0sIHJlc3VsdHNbMV0sIHRydWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMubG9hZEdyaWREYXRhKHJlc3VsdHNbMF0pO1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdyaWRUeXBlICE9PSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaClcclxuICAgICAgICAgIHRoaXMubG9hZGVkRW50aXRpZXMucHVzaCh0aGlzLmVudGl0eVt0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lICsgJ1JlZiddKTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgIGlmICh0aGlzLnJvd0RhdGEgPT09IG51bGwgfHwgIXRoaXMucm93RGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNob3dOb1Jvd3NPdmVybGF5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVW5hc3NvY2lhdGVkQ2hvaWNlQ2hhbmdlZCA9IChvcHRpb246IElUcnVUb29sYmFyRHJvcGRvd25PcHRpb24gfCBudWxsKSA9PiB7XHJcblxyXG4gIH1cclxuXHJcbiAgY2FuQWRkID0gKCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSlcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2UgIT09IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25BZGQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSlcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgaWYgKHNlbGVjdGVkUm93cy5sZW5ndGgpIHtcclxuICAgICAgbGV0IGVudGl0aWVzID0gc2VsZWN0ZWRSb3dzLm1hcChmdW5jdGlvbiAocm93OiBhbnkpIHsgcmV0dXJuIHJvdy4kZW50aXR5OyB9KTtcclxuICAgICAgbGV0IGNvbmZpcm1Nc2cgPSB0aGlzLmFwcEVudmlyb25tZW50LmZvcm1hdERlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UodGhpcy5jb25maWcudGFibGVOYW1lLCB0aGlzLmNvbmZpZy50YWJsZVBsdXJhbExhYmVsLCBzZWxlY3RlZFJvd3MubGVuZ3RoKTtcclxuICAgICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSkge1xyXG4gICAgICAgIGxldCBvblN1Y2Nlc3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKGVudGl0aWVzLCBjb25maXJtTXNnLCBvblN1Y2Nlc3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKGVudGl0aWVzLCBjb25maXJtTXNnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51aU5vdGlmaWNhdGlvbi53YXJuaW5nKHRoaXMuYXBwRW52aXJvbm1lbnQubXNnTm9SZWNvcmRzU2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25LZWVwID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgaWYgKHNlbGVjdGVkUm93cy5sZW5ndGgpXHJcbiAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gIH1cclxuXHJcbiAgb25SZW1vdmUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBsZXQgc2VsZWN0ZWRSb3dzID0gdGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiBzZWxlY3RlZFJvd3MgfSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydCA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuZXhwb3J0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvKCk7XHJcbiAgICB0aGlzLmNvbHVtbkRlZnMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY29sdW1uRGVmcztcclxuICAgIHRoaXMuZ3JpZFR5cGUgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZ3JpZFR5cGU7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWwgfHwgdGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KVxyXG4gICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvL3NldFRpbWVvdXQgdG8gcHJldmVudDogRVJST1IgRXJyb3I6IE5HMDEwMDogRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci4gXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5wYXJlbnRUb29sYmFyVGVtcGxhdGUgPSB0aGlzLnNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyLnNlYXJjaFZpZXdUb29sYmFyVGVtcGxhdGU7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbCB8fCB0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpIHtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtdG9vbGJhci1jb250YWluZXJcIj5cclxuICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgPHRydS10b29sYmFyLWRyb3Bkb3duIFtvcHRpb25zXT1cInVuYXNzb2NpYXRlZENob2ljZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZE9wdGlvbildPVwic2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblVuYXNzb2NpYXRlZENob2ljZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdyaWRUeXBlID09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueVwiPlxyXG4gICAgICA8L3RydS10b29sYmFyLWRyb3Bkb3duPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1hZGQtaWNvbidcIiBbdG9vbHRpcF09XCInQWRkIC0gW0N0cmwgKyBJXSdcIiBbZGlzYWJsZWRdPVwiIWNhbkFkZCgpXCIgKG9uQ2xpY2spPVwib25BZGQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1kZWxldGUtaWNvbidcIiBbdG9vbHRpcF09XCInRGVsZXRlIC0gW0N0cmwgKyBEXSdcIiAoY2xpY2spPVwib25EZWxldGUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1rZWVwLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0tlZXAgc2VsZWN0ZWQgcmVjb3JkcyAtIFtDdHJsICsgS10nXCIgKGNsaWNrKT1cIm9uS2VlcCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXJlbW92ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidSZW1vdmUgc2VsZWN0ZWQgcmVjb3JkcyAtIFtDdHJsICsgUl0nXCIgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPHRydS10b29sYmFyLXNlcGFyYXRvcj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhcmVudFRvb2xiYXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItc2VwYXJhdG9yICpuZ0lmPVwiZ3JpZFR5cGUgPT0gVHJ1RGF0YUdyaWRUeXBlcy5TZWFyY2hcIj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItZXhwb3J0LWljb24nXCIgW3Rvb2x0aXBdPVwiJ0V4cG9ydCdcIiAoY2xpY2spPVwib25FeHBvcnQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgPC90cnUtdG9vbGJhcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1jb250YWluZXJcIj5cclxuICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgW3Jvd0hlaWdodF09XCIyNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dCdWZmZXJdPVwiNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZW50ZXJOYXZpZ2F0ZXNWZXJ0aWNhbGx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZW50ZXJOYXZpZ2F0ZXNWZXJ0aWNhbGx5QWZ0ZXJFZGl0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNlbGxEb3VibGVDbGlja2VkKT1cIm9uQ2VsbERvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjZWxsS2V5RG93bik9XCJvbkNlbGxLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2VsbEZvY3VzZWQpPVwib25DZWxsRm9jdXNlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHJvd0RhdGFDaGFuZ2VkKT1cIm9uUm93RGF0YUNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtc3RhdHVzYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtc3RhdHVzYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1zdGF0dXNiYXItdmFsdWVzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1zdGF0dXNiYXItdmFsdWVzLXRleHRcIj57e2dldFJvd0NvdW50KCl9fTwvcD5cclxuICAgICAgICA8cCBjbGFzcz1cInRydS1kYXRhLWdyaWQtc3RhdHVzYmFyLXZhbHVlcy10ZXh0XCI+e3tnZXRTZWxlY3RlZFJvd0NvdW50KCl9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWdyaWQvdHJ1LWRhdGEtZ3JpZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUF3RCxNQUFNLGVBQWUsQ0FBQztBQU1sSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFJaEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBMEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxXQUFXO0lBb0RaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhERCxNQUFNLENBQXNCO0lBQzVCLE1BQU0sQ0FBTztJQUNiLElBQUksQ0FBTztJQUVwQixnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUVwQyxVQUFVLEdBQVEsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFDbEIsV0FBVyxHQUFlLEVBQUUsQ0FBQztJQUM3QixrQkFBa0IsQ0FBTTtJQUN4QixtQkFBbUIsR0FBZSxFQUFFLENBQUM7SUFDckMsMEJBQTBCLENBQU07SUFDaEMsUUFBUSxHQUFx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O2dCQUNwRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNqRTtRQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO3VHQXhaVSxXQUFXOzJGQUFYLFdBQVcsaU1DeEJ4Qiw0d0ZBNkNBOzsyRkRyQmEsV0FBVztrQkFQdkIsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBQyx1QkFBdUIsRUFBRSxNQUFNLEVBQUM7bVFBRzlCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBUcnVTZWFyY2hWaWV3RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXInO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVVaU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS11aS1ub3RpZmljYXRpb24nO1xyXG5pbXBvcnQgeyBJVHJ1RGF0YUdyaWRDb25maWcgfSBmcm9tICcuL2NsYXNzZXMvdHJ1LWRhdGEtZ3JpZC1jb25maWcnO1xyXG5pbXBvcnQgeyBUcnVEYXRhR3JpZFR5cGVzIH0gZnJvbSAnLi9lbnVtcy90cnUtZGF0YS1ncmlkLXR5cGVzJztcclxuaW1wb3J0IHsgSVRydVRvb2xiYXJEcm9wZG93bk9wdGlvbiB9IGZyb20gJy4uL3Rvb2xiYXIvY2xhc3Nlcy90cnUtdG9vbGJhci1kcm9wZG93bi1vcHRpb24nO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgc2tpcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IFRydVNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXNlYXJjaC1yZXN1bHQtdmlldy1tYW5hZ2VyJztcclxuaW1wb3J0IHsgVHJ1Q29ubmVjdGlvbkh1YiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1jb25uZWN0aW9uLWh1Yic7XHJcbmltcG9ydCB7IENvbERlZiwgQ29sdW1uLCBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IFRydURhdGFHcmlkTG9hZGluZ092ZXJsYXkgfSBmcm9tICcuL292ZXJsYXlzL3RydS1kYXRhLWdyaWQtbG9hZGluZy1vdmVybGF5L3RydS1kYXRhLWdyaWQtbG9hZGluZy1vdmVybGF5JztcclxuaW1wb3J0IHsgVHJ1RGF0YUdyaWROb1Jvd3NPdmVybGF5IH0gZnJvbSAnLi9vdmVybGF5cy90cnUtZGF0YS1ncmlkLW5vLXJvd3Mtb3ZlcmxheS90cnUtZGF0YS1ncmlkLW5vLXJvd3Mtb3ZlcmxheSc7XHJcbmltcG9ydCB7IEVudGl0eUFjdGlvbiwgRW50aXR5Q2hhbmdlZEV2ZW50QXJncyB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWRhdGEtZ3JpZC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cnUtZGF0YS1ncmlkLmNzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeydbY2xhc3MudHJ1LWRhdGEtZ3JpZF0nOiAndHJ1ZSd9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVEYXRhR3JpZCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBjb25maWchOiBJVHJ1RGF0YUdyaWRDb25maWc7XHJcbiAgQElucHV0KCkgZW50aXR5ITogYW55O1xyXG4gIEBJbnB1dCgpIG5hbWUhOiBhbnk7XHJcblxyXG4gIFRydURhdGFHcmlkVHlwZXMgPSBUcnVEYXRhR3JpZFR5cGVzO1xyXG5cclxuICBjb2x1bW5EZWZzOiBhbnkgPSBbXTtcclxuICByb3dEYXRhOiBhbnkgPSBbXTtcclxuICB2aWV3Q2hvaWNlczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHNlbGVjdGVkVmlld0Nob2ljZTogYW55O1xyXG4gIHVuYXNzb2NpYXRlZENob2ljZXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBzZWxlY3RlZFVuYXNzb2NpYXRlZENob2ljZTogYW55O1xyXG4gIGdyaWRUeXBlOiBUcnVEYXRhR3JpZFR5cGVzID0gVHJ1RGF0YUdyaWRUeXBlcy5TZWFyY2hcclxuICB1bnNhdmVkRW50aXRpZXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBsb2FkZWRFbnRpdGllczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGxhdGVzdFNldHVwUXVlcnk6IGFueTtcclxuICBmaXJzdFNlYXJjaFJhbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdyaWRPcHRpb25zOiBhbnkgPSB7XHJcbiAgICByb3dTZWxlY3Rpb246ICdtdWx0aXBsZScsXHJcbiAgICByb3dTdHlsZTogeyBiYWNrZ3JvdW5kOiAnd2hpdGUnIH0sXHJcbiAgICBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudDogVHJ1RGF0YUdyaWRMb2FkaW5nT3ZlcmxheSxcclxuICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50UGFyYW1zOiB7XHJcbiAgICAgIGxvYWRpbmdNZXNzYWdlOiAnU2VhcmNoaW5nIC0gT25lIG1vbWVudCBwbGVhc2UuLi4nLFxyXG4gICAgfSxcclxuICAgIG5vUm93c092ZXJsYXlDb21wb25lbnQ6IFRydURhdGFHcmlkTm9Sb3dzT3ZlcmxheSxcclxuICAgIG5vUm93c092ZXJsYXlDb21wb25lbnRQYXJhbXM6IHtcclxuICAgICAgbm9Sb3dzTWVzc2FnZUZ1bmM6ICgpID0+XHJcbiAgICAgIHtcclxuICAgICAgICBpZiAodGhpcy5maXJzdFNlYXJjaFJhbilcclxuICAgICAgICAgIHJldHVybiAnU29ycnkgLSBubyByb3dzIGZvdW5kISdcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICByZXR1cm4gJ0NsaWNrIHNlYXJjaCB0byBkaXNwbGF5IHJlc3VsdHMuJ1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlZDogKHBhcmFtczogYW55KSA9PiB7IH0sXHJcbiAgICBvbkNlbGxFZGl0aW5nU3RvcHBlZDogKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgIC8vdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVkcmF3Um93cyh7IHJvd05vZGVzOiBwYXJhbXMubm9kZSB9KTtcclxuICAgICAgcGFyYW1zLmFwaS5yZWZyZXNoQ2VsbHMoe1xyXG4gICAgICAgIGZvcmNlOiB0cnVlLFxyXG4gICAgICAgIHJvd05vZGVzOiBbcGFyYW1zLm5vZGVdXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIG9uQ2VsbFZhbHVlQ2hhbmdlZDogKHBhcmFtczogYW55KSA9PiB7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBwYXJlbnRUb29sYmFyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBwcml2YXRlIHNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyOiBUcnVTZWFyY2hSZXN1bHRWaWV3TWFuYWdlcixcclxuICAgIHByaXZhdGUgYXBwRW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hWaWV3RXZlbnRIYW5kbGVyOiBUcnVTZWFyY2hWaWV3RXZlbnRIYW5kbGVyLFxyXG4gICAgcHJpdmF0ZSB1aU5vdGlmaWNhdGlvbjogVHJ1VWlOb3RpZmljYXRpb24sXHJcbiAgICBwcml2YXRlIGNvbm5lY3Rpb25IdWI6IFRydUNvbm5lY3Rpb25IdWIpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHkgPSAoZW50aXR5OiBhbnkpID0+IHtcclxuICAgIGxldCByb3dEYXRhID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLnJvd0RhdGFFbmhhbmNlcihlbnRpdHkpO1xyXG4gICAgcm93RGF0YS4kZW50aXR5ID0gZW50aXR5O1xyXG4gICAgcmV0dXJuIHJvd0RhdGE7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzZXROb1Jvd3NUZW1wbGF0ZSA9ICgpID0+IHtcclxuICAgIC8vdGhpcy5ub1Jvd3NUZW1wbGF0ZSA9IGA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7XCI+Tm8gZGF0YSBmb3VuZC48L3NwYW4+YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG8gPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmFwcEVudmlyb25tZW50Lm9uU2F2ZUNvbXBsZXRlJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQ/LnN1Y2Nlc3NmdWwpXHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVkcmF3Um93cygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5hcHBFbnZpcm9ubWVudC5vblJldmVydENvbXBsZXRlJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQ/LnN1Y2Nlc3NmdWwpIHtcclxuICAgICAgICBsZXQgcm93c1RvUmVtb3ZlOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMucm93RGF0YS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMucm93RGF0YVtpXS4kZW50aXR5W3RoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLm5hbWUgKyAnUmVmJ10gPCAwKVxyXG4gICAgICAgICAgICByb3dzVG9SZW1vdmUucHVzaCh0aGlzLnJvd0RhdGFbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiByb3dzVG9SZW1vdmUgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkucmVkcmF3Um93cygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5hcHBFbnZpcm9ubWVudC5vbkRlbGV0ZUNvbXBsZXRlJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQ/LnN1Y2Nlc3NmdWwgJiYgZXZlbnQuZW50aXRpZXMgJiYgZXZlbnQuZW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgbGV0IHJvd3NUb1JlbW92ZTogQXJyYXk8YW55PiA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnJvd0RhdGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSBldmVudC5lbnRpdGllcy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yb3dEYXRhW2ldLiRlbnRpdHkgPT09IGV2ZW50LmVudGl0aWVzW2pdKVxyXG4gICAgICAgICAgICAgIHJvd3NUb1JlbW92ZS5wdXNoKHRoaXMucm93RGF0YVtpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyByZW1vdmU6IHJvd3NUb1JlbW92ZSB9KTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5yZWRyYXdSb3dzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuc2VhcmNoVmlld0V2ZW50SGFuZGxlci5vblNlYXJjaCgpLnBpcGUoc2tpcCgxKSkuc3Vic2NyaWJlKChzZXR1cFF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5vblNlYXJjaChzZXR1cFF1ZXJ5KTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuZGF0YUNvbnRleHQub25Qcm9wZXJ0eUNoYW5nZWQoKS5zdWJzY3JpYmUoKGNoYW5nZUFyZ3M6IEVudGl0eUNoYW5nZWRFdmVudEFyZ3MpID0+IHtcclxuICAgICAgaWYgKGNoYW5nZUFyZ3MuZW50aXR5QWN0aW9uID09PSBFbnRpdHlBY3Rpb24uQXR0YWNoICYmXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUubmFtZSA9PT0gY2hhbmdlQXJncy5lbnRpdHk/LmNvbnN0cnVjdG9yLm5hbWUpIHtcclxuICAgICAgICB0aGlzLmFkZEVudGl0eShjaGFuZ2VBcmdzLmVudGl0eSlcclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5jb25uZWN0aW9uSHViLnN1YnNjcmliZShcclxuICAgICAgdGhpcy5kYXRhQ29udGV4dCxcclxuICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsXHJcbiAgICAgIHRoaXMuY29uZmlnLnRhYmxlTmFtZSxcclxuICAgICAgKCkgPT4geyByZXR1cm4gdGhpcy5sb2FkZWRFbnRpdGllcyB9LFxyXG4gICAgICAoKSA9PiB7IHJldHVybiB0aGlzLmxhdGVzdFNldHVwUXVlcnkgfSxcclxuICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmV4cGFuZHMsXHJcbiAgICAgIFtdLFxyXG4gICAgICAoKSA9PiB7IHJldHVybiB0cnVlOyB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnJlZnJlc2hDZWxscyh7IGZvcmNlOiB0cnVlIH0pO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkR3JpZERhdGEgPSAoZW50aXRpZXM6IEFycmF5PGFueT4pID0+IHtcclxuICAgIHRoaXMucm93RGF0YSA9IGVudGl0aWVzLm1hcCh0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5LCBlbnRpdGllcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRNYW55VG9NYW55R3JpZERhdGEgPSAoYXNzb2NpYXRlZEVudGl0aWVzOiBBcnJheTxhbnk+LCBhc3NvY2lhdGFibGVFbnRpdGllczogQXJyYXk8YW55PiwgaW5pdGFsTG9hZDogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKGluaXRhbExvYWQpXHJcbiAgICAgIHRoaXMucm93RGF0YSA9IGFzc29jaWF0ZWRFbnRpdGllcy5tYXAodGhpcy5lbmhhbmNlUm93RGF0YUZvckVudGl0eSwgYXNzb2NpYXRlZEVudGl0aWVzKTtcclxuICAgIGVsc2VcclxuICAgICAgYXNzb2NpYXRlZEVudGl0aWVzID0gdGhpcy5yb3dEYXRhLm1hcCgoZTogYW55KSA9PiB7IHJldHVybiBlLiRlbnRpdHkgfSk7XHJcbiAgICBsZXQgYXNzb2NpYXRhYmxlVHlwZU5hbWUgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5TWFueVRvTWFueVR5cGUubmFtZVxyXG4gICAgbGV0IGFzc29jaWF0ZWRNYXBPZkFzc29jaWF0YWJsZSA9IF8ubWFwKGFzc29jaWF0ZWRFbnRpdGllcywgZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGVbJ28nICsgYXNzb2NpYXRhYmxlVHlwZU5hbWVdOyB9KTtcclxuICAgIHRoaXMudW5hc3NvY2lhdGVkQ2hvaWNlcyA9IGFzc29jaWF0YWJsZUVudGl0aWVzLmZpbHRlcihvYmplY3QxID0+IHtcclxuICAgICAgcmV0dXJuICFhc3NvY2lhdGVkTWFwT2ZBc3NvY2lhdGFibGUuc29tZShvYmplY3QyID0+IHsgcmV0dXJuIG9iamVjdDEudmFsdWUuJCA9PT0gb2JqZWN0Mlthc3NvY2lhdGFibGVUeXBlTmFtZSArICdSZWYnXTsgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwb3J0RGF0YSA9ICgpID0+IHtcclxuICAgIHRoaXMudWlOb3RpZmljYXRpb24uc2hvd0V4cG9ydERpYWxvZygpLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuO1xyXG4gICAgICBsZXQgZXhwb3J0R3JpZFNwZWM7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSlcclxuICAgICAgICBleHBvcnRHcmlkU3BlYyA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLm5hbWU7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBleHBvcnRHcmlkU3BlYyA9ICckY3VzdG9tPScgKyAxO1xyXG5cclxuICAgICAgbGV0IHJvd05vZGVzOiBhbnkgPSBbXTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUoKHJvd05vZGU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHJvd05vZGVzLnB1c2gocm93Tm9kZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgcmVmcyA9IF8ubWFwKHJvd05vZGVzLCAocm93Tm9kZSkgPT4geyByZXR1cm4gcm93Tm9kZS5kYXRhLiRlbnRpdHlbdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUubmFtZSArICdSZWYnXTsgfSk7XHJcbiAgICAgIHRoaXMuZGF0YUNvbnRleHRcclxuICAgICAgICAuZW50aXR5QWNjZXNzKClcclxuICAgICAgICAuZXhwb3J0KHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLCBleHBvcnRHcmlkU3BlYywgdGhpcy5sYXRlc3RTZXR1cFF1ZXJ5LCByZWZzLmpvaW4oJywnKSwgcmVzdWx0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblN1cHByZXNzS2V5Ym9hcmRFdmVudCA9IChwYXJhbXM6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyk6IGJvb2xlYW4gPT4ge1xyXG4gICAgbGV0IGlzVGFiS2V5ID0gcGFyYW1zLmV2ZW50LmtleSA9PT0gJ1RhYic7XHJcbiAgICBsZXQgaXNBcnJvd0Rvd24gPSBwYXJhbXMuZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJztcclxuICAgIGxldCBpc0Fycm93VXAgPSBwYXJhbXMuZXZlbnQua2V5ID09PSAnQXJyb3dVcCc7XHJcbiAgICBsZXQgaXNBcnJvd0xlZnQgPSBwYXJhbXMuZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JztcclxuICAgIGxldCBpc0Fycm93UmlnaHQgPSBwYXJhbXMuZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCc7XHJcbiAgICBsZXQgaXNTaGlmdEtleSA9IHBhcmFtcy5ldmVudC5zaGlmdEtleTtcclxuICAgIGxldCBpc0FsdEtleSA9IHBhcmFtcy5ldmVudC5hbHRLZXk7XHJcblxyXG4gICAgbGV0IGZvY3VzZWRDZWxsID0gcGFyYW1zLmFwaS5nZXRGb2N1c2VkQ2VsbCgpO1xyXG4gICAgbGV0IGhhc0Nob2ljZXMgPSBwYXJhbXMuZGF0YVtwYXJhbXMuY29sdW1uLmdldENvbElkKCldICYmIHBhcmFtcy5kYXRhW3BhcmFtcy5jb2x1bW4uZ2V0Q29sSWQoKV0uY2hvaWNlcyA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICBpZiAocGFyYW1zLmNvbHVtbi5pc1Bpbm5lZCgpKSB7XHJcbiAgICAgIGlmIChpc1RhYktleSAmJiAhaXNTaGlmdEtleSlcclxuICAgICAgICBwYXJhbXMuYXBpLnRhYlRvTmV4dENlbGwoKTtcclxuICAgICAgZWxzZSBpZiAoaXNUYWJLZXkgJiYgaXNTaGlmdEtleSlcclxuICAgICAgICBwYXJhbXMuYXBpLnRhYlRvUHJldmlvdXNDZWxsKCk7XHJcbiAgICAgIGVsc2UgaWYgKGlzQXJyb3dMZWZ0KVxyXG4gICAgICAgIHBhcmFtcy5hcGkudGFiVG9QcmV2aW91c0NlbGwoKTtcclxuICAgICAgZWxzZSBpZiAoaXNBcnJvd1JpZ2h0KVxyXG4gICAgICAgIHBhcmFtcy5hcGkudGFiVG9OZXh0Q2VsbCgpO1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5zdG9wRWRpdGluZygpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGhhc0Nob2ljZXMgJiYgaXNBbHRLZXkgJiYgKGlzQXJyb3dEb3duIHx8IGlzQXJyb3dVcCkpIHtcclxuICAgICAgcGFyYW1zLmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBwYXJhbXMuYXBpLnN0YXJ0RWRpdGluZ0NlbGwoe1xyXG4gICAgICAgIHJvd0luZGV4OiBmb2N1c2VkQ2VsbD8ucm93SW5kZXggYXMgbnVtYmVyLFxyXG4gICAgICAgIGNvbEtleTogZm9jdXNlZENlbGw/LmNvbHVtbiBhcyBDb2x1bW4sXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGFkZEVudGl0eSA9IChuZXdFbnRpdHk6IGFueSkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSkge1xyXG4gICAgICBsZXQgcGFyZW50TmFtZSA9IHRoaXMuZW50aXR5LmNvbnN0cnVjdG9yLm5hbWU7XHJcbiAgICAgIGxldCB1bmFzc29jaWF0ZWRUeXBlID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eU1hbnlUb01hbnlUeXBlO1xyXG4gICAgICBsZXQgcmVmID0gdGhpcy5zZWxlY3RlZFVuYXNzb2NpYXRlZENob2ljZS52YWx1ZS4kO1xyXG4gICAgICBsZXQgY2hpbGRUb0Fzc29jaWF0ZSA9IHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoQnlSZWZDYWNoZU9ubHkodW5hc3NvY2lhdGVkVHlwZSwgcmVmLCB0cnVlKVxyXG4gICAgICBpZiAoY2hpbGRUb0Fzc29jaWF0ZSkge1xyXG4gICAgICAgIGxldCBlbmhhbmNlZEVudGl0eSA9IHRoaXMuZW5oYW5jZVJvd0RhdGFGb3JFbnRpdHkobmV3RW50aXR5KTtcclxuICAgICAgICBlbmhhbmNlZEVudGl0eS4kZW50aXR5W3VuYXNzb2NpYXRlZFR5cGUubmFtZSArICdSZWYnXSA9IGNoaWxkVG9Bc3NvY2lhdGVbdW5hc3NvY2lhdGVkVHlwZS5uYW1lICsgJ1JlZiddO1xyXG4gICAgICAgIGVuaGFuY2VkRW50aXR5LiRlbnRpdHlbcGFyZW50TmFtZSArICdSZWYnXSA9IHRoaXMuZW50aXR5W3BhcmVudE5hbWUgKyAnUmVmJ107XHJcbiAgICAgICAgLy8gcmVtb3ZlIGl0ZW0gZnJvbSB0aGUgYWRkIGRyb3Bkb3duIGNvbnRyb2xcclxuICAgICAgICBsZXQgaXRlbUluZGV4ID0gdGhpcy51bmFzc29jaWF0ZWRDaG9pY2VzLmZpbmRJbmRleCgoY2hvaWNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY2hvaWNlW3VuYXNzb2NpYXRlZFR5cGUubmFtZSArICdSZWYnXSA9PT0gY2hpbGRUb0Fzc29jaWF0ZVt1bmFzc29jaWF0ZWRUeXBlLm5hbWUgKyAnUmVmJ107XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy51bmFzc29jaWF0ZWRDaG9pY2VzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIC8vIGNsZWFyIGFkZCBzZWxlY3Rpb25cclxuICAgICAgICB0aGlzLnNlbGVjdGVkVW5hc3NvY2lhdGVkQ2hvaWNlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIC8vIGFkZCByb3cgdG8gZ3JpZFxyXG4gICAgICAgIHRoaXMudW5zYXZlZEVudGl0aWVzLnB1c2goZW5oYW5jZWRFbnRpdHkpO1xyXG4gICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyBhZGQ6IFtlbmhhbmNlZEVudGl0eV0sIGFkZEluZGV4OiAwIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZW5oYW5jZWRFbnRpdHkgPSB0aGlzLmVuaGFuY2VSb3dEYXRhRm9yRW50aXR5KG5ld0VudGl0eSk7XHJcbiAgICAgIHRoaXMucm93RGF0YS51bnNoaWZ0KGVuaGFuY2VkRW50aXR5KTtcclxuICAgICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuYXBwbHlUcmFuc2FjdGlvbih7IGFkZDogW2VuaGFuY2VkRW50aXR5XSwgYWRkSW5kZXg6IDAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IHRoaXMub25TdXBwcmVzc0tleWJvYXJkRXZlbnRcclxuICB9O1xyXG5cclxuICBnZXRSb3dDb3VudCA9ICgpID0+IHtcclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaT8uZm9yRWFjaE5vZGVBZnRlckZpbHRlcigoKSA9PiBjb3VudCsrKTtcclxuICAgIHJldHVybiAnUm93czogJyArIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRSb3dDb3VudCA9ICgpID0+IHtcclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICBjb3VudCA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpPy5nZXRTZWxlY3RlZFJvd3MoKS5sZW5ndGg7XHJcbiAgICByZXR1cm4gJ1NlbGVjdGVkOiAnICsgY291bnQ7XHJcbiAgfVxyXG5cclxuICBvblJvd0RhdGFDaGFuZ2VkID0gKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgaWYgKHRoaXMucm93RGF0YSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNldE5vUm93c1RlbXBsYXRlKCk7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuc2hvd05vUm93c092ZXJsYXkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DZWxsRG91YmxlQ2xpY2tlZCA9IChncmlkQ29uZmlnOiBhbnkpID0+IHtcclxuICAgIGlmIChncmlkQ29uZmlnLmNvbERlZi5jZWxsQ2xhc3MgPT09ICdhZy1way1hbGlnbmVkLWNlbGwnKVxyXG4gICAgICB0aGlzLmNvbmZpZy5yb3dIZWFkZXJEb3VibGVDbGlja2VkKGdyaWRDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgb25DZWxsS2V5RG93biA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICBpZiAoIWV2ZW50LmV2ZW50KSByZXR1cm47XHJcbiAgICBjb25zdCBrZXkgPSAoZXZlbnQuZXZlbnQgYXMgdW5rbm93bikgYXMgS2V5Ym9hcmRFdmVudDtcclxuICAgIGlmIChrZXkuY29kZSA9PT0gJ1NwYWNlJykge1xyXG4gICAgICBrZXkucHJldmVudERlZmF1bHQoKTtcclxuICAgICAga2V5LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaT8uc3RhcnRFZGl0aW5nQ2VsbCh7XHJcbiAgICAgICAgcm93SW5kZXg6IGV2ZW50LnJvd0luZGV4LFxyXG4gICAgICAgIGNvbEtleTogZXZlbnQuY29sdW1uLmdldENvbElkKCksXHJcbiAgICAgICAga2V5OiBrZXkuY29kZVxyXG4gICAgICB9KTtcclxuICAgIH0gXHJcbiAgfVxyXG5cclxuICBvbkNlbGxGb2N1c2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC5jb2x1bW4uY29sRGVmLnBpbm5lZCkge1xyXG4gICAgICB0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmRlc2VsZWN0QWxsKCk7XHJcbiAgICB9XHJcbiAgICAvL2xldCBjb2x1bW5EZWZzID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmNvbHVtbkRlZnM7XHJcbiAgICAvL2lmIChldmVudC5jb2x1bW4uY29sRGVmLnBpbm5lZCkge1xyXG4gICAgLy8gIGNvbHVtbkRlZnMuZm9yRWFjaCgoY29sdW1uRGVmOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIC8vICAgIGlmIChpbmRleCAhPT0gMClcclxuICAgIC8vICAgICAgY29sdW1uRGVmLmhlYWRlckNsYXNzID0gJ2FnLWNvbHVtbi1mb2N1cyc7XHJcbiAgICAvLyAgfSk7XHJcbiAgICAvL30gZWxzZSB7XHJcbiAgICAvLyAgY29sdW1uRGVmcy5mb3JFYWNoKChjb2x1bW5EZWY6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gICAgaWYgKGluZGV4ICE9PSAwICYmIGV2ZW50LmNvbHVtbi5jb2xJZCA9PT0gY29sdW1uRGVmLmZpZWxkKVxyXG4gICAgLy8gICAgICBjb2x1bW5EZWYuaGVhZGVyQ2xhc3MgPSAnYWctY29sdW1uLWZvY3VzJztcclxuICAgIC8vICAgIGVsc2VcclxuICAgIC8vICAgICAgY29sdW1uRGVmLmhlYWRlckNsYXNzID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gIH0pO1xyXG4gICAgLy99XHJcbiAgICAvL3RoaXMuZ3JpZE9wdGlvbnMuYXBpLnNldENvbHVtbkRlZnMoY29sdW1uRGVmcyk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCA9IChzZXR1cFF1ZXJ5OiBhbnkpID0+IHtcclxuICAgIHRoaXMuZmlyc3RTZWFyY2hSYW4gPSB0cnVlO1xyXG4gICAgdGhpcy5ncmlkT3B0aW9ucy5hcGkuaGlkZU92ZXJsYXkoKTtcclxuICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNob3dMb2FkaW5nT3ZlcmxheSgpO1xyXG5cclxuICAgIGxldCBlbnRpdHlMb2FkZWQgPSB0aGlzLmxvYWRlZEVudGl0aWVzLnNvbWUoKHJlZikgPT4geyByZXR1cm4gcmVmID09PSB0aGlzLmVudGl0eVt0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lICsgJ1JlZiddOyB9KTtcclxuICAgIGxldCBqb2lucyA9IFtdO1xyXG4gICAgaWYgKGVudGl0eUxvYWRlZCkge1xyXG4gICAgICBqb2lucy5wdXNoKHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoQ2FjaGVPbmx5KFxyXG4gICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlUeXBlLFxyXG4gICAgICAgIHNldHVwUXVlcnksXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmV4cGFuZHMpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaFF1ZXJ5Q2hvaWNlcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZSxcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5tYW55VG9NYW55U2V0dXBRdWVyeSh0aGlzLmVudGl0eSksIG51bGwsIGZhbHNlKSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGpvaW5zLnB1c2godGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2goXHJcbiAgICAgICAgdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmVudGl0eVR5cGUsXHJcbiAgICAgICAgc2V0dXBRdWVyeSxcclxuICAgICAgICB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZXhwYW5kcywgZmFsc2UpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpXHJcbiAgICAgICAgam9pbnMucHVzaCh0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLnNlYXJjaFF1ZXJ5Q2hvaWNlcyhcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5lbnRpdHlNYW55VG9NYW55VHlwZSxcclxuICAgICAgICAgIHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5tYW55VG9NYW55U2V0dXBRdWVyeSh0aGlzLmVudGl0eSksIG51bGwsIHRydWUpKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGF0ZXN0U2V0dXBRdWVyeSA9IHNldHVwUXVlcnk7XHJcblxyXG4gICAgZm9ya0pvaW4oam9pbnMpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3VsdHMgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0Tm9Sb3dzVGVtcGxhdGUoKTtcclxuICAgICAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KVxyXG4gICAgICAgICAgdGhpcy5sb2FkTWFueVRvTWFueUdyaWREYXRhKHJlc3VsdHNbMF0sIHJlc3VsdHNbMV0sIHRydWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMubG9hZEdyaWREYXRhKHJlc3VsdHNbMF0pO1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdyaWRUeXBlICE9PSBUcnVEYXRhR3JpZFR5cGVzLlNlYXJjaClcclxuICAgICAgICAgIHRoaXMubG9hZGVkRW50aXRpZXMucHVzaCh0aGlzLmVudGl0eVt0aGlzLmVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lICsgJ1JlZiddKTtcclxuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgIGlmICh0aGlzLnJvd0RhdGEgPT09IG51bGwgfHwgIXRoaXMucm93RGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNob3dOb1Jvd3NPdmVybGF5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVW5hc3NvY2lhdGVkQ2hvaWNlQ2hhbmdlZCA9IChvcHRpb246IElUcnVUb29sYmFyRHJvcGRvd25PcHRpb24gfCBudWxsKSA9PiB7XHJcblxyXG4gIH1cclxuXHJcbiAgY2FuQWRkID0gKCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSlcclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2UgIT09IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25BZGQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLmRhdGFDb250ZXh0LmVudGl0eUFjY2VzcygpLmFkZCh0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZW50aXR5VHlwZSlcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgaWYgKHNlbGVjdGVkUm93cy5sZW5ndGgpIHtcclxuICAgICAgbGV0IGVudGl0aWVzID0gc2VsZWN0ZWRSb3dzLm1hcChmdW5jdGlvbiAocm93OiBhbnkpIHsgcmV0dXJuIHJvdy4kZW50aXR5OyB9KTtcclxuICAgICAgbGV0IGNvbmZpcm1Nc2cgPSB0aGlzLmFwcEVudmlyb25tZW50LmZvcm1hdERlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UodGhpcy5jb25maWcudGFibGVOYW1lLCB0aGlzLmNvbmZpZy50YWJsZVBsdXJhbExhYmVsLCBzZWxlY3RlZFJvd3MubGVuZ3RoKTtcclxuICAgICAgaWYgKHRoaXMuZ3JpZFR5cGUgPT09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueSkge1xyXG4gICAgICAgIGxldCBvblN1Y2Nlc3MgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKGVudGl0aWVzLCBjb25maXJtTXNnLCBvblN1Y2Nlc3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZGVsZXRlKGVudGl0aWVzLCBjb25maXJtTXNnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51aU5vdGlmaWNhdGlvbi53YXJuaW5nKHRoaXMuYXBwRW52aXJvbm1lbnQubXNnTm9SZWNvcmRzU2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25LZWVwID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgbGV0IHNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgaWYgKHNlbGVjdGVkUm93cy5sZW5ndGgpXHJcbiAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpLmdldFNlbGVjdGVkUm93cygpO1xyXG4gIH1cclxuXHJcbiAgb25SZW1vdmUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBsZXQgc2VsZWN0ZWRSb3dzID0gdGhpcy5ncmlkT3B0aW9ucy5hcGkuZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiBzZWxlY3RlZFJvd3MgfSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydCA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuZXhwb3J0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvKCk7XHJcbiAgICB0aGlzLmNvbHVtbkRlZnMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY29sdW1uRGVmcztcclxuICAgIHRoaXMuZ3JpZFR5cGUgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuZ3JpZFR5cGU7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWwgfHwgdGhpcy5ncmlkVHlwZSA9PT0gVHJ1RGF0YUdyaWRUeXBlcy5EZXRhaWxNYW55VG9NYW55KVxyXG4gICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvL3NldFRpbWVvdXQgdG8gcHJldmVudDogRVJST1IgRXJyb3I6IE5HMDEwMDogRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci4gXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5wYXJlbnRUb29sYmFyVGVtcGxhdGUgPSB0aGlzLnNlYXJjaFJlc3VsdFZpZXdNYW5hZ2VyLnNlYXJjaFZpZXdUb29sYmFyVGVtcGxhdGU7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbCB8fCB0aGlzLmdyaWRUeXBlID09PSBUcnVEYXRhR3JpZFR5cGVzLkRldGFpbE1hbnlUb01hbnkpIHtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoKHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5zZXR1cFF1ZXJ5KHRoaXMuZW50aXR5KSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtdG9vbGJhci1jb250YWluZXJcIj5cclxuICAgIDx0cnUtdG9vbGJhcj5cclxuICAgICAgPHRydS10b29sYmFyLWRyb3Bkb3duIFtvcHRpb25zXT1cInVuYXNzb2NpYXRlZENob2ljZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZE9wdGlvbildPVwic2VsZWN0ZWRVbmFzc29jaWF0ZWRDaG9pY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblVuYXNzb2NpYXRlZENob2ljZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdyaWRUeXBlID09IFRydURhdGFHcmlkVHlwZXMuRGV0YWlsTWFueVRvTWFueVwiPlxyXG4gICAgICA8L3RydS10b29sYmFyLWRyb3Bkb3duPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1hZGQtaWNvbidcIiBbdG9vbHRpcF09XCInQWRkIC0gW0N0cmwgKyBJXSdcIiBbZGlzYWJsZWRdPVwiIWNhbkFkZCgpXCIgKG9uQ2xpY2spPVwib25BZGQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1kZWxldGUtaWNvbidcIiBbdG9vbHRpcF09XCInRGVsZXRlIC0gW0N0cmwgKyBEXSdcIiAoY2xpY2spPVwib25EZWxldGUoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItYnV0dG9uIFtpY29uXT1cIid0cnUtdG9vbGJhci1rZWVwLWljb24nXCIgW3Rvb2x0aXBdPVwiJ0tlZXAgc2VsZWN0ZWQgcmVjb3JkcyAtIFtDdHJsICsgS10nXCIgKGNsaWNrKT1cIm9uS2VlcCgpXCI+PC90cnUtdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDx0cnUtdG9vbGJhci1idXR0b24gW2ljb25dPVwiJ3RydS10b29sYmFyLXJlbW92ZS1pY29uJ1wiIFt0b29sdGlwXT1cIidSZW1vdmUgc2VsZWN0ZWQgcmVjb3JkcyAtIFtDdHJsICsgUl0nXCIgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIj48L3RydS10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPHRydS10b29sYmFyLXNlcGFyYXRvcj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhcmVudFRvb2xiYXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8dHJ1LXRvb2xiYXItc2VwYXJhdG9yICpuZ0lmPVwiZ3JpZFR5cGUgPT0gVHJ1RGF0YUdyaWRUeXBlcy5TZWFyY2hcIj48L3RydS10b29sYmFyLXNlcGFyYXRvcj5cclxuICAgICAgPHRydS10b29sYmFyLWJ1dHRvbiBbaWNvbl09XCIndHJ1LXRvb2xiYXItZXhwb3J0LWljb24nXCIgW3Rvb2x0aXBdPVwiJ0V4cG9ydCdcIiAoY2xpY2spPVwib25FeHBvcnQoKVwiPjwvdHJ1LXRvb2xiYXItYnV0dG9uPlxyXG4gICAgPC90cnUtdG9vbGJhcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1jb250YWluZXJcIj5cclxuICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgW3Jvd0hlaWdodF09XCIyNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtyb3dCdWZmZXJdPVwiNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZW50ZXJOYXZpZ2F0ZXNWZXJ0aWNhbGx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZW50ZXJOYXZpZ2F0ZXNWZXJ0aWNhbGx5QWZ0ZXJFZGl0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNlbGxEb3VibGVDbGlja2VkKT1cIm9uQ2VsbERvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjZWxsS2V5RG93bik9XCJvbkNlbGxLZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2VsbEZvY3VzZWQpPVwib25DZWxsRm9jdXNlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHJvd0RhdGFDaGFuZ2VkKT1cIm9uUm93RGF0YUNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtc3RhdHVzYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRydS1kYXRhLWdyaWQtc3RhdHVzYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1zdGF0dXNiYXItdmFsdWVzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidHJ1LWRhdGEtZ3JpZC1zdGF0dXNiYXItdmFsdWVzLXRleHRcIj57e2dldFJvd0NvdW50KCl9fTwvcD5cclxuICAgICAgICA8cCBjbGFzcz1cInRydS1kYXRhLWdyaWQtc3RhdHVzYmFyLXZhbHVlcy10ZXh0XCI+e3tnZXRTZWxlY3RlZFJvd0NvdW50KCl9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -93,18 +93,13 @@ export class TruBreezeGridValidator {
|
|
|
93
93
|
};
|
|
94
94
|
ngOnInit() { }
|
|
95
95
|
ngAfterViewInit() {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}));
|
|
101
|
-
this.entity.entityAspect.validateEntity();
|
|
102
|
-
});
|
|
96
|
+
this.subs.push(this.dataContext.validationChangeDetection.subscribe(entities => {
|
|
97
|
+
this.valErrsChanged(entities);
|
|
98
|
+
}));
|
|
99
|
+
this.entity.entityAspect.validateEntity();
|
|
103
100
|
}
|
|
104
101
|
ngOnChanges(changes) {
|
|
105
|
-
|
|
106
|
-
this.entity.entityAspect.validateEntity();
|
|
107
|
-
});
|
|
102
|
+
this.entity.entityAspect.validateEntity();
|
|
108
103
|
}
|
|
109
104
|
ngOnDestroy() {
|
|
110
105
|
this.subs.forEach(s => s.unsubscribe());
|
|
@@ -125,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
125
120
|
}], gridApi: [{
|
|
126
121
|
type: Input
|
|
127
122
|
}] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWJyZWV6ZS1ncmlkLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvZGlyZWN0aXZlcy9icmVlemUtZ3JpZC12YWxpZGF0b3IvdHJ1LWJyZWV6ZS1ncmlkLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLFNBQVMsRUFBYyxLQUFLLEVBQXNELE1BQU0sZUFBZSxDQUFDO0FBVXpKLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDOzs7QUFNMUgsTUFBTSxPQUFPLHNCQUFzQjtJQU12QjtJQUNBO0lBQ0E7SUFDQTtJQVJ1QixNQUFNLENBQWlCO0lBQy9DLE1BQU0sQ0FBaUU7SUFDdkUsT0FBTyxDQUF1QjtJQUV2QyxZQUNVLEVBQWMsRUFDZCxXQUEyQixFQUMzQixnQkFBa0MsRUFDbEMsd0JBQWtEO1FBSGxELE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQzVELENBQUM7SUFFRCxXQUFXLEdBQVEsRUFBRSxDQUFDO0lBQ3RCLFNBQVMsQ0FBTTtJQUVQLFNBQVMsR0FBNkIsSUFBSSxDQUFDO0lBQzNDLElBQUksR0FBd0IsRUFBRSxDQUFDO0lBQy9CLGFBQWEsR0FBaUQsSUFBSSxDQUFBO0lBRWxFLFlBQVksR0FBRyxHQUFnQyxFQUFFO1FBQ3ZELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENB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QUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM3RSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7dUdBL0hVLHNCQUFzQjsyRkFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3JDO2tMQUVrQyxNQUFNO3NCQUF0QyxLQUFLO3VCQUFDLHdCQUF3QjtnQkFDdEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHcmlkQXBpIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdicmVlemUtY2xpZW50JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZvckVhY2ggfSBmcm9tICd1bmRlcnNjb3JlJztcclxuaW1wb3J0IHsgVHJ1RWRpdENvbnRyb2xDb25maWdCYXNlIH0gZnJvbSAnLi4vLi4vYmFzZS1jbGFzc2VzL3RydS1lZGl0LWNvbnRyb2wtY29uZmlnLWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVFbnRpdHlCYXNlIH0gZnJvbSAnLi4vLi4vYmFzZS1jbGFzc2VzL3RydS1lbnRpdHktYmFzZSc7XHJcbmltcG9ydCB7IFRydUxpc3RDb250cm9sQ29uZmlnQmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtbGlzdC1jb250cm9sLWNvbmZpZy1iYXNlJztcclxuaW1wb3J0IHsgVHJ1TWVyZ2VEYXRhIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90cnUtbWVyZ2UtZGF0YSc7XHJcbmltcG9ydCB7IFRydU1lcmdlRGF0YVNldCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdHJ1LW1lcmdlLWRhdGEtc2V0JztcclxuaW1wb3J0IHsgVHJ1R3JpZFZhbGlkYXRpb25EaWFsb2cgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dyaWQtdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LWdyaWQtdmFsaWRhdGlvbi1kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcnVHcmlkVmFsaWRhdGlvbkRpYWxvZ0NvbmZpZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ3JpZC12YWxpZGF0aW9uLWRpYWxvZy90cnUtZ3JpZC12YWxpZGF0aW9uLWRpYWxvZy1jb25maWcnO1xyXG5pbXBvcnQgeyBUcnVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS1kYXRhLWNvbnRleHQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdHJ1QnJlZXplR3JpZFZhbGlkYXRvcl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVCcmVlemVHcmlkVmFsaWRhdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgndHJ1QnJlZXplR3JpZFZhbGlkYXRvcicpIGVudGl0eSE6IFRydUVudGl0eUJhc2U7XHJcbiAgQElucHV0KCkgY29uZmlnITogVHJ1RWRpdENvbnRyb2xDb25maWdCYXNlPGFueT4gfCBUcnVMaXN0Q29udHJvbENvbmZpZ0Jhc2U8YW55PjtcclxuICBASW5wdXQoKSBncmlkQXBpITogR3JpZEFwaSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgfVxyXG5cclxuICBjb25maWdNb2RlbDogYW55ID0ge307XHJcbiAgbWVyZ2VEYXRhOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgZGlhbG9nUmVmOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgc3ViczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xyXG4gIHByaXZhdGUgY3VycmVudERpYWxvZzogQ29tcG9uZW50UmVmPFRydUdyaWRWYWxpZGF0aW9uRGlhbG9nPiB8IG51bGwgPSBudWxsXHJcblxyXG4gIHByaXZhdGUgZ2V0TWVyZ2VEYXRhID0gKCk6IFRydU1lcmdlRGF0YVNldCB8IHVuZGVmaW5lZCA9PiB7XHJcbiAgICBpZiAodGhpcy5jb25maWcucHJvcGVydHlQYXRoPy5pbmNsdWRlcygnLycpKSB7XHJcbiAgICAgIGxldCBwcm9wZXJ0eU5hbWVQYXJ0cyA9IHRoaXMuY29uZmlnLnByb3BlcnR5UGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICBwcm9wZXJ0eU5hbWVQYXJ0cy5wb3AoKTtcclxuICAgICAgbGV0IHRhcmdldFByb3BlcnR5OiBhbnk7XHJcbiAgICAgIHByb3BlcnR5TmFtZVBhcnRzLmZvckVhY2goKG5hbWUpID0+IHtcclxuICAgICAgICBpZiAoIXRhcmdldFByb3BlcnR5KSB7XHJcbiAgICAgICAgICBsZXQgdGFyZ2V0UHJvcGVydHlOYW1lID0gJ28nICsgbmFtZSBhcyBrZXlvZiB0eXBlb2YgdGhpcy5lbnRpdHk7XHJcbiAgICAgICAgICB0YXJnZXRQcm9wZXJ0eSA9IHRoaXMuZW50aXR5W3RhcmdldFByb3BlcnR5TmFtZV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCB0YXJnZXRQcm9wZXJ0eU5hbWUgPSAnbycgKyBuYW1lIGFzIGtleW9mIHR5cGVvZiB0aGlzLmVudGl0eTtcclxuICAgICAgICAgIHRhcmdldFByb3BlcnR5ID0gdGFyZ2V0UHJvcGVydHlbdGFyZ2V0UHJvcGVydHlOYW1lXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGFyZ2V0UHJvcGVydHkgJiYgdGFyZ2V0UHJvcGVydHkuTWVyZ2VfRGF0YSkge1xyXG4gICAgICAgIHJldHVybiB0YXJnZXRQcm9wZXJ0eS5NZXJnZV9EYXRhX1NldDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Lk1lcmdlX0RhdGFfU2V0Py5nZXQodGhpcy5jb25maWcucHJvcGVydHlOYW1lIGFzIHN0cmluZykgPyB0aGlzLmVudGl0eS5NZXJnZV9EYXRhX1NldCA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VFcnJvck1lc3NhZ2VzID0gKHZhbGlkYXRpb25FcnJvcnM6IEFycmF5PFZhbGlkYXRpb25FcnJvcj4pOiBzdHJpbmcgPT4ge1xyXG4gICAgbGV0IGVycm9yTXNnOiBzdHJpbmcgPSAnJztcclxuICAgIHZhbGlkYXRpb25FcnJvcnMuZm9yRWFjaCgoZXJyb3IpID0+IHtcclxuICAgICAgZXJyb3JNc2cgKz0gZXJyb3IuZXJyb3JNZXNzYWdlICsgJzsgJztcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGVycm9yTXNnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRWYWxpZGF0aW9uRGlhbG9nID0gKGNvbmZpZzogVHJ1R3JpZFZhbGlkYXRpb25EaWFsb2dDb25maWcpID0+IHtcclxuICAgIGxldCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoVHJ1R3JpZFZhbGlkYXRpb25EaWFsb2cpO1xyXG4gICAgbGV0IGNvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8VHJ1R3JpZFZhbGlkYXRpb25EaWFsb2c+KGNvbXBvbmVudEZhY3RvcnksIDAsIHRoaXMudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvcik7XHJcbiAgICBjb21wb25lbnQuaW5zdGFuY2UuY29uZmlnID0gY29uZmlnO1xyXG4gICAgdGhpcy5jdXJyZW50RGlhbG9nID0gY29tcG9uZW50O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZVZhbGlkYXRpb25EaWFsb2cgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50RGlhbG9nKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudERpYWxvZy5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudERpYWxvZyA9IG51bGw7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaSEucmVmcmVzaENlbGxzKHsgZm9yY2U6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxFcnJzQ2hhbmdlZCA9ICh2YWxpZGF0aW9uT2JqZWN0OiBhbnkpID0+IHtcclxuICAgIGxldCB2YWxpZGF0aW9uT2JqZWN0RW50aXR5ID0gdmFsaWRhdGlvbk9iamVjdC5lbnRpdHlcclxuICAgIGxldCB2YWxpZGF0aW9uVGFibGVOYW1lID0gdmFsaWRhdGlvbk9iamVjdEVudGl0eS5jb25zdHJ1Y3Rvci5uYW1lO1xyXG5cclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIHRoaXMuZW50aXR5O1xyXG4gICAgY29uc3QgZW50aXR5UGtleU5hbWUgPSB2YWxpZGF0aW9uVGFibGVOYW1lICsgJ1JlZicgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG5cclxuICAgIHR5cGUgVmFsaWRhdGlvbk9iamVjdEVudGl0eU9iamVjdEtleSA9IGtleW9mIHR5cGVvZiB2YWxpZGF0aW9uT2JqZWN0RW50aXR5O1xyXG4gICAgY29uc3QgdmFsaWRhdGlvbk9iamVjdEVudGl0eXBrZXlOYW1lID0gdmFsaWRhdGlvblRhYmxlTmFtZSArICdSZWYnIGFzIFZhbGlkYXRpb25PYmplY3RFbnRpdHlPYmplY3RLZXk7XHJcblxyXG4gICAgbGV0IGFkZGVkUHJvcGVydHlWYWxkYXRpb25zID0gdmFsaWRhdGlvbk9iamVjdC5hZGRlZC5maWx0ZXIoKHY6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gdi5wcm9wZXJ0eU5hbWUgPT09IHRoaXMuY29uZmlnLnByb3BlcnR5TmFtZVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IHJlbW92ZWRQcm9wZXJ0eVZhbGRhdGlvbnMgPSB2YWxpZGF0aW9uT2JqZWN0LnJlbW92ZWQuZmlsdGVyKCh2OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHYucHJvcGVydHlOYW1lID09PSB0aGlzLmNvbmZpZy5wcm9wZXJ0eU5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWVyZ2VEYXRhID0gdGhpcy5nZXRNZXJnZURhdGEoKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnLnJvb3RUYWJsZSA9PT0gdmFsaWRhdGlvblRhYmxlTmFtZSAmJlxyXG4gICAgICB0aGlzLmVudGl0eVtlbnRpdHlQa2V5TmFtZV0gPT09IHZhbGlkYXRpb25PYmplY3RFbnRpdHlbdmFsaWRhdGlvbk9iamVjdEVudGl0eXBrZXlOYW1lXSAmJlxyXG4gICAgICAoYWRkZWRQcm9wZXJ0eVZhbGRhdGlvbnMubGVuZ3RoIHx8IHRoaXMubWVyZ2VEYXRhKSkge1xyXG4gICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25EaWFsb2coKTtcclxuICAgICAgdGhpcy5hZGRWYWxpZGF0aW9uRGlhbG9nKG5ldyBUcnVHcmlkVmFsaWRhdGlvbkRpYWxvZ0NvbmZpZyhcclxuICAgICAgICB0aGlzLmVudGl0eSxcclxuICAgICAgICB0aGlzLmNvbmZpZy5wcm9wZXJ0eU5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgIHRoaXMucGFyc2VFcnJvck1lc3NhZ2VzKGFkZGVkUHJvcGVydHlWYWxkYXRpb25zKSxcclxuICAgICAgICB0aGlzLm1lcmdlRGF0YVxyXG4gICAgICApKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY29uZmlnLnJvb3RUYWJsZSA9PT0gdmFsaWRhdGlvblRhYmxlTmFtZSAmJlxyXG4gICAgICB0aGlzLmVudGl0eVtlbnRpdHlQa2V5TmFtZV0gPT09IHZhbGlkYXRpb25PYmplY3RFbnRpdHlbdmFsaWRhdGlvbk9iamVjdEVudGl0eXBrZXlOYW1lXSAmJlxyXG4gICAgICAocmVtb3ZlZFByb3BlcnR5VmFsZGF0aW9ucy5sZW5ndGgpKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbkRpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7IH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy9UaW1lb3V0IGFsbG93IGNvbnRyb2xzIHdpdGggc3VicHJvcGVydGllcyB0aW1lIHRvIGxvYWQuIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuZGF0YUNvbnRleHQudmFsaWRhdGlvbkNoYW5nZURldGVjdGlvbi5zdWJzY3JpYmUoZW50aXRpZXMgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsRXJyc0NoYW5nZWQoZW50aXRpZXMpO1xyXG4gICAgICB9KSk7XHJcbiAgICAgIHRoaXMuZW50aXR5LmVudGl0eUFzcGVjdC52YWxpZGF0ZUVudGl0eSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5lbnRpdHkuZW50aXR5QXNwZWN0LnZhbGlkYXRlRW50aXR5KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWJyZWV6ZS1ncmlkLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvZGlyZWN0aXZlcy9icmVlemUtZ3JpZC12YWxpZGF0b3IvdHJ1LWJyZWV6ZS1ncmlkLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLFNBQVMsRUFBYyxLQUFLLEVBQXNELE1BQU0sZUFBZSxDQUFDO0FBVXpKLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDOzs7QUFNMUgsTUFBTSxPQUFPLHNCQUFzQjtJQU12QjtJQUNBO0lBQ0E7SUFDQTtJQVJ1QixNQUFNLENBQWlCO0lBQy9DLE1BQU0sQ0FBaUU7SUFDdkUsT0FBTyxDQUF1QjtJQUV2QyxZQUNVLEVBQWMsRUFDZCxXQUEyQixFQUMzQixnQkFBa0MsRUFDbEMsd0JBQWtEO1FBSGxELE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQzVELENBQUM7SUFFRCxXQUFXLEdBQVEsRUFBRSxDQUFDO0lBQ3RCLFNBQVMsQ0FBTTtJQUVQLFNBQVMsR0FBNkIsSUFBSSxDQUFDO0lBQzNDLElBQUksR0FBd0IsRUFBRSxDQUFDO0lBQy9CLGFBQWEsR0FBaUQsSUFBSSxDQUFBO0lBRWxFLFlBQVksR0FBRyxHQUFnQyxFQUFFO1FBQ3ZELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENB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Q0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3RSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO3VHQTFIVSxzQkFBc0I7MkZBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2lCQUNyQztrTEFFa0MsTUFBTTtzQkFBdEMsS0FBSzt1QkFBQyx3QkFBd0I7Z0JBQ3RCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR3JpZEFwaSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYnJlZXplLWNsaWVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmb3JFYWNoIH0gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IFRydUVkaXRDb250cm9sQ29uZmlnQmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZWRpdC1jb250cm9sLWNvbmZpZy1iYXNlJztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVMaXN0Q29udHJvbENvbmZpZ0Jhc2UgfSBmcm9tICcuLi8uLi9iYXNlLWNsYXNzZXMvdHJ1LWxpc3QtY29udHJvbC1jb25maWctYmFzZSc7XHJcbmltcG9ydCB7IFRydU1lcmdlRGF0YSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdHJ1LW1lcmdlLWRhdGEnO1xyXG5pbXBvcnQgeyBUcnVNZXJnZURhdGFTZXQgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RydS1tZXJnZS1kYXRhLXNldCc7XHJcbmltcG9ydCB7IFRydUdyaWRWYWxpZGF0aW9uRGlhbG9nIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9ncmlkLXZhbGlkYXRpb24tZGlhbG9nL3RydS1ncmlkLXZhbGlkYXRpb24tZGlhbG9nJztcclxuaW1wb3J0IHsgVHJ1R3JpZFZhbGlkYXRpb25EaWFsb2dDb25maWcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dyaWQtdmFsaWRhdGlvbi1kaWFsb2cvdHJ1LWdyaWQtdmFsaWRhdGlvbi1kaWFsb2ctY29uZmlnJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3RydUJyZWV6ZUdyaWRWYWxpZGF0b3JdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1QnJlZXplR3JpZFZhbGlkYXRvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoJ3RydUJyZWV6ZUdyaWRWYWxpZGF0b3InKSBlbnRpdHkhOiBUcnVFbnRpdHlCYXNlO1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IFRydUVkaXRDb250cm9sQ29uZmlnQmFzZTxhbnk+IHwgVHJ1TGlzdENvbnRyb2xDb25maWdCYXNlPGFueT47XHJcbiAgQElucHV0KCkgZ3JpZEFwaSE6IEdyaWRBcGkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gIH1cclxuXHJcbiAgY29uZmlnTW9kZWw6IGFueSA9IHt9O1xyXG4gIG1lcmdlRGF0YTogYW55O1xyXG5cclxuICBwcml2YXRlIGRpYWxvZ1JlZjogQ29tcG9uZW50UmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHN1YnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcclxuICBwcml2YXRlIGN1cnJlbnREaWFsb2c6IENvbXBvbmVudFJlZjxUcnVHcmlkVmFsaWRhdGlvbkRpYWxvZz4gfCBudWxsID0gbnVsbFxyXG5cclxuICBwcml2YXRlIGdldE1lcmdlRGF0YSA9ICgpOiBUcnVNZXJnZURhdGFTZXQgfCB1bmRlZmluZWQgPT4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLnByb3BlcnR5UGF0aD8uaW5jbHVkZXMoJy8nKSkge1xyXG4gICAgICBsZXQgcHJvcGVydHlOYW1lUGFydHMgPSB0aGlzLmNvbmZpZy5wcm9wZXJ0eVBhdGguc3BsaXQoJy8nKTtcclxuICAgICAgcHJvcGVydHlOYW1lUGFydHMucG9wKCk7XHJcbiAgICAgIGxldCB0YXJnZXRQcm9wZXJ0eTogYW55O1xyXG4gICAgICBwcm9wZXJ0eU5hbWVQYXJ0cy5mb3JFYWNoKChuYW1lKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXRQcm9wZXJ0eSkge1xyXG4gICAgICAgICAgbGV0IHRhcmdldFByb3BlcnR5TmFtZSA9ICdvJyArIG5hbWUgYXMga2V5b2YgdHlwZW9mIHRoaXMuZW50aXR5O1xyXG4gICAgICAgICAgdGFyZ2V0UHJvcGVydHkgPSB0aGlzLmVudGl0eVt0YXJnZXRQcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgdGFyZ2V0UHJvcGVydHlOYW1lID0gJ28nICsgbmFtZSBhcyBrZXlvZiB0eXBlb2YgdGhpcy5lbnRpdHk7XHJcbiAgICAgICAgICB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFByb3BlcnR5W3RhcmdldFByb3BlcnR5TmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5Lk1lcmdlX0RhdGEpIHtcclxuICAgICAgICByZXR1cm4gdGFyZ2V0UHJvcGVydHkuTWVyZ2VfRGF0YV9TZXQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVudGl0eS5NZXJnZV9EYXRhX1NldD8uZ2V0KHRoaXMuY29uZmlnLnByb3BlcnR5TmFtZSBhcyBzdHJpbmcpID8gdGhpcy5lbnRpdHkuTWVyZ2VfRGF0YV9TZXQgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlRXJyb3JNZXNzYWdlcyA9ICh2YWxpZGF0aW9uRXJyb3JzOiBBcnJheTxWYWxpZGF0aW9uRXJyb3I+KTogc3RyaW5nID0+IHtcclxuICAgIGxldCBlcnJvck1zZzogc3RyaW5nID0gJyc7XHJcbiAgICB2YWxpZGF0aW9uRXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiB7XHJcbiAgICAgIGVycm9yTXNnICs9IGVycm9yLmVycm9yTWVzc2FnZSArICc7ICc7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBlcnJvck1zZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkVmFsaWRhdGlvbkRpYWxvZyA9IChjb25maWc6IFRydUdyaWRWYWxpZGF0aW9uRGlhbG9nQ29uZmlnKSA9PiB7XHJcbiAgICBsZXQgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRydUdyaWRWYWxpZGF0aW9uRGlhbG9nKTtcclxuICAgIGxldCBjb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PFRydUdyaWRWYWxpZGF0aW9uRGlhbG9nPihjb21wb25lbnRGYWN0b3J5LCAwLCB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IpO1xyXG4gICAgY29tcG9uZW50Lmluc3RhbmNlLmNvbmZpZyA9IGNvbmZpZztcclxuICAgIHRoaXMuY3VycmVudERpYWxvZyA9IGNvbXBvbmVudDtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gY29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVWYWxpZGF0aW9uRGlhbG9nID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudERpYWxvZykge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaWFsb2cuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnREaWFsb2cgPSBudWxsO1xyXG4gICAgICB0aGlzLmdyaWRBcGkhLnJlZnJlc2hDZWxscyh7IGZvcmNlOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsRXJyc0NoYW5nZWQgPSAodmFsaWRhdGlvbk9iamVjdDogYW55KSA9PiB7XHJcbiAgICBsZXQgdmFsaWRhdGlvbk9iamVjdEVudGl0eSA9IHZhbGlkYXRpb25PYmplY3QuZW50aXR5XHJcbiAgICBsZXQgdmFsaWRhdGlvblRhYmxlTmFtZSA9IHZhbGlkYXRpb25PYmplY3RFbnRpdHkuY29uc3RydWN0b3IubmFtZTtcclxuXHJcbiAgICB0eXBlIEVudGl0eU9iamVjdEtleSA9IGtleW9mIHR5cGVvZiB0aGlzLmVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVBrZXlOYW1lID0gdmFsaWRhdGlvblRhYmxlTmFtZSArICdSZWYnIGFzIEVudGl0eU9iamVjdEtleTtcclxuXHJcbiAgICB0eXBlIFZhbGlkYXRpb25PYmplY3RFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgdmFsaWRhdGlvbk9iamVjdEVudGl0eTtcclxuICAgIGNvbnN0IHZhbGlkYXRpb25PYmplY3RFbnRpdHlwa2V5TmFtZSA9IHZhbGlkYXRpb25UYWJsZU5hbWUgKyAnUmVmJyBhcyBWYWxpZGF0aW9uT2JqZWN0RW50aXR5T2JqZWN0S2V5O1xyXG5cclxuICAgIGxldCBhZGRlZFByb3BlcnR5VmFsZGF0aW9ucyA9IHZhbGlkYXRpb25PYmplY3QuYWRkZWQuZmlsdGVyKCh2OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHYucHJvcGVydHlOYW1lID09PSB0aGlzLmNvbmZpZy5wcm9wZXJ0eU5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCByZW1vdmVkUHJvcGVydHlWYWxkYXRpb25zID0gdmFsaWRhdGlvbk9iamVjdC5yZW1vdmVkLmZpbHRlcigodjogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB2LnByb3BlcnR5TmFtZSA9PT0gdGhpcy5jb25maWcucHJvcGVydHlOYW1lXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1lcmdlRGF0YSA9IHRoaXMuZ2V0TWVyZ2VEYXRhKCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZy5yb290VGFibGUgPT09IHZhbGlkYXRpb25UYWJsZU5hbWUgJiZcclxuICAgICAgdGhpcy5lbnRpdHlbZW50aXR5UGtleU5hbWVdID09PSB2YWxpZGF0aW9uT2JqZWN0RW50aXR5W3ZhbGlkYXRpb25PYmplY3RFbnRpdHlwa2V5TmFtZV0gJiZcclxuICAgICAgKGFkZGVkUHJvcGVydHlWYWxkYXRpb25zLmxlbmd0aCB8fCB0aGlzLm1lcmdlRGF0YSkpIHtcclxuICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uRGlhbG9nKCk7XHJcbiAgICAgIHRoaXMuYWRkVmFsaWRhdGlvbkRpYWxvZyhuZXcgVHJ1R3JpZFZhbGlkYXRpb25EaWFsb2dDb25maWcoXHJcbiAgICAgICAgdGhpcy5lbnRpdHksXHJcbiAgICAgICAgdGhpcy5jb25maWcucHJvcGVydHlOYW1lIGFzIHN0cmluZyxcclxuICAgICAgICB0aGlzLnBhcnNlRXJyb3JNZXNzYWdlcyhhZGRlZFByb3BlcnR5VmFsZGF0aW9ucyksXHJcbiAgICAgICAgdGhpcy5tZXJnZURhdGFcclxuICAgICAgKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZy5yb290VGFibGUgPT09IHZhbGlkYXRpb25UYWJsZU5hbWUgJiZcclxuICAgICAgdGhpcy5lbnRpdHlbZW50aXR5UGtleU5hbWVdID09PSB2YWxpZGF0aW9uT2JqZWN0RW50aXR5W3ZhbGlkYXRpb25PYmplY3RFbnRpdHlwa2V5TmFtZV0gJiZcclxuICAgICAgKHJlbW92ZWRQcm9wZXJ0eVZhbGRhdGlvbnMubGVuZ3RoKSkge1xyXG4gICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25EaWFsb2coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuZGF0YUNvbnRleHQudmFsaWRhdGlvbkNoYW5nZURldGVjdGlvbi5zdWJzY3JpYmUoZW50aXRpZXMgPT4ge1xyXG4gICAgICB0aGlzLnZhbEVycnNDaGFuZ2VkKGVudGl0aWVzKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZW50aXR5LmVudGl0eUFzcGVjdC52YWxpZGF0ZUVudGl0eSgpOyAgICBcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuZW50aXR5LmVudGl0eUFzcGVjdC52YWxpZGF0ZUVudGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -3358,7 +3358,13 @@ class TruDataGrid {
|
|
|
3358
3358
|
onSelectionChanged: (params) => { },
|
|
3359
3359
|
onCellEditingStopped: (params) => {
|
|
3360
3360
|
//this.gridOptions.api.redrawRows({ rowNodes: params.node });
|
|
3361
|
+
params.api.refreshCells({
|
|
3362
|
+
force: true,
|
|
3363
|
+
rowNodes: [params.node]
|
|
3364
|
+
});
|
|
3361
3365
|
},
|
|
3366
|
+
onCellValueChanged: (params) => {
|
|
3367
|
+
}
|
|
3362
3368
|
};
|
|
3363
3369
|
parentToolbarTemplate = null;
|
|
3364
3370
|
subs = [];
|
|
@@ -3543,13 +3549,11 @@ class TruDataGrid {
|
|
|
3543
3549
|
if (key.code === 'Space') {
|
|
3544
3550
|
key.preventDefault();
|
|
3545
3551
|
key.stopPropagation();
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
});
|
|
3552
|
-
}
|
|
3552
|
+
this.gridOptions.api?.startEditingCell({
|
|
3553
|
+
rowIndex: event.rowIndex,
|
|
3554
|
+
colKey: event.column.getColId(),
|
|
3555
|
+
key: key.code
|
|
3556
|
+
});
|
|
3553
3557
|
}
|
|
3554
3558
|
};
|
|
3555
3559
|
onCellFocused(event) {
|
|
@@ -6787,18 +6791,13 @@ class TruBreezeGridValidator {
|
|
|
6787
6791
|
};
|
|
6788
6792
|
ngOnInit() { }
|
|
6789
6793
|
ngAfterViewInit() {
|
|
6790
|
-
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
}));
|
|
6795
|
-
this.entity.entityAspect.validateEntity();
|
|
6796
|
-
});
|
|
6794
|
+
this.subs.push(this.dataContext.validationChangeDetection.subscribe(entities => {
|
|
6795
|
+
this.valErrsChanged(entities);
|
|
6796
|
+
}));
|
|
6797
|
+
this.entity.entityAspect.validateEntity();
|
|
6797
6798
|
}
|
|
6798
6799
|
ngOnChanges(changes) {
|
|
6799
|
-
|
|
6800
|
-
this.entity.entityAspect.validateEntity();
|
|
6801
|
-
});
|
|
6800
|
+
this.entity.entityAspect.validateEntity();
|
|
6802
6801
|
}
|
|
6803
6802
|
ngOnDestroy() {
|
|
6804
6803
|
this.subs.forEach(s => s.unsubscribe());
|