@bizdoc/core 2.3.22 → 2.3.24

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.
Files changed (48) hide show
  1. package/esm2022/lib/admin/architecture/elements/form.component.mjs +3 -3
  2. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
  3. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  4. package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
  5. package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
  6. package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
  7. package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -3
  8. package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
  9. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  10. package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
  11. package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
  12. package/esm2022/lib/core/translations.mjs +5 -3
  13. package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
  14. package/esm2022/lib/cube/chart/chart.component.mjs +3 -3
  15. package/esm2022/lib/cube/cube.service.mjs +13 -6
  16. package/esm2022/lib/cube/grid/grid.component.mjs +51 -56
  17. package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
  18. package/esm2022/lib/cube/pivot/pivot.component.mjs +3 -3
  19. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +5 -4
  20. package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
  21. package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
  22. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  23. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
  24. package/esm2022/lib/dashboard/score/activity.widget.mjs +3 -3
  25. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  26. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  27. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +7 -4
  28. package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
  29. package/esm2022/lib/reports/cube/usage-chart.component.mjs +3 -3
  30. package/esm2022/lib/reports/report-viewer.component.mjs +3 -6
  31. package/fesm2022/bizdoc-core.mjs +124 -118
  32. package/fesm2022/bizdoc-core.mjs.map +1 -1
  33. package/lib/admin/architecture/elements/form.component.d.ts +1 -1
  34. package/lib/admin/profiler/profiler.component.d.ts +1 -1
  35. package/lib/core/translations.d.ts +2 -0
  36. package/lib/cube/accum/accum.component.d.ts +1 -1
  37. package/lib/cube/chart/chart.component.d.ts +1 -1
  38. package/lib/cube/grid/grid.component.d.ts +1 -1
  39. package/lib/cube/parallel/parallel.component.d.ts +1 -1
  40. package/lib/dashboard/actions/actions.widget.d.ts +1 -1
  41. package/lib/dashboard/cube/compare.widget.d.ts +1 -1
  42. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
  43. package/lib/dashboard/cube/document-state.widget.d.ts +1 -1
  44. package/lib/dashboard/score/activity.widget.d.ts +1 -1
  45. package/lib/dashboard/score/compare-groups.widget.d.ts +1 -1
  46. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -1
  47. package/lib/dashboard/score/personal-score.widget.d.ts +1 -1
  48. package/package.json +11 -11
@@ -28,7 +28,7 @@ export class UsageChartComponent extends UsageReportBase {
28
28
  view: 'Chart'
29
29
  };
30
30
  this._session.themeChange.pipe(takeUntil(this._destroy)).subscribe(t => {
31
- this.chartSettings.theme = t.dark ? 'MaterialDark' : 'Material';
31
+ this.chartSettings.theme = t.dark ? 'Material3Dark' : 'Material3';
32
32
  this.chartSettings.palettes = this._palettes();
33
33
  this._draw();
34
34
  });
@@ -64,7 +64,7 @@ export class UsageChartComponent extends UsageReportBase {
64
64
  chartArea: {
65
65
  border: { width: 0 }
66
66
  },
67
- theme: this._session.theme.dark ? 'MaterialDark' : 'Material',
67
+ theme: this._session.theme.dark ? 'Material3Dark' : 'Material3',
68
68
  background: 'transparent',
69
69
  primaryXAxis: {
70
70
  titleStyle: {
@@ -355,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
355
355
  }
356
356
  }]
357
357
  }], ctorParameters: () => [{ type: i1.ReportRef }, { type: i2.DatasourceService }, { type: i3.CubeService }, { type: i4.SessionService }, { type: i5.RouterImpl }, { type: i6.PromptService }, { type: i0.ElementRef }, { type: i7.Directionality }, { type: i8.TranslateService }] });
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBc0IsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEYsT0FBTyxFQUFFLFFBQVEsRUFBMEIsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQTRCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVF6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFHaEQ7O0tBRUs7QUFRTCxNQUFNLE9BQ0UsbUJBQW9CLFNBQVEsZUFBZTtJQVFqRCxPQUFPO0lBQ1AsWUFBWSxTQUF3QyxFQUFFLElBQXVCLEVBQUUsT0FBb0IsRUFBRSxPQUF1QixFQUMxSCxNQUFrQixFQUNsQixFQUFpQixFQUNULFdBQXVCLEVBQy9CLEdBQW1CLEVBQ25CLFNBQTJCO1FBQzNCLEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUM3QyxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBSmQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFYeEIsUUFBRyxHQUFHLElBQUksQ0FB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LEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ1EsV0FBVztRQUNsQixJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBNVZLLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtIQVBmLEVBQUU7OzJGQU9OLG1CQUFtQjtrQkFSMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLElBQUk7d0JBQ1osT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IGdldEN1cnJlbmN5U3ltYm9sLCBnZXRMb2NhbGVOdW1iZXJGb3JtYXQsIE51bWJlckZvcm1hdFN0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRGlzcGxheU9wdGlvbk1vZGVsLCBQaXZvdFZpZXcgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IElTb3J0LCBJRmllbGRPcHRpb25zLCBJRm9ybWF0U2V0dGluZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IFdvcmtib29rLCBXb3Jrc2hlZXQsIFJvdywgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlU2V0dGluZ3NNb2RlbCwgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJlcG9ydFJlZiB9IGZyb20gXCIuLi9yZXBvcnQtcmVmXCI7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kZSB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbG9yc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbnR5cGUgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwgPSBhbnk7XHJcbi8qKlxyXG4gKiBjdWJlIHVzYWdlXHJcbiAqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2Rpcl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgVXNhZ2VDaGFydENvbXBvbmVudCBleHRlbmRzIFVzYWdlUmVwb3J0QmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgZGlyID0gdGhpcy5fc2Vzc2lvbi5kaXJlY3Rpb247XHJcbiAgcGl2b3Q6IFBpdm90VmlldztcclxuICBkYXRhU291cmNlU2V0dGluZ3M6IERhdGFTb3VyY2VTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXlPcHRpb246IERpc3BsYXlPcHRpb25Nb2RlbCA9IHtcclxuICAgIHZpZXc6ICdDaGFydCdcclxuICB9O1xyXG4gIGNoYXJ0U2V0dGluZ3M6IENoYXJ0U2V0dGluZ3NNb2RlbDtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IocmVwb3J0UmVmOiBSZXBvcnRSZWY8VXNhZ2VTZXR0aW5nc01vZGVsPiwgdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLCBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHJvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHNiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIGRpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHJlcG9ydFJlZiwgdHlwZSwgc2VydmljZSwgc2Vzc2lvbiwgcm91dGVyLFxyXG4gICAgICBzYiwgZGlyLCB0cmFuc2xhdGUpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgIHRoaXMuY2hhcnRTZXR0aW5ncy5wYWxldHRlcyA9IHRoaXMuX3BhbGV0dGVzKCk7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZGVmYXVsdHMoKTtcclxuICB9XHJcbiAgLyoqIHNldCBkZWZhdWx0cyAqL1xyXG4gIHByaXZhdGUgX2RlZmF1bHRzKCkge1xyXG4gICAgY29uc3QgeyBjaGFydFR5cGUgfSA9IHRoaXMuX3JlcG9ydFJlZi5vcHRpb25zO1xyXG4gICAgY29uc3QgaXNMaW5lID0gY2hhcnRUeXBlID09PSAnTGluZScgfHwgY2hhcnRUeXBlID09PSAnU3BsaW5lJztcclxuICAgIHRoaXMuY2hhcnRTZXR0aW5ncyA9IHtcclxuICAgICAgcG9pbnRDbGljazogdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIHpvb21TZXR0aW5nczoge1xyXG4gICAgICAgIHRvb2xiYXJJdGVtczogW10sXHJcbiAgICAgICAgbW9kZTogJ1hZJyxcclxuICAgICAgICBlbmFibGVNb3VzZVdoZWVsWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICBlbmFibGVQaW5jaFpvb21pbmc6IHRydWUsXHJcbiAgICAgICAgZW5hYmxlU2VsZWN0aW9uWm9vbWluZzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgY3Jvc3NoYWlyOiB7XHJcbiAgICAgICAgZW5hYmxlOiBpc0xpbmUsXHJcbiAgICAgICAgbGluZToge1xyXG4gICAgICAgICAgd2lkdGg6IDFcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNoYXJ0U2VyaWVzOiB7XHJcbiAgICAgICAgcGFsZXR0ZXM6IHRoaXMuX3BhbGV0dGVzKCksXHJcbiAgICAgICAgdHlwZTogY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIC8vd2lkdGg6IDIsXHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgICAgbWFya2VyOiB7IGhlaWdodDogMTAsIHdpZHRoOiAxMCwgc2hhcGU6ICdQZW50YWdvbicsIHZpc2libGU6IGlzTGluZSB9LFxyXG4gICAgICB9LFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGNoYXJ0QXJlYToge1xyXG4gICAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoZW1lOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCcsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHByaW1hcnlYQXhpczoge1xyXG4gICAgICAgIHRpdGxlU3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXNJbnZlcnNlZDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHRvb2x0aXA6IHtcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgfSxcclxuICAgICAgc3ViVGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHByaW1hcnlZQXhpczoge1xyXG4gICAgICAgIHRpdGxlU3R5bGU6IHtcclxuICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3Jvc3NoYWlyVG9vbHRpcDoge1xyXG4gICAgICAgICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZm9ybWF0U2V0dGluZ3M6IElGb3JtYXRTZXR0aW5nc1tdID0gW3tcclxuICAgICAgbmFtZTogJ3ZhbHVlJywgZm9ybWF0OiB0aGlzLmN1cnJlbmN5Q29kZSA/ICdDJyA6ICdOJyxcclxuICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLl9mcmFjdGlvbkRpZ2l0cyxcclxuICAgICAgLy9taW5pbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX2ZyYWN0aW9uRGlnaXRzLFxyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGVcclxuICAgIH1dO1xyXG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX3Nlcmllcy5tYXAoYSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogYS5uYW1lLFxyXG4gICAgICAgIGNhcHRpb246IGEudGl0bGVcclxuICAgICAgfSBhcyBJRmllbGRPcHRpb25zO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyA9IHtcclxuICAgICAgY29sdW1uczogW3tcclxuICAgICAgICBuYW1lOiAndHlwZSdcclxuICAgICAgfV0sXHJcbiAgICAgIHJvd3MsXHJcbiAgICAgIHZhbHVlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2YWx1ZScsXHJcbiAgICAgICAgICBjYXB0aW9uOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBlbmFibGVTb3J0aW5nOiBmYWxzZSxcclxuICAgICAgc29ydFNldHRpbmdzOiB0aGlzLl9zZXJpZXMubWFwKHMgPT4geyByZXR1cm4geyBuYW1lOiBgXyR7cy5uYW1lfWAgfSBhcyBJU29ydCB9KSxcclxuICAgICAgZXhwYW5kQWxsOiB0aGlzLl9leHBhbmRBbGwsXHJcbiAgICAgIGZvcm1hdFNldHRpbmdzLFxyXG4gICAgICBkYXRhU291cmNlOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFt0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgpXS5cclxuICAgICAgY29uY2F0KHRoaXMuX2luZGljZXMubWFwKChfLCBpKSA9PlxyXG4gICAgICAgIHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgzMDAgKyAzMDAgKiBpIGFzIE1hdGVyaWFsTW9kZSkpKTtcclxuICB9XHJcblxyXG4gIGRhdGFCb3VuZChhcmdzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucGl2b3QuY2hhcnQucG9pbnRDbGljayA9IHRoaXMucG9pbnRDbGljay5iaW5kKHRoaXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgb25EYXRhKHJlc3VsdDogSXRlbVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gcmVzdWx0O1xyXG4gICAgdGhpcy5fZGVjb3JhdGUocmVzdWx0KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5kYXRhU291cmNlID0gcjtcclxuICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIH0sIGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIHRoaXMucGl2b3QgJiYgdGhpcy5waXZvdC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnBpdm90ID0gbmV3IFBpdm90Vmlldyh7XHJcbiAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgICBlbmFibGVSdGw6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgICBkYXRhQm91bmQ6IHRoaXMuZGF0YUJvdW5kLmJpbmQodGhpcyksXHJcbiAgICAgIGNoYXJ0U2V0dGluZ3M6IHRoaXMuY2hhcnRTZXR0aW5ncyxcclxuICAgICAgZGlzcGxheU9wdGlvbjogdGhpcy5kaXNwbGF5T3B0aW9uLFxyXG4gICAgICBkYXRhU291cmNlU2V0dGluZ3M6IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLFxyXG4gICAgICBzcGlubmVyVGVtcGxhdGU6ICcnLFxyXG4gICAgICBhbGxvd0NvbmRpdGlvbmFsRm9ybWF0dGluZzogdHJ1ZSxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZSxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMucGl2b3QgJiYgdGhpcy5waXZvdC5jaGFydCkge1xyXG4gICAgICAvL3RoaXMucGl2b3QuY2hhcnQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICAgIC8vdGhpcy5waXZvdC5jaGFydC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICh0aGlzLnBpdm90LmNoYXJ0IGFzIENoYXJ0KS5jaGFydFJlc2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkV4cG9ydCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlLCAnbmFycm93JykgK1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpXHJcbiAgICAgIDogZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpLFxyXG4gICAgICBjb2x1bW5zID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IHRoaXMuX29wdGlvbnMuc2VyaWVzLmluZGV4T2YoYS5uYW1lKSA+IC0xKSxcclxuICAgICAgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAxLCB2YWx1ZTogYy50aXRsZSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgfV0gYXMgUm93W107XHJcbiAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICB2YWx1ZTogdGhpcy5fY3ViZS55QXhpcyA/IHRoaXMuX2N1YmUueUF4aXMudGl0bGUgOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKCh4LCBpKSA9PlxyXG4gICAgICByb3dzWzBdLmNlbGxzLnB1c2goe1xyXG4gICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIGkgKyAyLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgICB0aGlzLl9kYXRhLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHZhbHVlOiByWyd2YWx1ZSddXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDIsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlOiByW3gubmFtZV1cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICByb3dzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgY2VsbHNcclxuICAgICAgICB9IGFzIFJvdylcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogWy4uLmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAgICwgeyBpbmRleDogY29sdW1ucy5sZW5ndGggKyAxIH0sXHJcbiAgICAgICAgICAgIC4uLih0aGlzLl9pbmRpY2VzID8gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgaSArIDJcclxuICAgICAgICAgICAgfSkpIDogW10pXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHJvd3NcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0XHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgZGF0YSBzb3VyY2UgZGVzY3JpcHRpb24gdG8gaXRlbSBrZXlzLCBhbmQgbm9ybWFsaXplcyBpbmRpY2VzLlxyXG4gICAqIEBwYXJhbSByZXN1bHRcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShyZXN1bHQ6IEl0ZW1bXSk6IE9ic2VydmFibGU8e31bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgcmVzdWx0LmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZhbCA9IHJvd1thLm5hbWVdIGFzIHN0cmluZztcclxuICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCB2YWwpLlxyXG4gICAgICAgICAgICBwaXBlKHRhcCgodjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSB2YWw7XHJcbiAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSB2IHx8IHZhbDtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGRhdGE6IHt9W10gPSBbXTtcclxuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKGJhc2VSb3cgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGJhc2VSb3cudXNhZ2U7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgcm93ID0ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogdGhpcy5feVRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICByb3dbYS5uYW1lXSA9IGJhc2VSb3dbYS5uYW1lXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzLmZvckVhY2goaSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93W2kubmFtZV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdHlwZTogaS50aXRsZSwgdmFsdWUgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nlcmllcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByb3dbYF8ke2EubmFtZX1gXSA9IGJhc2VSb3dbYF8ke2EubmFtZX1gXTtcclxuICAgICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pKS5zdWJzY3JpYmUob2JzZXJ2ZSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBvYnNlcnZlLm5leHQoW10pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBlXHJcbiAgICovXHJcbiAgcG9pbnRDbGljayhlOiBJUG9pbnRFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgcG9pbnQ6IHsgeCwgeVZhbHVlIH0sIHNlcmllczogeyBuYW1lOiB0aXRsZSB9IH0gPSBlO1xyXG4gICAgaWYgKHlWYWx1ZSA9PT0gMCkge1xyXG4gICAgICBlLmNhbmNlbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGF4ZXM6IHsgW2F4aXM6IHN0cmluZ106IGFueTsgfSA9IHRoaXMuX2F4ZXMoeCBhcyBzdHJpbmcpO1xyXG4gICAgc3VwZXIuYnJvd3NlKGF4ZXMsIHRpdGxlID09PSB0aGlzLl95VGl0bGUgPyBudWxsIDogdGhpcy5faW5kZXhOYW1lKHRpdGxlKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHJldmVyc2UgZW5naW5lZXJpbmcgYXhlcyBmcm9tIHNlcmllcyBsYWJlbFxyXG4gICAqIEBwYXJhbSBsYWJlbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2F4ZXMobGFiZWw6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcik7IH0gPSB7fTtcclxuICAgIGxhYmVsLnNwbGl0KCcgLSAnKS5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZGF0YVNvdXJjZVNldHRpbmdzLnJvd3NbaV0ubmFtZSxcclxuICAgICAgICBlbGVtZW50ID0gdGhpcy5fZGF0YS5maW5kKGUgPT4gZVtjb2x1bW5dID09PSB4KTtcclxuICAgICAgYXhlc1tjb2x1bW5dID0gZWxlbWVudCA/IGVsZW1lbnRbYF8ke2NvbHVtbn1gXSA6IHg7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBheGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogcmV2ZXJzZSBlbmdpbmVlcmluZyBpbmRleCBuYW1lIGZyb20gdGl0bGVcclxuICAgKiBAcGFyYW0gdGl0bGVcclxuICAgKi9cclxuICBwcml2YXRlIF9pbmRleE5hbWUodGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX2luZGljZXMuZmluZChpID0+IGkudGl0bGUgPT09IHRpdGxlKTtcclxuICAgIHJldHVybiBpbmRleC5uYW1lO1xyXG4gIH1cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucGl2b3QgJiYgdGhpcy5waXZvdC5kZXN0cm95KCk7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIl19
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9yZXBvcnRzL2N1YmUvdXNhZ2UtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBc0IsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEYsT0FBTyxFQUFFLFFBQVEsRUFBMEIsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQTRCLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVF6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFHaEQ7O0tBRUs7QUFRTCxNQUFNLE9BQ0UsbUJBQW9CLFNBQVEsZUFBZTtJQVFqRCxPQUFPO0lBQ1AsWUFBWSxTQUF3QyxFQUFFLElBQXVCLEVBQUUsT0FBb0IsRUFBRSxPQUF1QixFQUMxSCxNQUFrQixFQUNsQixFQUFpQixFQUNULFdBQXVCLEVBQy9CLEdBQW1CLEVBQ25CLFNBQTJCO1FBQzNCLEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUM3QyxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBSmQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFYeEIsUUFBRyxHQUFHLElBQUksQ0FB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LEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ1EsV0FBVztRQUNsQixJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBNVZLLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtIQVBmLEVBQUU7OzJGQU9OLG1CQUFtQjtrQkFSMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFLElBQUk7d0JBQ1osT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9iaWRpXCI7XHJcbmltcG9ydCB7IGdldEN1cnJlbmN5U3ltYm9sLCBnZXRMb2NhbGVOdW1iZXJGb3JtYXQsIE51bWJlckZvcm1hdFN0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRGlzcGxheU9wdGlvbk1vZGVsLCBQaXZvdFZpZXcgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcGl2b3R2aWV3XCI7XHJcbmltcG9ydCB7IElTb3J0LCBJRmllbGRPcHRpb25zLCBJRm9ybWF0U2V0dGluZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLXBpdm90dmlld1wiO1xyXG5pbXBvcnQgeyBDaGFydFNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcGl2b3R2aWV3L3NyYy9waXZvdHZpZXcvbW9kZWwvY2hhcnRzZXR0aW5ncy1tb2RlbCc7XHJcbmltcG9ydCB7IENoYXJ0LCBJUG9pbnRFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzXCI7XHJcbmltcG9ydCB7IFdvcmtib29rLCBXb3Jrc2hlZXQsIFJvdywgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IEl0ZW0sIFVzYWdlU2V0dGluZ3NNb2RlbCwgVXNhZ2VSZXBvcnRCYXNlIH0gZnJvbSBcIi4vdXNhZ2UtYmFzZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJlcG9ydFJlZiB9IGZyb20gXCIuLi9yZXBvcnQtcmVmXCI7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kZSB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbG9yc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbnR5cGUgRGF0YVNvdXJjZVNldHRpbmdzTW9kZWwgPSBhbnk7XHJcbi8qKlxyXG4gKiBjdWJlIHVzYWdlXHJcbiAqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICAnW2lkXSc6ICdpZCcsXHJcbiAgICAnW2Rpcl0nOiAnZGlyJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgVXNhZ2VDaGFydENvbXBvbmVudCBleHRlbmRzIFVzYWdlUmVwb3J0QmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgZGlyID0gdGhpcy5fc2Vzc2lvbi5kaXJlY3Rpb247XHJcbiAgcGl2b3Q6IFBpdm90VmlldztcclxuICBkYXRhU291cmNlU2V0dGluZ3M6IERhdGFTb3VyY2VTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXlPcHRpb246IERpc3BsYXlPcHRpb25Nb2RlbCA9IHtcclxuICAgIHZpZXc6ICdDaGFydCdcclxuICB9O1xyXG4gIGNoYXJ0U2V0dGluZ3M6IENoYXJ0U2V0dGluZ3NNb2RlbDtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IocmVwb3J0UmVmOiBSZXBvcnRSZWY8VXNhZ2VTZXR0aW5nc01vZGVsPiwgdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLCBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHJvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHNiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIGRpcjogRGlyZWN0aW9uYWxpdHksXHJcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHJlcG9ydFJlZiwgdHlwZSwgc2VydmljZSwgc2Vzc2lvbiwgcm91dGVyLFxyXG4gICAgICBzYiwgZGlyLCB0cmFuc2xhdGUpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICB0aGlzLmNoYXJ0U2V0dGluZ3MudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWwzRGFyaycgOiAnTWF0ZXJpYWwzJztcclxuICAgICAgdGhpcy5jaGFydFNldHRpbmdzLnBhbGV0dGVzID0gdGhpcy5fcGFsZXR0ZXMoKTtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9kZWZhdWx0cygpO1xyXG4gIH1cclxuICAvKiogc2V0IGRlZmF1bHRzICovXHJcbiAgcHJpdmF0ZSBfZGVmYXVsdHMoKSB7XHJcbiAgICBjb25zdCB7IGNoYXJ0VHlwZSB9ID0gdGhpcy5fcmVwb3J0UmVmLm9wdGlvbnM7XHJcbiAgICBjb25zdCBpc0xpbmUgPSBjaGFydFR5cGUgPT09ICdMaW5lJyB8fCBjaGFydFR5cGUgPT09ICdTcGxpbmUnO1xyXG4gICAgdGhpcy5jaGFydFNldHRpbmdzID0ge1xyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgem9vbVNldHRpbmdzOiB7XHJcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgICAgICBtb2RlOiAnWFknLFxyXG4gICAgICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgICAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBjcm9zc2hhaXI6IHtcclxuICAgICAgICBlbmFibGU6IGlzTGluZSxcclxuICAgICAgICBsaW5lOiB7XHJcbiAgICAgICAgICB3aWR0aDogMVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgY2hhcnRTZXJpZXM6IHtcclxuICAgICAgICBwYWxldHRlczogdGhpcy5fcGFsZXR0ZXMoKSxcclxuICAgICAgICB0eXBlOiBjaGFydFR5cGUgfHwgJ0NvbHVtbicsXHJcbiAgICAgICAgLy93aWR0aDogMixcclxuICAgICAgICBib3JkZXI6IHsgd2lkdGg6IDAgfSxcclxuICAgICAgICBtYXJrZXI6IHsgaGVpZ2h0OiAxMCwgd2lkdGg6IDEwLCBzaGFwZTogJ1BlbnRhZ29uJywgdmlzaWJsZTogaXNMaW5lIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGVuYWJsZUV4cG9ydDogdHJ1ZSxcclxuICAgICAgY2hhcnRBcmVhOiB7XHJcbiAgICAgICAgYm9yZGVyOiB7IHdpZHRoOiAwIH1cclxuICAgICAgfSxcclxuICAgICAgdGhlbWU6IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbDNEYXJrJyA6ICdNYXRlcmlhbDMnLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgICBsZWdlbmRTZXR0aW5nczoge1xyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlzSW52ZXJzZWQ6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZVxyXG4gICAgICB9LFxyXG4gICAgICB0b29sdGlwOiB7XHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdGl0bGVTdHlsZToge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICAgIH0sXHJcbiAgICAgIHN1YlRpdGxlU3R5bGU6IHtcclxuICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICB9LFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHtcclxuICAgICAgICB0aXRsZVN0eWxlOiB7XHJcbiAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxTdHlsZToge1xyXG4gICAgICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNyb3NzaGFpclRvb2x0aXA6IHtcclxuICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGZvcm1hdFNldHRpbmdzOiBJRm9ybWF0U2V0dGluZ3NbXSA9IFt7XHJcbiAgICAgIG5hbWU6ICd2YWx1ZScsIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnQycgOiAnTicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fZnJhY3Rpb25EaWdpdHMsXHJcbiAgICAgIC8vbWluaW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLl9mcmFjdGlvbkRpZ2l0cyxcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlXHJcbiAgICB9XTtcclxuICAgIGNvbnN0IHJvd3MgPSB0aGlzLl9zZXJpZXMubWFwKGEgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IGEubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBhLnRpdGxlXHJcbiAgICAgIH0gYXMgSUZpZWxkT3B0aW9ucztcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlU2V0dGluZ3MgPSB7XHJcbiAgICAgIGNvbHVtbnM6IFt7XHJcbiAgICAgICAgbmFtZTogJ3R5cGUnXHJcbiAgICAgIH1dLFxyXG4gICAgICByb3dzLFxyXG4gICAgICB2YWx1ZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAndmFsdWUnLFxyXG4gICAgICAgICAgY2FwdGlvbjogdGhpcy5fdHJhbnNsYXRlLmdldCgnVmFsdWUnKVxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgZW5hYmxlU29ydGluZzogZmFsc2UsXHJcbiAgICAgIHNvcnRTZXR0aW5nczogdGhpcy5fc2VyaWVzLm1hcChzID0+IHsgcmV0dXJuIHsgbmFtZTogYF8ke3MubmFtZX1gIH0gYXMgSVNvcnQgfSksXHJcbiAgICAgIGV4cGFuZEFsbDogdGhpcy5fZXhwYW5kQWxsLFxyXG4gICAgICBmb3JtYXRTZXR0aW5ncyxcclxuICAgICAgZGF0YVNvdXJjZTogW11cclxuICAgIH07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BhbGV0dGVzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbdGhpcy5fc2Vzc2lvbi5nZXRBY2NlbnQoKV0uXHJcbiAgICAgIGNvbmNhdCh0aGlzLl9pbmRpY2VzLm1hcCgoXywgaSkgPT5cclxuICAgICAgICB0aGlzLl9zZXNzaW9uLmdldFByaW1lcnkoMzAwICsgMzAwICogaSBhcyBNYXRlcmlhbE1vZGUpKSk7XHJcbiAgfVxyXG5cclxuICBkYXRhQm91bmQoYXJnczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnBpdm90LmNoYXJ0LnBvaW50Q2xpY2sgPSB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlc3VsdFxyXG4gICAqL1xyXG4gIG9uRGF0YShyZXN1bHQ6IEl0ZW1bXSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHJlc3VsdDtcclxuICAgIHRoaXMuX2RlY29yYXRlKHJlc3VsdCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2V0dGluZ3MuZGF0YVNvdXJjZSA9IHI7XHJcbiAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICB9LCBlcnJvcjogKCkgPT4gdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5waXZvdCA9IG5ldyBQaXZvdFZpZXcoe1xyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgZGF0YUJvdW5kOiB0aGlzLmRhdGFCb3VuZC5iaW5kKHRoaXMpLFxyXG4gICAgICBjaGFydFNldHRpbmdzOiB0aGlzLmNoYXJ0U2V0dGluZ3MsXHJcbiAgICAgIGRpc3BsYXlPcHRpb246IHRoaXMuZGlzcGxheU9wdGlvbixcclxuICAgICAgZGF0YVNvdXJjZVNldHRpbmdzOiB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncyxcclxuICAgICAgc3Bpbm5lclRlbXBsYXRlOiAnJyxcclxuICAgICAgYWxsb3dDb25kaXRpb25hbEZvcm1hdHRpbmc6IHRydWUsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICB9LCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuY2hhcnQpIHtcclxuICAgICAgLy90aGlzLnBpdm90LmNoYXJ0LmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICAvL3RoaXMucGl2b3QuY2hhcnQud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICAodGhpcy5waXZvdC5jaGFydCBhcyBDaGFydCkuY2hhcnRSZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25FeHBvcnQodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgbnVtYmVyRm9ybWF0ID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGUgP1xyXG4gICAgICBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZSwgJ25hcnJvdycpICtcclxuICAgICAgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkN1cnJlbmN5KVxyXG4gICAgICA6IGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5EZWNpbWFsKSxcclxuICAgICAgY29sdW1ucyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiB0aGlzLl9vcHRpb25zLnNlcmllcy5pbmRleE9mKGEubmFtZSkgPiAtMSksXHJcbiAgICAgIHJvd3MgPSBbe1xyXG4gICAgICAgIGluZGV4OiAxLFxyXG4gICAgICAgIGNlbGxzOiBjb2x1bW5zLm1hcCgoYywgaSkgPT4gKHtcclxuICAgICAgICAgIGluZGV4OiBpICsgMSwgdmFsdWU6IGMudGl0bGUsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpXHJcbiAgICAgIH1dIGFzIFJvd1tdO1xyXG4gICAgcm93c1swXS5jZWxscy5wdXNoKHtcclxuICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgMSxcclxuICAgICAgdmFsdWU6IHRoaXMuX2N1YmUueUF4aXMgPyB0aGlzLl9jdWJlLnlBeGlzLnRpdGxlIDpcclxuICAgICAgICB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpLFxyXG4gICAgICBzdHlsZToge1xyXG4gICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2luZGljZXMuZm9yRWFjaCgoeCwgaSkgPT5cclxuICAgICAgcm93c1swXS5jZWxscy5wdXNoKHtcclxuICAgICAgICBpbmRleDogY29sdW1ucy5sZW5ndGggKyBpICsgMixcclxuICAgICAgICB2YWx1ZTogeC50aXRsZSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKChyLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gY29sdW1ucy5tYXAoKGMsIGopID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogcltjLm5hbWVdLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgMSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgaEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2YWx1ZTogclsndmFsdWUnXVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5faW5kaWNlcyAmJiB0aGlzLl9pbmRpY2VzLmZvckVhY2goKHgsIGkpID0+XHJcbiAgICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIGkgKyAyLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2YWx1ZTogclt4Lm5hbWVdXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgcm93cy5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGluZGV4OiBpICsgMixcclxuICAgICAgICAgIGNlbGxzXHJcbiAgICAgICAgfSBhcyBSb3cpXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICB7XHJcbiAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBlbmFibGVSdGw6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgIGNvbHVtbnM6IFsuLi5jb2x1bW5zLm1hcCgoXywgaSkgPT4gKHsgaW5kZXg6IGkgKyAxLCB3aWR0aDogMjUwIH0gYXMgQ29sdW1uKSlcclxuICAgICAgICAgICAgICAsIHsgaW5kZXg6IGNvbHVtbnMubGVuZ3RoICsgMSB9LFxyXG4gICAgICAgICAgICAuLi4odGhpcy5faW5kaWNlcyA/IHRoaXMuX2luZGljZXMubWFwKChfLCBpKSA9PiAoe1xyXG4gICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5zLmxlbmd0aCArIGkgKyAyXHJcbiAgICAgICAgICAgIH0pKSA6IFtdKVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBhZGRzIGRhdGEgc291cmNlIGRlc2NyaXB0aW9uIHRvIGl0ZW0ga2V5cywgYW5kIG5vcm1hbGl6ZXMgaW5kaWNlcy5cclxuICAgKiBAcGFyYW0gcmVzdWx0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZGVjb3JhdGUocmVzdWx0OiBJdGVtW10pOiBPYnNlcnZhYmxlPHt9W10+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgIHJlc3VsdC5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2VyaWVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB2YWwgPSByb3dbYS5uYW1lXSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgdmFsKS5cclxuICAgICAgICAgICAgcGlwZSh0YXAoKHY6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgIHJvd1tgXyR7YS5uYW1lfWBdID0gdmFsO1xyXG4gICAgICAgICAgICAgIHJvd1thLm5hbWVdID0gdiB8fCB2YWw7XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoKVxyXG4gICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKG1hcCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkYXRhOiB7fVtdID0gW107XHJcbiAgICAgICAgICByZXN1bHQuZm9yRWFjaChiYXNlUm93ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBiYXNlUm93LnVzYWdlO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMuX3lUaXRsZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgICAgICAgIHJvd1tgXyR7YS5uYW1lfWBdID0gYmFzZVJvd1tgXyR7YS5uYW1lfWBdO1xyXG4gICAgICAgICAgICAgICAgcm93W2EubmFtZV0gPSBiYXNlUm93W2EubmFtZV07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgZGF0YS5wdXNoKHJvdyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5faW5kaWNlcy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYmFzZVJvd1tpLm5hbWVdO1xyXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3cgPSB7IHR5cGU6IGkudGl0bGUsIHZhbHVlIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJpZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgICAgICAgICAgcm93W2BfJHthLm5hbWV9YF0gPSBiYXNlUm93W2BfJHthLm5hbWV9YF07XHJcbiAgICAgICAgICAgICAgICAgIHJvd1thLm5hbWVdID0gYmFzZVJvd1thLm5hbWVdO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBkYXRhLnB1c2gocm93KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICB9KSkuc3Vic2NyaWJlKG9ic2VydmUpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JzZXJ2ZS5uZXh0KFtdKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZVxyXG4gICAqL1xyXG4gIHBvaW50Q2xpY2soZTogSVBvaW50RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCB7IHBvaW50OiB7IHgsIHlWYWx1ZSB9LCBzZXJpZXM6IHsgbmFtZTogdGl0bGUgfSB9ID0gZTtcclxuICAgIGlmICh5VmFsdWUgPT09IDApIHtcclxuICAgICAgZS5jYW5jZWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBhbnk7IH0gPSB0aGlzLl9heGVzKHggYXMgc3RyaW5nKTtcclxuICAgIHN1cGVyLmJyb3dzZShheGVzLCB0aXRsZSA9PT0gdGhpcy5feVRpdGxlID8gbnVsbCA6IHRoaXMuX2luZGV4TmFtZSh0aXRsZSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZXZlcnNlIGVuZ2luZWVyaW5nIGF4ZXMgZnJvbSBzZXJpZXMgbGFiZWxcclxuICAgKiBAcGFyYW0gbGFiZWxcclxuICAgKi9cclxuICBwcml2YXRlIF9heGVzKGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGF4ZXM6IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpOyB9ID0ge307XHJcbiAgICBsYWJlbC5zcGxpdCgnIC0gJykuZm9yRWFjaCgoeCwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmRhdGFTb3VyY2VTZXR0aW5ncy5yb3dzW2ldLm5hbWUsXHJcbiAgICAgICAgZWxlbWVudCA9IHRoaXMuX2RhdGEuZmluZChlID0+IGVbY29sdW1uXSA9PT0geCk7XHJcbiAgICAgIGF4ZXNbY29sdW1uXSA9IGVsZW1lbnQgPyBlbGVtZW50W2BfJHtjb2x1bW59YF0gOiB4O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXhlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHJldmVyc2UgZW5naW5lZXJpbmcgaW5kZXggbmFtZSBmcm9tIHRpdGxlXHJcbiAgICogQHBhcmFtIHRpdGxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaW5kZXhOYW1lKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9pbmRpY2VzLmZpbmQoaSA9PiBpLnRpdGxlID09PSB0aXRsZSk7XHJcbiAgICByZXR1cm4gaW5kZXgubmFtZTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnBpdm90ICYmIHRoaXMucGl2b3QuZGVzdHJveSgpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiJdfQ==
@@ -74,11 +74,8 @@ export class ReportViewerComponent {
74
74
  next: r => {
75
75
  this._instance.onBind(r, this.args);
76
76
  this._data = r;
77
- this.progress = -1;
78
- }, error: () => {
79
- this._sb.error();
80
- this.progress = -1;
81
- }
77
+ }, error: () => this._sb.error(),
78
+ complete: () => this.progress = -1
82
79
  })));
83
80
  }
84
81
  explore(item) {
@@ -155,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
155
152
  type: HostListener,
156
153
  args: ['window:resize']
157
154
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLDhCQUE4QixDQUFDO0FBSWhGLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sY0FBYyxDQUFDO0FBTTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPbEUsNEJBQTRCO0FBQzVCLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBUUQsd0JBQXdCO0lBQ3hCLFlBQ1UsS0FBaUIsRUFDakIsR0FBa0IsRUFDbEIsU0FBbUIsRUFDbkIsSUFBZ0IsRUFDaEIsVUFBNEIsRUFDNUIsUUFBd0IsRUFDeEIsZ0JBQWdEO1FBTmhELFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNB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QUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYSxDQUFBLENBQUM7b0JBQ3BGLElBQUk7aUJBQ1E7YUFDZjtTQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTFJVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw4T0FPTyxnQkFBZ0IsbUVBQzVDLGtCQUFrQixxRUM5Qi9CLDBOQUVBOzsyRkRvQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHNCQUFzQjtvUUFNdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFLcUQsYUFBYTtzQkFBdkUsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDMUIsS0FBSztzQkFBbkMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBaUQ3QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIEluamVjdG9yLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdvcmtib29rLCBXb3Jrc2hlZXQsIFJvdywgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IFJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFJlcG9ydCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUGFyYW1NYXAgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYsIEV4cG9ydEV2ZW50QXJncyB9IGZyb20gJy4vcmVwb3J0LXJlZic7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICcuLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyJztcclxuaW1wb3J0IHsgVGFibGVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS12aWV3LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1yZXBvcnQtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwb3J0LXZpZXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiByZXBvcnR2aWV3ZXIgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSByZXBvcnQhOiBSZXBvcnQ7XHJcbiAgQElucHV0KCkgYXJnczogUGFyYW1NYXA7XHJcbiAgcHJvZ3Jlc3MgPSAtMTtcclxuICBwdWJsaWMgZ2V0IHJlcG9ydFJlZigpOiBSZXBvcnRSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcG9ydFJlZjtcclxuICB9XHJcbiAgQFZpZXdDaGlsZCgndmMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIEBWaWV3Q2hpbGQoVGFibGVWaWV3Q29tcG9uZW50KSB0YWJsZTogVGFibGVWaWV3Q29tcG9uZW50O1xyXG4gIHByaXZhdGUgX2RhdGE6IGFueVtdO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBSZXBvcnRDb21wb25lbnQ8YW55LCBhbnk+O1xyXG4gIHByaXZhdGUgX3JlcG9ydFJlZjogUmVwb3J0UmVmO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6aW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIHJlcG9ydHZpZXdlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9odWI6IEh1YlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZhY3RvcnlSZXNvbHZlcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydyZXBvcnQnXSkge1xyXG4gICAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgICAgdGhpcy5fcmVwb3J0UmVmICYmIHRoaXMuX3JlcG9ydFJlZi5fZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYgPSBuZXcgUmVwb3J0UmVmKHRoaXMucmVwb3J0LCB0aGlzLmFyZ3MsIHRoaXMuX2h1YiwgdGhpcy5fZGltKCkpO1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnQudGVtcGxhdGUpXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlVmlldygpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSB0aGlzLnRhYmxlO1xyXG4gICAgICAvLyBsaXN0ZW4gdG8gcHJvZ3Jlc3NcclxuICAgICAgdGhpcy5faHViLnJlcG9ydFByb2dyZXNzJC5cclxuICAgICAgICBwaXBlKGZpbHRlcihlID0+XHJcbiAgICAgICAgICBlLm5hbWUgPT09IHRoaXMucmVwb3J0Lm5hbWUpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMucHJvZ3Jlc3MgPiAwKSB0aGlzLnByb2dyZXNzID0gaS5wcm9ncmVzcztcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5fcmVzaXppbmcucGlwZShkZWJvdW5jZVRpbWUoMTUwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlcG9ydFJlZi5fcmVzaXplLm5leHQodGhpcy5fZGltKCkpKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydhcmdzJ10pXHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZi5fYXJncy5uZXh0KHRoaXMuYXJncyk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZVZpZXcoKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIuY29tcG9uZW50KHRoaXMucmVwb3J0LnRlbXBsYXRlKTtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJlcG9ydFJlZiwgdXNlVmFsdWU6IHRoaXMuX3JlcG9ydFJlZiB9XSwgcGFyZW50OiB0aGlzLl9pbmplY3RvciB9KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xyXG5cclxuICAgIHRoaXMuX2luc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlcG9ydENvbXBvbmVudDxhbnksIGFueT47XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLm5leHQoe30pO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaW0oKTogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9IHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gKHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4geyB3aWR0aDogTWF0aC5mbG9vcih3aWR0aCAtIDIpLCBoZWlnaHQ6IE1hdGguZmxvb3IoaGVpZ2h0KSB9O1xyXG4gIH1cclxuICAvKiogKi9cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5faHR0cC5wb3N0PGFueVtdPihgL2FwaS9yZXBvcnQvJHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5yZXBvcnQubmFtZSl9YCwgdGhpcy5hcmdzKS5cclxuICAgICAgcGlwZSh0YXAoe1xyXG4gICAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHIsIHRoaXMuYXJncyk7XHJcbiAgICAgICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAtMTtcclxuICAgICAgICB9LCBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAtMTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSlcclxuICB9XHJcblxyXG4gIGV4cGxvcmUoaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBhcmdzID0ge307XHJcbiAgICBjb25zdCBrZXlzID0gdGhpcy5yZXBvcnQuZmllbGRzLmZpbHRlcihjID0+IGMuZmxhZ3M/LmluZGV4T2YoJ0tleScpID4gLTEpO1xyXG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyBgcmVwb3J0ICR7dGhpcy5yZXBvcnQubmFtZX0gaXRlbSBtb2RlbCBtaXNzaW5nIGtleSBhdHRyaWJ1dGVgO1xyXG4gICAga2V5cy5mb3JFYWNoKGYgPT4gYXJnc1tmLm5hbWVdID0gaXRlbVtmLm5hbWVdKTtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9odHRwLnB1dDxhbnlbXT4oYC9hcGkvcmVwb3J0LyR7ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMucmVwb3J0Lm5hbWUpfWAsIGFyZ3MpKTtcclxuICB9XHJcblxyXG4gIC8qKiAqL1xyXG4gIGV4cG9ydEV4Y2VsKCkge1xyXG4gICAgY29uc3QgYXJncyA9IHtcclxuICAgICAgZGF0YTogdGhpcy5fZGF0YS5tYXAociA9PiB7IHJldHVybiB7IC4uLnIgfSB9KSxcclxuICAgICAgYXJnczogdGhpcy5hcmdzXHJcbiAgICB9IGFzIEV4cG9ydEV2ZW50QXJncztcclxuICAgIHRoaXMuX3JlcG9ydFJlZi5fZXhwb3J0aW5nLm5leHQoYXJncyk7XHJcbiAgICBpZiAoYXJncy5jYW5jZWwpIHJldHVybjtcclxuICAgIGNvbnN0IHJvd3MgPSBbe1xyXG4gICAgICBpbmRleDogMSxcclxuICAgICAgY2VsbHM6IHRoaXMucmVwb3J0LmNvbHVtbnMubWFwKChjLCBqKSA9PiAoe1xyXG4gICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IGMubGFiZWwgfHwgYy5uYW1lLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBib2xkOiB0cnVlLFxyXG4gICAgICAgICAgaEFsaWduOiBjLmNvbnRyb2xUeXBlID09PSAnbnVtYmVyJyA/ICdyaWdodCcgOiAnZ2VuZXJhbCdcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgQ2VsbCkpXHJcbiAgICB9XSBhcyBSb3dbXTtcclxuICAgIGFyZ3MuZGF0YS5mb3JFYWNoKChyLCBpKSA9PiByb3dzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICBpbmRleDogaSArIDIsXHJcbiAgICAgICAgY2VsbHM6IHRoaXMucmVwb3J0LmNvbHVtbnMubWFwKChjLCBqKSA9PiAoe1xyXG4gICAgICAgICAgaW5kZXg6IGogKyAxLCB2YWx1ZTogcltjLm5hbWVdLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgaEFsaWduOiBjLmNvbnRyb2xUeXBlID09PSAnbnVtYmVyJyA/ICdyaWdodCcgOiAnZ2VuZXJhbCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgfSBhcyBSb3cpKTtcclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5yZXBvcnQuY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aGlzLnJlcG9ydC50aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIFttb2RlXT1cInByb2dyZXNzID09PSAwID8gJ3F1ZXJ5JyA6ICdidWZmZXInXCIgW3ZhbHVlXT1wcm9ncmVzcyBbYnVmZmVyVmFsdWVdPTAgW3N0eWxlLnZpc2liaWxpdHldPVwicHJvZ3Jlc3MgPiAtMSA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLDhCQUE4QixDQUFDO0FBSWhGLE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sY0FBYyxDQUFDO0FBTTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPbEUsNEJBQTRCO0FBQzVCLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBUUQsd0JBQXdCO0lBQ3hCLFlBQ1UsS0FBaUIsRUFDakIsR0FBa0IsRUFDbEIsU0FBbUIsRUFDbkIsSUFBZ0IsRUFDaEIsVUFBNEIsRUFDNUIsUUFBd0IsRUFDeEIsZ0JBQWdEO1FBTmhELFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNB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Q0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQWEsQ0FBQSxDQUFDO29CQUNwRixJQUFJO2lCQUNRO2FBQ2Y7U0FDRixFQUNELE1BQU0sQ0FDUCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F6SVUscUJBQXFCO2tHQUFyQixxQkFBcUIsOE9BT08sZ0JBQWdCLG1FQUM1QyxrQkFBa0IscUVDOUIvQiwwTkFFQTs7MkZEb0JhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxzQkFBc0I7b1FBTXZCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS3FELGFBQWE7c0JBQXZFLFNBQVM7dUJBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzFCLEtBQUs7c0JBQW5DLFNBQVM7dUJBQUMsa0JBQWtCO2dCQWlEN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RvciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBXb3JrYm9vaywgV29ya3NoZWV0LCBSb3csIENvbHVtbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBSZXBvcnQgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtTWFwIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUmVwb3J0UmVmLCBFeHBvcnRFdmVudEFyZ3MgfSBmcm9tICcuL3JlcG9ydC1yZWYnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IFRhYmxlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUtdmlldy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtcmVwb3J0LXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlcG9ydC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogcmVwb3J0dmlld2VyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgcmVwb3J0ITogUmVwb3J0O1xyXG4gIEBJbnB1dCgpIGFyZ3M6IFBhcmFtTWFwO1xyXG4gIHByb2dyZXNzID0gLTE7XHJcbiAgcHVibGljIGdldCByZXBvcnRSZWYoKTogUmVwb3J0UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXBvcnRSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3ZjJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBAVmlld0NoaWxkKFRhYmxlVmlld0NvbXBvbmVudCkgdGFibGU6IFRhYmxlVmlld0NvbXBvbmVudDtcclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcclxuICBwcml2YXRlIF9pbnN0YW5jZTogUmVwb3J0Q29tcG9uZW50PGFueSwgYW55PjtcclxuICBwcml2YXRlIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiByZXBvcnR2aWV3ZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfaHViOiBIdWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYWN0b3J5UmVzb2x2ZXI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncmVwb3J0J10pIHtcclxuICAgICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICAgIHRoaXMuX3JlcG9ydFJlZiAmJiB0aGlzLl9yZXBvcnRSZWYuX2Rlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fcmVwb3J0UmVmID0gbmV3IFJlcG9ydFJlZih0aGlzLnJlcG9ydCwgdGhpcy5hcmdzLCB0aGlzLl9odWIsIHRoaXMuX2RpbSgpKTtcclxuICAgICAgaWYgKHRoaXMucmVwb3J0LnRlbXBsYXRlKVxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZVZpZXcoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX2luc3RhbmNlID0gdGhpcy50YWJsZTtcclxuICAgICAgLy8gbGlzdGVuIHRvIHByb2dyZXNzXHJcbiAgICAgIHRoaXMuX2h1Yi5yZXBvcnRQcm9ncmVzcyQuXHJcbiAgICAgICAgcGlwZShmaWx0ZXIoZSA9PlxyXG4gICAgICAgICAgZS5uYW1lID09PSB0aGlzLnJlcG9ydC5uYW1lKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MCkpLlxyXG4gICAgICAgIHN1YnNjcmliZShpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnByb2dyZXNzID4gMCkgdGhpcy5wcm9ncmVzcyA9IGkucHJvZ3Jlc3M7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX3Jlc2l6aW5nLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9yZXBvcnRSZWYuX3Jlc2l6ZS5uZXh0KHRoaXMuX2RpbSgpKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snYXJncyddKVxyXG4gICAgICB0aGlzLl9yZXBvcnRSZWYuX2FyZ3MubmV4dCh0aGlzLmFyZ3MpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9jcmVhdGVWaWV3KCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5fZmFjdG9yeVJlc29sdmVyLmNvbXBvbmVudCh0aGlzLnJlcG9ydC50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSZXBvcnRSZWYsIHVzZVZhbHVlOiB0aGlzLl9yZXBvcnRSZWYgfV0sIHBhcmVudDogdGhpcy5faW5qZWN0b3IgfSk7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBSZXBvcnRDb21wb25lbnQ8YW55LCBhbnk+O1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICByZXNpemUoKSB7XHJcbiAgICB0aGlzLl9yZXNpemluZy5uZXh0KHt9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGltKCk6IHsgaGVpZ2h0OiBudW1iZXI7IHdpZHRoOiBudW1iZXIgfSB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9ICh0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KS5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIHsgd2lkdGg6IE1hdGguZmxvb3Iod2lkdGggLSAyKSwgaGVpZ2h0OiBNYXRoLmZsb29yKGhlaWdodCkgfTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuX2h0dHAucG9zdDxhbnlbXT4oYC9hcGkvcmVwb3J0LyR7ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMucmVwb3J0Lm5hbWUpfWAsIHRoaXMuYXJncykuXHJcbiAgICAgIHBpcGUodGFwKHtcclxuICAgICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICAgIHRoaXMuX2luc3RhbmNlLm9uQmluZChyLCB0aGlzLmFyZ3MpO1xyXG4gICAgICAgICAgdGhpcy5fZGF0YSA9IHI7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICAgICAgLCBjb21wbGV0ZTogKCkgPT5cclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAtMVxyXG4gICAgICB9KSkpXHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgYXJncyA9IHt9O1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMucmVwb3J0LmZpZWxkcy5maWx0ZXIoYyA9PiBjLmZsYWdzPy5pbmRleE9mKCdLZXknKSA+IC0xKTtcclxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMClcclxuICAgICAgdGhyb3cgYHJlcG9ydCAke3RoaXMucmVwb3J0Lm5hbWV9IGl0ZW0gbW9kZWwgbWlzc2luZyBrZXkgYXR0cmlidXRlYDtcclxuICAgIGtleXMuZm9yRWFjaChmID0+IGFyZ3NbZi5uYW1lXSA9IGl0ZW1bZi5uYW1lXSk7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5faHR0cC5wdXQ8YW55W10+KGAvYXBpL3JlcG9ydC8ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLnJlcG9ydC5uYW1lKX1gLCBhcmdzKSk7XHJcbiAgfVxyXG5cclxuICAvKiogKi9cclxuICBleHBvcnRFeGNlbCgpIHtcclxuICAgIGNvbnN0IGFyZ3MgPSB7XHJcbiAgICAgIGRhdGE6IHRoaXMuX2RhdGEubWFwKHIgPT4geyByZXR1cm4geyAuLi5yIH0gfSksXHJcbiAgICAgIGFyZ3M6IHRoaXMuYXJnc1xyXG4gICAgfSBhcyBFeHBvcnRFdmVudEFyZ3M7XHJcbiAgICB0aGlzLl9yZXBvcnRSZWYuX2V4cG9ydGluZy5uZXh0KGFyZ3MpO1xyXG4gICAgaWYgKGFyZ3MuY2FuY2VsKSByZXR1cm47XHJcbiAgICBjb25zdCByb3dzID0gW3tcclxuICAgICAgaW5kZXg6IDEsXHJcbiAgICAgIGNlbGxzOiB0aGlzLnJlcG9ydC5jb2x1bW5zLm1hcCgoYywgaikgPT4gKHtcclxuICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiBjLmxhYmVsIHx8IGMubmFtZSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZSxcclxuICAgICAgICAgIGhBbGlnbjogYy5jb250cm9sVHlwZSA9PT0gJ251bWJlcicgPyAncmlnaHQnIDogJ2dlbmVyYWwnXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGFzIENlbGwpKVxyXG4gICAgfV0gYXMgUm93W107XHJcbiAgICBhcmdzLmRhdGEuZm9yRWFjaCgociwgaSkgPT4gcm93cy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgIGNlbGxzOiB0aGlzLnJlcG9ydC5jb2x1bW5zLm1hcCgoYywgaikgPT4gKHtcclxuICAgICAgICAgIGluZGV4OiBqICsgMSwgdmFsdWU6IHJbYy5uYW1lXSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGhBbGlnbjogYy5jb250cm9sVHlwZSA9PT0gJ251bWJlcicgPyAncmlnaHQnIDogJ2dlbmVyYWwnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpXHJcbiAgICAgIH0gYXMgUm93KSk7XHJcbiAgICBjb25zdCBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICB7XHJcbiAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBlbmFibGVSdGw6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMucmVwb3J0LmNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKSxcclxuICAgICAgICAgICAgcm93c1xyXG4gICAgICAgICAgfSBhcyBXb3Jrc2hlZXRcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICAneGxzeCdcclxuICAgICk7XHJcbiAgICBib29rLnNhdmUoYCR7dGhpcy5yZXBvcnQudGl0bGV9Lnhsc3hgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVwb3J0UmVmLl9kZXN0cm95KCk7XHJcbiAgICB0aGlzLl9yZXNpemluZy5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBDZWxsIHsgfVxyXG4iLCI8bWF0LXByb2dyZXNzLWJhciBbbW9kZV09XCJwcm9ncmVzcyA9PT0gMCA/ICdxdWVyeScgOiAnYnVmZmVyJ1wiIFt2YWx1ZV09cHJvZ3Jlc3MgW2J1ZmZlclZhbHVlXT0wIFtzdHlsZS52aXNpYmlsaXR5XT1cInByb2dyZXNzID4gLTEgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxuZy1jb250YWluZXIgI3ZjPjwvbmctY29udGFpbmVyPlxyXG4iXX0=