@c8y/ngx-components 1021.56.4 → 1021.56.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts +2 -0
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts.map +1 -1
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts +0 -1
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts.map +1 -1
- package/core/dashboard/widgets-dashboard-event.service.d.ts +0 -6
- package/core/dashboard/widgets-dashboard-event.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +5 -3
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
- package/esm2022/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.mjs +7 -3
- package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.mjs +2 -10
- package/esm2022/core/dashboard/widgets-dashboard-event.service.mjs +2 -10
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +16 -19
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.mjs +3 -8
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -7
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +19 -33
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -1
|
@@ -78,6 +78,7 @@ export class DatapointsTableViewWidgetComponent {
|
|
|
78
78
|
}
|
|
79
79
|
if (this.config.widgetInstanceGlobalAutoRefreshContext) {
|
|
80
80
|
this.handleGlobalRefreshLoading();
|
|
81
|
+
this.handleGlobalTimeContextSettings();
|
|
81
82
|
}
|
|
82
83
|
this.setScrollingSubscription();
|
|
83
84
|
const isLegacyWidgetRealtimeActive = this.config.realtime &&
|
|
@@ -143,12 +144,6 @@ export class DatapointsTableViewWidgetComponent {
|
|
|
143
144
|
handleGlobalTimeContextSettings() {
|
|
144
145
|
this.config.dateFrom = this.dataFetchingService.adjustDate(this.config.date[0], 0, false);
|
|
145
146
|
this.config.dateTo = this.dataFetchingService.adjustDate(this.config.date[1], 0, false);
|
|
146
|
-
if (this.config.realtime) {
|
|
147
|
-
this.setDefaultRefreshRelatedProperties();
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this.config.isAutoRefreshEnabled = false;
|
|
151
|
-
}
|
|
152
147
|
}
|
|
153
148
|
/**
|
|
154
149
|
* Sets up the scrolling subscription.
|
|
@@ -257,7 +252,7 @@ export class DatapointsTableViewWidgetComponent {
|
|
|
257
252
|
const isTimeoutError = error?.name === 'TimeoutError';
|
|
258
253
|
const errorMessage = isTimeoutError
|
|
259
254
|
? this.TIMEOUT_ERROR_TEXT
|
|
260
|
-
: error?.message ?? this.SERVER_ERROR_TEXT;
|
|
255
|
+
: (error?.message ?? this.SERVER_ERROR_TEXT);
|
|
261
256
|
this.alerts.setAlertGroupDismissStrategy('warning', DismissAlertStrategy.TEMPORARY_OR_PERMANENT);
|
|
262
257
|
this.alerts.addAlerts(new DynamicComponentAlert({
|
|
263
258
|
type: 'warning',
|
|
@@ -325,4 +320,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
325
320
|
}], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.DataFetchingService }, { type: i3.DatapointsTableService }, { type: i4.DatapointsTableViewService }, { type: i5.FormBuilder }, { type: i6.TranslateService }, { type: i1.WidgetGlobalAutoRefreshService }], propDecorators: { config: [{
|
|
326
321
|
type: Input
|
|
327
322
|
}] } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50cy10YWJsZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL2RhdGFwb2ludHMtdGFibGUvZGF0YXBvaW50cy10YWJsZS12aWV3L2RhdGFwb2ludHMtdGFibGUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9kYXRhcG9pbnRzLXRhYmxlL2RhdGFwb2ludHMtdGFibGUtdmlldy9kYXRhcG9pbnRzLXRhYmxlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLG9CQUFvQixFQUNwQixxQkFBcUIsRUFFckIsOEJBQThCLEVBQzlCLE9BQU8sRUFDUCx3QkFBd0IsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUlqQyxrQkFBa0IsRUFDbkIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUNMLGtDQUFrQyxFQU1uQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZC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Q3hCLG1CQUFtQjs7NEZBR1Ysa0NBQWtDO2tCQWQ5QyxTQUFTOytCQUNFLDJCQUEyQixRQUUvQixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUNBQWlDO3dCQUNqQyx5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixtQkFBbUI7cUJBQ3BCO3VTQU1RLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElTZXJpZXMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIENvbW1vbk1vZHVsZSxcbiAgRGlzbWlzc0FsZXJ0U3RyYXRlZ3ksXG4gIER5bmFtaWNDb21wb25lbnRBbGVydCxcbiAgRHluYW1pY0NvbXBvbmVudEFsZXJ0QWdncmVnYXRvcixcbiAgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBnbG9iYWxBdXRvUmVmcmVzaExvYWRpbmdcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBLUElEZXRhaWxzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kYXRhcG9pbnQtc2VsZWN0b3InO1xuaW1wb3J0IHtcbiAgRGF0YUZldGNoaW5nU2VydmljZSxcbiAgRGF0YXBvaW50c0V4cG9ydFNlbGVjdG9yQ29tcG9uZW50LFxuICBEYXRhcG9pbnRzVmFsdWVzRGF0YU1hcCxcbiAgRXhwb3J0Q29uZmlnLFxuICBTb3VyY2VJZCxcbiAgZGF0ZVJhbmdlVmFsaWRhdG9yXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3InO1xuaW1wb3J0IHsgSU5URVJWQUxfVkFMVUVTIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pbnRlcnZhbC1waWNrZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBERUZBVUxUX0RQVF9SRUZSRVNIX0lOVEVSVkFMX1ZBTFVFLFxuICBEYXRhcG9pbnRUYWJsZUl0ZW0sXG4gIERhdGFwb2ludFdpdGhWYWx1ZXMsXG4gIERhdGFwb2ludHNUYWJsZUNvbmZpZyxcbiAgR3JvdXBlZERhdGFwb2ludFRhYmxlSXRlbSxcbiAgVGFibGVDb2x1bW5IZWFkZXJcbn0gZnJvbSAnLi4vZGF0YXBvaW50cy10YWJsZS13aWRnZXQubW9kZWwnO1xuaW1wb3J0IHsgRGF0YXBvaW50c1RhYmxlU2VydmljZSB9IGZyb20gJy4uL2RhdGFwb2ludHMtdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXBvaW50c1JlbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZGF0YXBvaW50cy1yZWxvYWQvZGF0YXBvaW50cy1yZWxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhcG9pbnRzLXRhYmxlLXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhcG9pbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGFwb2ludHMtdGFibGUvZGF0YXBvaW50cy10YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGF0YXBvaW50cy10YWJsZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludHMtdGFibGUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdkLWNvbCBmaXQtaCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYXRhcG9pbnRzRXhwb3J0U2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGF0YXBvaW50c1JlbG9hZENvbXBvbmVudCxcbiAgICBEYXRhcG9pbnRzVGFibGVDb21wb25lbnQsXG4gICAgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRzVGFibGVWaWV3V2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogIERhdGEgcG9pbnRzIHRhYmxlIHdpZGdldCBjb25maWcuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc6IERhdGFwb2ludHNUYWJsZUNvbmZpZztcblxuICBhbGVydHM6IER5bmFtaWNDb21wb25lbnRBbGVydEFnZ3JlZ2F0b3I7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIGRhdGEgcG9pbnRzIHdoZXJlIF9fYWN0aXZlIHByb3BlcnR5IGlzIHNldCB0byB0cnVlLlxuICAgKi9cbiAgYWN0aXZlRGF0YXBvaW50czogS1BJRGV0YWlsc1tdID0gW107XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBjdXN0b20gQ1NTIHN0eWxlIGZvciB0aGUgZXhwb3J0IHNlbGVjdG9yIGNvbXBvbmVudC5cbiAgICovXG4gIGNvbnRhaW5lckNsYXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBvYmplY3RzIHJlcHJlc2VudGluZyBkYXRhcG9pbnRzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAqIFVzZWQgdG8gcG9wdWxhdGUgdGhlIENTVi9FeGNlbCBmaWxlIHdpdGggZGF0YS5cbiAgICovXG4gIGRhdGFwb2ludHNXaXRoVmFsdWVzOiBEYXRhcG9pbnRXaXRoVmFsdWVzW107XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBgR3JvdXBlZERhdGFwb2ludFRhYmxlSXRlbWAgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIGRhdGFwb2ludHMgdGFibGUgaXRlbXMuXG4gICAqIFVzZWQgdG8gcG9wdWxhdGUgdGhlIHRhYmxlIHdpdGggZGF0YS5cbiAgICovXG4gIGRhdGFwb2ludHNUYWJsZUl0ZW1zOiBHcm91cGVkRGF0YXBvaW50VGFibGVJdGVtW10gPSBbXTtcblxuICBkZXZpY2VzQ29sdW1uSGVhZGVyczogVGFibGVDb2x1bW5IZWFkZXJbXTtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdXNlZCBieSBhIGM4eS1kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci5cbiAgICovXG4gIGV4cG9ydENvbmZpZzogRXhwb3J0Q29uZmlnO1xuXG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxEYXRhcG9pbnRzVGFibGVWaWV3V2lkZ2V0Q29tcG9uZW50WydjcmVhdGVGb3JtJ10+O1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBkYXRhIHBvaW50LlxuICAgKiBJZiBpcyB0cnVlLCB0aGVuIGEgY29sdW1uICdEZXZpY2UnIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0YWJsZS5cbiAgICovXG4gIGhhc011bHRpcGxlRGF0YXBvaW50czogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHJlZnJlc2hpbmcgc2hvdWxkIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gICAqIEl0J3MgJ3RydWUnIHdoZW4gdXNlciBpcyBub3QgYWxsb3dlZCB0byB2aWV3IGEgbWVhc3VyZW1lbnRzLlxuICAgKi9cbiAgaXNSZWZyZXNoRGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgaXMgaW4gdGhlIGluaXRpYWwgcmVxdWVzdCBzdGF0ZVxuICAgKiB3aGVyZSBkYXRhIGZvciBhIHRhYmxlIHN0cnVjdHVyZSBpcyBiZWluZyBwcmVwYXJlZC5cbiAgICovXG4gIGlzSW5pdGlhbFJlcXVlc3QgPSB0cnVlO1xuICAvKipcbiAgICogQ3VycmVudCBpc0xvYWRpbmcgc3RhdGUuIEluZGljYXRlcyB3aGV0aGVyIHRoZSBkYXRhIGlzIGJlaW5nIGxvYWRlZC5cbiAgICovXG4gIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIGlzRXhwb3J0TW9kYWxPcGVuID0gZmFsc2U7XG5cbiAgaXNTY3JvbGxpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHNlcmllc1dpdGhvdXRQZXJtaXNzaW9uVG9SZWFkOiB7IGtleTogU291cmNlSWQ7IHZhbHVlOiBzdHJpbmdbXSB9W107XG5cbiAgcHJpdmF0ZSBUSU1FT1VUX0VSUk9SX1RFWFQgPSBnZXR0ZXh0KFxuICAgICdUaGUgcmVxdWVzdCBpcyB0YWtpbmcgbG9uZ2VyIHRoYW4gdXN1YWwuIFdlIGFwb2xvZ2l6ZSBmb3IgdGhlIGluY29udmVuaWVuY2UuJ1xuICApO1xuICBwcml2YXRlIFNFUlZFUl9FUlJPUl9URVhUID0gZ2V0dGV4dCgnU2VydmVyIGVycm9yIG9jY3VycmVkLicpO1xuXG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHNjcm9sbGluZ1N1YmplY3QkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBpc0ZhaWxlZFRvRmV0Y2hTZXJpZXNEYXRhOiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBhbGVydCBoYXMgYWxyZWFkeSBiZWVuIGRpc3BsYXllZCBhbmQgY2FuIGJlIGRpc21pc3NlZC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgb25seSBkaXNwbGF5ZWQgd2hlbiBhIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIHByaXZhdGUgaXNNaXNzaW5nQW55UGVybWlzc2lvbkFsZXJ0U2hvd24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YUZldGNoaW5nU2VydmljZTogRGF0YUZldGNoaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFwb2ludHNUYWJsZUNvbmZpZ1NlcnZpY2U6IERhdGFwb2ludHNUYWJsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZTogRGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2g6IFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY29uZmlnLndpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gJ2EtaS1jZW50ZXIgaW5wdXQtZ3JvdXAgcC10LTQgcC1iLTQgbWF4LXdpZHRoLWZpdCBtLWwtYXV0byc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGVnYWN5IHdpZGdldCB1c2VkIHJlYWx0aW1lIHNvIGl0IG11c3QgYmUgY29udmVydGVkIHRvIHJlZnJlc2ggYXBwcm9hY2hcbiAgICAgKiBpZiBpdCB3YXMgZW5hYmxlZCBiZWZvcmUgbWlncmF0aW9uLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dCA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0ID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbmZpZy5kaXNwbGF5U2V0dGluZ3MuZ2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQpIHtcbiAgICAgIHRoaXMuaGFuZGxlR2xvYmFsUmVmcmVzaExvYWRpbmcoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNjcm9sbGluZ1N1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3QgaXNMZWdhY3lXaWRnZXRSZWFsdGltZUFjdGl2ZSA9XG4gICAgICB0aGlzLmNvbmZpZy5yZWFsdGltZSAmJlxuICAgICAgIXRoaXMuY29uZmlnLmhhc093blByb3BlcnR5KCdkZWNpbWFsUGxhY2VzJykgJiZcbiAgICAgICF0aGlzLmNvbmZpZy5oYXNPd25Qcm9wZXJ0eSgncmVmcmVzaEludGVydmFsJykgJiZcbiAgICAgICF0aGlzLmNvbmZpZy5oYXNPd25Qcm9wZXJ0eSgnaXNBdXRvUmVmcmVzaEVuYWJsZWQnKTtcblxuICAgIGlmIChpc0xlZ2FjeVdpZGdldFJlYWx0aW1lQWN0aXZlKSB7XG4gICAgICB0aGlzLnNldERlZmF1bHRSZWZyZXNoUmVsYXRlZFByb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuaW50ZXJ2YWwgIT09IElOVEVSVkFMX1ZBTFVFUy5jdXN0b20pIHtcbiAgICAgIHRoaXMucmVjYWxjdWxhdGVJbnRlcnZhbFRvTWF0Y2hGcm9tTm93RGF0ZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5kaXNwbGF5RGF0ZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5wcmVwYXJlRGF0ZVJhbmdlRm9ybSgpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucHJlcGFyZVRhYmxlRGF0YSgpO1xuXG4gICAgdGhpcy5leHBvcnRDb25maWcgPSB7XG4gICAgICBhZ2dyZWdhdGlvbjogdGhpcy5jb25maWcuYWdncmVnYXRpb24sXG4gICAgICBkYXRlRnJvbTogdGhpcy5jb25maWcuZGF0ZUZyb20sXG4gICAgICBkYXRlVG86IHRoaXMuY29uZmlnLmRhdGVUbyxcbiAgICAgIGRhdGFwb2ludERldGFpbHM6IHRoaXMuYWN0aXZlRGF0YXBvaW50cy5tYXAoKHsgX190YXJnZXQsIGZyYWdtZW50LCBzZXJpZXMgfSkgPT4gKHtcbiAgICAgICAgZGV2aWNlTmFtZTogX190YXJnZXQubmFtZSxcbiAgICAgICAgc291cmNlOiBfX3RhcmdldC5pZCxcbiAgICAgICAgdmFsdWVGcmFnbWVudFNlcmllczogc2VyaWVzLFxuICAgICAgICB2YWx1ZUZyYWdtZW50VHlwZTogZnJhZ21lbnRcbiAgICAgIH0pKVxuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGRhdGE6IHsgZGF0ZUZyb20/OiBzdHJpbmcgfCBudWxsOyBkYXRlVG8/OiBzdHJpbmcgfCBudWxsIH0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkYXRhLmRhdGVGcm9tKSB7XG4gICAgICB0aGlzLmNvbmZpZy5kYXRlRnJvbSA9IGRhdGEuZGF0ZUZyb207XG4gICAgfVxuICAgIGlmIChkYXRhLmRhdGVUbykge1xuICAgICAgdGhpcy5jb25maWcuZGF0ZVRvID0gZGF0YS5kYXRlVG87XG4gICAgfVxuICAgIHRoaXMucHJlcGFyZVRhYmxlRGF0YSgpO1xuXG4gICAgdGhpcy51cGRhdGVFeHBvcnRDb25maWdEYXRlUmFuZ2UoKTtcbiAgfVxuXG4gIG9uRXhwb3J0TW9kYWxPcGVuKGlzT3BlbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0V4cG9ydE1vZGFsT3BlbiA9IGlzT3BlbmVkO1xuICB9XG5cbiAgb25TY3JvbGxpbmcodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbGluZ1N1YmplY3QkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgYXN5bmMgb25Db3VudGRvd25FbmRlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkYXRlUmFuZ2UgPSB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLnByZXBhcmVUaW1lUmFuZ2UoXG4gICAgICB0aGlzLmNvbmZpZy5pbnRlcnZhbCxcbiAgICAgIHRoaXMuY29uZmlnLmRhdGVGcm9tLFxuICAgICAgdGhpcy5jb25maWcuZGF0ZVRvXG4gICAgKTtcblxuICAgIHRoaXMuY29uZmlnLmRhdGVGcm9tID0gZGF0ZVJhbmdlLmRhdGVGcm9tO1xuICAgIHRoaXMuY29uZmlnLmRhdGVUbyA9IGRhdGVSYW5nZS5kYXRlVG87XG5cbiAgICB0aGlzLnVwZGF0ZUV4cG9ydENvbmZpZ0RhdGVSYW5nZSgpO1xuICAgIGF3YWl0IHRoaXMucHJlcGFyZVRhYmxlRGF0YShmYWxzZSk7XG5cbiAgICB0aGlzLm9uU2Nyb2xsaW5nKGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlR2xvYmFsVGltZUNvbnRleHRTZXR0aW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZy5kYXRlRnJvbSA9IHRoaXMuZGF0YUZldGNoaW5nU2VydmljZS5hZGp1c3REYXRlKHRoaXMuY29uZmlnLmRhdGVbMF0sIDAsIGZhbHNlKTtcbiAgICB0aGlzLmNvbmZpZy5kYXRlVG8gPSB0aGlzLmRhdGFGZXRjaGluZ1NlcnZpY2UuYWRqdXN0RGF0ZSh0aGlzLmNvbmZpZy5kYXRlWzFdLCAwLCBmYWxzZSk7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlYWx0aW1lKSB7XG4gICAgICB0aGlzLnNldERlZmF1bHRSZWZyZXNoUmVsYXRlZFByb3BlcnRpZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCB0aGUgc2Nyb2xsaW5nIHN1YnNjcmlwdGlvbi5cbiAgICpcbiAgICogRW5zdXJlcyBzaW1pbGFyIFVYIGFzIGluIHRoZSBhbGFybXMgY291bnRkb3duLXBhdXNlIGxvZ2ljLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRTY3JvbGxpbmdTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnNjcm9sbGluZ1N1YmplY3QkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzAwKSlcbiAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5pc1Njcm9sbGluZy5zZXQodmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdFJlZnJlc2hSZWxhdGVkUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5jb25maWcucmVmcmVzaEludGVydmFsID0gREVGQVVMVF9EUFRfUkVGUkVTSF9JTlRFUlZBTF9WQUxVRTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjYWxjdWxhdGVJbnRlcnZhbFRvTWF0Y2hGcm9tTm93RGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGRhdGVGcm9tLCBkYXRlVG8gfSA9IHRoaXMuZGF0YXBvaW50c1RhYmxlQ29uZmlnU2VydmljZS5jYWxjdWxhdGVEYXRlUmFuZ2UoXG4gICAgICB0aGlzLmNvbmZpZy5pbnRlcnZhbFxuICAgICk7XG4gICAgdGhpcy5jb25maWcuZGF0ZUZyb20gPSBkYXRlRnJvbTtcbiAgICB0aGlzLmNvbmZpZy5kYXRlVG8gPSBkYXRlVG87XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVEYXRlUmFuZ2VGb3JtKCkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoXG4gICAgICB7XG4gICAgICAgIGRhdGVGcm9tOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5jb25maWcuZGF0ZUZyb20pLFxuICAgICAgICBkYXRlVG86IG5ldyBGb3JtQ29udHJvbCh0aGlzLmNvbmZpZy5kYXRlVG8pXG4gICAgICB9LFxuICAgICAgeyB2YWxpZGF0b3JzOiBkYXRlUmFuZ2VWYWxpZGF0b3IgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZXMgdGhlIHRhYmxlIGRhdGEgYnk6XG4gICAqIC0gZmlsdGVyaW5nIG91dCBpbmFjdGl2ZSBkYXRhIHBvaW50cyxcbiAgICogLSBjaGVja2luZyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZGV2aWNlcyBhcyBhIHNvdXJjZSBvZiBkYXRhIHBvaW50cyxcbiAgICogLSBnZXR0aW5nIHRoZSBjb2x1bW4gaGVhZGVycyBmb3IgZGV2aWNlcyxcbiAgICogLSBnZXR0aW5nIHRoZSBzZXJpZXMgZGF0YSBmb3IgYWN0aXZlIGRhdGEgcG9pbnRzIChBUEkgY2FsbCksXG4gICAqIC0gcHJlcGFyaW5nIGRhdGEgcG9pbnRzIHdpdGggdmFsdWVzIGxpc3QsXG4gICAqIC0gbWFwcGluZyBkYXRhIHBvaW50cyB3aXRoIHZhbHVlcyB0byBsaXN0IGl0ZW1zLFxuICAgKiAtIGdyb3VwaW5nIGRhdGEgcG9pbnRzIGJ5IGRhdGUgYW5kIGRldmljZSxcbiAgICogLSBzb3J0aW5nIGRhdGEgYnkgZGF0ZSBkZXNjZW5kaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gcm91bmRTZWNvbmRzIC0gV2hldGhlciB0byByb3VuZCB0aGUgc2Vjb25kcyBvciBub3QuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICBJZiB0cnVlLCB0aGUgc2Vjb25kcyB3aWxsIGJlIHJvdW5kZWQgdG8gMC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgIElmIGZhbHNlLCB0aGUgc2Vjb25kcyB3aWxsIGJlIGRpc3BsYXllZCBhcyB0aGV5IGFyZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVRhYmxlRGF0YShyb3VuZFNlY29uZHMgPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5pc0xvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICBpZiAodGhpcy5pc0luaXRpYWxSZXF1ZXN0KSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGFwb2ludHMgPSB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmZpbHRlck91dEluYWN0aXZlRGF0YXBvaW50cyhcbiAgICAgICAgdGhpcy5jb25maWcuZGF0YXBvaW50c1xuICAgICAgKTtcblxuICAgICAgdGhpcy5oYXNNdWx0aXBsZURhdGFwb2ludHMgPSB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmhhc011bHRpcGxlRGF0YXBvaW50cyhcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRhcG9pbnRzXG4gICAgICApO1xuXG4gICAgICB0aGlzLmRldmljZXNDb2x1bW5IZWFkZXJzID0gdGhpcy5kYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZS5nZXRDb2x1bW5IZWFkZXJzKFxuICAgICAgICB0aGlzLmFjdGl2ZURhdGFwb2ludHNcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuaXNJbml0aWFsUmVxdWVzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZURhdGFwb2ludHNJZHNXaXRoU2VyaWVzOiBEYXRhcG9pbnRzVmFsdWVzRGF0YU1hcCA9XG4gICAgICB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmdyb3VwU2VyaWVzQnlEZXZpY2VJZCh0aGlzLmFjdGl2ZURhdGFwb2ludHMpO1xuXG4gICAgY29uc3QgYWN0aXZlRGF0YXBvaW50c1Nlcmllc0RhdGE6IE1hcDxzdHJpbmcgfCBudW1iZXIsIElTZXJpZXM+ID1cbiAgICAgIGF3YWl0IHRoaXMuZ2V0QWN0aXZlRGF0YXBvaW50c1Nlcmllc0RhdGFNYXAoXG4gICAgICAgIGFjdGl2ZURhdGFwb2ludHNJZHNXaXRoU2VyaWVzLFxuICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgcm91bmRTZWNvbmRzXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMuaXNGYWlsZWRUb0ZldGNoU2VyaWVzRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VyaWVzV2l0aG91dFBlcm1pc3Npb25Ub1JlYWQgPVxuICAgICAgdGhpcy5kYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZS5nZXRTZXJpZXNXaXRob3V0UGVybWlzc2lvblRvUmVhZChcbiAgICAgICAgYWN0aXZlRGF0YXBvaW50c1Nlcmllc0RhdGEsXG4gICAgICAgIGFjdGl2ZURhdGFwb2ludHNJZHNXaXRoU2VyaWVzXG4gICAgICApO1xuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNNaXNzaW5nQW55UGVybWlzc2lvbkFsZXJ0U2hvd24gJiZcbiAgICAgIHRoaXMuc2VyaWVzV2l0aG91dFBlcm1pc3Npb25Ub1JlYWQ/Lmxlbmd0aCA+IDAgJiZcbiAgICAgIGFjdGl2ZURhdGFwb2ludHNTZXJpZXNEYXRhPy5zaXplXG4gICAgKSB7XG4gICAgICB0aGlzLmhhbmRsZU1pc3NpbmdBbnlQZXJtaXNzaW9uRXJyb3JNZXNzYWdlKCk7XG4gICAgICB0aGlzLmlzTWlzc2luZ0FueVBlcm1pc3Npb25BbGVydFNob3duID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWFjdGl2ZURhdGFwb2ludHNTZXJpZXNEYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhcG9pbnRzV2l0aFZhbHVlcyA9IHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UuZ2V0RGF0YXBvaW50c1dpdGhWYWx1ZXMoXG4gICAgICB0aGlzLmFjdGl2ZURhdGFwb2ludHMsXG4gICAgICBhY3RpdmVEYXRhcG9pbnRzU2VyaWVzRGF0YVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhcG9pbnRzTGlzdEl0ZW1zOiBEYXRhcG9pbnRUYWJsZUl0ZW1bXSA9XG4gICAgICB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLm1hcERhdGFwb2ludHNXaXRoVmFsdWVzVG9MaXN0KHRoaXMuZGF0YXBvaW50c1dpdGhWYWx1ZXMpO1xuXG4gICAgY29uc3QgZ3JvdXBlZERhdGFwb2ludHNMaXN0SXRlbXM6IEdyb3VwZWREYXRhcG9pbnRUYWJsZUl0ZW1bXSA9XG4gICAgICB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmdyb3VwQnlEYXRlQW5kRGV2aWNlKFxuICAgICAgICBkYXRhcG9pbnRzTGlzdEl0ZW1zLFxuICAgICAgICB0aGlzLmRldmljZXNDb2x1bW5IZWFkZXJzXG4gICAgICApO1xuXG4gICAgdGhpcy5kYXRhcG9pbnRzVGFibGVJdGVtcyA9IHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2Uuc29ydERhdGFCeURhdGVEZXNjZW5kaW5nKFxuICAgICAgZ3JvdXBlZERhdGFwb2ludHNMaXN0SXRlbXNcbiAgICApO1xuXG4gICAgdGhpcy5pc0xvYWRpbmckLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYWN0aXZlIGRhdGEgcG9pbnRzIHNlcmllcyBkYXRhIGFuZCByZXR1cm5zIGl0IGFzIGEgbWFwLlxuICAgKlxuICAgKiBJdCdzIGEgd3JhcHBlciBtZXRob2Qgd2l0aCB0cnktY2F0Y2ggYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhcG9pbnRzSWRzV2l0aFNlcmllcyAtIEEgbWFwIG9mIGRhdGEgcG9pbnQgSURzIHdpdGggdGhlaXIgYXNzb2NpYXRlZCBzZXJpZXMuXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGF0YSBwb2ludHMgdGFibGUuXG4gICAqIEBwYXJhbSByb3VuZFNlY29uZHMgLSBXaGV0aGVyIHRvIHJvdW5kIHRoZSBzZWNvbmRzIG9yIG5vdC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgIElmIHRydWUsIHRoZSBzZWNvbmRzIHdpbGwgYmUgcm91bmRlZCB0byAwLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgSWYgZmFsc2UsIHRoZSBzZWNvbmRzIHdpbGwgYmUgZGlzcGxheWVkIGFzIHRoZXkgYXJlLlxuICAgKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIE1hcCBvYmplY3Qgd2l0aCBkYXRhIHBvaW50IElEcyBhcyBrZXlzIGFuZCBEYXRhT2JqZWN0IGFzIHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWN0aXZlRGF0YXBvaW50c1Nlcmllc0RhdGFNYXAoXG4gICAgZGF0YXBvaW50c0lkc1dpdGhTZXJpZXM6IERhdGFwb2ludHNWYWx1ZXNEYXRhTWFwLFxuICAgIGNvbmZpZzogRGF0YXBvaW50c1RhYmxlQ29uZmlnLFxuICAgIHJvdW5kU2Vjb25kczogYm9vbGVhblxuICApOiBQcm9taXNlPE1hcDxzdHJpbmcgfCBudW1iZXIsIElTZXJpZXM+PiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNGYWlsZWRUb0ZldGNoU2VyaWVzRGF0YSA9IGZhbHNlO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UuZ2V0QWxsQWN0aXZlU2VyaWVzRGF0YU1hcChcbiAgICAgICAgZGF0YXBvaW50c0lkc1dpdGhTZXJpZXMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcm91bmRTZWNvbmRzXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmhhbmRsZUZldGNoRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRmV0Y2hFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UuaW5jbHVkZXMoJzQwMycpKSB7XG4gICAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydEdyb3VwRGlzbWlzc1N0cmF0ZWd5KCd3YXJuaW5nJywgRGlzbWlzc0FsZXJ0U3RyYXRlZ3kuTk9ORSk7XG4gICAgICB0aGlzLmlzUmVmcmVzaERpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc1RpbWVvdXRFcnJvciA9IGVycm9yPy5uYW1lID09PSAnVGltZW91dEVycm9yJztcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBpc1RpbWVvdXRFcnJvclxuICAgICAgPyB0aGlzLlRJTUVPVVRfRVJST1JfVEVYVFxuICAgICAgOiBlcnJvcj8ubWVzc2FnZSA/PyB0aGlzLlNFUlZFUl9FUlJPUl9URVhUO1xuXG4gICAgdGhpcy5hbGVydHMuc2V0QWxlcnRHcm91cERpc21pc3NTdHJhdGVneShcbiAgICAgICd3YXJuaW5nJyxcbiAgICAgIERpc21pc3NBbGVydFN0cmF0ZWd5LlRFTVBPUkFSWV9PUl9QRVJNQU5FTlRcbiAgICApO1xuXG4gICAgdGhpcy5hbGVydHMuYWRkQWxlcnRzKFxuICAgICAgbmV3IER5bmFtaWNDb21wb25lbnRBbGVydCh7XG4gICAgICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICAgICAgdGV4dDogZXJyb3JNZXNzYWdlXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmlzRmFpbGVkVG9GZXRjaFNlcmllc0RhdGEgPSB0cnVlO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNaXNzaW5nQW55UGVybWlzc2lvbkVycm9yTWVzc2FnZSgpIHtcbiAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydEdyb3VwRGlzbWlzc1N0cmF0ZWd5KCdzeXN0ZW0nLCBEaXNtaXNzQWxlcnRTdHJhdGVneS5URU1QT1JBUlkpO1xuXG4gICAgdGhpcy5hbGVydHMuYWRkQWxlcnRzKFxuICAgICAgbmV3IER5bmFtaWNDb21wb25lbnRBbGVydCh7XG4gICAgICAgIGFsbG93SHRtbDogdHJ1ZSxcbiAgICAgICAgdGV4dDogdGhpcy5nZXRNaXNzaW5nUGVybWlzc2lvbnNNZXNzYWdlKCksXG4gICAgICAgIHR5cGU6ICdzeXN0ZW0nXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldE1pc3NpbmdQZXJtaXNzaW9uc01lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgZ2V0dGV4dChgWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgZm9sbG93aW5nIHNlcmllczpgKVxuICAgICk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWRMaXN0ID0gdGhpcy5zZXJpZXNXaXRob3V0UGVybWlzc2lvblRvUmVhZFxuICAgICAgLm1hcChkYXRhcG9pbnQgPT4gYDxsaT4ke2RhdGFwb2ludC5rZXkudmFsdWVPZigpfV8ke2RhdGFwb2ludC52YWx1ZX08L2xpPmApXG4gICAgICAuam9pbignJyk7XG5cbiAgICByZXR1cm4gYFxuICAgICAgPGRpdj5cbiAgICAgICAgPHA+JHtiYXNlTWVzc2FnZX08L3A+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICAke2Zvcm1hdHRlZExpc3R9XG4gICAgICAgIDwvdWw+XG4gICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIG5hbWUgY29udmVudGlvbiBmb3IgZWFjaCBsaXN0IGl0ZW0gaXM6IDxjb2RlPltzb3VyY2VdX1tmcmFnbWVudC5zZXJpZXNdPC9jb2RlPjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUV4cG9ydENvbmZpZ0RhdGVSYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZy5kYXRlVG8gPSB0aGlzLmFkanVzdFRhcmdldERhdGVCYXNlZE9uQ29uZGl0aW9uVGltZShcbiAgICAgIHRoaXMuY29uZmlnLmRhdGVGcm9tLFxuICAgICAgdGhpcy5jb25maWcuZGF0ZVRvXG4gICAgKTtcblxuICAgIHRoaXMuY29uZmlnLmRhdGVGcm9tID0gdGhpcy5hZGp1c3RUYXJnZXREYXRlQmFzZWRPbkNvbmRpdGlvblRpbWUoXG4gICAgICB0aGlzLmNvbmZpZy5kYXRlVG8sXG4gICAgICB0aGlzLmNvbmZpZy5kYXRlRnJvbVxuICAgICk7XG5cbiAgICB0aGlzLnN5bmNFeHBvcnRDb25maWdEYXRlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUYXJnZXREYXRlQmFzZWRPbkNvbmRpdGlvblRpbWUoY29uZGl0aW9uRGF0ZTogc3RyaW5nLCB0YXJnZXREYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmhhc1NlY29uZHNBbmRNaWxsaXNlY29uZHNFcXVhbFplcm8oY29uZGl0aW9uRGF0ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFGZXRjaGluZ1NlcnZpY2UuYWRqdXN0RGF0ZSh0YXJnZXREYXRlLCAwLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldERhdGU7XG4gIH1cblxuICBwcml2YXRlIHN5bmNFeHBvcnRDb25maWdEYXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cG9ydENvbmZpZy5kYXRlRnJvbSA9IHRoaXMuY29uZmlnLmRhdGVGcm9tO1xuICAgIHRoaXMuZXhwb3J0Q29uZmlnLmRhdGVUbyA9IHRoaXMuY29uZmlnLmRhdGVUbztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlR2xvYmFsUmVmcmVzaExvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmckXG4gICAgICAucGlwZShnbG9iYWxBdXRvUmVmcmVzaExvYWRpbmcodGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTYgcC1sLTE2IHAtci0xNiBmbGV4LXdyYXBcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZy5kaXNwbGF5RGF0ZVNlbGVjdGlvblwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICA8Yzh5LWRhdGUtcmFuZ2UtcGlja2VyXG4gICAgICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgICAgIFtpc0VtaXR0aW5nRGF0ZUNoYW5nZV09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgKHVwZGF0ZWREYXRlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2M4eS1kYXRlLXJhbmdlLXBpY2tlcj5cbiAgICA8L2Zvcm0+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLmRhdGFwb2ludHMubGVuZ3RoID4gMFwiPlxuICAgIDxjOHktZGF0YXBvaW50cy1yZWxvYWRcbiAgICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgICBbaXNBdXRvUmVmcmVzaEVuYWJsZWRdPVwiY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkXCJcbiAgICAgIFtyZWZyZXNoSW50ZXJ2YWxdPVwiY29uZmlnLnJlZnJlc2hJbnRlcnZhbFwiXG4gICAgICBbaXNSZWZyZXNoRGlzYWJsZWRdPVwiaXNSZWZyZXNoRGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmckXCJcbiAgICAgIFtpc1Njcm9sbGluZ109XCJpc1Njcm9sbGluZygpXCJcbiAgICAgIFtpc0V4cG9ydE1vZGFsT3Blbl09XCJpc0V4cG9ydE1vZGFsT3BlblwiXG4gICAgICBbd2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHRdPVwiY29uZmlnLndpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0XCJcbiAgICAgIChvbkNvdW50ZG93bkVuZGVkKT1cIm9uQ291bnRkb3duRW5kZWQoKVwiXG4gICAgPjwvYzh5LWRhdGFwb2ludHMtcmVsb2FkPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGM4eS1kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3RvclxuICAgIGNsYXNzPVwiZC1jb250ZW50c1wiXG4gICAgW2V4cG9ydENvbmZpZ109XCJleHBvcnRDb25maWdcIlxuICAgIChpc09wZW4pPVwib25FeHBvcnRNb2RhbE9wZW4oJGV2ZW50KVwiXG4gID48L2M4eS1kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldmljZXNDb2x1bW5IZWFkZXJzXCI+XG4gIDxjOHktZGF0YXBvaW50cy10YWJsZVxuICAgIFthZ2dyZWdhdGlvblR5cGVdPVwiY29uZmlnLmFnZ3JlZ2F0aW9uXCJcbiAgICBbZGF0YXBvaW50c1RhYmxlSXRlbXNdPVwiZGF0YXBvaW50c1RhYmxlSXRlbXNcIlxuICAgIFtkZWNpbWFsUGxhY2VzXT1cImNvbmZpZy5kZWNpbWFsUGxhY2VzXCJcbiAgICBbZGV2aWNlc0NvbHVtbkhlYWRlcnNdPVwiZGV2aWNlc0NvbHVtbkhlYWRlcnNcIlxuICAgIFtoYXNNdWx0aXBsZURhdGFwb2ludHNdPVwiaGFzTXVsdGlwbGVEYXRhcG9pbnRzXCJcbiAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gICAgW3Nlcmllc1dpdGhvdXRQZXJtaXNzaW9uVG9SZWFkQ291bnRdPVwic2VyaWVzV2l0aG91dFBlcm1pc3Npb25Ub1JlYWQ/Lmxlbmd0aFwiXG4gICAgKGlzU2Nyb2xsaW5nKT1cIm9uU2Nyb2xsaW5nKCRldmVudClcIlxuICA+PC9jOHktZGF0YXBvaW50cy10YWJsZT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50cy10YWJsZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL2RhdGFwb2ludHMtdGFibGUvZGF0YXBvaW50cy10YWJsZS12aWV3L2RhdGFwb2ludHMtdGFibGUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9kYXRhcG9pbnRzLXRhYmxlL2RhdGFwb2ludHMtdGFibGUtdmlldy9kYXRhcG9pbnRzLXRhYmxlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLG9CQUFvQixFQUNwQixxQkFBcUIsRUFFckIsOEJBQThCLEVBQzlCLE9BQU8sRUFDUCx3QkFBd0IsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUlqQyxrQkFBa0IsRUFDbkIsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUNMLGtDQUFrQyxFQU1uQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZC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aUNBQWlDO3dCQUNqQyx5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixtQkFBbUI7cUJBQ3BCO3VTQU1RLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElTZXJpZXMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIENvbW1vbk1vZHVsZSxcbiAgRGlzbWlzc0FsZXJ0U3RyYXRlZ3ksXG4gIER5bmFtaWNDb21wb25lbnRBbGVydCxcbiAgRHluYW1pY0NvbXBvbmVudEFsZXJ0QWdncmVnYXRvcixcbiAgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBnbG9iYWxBdXRvUmVmcmVzaExvYWRpbmdcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBLUElEZXRhaWxzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kYXRhcG9pbnQtc2VsZWN0b3InO1xuaW1wb3J0IHtcbiAgRGF0YUZldGNoaW5nU2VydmljZSxcbiAgRGF0YXBvaW50c0V4cG9ydFNlbGVjdG9yQ29tcG9uZW50LFxuICBEYXRhcG9pbnRzVmFsdWVzRGF0YU1hcCxcbiAgRXhwb3J0Q29uZmlnLFxuICBTb3VyY2VJZCxcbiAgZGF0ZVJhbmdlVmFsaWRhdG9yXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3InO1xuaW1wb3J0IHsgSU5URVJWQUxfVkFMVUVTIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9pbnRlcnZhbC1waWNrZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBERUZBVUxUX0RQVF9SRUZSRVNIX0lOVEVSVkFMX1ZBTFVFLFxuICBEYXRhcG9pbnRUYWJsZUl0ZW0sXG4gIERhdGFwb2ludFdpdGhWYWx1ZXMsXG4gIERhdGFwb2ludHNUYWJsZUNvbmZpZyxcbiAgR3JvdXBlZERhdGFwb2ludFRhYmxlSXRlbSxcbiAgVGFibGVDb2x1bW5IZWFkZXJcbn0gZnJvbSAnLi4vZGF0YXBvaW50cy10YWJsZS13aWRnZXQubW9kZWwnO1xuaW1wb3J0IHsgRGF0YXBvaW50c1RhYmxlU2VydmljZSB9IGZyb20gJy4uL2RhdGFwb2ludHMtdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXBvaW50c1JlbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZGF0YXBvaW50cy1yZWxvYWQvZGF0YXBvaW50cy1yZWxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhcG9pbnRzLXRhYmxlLXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhcG9pbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGFwb2ludHMtdGFibGUvZGF0YXBvaW50cy10YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGF0YXBvaW50cy10YWJsZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGFwb2ludHMtdGFibGUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdkLWNvbCBmaXQtaCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYXRhcG9pbnRzRXhwb3J0U2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGF0YXBvaW50c1JlbG9hZENvbXBvbmVudCxcbiAgICBEYXRhcG9pbnRzVGFibGVDb21wb25lbnQsXG4gICAgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRzVGFibGVWaWV3V2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogIERhdGEgcG9pbnRzIHRhYmxlIHdpZGdldCBjb25maWcuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc6IERhdGFwb2ludHNUYWJsZUNvbmZpZztcblxuICBhbGVydHM6IER5bmFtaWNDb21wb25lbnRBbGVydEFnZ3JlZ2F0b3I7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIGRhdGEgcG9pbnRzIHdoZXJlIF9fYWN0aXZlIHByb3BlcnR5IGlzIHNldCB0byB0cnVlLlxuICAgKi9cbiAgYWN0aXZlRGF0YXBvaW50czogS1BJRGV0YWlsc1tdID0gW107XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBjdXN0b20gQ1NTIHN0eWxlIGZvciB0aGUgZXhwb3J0IHNlbGVjdG9yIGNvbXBvbmVudC5cbiAgICovXG4gIGNvbnRhaW5lckNsYXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBvYmplY3RzIHJlcHJlc2VudGluZyBkYXRhcG9pbnRzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAqIFVzZWQgdG8gcG9wdWxhdGUgdGhlIENTVi9FeGNlbCBmaWxlIHdpdGggZGF0YS5cbiAgICovXG4gIGRhdGFwb2ludHNXaXRoVmFsdWVzOiBEYXRhcG9pbnRXaXRoVmFsdWVzW107XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBgR3JvdXBlZERhdGFwb2ludFRhYmxlSXRlbWAgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIGRhdGFwb2ludHMgdGFibGUgaXRlbXMuXG4gICAqIFVzZWQgdG8gcG9wdWxhdGUgdGhlIHRhYmxlIHdpdGggZGF0YS5cbiAgICovXG4gIGRhdGFwb2ludHNUYWJsZUl0ZW1zOiBHcm91cGVkRGF0YXBvaW50VGFibGVJdGVtW10gPSBbXTtcblxuICBkZXZpY2VzQ29sdW1uSGVhZGVyczogVGFibGVDb2x1bW5IZWFkZXJbXTtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdXNlZCBieSBhIGM4eS1kYXRhcG9pbnRzLWV4cG9ydC1zZWxlY3Rvci5cbiAgICovXG4gIGV4cG9ydENvbmZpZzogRXhwb3J0Q29uZmlnO1xuXG4gIGZvcm1Hcm91cDogUmV0dXJuVHlwZTxEYXRhcG9pbnRzVGFibGVWaWV3V2lkZ2V0Q29tcG9uZW50WydjcmVhdGVGb3JtJ10+O1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBkYXRhIHBvaW50LlxuICAgKiBJZiBpcyB0cnVlLCB0aGVuIGEgY29sdW1uICdEZXZpY2UnIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0YWJsZS5cbiAgICovXG4gIGhhc011bHRpcGxlRGF0YXBvaW50czogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHJlZnJlc2hpbmcgc2hvdWxkIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gICAqIEl0J3MgJ3RydWUnIHdoZW4gdXNlciBpcyBub3QgYWxsb3dlZCB0byB2aWV3IGEgbWVhc3VyZW1lbnRzLlxuICAgKi9cbiAgaXNSZWZyZXNoRGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgaXMgaW4gdGhlIGluaXRpYWwgcmVxdWVzdCBzdGF0ZVxuICAgKiB3aGVyZSBkYXRhIGZvciBhIHRhYmxlIHN0cnVjdHVyZSBpcyBiZWluZyBwcmVwYXJlZC5cbiAgICovXG4gIGlzSW5pdGlhbFJlcXVlc3QgPSB0cnVlO1xuICAvKipcbiAgICogQ3VycmVudCBpc0xvYWRpbmcgc3RhdGUuIEluZGljYXRlcyB3aGV0aGVyIHRoZSBkYXRhIGlzIGJlaW5nIGxvYWRlZC5cbiAgICovXG4gIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIGlzRXhwb3J0TW9kYWxPcGVuID0gZmFsc2U7XG5cbiAgaXNTY3JvbGxpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHNlcmllc1dpdGhvdXRQZXJtaXNzaW9uVG9SZWFkOiB7IGtleTogU291cmNlSWQ7IHZhbHVlOiBzdHJpbmdbXSB9W107XG5cbiAgcHJpdmF0ZSBUSU1FT1VUX0VSUk9SX1RFWFQgPSBnZXR0ZXh0KFxuICAgICdUaGUgcmVxdWVzdCBpcyB0YWtpbmcgbG9uZ2VyIHRoYW4gdXN1YWwuIFdlIGFwb2xvZ2l6ZSBmb3IgdGhlIGluY29udmVuaWVuY2UuJ1xuICApO1xuICBwcml2YXRlIFNFUlZFUl9FUlJPUl9URVhUID0gZ2V0dGV4dCgnU2VydmVyIGVycm9yIG9jY3VycmVkLicpO1xuXG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHNjcm9sbGluZ1N1YmplY3QkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBpc0ZhaWxlZFRvRmV0Y2hTZXJpZXNEYXRhOiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBhbGVydCBoYXMgYWxyZWFkeSBiZWVuIGRpc3BsYXllZCBhbmQgY2FuIGJlIGRpc21pc3NlZC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgb25seSBkaXNwbGF5ZWQgd2hlbiBhIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZC5cbiAgICovXG4gIHByaXZhdGUgaXNNaXNzaW5nQW55UGVybWlzc2lvbkFsZXJ0U2hvd24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YUZldGNoaW5nU2VydmljZTogRGF0YUZldGNoaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFwb2ludHNUYWJsZUNvbmZpZ1NlcnZpY2U6IERhdGFwb2ludHNUYWJsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZTogRGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2g6IFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY29uZmlnLndpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gJ2EtaS1jZW50ZXIgaW5wdXQtZ3JvdXAgcC10LTQgcC1iLTQgbWF4LXdpZHRoLWZpdCBtLWwtYXV0byc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGVnYWN5IHdpZGdldCB1c2VkIHJlYWx0aW1lIHNvIGl0IG11c3QgYmUgY29udmVydGVkIHRvIHJlZnJlc2ggYXBwcm9hY2hcbiAgICAgKiBpZiBpdCB3YXMgZW5hYmxlZCBiZWZvcmUgbWlncmF0aW9uLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dCA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0ID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbmZpZy5kaXNwbGF5U2V0dGluZ3MuZ2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQpIHtcbiAgICAgIHRoaXMuaGFuZGxlR2xvYmFsUmVmcmVzaExvYWRpbmcoKTtcbiAgICAgIHRoaXMuaGFuZGxlR2xvYmFsVGltZUNvbnRleHRTZXR0aW5ncygpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2Nyb2xsaW5nU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBjb25zdCBpc0xlZ2FjeVdpZGdldFJlYWx0aW1lQWN0aXZlID1cbiAgICAgIHRoaXMuY29uZmlnLnJlYWx0aW1lICYmXG4gICAgICAhdGhpcy5jb25maWcuaGFzT3duUHJvcGVydHkoJ2RlY2ltYWxQbGFjZXMnKSAmJlxuICAgICAgIXRoaXMuY29uZmlnLmhhc093blByb3BlcnR5KCdyZWZyZXNoSW50ZXJ2YWwnKSAmJlxuICAgICAgIXRoaXMuY29uZmlnLmhhc093blByb3BlcnR5KCdpc0F1dG9SZWZyZXNoRW5hYmxlZCcpO1xuXG4gICAgaWYgKGlzTGVnYWN5V2lkZ2V0UmVhbHRpbWVBY3RpdmUpIHtcbiAgICAgIHRoaXMuc2V0RGVmYXVsdFJlZnJlc2hSZWxhdGVkUHJvcGVydGllcygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5pbnRlcnZhbCAhPT0gSU5URVJWQUxfVkFMVUVTLmN1c3RvbSkge1xuICAgICAgdGhpcy5yZWNhbGN1bGF0ZUludGVydmFsVG9NYXRjaEZyb21Ob3dEYXRlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc3BsYXlEYXRlU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnByZXBhcmVEYXRlUmFuZ2VGb3JtKCk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5wcmVwYXJlVGFibGVEYXRhKCk7XG5cbiAgICB0aGlzLmV4cG9ydENvbmZpZyA9IHtcbiAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLmNvbmZpZy5hZ2dyZWdhdGlvbixcbiAgICAgIGRhdGVGcm9tOiB0aGlzLmNvbmZpZy5kYXRlRnJvbSxcbiAgICAgIGRhdGVUbzogdGhpcy5jb25maWcuZGF0ZVRvLFxuICAgICAgZGF0YXBvaW50RGV0YWlsczogdGhpcy5hY3RpdmVEYXRhcG9pbnRzLm1hcCgoeyBfX3RhcmdldCwgZnJhZ21lbnQsIHNlcmllcyB9KSA9PiAoe1xuICAgICAgICBkZXZpY2VOYW1lOiBfX3RhcmdldC5uYW1lLFxuICAgICAgICBzb3VyY2U6IF9fdGFyZ2V0LmlkLFxuICAgICAgICB2YWx1ZUZyYWdtZW50U2VyaWVzOiBzZXJpZXMsXG4gICAgICAgIHZhbHVlRnJhZ21lbnRUeXBlOiBmcmFnbWVudFxuICAgICAgfSkpXG4gICAgfTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvbkRhdGVDaGFuZ2UoZGF0YTogeyBkYXRlRnJvbT86IHN0cmluZyB8IG51bGw7IGRhdGVUbz86IHN0cmluZyB8IG51bGwgfSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZGF0ZUZyb20pIHtcbiAgICAgIHRoaXMuY29uZmlnLmRhdGVGcm9tID0gZGF0YS5kYXRlRnJvbTtcbiAgICB9XG4gICAgaWYgKGRhdGEuZGF0ZVRvKSB7XG4gICAgICB0aGlzLmNvbmZpZy5kYXRlVG8gPSBkYXRhLmRhdGVUbztcbiAgICB9XG4gICAgdGhpcy5wcmVwYXJlVGFibGVEYXRhKCk7XG5cbiAgICB0aGlzLnVwZGF0ZUV4cG9ydENvbmZpZ0RhdGVSYW5nZSgpO1xuICB9XG5cbiAgb25FeHBvcnRNb2RhbE9wZW4oaXNPcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwb3J0TW9kYWxPcGVuID0gaXNPcGVuZWQ7XG4gIH1cblxuICBvblNjcm9sbGluZyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsaW5nU3ViamVjdCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBhc3luYyBvbkNvdW50ZG93bkVuZGVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGVSYW5nZSA9IHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UucHJlcGFyZVRpbWVSYW5nZShcbiAgICAgIHRoaXMuY29uZmlnLmludGVydmFsLFxuICAgICAgdGhpcy5jb25maWcuZGF0ZUZyb20sXG4gICAgICB0aGlzLmNvbmZpZy5kYXRlVG9cbiAgICApO1xuXG4gICAgdGhpcy5jb25maWcuZGF0ZUZyb20gPSBkYXRlUmFuZ2UuZGF0ZUZyb207XG4gICAgdGhpcy5jb25maWcuZGF0ZVRvID0gZGF0ZVJhbmdlLmRhdGVUbztcblxuICAgIHRoaXMudXBkYXRlRXhwb3J0Q29uZmlnRGF0ZVJhbmdlKCk7XG4gICAgYXdhaXQgdGhpcy5wcmVwYXJlVGFibGVEYXRhKGZhbHNlKTtcblxuICAgIHRoaXMub25TY3JvbGxpbmcoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVHbG9iYWxUaW1lQ29udGV4dFNldHRpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnLmRhdGVGcm9tID0gdGhpcy5kYXRhRmV0Y2hpbmdTZXJ2aWNlLmFkanVzdERhdGUodGhpcy5jb25maWcuZGF0ZVswXSwgMCwgZmFsc2UpO1xuICAgIHRoaXMuY29uZmlnLmRhdGVUbyA9IHRoaXMuZGF0YUZldGNoaW5nU2VydmljZS5hZGp1c3REYXRlKHRoaXMuY29uZmlnLmRhdGVbMV0sIDAsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoZSBzY3JvbGxpbmcgc3Vic2NyaXB0aW9uLlxuICAgKlxuICAgKiBFbnN1cmVzIHNpbWlsYXIgVVggYXMgaW4gdGhlIGFsYXJtcyBjb3VudGRvd24tcGF1c2UgbG9naWMuXG4gICAqL1xuICBwcml2YXRlIHNldFNjcm9sbGluZ1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuc2Nyb2xsaW5nU3ViamVjdCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMDApKVxuICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmlzU2Nyb2xsaW5nLnNldCh2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0UmVmcmVzaFJlbGF0ZWRQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNvbmZpZy5yZWZyZXNoSW50ZXJ2YWwgPSBERUZBVUxUX0RQVF9SRUZSRVNIX0lOVEVSVkFMX1ZBTFVFO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNhbGN1bGF0ZUludGVydmFsVG9NYXRjaEZyb21Ob3dEYXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgZGF0ZUZyb20sIGRhdGVUbyB9ID0gdGhpcy5kYXRhcG9pbnRzVGFibGVDb25maWdTZXJ2aWNlLmNhbGN1bGF0ZURhdGVSYW5nZShcbiAgICAgIHRoaXMuY29uZmlnLmludGVydmFsXG4gICAgKTtcbiAgICB0aGlzLmNvbmZpZy5kYXRlRnJvbSA9IGRhdGVGcm9tO1xuICAgIHRoaXMuY29uZmlnLmRhdGVUbyA9IGRhdGVUbztcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZURhdGVSYW5nZUZvcm0oKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cChcbiAgICAgIHtcbiAgICAgICAgZGF0ZUZyb206IG5ldyBGb3JtQ29udHJvbCh0aGlzLmNvbmZpZy5kYXRlRnJvbSksXG4gICAgICAgIGRhdGVUbzogbmV3IEZvcm1Db250cm9sKHRoaXMuY29uZmlnLmRhdGVUbylcbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IGRhdGVSYW5nZVZhbGlkYXRvciB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlcyB0aGUgdGFibGUgZGF0YSBieTpcbiAgICogLSBmaWx0ZXJpbmcgb3V0IGluYWN0aXZlIGRhdGEgcG9pbnRzLFxuICAgKiAtIGNoZWNraW5nIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBkZXZpY2VzIGFzIGEgc291cmNlIG9mIGRhdGEgcG9pbnRzLFxuICAgKiAtIGdldHRpbmcgdGhlIGNvbHVtbiBoZWFkZXJzIGZvciBkZXZpY2VzLFxuICAgKiAtIGdldHRpbmcgdGhlIHNlcmllcyBkYXRhIGZvciBhY3RpdmUgZGF0YSBwb2ludHMgKEFQSSBjYWxsKSxcbiAgICogLSBwcmVwYXJpbmcgZGF0YSBwb2ludHMgd2l0aCB2YWx1ZXMgbGlzdCxcbiAgICogLSBtYXBwaW5nIGRhdGEgcG9pbnRzIHdpdGggdmFsdWVzIHRvIGxpc3QgaXRlbXMsXG4gICAqIC0gZ3JvdXBpbmcgZGF0YSBwb2ludHMgYnkgZGF0ZSBhbmQgZGV2aWNlLFxuICAgKiAtIHNvcnRpbmcgZGF0YSBieSBkYXRlIGRlc2NlbmRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSByb3VuZFNlY29uZHMgLSBXaGV0aGVyIHRvIHJvdW5kIHRoZSBzZWNvbmRzIG9yIG5vdC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgIElmIHRydWUsIHRoZSBzZWNvbmRzIHdpbGwgYmUgcm91bmRlZCB0byAwLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgSWYgZmFsc2UsIHRoZSBzZWNvbmRzIHdpbGwgYmUgZGlzcGxheWVkIGFzIHRoZXkgYXJlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVGFibGVEYXRhKHJvdW5kU2Vjb25kcyA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmlzTG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgIGlmICh0aGlzLmlzSW5pdGlhbFJlcXVlc3QpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0YXBvaW50cyA9IHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UuZmlsdGVyT3V0SW5hY3RpdmVEYXRhcG9pbnRzKFxuICAgICAgICB0aGlzLmNvbmZpZy5kYXRhcG9pbnRzXG4gICAgICApO1xuXG4gICAgICB0aGlzLmhhc011bHRpcGxlRGF0YXBvaW50cyA9IHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UuaGFzTXVsdGlwbGVEYXRhcG9pbnRzKFxuICAgICAgICB0aGlzLmFjdGl2ZURhdGFwb2ludHNcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZGV2aWNlc0NvbHVtbkhlYWRlcnMgPSB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmdldENvbHVtbkhlYWRlcnMoXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0YXBvaW50c1xuICAgICAgKTtcblxuICAgICAgdGhpcy5pc0luaXRpYWxSZXF1ZXN0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aXZlRGF0YXBvaW50c0lkc1dpdGhTZXJpZXM6IERhdGFwb2ludHNWYWx1ZXNEYXRhTWFwID1cbiAgICAgIHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UuZ3JvdXBTZXJpZXNCeURldmljZUlkKHRoaXMuYWN0aXZlRGF0YXBvaW50cyk7XG5cbiAgICBjb25zdCBhY3RpdmVEYXRhcG9pbnRzU2VyaWVzRGF0YTogTWFwPHN0cmluZyB8IG51bWJlciwgSVNlcmllcz4gPVxuICAgICAgYXdhaXQgdGhpcy5nZXRBY3RpdmVEYXRhcG9pbnRzU2VyaWVzRGF0YU1hcChcbiAgICAgICAgYWN0aXZlRGF0YXBvaW50c0lkc1dpdGhTZXJpZXMsXG4gICAgICAgIHRoaXMuY29uZmlnLFxuICAgICAgICByb3VuZFNlY29uZHNcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy5pc0ZhaWxlZFRvRmV0Y2hTZXJpZXNEYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXJpZXNXaXRob3V0UGVybWlzc2lvblRvUmVhZCA9XG4gICAgICB0aGlzLmRhdGFwb2ludHNUYWJsZVZpZXdTZXJ2aWNlLmdldFNlcmllc1dpdGhvdXRQZXJtaXNzaW9uVG9SZWFkKFxuICAgICAgICBhY3RpdmVEYXRhcG9pbnRzU2VyaWVzRGF0YSxcbiAgICAgICAgYWN0aXZlRGF0YXBvaW50c0lkc1dpdGhTZXJpZXNcbiAgICAgICk7XG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc01pc3NpbmdBbnlQZXJtaXNzaW9uQWxlcnRTaG93biAmJlxuICAgICAgdGhpcy5zZXJpZXNXaXRob3V0UGVybWlzc2lvblRvUmVhZD8ubGVuZ3RoID4gMCAmJlxuICAgICAgYWN0aXZlRGF0YXBvaW50c1Nlcmllc0RhdGE/LnNpemVcbiAgICApIHtcbiAgICAgIHRoaXMuaGFuZGxlTWlzc2luZ0FueVBlcm1pc3Npb25FcnJvck1lc3NhZ2UoKTtcbiAgICAgIHRoaXMuaXNNaXNzaW5nQW55UGVybWlzc2lvbkFsZXJ0U2hvd24gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghYWN0aXZlRGF0YXBvaW50c1Nlcmllc0RhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFwb2ludHNXaXRoVmFsdWVzID0gdGhpcy5kYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZS5nZXREYXRhcG9pbnRzV2l0aFZhbHVlcyhcbiAgICAgIHRoaXMuYWN0aXZlRGF0YXBvaW50cyxcbiAgICAgIGFjdGl2ZURhdGFwb2ludHNTZXJpZXNEYXRhXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGFwb2ludHNMaXN0SXRlbXM6IERhdGFwb2ludFRhYmxlSXRlbVtdID1cbiAgICAgIHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UubWFwRGF0YXBvaW50c1dpdGhWYWx1ZXNUb0xpc3QodGhpcy5kYXRhcG9pbnRzV2l0aFZhbHVlcyk7XG5cbiAgICBjb25zdCBncm91cGVkRGF0YXBvaW50c0xpc3RJdGVtczogR3JvdXBlZERhdGFwb2ludFRhYmxlSXRlbVtdID1cbiAgICAgIHRoaXMuZGF0YXBvaW50c1RhYmxlVmlld1NlcnZpY2UuZ3JvdXBCeURhdGVBbmREZXZpY2UoXG4gICAgICAgIGRhdGFwb2ludHNMaXN0SXRlbXMsXG4gICAgICAgIHRoaXMuZGV2aWNlc0NvbHVtbkhlYWRlcnNcbiAgICAgICk7XG5cbiAgICB0aGlzLmRhdGFwb2ludHNUYWJsZUl0ZW1zID0gdGhpcy5kYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZS5zb3J0RGF0YUJ5RGF0ZURlc2NlbmRpbmcoXG4gICAgICBncm91cGVkRGF0YXBvaW50c0xpc3RJdGVtc1xuICAgICk7XG5cbiAgICB0aGlzLmlzTG9hZGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBhY3RpdmUgZGF0YSBwb2ludHMgc2VyaWVzIGRhdGEgYW5kIHJldHVybnMgaXQgYXMgYSBtYXAuXG4gICAqXG4gICAqIEl0J3MgYSB3cmFwcGVyIG1ldGhvZCB3aXRoIHRyeS1jYXRjaCBibG9jay5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFwb2ludHNJZHNXaXRoU2VyaWVzIC0gQSBtYXAgb2YgZGF0YSBwb2ludCBJRHMgd2l0aCB0aGVpciBhc3NvY2lhdGVkIHNlcmllcy5cbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkYXRhIHBvaW50cyB0YWJsZS5cbiAgICogQHBhcmFtIHJvdW5kU2Vjb25kcyAtIFdoZXRoZXIgdG8gcm91bmQgdGhlIHNlY29uZHMgb3Igbm90LlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgSWYgdHJ1ZSwgdGhlIHNlY29uZHMgd2lsbCBiZSByb3VuZGVkIHRvIDAuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICBJZiBmYWxzZSwgdGhlIHNlY29uZHMgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgdGhleSBhcmUuXG4gICAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgTWFwIG9iamVjdCB3aXRoIGRhdGEgcG9pbnQgSURzIGFzIGtleXMgYW5kIERhdGFPYmplY3QgYXMgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY3RpdmVEYXRhcG9pbnRzU2VyaWVzRGF0YU1hcChcbiAgICBkYXRhcG9pbnRzSWRzV2l0aFNlcmllczogRGF0YXBvaW50c1ZhbHVlc0RhdGFNYXAsXG4gICAgY29uZmlnOiBEYXRhcG9pbnRzVGFibGVDb25maWcsXG4gICAgcm91bmRTZWNvbmRzOiBib29sZWFuXG4gICk6IFByb21pc2U8TWFwPHN0cmluZyB8IG51bWJlciwgSVNlcmllcz4+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0ZhaWxlZFRvRmV0Y2hTZXJpZXNEYXRhID0gZmFsc2U7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5kYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZS5nZXRBbGxBY3RpdmVTZXJpZXNEYXRhTWFwKFxuICAgICAgICBkYXRhcG9pbnRzSWRzV2l0aFNlcmllcyxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICByb3VuZFNlY29uZHNcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuaGFuZGxlRmV0Y2hFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGZXRjaEVycm9yKGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIGlmIChlcnJvcj8ubWVzc2FnZS5pbmNsdWRlcygnNDAzJykpIHtcbiAgICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0R3JvdXBEaXNtaXNzU3RyYXRlZ3koJ3dhcm5pbmcnLCBEaXNtaXNzQWxlcnRTdHJhdGVneS5OT05FKTtcbiAgICAgIHRoaXMuaXNSZWZyZXNoRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzVGltZW91dEVycm9yID0gZXJyb3I/Lm5hbWUgPT09ICdUaW1lb3V0RXJyb3InO1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGlzVGltZW91dEVycm9yXG4gICAgICA/IHRoaXMuVElNRU9VVF9FUlJPUl9URVhUXG4gICAgICA6IChlcnJvcj8ubWVzc2FnZSA/PyB0aGlzLlNFUlZFUl9FUlJPUl9URVhUKTtcblxuICAgIHRoaXMuYWxlcnRzLnNldEFsZXJ0R3JvdXBEaXNtaXNzU3RyYXRlZ3koXG4gICAgICAnd2FybmluZycsXG4gICAgICBEaXNtaXNzQWxlcnRTdHJhdGVneS5URU1QT1JBUllfT1JfUEVSTUFORU5UXG4gICAgKTtcblxuICAgIHRoaXMuYWxlcnRzLmFkZEFsZXJ0cyhcbiAgICAgIG5ldyBEeW5hbWljQ29tcG9uZW50QWxlcnQoe1xuICAgICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICAgIHRleHQ6IGVycm9yTWVzc2FnZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5pc0ZhaWxlZFRvRmV0Y2hTZXJpZXNEYXRhID0gdHJ1ZTtcbiAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTWlzc2luZ0FueVBlcm1pc3Npb25FcnJvck1lc3NhZ2UoKSB7XG4gICAgdGhpcy5hbGVydHMuc2V0QWxlcnRHcm91cERpc21pc3NTdHJhdGVneSgnc3lzdGVtJywgRGlzbWlzc0FsZXJ0U3RyYXRlZ3kuVEVNUE9SQVJZKTtcblxuICAgIHRoaXMuYWxlcnRzLmFkZEFsZXJ0cyhcbiAgICAgIG5ldyBEeW5hbWljQ29tcG9uZW50QWxlcnQoe1xuICAgICAgICBhbGxvd0h0bWw6IHRydWUsXG4gICAgICAgIHRleHQ6IHRoaXMuZ2V0TWlzc2luZ1Blcm1pc3Npb25zTWVzc2FnZSgpLFxuICAgICAgICB0eXBlOiAnc3lzdGVtJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNaXNzaW5nUGVybWlzc2lvbnNNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZU1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgIGdldHRleHQoYFlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb25zIHRvIHJlYWQgdGhlIGZvbGxvd2luZyBzZXJpZXM6YClcbiAgICApO1xuXG4gICAgY29uc3QgZm9ybWF0dGVkTGlzdCA9IHRoaXMuc2VyaWVzV2l0aG91dFBlcm1pc3Npb25Ub1JlYWRcbiAgICAgIC5tYXAoZGF0YXBvaW50ID0+IGA8bGk+JHtkYXRhcG9pbnQua2V5LnZhbHVlT2YoKX1fJHtkYXRhcG9pbnQudmFsdWV9PC9saT5gKVxuICAgICAgLmpvaW4oJycpO1xuXG4gICAgcmV0dXJuIGBcbiAgICAgIDxkaXY+XG4gICAgICAgIDxwPiR7YmFzZU1lc3NhZ2V9PC9wPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgJHtmb3JtYXR0ZWRMaXN0fVxuICAgICAgICA8L3VsPlxuICAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBuYW1lIGNvbnZlbnRpb24gZm9yIGVhY2ggbGlzdCBpdGVtIGlzOiA8Y29kZT5bc291cmNlXV9bZnJhZ21lbnQuc2VyaWVzXTwvY29kZT48L3A+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFeHBvcnRDb25maWdEYXRlUmFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcuZGF0ZVRvID0gdGhpcy5hZGp1c3RUYXJnZXREYXRlQmFzZWRPbkNvbmRpdGlvblRpbWUoXG4gICAgICB0aGlzLmNvbmZpZy5kYXRlRnJvbSxcbiAgICAgIHRoaXMuY29uZmlnLmRhdGVUb1xuICAgICk7XG5cbiAgICB0aGlzLmNvbmZpZy5kYXRlRnJvbSA9IHRoaXMuYWRqdXN0VGFyZ2V0RGF0ZUJhc2VkT25Db25kaXRpb25UaW1lKFxuICAgICAgdGhpcy5jb25maWcuZGF0ZVRvLFxuICAgICAgdGhpcy5jb25maWcuZGF0ZUZyb21cbiAgICApO1xuXG4gICAgdGhpcy5zeW5jRXhwb3J0Q29uZmlnRGF0ZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGFyZ2V0RGF0ZUJhc2VkT25Db25kaXRpb25UaW1lKGNvbmRpdGlvbkRhdGU6IHN0cmluZywgdGFyZ2V0RGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kYXRhcG9pbnRzVGFibGVWaWV3U2VydmljZS5oYXNTZWNvbmRzQW5kTWlsbGlzZWNvbmRzRXF1YWxaZXJvKGNvbmRpdGlvbkRhdGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhRmV0Y2hpbmdTZXJ2aWNlLmFkanVzdERhdGUodGFyZ2V0RGF0ZSwgMCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXREYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jRXhwb3J0Q29uZmlnRGF0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5leHBvcnRDb25maWcuZGF0ZUZyb20gPSB0aGlzLmNvbmZpZy5kYXRlRnJvbTtcbiAgICB0aGlzLmV4cG9ydENvbmZpZy5kYXRlVG8gPSB0aGlzLmNvbmZpZy5kYXRlVG87XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUdsb2JhbFJlZnJlc2hMb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nJFxuICAgICAgLnBpcGUoZ2xvYmFsQXV0b1JlZnJlc2hMb2FkaW5nKHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE2IHAtbC0xNiBwLXItMTYgZmxleC13cmFwXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWcuZGlzcGxheURhdGVTZWxlY3Rpb25cIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgPGM4eS1kYXRlLXJhbmdlLXBpY2tlclxuICAgICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgICBbaXNFbWl0dGluZ0RhdGVDaGFuZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93TGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICh1cGRhdGVkRGF0ZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9jOHktZGF0ZS1yYW5nZS1waWNrZXI+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZy5kYXRhcG9pbnRzLmxlbmd0aCA+IDBcIj5cbiAgICA8Yzh5LWRhdGFwb2ludHMtcmVsb2FkXG4gICAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgICAgW2lzQXV0b1JlZnJlc2hFbmFibGVkXT1cImNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZFwiXG4gICAgICBbcmVmcmVzaEludGVydmFsXT1cImNvbmZpZy5yZWZyZXNoSW50ZXJ2YWxcIlxuICAgICAgW2lzUmVmcmVzaERpc2FibGVkXT1cImlzUmVmcmVzaERpc2FibGVkXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nJFwiXG4gICAgICBbaXNTY3JvbGxpbmddPVwiaXNTY3JvbGxpbmcoKVwiXG4gICAgICBbaXNFeHBvcnRNb2RhbE9wZW5dPVwiaXNFeHBvcnRNb2RhbE9wZW5cIlxuICAgICAgW3dpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0XT1cImNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dFwiXG4gICAgICAob25Db3VudGRvd25FbmRlZCk9XCJvbkNvdW50ZG93bkVuZGVkKClcIlxuICAgID48L2M4eS1kYXRhcG9pbnRzLXJlbG9hZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxjOHktZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3JcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIFtleHBvcnRDb25maWddPVwiZXhwb3J0Q29uZmlnXCJcbiAgICAoaXNPcGVuKT1cIm9uRXhwb3J0TW9kYWxPcGVuKCRldmVudClcIlxuICA+PC9jOHktZGF0YXBvaW50cy1leHBvcnQtc2VsZWN0b3I+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJkZXZpY2VzQ29sdW1uSGVhZGVyc1wiPlxuICA8Yzh5LWRhdGFwb2ludHMtdGFibGVcbiAgICBbYWdncmVnYXRpb25UeXBlXT1cImNvbmZpZy5hZ2dyZWdhdGlvblwiXG4gICAgW2RhdGFwb2ludHNUYWJsZUl0ZW1zXT1cImRhdGFwb2ludHNUYWJsZUl0ZW1zXCJcbiAgICBbZGVjaW1hbFBsYWNlc109XCJjb25maWcuZGVjaW1hbFBsYWNlc1wiXG4gICAgW2RldmljZXNDb2x1bW5IZWFkZXJzXT1cImRldmljZXNDb2x1bW5IZWFkZXJzXCJcbiAgICBbaGFzTXVsdGlwbGVEYXRhcG9pbnRzXT1cImhhc011bHRpcGxlRGF0YXBvaW50c1wiXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmckIHwgYXN5bmNcIlxuICAgIFtzZXJpZXNXaXRob3V0UGVybWlzc2lvblRvUmVhZENvdW50XT1cInNlcmllc1dpdGhvdXRQZXJtaXNzaW9uVG9SZWFkPy5sZW5ndGhcIlxuICAgIChpc1Njcm9sbGluZyk9XCJvblNjcm9sbGluZygkZXZlbnQpXCJcbiAgPjwvYzh5LWRhdGFwb2ludHMtdGFibGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1605,6 +1605,7 @@ class DatapointsTableViewWidgetComponent {
|
|
|
1605
1605
|
}
|
|
1606
1606
|
if (this.config.widgetInstanceGlobalAutoRefreshContext) {
|
|
1607
1607
|
this.handleGlobalRefreshLoading();
|
|
1608
|
+
this.handleGlobalTimeContextSettings();
|
|
1608
1609
|
}
|
|
1609
1610
|
this.setScrollingSubscription();
|
|
1610
1611
|
const isLegacyWidgetRealtimeActive = this.config.realtime &&
|
|
@@ -1670,12 +1671,6 @@ class DatapointsTableViewWidgetComponent {
|
|
|
1670
1671
|
handleGlobalTimeContextSettings() {
|
|
1671
1672
|
this.config.dateFrom = this.dataFetchingService.adjustDate(this.config.date[0], 0, false);
|
|
1672
1673
|
this.config.dateTo = this.dataFetchingService.adjustDate(this.config.date[1], 0, false);
|
|
1673
|
-
if (this.config.realtime) {
|
|
1674
|
-
this.setDefaultRefreshRelatedProperties();
|
|
1675
|
-
}
|
|
1676
|
-
else {
|
|
1677
|
-
this.config.isAutoRefreshEnabled = false;
|
|
1678
|
-
}
|
|
1679
1674
|
}
|
|
1680
1675
|
/**
|
|
1681
1676
|
* Sets up the scrolling subscription.
|
|
@@ -1784,7 +1779,7 @@ class DatapointsTableViewWidgetComponent {
|
|
|
1784
1779
|
const isTimeoutError = error?.name === 'TimeoutError';
|
|
1785
1780
|
const errorMessage = isTimeoutError
|
|
1786
1781
|
? this.TIMEOUT_ERROR_TEXT
|
|
1787
|
-
: error?.message ?? this.SERVER_ERROR_TEXT;
|
|
1782
|
+
: (error?.message ?? this.SERVER_ERROR_TEXT);
|
|
1788
1783
|
this.alerts.setAlertGroupDismissStrategy('warning', DismissAlertStrategy.TEMPORARY_OR_PERMANENT);
|
|
1789
1784
|
this.alerts.addAlerts(new DynamicComponentAlert({
|
|
1790
1785
|
type: 'warning',
|