chrv-components 1.8.53 → 1.8.54
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.
|
Binary file
|
|
@@ -117,16 +117,16 @@ export class ChrTableComponent {
|
|
|
117
117
|
return this.sortBy;
|
|
118
118
|
};
|
|
119
119
|
this.getTextColor = (color = 'none') => {
|
|
120
|
-
return TextColors[color];
|
|
120
|
+
return TextColors[color] || TextColors['black'];
|
|
121
121
|
};
|
|
122
122
|
this.getBackgroundColor = (color = 'none') => {
|
|
123
|
-
return BackgroundColors[color];
|
|
123
|
+
return BackgroundColors[color] || BackgroundColors['accent'];
|
|
124
124
|
};
|
|
125
125
|
this.getBorderColor = (color = 'none') => {
|
|
126
|
-
return BorderColors[color];
|
|
126
|
+
return BorderColors[color] || BorderColors['accent'];
|
|
127
127
|
};
|
|
128
128
|
this.getAlignment = (alignment = 'center') => {
|
|
129
|
-
return Aligments[alignment];
|
|
129
|
+
return Aligments[alignment] || Aligments['left'];
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
ngOnInit() {
|
|
@@ -220,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
220
220
|
}], textColor: [{
|
|
221
221
|
type: Input
|
|
222
222
|
}] } });
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NocnYtY29tcG9uZW50cy9zcmMvbGliL2Noci10YWJsZS9jaHItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLXRhYmxlL2Noci10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxZQUFZLEVBQ1osTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxZQUFZLEVBQ1oseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7OztBQWF0QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBOEI7SUFDekQsTUFBTSxFQUFFLGFBQWE7SUFDckIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsS0FBSyxFQUFFLGNBQWM7SUFDckIsSUFBSSxFQUFFLGVBQWU7Q0FDdEIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBOEI7SUFDbkQsTUFBTSxFQUFFLGVBQWU7SUFDdkIsT0FBTyxFQUFFLGVBQWU7SUFDeEIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsS0FBSyxFQUFFLGdCQUFn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QUNVO3dCQUNULFFBQVE7d0JBQ1I7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRTt5QkFDdEM7cUJBQ0Y7dUlBR1EsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUUsV0FBVztzQkFBbkIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUUsRUFBRTtzQkFBVixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hyUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hyLXBhZ2luYXRvci9jaHItcGFnaW5hdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaHJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9jaHItYnV0dG9uL2Noci1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENoclRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2Noci10YWJsZS1oZWFkZXItY2VsbC9jaHItdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IE5neFBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XG5pbXBvcnQge1xuICBDb21tb25Nb2R1bGUsXG4gIERBVEVfUElQRV9ERUZBVUxUX09QVElPTlMsXG4gIERhdGVQaXBlLFxuICBOZ0Zvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFNvcnRQaXBlIH0gZnJvbSAnY2hydi1waXBlcyc7XG5leHBvcnQgdHlwZSBDb2xvciA9XG4gIHwgJ3ByaW1hcnknXG4gIHwgJ2FjY2VudCdcbiAgfCAnd2FybidcbiAgfCAnYWxlcnQnXG4gIHwgJ2RhcmtlcmFjY2VudCdcbiAgfCAnd2hpdGUnXG4gIHwgJ2JsYWNrJ1xuICB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgQWxpZ25tZW50ID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuXG5leHBvcnQgY29uc3QgQmFja2dyb3VuZENvbG9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYWNjZW50OiAnYmctY2hybGJsdWUnLFxuICBwcmltYXJ5OiAnYmctY2hyZGJsdWUnLFxuICBkYXJrZXJhY2NlbnQ6ICdiZy1jaHJtYmx1ZScsXG4gIGFsZXJ0OiAnYmctY2hyb3JhbmdlJyxcbiAgd2FybjogJ2JnLWNocndhcm5pbmcnLFxufTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sb3JzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBhY2NlbnQ6ICd0ZXh0LWNocmxibHVlJyxcbiAgcHJpbWFyeTogJ3RleHQtY2hyZGJsdWUnLFxuICBkYXJrZXJhY2NlbnQ6ICd0ZXh0LWNocm1ibHVlJyxcbiAgYWxlcnQ6ICd0ZXh0LWNocm9yYW5nZScsXG4gIHdhcm46ICd0ZXh0LWNocndhcm5pbmcnLFxuICB3aGl0ZTogJ3RleHQtd2hpdGUnLFxuICBibGFjazogJ3RleHQtYmxhY2snLFxufTtcblxuZXhwb3J0IGNvbnN0IEJvcmRlckNvbG9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYWNjZW50OiAnYm9yZGVyLWNocmxibHVlJyxcbiAgcHJpbWFyeTogJ2JvcmRlci1jaHJkYmx1ZScsXG4gIGRhcmtlcmFjY2VudDogJ2JvcmRlci1jaHJtYmx1ZScsXG4gIGFsZXJ0OiAnYm9yZGVyLWNocm9yYW5nZScsXG4gIHdhcm46ICdib3JkZXItY2hyd2FybmluZycsXG59O1xuXG5leHBvcnQgY29uc3QgQWxpZ21lbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBsZWZ0OiAndGV4dC1sZWZ0IGp1c3RpZnktc3RhcnQnLFxuICBjZW50ZXI6ICd0ZXh0LWNlbnRlciBqdXN0aWZ5LWNlbnRlcicsXG4gIHJpZ2h0OiAndGV4dC1yaWdodCBqdXN0aWZ5LWVuZCcsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElDaGlwcyB7XG4gIGRpc3BsYXk6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjYWxsYmFjazogKGVudHJ5OiBhbnkpID0+IHN0cmluZyB8IGJvb2xlYW47XG4gIHRleHRDb2xvcj86ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nIHwgJ2FsZXJ0JyB8ICdkYXJrZXJhY2NlbnQnIHwgJ25vbmUnO1xuICBiYWNrZ3JvdW5kQ29sb3I/OlxuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAnYWNjZW50J1xuICAgIHwgJ3dhcm4nXG4gICAgfCAnYWxlcnQnXG4gICAgfCAnZGFya2VyYWNjZW50J1xuICAgIHwgJ25vbmUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW4ge1xuICBkaXNwbGF5OiBzdHJpbmc7XG4gIGFsaWdubWVudD86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcbiAgY2hpcHM/OiBJQ2hpcHNbXTtcbiAgcHJvcGVydGllcz86IHN0cmluZ1tdO1xuICBjYWxsYmFjaz86IEZ1bmN0aW9uO1xuICBkYXRlPzogc3RyaW5nO1xuICBpc0xpbms/OiBib29sZWFuO1xuICBsaW5rU3RhdGljVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wdXRlZFJvdyB7XG4gIGNvbHVtbnM6IElDb21wdXRlZENvbHVtbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wdXRlZENvbHVtbiB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB2YWx1ZT86IGFueTtcbiAgY2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgYWxpZ25tZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICBhZnRlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uIHtcbiAgZGlzcGxheT86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY2FsbGJhY2s6IEZ1bmN0aW9uO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgY29sb3I6ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nIHwgJ2FsZXJ0JyB8ICdkYXJrZXJhY2NlbnQnIHwgJ25vbmUnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2hyLXRhYmxlLCBbYXBwLWNoci10YWJsZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hyLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hyLXRhYmxlLmNvbXBvbmVudC5zY3NzJywgJy4uLy4uLy4uLy4uLy4uL3RhaWx3aW5kYnVpbGQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDaHJUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgQ2hyQnV0dG9uQ29tcG9uZW50LFxuICAgIENoclBhZ2luYXRvckNvbXBvbmVudCxcbiAgICBTb3J0UGlwZSxcbiAgICBOZ3hQYWdpbmF0aW9uTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBEYXRlUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGF0ZVBpcGUsXG4gICAge1xuICAgICAgcHJvdmlkZTogREFURV9QSVBFX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7IGRhdGVGb3JtYXQ6ICdzaG9ydERhdGUnIH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hyVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb21wdXRlZFJvd3M/OiBJQ29tcHV0ZWRSb3dbXTtcbiAgQElucHV0KCkgY29sdW1ucz86IElDb2x1bW5bXTtcbiAgQElucHV0KCkgZGF0YTogYW55W10gfCBudWxsID0gW107XG4gIEBJbnB1dCgpIGFjdGlvbnM/OiBJQWN0aW9uW107XG5cbiAgQElucHV0KCkgaXNBc2M6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgaXNBc2NDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgc29ydEJ5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgc29ydEJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gNTA7XG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIEBPdXRwdXQoKSBjdXJyZW50UGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgc2VsZWN0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogYW55W10gPSBbXTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICdjaHJfYmFzZS1kYXRhLXRhYmxlJztcblxuICBASW5wdXQoKSBjb2xvcjogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2FybicgfCAnYWxlcnQnIHwgJ2RhcmtlcmFjY2VudCcgPVxuICAgICdhY2NlbnQnO1xuXG4gIEBJbnB1dCgpIHRleHRDb2xvcjpcbiAgICB8ICdwcmltYXJ5J1xuICAgIHwgJ2FjY2VudCdcbiAgICB8ICd3YXJuJ1xuICAgIHwgJ2FsZXJ0J1xuICAgIHwgJ2RhcmtlcmFjY2VudCdcbiAgICB8ICd3aGl0ZSdcbiAgICB8ICdibGFjaycgPSAnYmxhY2snO1xuXG4gIHByaXZhdGUgX3BhZ2U6IG51bWJlciA9IDE7XG5cbiAgY3VycmVudFByb3BlcnR5OiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY3VycmVudFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RhdGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldChgJHt0aGlzLmlkfV9zb3J0QnlgKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykgdGhpcy5zb3J0QnkgPSByZXM7XG4gICAgfSk7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXQoYCR7dGhpcy5pZH1faXNBc2NgKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykgdGhpcy5pc0FzYyA9IHJlcztcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuXG4gIHByb3RlY3RlZCBlbWl0SXNBc2MoaXNBc2M6IGFueSkge1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0KGAke3RoaXMuaWR9X2lzQXNjYCwgaXNBc2MpO1xuICAgIHRoaXMuaXNBc2NDaGFuZ2UuZW1pdChpc0FzYyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdFNvcnRCeShzb3J0Qnk6IGFueSkge1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0KGAke3RoaXMuaWR9X3NvcnRCeWAsIHNvcnRCeSk7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChzb3J0QnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRQYWdlU2l6ZShwYWdlU2l6ZTogYW55KSB7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdChwYWdlU2l6ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdEN1cnJlbnRQYWdlKGN1cnJlbnRQYWdlOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gY3VycmVudFBhZ2U7XG4gICAgdGhpcy5jdXJyZW50UGFnZUNoYW5nZS5lbWl0KGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQcm9wZXJ0eSA9IChlbnRyeTogYW55LCBwcm9wZXJ0aWVzPzogYW55W10pID0+IHtcbiAgICB0aGlzLmN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7XG4gICAgdGhpcy5jdXJyZW50VGV4dCA9IG51bGw7XG5cbiAgICBpZiAoIXByb3BlcnRpZXMpIHtcbiAgICAgIHRoaXMuY3VycmVudFByb3BlcnR5ID0gZW50cnk7XG4gICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICAgIGxldCB2YWx1ZSA9IGVudHJ5O1xuICAgIGZvciAoY29uc3QgaSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICB2YWx1ZSA9ICh2YWx1ZSBhcyBhbnkpPy5baV07XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFByb3BlcnR5ID0gdmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRUZXh0ID0gKHByb3BlcnR5OiBhbnksIGNvbHVtbjogSUNvbHVtbikgPT4ge1xuICAgIGxldCB0ZXh0ID0gbnVsbDtcblxuICAgIGlmIChjb2x1bW4uY2FsbGJhY2spIHRleHQgPSBjb2x1bW4uY2FsbGJhY2socHJvcGVydHkpO1xuXG4gICAgaWYgKHRleHQgPT0gbnVsbCAmJiBjb2x1bW4uZGF0ZSlcbiAgICAgIHRleHQgPSB0aGlzLl9kYXRlLnRyYW5zZm9ybShwcm9wZXJ0eSwgY29sdW1uLmRhdGUpO1xuXG4gICAgdGhpcy5jdXJyZW50VGV4dCA9IHRleHQgfHwgcHJvcGVydHk7XG5cbiAgICByZXR1cm4gdGV4dCB8fCBwcm9wZXJ0eTtcbiAgICAvLyBjb2x1bW4uZGF0ZVxuICAgIC8vICAgPyBjb2x1bW4uY2FsbGJhY2tcbiAgICAvLyBcdD8gY29sdW1uLmNhbGxiYWNrKHByb3BlcnR5KVxuICAgIC8vIFx0OiAocHJvcGVydHkgfCBkYXRlIDogY29sdW1uLmRhdGUpXG4gICAgLy8gICA6IGNvbHVtbi5jYWxsYmFja1xuICAgIC8vIFx0PyBjb2x1bW4uY2FsbGJhY2socHJvcGVydHkpXG4gICAgLy8gXHQ6IHByb3BlcnR5XG4gIH07XG5cbiAgcHJvdGVjdGVkIHNlbGVjdCA9IChlbnRyeTogYW55LCBldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IHBvaW50ZXIgPSA8UG9pbnRlckV2ZW50PmV2ZW50O1xuICAgIGNvbnN0IHRhcmdldCA9IDxIVE1MSW5wdXRFbGVtZW50PnBvaW50ZXIudGFyZ2V0O1xuICAgIGlmICh0YXJnZXQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24ucHVzaChlbnRyeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uZmlsdGVyKCh4KSA9PiB4ICE9PSBlbnRyeSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gIH07XG5cbiAgcHVibGljIGdldFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb247XG4gIH07XG5cbiAgcHVibGljIHNldFNlbGVjdGlvbiA9IChkYXRhOiBhbnlbXSkgPT4ge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gZGF0YTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgY29udGFpbnMgPSAoZW50cnk6IGFueSkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5pbmNsdWRlcyhlbnRyeSk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldElzQXNjID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlzQXNjO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRTb3J0QnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydEJ5O1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRUZXh0Q29sb3IgPSAoY29sb3I6IENvbG9yID0gJ25vbmUnKSA9PiB7XG4gICAgcmV0dXJuIFRleHRDb2xvcnNbY29sb3JdO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRCYWNrZ3JvdW5kQ29sb3IgPSAoY29sb3I6IENvbG9yID0gJ25vbmUnKSA9PiB7XG4gICAgcmV0dXJuIEJhY2tncm91bmRDb2xvcnNbY29sb3JdO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRCb3JkZXJDb2xvciA9IChjb2xvcjogQ29sb3IgPSAnbm9uZScpID0+IHtcbiAgICByZXR1cm4gQm9yZGVyQ29sb3JzW2NvbG9yXTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0QWxpZ25tZW50ID0gKGFsaWdubWVudDogQWxpZ25tZW50ID0gJ2NlbnRlcicpID0+IHtcbiAgICByZXR1cm4gQWxpZ21lbnRzW2FsaWdubWVudF07XG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIG5vLXNjcm9sbGJhclwiPlxuICA8bmctY29udGVudCBjbGFzcz1cIm10LTVcIj48L25nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtMSBvdmVyZmxvdy1hdXRvIG5vLXNjcm9sbGJhclwiPlxuICAgIEBpZiAoZGF0YSkge1xuICAgIDwhLS0gbWF4LXctWzc1JV0gLS0+XG4gICAgPHRhYmxlXG4gICAgICBjbGFzcz1cInRhYmxlLWF1dG8gbWF4LXctZnVsbCBib3JkZXIgZGFyazpib3JkZXItbm9uZSByZWxhdGl2ZSBmbGV4IGZsZXgtcm93IGZsZXgtbm8td3JhcCB3LWZ1bGwgcm91bmRlZC1sZyBzbTpzaGFkb3ctbGcgYmctdHJhbnNwYXJlbnQgbm8tc2Nyb2xsYmFyXCI+XG4gICAgICA8dGhlYWQgY2xhc3M9XCJ0ZXh0LWJsYWNrXCI+XG4gICAgICAgIEBpZiAoZGF0YS5sZW5ndGggPD0gMCkgeyA8dHIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtbm8gd3JhcCBzbTp0YWJsZS1yb3cgcm91bmRlZC1sZyBtYi0yIHNtOm1iLTBcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIltnZXRCYWNrZ3JvdW5kQ29sb3IoY29sb3IpLCBnZXRUZXh0Q29sb3IodGV4dENvbG9yKV1cIj5cbiAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgY29sdW1uKSB7XG4gICAgICAgICAgPHRoIGFwcC1jaHItdGFibGUtaGVhZGVyLWNlbGwgY2xhc3M9XCJwLTMgaC0xNFwiIGRpc3BsYXk9XCJ7eyBjb2x1bW4uZGlzcGxheSB9fVwiIGNvbHVtbj1cInt7IGNvbHVtbi5wcm9wZXJ0aWVzIH19XCJcbiAgICAgICAgICAgIFsoaXNBc2MpXT1cImlzQXNjXCIgKGlzQXNjQ2hhbmdlKT1cImVtaXRJc0FzYygkZXZlbnQpXCIgWyhzb3J0QnkpXT1cInNvcnRCeVwiIChzb3J0QnlDaGFuZ2UpPVwiZW1pdFNvcnRCeSgkZXZlbnQpXCI+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChhY3Rpb25zKSB7XG4gICAgICAgICAgPHRoXG4gICAgICAgICAgICBjbGFzcz1cImgtMTQgcC0zIHRleHQtbGVmdCBzbTp0ZXh0LWNlbnRlciBwbGFjZS1jb250ZW50LWNlbnRlciBwbGFjZS1pdGVtcy1jZW50ZXIgaXRlbXMtY2VudGVyIGFsaWduLW1pZGRsZSBzbTp3LTBcIj5cbiAgICAgICAgICAgIEFjdGlvbnNcbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChlbnRyeSBvZiBkYXRhIHxcbiAgICAgICAgICBzb3J0OmlzQXNjOnNvcnRCeSB8IHBhZ2luYXRlOiB7aXRlbXNQZXJQYWdlOiBwYWdlU2l6ZSwgY3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLCBpZDogdGhpcy5pZH07IHRyYWNrIGVudHJ5KVxuICAgICAgICAgIHtcbiAgICAgICAgICA8dHIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtbm8gd3JhcCBzbTp0YWJsZS1yb3cgcm91bmRlZC1sZyBtYi0yIHNtOm1iLTAgXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltnZXRCYWNrZ3JvdW5kQ29sb3IoY29sb3IpLCBnZXRUZXh0Q29sb3IodGV4dENvbG9yKV1cIj5cbiAgICAgICAgICAgIDx0aCAqbmdJZj1cInNlbGVjdGFibGVcIiBjbGFzcz1cInAtMyBoLTE0XCI+PC90aD5cbiAgICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4pIHtcbiAgICAgICAgICAgIDx0aCBhcHAtY2hyLXRhYmxlLWhlYWRlci1jZWxsIGNsYXNzPVwicC0zIGgtMTRcIiBkaXNwbGF5PVwie3sgY29sdW1uLmRpc3BsYXkgfX1cIlxuICAgICAgICAgICAgICBjb2x1bW49XCJ7eyBjb2x1bW4ucHJvcGVydGllcyB9fVwiIFsoaXNBc2MpXT1cImlzQXNjXCIgYWxpZ25tZW50PVwie3tjb2x1bW4uYWxpZ25tZW50fX1cIlxuICAgICAgICAgICAgICAoaXNBc2NDaGFuZ2UpPVwiZW1pdElzQXNjKCRldmVudClcIiBbKHNvcnRCeSldPVwic29ydEJ5XCIgKHNvcnRCeUNoYW5nZSk9XCJlbWl0U29ydEJ5KCRldmVudClcIj48L3RoPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChhY3Rpb25zKSB7XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJoLTE0IHAtMyB0ZXh0LWxlZnQgc206dGV4dC1jZW50ZXIgcGxhY2UtY29udGVudC1jZW50ZXIgcGxhY2UtaXRlbXMtY2VudGVyIGl0ZW1zLWNlbnRlciBhbGlnbi1taWRkbGUgc2VsZi1jZW50ZXIgc206dy0wXCI+XG4gICAgICAgICAgICAgIEFjdGlvbnNcbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICB9XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgIEBpZiAoZGF0YS5sZW5ndGggPD0gMCkgeyA8dHJcbiAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1uby13cmFwIHNtOnRhYmxlLXJvdyByb3VuZGVkLWxnIG1iLTAgc206bWItMiBkYXJrOmJnLXNsYXRlLTYwMFwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInAtMyBoLTE0XCI+UGFzIGRlIGRvbm7DqWUocyk8L3RkPlxuICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zIHwgc2xpY2U6IDE7IHRyYWNrIGNvbHVtbikge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cInAtMyBoLTE0XCI+PC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChhY3Rpb25zKSB7XG4gICAgICAgICAgPHRkIGNsYXNzPVwicC0zIGgtMTQgZ3JpZCBnYXAtMyBqdXN0aWZ5LWNlbnRlciBhbGlnbi1taWRkbGUgaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFjdGlvbnMubGVuZ3RoID4gMSA/ICdncmlkLWNvbHMtMicgOiAnZ3JpZC1jb2xzLTEnXCI+PC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGZvciAoZW50cnkgb2YgZGF0YSB8XG4gICAgICAgICAgc29ydDppc0FzYzpzb3J0QnkgfCBwYWdpbmF0ZToge2l0ZW1zUGVyUGFnZTogcGFnZVNpemUsIGN1cnJlbnRQYWdlOiBjdXJyZW50UGFnZSwgaWQ6IHRoaXMuaWR9OyB0cmFja1xuICAgICAgICAgIGVudHJ5OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgIDx0ciBbYXR0ci5kYXRhLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtbm8td3JhcCBzbTp0YWJsZS1yb3cgbWItMiBzbTptYi0wIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmJnLXNsYXRlLTYwMCBzbTpvZGQ6YmctZ3JheS0yMDAgc206ZGFyazpvZGQ6Ymctc2xhdGUtNzAwIHNtOmJvcmRlci10LTIgc206Zmlyc3Q6Ym9yZGVyLTBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2dldEJvcmRlckNvbG9yKGNvbG9yKV1cIj5cbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGFibGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInAtMyBoLTE0IHRleHQtZWxsaXBzaXMgbWF4LXctZnVsbCBib3JkZXItdC0yIGZpcnN0OmJvcmRlci0wIHNtOmZpcnN0OmJvcmRlci10LTJcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRCb3JkZXJDb2xvcihjb2xvcilcIj48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgKGNsaWNrKT1cInNlbGVjdChlbnRyeSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY29udGFpbnMoZW50cnkpXCIgLz48L3RkPlxuICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIGNvbHVtbjspIHtcbiAgICAgICAgICAgIDx0ZCBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICBjb2x1bW4uY2hpcHNcbiAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgXCIgY2xhc3M9XCJwLTMgaC0xNCB0ZXh0LWVsbGlwc2lzIG1heC13LWZ1bGwgYm9yZGVyLXQtMiBmaXJzdDpib3JkZXItMCBzbTpmaXJzdDpib3JkZXItdC0yXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Qm9yZGVyQ29sb3IoY29sb3IpXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntwcm9wOiBnZXRQcm9wZXJ0eShlbnRyeSwgY29sdW1uLnByb3BlcnRpZXMpLCBjb2x1bW46IGNvbHVtbn1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHQgbGV0LWNvbHVtbj0nY29sdW1uJyBsZXQtcHJvcGVydHk9XCJwcm9wXCI+XG4gICAgICAgICAgICAgIEBpZiAoY29sdW1uLmlzTGluaykge1xuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInRleHQte3tjb2x1bW4uYWxpZ25tZW50fX1cIiBocmVmPVwie3tjb2x1bW4ubGlua1N0YXRpY1VybH19e3tcbiAgICAgICAgICAgICAgZ2V0VGV4dChwcm9wZXJ0eSwgY29sdW1uKVxuICAgICAgICAgICAgICB9fVwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgY3VycmVudFRleHRcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmICghY29sdW1uLmlzTGluaykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvd1wiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnanVzdGlmeS1zdGFydCc6IGNvbHVtbi5hbGlnbm1lbnQgPT0gJ2xlZnQnLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNlbnRlcic6IGNvbHVtbi5hbGlnbm1lbnQgPT0gJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgJ2p1c3RpZnktZW5kJzogY29sdW1uLmFsaWdubWVudCA9PSAncmlnaHQnLFxuICAgICAgICAgICAgICAgICdnYXAtMic6IGNvbHVtbi5jaGlwc0Rpc3BsYXkgJiYgZ2V0VGV4dChwcm9wZXJ0eSwgY29sdW1uKVxuICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgQGlmIChjb2x1bW4uY2hpcHMgJiYgY29sdW1uLmNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgQGZvcihjaGlwIG9mIGNvbHVtbi5jaGlwczsgdHJhY2sgY2hpcDsgbGV0IGkgPSAkaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaGlwLmNhbGxiYWNrKGVudHJ5KSA9PT0gdHJ1ZSB8fCBjaGlwLmNhbGxiYWNrKGVudHJ5KSA9PT0gY2hpcC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTI0IGZsZXggdGV4dC1jZW50ZXIgY29udGVudC1jZW50ZXIgYWxpZ24tbWlkZGxlIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LXhzIGZvbnQtbWVkaXVtIHB5LTAuNSByb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbZ2V0QmFja2dyb3VuZENvbG9yKGNoaXAuYmFja2dyb3VuZENvbG9yKSwgZ2V0VGV4dENvbG9yKGNoaXAudGV4dENvbG9yKV1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgY2hpcC5kaXNwbGF5IH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImlubGluZS1ibG9jayBvdmVyZmxvdy1oaWRkZW4gdGV4dC1ub3dyYXAgdGV4dC1lbGxpcHNpcyBtYXgtdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgY3VycmVudFRleHQgfHwgZ2V0VGV4dChwcm9wZXJ0eSwgY29sdW1uKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgQGlmIChhY3Rpb25zKSB7XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwLTMgaC0xNCBmbGV4IGdhcC0yIHctZnVsbCBzbTp3LW1pbiBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9uczsgdHJhY2sgYWN0aW9uKSB7XG4gICAgICAgICAgICAgIDxhcHAtY2hyLWJ1dHRvbiBjbGFzcz1cInctZnVsbFwiIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbi5kaXNhYmxlZENhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgID8gYWN0aW9uLmRpc2FibGVkQ2FsbGJhY2soZW50cnkpXG4gICAgICAgICAgICAgICAgICAgIDogYWN0aW9uLmRpc2FibGVkIHx8IGZhbHNlXG4gICAgICAgICAgICAgICAgXCIgW2Rpc3BsYXldPVwiYWN0aW9uLmRpc3BsYXlcIiBbaWNvbl09XCJhY3Rpb24uaWNvblwiIFtjbGlja109XCJhY3Rpb24uY2FsbGJhY2suYmluZChudWxsLCBlbnRyeSwgaSlcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIiB0eXBlPVwicmVzcG9uc2l2ZVwiPlxuICAgICAgICAgICAgICA8L2FwcC1jaHItYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKHIgb2YgY29tcHV0ZWRSb3dzOyB0cmFjayByKSB7XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1uby13cmFwIHNtOnRhYmxlLXJvdyBtYi0yIHNtOm1iLTAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6Ymctc2xhdGUtNjAwIHNtOm9kZDpiZy1ncmF5LTIwMCBzbTpkYXJrOm9kZDpiZy1zbGF0ZS03MDBcIj5cbiAgICAgICAgICAgIEBmb3IgKGMgb2Ygci5jb2x1bW5zOyB0cmFjayBjKSB7XG4gICAgICAgICAgICA8dGQgW25nQ2xhc3NdPVwiYy5hbGlnbm1lbnQgJiYgJ3RleHQtJysoYy5hbGlnbm1lbnR8fCdsZWZ0JylcIiBjbGFzcz1cInAtMyBoLTE0XCI+XG4gICAgICAgICAgICAgIHt7Yy5sYWJlbCAmJiBjLmxhYmVsICsgJzonfX0ge3tjLnZhbHVlIHx8IChjLmNhbGxiYWNrICYmIGMuY2FsbGJhY2soZGF0YSkpfX0ge3tjLmFmdGVyfX1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICB9XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICAgPGFwcC1jaHItcGFnaW5hdG9yIFtpZF09XCJ0aGlzLmlkXCIgWyhwYWdlU2l6ZSldPVwicGFnZVNpemVcIiBbKHBhZ2UpXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJlbWl0UGFnZVNpemUoJGV2ZW50KVwiIChwYWdlQ2hhbmdlKT1cImVtaXRDdXJyZW50UGFnZSgkZXZlbnQpXCI+PC9hcHAtY2hyLXBhZ2luYXRvcj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NocnYtY29tcG9uZW50cy9zcmMvbGliL2Noci10YWJsZS9jaHItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLXRhYmxlL2Noci10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxZQUFZLEVBQ1osTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxZQUFZLEVBQ1oseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7OztBQWF0QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBOEI7SUFDekQsTUFBTSxFQUFFLGFBQWE7SUFDckIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsS0FBSyxFQUFFLGNBQWM7SUFDckIsSUFBSSxFQUFFLGVBQWU7Q0FDdEIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBOEI7SUFDbkQsTUFBTSxFQUFFLGVBQWU7SUFDdkIsT0FBTyxFQUFFLGVBQWU7SUFDeEIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsS0FBSyxFQUFFLGdCQUFn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LDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLFFBQVE7d0JBQ1IsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLEtBQUs7d0JBQ0wsUUFBUTtxQkFDVCxhQUNVO3dCQUNULFFBQVE7d0JBQ1I7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRTt5QkFDdEM7cUJBQ0Y7dUlBR1EsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUUsV0FBVztzQkFBbkIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUUsRUFBRTtzQkFBVixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hyUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hyLXBhZ2luYXRvci9jaHItcGFnaW5hdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaHJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9jaHItYnV0dG9uL2Noci1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENoclRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2Noci10YWJsZS1oZWFkZXItY2VsbC9jaHItdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IE5neFBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XG5pbXBvcnQge1xuICBDb21tb25Nb2R1bGUsXG4gIERBVEVfUElQRV9ERUZBVUxUX09QVElPTlMsXG4gIERhdGVQaXBlLFxuICBOZ0Zvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFNvcnRQaXBlIH0gZnJvbSAnY2hydi1waXBlcyc7XG5leHBvcnQgdHlwZSBDb2xvciA9XG4gIHwgJ3ByaW1hcnknXG4gIHwgJ2FjY2VudCdcbiAgfCAnd2FybidcbiAgfCAnYWxlcnQnXG4gIHwgJ2RhcmtlcmFjY2VudCdcbiAgfCAnd2hpdGUnXG4gIHwgJ2JsYWNrJ1xuICB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgQWxpZ25tZW50ID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuXG5leHBvcnQgY29uc3QgQmFja2dyb3VuZENvbG9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYWNjZW50OiAnYmctY2hybGJsdWUnLFxuICBwcmltYXJ5OiAnYmctY2hyZGJsdWUnLFxuICBkYXJrZXJhY2NlbnQ6ICdiZy1jaHJtYmx1ZScsXG4gIGFsZXJ0OiAnYmctY2hyb3JhbmdlJyxcbiAgd2FybjogJ2JnLWNocndhcm5pbmcnLFxufTtcbmV4cG9ydCBjb25zdCBUZXh0Q29sb3JzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBhY2NlbnQ6ICd0ZXh0LWNocmxibHVlJyxcbiAgcHJpbWFyeTogJ3RleHQtY2hyZGJsdWUnLFxuICBkYXJrZXJhY2NlbnQ6ICd0ZXh0LWNocm1ibHVlJyxcbiAgYWxlcnQ6ICd0ZXh0LWNocm9yYW5nZScsXG4gIHdhcm46ICd0ZXh0LWNocndhcm5pbmcnLFxuICB3aGl0ZTogJ3RleHQtd2hpdGUnLFxuICBibGFjazogJ3RleHQtYmxhY2snLFxufTtcblxuZXhwb3J0IGNvbnN0IEJvcmRlckNvbG9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYWNjZW50OiAnYm9yZGVyLWNocmxibHVlJyxcbiAgcHJpbWFyeTogJ2JvcmRlci1jaHJkYmx1ZScsXG4gIGRhcmtlcmFjY2VudDogJ2JvcmRlci1jaHJtYmx1ZScsXG4gIGFsZXJ0OiAnYm9yZGVyLWNocm9yYW5nZScsXG4gIHdhcm46ICdib3JkZXItY2hyd2FybmluZycsXG59O1xuXG5leHBvcnQgY29uc3QgQWxpZ21lbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBsZWZ0OiAndGV4dC1sZWZ0IGp1c3RpZnktc3RhcnQnLFxuICBjZW50ZXI6ICd0ZXh0LWNlbnRlciBqdXN0aWZ5LWNlbnRlcicsXG4gIHJpZ2h0OiAndGV4dC1yaWdodCBqdXN0aWZ5LWVuZCcsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElDaGlwcyB7XG4gIGRpc3BsYXk6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjYWxsYmFjazogKGVudHJ5OiBhbnkpID0+IHN0cmluZyB8IGJvb2xlYW47XG4gIHRleHRDb2xvcj86ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nIHwgJ2FsZXJ0JyB8ICdkYXJrZXJhY2NlbnQnIHwgJ25vbmUnO1xuICBiYWNrZ3JvdW5kQ29sb3I/OlxuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAnYWNjZW50J1xuICAgIHwgJ3dhcm4nXG4gICAgfCAnYWxlcnQnXG4gICAgfCAnZGFya2VyYWNjZW50J1xuICAgIHwgJ25vbmUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW4ge1xuICBkaXNwbGF5OiBzdHJpbmc7XG4gIGFsaWdubWVudD86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcbiAgY2hpcHM/OiBJQ2hpcHNbXTtcbiAgcHJvcGVydGllcz86IHN0cmluZ1tdO1xuICBjYWxsYmFjaz86IEZ1bmN0aW9uO1xuICBkYXRlPzogc3RyaW5nO1xuICBpc0xpbms/OiBib29sZWFuO1xuICBsaW5rU3RhdGljVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wdXRlZFJvdyB7XG4gIGNvbHVtbnM6IElDb21wdXRlZENvbHVtbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wdXRlZENvbHVtbiB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB2YWx1ZT86IGFueTtcbiAgY2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgYWxpZ25tZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICBhZnRlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uIHtcbiAgZGlzcGxheT86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY2FsbGJhY2s6IEZ1bmN0aW9uO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkQ2FsbGJhY2s/OiBGdW5jdGlvbjtcbiAgY29sb3I6ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nIHwgJ2FsZXJ0JyB8ICdkYXJrZXJhY2NlbnQnIHwgJ25vbmUnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2hyLXRhYmxlLCBbYXBwLWNoci10YWJsZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hyLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hyLXRhYmxlLmNvbXBvbmVudC5zY3NzJywgJy4uLy4uLy4uLy4uLy4uL3RhaWx3aW5kYnVpbGQuY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDaHJUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgQ2hyQnV0dG9uQ29tcG9uZW50LFxuICAgIENoclBhZ2luYXRvckNvbXBvbmVudCxcbiAgICBTb3J0UGlwZSxcbiAgICBOZ3hQYWdpbmF0aW9uTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBEYXRlUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGF0ZVBpcGUsXG4gICAge1xuICAgICAgcHJvdmlkZTogREFURV9QSVBFX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7IGRhdGVGb3JtYXQ6ICdzaG9ydERhdGUnIH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hyVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb21wdXRlZFJvd3M/OiBJQ29tcHV0ZWRSb3dbXTtcbiAgQElucHV0KCkgY29sdW1ucz86IElDb2x1bW5bXTtcbiAgQElucHV0KCkgZGF0YTogYW55W10gfCBudWxsID0gW107XG4gIEBJbnB1dCgpIGFjdGlvbnM/OiBJQWN0aW9uW107XG5cbiAgQElucHV0KCkgaXNBc2M6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgaXNBc2NDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgc29ydEJ5Pzogc3RyaW5nO1xuICBAT3V0cHV0KCkgc29ydEJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gNTA7XG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XG4gIEBPdXRwdXQoKSBjdXJyZW50UGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgc2VsZWN0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogYW55W10gPSBbXTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICdjaHJfYmFzZS1kYXRhLXRhYmxlJztcblxuICBASW5wdXQoKSBjb2xvcjogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2FybicgfCAnYWxlcnQnIHwgJ2RhcmtlcmFjY2VudCcgPVxuICAgICdhY2NlbnQnO1xuXG4gIEBJbnB1dCgpIHRleHRDb2xvcjpcbiAgICB8ICdwcmltYXJ5J1xuICAgIHwgJ2FjY2VudCdcbiAgICB8ICd3YXJuJ1xuICAgIHwgJ2FsZXJ0J1xuICAgIHwgJ2RhcmtlcmFjY2VudCdcbiAgICB8ICd3aGl0ZSdcbiAgICB8ICdibGFjaycgPSAnYmxhY2snO1xuXG4gIHByaXZhdGUgX3BhZ2U6IG51bWJlciA9IDE7XG5cbiAgY3VycmVudFByb3BlcnR5OiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY3VycmVudFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RhdGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldChgJHt0aGlzLmlkfV9zb3J0QnlgKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykgdGhpcy5zb3J0QnkgPSByZXM7XG4gICAgfSk7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXQoYCR7dGhpcy5pZH1faXNBc2NgKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykgdGhpcy5pc0FzYyA9IHJlcztcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuXG4gIHByb3RlY3RlZCBlbWl0SXNBc2MoaXNBc2M6IGFueSkge1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0KGAke3RoaXMuaWR9X2lzQXNjYCwgaXNBc2MpO1xuICAgIHRoaXMuaXNBc2NDaGFuZ2UuZW1pdChpc0FzYyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdFNvcnRCeShzb3J0Qnk6IGFueSkge1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0KGAke3RoaXMuaWR9X3NvcnRCeWAsIHNvcnRCeSk7XG4gICAgdGhpcy5zb3J0QnlDaGFuZ2UuZW1pdChzb3J0QnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRQYWdlU2l6ZShwYWdlU2l6ZTogYW55KSB7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdChwYWdlU2l6ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdEN1cnJlbnRQYWdlKGN1cnJlbnRQYWdlOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gY3VycmVudFBhZ2U7XG4gICAgdGhpcy5jdXJyZW50UGFnZUNoYW5nZS5lbWl0KGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQcm9wZXJ0eSA9IChlbnRyeTogYW55LCBwcm9wZXJ0aWVzPzogYW55W10pID0+IHtcbiAgICB0aGlzLmN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7XG4gICAgdGhpcy5jdXJyZW50VGV4dCA9IG51bGw7XG5cbiAgICBpZiAoIXByb3BlcnRpZXMpIHtcbiAgICAgIHRoaXMuY3VycmVudFByb3BlcnR5ID0gZW50cnk7XG4gICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICAgIGxldCB2YWx1ZSA9IGVudHJ5O1xuICAgIGZvciAoY29uc3QgaSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICB2YWx1ZSA9ICh2YWx1ZSBhcyBhbnkpPy5baV07XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFByb3BlcnR5ID0gdmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRUZXh0ID0gKHByb3BlcnR5OiBhbnksIGNvbHVtbjogSUNvbHVtbikgPT4ge1xuICAgIGxldCB0ZXh0ID0gbnVsbDtcblxuICAgIGlmIChjb2x1bW4uY2FsbGJhY2spIHRleHQgPSBjb2x1bW4uY2FsbGJhY2socHJvcGVydHkpO1xuXG4gICAgaWYgKHRleHQgPT0gbnVsbCAmJiBjb2x1bW4uZGF0ZSlcbiAgICAgIHRleHQgPSB0aGlzLl9kYXRlLnRyYW5zZm9ybShwcm9wZXJ0eSwgY29sdW1uLmRhdGUpO1xuXG4gICAgdGhpcy5jdXJyZW50VGV4dCA9IHRleHQgfHwgcHJvcGVydHk7XG5cbiAgICByZXR1cm4gdGV4dCB8fCBwcm9wZXJ0eTtcbiAgICAvLyBjb2x1bW4uZGF0ZVxuICAgIC8vICAgPyBjb2x1bW4uY2FsbGJhY2tcbiAgICAvLyBcdD8gY29sdW1uLmNhbGxiYWNrKHByb3BlcnR5KVxuICAgIC8vIFx0OiAocHJvcGVydHkgfCBkYXRlIDogY29sdW1uLmRhdGUpXG4gICAgLy8gICA6IGNvbHVtbi5jYWxsYmFja1xuICAgIC8vIFx0PyBjb2x1bW4uY2FsbGJhY2socHJvcGVydHkpXG4gICAgLy8gXHQ6IHByb3BlcnR5XG4gIH07XG5cbiAgcHJvdGVjdGVkIHNlbGVjdCA9IChlbnRyeTogYW55LCBldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IHBvaW50ZXIgPSA8UG9pbnRlckV2ZW50PmV2ZW50O1xuICAgIGNvbnN0IHRhcmdldCA9IDxIVE1MSW5wdXRFbGVtZW50PnBvaW50ZXIudGFyZ2V0O1xuICAgIGlmICh0YXJnZXQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24ucHVzaChlbnRyeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uZmlsdGVyKCh4KSA9PiB4ICE9PSBlbnRyeSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gIH07XG5cbiAgcHVibGljIGdldFNlbGVjdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb247XG4gIH07XG5cbiAgcHVibGljIHNldFNlbGVjdGlvbiA9IChkYXRhOiBhbnlbXSkgPT4ge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gZGF0YTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgY29udGFpbnMgPSAoZW50cnk6IGFueSkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5pbmNsdWRlcyhlbnRyeSk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldElzQXNjID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlzQXNjO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRTb3J0QnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydEJ5O1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRUZXh0Q29sb3IgPSAoY29sb3I6IENvbG9yID0gJ25vbmUnKSA9PiB7XG4gICAgcmV0dXJuIFRleHRDb2xvcnNbY29sb3JdIHx8IFRleHRDb2xvcnNbJ2JsYWNrJ107XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldEJhY2tncm91bmRDb2xvciA9IChjb2xvcjogQ29sb3IgPSAnbm9uZScpID0+IHtcbiAgICByZXR1cm4gQmFja2dyb3VuZENvbG9yc1tjb2xvcl0gfHwgQmFja2dyb3VuZENvbG9yc1snYWNjZW50J107XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldEJvcmRlckNvbG9yID0gKGNvbG9yOiBDb2xvciA9ICdub25lJykgPT4ge1xuICAgIHJldHVybiBCb3JkZXJDb2xvcnNbY29sb3JdIHx8IEJvcmRlckNvbG9yc1snYWNjZW50J107XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldEFsaWdubWVudCA9IChhbGlnbm1lbnQ6IEFsaWdubWVudCA9ICdjZW50ZXInKSA9PiB7XG4gICAgcmV0dXJuIEFsaWdtZW50c1thbGlnbm1lbnRdIHx8IEFsaWdtZW50c1snbGVmdCddO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImgtZnVsbCBuby1zY3JvbGxiYXJcIj5cbiAgPG5nLWNvbnRlbnQgY2xhc3M9XCJtdC01XCI+PC9uZy1jb250ZW50PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LTEgb3ZlcmZsb3ctYXV0byBuby1zY3JvbGxiYXJcIj5cbiAgICBAaWYgKGRhdGEpIHtcbiAgICA8IS0tIG1heC13LVs3NSVdIC0tPlxuICAgIDx0YWJsZVxuICAgICAgY2xhc3M9XCJ0YWJsZS1hdXRvIG1heC13LWZ1bGwgYm9yZGVyIGRhcms6Ym9yZGVyLW5vbmUgcmVsYXRpdmUgZmxleCBmbGV4LXJvdyBmbGV4LW5vLXdyYXAgdy1mdWxsIHJvdW5kZWQtbGcgc206c2hhZG93LWxnIGJnLXRyYW5zcGFyZW50IG5vLXNjcm9sbGJhclwiPlxuICAgICAgPHRoZWFkIGNsYXNzPVwidGV4dC1ibGFja1wiPlxuICAgICAgICBAaWYgKGRhdGEubGVuZ3RoIDw9IDApIHsgPHRyIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LW5vIHdyYXAgc206dGFibGUtcm93IHJvdW5kZWQtbGcgbWItMiBzbTptYi0wXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJbZ2V0QmFja2dyb3VuZENvbG9yKGNvbG9yKSwgZ2V0VGV4dENvbG9yKHRleHRDb2xvcildXCI+XG4gICAgICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIGNvbHVtbikge1xuICAgICAgICAgIDx0aCBhcHAtY2hyLXRhYmxlLWhlYWRlci1jZWxsIGNsYXNzPVwicC0zIGgtMTRcIiBkaXNwbGF5PVwie3sgY29sdW1uLmRpc3BsYXkgfX1cIiBjb2x1bW49XCJ7eyBjb2x1bW4ucHJvcGVydGllcyB9fVwiXG4gICAgICAgICAgICBbKGlzQXNjKV09XCJpc0FzY1wiIChpc0FzY0NoYW5nZSk9XCJlbWl0SXNBc2MoJGV2ZW50KVwiIFsoc29ydEJ5KV09XCJzb3J0QnlcIiAoc29ydEJ5Q2hhbmdlKT1cImVtaXRTb3J0QnkoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoYWN0aW9ucykge1xuICAgICAgICAgIDx0aFxuICAgICAgICAgICAgY2xhc3M9XCJoLTE0IHAtMyB0ZXh0LWxlZnQgc206dGV4dC1jZW50ZXIgcGxhY2UtY29udGVudC1jZW50ZXIgcGxhY2UtaXRlbXMtY2VudGVyIGl0ZW1zLWNlbnRlciBhbGlnbi1taWRkbGUgc206dy0wXCI+XG4gICAgICAgICAgICBBY3Rpb25zXG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGZvciAoZW50cnkgb2YgZGF0YSB8XG4gICAgICAgICAgc29ydDppc0FzYzpzb3J0QnkgfCBwYWdpbmF0ZToge2l0ZW1zUGVyUGFnZTogcGFnZVNpemUsIGN1cnJlbnRQYWdlOiBjdXJyZW50UGFnZSwgaWQ6IHRoaXMuaWR9OyB0cmFjayBlbnRyeSlcbiAgICAgICAgICB7XG4gICAgICAgICAgPHRyIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LW5vIHdyYXAgc206dGFibGUtcm93IHJvdW5kZWQtbGcgbWItMiBzbTptYi0wIFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbZ2V0QmFja2dyb3VuZENvbG9yKGNvbG9yKSwgZ2V0VGV4dENvbG9yKHRleHRDb2xvcildXCI+XG4gICAgICAgICAgICA8dGggKm5nSWY9XCJzZWxlY3RhYmxlXCIgY2xhc3M9XCJwLTMgaC0xNFwiPjwvdGg+XG4gICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgY29sdW1uKSB7XG4gICAgICAgICAgICA8dGggYXBwLWNoci10YWJsZS1oZWFkZXItY2VsbCBjbGFzcz1cInAtMyBoLTE0XCIgZGlzcGxheT1cInt7IGNvbHVtbi5kaXNwbGF5IH19XCJcbiAgICAgICAgICAgICAgY29sdW1uPVwie3sgY29sdW1uLnByb3BlcnRpZXMgfX1cIiBbKGlzQXNjKV09XCJpc0FzY1wiIGFsaWdubWVudD1cInt7Y29sdW1uLmFsaWdubWVudH19XCJcbiAgICAgICAgICAgICAgKGlzQXNjQ2hhbmdlKT1cImVtaXRJc0FzYygkZXZlbnQpXCIgWyhzb3J0QnkpXT1cInNvcnRCeVwiIChzb3J0QnlDaGFuZ2UpPVwiZW1pdFNvcnRCeSgkZXZlbnQpXCI+PC90aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoYWN0aW9ucykge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIGNsYXNzPVwiaC0xNCBwLTMgdGV4dC1sZWZ0IHNtOnRleHQtY2VudGVyIHBsYWNlLWNvbnRlbnQtY2VudGVyIHBsYWNlLWl0ZW1zLWNlbnRlciBpdGVtcy1jZW50ZXIgYWxpZ24tbWlkZGxlIHNlbGYtY2VudGVyIHNtOnctMFwiPlxuICAgICAgICAgICAgICBBY3Rpb25zXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keSBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICBAaWYgKGRhdGEubGVuZ3RoIDw9IDApIHsgPHRyXG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtbm8td3JhcCBzbTp0YWJsZS1yb3cgcm91bmRlZC1sZyBtYi0wIHNtOm1iLTIgZGFyazpiZy1zbGF0ZS02MDBcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJwLTMgaC0xNFwiPlBhcyBkZSBkb25uw6llKHMpPC90ZD5cbiAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1ucyB8IHNsaWNlOiAxOyB0cmFjayBjb2x1bW4pIHtcbiAgICAgICAgICA8dGQgY2xhc3M9XCJwLTMgaC0xNFwiPjwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoYWN0aW9ucykge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cInAtMyBoLTE0IGdyaWQgZ2FwLTMganVzdGlmeS1jZW50ZXIgYWxpZ24tbWlkZGxlIGl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJhY3Rpb25zLmxlbmd0aCA+IDEgPyAnZ3JpZC1jb2xzLTInIDogJ2dyaWQtY29scy0xJ1wiPjwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIGRhdGEgfFxuICAgICAgICAgIHNvcnQ6aXNBc2M6c29ydEJ5IHwgcGFnaW5hdGU6IHtpdGVtc1BlclBhZ2U6IHBhZ2VTaXplLCBjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsIGlkOiB0aGlzLmlkfTsgdHJhY2tcbiAgICAgICAgICBlbnRyeTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICA8dHIgW2F0dHIuZGF0YS1pbmRleF09XCJpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LW5vLXdyYXAgc206dGFibGUtcm93IG1iLTIgc206bWItMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpiZy1zbGF0ZS02MDAgc206b2RkOmJnLWdyYXktMjAwIHNtOmRhcms6b2RkOmJnLXNsYXRlLTcwMCBzbTpib3JkZXItdC0yIHNtOmZpcnN0OmJvcmRlci0wXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltnZXRCb3JkZXJDb2xvcihjb2xvcildXCI+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLTMgaC0xNCB0ZXh0LWVsbGlwc2lzIG1heC13LWZ1bGwgYm9yZGVyLXQtMiBmaXJzdDpib3JkZXItMCBzbTpmaXJzdDpib3JkZXItdC0yXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Qm9yZGVyQ29sb3IoY29sb3IpXCI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIChjbGljayk9XCJzZWxlY3QoZW50cnksICRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRhaW5zKGVudHJ5KVwiIC8+PC90ZD5cbiAgICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW47KSB7XG4gICAgICAgICAgICA8dGQgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgY29sdW1uLmNoaXBzXG4gICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgIFwiIGNsYXNzPVwicC0zIGgtMTQgdGV4dC1lbGxpcHNpcyBtYXgtdy1mdWxsIGJvcmRlci10LTIgZmlyc3Q6Ym9yZGVyLTAgc206Zmlyc3Q6Ym9yZGVyLXQtMlwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldEJvcmRlckNvbG9yKGNvbG9yKVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cHJvcDogZ2V0UHJvcGVydHkoZW50cnksIGNvbHVtbi5wcm9wZXJ0aWVzKSwgY29sdW1uOiBjb2x1bW59XCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0IGxldC1jb2x1bW49J2NvbHVtbicgbGV0LXByb3BlcnR5PVwicHJvcFwiPlxuICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5pc0xpbmspIHtcbiAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJ0ZXh0LXt7Y29sdW1uLmFsaWdubWVudH19XCIgaHJlZj1cInt7Y29sdW1uLmxpbmtTdGF0aWNVcmx9fXt7XG4gICAgICAgICAgICAgIGdldFRleHQocHJvcGVydHksIGNvbHVtbilcbiAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUZXh0XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoIWNvbHVtbi5pc0xpbmspIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2p1c3RpZnktc3RhcnQnOiBjb2x1bW4uYWxpZ25tZW50ID09ICdsZWZ0JyxcbiAgICAgICAgICAgICAgICAnanVzdGlmeS1jZW50ZXInOiBjb2x1bW4uYWxpZ25tZW50ID09ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWVuZCc6IGNvbHVtbi5hbGlnbm1lbnQgPT0gJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICAnZ2FwLTInOiBjb2x1bW4uY2hpcHNEaXNwbGF5ICYmIGdldFRleHQocHJvcGVydHksIGNvbHVtbilcbiAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uLmNoaXBzICYmIGNvbHVtbi5jaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIEBmb3IoY2hpcCBvZiBjb2x1bW4uY2hpcHM7IHRyYWNrIGNoaXA7IGxldCBpID0gJGluZGV4KXtcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5jYWxsYmFjayhlbnRyeSkgPT09IHRydWUgfHwgY2hpcC5jYWxsYmFjayhlbnRyeSkgPT09IGNoaXAubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0yNCBmbGV4IHRleHQtY2VudGVyIGNvbnRlbnQtY2VudGVyIGFsaWduLW1pZGRsZSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC14cyBmb250LW1lZGl1bSBweS0wLjUgcm91bmRlZC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2dldEJhY2tncm91bmRDb2xvcihjaGlwLmJhY2tncm91bmRDb2xvciksIGdldFRleHRDb2xvcihjaGlwLnRleHRDb2xvcildXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNoaXAuZGlzcGxheSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgb3ZlcmZsb3ctaGlkZGVuIHRleHQtbm93cmFwIHRleHQtZWxsaXBzaXMgbWF4LXctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRUZXh0IHx8IGdldFRleHQocHJvcGVydHksIGNvbHVtbilcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIEBpZiAoYWN0aW9ucykge1xuICAgICAgICAgICAgPHRkIGNsYXNzPVwicC0zIGgtMTQgZmxleCBnYXAtMiB3LWZ1bGwgc206dy1taW4ganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnM7IHRyYWNrIGFjdGlvbikge1xuICAgICAgICAgICAgICA8YXBwLWNoci1idXR0b24gY2xhc3M9XCJ3LWZ1bGxcIiBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICAgICBhY3Rpb24uZGlzYWJsZWRDYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICA/IGFjdGlvbi5kaXNhYmxlZENhbGxiYWNrKGVudHJ5KVxuICAgICAgICAgICAgICAgICAgICA6IGFjdGlvbi5kaXNhYmxlZCB8fCBmYWxzZVxuICAgICAgICAgICAgICAgIFwiIFtkaXNwbGF5XT1cImFjdGlvbi5kaXNwbGF5XCIgW2ljb25dPVwiYWN0aW9uLmljb25cIiBbY2xpY2tdPVwiYWN0aW9uLmNhbGxiYWNrLmJpbmQobnVsbCwgZW50cnksIGkpXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCIgdHlwZT1cInJlc3BvbnNpdmVcIj5cbiAgICAgICAgICAgICAgPC9hcHAtY2hyLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChyIG9mIGNvbXB1dGVkUm93czsgdHJhY2sgcikge1xuICAgICAgICAgIDx0clxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtbm8td3JhcCBzbTp0YWJsZS1yb3cgbWItMiBzbTptYi0wIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmJnLXNsYXRlLTYwMCBzbTpvZGQ6YmctZ3JheS0yMDAgc206ZGFyazpvZGQ6Ymctc2xhdGUtNzAwXCI+XG4gICAgICAgICAgICBAZm9yIChjIG9mIHIuY29sdW1uczsgdHJhY2sgYykge1xuICAgICAgICAgICAgPHRkIFtuZ0NsYXNzXT1cImMuYWxpZ25tZW50ICYmICd0ZXh0LScrKGMuYWxpZ25tZW50fHwnbGVmdCcpXCIgY2xhc3M9XCJwLTMgaC0xNFwiPlxuICAgICAgICAgICAgICB7e2MubGFiZWwgJiYgYy5sYWJlbCArICc6J319IHt7Yy52YWx1ZSB8fCAoYy5jYWxsYmFjayAmJiBjLmNhbGxiYWNrKGRhdGEpKX19IHt7Yy5hZnRlcn19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICAgIDxhcHAtY2hyLXBhZ2luYXRvciBbaWRdPVwidGhpcy5pZFwiIFsocGFnZVNpemUpXT1cInBhZ2VTaXplXCIgWyhwYWdlKV09XCJjdXJyZW50UGFnZVwiXG4gICAgICAocGFnZVNpemVDaGFuZ2UpPVwiZW1pdFBhZ2VTaXplKCRldmVudClcIiAocGFnZUNoYW5nZSk9XCJlbWl0Q3VycmVudFBhZ2UoJGV2ZW50KVwiPjwvYXBwLWNoci1wYWdpbmF0b3I+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -1846,16 +1846,16 @@ class ChrTableComponent {
|
|
|
1846
1846
|
return this.sortBy;
|
|
1847
1847
|
};
|
|
1848
1848
|
this.getTextColor = (color = 'none') => {
|
|
1849
|
-
return TextColors[color];
|
|
1849
|
+
return TextColors[color] || TextColors['black'];
|
|
1850
1850
|
};
|
|
1851
1851
|
this.getBackgroundColor = (color = 'none') => {
|
|
1852
|
-
return BackgroundColors[color];
|
|
1852
|
+
return BackgroundColors[color] || BackgroundColors['accent'];
|
|
1853
1853
|
};
|
|
1854
1854
|
this.getBorderColor = (color = 'none') => {
|
|
1855
|
-
return BorderColors[color];
|
|
1855
|
+
return BorderColors[color] || BorderColors['accent'];
|
|
1856
1856
|
};
|
|
1857
1857
|
this.getAlignment = (alignment = 'center') => {
|
|
1858
|
-
return Aligments[alignment];
|
|
1858
|
+
return Aligments[alignment] || Aligments['left'];
|
|
1859
1859
|
};
|
|
1860
1860
|
}
|
|
1861
1861
|
ngOnInit() {
|