@esfaenza/admin-module 15.2.6 → 15.2.8

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 (23) hide show
  1. package/esm2020/lib/components/_shared/node_detail.component.loc.mjs +11 -11
  2. package/esm2020/lib/components/_shared/node_detail.component.mjs +4 -4
  3. package/esm2020/lib/components/audits/adm_audits.component.loc.mjs +18 -18
  4. package/esm2020/lib/components/audits/adm_audits.component.mjs +6 -6
  5. package/esm2020/lib/components/dynamic_views/adm_dynamic_views.component.loc.mjs +6 -6
  6. package/esm2020/lib/components/dynamic_views/adm_dynamic_views.component.mjs +3 -3
  7. package/esm2020/lib/components/enqueues/adm_enq.component.loc.mjs +5 -5
  8. package/esm2020/lib/components/enqueues/adm_enq.component.mjs +3 -3
  9. package/esm2020/lib/components/logs/adm_logs.component.loc.mjs +2 -2
  10. package/esm2020/lib/components/metrics/metrics_search.component.loc.mjs +9 -9
  11. package/esm2020/lib/components/metrics/metrics_search.component.mjs +3 -3
  12. package/esm2020/lib/components/profiler/adm_profiler.component.loc.mjs +21 -21
  13. package/esm2020/lib/components/profiler/adm_profiler.component.mjs +3 -3
  14. package/esm2020/lib/components/topact/topact_search.component.loc.mjs +19 -19
  15. package/esm2020/lib/components/topact/topact_search.component.mjs +5 -5
  16. package/esm2020/lib/components/workers/adm_wrk.component.loc.mjs +23 -23
  17. package/esm2020/lib/components/workers/adm_wrk.component.mjs +11 -11
  18. package/esm2020/lib/models/components/ProfilerDataNode.loc.mjs +20 -20
  19. package/fesm2015/esfaenza-admin-module.mjs +154 -154
  20. package/fesm2015/esfaenza-admin-module.mjs.map +1 -1
  21. package/fesm2020/esfaenza-admin-module.mjs +154 -154
  22. package/fesm2020/esfaenza-admin-module.mjs.map +1 -1
  23. package/package.json +8 -8
@@ -160,14 +160,14 @@ export class AdmMetricsComponent {
160
160
  AdmMetricsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmMetricsComponent, deps: [{ token: i1.DateService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i4.Location }, { token: i1.InterComService }, { token: i5.HTTPService }, { token: i6.ActivatedRoute }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
161
161
  AdmMetricsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmMetricsComponent, selector: "metrics_search", providers: [
162
162
  { provide: LocalizationService, useClass: AdmMetricsLoc }
163
- ], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'System Metrics' | localize : lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Session ID' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Session Serial' | localize : lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filter Metrics...' | localize : lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}}&nbsp;<input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" />&nbsp;{{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Metrics Instance' | localize : lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i8.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "component", type: i8.FormMultiSelectComponent, selector: "form-multiselect", inputs: ["SelectLabel", "UseKeyValues", "UseCommaSeparatedList"] }, { kind: "component", type: i8.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i9.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
163
+ ], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Metriche di Sistema' | localize: lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Cod. Sessione' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Seriale Sessione' | localize: lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filtra Metriche...' | localize: lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}}&nbsp;<input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" />&nbsp;{{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Istanza Metriche' | localize: lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i8.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "component", type: i8.FormMultiSelectComponent, selector: "form-multiselect", inputs: ["SelectLabel", "UseKeyValues", "UseCommaSeparatedList"] }, { kind: "component", type: i8.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i9.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
164
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmMetricsComponent, decorators: [{
165
165
  type: Component,
166
166
  args: [{ selector: "metrics_search", providers: [
167
167
  { provide: LocalizationService, useClass: AdmMetricsLoc }
168
- ], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'System Metrics' | localize : lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Session ID' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Session Serial' | localize : lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filter Metrics...' | localize : lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}}&nbsp;<input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" />&nbsp;{{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Metrics Instance' | localize : lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
168
+ ], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Metriche di Sistema' | localize: lc}}\r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"col-md-12 row app-no-padding app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\" (inputChange)=\"dateChanged();\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtersid\" name=\"filtersid\" [Placeholder]=\"'Cod. Sessione' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterserial\" name=\"filterserial\" [Placeholder]=\"'Seriale Sessione' | localize: lc\"></form-input>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 row app-no-padding\">\r\n <div class=\"col-12 app-filter-wrapper\">\r\n <form-multiselect [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtermetrics\" [IdField]=\"'name'\" [Display]=\"'{name}'\" name=\"filtermetrics\" [SelectLabel]=\"'Filtra Metriche...' | localize: lc\" [Source]=\"Metrics\"></form-multiselect>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div class=\"col-md-1 app-no-padding\">\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </form>\r\n <div class=\"app-col-12 app-margin-top-15\">\r\n <div class=\"pull-right\">\r\n {{'Aggiorna ogni' | localize: lc}}&nbsp;<input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"seconds\" />&nbsp;{{'secondo/i' | localize: lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" name=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView && instanceRequired\">\r\n <form-select [Validation]=\"false\" [Label]=\"'Istanza Metriche' | localize: lc\" [(ngModel)]=\"selectedInstance\" name=\"instance\" [Source]=\"Instances\" (inputChange)=\"instanceSelected()\" required></form-select>\r\n </div>\r\n <div *ngIf=\"searchView && metricsToShow && metricsToShow.length > 0\">\r\n <div class=\"col-md-12 app-padding-right-0 row app-margin-top-15\">\r\n <ng-container *ngFor=\"let metric of metricsToShow; let i = index\">\r\n <div class=\"col-md-4 app-no-padding app-simple-border\" *ngFor=\"let chart of metric.values; let z = index\">\r\n <div style=\"width: 100%; height: 260px\">\r\n <es-line-chart [XTitle]=\"chart.xtitle\"\r\n [YTitle]=\"chart.ytitle\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"chart\"\r\n [Animations]=\"true\"\r\n [Legend]=\"chart.legend\"\r\n name=\"metric_{{i}}_chart_{{z}}\"\r\n (chartLoaded)=\"linkChartToMetric(metric, chart, $event);\"\r\n [DataGroupingThreshold]=\"99999999\">\r\n </es-line-chart>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
169
169
  }], ctorParameters: function () { return [{ type: i1.DateService }, { type: i2.LocalizationService }, { type: i3.PreferencesService }, { type: i4.Location }, { type: i1.InterComService }, { type: i5.HTTPService }, { type: i6.ActivatedRoute }, { type: undefined, decorators: [{
170
170
  type: Inject,
171
171
  args: [ADM_MODULE_PATH]
172
172
  }] }]; } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljc19zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9tZXRyaWNzL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvbWV0cmljcy9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RCxPQUFPLEVBQWUsbUJBQW1CLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFekYsZUFBZTtBQUNmLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFXL0QsTUFBTSxPQUFPLG1CQUFtQjtJQVc1QixZQUNXLFFBQXFCLEVBQ3JCLEVBQXVCLEVBQ3RCLFlBQWdDLEVBQ2hDLFFBQWtCLEVBQ2xCLFFBQXlCLEVBQ3pCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ0ksR0FBVztRQVByQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FB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RyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBSUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3hGOztZQUVHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Z0hBaEtRLG1CQUFtQixrT0FtQmhCLGVBQWU7b0dBbkJsQixtQkFBbUIseUNBTGpCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTtLQUM1RCwwQkM5QkwscTlOQXlGTTsyRkR4RE8sbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixhQUNmO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7cUJBQzVEOzswQkFzQkksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSwgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NoYXJlZC9LZXlWYWx1ZVwiO1xyXG5pbXBvcnQgeyBNZXRyaWMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTWV0cmljXCI7XHJcbmltcG9ydCB7IE1ldHJpY0NoYXJ0IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY0NoYXJ0XCI7XHJcbmltcG9ydCB7IE1ldHJpY3NWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY3NWaWV3XCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcbmltcG9ydCB7IEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbU1ldHJpY3NMb2MgfSBmcm9tIFwiLi9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcblxyXG5kZWNsYXJlIHZhciBkYXlqcztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwibWV0cmljc19zZWFyY2hcIixcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbU1ldHJpY3NMb2MgfVxyXG4gICAgXSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vbWV0cmljc19zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtTWV0cmljc0NvbXBvbmVudCB7XHJcblxyXG4gICAgcHVibGljIE1ldHJpY3M6IE1ldHJpY1tdO1xyXG4gICAgcHJpdmF0ZSBNZXRyaWNzQ2hhcnRDYWNoZTogeyBbbmFtZTogc3RyaW5nXTogeyBjaGFydDogQmFzZUNoYXJ0Q29tcG9uZW50LCBsYXN0VHM6IERhdGUgfSB9ID0ge307XHJcblxyXG4gICAgcHVibGljIHNlYXJjaFZpZXc6IE1ldHJpY3NWaWV3ID0gbmV3IE1ldHJpY3NWaWV3KCk7XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGRhdGVFeHRzOiBEYXRlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBASW5qZWN0KEFETV9NT0RVTEVfUEFUSCkgcHJpdmF0ZSBtb2Q6IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBkYXRlQ2hhbmdlZCgpIHtcclxuICAgICAgICAvLyBQdWxpemlhIGRpIHR1dHRpIGkgcGFyYW1ldHJpIGRpIHJpY2VyY2EgZGlwZW5kZW50aSBkYWxsZSBkYXRlXHJcbiAgICAgICAgdGhpcy5tZXRyaWNzVG9TaG93ID0gW107XHJcbiAgICAgICAgdGhpcy5NZXRyaWNzID0gW107XHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZVJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5JbnN0YW5jZXMgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2UgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJtZXRyaWNzID0gW107XHJcblxyXG4gICAgICAgIHZhciBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJmcm9tXCIsIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJmcm9tIHx8IFwiXCIpLnNldChcInRvXCIsIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0byB8fCBcIlwiKVxyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8TWV0cmljW10+KFJlcG9zaXRvcnlbXCJHRVRfQWRtX0dldE1ldHJpY3NcIl0sIHBhcnMpLnN1YnNjcmliZSh0ID0+IHRoaXMuTWV0cmljcyA9IHQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPE1ldHJpY3NWaWV3PihcIkhvdFNlYXJjaE1ldHJpY3NcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS9tZXRyaWNzYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaE1ldHJpY3NcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBNZXRyaWNzVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0TWV0cmljc1wiXSwgdGhpcy5zZWFyY2hWaWV3LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgTWV0cmljc1ZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2hWaWV3T3ZlcnJpZGU6IE1ldHJpY3NWaWV3ID0gbnVsbCkge1xyXG4gICAgICAgIGlmICghdXBkYXRlKVxyXG4gICAgICAgICAgICB0aGlzLk1ldHJpY3NDaGFydENhY2hlID0ge307XHJcblxyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICAvLyBRdWVzdGEgcmljZXJjYSBwcmVuZGUgaSBub21pIGRpc3RpbmN0IGRlbGxlIG1ldHJpY2hlIHF1aW5kaSBkZXZvIHByZW5kZXJlIHR1dHRvIHBlciBmb3J6YVxyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZSA9IDk5OTk5OTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRNZXRyaWNzXCJdLCBzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3LCB1cGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBJbnN0YW5jZXM6IEtleVZhbHVlW10gPSBbXVxyXG4gICAgcHVibGljIHNlbGVjdGVkSW5zdGFuY2UgPSBcIlwiO1xyXG4gICAgcHVibGljIGluc3RhbmNlUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBtZXRyaWNzVG9TaG93OiBNZXRyaWNbXSA9IFtdO1xyXG5cclxuICAgIFBPU1RHZXRJdGVtcyh1cmw6IHN0cmluZywgZGF0YTogTWV0cmljc1ZpZXcsIHVwZGF0ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGRhdGEuZmlsdGVycmVhbHRpbWUgPSB1cGRhdGUgPyBkYXRhLmZpbHRlcnJlYWx0aW1lIDogISghIWRhdGEuZmlsdGVyZnJvbSB8fCAhIWRhdGEuZmlsdGVydG8pO1xyXG5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxNZXRyaWNzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUoYXN5bmMgKHQpID0+IHtcclxuICAgICAgICAgICAgLy9TZSBzb25vIGluIG1vZGFsaXTDoCBkaSB1cGRhdGUgbm9uIGRldm8gdG9jY2FyZSBsYSBzZWFyY2hWaWV3IGF0dHVhbGUgc2Ugbm9uIHBlciBpbCBzZWFyY2hpbnByb2dyZXNzIGNoZSB2aWVuZSBtZXNzbyBkYWxsJ2VzIHRhYmxlXHJcbiAgICAgICAgICAgIGlmICghdXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2UgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNzVG9TaG93ID0gW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3Lml0ZW1zLmZvckVhY2gobSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLkluc3RhbmNlcy5maW5kKHQgPT4gdC5pZCA9PSBtLmluc3RhbmNlKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5JbnN0YW5jZXMucHVzaChuZXcgS2V5VmFsdWUobS5pbnN0YW5jZSwgbS5pbnN0YW5jZSkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlUmVxdWlyZWQgPSB0aGlzLkluc3RhbmNlcy5sZW5ndGggPiAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuSW5zdGFuY2VzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluc3RhbmNlID0gdGhpcy5JbnN0YW5jZXNbMF0uaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVNlbGVjdGVkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoTWV0cmljc1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gUGVyIG9nbmkgZ3JhZmljbyBkaSBvZ25pIG1ldHJpY2EgYWdnaXVuZ28gdHV0dGkgaSB2YWxvcmkgY2hlIHNvbm8gRE9QTyBhbGwndWx0aW1vIHRzIHJlZ2lzdHJhdG8gcGVyIHF1ZWwgZ3JhZmljb1xyXG4gICAgICAgICAgICAgICAgdC5pdGVtcy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG0udmFsdWVzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWZtID0gdGhpcy5NZXRyaWNzQ2hhcnRDYWNoZVt0aGlzLm1ldHJpY0tleShtLCBjKV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWZtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNlcmllcy5mb3JFYWNoKHMgPT4geyBzLnZhbHVlcyA9IHMudmFsdWVzLmZpbHRlcih2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKS5pc0FmdGVyKHJlZm0ubGFzdFRzKSk7IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMuc2VyaWVzLnNvbWUodCA9PiB0LnZhbHVlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm0ubGFzdFRzID0gYy5zZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZtLmNoYXJ0LmFkZERhdGEoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zdGFuY2VTZWxlY3RlZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJbnN0YW5jZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLm1ldHJpY3NUb1Nob3cgPSB0aGlzLnNlYXJjaFZpZXcuaXRlbXMuZmlsdGVyKHQgPT4gdC5pbnN0YW5jZSA9PSB0aGlzLnNlbGVjdGVkSW5zdGFuY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGxpbmtDaGFydFRvTWV0cmljKG1ldHJpYzogTWV0cmljLCBtZXRyaWNDaGFydDogTWV0cmljQ2hhcnQsIGNoYXJ0Q29tcDogQmFzZUNoYXJ0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5NZXRyaWNzQ2hhcnRDYWNoZVt0aGlzLm1ldHJpY0tleShtZXRyaWMsIG1ldHJpY0NoYXJ0KV0gPSB7IGNoYXJ0OiBjaGFydENvbXAsIGxhc3RUczogbWV0cmljQ2hhcnQuc2VyaWVzLm1hcCh0ID0+IGRheWpzLm1heCh0LnZhbHVlcy5tYXAodiA9PiB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHYuZCkpKSlbMF0gfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1ldHJpY0tleShtZXRyaWM6IE1ldHJpYywgdmFsdWU6IE1ldHJpY0NoYXJ0KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gbWV0cmljLm5hbWUgKyBcIiAtIFwiICsgdmFsdWUueHRpdGxlICsgXCIgLSBcIiArIG1ldHJpYy5pbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjcmVnaW9uIEdlc3Rpb25lIHVwZGF0ZSBhdXRvbWF0aWNvXHJcbiAgICB1cGRhdGVUaW1lcjogYW55O1xyXG4gICAgYXV0b1VwZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCEvXlsxLTldXFxkKiQvLnRlc3QodGhpcy5zZWNvbmRzKSlcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gJzEwJztcclxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IHBhcnNlSW50KHRoaXMuc2Vjb25kcywgbnVsbCkgKiAxMDAwO1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTsgfSwgc2Vjb25kc0luTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J1N5c3RlbSBNZXRyaWNzJyB8IGxvY2FsaXplIDogbGN9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHJvdyBhcHAtbm8tcGFkZGluZyBhcHAtZmlyc3QtZmlsdGVyLWxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGV0aW1lIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJmcm9tXCIgbmFtZT1cImZpbHRlcmZyb21cIiBbUGxhY2Vob2xkZXJdPVwiJ0Zyb20nIHwgbG9jYWxpemUgOiBsY1wiIChpbnB1dENoYW5nZSk9XCJkYXRlQ2hhbmdlZCgpO1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydG9cIiBuYW1lPVwiZmlsdGVydG9cIiBbUGxhY2Vob2xkZXJdPVwiJ1RvJyB8IGxvY2FsaXplIDogbGNcIiAoaW5wdXRDaGFuZ2UpPVwiZGF0ZUNoYW5nZWQoKTtcIj48L2Zvcm0tZGF0ZXRpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnNpZFwiIG5hbWU9XCJmaWx0ZXJzaWRcIiBbUGxhY2Vob2xkZXJdPVwiJ1Nlc3Npb24gSUQnIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyc2VyaWFsXCIgbmFtZT1cImZpbHRlcnNlcmlhbFwiIFtQbGFjZWhvbGRlcl09XCInU2Vzc2lvbiBTZXJpYWwnIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiByb3cgYXBwLW5vLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLW11bHRpc2VsZWN0IFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJtZXRyaWNzXCIgW0lkRmllbGRdPVwiJ25hbWUnXCIgW0Rpc3BsYXldPVwiJ3tuYW1lfSdcIiBuYW1lPVwiZmlsdGVybWV0cmljc1wiIFtTZWxlY3RMYWJlbF09XCInRmlsdGVyIE1ldHJpY3MuLi4nIHwgbG9jYWxpemUgOiBsY1wiIFtTb3VyY2VdPVwiTWV0cmljc1wiPjwvZm9ybS1tdWx0aXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyB8fCBhdXRvVXBkYXRlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBidG4gYXBwLWJ0bi1zZWFyY2hcIiAoY2xpY2spPVwic2VuZFNlYXJjaCgpXCIgdHlwZT1cInN1Ym1pdFwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtY29sLTEyIGFwcC1tYXJnaW4tdG9wLTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydVcGRhdGUgZXZlcnknIHwgbG9jYWxpemUgOiBsY319Jm5ic3A7PGlucHV0IFtyZWFkb25seV09XCJhdXRvVXBkYXRlXCIgbWF4bGVuZ3RoPVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGFwcC11cGRldmVyeS1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWNvbmRzXCIgLz4mbmJzcDt7eydzZWNvbmQvcycgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLXJpZ2h0IG0tdC0yIGFwcC1tYXJnaW4tcmlnaHQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiYXV0b1VwZGF0ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImF1dG9VcGRhdGVDaGFuZ2VkKCk7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyIHJvdW5kXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snTG9hZGluZyBEYXRhJyB8IGxvY2FsaXplIDogbGN9fTwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlldyAmJiBpbnN0YW5jZVJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbTGFiZWxdPVwiJ01ldHJpY3MgSW5zdGFuY2UnIHwgbG9jYWxpemUgOiBsY1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJbnN0YW5jZVwiIG5hbWU9XCJpbnN0YW5jZVwiIFtTb3VyY2VdPVwiSW5zdGFuY2VzXCIgKGlucHV0Q2hhbmdlKT1cImluc3RhbmNlU2VsZWN0ZWQoKVwiIHJlcXVpcmVkPjwvZm9ybS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlldyAmJiBtZXRyaWNzVG9TaG93ICYmIG1ldHJpY3NUb1Nob3cubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtcGFkZGluZy1yaWdodC0wIHJvdyBhcHAtbWFyZ2luLXRvcC0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldHJpYyBvZiBtZXRyaWNzVG9TaG93OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBhcHAtbm8tcGFkZGluZyBhcHAtc2ltcGxlLWJvcmRlclwiICpuZ0Zvcj1cImxldCBjaGFydCBvZiBtZXRyaWMudmFsdWVzOyBsZXQgeiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjYwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtbGluZS1jaGFydCBbWFRpdGxlXT1cImNoYXJ0Lnh0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1lUaXRsZV09XCJjaGFydC55dGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNaW5HcmlkRGlzdGFuY2VdPVwiNjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtUaW1lbGluZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0xlZ2VuZFBhZGRpbmddPVwie3RvcDogMCwgYm90dG9tOiA3LCByaWdodDogMCwgbGVmdDogMTB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWVyZ2VEYXRhc2V0c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YV09XCJjaGFydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0FuaW1hdGlvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0xlZ2VuZF09XCJjaGFydC5sZWdlbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJtZXRyaWNfe3tpfX1fY2hhcnRfe3t6fX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFydExvYWRlZCk9XCJsaW5rQ2hhcnRUb01ldHJpYyhtZXRyaWMsIGNoYXJ0LCAkZXZlbnQpO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RhdGFHcm91cGluZ1RocmVzaG9sZF09XCI5OTk5OTk5OVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtbGluZS1jaGFydD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljc19zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9tZXRyaWNzL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvbWV0cmljcy9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RCxPQUFPLEVBQWUsbUJBQW1CLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFekYsZUFBZTtBQUNmLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFXL0QsTUFBTSxPQUFPLG1CQUFtQjtJQVc1QixZQUNXLFFBQXFCLEVBQ3JCLEVBQXVCLEVBQ3RCLFlBQWdDLEVBQ2hDLFFBQWtCLEVBQ2xCLFFBQXlCLEVBQ3pCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ0ksR0FBVztRQVByQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FB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RyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBSUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3hGOztZQUVHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Z0hBaEtRLG1CQUFtQixrT0FtQmhCLGVBQWU7b0dBbkJsQixtQkFBbUIseUNBTGpCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTtLQUM1RCwwQkM5QkwsMi9OQXlGTTsyRkR4RE8sbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixhQUNmO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7cUJBQzVEOzswQkFzQkksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSwgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NoYXJlZC9LZXlWYWx1ZVwiO1xyXG5pbXBvcnQgeyBNZXRyaWMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTWV0cmljXCI7XHJcbmltcG9ydCB7IE1ldHJpY0NoYXJ0IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY0NoYXJ0XCI7XHJcbmltcG9ydCB7IE1ldHJpY3NWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY3NWaWV3XCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcbmltcG9ydCB7IEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbU1ldHJpY3NMb2MgfSBmcm9tIFwiLi9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcblxyXG5kZWNsYXJlIHZhciBkYXlqcztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwibWV0cmljc19zZWFyY2hcIixcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbU1ldHJpY3NMb2MgfVxyXG4gICAgXSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vbWV0cmljc19zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtTWV0cmljc0NvbXBvbmVudCB7XHJcblxyXG4gICAgcHVibGljIE1ldHJpY3M6IE1ldHJpY1tdO1xyXG4gICAgcHJpdmF0ZSBNZXRyaWNzQ2hhcnRDYWNoZTogeyBbbmFtZTogc3RyaW5nXTogeyBjaGFydDogQmFzZUNoYXJ0Q29tcG9uZW50LCBsYXN0VHM6IERhdGUgfSB9ID0ge307XHJcblxyXG4gICAgcHVibGljIHNlYXJjaFZpZXc6IE1ldHJpY3NWaWV3ID0gbmV3IE1ldHJpY3NWaWV3KCk7XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGRhdGVFeHRzOiBEYXRlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBASW5qZWN0KEFETV9NT0RVTEVfUEFUSCkgcHJpdmF0ZSBtb2Q6IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBkYXRlQ2hhbmdlZCgpIHtcclxuICAgICAgICAvLyBQdWxpemlhIGRpIHR1dHRpIGkgcGFyYW1ldHJpIGRpIHJpY2VyY2EgZGlwZW5kZW50aSBkYWxsZSBkYXRlXHJcbiAgICAgICAgdGhpcy5tZXRyaWNzVG9TaG93ID0gW107XHJcbiAgICAgICAgdGhpcy5NZXRyaWNzID0gW107XHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZVJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5JbnN0YW5jZXMgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2UgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJtZXRyaWNzID0gW107XHJcblxyXG4gICAgICAgIHZhciBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJmcm9tXCIsIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJmcm9tIHx8IFwiXCIpLnNldChcInRvXCIsIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0byB8fCBcIlwiKVxyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8TWV0cmljW10+KFJlcG9zaXRvcnlbXCJHRVRfQWRtX0dldE1ldHJpY3NcIl0sIHBhcnMpLnN1YnNjcmliZSh0ID0+IHRoaXMuTWV0cmljcyA9IHQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPE1ldHJpY3NWaWV3PihcIkhvdFNlYXJjaE1ldHJpY3NcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS9tZXRyaWNzYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaE1ldHJpY3NcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBNZXRyaWNzVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0TWV0cmljc1wiXSwgdGhpcy5zZWFyY2hWaWV3LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgTWV0cmljc1ZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2hWaWV3T3ZlcnJpZGU6IE1ldHJpY3NWaWV3ID0gbnVsbCkge1xyXG4gICAgICAgIGlmICghdXBkYXRlKVxyXG4gICAgICAgICAgICB0aGlzLk1ldHJpY3NDaGFydENhY2hlID0ge307XHJcblxyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICAvLyBRdWVzdGEgcmljZXJjYSBwcmVuZGUgaSBub21pIGRpc3RpbmN0IGRlbGxlIG1ldHJpY2hlIHF1aW5kaSBkZXZvIHByZW5kZXJlIHR1dHRvIHBlciBmb3J6YVxyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZSA9IDk5OTk5OTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRNZXRyaWNzXCJdLCBzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3LCB1cGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBJbnN0YW5jZXM6IEtleVZhbHVlW10gPSBbXVxyXG4gICAgcHVibGljIHNlbGVjdGVkSW5zdGFuY2UgPSBcIlwiO1xyXG4gICAgcHVibGljIGluc3RhbmNlUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBtZXRyaWNzVG9TaG93OiBNZXRyaWNbXSA9IFtdO1xyXG5cclxuICAgIFBPU1RHZXRJdGVtcyh1cmw6IHN0cmluZywgZGF0YTogTWV0cmljc1ZpZXcsIHVwZGF0ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGRhdGEuZmlsdGVycmVhbHRpbWUgPSB1cGRhdGUgPyBkYXRhLmZpbHRlcnJlYWx0aW1lIDogISghIWRhdGEuZmlsdGVyZnJvbSB8fCAhIWRhdGEuZmlsdGVydG8pO1xyXG5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxNZXRyaWNzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUoYXN5bmMgKHQpID0+IHtcclxuICAgICAgICAgICAgLy9TZSBzb25vIGluIG1vZGFsaXTDoCBkaSB1cGRhdGUgbm9uIGRldm8gdG9jY2FyZSBsYSBzZWFyY2hWaWV3IGF0dHVhbGUgc2Ugbm9uIHBlciBpbCBzZWFyY2hpbnByb2dyZXNzIGNoZSB2aWVuZSBtZXNzbyBkYWxsJ2VzIHRhYmxlXHJcbiAgICAgICAgICAgIGlmICghdXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2UgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNzVG9TaG93ID0gW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3Lml0ZW1zLmZvckVhY2gobSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLkluc3RhbmNlcy5maW5kKHQgPT4gdC5pZCA9PSBtLmluc3RhbmNlKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5JbnN0YW5jZXMucHVzaChuZXcgS2V5VmFsdWUobS5pbnN0YW5jZSwgbS5pbnN0YW5jZSkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlUmVxdWlyZWQgPSB0aGlzLkluc3RhbmNlcy5sZW5ndGggPiAxO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuSW5zdGFuY2VzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluc3RhbmNlID0gdGhpcy5JbnN0YW5jZXNbMF0uaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVNlbGVjdGVkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoTWV0cmljc1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gUGVyIG9nbmkgZ3JhZmljbyBkaSBvZ25pIG1ldHJpY2EgYWdnaXVuZ28gdHV0dGkgaSB2YWxvcmkgY2hlIHNvbm8gRE9QTyBhbGwndWx0aW1vIHRzIHJlZ2lzdHJhdG8gcGVyIHF1ZWwgZ3JhZmljb1xyXG4gICAgICAgICAgICAgICAgdC5pdGVtcy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG0udmFsdWVzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWZtID0gdGhpcy5NZXRyaWNzQ2hhcnRDYWNoZVt0aGlzLm1ldHJpY0tleShtLCBjKV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWZtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNlcmllcy5mb3JFYWNoKHMgPT4geyBzLnZhbHVlcyA9IHMudmFsdWVzLmZpbHRlcih2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKS5pc0FmdGVyKHJlZm0ubGFzdFRzKSk7IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMuc2VyaWVzLnNvbWUodCA9PiB0LnZhbHVlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm0ubGFzdFRzID0gYy5zZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZtLmNoYXJ0LmFkZERhdGEoYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zdGFuY2VTZWxlY3RlZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJbnN0YW5jZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLm1ldHJpY3NUb1Nob3cgPSB0aGlzLnNlYXJjaFZpZXcuaXRlbXMuZmlsdGVyKHQgPT4gdC5pbnN0YW5jZSA9PSB0aGlzLnNlbGVjdGVkSW5zdGFuY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGxpbmtDaGFydFRvTWV0cmljKG1ldHJpYzogTWV0cmljLCBtZXRyaWNDaGFydDogTWV0cmljQ2hhcnQsIGNoYXJ0Q29tcDogQmFzZUNoYXJ0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5NZXRyaWNzQ2hhcnRDYWNoZVt0aGlzLm1ldHJpY0tleShtZXRyaWMsIG1ldHJpY0NoYXJ0KV0gPSB7IGNoYXJ0OiBjaGFydENvbXAsIGxhc3RUczogbWV0cmljQ2hhcnQuc2VyaWVzLm1hcCh0ID0+IGRheWpzLm1heCh0LnZhbHVlcy5tYXAodiA9PiB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHYuZCkpKSlbMF0gfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1ldHJpY0tleShtZXRyaWM6IE1ldHJpYywgdmFsdWU6IE1ldHJpY0NoYXJ0KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gbWV0cmljLm5hbWUgKyBcIiAtIFwiICsgdmFsdWUueHRpdGxlICsgXCIgLSBcIiArIG1ldHJpYy5pbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAjcmVnaW9uIEdlc3Rpb25lIHVwZGF0ZSBhdXRvbWF0aWNvXHJcbiAgICB1cGRhdGVUaW1lcjogYW55O1xyXG4gICAgYXV0b1VwZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCEvXlsxLTldXFxkKiQvLnRlc3QodGhpcy5zZWNvbmRzKSlcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gJzEwJztcclxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IHBhcnNlSW50KHRoaXMuc2Vjb25kcywgbnVsbCkgKiAxMDAwO1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTsgfSwgc2Vjb25kc0luTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J01ldHJpY2hlIGRpIFNpc3RlbWEnIHwgbG9jYWxpemU6IGxjfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgd2lkZ2V0LWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiByb3cgYXBwLW5vLXBhZGRpbmcgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidEYScgfCBsb2NhbGl6ZTogbGNcIiAoaW5wdXRDaGFuZ2UpPVwiZGF0ZUNoYW5nZWQoKTtcIj48L2Zvcm0tZGF0ZXRpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tZGF0ZXRpbWUgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRvXCIgbmFtZT1cImZpbHRlcnRvXCIgW1BsYWNlaG9sZGVyXT1cIidBJyB8IGxvY2FsaXplOiBsY1wiIChpbnB1dENoYW5nZSk9XCJkYXRlQ2hhbmdlZCgpO1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyc2lkXCIgbmFtZT1cImZpbHRlcnNpZFwiIFtQbGFjZWhvbGRlcl09XCInQ29kLiBTZXNzaW9uZScgfCBsb2NhbGl6ZTogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnNlcmlhbFwiIG5hbWU9XCJmaWx0ZXJzZXJpYWxcIiBbUGxhY2Vob2xkZXJdPVwiJ1NlcmlhbGUgU2Vzc2lvbmUnIHwgbG9jYWxpemU6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHJvdyBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tbXVsdGlzZWxlY3QgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcm1ldHJpY3NcIiBbSWRGaWVsZF09XCInbmFtZSdcIiBbRGlzcGxheV09XCIne25hbWV9J1wiIG5hbWU9XCJmaWx0ZXJtZXRyaWNzXCIgW1NlbGVjdExhYmVsXT1cIidGaWx0cmEgTWV0cmljaGUuLi4nIHwgbG9jYWxpemU6IGxjXCIgW1NvdXJjZV09XCJNZXRyaWNzXCI+PC9mb3JtLW11bHRpc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGFwcC1uby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzIHx8IGF1dG9VcGRhdGVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1jb2wtMTIgYXBwLW1hcmdpbi10b3AtMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0FnZ2lvcm5hIG9nbmknIHwgbG9jYWxpemU6IGxjfX0mbmJzcDs8aW5wdXQgW3JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBtYXhsZW5ndGg9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXVwZGV2ZXJ5LWlucHV0XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlY29uZHNcIiBuYW1lPVwic2Vjb25kc1wiIC8+Jm5ic3A7e3snc2Vjb25kby9pJyB8IGxvY2FsaXplOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtLXQtMiBhcHAtbWFyZ2luLXJpZ2h0LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImF1dG9VcGRhdGVcIiBuYW1lPVwiYXV0b1VwZGF0ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImF1dG9VcGRhdGVDaGFuZ2VkKCk7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyIHJvdW5kXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snQ2FyaWNvIGkgRGF0aScgfCBsb2NhbGl6ZTogbGN9fTwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlldyAmJiBpbnN0YW5jZVJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbTGFiZWxdPVwiJ0lzdGFuemEgTWV0cmljaGUnIHwgbG9jYWxpemU6IGxjXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEluc3RhbmNlXCIgbmFtZT1cImluc3RhbmNlXCIgW1NvdXJjZV09XCJJbnN0YW5jZXNcIiAoaW5wdXRDaGFuZ2UpPVwiaW5zdGFuY2VTZWxlY3RlZCgpXCIgcmVxdWlyZWQ+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3ICYmIG1ldHJpY3NUb1Nob3cgJiYgbWV0cmljc1RvU2hvdy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1wYWRkaW5nLXJpZ2h0LTAgcm93IGFwcC1tYXJnaW4tdG9wLTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWV0cmljIG9mIG1ldHJpY3NUb1Nob3c7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGFwcC1uby1wYWRkaW5nIGFwcC1zaW1wbGUtYm9yZGVyXCIgKm5nRm9yPVwibGV0IGNoYXJ0IG9mIG1ldHJpYy52YWx1ZXM7IGxldCB6ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAyNjBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy1saW5lLWNoYXJ0IFtYVGl0bGVdPVwiY2hhcnQueHRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbWVRpdGxlXT1cImNoYXJ0Lnl0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01pbkdyaWREaXN0YW5jZV09XCI2NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RpbWVsaW5lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kUGFkZGluZ109XCJ7dG9wOiAwLCBib3R0b206IDcsIHJpZ2h0OiAwLCBsZWZ0OiAxMH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNZXJnZURhdGFzZXRzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhXT1cImNoYXJ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQW5pbWF0aW9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kXT1cImNoYXJ0LmxlZ2VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1ldHJpY197e2l9fV9jaGFydF97e3p9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXJ0TG9hZGVkKT1cImxpbmtDaGFydFRvTWV0cmljKG1ldHJpYywgY2hhcnQsICRldmVudCk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YUdyb3VwaW5nVGhyZXNob2xkXT1cIjk5OTk5OTk5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy1saW5lLWNoYXJ0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -4,26 +4,26 @@ import * as i0 from "@angular/core";
4
4
  export class AdmProfilerComponentLoc extends LocalizationService {
5
5
  constructor(injector) {
6
6
  super(injector);
7
- super.set("en->it", "Server Profiler", ["Profiler del Server"]);
8
- super.set("en->it", "Loading Data", ["Carico i Dati"]);
9
- super.set("en->it", "ID", ["ID"]);
10
- super.set("en->it", "Description", ["Descrizione"]);
11
- super.set("en->it", "Calls", ["Chiamate"]);
12
- super.set("en->it", "Time", ["Tempo"]);
13
- super.set("en->it", "Peak Time", ["Tempo Max"]);
14
- super.set("en->it", "Min. Time", ["Tempo Min"]);
15
- super.set("en->it", "Avg. Time", ["Tempo Medio"]);
16
- super.set("en->it", "Specific Time", ["Tempo Specifico"]);
17
- super.set("en->it", "Percentage", ["Percentuale"]);
18
- super.set("en->it", "Calls for Period", ["Chiamate Periodo"]);
19
- super.set("en->it", "Time for Period", ["Tempo Periodo"]);
20
- super.set("en->it", "Peak Time for Period", ["Tempo Max Periodo"]);
21
- super.set("en->it", "Min. Time for Period", ["Tempo Min Periodo"]);
22
- super.set("en->it", "Avg. Time for Period", ["Tempo Medio Periodo"]);
23
- super.set("en->it", "Specific Time for Period", ["Tempo Specifico Periodo"]);
24
- super.set("en->it", "Percentage for Period", ["Percentuale Periodo"]);
25
- super.set("en->it", "Event Type Name", ["Nome Tipologia Evento"]);
26
- super.set("en->it", "Wait Class Name", ["Nome Classe Attesa"]);
7
+ super.set("it->en", "Profiler del Server", ["Server Profiler"]);
8
+ super.set("it->en", "Carico i Dati", ["Loading Data"]);
9
+ super.set("it->en", "ID", ["ID"]);
10
+ super.set("it->en", "Descrizione", ["Description"]);
11
+ super.set("it->en", "Chiamate", ["Calls"]);
12
+ super.set("it->en", "Tempo", ["Time"]);
13
+ super.set("it->en", "Tempo Max", ["Peak Time"]);
14
+ super.set("it->en", "Tempo Min", ["Min. Time"]);
15
+ super.set("it->en", "Tempo Medio", ["Avg. Time"]);
16
+ super.set("it->en", "Tempo Specifico", ["Specific Time"]);
17
+ super.set("it->en", "Percentuale", ["Percentage"]);
18
+ super.set("it->en", "Chiamate Periodo", ["Calls for Period"]);
19
+ super.set("it->en", "Tempo Periodo", ["Time for Period"]);
20
+ super.set("it->en", "Tempo Max Periodo", ["Peak Time for Period"]);
21
+ super.set("it->en", "Tempo Min Periodo", ["Min. Time for Period"]);
22
+ super.set("it->en", "Tempo Medio Periodo", ["Avg. Time for Period"]);
23
+ super.set("it->en", "Tempo Specifico Periodo", ["Specific Time for Period"]);
24
+ super.set("it->en", "Percentuale Periodo", ["Percentage for Period"]);
25
+ super.set("it->en", "Nome Tipologia Evento", ["Event Type Name"]);
26
+ super.set("it->en", "Nome Classe Attesa", ["Wait Class Name"]);
27
27
  }
28
28
  }
29
29
  AdmProfilerComponentLoc.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmProfilerComponentLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -31,4 +31,4 @@ AdmProfilerComponentLoc.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmProfilerComponentLoc, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5sb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3Byb2ZpbGVyL2FkbV9wcm9maWxlci5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDNUQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDaEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUNyRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQztRQUM3RSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUN0RSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOztvSEF4QlEsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWRtUHJvZmlsZXJDb21wb25lbnRMb2MgZXh0ZW5kcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiU2VydmVyIFByb2ZpbGVyXCIsIFtcIlByb2ZpbGVyIGRlbCBTZXJ2ZXJcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkxvYWRpbmcgRGF0YVwiLCBbXCJDYXJpY28gaSBEYXRpXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJJRFwiLCBbXCJJRFwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiRGVzY3JpcHRpb25cIiwgW1wiRGVzY3JpemlvbmVcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkNhbGxzXCIsIFtcIkNoaWFtYXRlXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJUaW1lXCIsIFtcIlRlbXBvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJQZWFrIFRpbWVcIiwgW1wiVGVtcG8gTWF4XCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJNaW4uIFRpbWVcIiwgW1wiVGVtcG8gTWluXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJBdmcuIFRpbWVcIiwgW1wiVGVtcG8gTWVkaW9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNwZWNpZmljIFRpbWVcIiwgW1wiVGVtcG8gU3BlY2lmaWNvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJQZXJjZW50YWdlXCIsIFtcIlBlcmNlbnR1YWxlXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJDYWxscyBmb3IgUGVyaW9kXCIsIFtcIkNoaWFtYXRlIFBlcmlvZG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlRpbWUgZm9yIFBlcmlvZFwiLCBbXCJUZW1wbyBQZXJpb2RvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJQZWFrIFRpbWUgZm9yIFBlcmlvZFwiLCBbXCJUZW1wbyBNYXggUGVyaW9kb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiTWluLiBUaW1lIGZvciBQZXJpb2RcIiwgW1wiVGVtcG8gTWluIFBlcmlvZG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkF2Zy4gVGltZSBmb3IgUGVyaW9kXCIsIFtcIlRlbXBvIE1lZGlvIFBlcmlvZG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNwZWNpZmljIFRpbWUgZm9yIFBlcmlvZFwiLCBbXCJUZW1wbyBTcGVjaWZpY28gUGVyaW9kb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiUGVyY2VudGFnZSBmb3IgUGVyaW9kXCIsIFtcIlBlcmNlbnR1YWxlIFBlcmlvZG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkV2ZW50IFR5cGUgTmFtZVwiLCBbXCJOb21lIFRpcG9sb2dpYSBFdmVudG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIldhaXQgQ2xhc3MgTmFtZVwiLCBbXCJOb21lIENsYXNzZSBBdHRlc2FcIl0pO1xyXG4gICAgfVxyXG59Il19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5sb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3Byb2ZpbGVyL2FkbV9wcm9maWxlci5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDNUQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDaEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUNyRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztRQUM3RSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUN0RSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOztvSEF4QlEsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWRtUHJvZmlsZXJDb21wb25lbnRMb2MgZXh0ZW5kcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgc3VwZXIuc2V0KFwiaXQtPmVuXCIsIFwiUHJvZmlsZXIgZGVsIFNlcnZlclwiLCBbXCJTZXJ2ZXIgUHJvZmlsZXJcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIkNhcmljbyBpIERhdGlcIiwgW1wiTG9hZGluZyBEYXRhXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJJRFwiLCBbXCJJRFwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiaXQtPmVuXCIsIFwiRGVzY3JpemlvbmVcIiwgW1wiRGVzY3JpcHRpb25cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIkNoaWFtYXRlXCIsIFtcIkNhbGxzXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJUZW1wb1wiLCBbXCJUaW1lXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJUZW1wbyBNYXhcIiwgW1wiUGVhayBUaW1lXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJUZW1wbyBNaW5cIiwgW1wiTWluLiBUaW1lXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJUZW1wbyBNZWRpb1wiLCBbXCJBdmcuIFRpbWVcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIlRlbXBvIFNwZWNpZmljb1wiLCBbXCJTcGVjaWZpYyBUaW1lXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJQZXJjZW50dWFsZVwiLCBbXCJQZXJjZW50YWdlXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJDaGlhbWF0ZSBQZXJpb2RvXCIsIFtcIkNhbGxzIGZvciBQZXJpb2RcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIlRlbXBvIFBlcmlvZG9cIiwgW1wiVGltZSBmb3IgUGVyaW9kXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJpdC0+ZW5cIiwgXCJUZW1wbyBNYXggUGVyaW9kb1wiLCBbXCJQZWFrIFRpbWUgZm9yIFBlcmlvZFwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiaXQtPmVuXCIsIFwiVGVtcG8gTWluIFBlcmlvZG9cIiwgW1wiTWluLiBUaW1lIGZvciBQZXJpb2RcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIlRlbXBvIE1lZGlvIFBlcmlvZG9cIiwgW1wiQXZnLiBUaW1lIGZvciBQZXJpb2RcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIlRlbXBvIFNwZWNpZmljbyBQZXJpb2RvXCIsIFtcIlNwZWNpZmljIFRpbWUgZm9yIFBlcmlvZFwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiaXQtPmVuXCIsIFwiUGVyY2VudHVhbGUgUGVyaW9kb1wiLCBbXCJQZXJjZW50YWdlIGZvciBQZXJpb2RcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIk5vbWUgVGlwb2xvZ2lhIEV2ZW50b1wiLCBbXCJFdmVudCBUeXBlIE5hbWVcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcIml0LT5lblwiLCBcIk5vbWUgQ2xhc3NlIEF0dGVzYVwiLCBbXCJXYWl0IENsYXNzIE5hbWVcIl0pO1xyXG4gICAgfVxyXG59Il19
@@ -101,12 +101,12 @@ export class AdmProfilerComponent {
101
101
  }
102
102
  }
103
103
  AdmProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmProfilerComponent, deps: [{ token: i1.ExportService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i4.Location }, { token: i1.InterComService }, { token: i5.HTTPService }, { token: i6.ActivatedRoute }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
104
- AdmProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmProfilerComponent, selector: "adm_profiler", providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Server Profiler' | localize : lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n <span *th=\"'17'\">{{'Event Type Name' | localize : lc}}</span>\r\n <span *th=\"'18'\">{{'Wait Class Name' | localize : lc}}</span>\r\n\r\n <span *td=\"'1'; let item\"><span class=\"app-link app-inline\" (click)=\"loadNodeDetails(item.id); dlgNodeDetails.show();\">{{item.id}}</span></span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren }}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'17' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'18' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i9.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "directive", type: i9.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnable", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thShrink", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation", "thProperty", "thType", "thSource", "thMulti", "thStaticContent", "thBackgroundColor", "thAlignment", "thFormat", "thEditorName", "thEditorOptions", "thRendererName", "thRoutePath", "thRouteParameterProperties"] }, { kind: "component", type: i9.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i10.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { kind: "component", type: i11.NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
104
+ AdmProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmProfilerComponent, selector: "adm_profiler", providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Profiler del Server' | localize: lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize: lc}}</span>\r\n <span *th=\"'2'\">{{'Descrizione' | localize: lc}}</span>\r\n <span *th=\"'3'\">{{'Chiamate' | localize: lc}}</span>\r\n <span *th=\"'4'\">{{'Tempo' | localize: lc}}</span>\r\n <span *th=\"'5'\">{{'Tempo Max' | localize: lc}}</span>\r\n <span *th=\"'6'\">{{'Tempo Min' | localize: lc}}</span>\r\n <span *th=\"'7'\">{{'Tempo Medio' | localize: lc}}</span>\r\n <span *th=\"'8'\">{{'Tempo Specifico' | localize: lc}}</span>\r\n <span *th=\"'9'\">{{'Percentuale' | localize: lc}}</span>\r\n <span *th=\"'10'\">{{'Chiamate Periodo' | localize: lc}}</span>\r\n <span *th=\"'11'\">{{'Tempo Periodo' | localize: lc}}</span>\r\n <span *th=\"'12'\">{{'Tempo Max Periodo' | localize: lc}}</span>\r\n <span *th=\"'13'\">{{'Tempo Min Periodo' | localize: lc}}</span>\r\n <span *th=\"'14'\">{{'Tempo Medio Periodo' | localize: lc}}</span>\r\n <span *th=\"'15'\">{{'Tempo Specifico Periodo' | localize: lc}}</span>\r\n <span *th=\"'16'\">{{'Percentuale Periodo' | localize: lc}}</span>\r\n <span *th=\"'17'\">{{'Nome Tipologia Evento' | localize: lc}}</span>\r\n <span *th=\"'18'\">{{'Nome Classe Attesa' | localize: lc}}</span>\r\n\r\n <span *td=\"'1'; let item\"><span class=\"app-link app-inline\" (click)=\"loadNodeDetails(item.id); dlgNodeDetails.show();\">{{item.id}}</span></span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren }}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'17' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'18' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i9.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "directive", type: i9.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnable", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thShrink", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation", "thProperty", "thType", "thSource", "thMulti", "thStaticContent", "thBackgroundColor", "thAlignment", "thFormat", "thEditorName", "thEditorOptions", "thRendererName", "thRoutePath", "thRouteParameterProperties"] }, { kind: "component", type: i9.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i10.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { kind: "component", type: i11.NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
105
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmProfilerComponent, decorators: [{
106
106
  type: Component,
107
- args: [{ selector: "adm_profiler", providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Server Profiler' | localize : lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n <span *th=\"'17'\">{{'Event Type Name' | localize : lc}}</span>\r\n <span *th=\"'18'\">{{'Wait Class Name' | localize : lc}}</span>\r\n\r\n <span *td=\"'1'; let item\"><span class=\"app-link app-inline\" (click)=\"loadNodeDetails(item.id); dlgNodeDetails.show();\">{{item.id}}</span></span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren }}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'17' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'18' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>" }]
107
+ args: [{ selector: "adm_profiler", providers: [{ provide: LocalizationService, useClass: AdmProfilerComponentLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Profiler del Server' | localize: lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'Da' | localize: lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'A' | localize: lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Dati' | localize: lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize: lc}}</span>\r\n <span *th=\"'2'\">{{'Descrizione' | localize: lc}}</span>\r\n <span *th=\"'3'\">{{'Chiamate' | localize: lc}}</span>\r\n <span *th=\"'4'\">{{'Tempo' | localize: lc}}</span>\r\n <span *th=\"'5'\">{{'Tempo Max' | localize: lc}}</span>\r\n <span *th=\"'6'\">{{'Tempo Min' | localize: lc}}</span>\r\n <span *th=\"'7'\">{{'Tempo Medio' | localize: lc}}</span>\r\n <span *th=\"'8'\">{{'Tempo Specifico' | localize: lc}}</span>\r\n <span *th=\"'9'\">{{'Percentuale' | localize: lc}}</span>\r\n <span *th=\"'10'\">{{'Chiamate Periodo' | localize: lc}}</span>\r\n <span *th=\"'11'\">{{'Tempo Periodo' | localize: lc}}</span>\r\n <span *th=\"'12'\">{{'Tempo Max Periodo' | localize: lc}}</span>\r\n <span *th=\"'13'\">{{'Tempo Min Periodo' | localize: lc}}</span>\r\n <span *th=\"'14'\">{{'Tempo Medio Periodo' | localize: lc}}</span>\r\n <span *th=\"'15'\">{{'Tempo Specifico Periodo' | localize: lc}}</span>\r\n <span *th=\"'16'\">{{'Percentuale Periodo' | localize: lc}}</span>\r\n <span *th=\"'17'\">{{'Nome Tipologia Evento' | localize: lc}}</span>\r\n <span *th=\"'18'\">{{'Nome Classe Attesa' | localize: lc}}</span>\r\n\r\n <span *td=\"'1'; let item\"><span class=\"app-link app-inline\" (click)=\"loadNodeDetails(item.id); dlgNodeDetails.show();\">{{item.id}}</span></span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren }}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n <span *td=\"'17' let item\">{{item.eventtypename}}</span>\r\n <span *td=\"'18' let item\">{{item.waitclassname}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>" }]
108
108
  }], ctorParameters: function () { return [{ type: i1.ExportService }, { type: i2.LocalizationService }, { type: i3.PreferencesService }, { type: i4.Location }, { type: i1.InterComService }, { type: i5.HTTPService }, { type: i6.ActivatedRoute }, { type: undefined, decorators: [{
109
109
  type: Inject,
110
110
  args: [ADM_MODULE_PATH]
111
111
  }] }]; } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFpQixtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUczRixlQUFlO0FBQ2YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU9sRCxNQUFNLE9BQU8sb0JBQW9CO0lBTTdCLFlBQ1ksT0FBc0IsRUFDdkIsRUFBdUIsRUFDdEIsWUFBZ0MsRUFDaEMsUUFBa0IsRUFDbEIsUUFBeUIsRUFDekIsSUFBaUIsRUFDakIsS0FBcUIsRUFDSSxHQUFXO1FBUHBDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNJLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFiekMsZUFBVSxHQUEwQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFlbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25JLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLENBQUMsV0FBVztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYTtRQUN0QixJQUFJLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUF3QixvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7YUFBTTtZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN4RTtJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBZ0M7UUFDakMsSUFBSSxTQUFTLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRjthQUNJO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsVUFBVSxDQUFDLFlBQXFCLElBQUk7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxTQUFTO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVyxFQUFFLElBQTJCO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF3QixHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhLENBQUMsWUFBWTtRQUN0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF3QixVQUFVLENBQUMsK0JBQStCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkcsSUFBSSxLQUFLLEdBQXVCLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdGLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVksVUFBVSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQXpGUSxvQkFBb0Isb09BY2pCLGVBQWU7cUdBZGxCLG9CQUFvQix1Q0FIbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQywwQkN6QnBGLCtrTUE0RU07MkZEaERPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxjQUFjLGFBQ2IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQzs7MEJBaUIzRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBQcm9maWxlckRhdGFOb2RlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1Byb2ZpbGVyRGF0YU5vZGVcIjtcclxuaW1wb3J0IHsgUHJvZmlsZXJEYXRhTm9kZXNWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1Byb2ZpbGVyRGF0YU5vZGVzVmlld1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBOb2RlU3RhdHMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTm9kZVN0YXRzXCI7XHJcblxyXG5pbXBvcnQgeyBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1Qcm9maWxlckNvbXBvbmVudExvYyB9IGZyb20gXCIuL2FkbV9wcm9maWxlci5jb21wb25lbnQubG9jXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX3Byb2ZpbGVyXCIsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1Qcm9maWxlckNvbXBvbmVudExvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbVByb2ZpbGVyQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBQcm9maWxlckRhdGFOb2Rlc1ZpZXcgPSBuZXcgUHJvZmlsZXJEYXRhTm9kZXNWaWV3KCk7XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG5cclxuICAgIHB1YmxpYyBOb2RlRGV0YWlsczogTm9kZVN0YXRzO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGV4cEV4dHM6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIEluaXQoaWdub3JlU3RvcmUpIHtcclxuICAgICAgICB0aGlzLmRvSW5pdChpZ25vcmVTdG9yZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZG9Jbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08UHJvZmlsZXJEYXRhTm9kZXNWaWV3PihcIkhvdFNlYXJjaFByb2ZpbGF0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgL3BhZ2VzLyR7dGhpcy5tb2R9L3Byb2ZpbGVyYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaFByb2ZpbGF0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFByb2ZpbGVyRGF0YU5vZGVzVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0UHJvZmlsZXJEYXRhTm9kZXNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgUHJvZmlsZXJEYXRhTm9kZXNWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0UHJvZmlsZXJEYXRhTm9kZXNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldEl0ZW1zKHVybDogc3RyaW5nLCBkYXRhOiBQcm9maWxlckRhdGFOb2Rlc1ZpZXcpIHtcclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxQcm9maWxlckRhdGFOb2Rlc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoUHJvZmlsYXRvXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZUV4cG9ydChkYXRhQ2FsbEJhY2spIHtcclxuICAgICAgICB2YXIgdmlldyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWFyY2hWaWV3KSk7XHJcbiAgICAgICAgdmlldy5wYWdlID0gMTtcclxuICAgICAgICB2aWV3Lml0ZW1zcGVycGFnZW92ZXJyaWRlID0gOTk5OTk5OTtcclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxQcm9maWxlckRhdGFOb2Rlc1ZpZXc+KFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRQcm9maWxlckRhdGFOb2Rlc1wiXSwgdmlldykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICBsZXQgaXRlbXM6IFByb2ZpbGVyRGF0YU5vZGVbXSA9IHRoaXMuZXhwRXh0cy5kZXNlcmlhbGl6ZUZvckV4cG9ydCh0Lml0ZW1zLCBQcm9maWxlckRhdGFOb2RlKTtcclxuICAgICAgICAgICAgZGF0YUNhbGxCYWNrKGl0ZW1zKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTm9kZURldGFpbHMobm9kZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLk5vZGVEZXRhaWxzID0gbnVsbDtcclxuICAgICAgICBsZXQgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdub2RlSWQnLCBub2RlSWQpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8Tm9kZVN0YXRzPihSZXBvc2l0b3J5LkdFVF9BZG1fR2V0Tm9kZVN0YXRzLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuTm9kZURldGFpbHMgPSB0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj57eydTZXJ2ZXIgUHJvZmlsZXInIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydG9cIiBuYW1lPVwiZmlsdGVydG9cIiBbUGxhY2Vob2xkZXJdPVwiJ1RvJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBidG4gYXBwLWJ0bi1zZWFyY2ggYXBwLW1hcmdpbi10b3AtMjBcIiAoY2xpY2spPVwic2VuZFNlYXJjaCgpXCIgdHlwZT1cInN1Ym1pdFwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snTG9hZGluZyBEYXRhJyB8IGxvY2FsaXplIDogbGN9fTwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtIaWVyYXJjaHldPVwidHJ1ZVwiIFtPcmRlckJ5Q29sdW1uXT1cImZhbHNlXCIgW1BhcmVudEtleV09XCIncGFyZW50aWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3duS2V5XT1cIidpZCdcIiBbU3RhcnRzRXhwYW5kZWRdPVwiZmFsc2VcIiBbRXhwb3J0RnVuY3Rpb25dPVwicHJlcGFyZUV4cG9ydC5iaW5kKHRoaXMpXCIgW0V4cG9ydF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRXhwb3J0RmlsZU5hbWVdPVwiJ1Byb2ZpbGVyIEV4cG9ydC5jc3YnXCIgW0hpZGVQYWdpbmddPVwidHJ1ZVwiIChvblNlYXJjaFJlcXVlc3QpPVwic2VuZFNlYXJjaCgkZXZlbnQpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxJ1wiPnt7J0lEJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMidcIj57eydEZXNjcmlwdGlvbicgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzMnXCI+e3snQ2FsbHMnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic0J1wiPnt7J1RpbWUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic1J1wiPnt7J1BlYWsgVGltZScgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzYnXCI+e3snTWluLiBUaW1lJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInNydcIj57eydBdmcuIFRpbWUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic4J1wiPnt7J1NwZWNpZmljIFRpbWUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic5J1wiPnt7J1BlcmNlbnRhZ2UnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxMCdcIj57eydDYWxscyBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTEnXCI+e3snVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTInXCI+e3snUGVhayBUaW1lIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxMydcIj57eydNaW4uIFRpbWUgZm9yIFBlcmlvZCcgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzE0J1wiPnt7J0F2Zy4gVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTUnXCI+e3snU3BlY2lmaWMgVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTYnXCI+e3snUGVyY2VudGFnZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTcnXCI+e3snRXZlbnQgVHlwZSBOYW1lJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTgnXCI+e3snV2FpdCBDbGFzcyBOYW1lJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzEnOyBsZXQgaXRlbVwiPjxzcGFuIGNsYXNzPVwiYXBwLWxpbmsgYXBwLWlubGluZVwiIChjbGljayk9XCJsb2FkTm9kZURldGFpbHMoaXRlbS5pZCk7IGRsZ05vZGVEZXRhaWxzLnNob3coKTtcIj57e2l0ZW0uaWR9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzInOyBsZXQgaXRlbVwiIHRpdGxlPVwie3tpdGVtLmRlc2NyaXB0aW9ufX1cIj57e2l0ZW0uZGVzY3JpcHRpb24ubGVuZ3RoIDw9IDUwID8gaXRlbS5kZXNjcmlwdGlvbiA6IGl0ZW0uZGVzY3JpcHRpb24uc3Vic3RyKDAsNTApICsgXCJbLi4uXVwiIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIiczJzsgbGV0IGl0ZW1cIj57e2l0ZW0uY2FsbHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInNCc7IGxldCBpdGVtXCI+e3tpdGVtLnRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInNSc7IGxldCBpdGVtXCI+e3tpdGVtLnBlYWt0aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzYnOyBsZXQgaXRlbVwiPnt7aXRlbS5taW50aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzcnOyBsZXQgaXRlbVwiPnt7aXRlbS5hdmd0aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzgnOyBsZXQgaXRlbVwiPnt7aXRlbS50aW1ld2l0aG91dGNoaWxkcmVuIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic5JzsgbGV0IGl0ZW1cIj57e2l0ZW0ucGVyY2VudGFnZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxMCcgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcGRlbHRhY2FsbHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTEnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBkZWx0YXRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTInIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBwZWFrdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxMycgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcG1pbnRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTQnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBhdmd0aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzE1JyBsZXQgaXRlbVwiPnt7aXRlbS5zbmFwdGltZXdpdGhvdXRjaGlsZHJlbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxNicgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcHBlcmNlbnRhZ2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTcnIGxldCBpdGVtXCI+e3tpdGVtLmV2ZW50dHlwZW5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTgnIGxldCBpdGVtXCI+e3tpdGVtLndhaXRjbGFzc25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBic01vZGFsICNkbGdOb2RlRGV0YWlscz1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPG5vZGUtZGV0YWlsICpuZ0lmPVwiTm9kZURldGFpbHNcIiBbTm9kZURldGFpbHNdPVwiTm9kZURldGFpbHNcIiAob25DbG9zZSk9XCJkbGdOb2RlRGV0YWlscy5oaWRlKClcIj48L25vZGUtZGV0YWlsPlxyXG48L2Rpdj4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFpQixtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUczRixlQUFlO0FBQ2YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU9sRCxNQUFNLE9BQU8sb0JBQW9CO0lBTTdCLFlBQ1ksT0FBc0IsRUFDdkIsRUFBdUIsRUFDdEIsWUFBZ0MsRUFDaEMsUUFBa0IsRUFDbEIsUUFBeUIsRUFDekIsSUFBaUIsRUFDakIsS0FBcUIsRUFDSSxHQUFXO1FBUHBDLFlBQU8sR0FBUCxPQUFPLENB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RUFBRTtZQUMxRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQXpGUSxvQkFBb0Isb09BY2pCLGVBQWU7cUdBZGxCLG9CQUFvQix1Q0FIbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQywwQkN6QnBGLGlrTUE0RU07MkZEaERPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxjQUFjLGFBQ2IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQzs7MEJBaUIzRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBQcm9maWxlckRhdGFOb2RlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1Byb2ZpbGVyRGF0YU5vZGVcIjtcclxuaW1wb3J0IHsgUHJvZmlsZXJEYXRhTm9kZXNWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1Byb2ZpbGVyRGF0YU5vZGVzVmlld1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBOb2RlU3RhdHMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTm9kZVN0YXRzXCI7XHJcblxyXG5pbXBvcnQgeyBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1Qcm9maWxlckNvbXBvbmVudExvYyB9IGZyb20gXCIuL2FkbV9wcm9maWxlci5jb21wb25lbnQubG9jXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX3Byb2ZpbGVyXCIsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1Qcm9maWxlckNvbXBvbmVudExvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbVByb2ZpbGVyQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBQcm9maWxlckRhdGFOb2Rlc1ZpZXcgPSBuZXcgUHJvZmlsZXJEYXRhTm9kZXNWaWV3KCk7XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG5cclxuICAgIHB1YmxpYyBOb2RlRGV0YWlsczogTm9kZVN0YXRzO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGV4cEV4dHM6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIEluaXQoaWdub3JlU3RvcmUpIHtcclxuICAgICAgICB0aGlzLmRvSW5pdChpZ25vcmVTdG9yZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZG9Jbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08UHJvZmlsZXJEYXRhTm9kZXNWaWV3PihcIkhvdFNlYXJjaFByb2ZpbGF0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgL3BhZ2VzLyR7dGhpcy5tb2R9L3Byb2ZpbGVyYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaFByb2ZpbGF0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFByb2ZpbGVyRGF0YU5vZGVzVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0UHJvZmlsZXJEYXRhTm9kZXNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgUHJvZmlsZXJEYXRhTm9kZXNWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0UHJvZmlsZXJEYXRhTm9kZXNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldEl0ZW1zKHVybDogc3RyaW5nLCBkYXRhOiBQcm9maWxlckRhdGFOb2Rlc1ZpZXcpIHtcclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxQcm9maWxlckRhdGFOb2Rlc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoUHJvZmlsYXRvXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZUV4cG9ydChkYXRhQ2FsbEJhY2spIHtcclxuICAgICAgICB2YXIgdmlldyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWFyY2hWaWV3KSk7XHJcbiAgICAgICAgdmlldy5wYWdlID0gMTtcclxuICAgICAgICB2aWV3Lml0ZW1zcGVycGFnZW92ZXJyaWRlID0gOTk5OTk5OTtcclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxQcm9maWxlckRhdGFOb2Rlc1ZpZXc+KFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRQcm9maWxlckRhdGFOb2Rlc1wiXSwgdmlldykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICBsZXQgaXRlbXM6IFByb2ZpbGVyRGF0YU5vZGVbXSA9IHRoaXMuZXhwRXh0cy5kZXNlcmlhbGl6ZUZvckV4cG9ydCh0Lml0ZW1zLCBQcm9maWxlckRhdGFOb2RlKTtcclxuICAgICAgICAgICAgZGF0YUNhbGxCYWNrKGl0ZW1zKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTm9kZURldGFpbHMobm9kZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLk5vZGVEZXRhaWxzID0gbnVsbDtcclxuICAgICAgICBsZXQgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdub2RlSWQnLCBub2RlSWQpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8Tm9kZVN0YXRzPihSZXBvc2l0b3J5LkdFVF9BZG1fR2V0Tm9kZVN0YXRzLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuTm9kZURldGFpbHMgPSB0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj57eydQcm9maWxlciBkZWwgU2VydmVyJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidEYScgfCBsb2NhbGl6ZTogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydG9cIiBuYW1lPVwiZmlsdGVydG9cIiBbUGxhY2Vob2xkZXJdPVwiJ0EnIHwgbG9jYWxpemU6IGxjXCI+PC9mb3JtLWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzc1wiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0NhcmljbyBpIERhdGknIHwgbG9jYWxpemU6IGxjfX08L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXdcIiBbSGllcmFyY2h5XT1cInRydWVcIiBbT3JkZXJCeUNvbHVtbl09XCJmYWxzZVwiIFtQYXJlbnRLZXldPVwiJ3BhcmVudGlkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW093bktleV09XCInaWQnXCIgW1N0YXJ0c0V4cGFuZGVkXT1cImZhbHNlXCIgW0V4cG9ydEZ1bmN0aW9uXT1cInByZXBhcmVFeHBvcnQuYmluZCh0aGlzKVwiIFtFeHBvcnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0V4cG9ydEZpbGVOYW1lXT1cIidQcm9maWxlciBFeHBvcnQuY3N2J1wiIFtIaWRlUGFnaW5nXT1cInRydWVcIiAob25TZWFyY2hSZXF1ZXN0KT1cInNlbmRTZWFyY2goJGV2ZW50KTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMSdcIj57eydJRCcgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMidcIj57eydEZXNjcml6aW9uZScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMydcIj57eydDaGlhbWF0ZScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInNCdcIj57eydUZW1wbycgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInNSdcIj57eydUZW1wbyBNYXgnIHwgbG9jYWxpemU6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzYnXCI+e3snVGVtcG8gTWluJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic3J1wiPnt7J1RlbXBvIE1lZGlvJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic4J1wiPnt7J1RlbXBvIFNwZWNpZmljbycgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInOSdcIj57eydQZXJjZW50dWFsZScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTAnXCI+e3snQ2hpYW1hdGUgUGVyaW9kbycgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTEnXCI+e3snVGVtcG8gUGVyaW9kbycgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTInXCI+e3snVGVtcG8gTWF4IFBlcmlvZG8nIHwgbG9jYWxpemU6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzEzJ1wiPnt7J1RlbXBvIE1pbiBQZXJpb2RvJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxNCdcIj57eydUZW1wbyBNZWRpbyBQZXJpb2RvJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxNSdcIj57eydUZW1wbyBTcGVjaWZpY28gUGVyaW9kbycgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTYnXCI+e3snUGVyY2VudHVhbGUgUGVyaW9kbycgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTcnXCI+e3snTm9tZSBUaXBvbG9naWEgRXZlbnRvJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxOCdcIj57eydOb21lIENsYXNzZSBBdHRlc2EnIHwgbG9jYWxpemU6IGxjfX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxJzsgbGV0IGl0ZW1cIj48c3BhbiBjbGFzcz1cImFwcC1saW5rIGFwcC1pbmxpbmVcIiAoY2xpY2spPVwibG9hZE5vZGVEZXRhaWxzKGl0ZW0uaWQpOyBkbGdOb2RlRGV0YWlscy5zaG93KCk7XCI+e3tpdGVtLmlkfX08L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicyJzsgbGV0IGl0ZW1cIiB0aXRsZT1cInt7aXRlbS5kZXNjcmlwdGlvbn19XCI+e3tpdGVtLmRlc2NyaXB0aW9uLmxlbmd0aCA8PSA1MCA/IGl0ZW0uZGVzY3JpcHRpb24gOiBpdGVtLmRlc2NyaXB0aW9uLnN1YnN0cigwLDUwKSArIFwiWy4uLl1cIiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMyc7IGxldCBpdGVtXCI+e3tpdGVtLmNhbGxzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzQnOyBsZXQgaXRlbVwiPnt7aXRlbS50aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzUnOyBsZXQgaXRlbVwiPnt7aXRlbS5wZWFrdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic2JzsgbGV0IGl0ZW1cIj57e2l0ZW0ubWludGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic3JzsgbGV0IGl0ZW1cIj57e2l0ZW0uYXZndGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic4JzsgbGV0IGl0ZW1cIj57e2l0ZW0udGltZXdpdGhvdXRjaGlsZHJlbiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInOSc7IGxldCBpdGVtXCI+e3tpdGVtLnBlcmNlbnRhZ2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTAnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBkZWx0YWNhbGxzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzExJyBsZXQgaXRlbVwiPnt7aXRlbS5zbmFwZGVsdGF0aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzEyJyBsZXQgaXRlbVwiPnt7aXRlbS5zbmFwcGVha3RpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTMnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBtaW50aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzE0JyBsZXQgaXRlbVwiPnt7aXRlbS5zbmFwYXZndGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxNScgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcHRpbWV3aXRob3V0Y2hpbGRyZW59fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTYnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBwZXJjZW50YWdlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzE3JyBsZXQgaXRlbVwiPnt7aXRlbS5ldmVudHR5cGVuYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzE4JyBsZXQgaXRlbVwiPnt7aXRlbS53YWl0Y2xhc3NuYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgYnNNb2RhbCAjZGxnTm9kZURldGFpbHM9XCJicy1tb2RhbFwiIGNsYXNzPVwibW9kYWwgZmFkZVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgIDxub2RlLWRldGFpbCAqbmdJZj1cIk5vZGVEZXRhaWxzXCIgW05vZGVEZXRhaWxzXT1cIk5vZGVEZXRhaWxzXCIgKG9uQ2xvc2UpPVwiZGxnTm9kZURldGFpbHMuaGlkZSgpXCI+PC9ub2RlLWRldGFpbD5cclxuPC9kaXY+Il19