@esfaenza/admin-module 15.2.0 → 15.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/admin-module.module.mjs +2 -4
- package/esm2020/lib/components/_shared/node_detail.component.loc.mjs +3 -2
- package/esm2020/lib/components/_shared/node_detail.component.mjs +3 -3
- package/esm2020/lib/components/audits/adm_audits.component.mjs +6 -10
- package/esm2020/lib/components/dynamic_views/adm_dynamic_views.component.mjs +6 -10
- package/esm2020/lib/components/enqueues/adm_enq.component.mjs +6 -10
- package/esm2020/lib/components/logs/adm_logs.component.mjs +6 -11
- package/esm2020/lib/components/metrics/metrics_search.component.mjs +7 -11
- package/esm2020/lib/components/profiler/adm_profiler.component.mjs +8 -12
- package/esm2020/lib/components/topact/topact_search.component.mjs +8 -12
- package/esm2020/lib/components/workers/adm_wrk.component.loc.mjs +5 -1
- package/esm2020/lib/components/workers/adm_wrk.component.mjs +26 -17
- package/esm2020/lib/models/components/ProcessesView.mjs +1 -1
- package/esm2020/lib/tokens.mjs +1 -2
- package/fesm2015/esfaenza-admin-module.mjs +70 -91
- package/fesm2015/esfaenza-admin-module.mjs.map +1 -1
- package/fesm2020/esfaenza-admin-module.mjs +71 -90
- package/fesm2020/esfaenza-admin-module.mjs.map +1 -1
- package/lib/components/audits/adm_audits.component.d.ts +1 -2
- package/lib/components/dynamic_views/adm_dynamic_views.component.d.ts +1 -2
- package/lib/components/enqueues/adm_enq.component.d.ts +1 -2
- package/lib/components/logs/adm_logs.component.d.ts +1 -2
- package/lib/components/metrics/metrics_search.component.d.ts +1 -2
- package/lib/components/profiler/adm_profiler.component.d.ts +1 -2
- package/lib/components/topact/topact_search.component.d.ts +1 -2
- package/lib/components/workers/adm_wrk.component.d.ts +7 -3
- package/lib/models/components/ProcessesView.d.ts +4 -0
- package/lib/tokens.d.ts +0 -1
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import { map } from "rxjs/operators";
|
|
|
8
8
|
import { Repository } from "../../models/externals/Repository";
|
|
9
9
|
import { TopActivitiesDataView } from "../../models/components/TopActivitiesDataView";
|
|
10
10
|
// Applicazione
|
|
11
|
-
import {
|
|
11
|
+
import { ADM_MODULE_PATH } from "../../tokens";
|
|
12
12
|
// Localizzazione
|
|
13
13
|
import { AdmTopActivitieLoc } from "./topact_search.component.loc";
|
|
14
14
|
import { HttpParams } from "@angular/common/http";
|
|
@@ -26,7 +26,7 @@ import * as i10 from "@esfaenza/forms-and-validations";
|
|
|
26
26
|
import * as i11 from "@esfaenza/es-charts";
|
|
27
27
|
import * as i12 from "../_shared/node_detail.component";
|
|
28
28
|
export class AdmTopActivitiesComponent {
|
|
29
|
-
constructor(dateExts, lc, localStorage, location, intercom, http, route,
|
|
29
|
+
constructor(dateExts, lc, localStorage, location, intercom, http, route, mod) {
|
|
30
30
|
this.dateExts = dateExts;
|
|
31
31
|
this.lc = lc;
|
|
32
32
|
this.localStorage = localStorage;
|
|
@@ -34,7 +34,6 @@ export class AdmTopActivitiesComponent {
|
|
|
34
34
|
this.intercom = intercom;
|
|
35
35
|
this.http = http;
|
|
36
36
|
this.route = route;
|
|
37
|
-
this.backend = backend;
|
|
38
37
|
this.mod = mod;
|
|
39
38
|
this.searchView = new TopActivitiesDataView();
|
|
40
39
|
this.autoUpdate = false;
|
|
@@ -75,7 +74,7 @@ export class AdmTopActivitiesComponent {
|
|
|
75
74
|
init(HotPotato) {
|
|
76
75
|
if (HotPotato) {
|
|
77
76
|
this.searchView = HotPotato;
|
|
78
|
-
this.POSTGetItems(
|
|
77
|
+
this.POSTGetItems(Repository.POST_Adm_GetTopActivities, this.searchView, false);
|
|
79
78
|
}
|
|
80
79
|
else {
|
|
81
80
|
this.searchView = new TopActivitiesDataView();
|
|
@@ -90,7 +89,7 @@ export class AdmTopActivitiesComponent {
|
|
|
90
89
|
this.searchView.searchinprogress = true;
|
|
91
90
|
if (resetPage)
|
|
92
91
|
this.searchView.page = 1;
|
|
93
|
-
this.POSTGetItems(
|
|
92
|
+
this.POSTGetItems(Repository.POST_Adm_GetTopActivities, searchViewOverride ?? this.searchView, update);
|
|
94
93
|
}
|
|
95
94
|
POSTGetItems(url, data, update) {
|
|
96
95
|
this.http.post(url, data).subscribe(async (t) => {
|
|
@@ -105,12 +104,12 @@ export class AdmTopActivitiesComponent {
|
|
|
105
104
|
});
|
|
106
105
|
}
|
|
107
106
|
getDirectorInfos() {
|
|
108
|
-
return this.http.get(
|
|
107
|
+
return this.http.get(Repository.GET_Adm_GetInfos).pipe(map(res => { return res; })).toPromise();
|
|
109
108
|
}
|
|
110
109
|
loadNodeDetails(nodeId) {
|
|
111
110
|
this.NodeDetails = null;
|
|
112
111
|
let pars = new HttpParams().set('nodeId', nodeId);
|
|
113
|
-
this.http.get(
|
|
112
|
+
this.http.get(Repository.GET_Adm_GetNodeStats, pars).subscribe(t => {
|
|
114
113
|
this.NodeDetails = t;
|
|
115
114
|
});
|
|
116
115
|
}
|
|
@@ -183,7 +182,7 @@ export class AdmTopActivitiesComponent {
|
|
|
183
182
|
});
|
|
184
183
|
}
|
|
185
184
|
}
|
|
186
|
-
AdmTopActivitiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmTopActivitiesComponent, deps: [{ token: i1.DateService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i4.Location }, { token: i1.InterComService }, { token: i5.HTTPService }, { token: i6.ActivatedRoute }, { token:
|
|
185
|
+
AdmTopActivitiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmTopActivitiesComponent, 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 });
|
|
187
186
|
AdmTopActivitiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmTopActivitiesComponent, selector: "topact_search", providers: [
|
|
188
187
|
{ provide: LocalizationService, useClass: AdmTopActivitieLoc }
|
|
189
188
|
], 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 {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\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-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></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\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" 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\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'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 </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Wait Class Name' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\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>\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.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.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: "directive", type: i8.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { 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.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { kind: "component", type: i11.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill", "Stacked"] }, { kind: "component", type: i12.NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }] });
|
|
@@ -193,10 +192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
193
192
|
{ provide: LocalizationService, useClass: AdmTopActivitieLoc }
|
|
194
193
|
], 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 {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\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-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></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\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" 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\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'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 </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Wait Class Name' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\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>\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>" }]
|
|
195
194
|
}], 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: [{
|
|
196
|
-
type: Inject,
|
|
197
|
-
args: [ADM_BACKEND_URL]
|
|
198
|
-
}] }, { type: undefined, decorators: [{
|
|
199
195
|
type: Inject,
|
|
200
196
|
args: [ADM_MODULE_PATH]
|
|
201
197
|
}] }]; } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdG9wYWN0L3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQXNCLFNBQVMsRUFBaUIsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbEksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsT0FBTyxFQUFlLG1CQUFtQixFQUFtQixNQUFNLHNCQUFzQixDQUFDO0FBSXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFLdEYsZUFBZTtBQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU2xELE1BQU0sT0FBTyx5QkFBeUI7SUFXbEMsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFn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a09BbUJ0QixlQUFlLGFBQ2YsZUFBZTswR0FwQmxCLHlCQUF5Qix3Q0FMdkI7UUFDUCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7S0FDakUsMEJDbkNMLHc5UkEwSE07MkZEcEZPLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSxlQUFlLGFBQ2Q7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO3FCQUNqRTs7MEJBc0JJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlQ2hhcnRDb21wb25lbnQsIERhdGVWYWx1ZSwgS2V5VmFsdWVDb2xvciwgTGltaXQsIExpbmVDaGFydERhdGEsIExpbmVTZXJpZSwgUGllQ2hhcnREYXRhIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy1jaGFydHNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSwgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCAqIGFzIGFtNGNoYXJ0cyBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNC9jaGFydHNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IERpcmVjdG9ySW5mb3MgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvRGlyZWN0b3JJbmZvc1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wQWN0aXZpdGllc0RhdGFWaWV3XCI7XHJcbmltcG9ydCB7IFRvcE5vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wTm9kZVwiO1xyXG5pbXBvcnQgeyBUb3BTZXNzaW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1RvcFNlc3Npb25cIjtcclxuaW1wb3J0IHsgTm9kZVN0YXRzIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL05vZGVTdGF0c1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFETV9CQUNLRU5EX1VSTCwgQURNX01PRFVMRV9QQVRIIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgQWRtVG9wQWN0aXZpdGllTG9jIH0gZnJvbSBcIi4vdG9wYWN0X3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidG9wYWN0X3NlYXJjaFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtVG9wQWN0aXZpdGllTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHByaXZhdGUgTGFzdERhdGFQb2ludDogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgcHJpdmF0ZSBDaGFydEluc3RhbmNlOiBCYXNlQ2hhcnRDb21wb25lbnQ7XHJcbiAgICBwdWJsaWMgTm9kZURldGFpbHM6IE5vZGVTdGF0cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZGF0ZUV4dHM6IERhdGVTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZTogUHJlZmVyZW5jZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgICAgIHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEhUVFBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIEBJbmplY3QoQURNX0JBQ0tFTkRfVVJMKSBwcml2YXRlIGJhY2tlbmQ6IHN0cmluZyxcclxuICAgICAgICBASW5qZWN0KEFETV9NT0RVTEVfUEFUSCkgcHJpdmF0ZSBtb2Q6IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxUb3BBY3Rpdml0aWVzRGF0YVZpZXc+KFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vdG9wYWN0YCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaFRvcEFjdFwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFRvcEFjdGl2aXRpZXNEYXRhVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5LlBPU1RfQWRtX0dldFRvcEFjdGl2aXRpZXMsIHRoaXMuc2VhcmNoVmlldywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFNlYXJjaChyZXNldFBhZ2U6IGJvb2xlYW4gPSB0cnVlLCB1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZSwgc2VhcmNoVmlld092ZXJyaWRlOiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIGlmIChyZXNldFBhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5wYWdlID0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeS5QT1NUX0FkbV9HZXRUb3BBY3Rpdml0aWVzLCBzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3LCB1cGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIFBPU1RHZXRJdGVtcyh1cmw6IHN0cmluZywgZGF0YTogVG9wQWN0aXZpdGllc0RhdGFWaWV3LCB1cGRhdGU6IGJvb2xlYW4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8VG9wQWN0aXZpdGllc0RhdGFWaWV3Pih1cmwsIGRhdGEpLnN1YnNjcmliZShhc3luYyAodCkgPT4ge1xyXG4gICAgICAgICAgICAvL1NlIHNvbm8gaW4gbW9kYWxpdMOgIGRpIHVwZGF0ZSBub24gZGV2byB0b2NjYXJlIGxhIHNlYXJjaFZpZXcgYXR0dWFsZSBzZSBub24gcGVyIGlsIHNlYXJjaGlucHJvZ3Jlc3MgY2hlIHZpZW5lIG1lc3NvIGRhbGwnZXMgdGFibGVcclxuICAgICAgICAgICAgaWYgKCF1cGRhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoVG9wQWN0XCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGRpcmluZm9zID0gYXdhaXQgdGhpcy5nZXREaXJlY3RvckluZm9zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucmV2aWV3QmluZGluZ3ModXBkYXRlLCB0LCBkaXJpbmZvcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlyZWN0b3JJbmZvcygpOiBQcm9taXNlPERpcmVjdG9ySW5mb3M+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEaXJlY3RvckluZm9zPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5LkdFVF9BZG1fR2V0SW5mb3MpLnBpcGUobWFwKHJlcyA9PiB7IHJldHVybiByZXM7IH0pKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTm9kZURldGFpbHMobm9kZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLk5vZGVEZXRhaWxzID0gbnVsbDtcclxuICAgICAgICBsZXQgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdub2RlSWQnLCBub2RlSWQpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8Tm9kZVN0YXRzPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5LkdFVF9BZG1fR2V0Tm9kZVN0YXRzLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuTm9kZURldGFpbHMgPSB0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogVHJhc2Zvcm1hemlvbmUgZGEgc2VhcmNodmlldyBjb24gdW5pY28gZWxlbWVudG8gY29uIHR1dHRvIGFpIDMgZWxlbWVudGk6XHJcbiAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdyYWZpY28sIFRvcE5vZGVzIGUgVG9wU2Vzc2lvbnNcclxuICAgIFRvcEFjdGl2ZVNlc3Npb25zOiBMaW5lQ2hhcnREYXRhO1xyXG4gICAgVG9wTm9kZXM6IFRvcE5vZGVbXTtcclxuICAgIFRvcFNlc3Npb25zOiBUb3BTZXNzaW9uW107XHJcbiAgICBEaXJJbmZvczogRGlyZWN0b3JJbmZvcztcclxuICAgIHNlcmllc1Byb3BlcnRpZXNNYXBwaW5nOiB7IFtpbmRleDogc3RyaW5nXTogTGluZVNlcmllIH0gPSB7fTtcclxuICAgIHByb3BlcnRpZXNTZXJpZXNNYXBwaW5nOiB7IFtpbmRleDogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgICAgW1wiY3B1dGltZVwiXTogXCJDUFVcIixcclxuICAgICAgICBbXCJ3YWl0dGltZVwiXTogXCJXYWl0XCIsXHJcbiAgICAgICAgW1wic2NyaXB0dGltZVwiXTogXCJTY3JpcHRpbmdcIixcclxuICAgICAgICBbXCJkYnRpbWVcIl06IFwiREJcIixcclxuICAgICAgICBbXCJuZXR0aW1lXCJdOiBcIk5ldHdvcmtcIixcclxuICAgICAgICBbXCJ0aHJvdHRsZXRpbWVcIl06IFwiVGhyb3R0bGluZ1wiLFxyXG4gICAgICAgIFtcInNsZWVwdGltZVwiXTogXCJTbGVlcFwiLFxyXG4gICAgICAgIFtcImlvdGltZVwiXTogXCJJT1wiXHJcbiAgICB9O1xyXG5cclxuICAgIHJldmlld0JpbmRpbmdzKHVwZGF0ZTogYm9vbGVhbiwgc2VhcmNoVmlld092ZXJyaWRlPywgZGlySW5mb3M/OiBEaXJlY3RvckluZm9zKSB7XHJcbiAgICAgICAgbGV0IHJlZmVyZW5jZSA9IChzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3KS5pdGVtc1swXTtcclxuICAgICAgICB0aGlzLlRvcE5vZGVzID0gcmVmZXJlbmNlLnRvcG5vZGVzO1xyXG4gICAgICAgIHRoaXMuVG9wU2Vzc2lvbnMgPSByZWZlcmVuY2UudG9wc2Vzc2lvbnM7XHJcbiAgICAgICAgdGhpcy5EaXJJbmZvcyA9IGRpckluZm9zO1xyXG5cclxuICAgICAgICBpZiAoIXJlZmVyZW5jZS5hY3RzZXNzaW9ucyB8fCByZWZlcmVuY2UuYWN0c2Vzc2lvbnMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5Ub3BBY3RpdmVTZXNzaW9ucyA9IG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzZXJpZXM6IExpbmVTZXJpZVtdID0gW107ICAgICAgXHJcbiAgICAgICAgbGV0IHByb3BzID0gT2JqZWN0LmtleXMocmVmZXJlbmNlLmFjdHNlc3Npb25zWzBdKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScpIHtcclxuICAgICAgICAgICAgICAgIGxldCBzID0gbmV3IExpbmVTZXJpZSh0aGlzLnByb3BlcnRpZXNTZXJpZXNNYXBwaW5nW3Byb3BzW2ldXSwgW10sIG51bGwsIG51bGwsIFwic2Vzc2lvbnNcIik7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXMucHVzaChzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dID0gcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZWZlcmVuY2UuYWN0c2Vzc2lvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW1yZWYgPSByZWZlcmVuY2UuYWN0c2Vzc2lvbnNbaV07XHJcbiAgICAgICAgICAgIGxldCB0aGVEID0gbmV3IERhdGUoaXRlbXJlZi5zYW1wbGV0aW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNbaV0gIT0gJ3NhbXBsZXRpbWUnICYmICghdXBkYXRlIHx8IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhlRCkuaXNBZnRlcih0aGlzLkxhc3REYXRhUG9pbnQpKSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcmllc1Byb3BlcnRpZXNNYXBwaW5nW3Byb3BzW2ldXS52YWx1ZXMucHVzaChuZXcgRGF0ZVZhbHVlKHRoZUQsIGl0ZW1yZWZbcHJvcHNbaV1dKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodXBkYXRlICYmIHRoaXMuQ2hhcnRJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IG5ldyBMaW5lQ2hhcnREYXRhKHNlcmllcywgbmV3IExpbWl0KGRpckluZm9zPy50aHJlYWRzLCB0aGlzLmxjLmxvYyhcIk1heGltdW0gVGhyZWFkc1wiKSkpO1xyXG4gICAgICAgICAgICBpZiAoc2VyaWVzLnNvbWUodCA9PiB0LnZhbHVlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5DaGFydEluc3RhbmNlLmFkZERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxhc3REYXRhUG9pbnQgPSBzZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5Ub3BBY3RpdmVTZXNzaW9ucyA9IG5ldyBMaW5lQ2hhcnREYXRhKHNlcmllcywgbmV3IExpbWl0KGRpckluZm9zPy50aHJlYWRzLCB0aGlzLmxjLmxvYyhcIk1heGltdW0gVGhyZWFkc1wiKSkpO1xyXG4gICAgICAgICAgICB0aGlzLkxhc3REYXRhUG9pbnQgPSBzZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBHZXN0aW9uZSB1cGRhdGUgYXV0b21hdGljb1xyXG4gICAgdXBkYXRlVGltZXI6IGFueTtcclxuICAgIGF1dG9VcGRhdGVDaGFuZ2VkKCkge1xyXG4gICAgICAgIGlmICghL15bMS05XVxcZCokLy50ZXN0KHRoaXMuc2Vjb25kcykpXHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyA9ICcxMCc7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kc0luTXMgPSBwYXJzZUludCh0aGlzLnNlY29uZHMsIG51bGwpICogMTAwMDtcclxuICAgICAgICBpZiAodGhpcy5hdXRvVXBkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7IHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7IH0sIHNlY29uZHNJbk1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudXBkYXRlVGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAgIHByaXZhdGUgZnJvbTogRGF0ZTtcclxuICAgIHByaXZhdGUgdG86IERhdGU7XHJcblxyXG4gICAgZGF0YVNlbGVjdGlvbkNoYW5nZWQoZXZlbnQ6IHsgZnJvbTogRGF0ZSwgdG86IERhdGUsIGluaXRpYWw6IGJvb2xlYW4gfSkge1xyXG4gICAgICAgIHRoaXMuZnJvbSA9IGV2ZW50LmluaXRpYWwgPyAodGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20gPyB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJmcm9tKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQuZnJvbTtcclxuICAgICAgICB0aGlzLnRvID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVydG8gPyB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0bykudG9EYXRlKCkgOiBcIlwiKSA6IGV2ZW50LnRvO1xyXG5cclxuICAgICAgICB2YXIgcHNldWRvU2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlYXJjaFZpZXcpKTtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcmZyb20gPSB0aGlzLmZyb20gPyBkYXlqcyh0aGlzLmZyb20pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgcHNldWRvU2VhcmNoVmlldy5maWx0ZXJ0byA9IHRoaXMudG8gPyBkYXlqcyh0aGlzLnRvKS5mb3JtYXQodGhpcy5sYy50b2tlbihcImdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdFwiKSkgOiBcIlwiO1xyXG4gICAgICAgIHRoaXMuc2VuZFNlYXJjaCh0cnVlLCB0cnVlLCBwc2V1ZG9TZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYXJ0TG9hZGVkKGNoYXJ0OiBCYXNlQ2hhcnRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UgPSBjaGFydDtcclxuICAgICAgICBjaGFydC5DaGFydC5ldmVudHMub24oXCJyZWFkeVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnhBeGVzLmVhY2goeCA9PiB4Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnhBeGVzLmVhY2goeCA9PiB4Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnlBeGVzLmVhY2goeSA9PiB5Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyA1MDAgbWlsbGlzZWNvbmRpIMOoIHBpw7kgbyBtZW5vIGlsIHRlbXBvIGRpIHByaW1hIGFuaW1hemlvbmUgZGVsIGdyYWZpY28uIEZpbml0byBxdWVzdG8gc2kgcmVzZXR0YSBsbyB6b29tXHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J1RvcCBBY3Rpdml0aWVzJyB8IGxvY2FsaXplIDogbGN9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRGlySW5mb3NcIj4mbmJzcDstJm5ic3A7e3snJyArIERpckluZm9zLmNwdXMgKyAnICcgKyAoJ0NQVXMnIHwgbG9jYWxpemUgOiBsYykgKyAoRGlySW5mb3MucnNzcGxhbiA/ICcgLSAnICsgRGlySW5mb3MucnNzcGxhbiA6ICcnKX19PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZXRpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tZGF0ZXRpbWUgIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0b1wiIG5hbWU9XCJmaWx0ZXJ0b1wiIFtQbGFjZWhvbGRlcl09XCInVG8nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzIHx8IGF1dG9VcGRhdGVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaCBhcHAtbWFyZ2luLXRvcC0yMFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1hYnNvbHV0ZSBhcHAtcmlnaHQtMjUgYXBwLXRvcC00MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J1VwZGF0ZSBldmVyeScgfCBsb2NhbGl6ZSA6IGxjfX0mbmJzcDs8aW5wdXQgW3JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBtYXhsZW5ndGg9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXVwZGV2ZXJ5LWlucHV0XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlY29uZHNcIiBuYW1lPVwic2Vjc1wiIC8+Jm5ic3A7e3snc2Vjb25kL3MnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHQgbS10LTIgYXBwLW1hcmdpbi1yaWdodC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiYXV0b1VwZGF0ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImF1dG9VcGRhdGVDaGFuZ2VkKCk7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1tYXJnaW4tdG9wLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhc2VhcmNoVmlld1wiPjxlbT57eydMb2FkaW5nIERhdGEnIHwgbG9jYWxpemUgOiBsY319PC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3XCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW5vLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjkwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLWxpbmUtY2hhcnQgKm5nSWY9XCJUb3BBY3RpdmVTZXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNaW5HcmlkRGlzdGFuY2VdPVwiNjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVGltZWxpbmVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRmluYWxJbnN0YW50c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtMZWdlbmRQYWRkaW5nXT1cInt0b3A6IDAsIGJvdHRvbTogNywgcmlnaHQ6IDAsIGxlZnQ6IDEwfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtGaWxsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWVyZ2VEYXRhc2V0c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RhdGFdPVwiVG9wQWN0aXZlU2Vzc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRvcGFjdHNlc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YUdyb3VwaW5nVGhyZXNob2xkXT1cIjk5OTk5OTk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJkYXRhU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCIgKGNoYXJ0TG9hZGVkKT1cIm9uQ2hhcnRMb2FkZWQoJGV2ZW50KVwiPjwvZXMtbGluZS1jaGFydD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7J1RvcCBOb2RlcycgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cIlRvcE5vZGVzXCIgW0hpZGVQYWdpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluXCI+e3snTm9kZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J05vZGUgRGVzY3JpcHRpb24nIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluXCI+e3snQWN0aXZpdHknIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluIGFwcC1ub3dyYXBcIj57eydOb2RlIFR5cGUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluIGFwcC1ub3dyYXBcIj57eydXYWl0IENsYXNzIE5hbWUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1ub2RlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXBwLWNvbC1taW5cIj48c3BhbiBjbGFzcz1cImFwcC1saW5rXCIgKGNsaWNrKT1cImxvYWROb2RlRGV0YWlscyhub2RlLnByb2Zub2RlaWQpOyBkbGdOb2RlRGV0YWlscy5zaG93KCk7XCI+e3tub2RlLnByb2Zub2RlaWR9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIHRpdGxlPVwie3tub2RlLnByb2Zub2RlZGVzY319XCI+e3tub2RlLnByb2Zub2RlZGVzYy5sZW5ndGggPiA0MCA/IG5vZGUucHJvZm5vZGVkZXNjLnN1YnN0cigwLDQwKSArIFwiLi4uXCIgOiBub2RlLnByb2Zub2RlZGVzY319PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tub2RlLmFjdGl2aXR5IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e25vZGUubm9kZXR5cGVuYW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bm9kZS53YWl0Y2xhc3NuYW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57eydUb3AgU2Vzc2lvbnMnIHwgbG9jYWxpemUgOiBsY319PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtdGFibGUgWyhuZ01vZGVsKV09XCJUb3BTZXNzaW9uc1wiIFtIaWRlUGFnaW5nXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pblwiPklEPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydVc2VyJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snVGVuYW50JyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snUHJvY2VzcycgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J0FjdGl2aXR5JyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+Q3B1PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5XYWl0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5EQjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2NyaXB0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UaHJvdHRsZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2xlZXA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5ldHdvcmtpbmc8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPklPPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtc2Vzc2lvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPnt7c2Vzc2lvbi5zaWR9fTwvc3Ryb25nPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnVzZXJ9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnRlbmFudH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uYmdwcm9jZXNzfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5hY3Rpdml0eSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmNwdSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLndhaXQgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5kYiB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnNjcmlwdCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnRocm90dGxlIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uc2xlZXAgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5uZXQgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5pbyB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBic01vZGFsICNkbGdOb2RlRGV0YWlscz1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPG5vZGUtZGV0YWlsICpuZ0lmPVwiTm9kZURldGFpbHNcIiBbTm9kZURldGFpbHNdPVwiTm9kZURldGFpbHNcIiAob25DbG9zZSk9XCJkbGdOb2RlRGV0YWlscy5oaWRlKClcIj48L25vZGUtZGV0YWlsPlxyXG48L2Rpdj4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdG9wYWN0L3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQXNCLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELE9BQU8sRUFBZSxtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUl6RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBS3RGLGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU2xELE1BQU0sT0FBTyx5QkFBeUI7SUFXbEMsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFr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UHJDLFNBQVM7K0JBQ0ksZUFBZSxhQUNkO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtxQkFDakU7OzBCQXNCSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50LCBEYXRlVmFsdWUsIExpbWl0LCBMaW5lQ2hhcnREYXRhLCBMaW5lU2VyaWUgfSBmcm9tIFwiQGVzZmFlbnphL2VzLWNoYXJ0c1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGVTZXJ2aWNlLCBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgYW00Y2hhcnRzIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM0L2NoYXJ0c1wiO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgRGlyZWN0b3JJbmZvcyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9EaXJlY3RvckluZm9zXCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcbmltcG9ydCB7IFRvcEFjdGl2aXRpZXNEYXRhVmlldyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9Ub3BBY3Rpdml0aWVzRGF0YVZpZXdcIjtcclxuaW1wb3J0IHsgVG9wTm9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9Ub3BOb2RlXCI7XHJcbmltcG9ydCB7IFRvcFNlc3Npb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wU2Vzc2lvblwiO1xyXG5pbXBvcnQgeyBOb2RlU3RhdHMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTm9kZVN0YXRzXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQURNX01PRFVMRV9QQVRIIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgQWRtVG9wQWN0aXZpdGllTG9jIH0gZnJvbSBcIi4vdG9wYWN0X3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidG9wYWN0X3NlYXJjaFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtVG9wQWN0aXZpdGllTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHByaXZhdGUgTGFzdERhdGFQb2ludDogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgcHJpdmF0ZSBDaGFydEluc3RhbmNlOiBCYXNlQ2hhcnRDb21wb25lbnQ7XHJcbiAgICBwdWJsaWMgTm9kZURldGFpbHM6IE5vZGVTdGF0cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZGF0ZUV4dHM6IERhdGVTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZTogUHJlZmVyZW5jZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgICAgIHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEhUVFBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIEBJbmplY3QoQURNX01PRFVMRV9QQVRIKSBwcml2YXRlIG1vZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBJbml0KGlnbm9yZVN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5kb0luaXQoaWdub3JlU3RvcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFRvcEFjdGl2aXRpZXNEYXRhVmlldz4oXCJIb3RTZWFyY2hUb3BBY3RcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS90b3BhY3RgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogVG9wQWN0aXZpdGllc0RhdGFWaWV3KSB7XHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKFJlcG9zaXRvcnkuUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllcywgdGhpcy5zZWFyY2hWaWV3LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgVG9wQWN0aXZpdGllc0RhdGFWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2hWaWV3T3ZlcnJpZGU6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5LlBPU1RfQWRtX0dldFRvcEFjdGl2aXRpZXMsIHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcsIHVwZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldEl0ZW1zKHVybDogc3RyaW5nLCBkYXRhOiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcsIHVwZGF0ZTogYm9vbGVhbikge1xyXG5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxUb3BBY3Rpdml0aWVzRGF0YVZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKGFzeW5jICh0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vU2Ugc29ubyBpbiBtb2RhbGl0w6AgZGkgdXBkYXRlIG5vbiBkZXZvIHRvY2NhcmUgbGEgc2VhcmNoVmlldyBhdHR1YWxlIHNlIG5vbiBwZXIgaWwgc2VhcmNoaW5wcm9ncmVzcyBjaGUgdmllbmUgbWVzc28gZGFsbCdlcyB0YWJsZVxyXG4gICAgICAgICAgICBpZiAoIXVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hUb3BBY3RcIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGlyaW5mb3MgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9ySW5mb3MoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZXZpZXdCaW5kaW5ncyh1cGRhdGUsIHQsIGRpcmluZm9zKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXJlY3RvckluZm9zKCk6IFByb21pc2U8RGlyZWN0b3JJbmZvcz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERpcmVjdG9ySW5mb3M+KFJlcG9zaXRvcnkuR0VUX0FkbV9HZXRJbmZvcykucGlwZShtYXAocmVzID0+IHsgcmV0dXJuIHJlczsgfSkpLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWROb2RlRGV0YWlscyhub2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuTm9kZURldGFpbHMgPSBudWxsO1xyXG4gICAgICAgIGxldCBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ25vZGVJZCcsIG5vZGVJZCk7XHJcbiAgICAgICAgdGhpcy5odHRwLmdldDxOb2RlU3RhdHM+KFJlcG9zaXRvcnkuR0VUX0FkbV9HZXROb2RlU3RhdHMsIHBhcnMpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Ob2RlRGV0YWlscyA9IHQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUcmFzZm9ybWF6aW9uZSBkYSBzZWFyY2h2aWV3IGNvbiB1bmljbyBlbGVtZW50byBjb24gdHV0dG8gYWkgMyBlbGVtZW50aTpcclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogR3JhZmljbywgVG9wTm9kZXMgZSBUb3BTZXNzaW9uc1xyXG4gICAgVG9wQWN0aXZlU2Vzc2lvbnM6IExpbmVDaGFydERhdGE7XHJcbiAgICBUb3BOb2RlczogVG9wTm9kZVtdO1xyXG4gICAgVG9wU2Vzc2lvbnM6IFRvcFNlc3Npb25bXTtcclxuICAgIERpckluZm9zOiBEaXJlY3RvckluZm9zO1xyXG4gICAgc2VyaWVzUHJvcGVydGllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBMaW5lU2VyaWUgfSA9IHt9O1xyXG4gICAgcHJvcGVydGllc1Nlcmllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgICBbXCJjcHV0aW1lXCJdOiBcIkNQVVwiLFxyXG4gICAgICAgIFtcIndhaXR0aW1lXCJdOiBcIldhaXRcIixcclxuICAgICAgICBbXCJzY3JpcHR0aW1lXCJdOiBcIlNjcmlwdGluZ1wiLFxyXG4gICAgICAgIFtcImRidGltZVwiXTogXCJEQlwiLFxyXG4gICAgICAgIFtcIm5ldHRpbWVcIl06IFwiTmV0d29ya1wiLFxyXG4gICAgICAgIFtcInRocm90dGxldGltZVwiXTogXCJUaHJvdHRsaW5nXCIsXHJcbiAgICAgICAgW1wic2xlZXB0aW1lXCJdOiBcIlNsZWVwXCIsXHJcbiAgICAgICAgW1wiaW90aW1lXCJdOiBcIklPXCJcclxuICAgIH07XHJcblxyXG4gICAgcmV2aWV3QmluZGluZ3ModXBkYXRlOiBib29sZWFuLCBzZWFyY2hWaWV3T3ZlcnJpZGU/LCBkaXJJbmZvcz86IERpcmVjdG9ySW5mb3MpIHtcclxuICAgICAgICBsZXQgcmVmZXJlbmNlID0gKHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcpLml0ZW1zWzBdO1xyXG4gICAgICAgIHRoaXMuVG9wTm9kZXMgPSByZWZlcmVuY2UudG9wbm9kZXM7XHJcbiAgICAgICAgdGhpcy5Ub3BTZXNzaW9ucyA9IHJlZmVyZW5jZS50b3BzZXNzaW9ucztcclxuICAgICAgICB0aGlzLkRpckluZm9zID0gZGlySW5mb3M7XHJcblxyXG4gICAgICAgIGlmICghcmVmZXJlbmNlLmFjdHNlc3Npb25zIHx8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlcmllczogTGluZVNlcmllW10gPSBbXTsgICAgICBcclxuICAgICAgICBsZXQgcHJvcHMgPSBPYmplY3Qua2V5cyhyZWZlcmVuY2UuYWN0c2Vzc2lvbnNbMF0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb3BzW2ldICE9ICdzYW1wbGV0aW1lJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHMgPSBuZXcgTGluZVNlcmllKHRoaXMucHJvcGVydGllc1Nlcmllc01hcHBpbmdbcHJvcHNbaV1dLCBbXSwgbnVsbCwgbnVsbCwgXCJzZXNzaW9uc1wiKTtcclxuICAgICAgICAgICAgICAgIHNlcmllcy5wdXNoKHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJpZXNQcm9wZXJ0aWVzTWFwcGluZ1twcm9wc1tpXV0gPSBzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbXJlZiA9IHJlZmVyZW5jZS5hY3RzZXNzaW9uc1tpXTtcclxuICAgICAgICAgICAgbGV0IHRoZUQgPSBuZXcgRGF0ZShpdGVtcmVmLnNhbXBsZXRpbWUpO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScgJiYgKCF1cGRhdGUgfHwgdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih0aGVEKS5pc0FmdGVyKHRoaXMuTGFzdERhdGFQb2ludCkpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dLnZhbHVlcy5wdXNoKG5ldyBEYXRlVmFsdWUodGhlRCwgaXRlbXJlZltwcm9wc1tpXV0pKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh1cGRhdGUgJiYgdGhpcy5DaGFydEluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXMuc29tZSh0ID0+IHQudmFsdWVzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UuYWRkRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjcmVnaW9uIEdlc3Rpb25lIHVwZGF0ZSBhdXRvbWF0aWNvXHJcbiAgICB1cGRhdGVUaW1lcjogYW55O1xyXG4gICAgYXV0b1VwZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCEvXlsxLTldXFxkKiQvLnRlc3QodGhpcy5zZWNvbmRzKSlcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gJzEwJztcclxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IHBhcnNlSW50KHRoaXMuc2Vjb25kcywgbnVsbCkgKiAxMDAwO1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTsgfSwgc2Vjb25kc0luTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gICAgcHJpdmF0ZSBmcm9tOiBEYXRlO1xyXG4gICAgcHJpdmF0ZSB0bzogRGF0ZTtcclxuXHJcbiAgICBkYXRhU2VsZWN0aW9uQ2hhbmdlZChldmVudDogeyBmcm9tOiBEYXRlLCB0bzogRGF0ZSwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XHJcbiAgICAgICAgdGhpcy5mcm9tID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVyZnJvbSA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20pLnRvRGF0ZSgpIDogXCJcIikgOiBldmVudC5mcm9tO1xyXG4gICAgICAgIHRoaXMudG8gPSBldmVudC5pbml0aWFsID8gKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0byA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcnRvKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQudG87XHJcblxyXG4gICAgICAgIHZhciBwc2V1ZG9TZWFyY2hWaWV3OiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhcmNoVmlldykpO1xyXG4gICAgICAgIHBzZXVkb1NlYXJjaFZpZXcuZmlsdGVyZnJvbSA9IHRoaXMuZnJvbSA/IGRheWpzKHRoaXMuZnJvbSkuZm9ybWF0KHRoaXMubGMudG9rZW4oXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXRcIikpIDogXCJcIjtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcnRvID0gdGhpcy50byA/IGRheWpzKHRoaXMudG8pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZW5kU2VhcmNoKHRydWUsIHRydWUsIHBzZXVkb1NlYXJjaFZpZXcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhcnRMb2FkZWQoY2hhcnQ6IEJhc2VDaGFydENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuQ2hhcnRJbnN0YW5jZSA9IGNoYXJ0O1xyXG4gICAgICAgIGNoYXJ0LkNoYXJ0LmV2ZW50cy5vbihcInJlYWR5XCIsICgpID0+IHtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS55QXhlcy5lYWNoKHkgPT4geS56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIDUwMCBtaWxsaXNlY29uZGkgw6ggcGnDuSBvIG1lbm8gaWwgdGVtcG8gZGkgcHJpbWEgYW5pbWF6aW9uZSBkZWwgZ3JhZmljby4gRmluaXRvIHF1ZXN0byBzaSByZXNldHRhIGxvIHpvb21cclxuICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBhcHAtb3ZlcmZsb3ctdmlzaWJsZVwiIHdpZGdldD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snVG9wIEFjdGl2aXRpZXMnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJEaXJJbmZvc1wiPiZuYnNwOy0mbmJzcDt7eycnICsgRGlySW5mb3MuY3B1cyArICcgJyArICgnQ1BVcycgfCBsb2NhbGl6ZSA6IGxjKSArIChEaXJJbmZvcy5yc3NwbGFuID8gJyAtICcgKyBEaXJJbmZvcy5yc3NwbGFuIDogJycpfX08L3NwYW4+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHdpZGdldC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGV0aW1lIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJmcm9tXCIgbmFtZT1cImZpbHRlcmZyb21cIiBbUGxhY2Vob2xkZXJdPVwiJ0Zyb20nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSAgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRvXCIgbmFtZT1cImZpbHRlcnRvXCIgW1BsYWNlaG9sZGVyXT1cIidUbycgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWRhdGV0aW1lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJzZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgfHwgYXV0b1VwZGF0ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLWFic29sdXRlIGFwcC1yaWdodC0yNSBhcHAtdG9wLTQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snVXBkYXRlIGV2ZXJ5JyB8IGxvY2FsaXplIDogbGN9fSZuYnNwOzxpbnB1dCBbcmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIG1heGxlbmd0aD1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdXBkZXZlcnktaW5wdXRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2Vjb25kc1wiIG5hbWU9XCJzZWNzXCIgLz4mbmJzcDt7eydzZWNvbmQvcycgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtLXQtMiBhcHAtbWFyZ2luLXJpZ2h0LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJhdXRvVXBkYXRlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYXV0b1VwZGF0ZUNoYW5nZWQoKTtcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW1hcmdpbi10b3AtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0xvYWRpbmcgRGF0YScgfCBsb2NhbGl6ZSA6IGxjfX08L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXdcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAyOTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtbGluZS1jaGFydCAqbmdJZj1cIlRvcEFjdGl2ZVNlc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01pbkdyaWREaXN0YW5jZV09XCI2NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtUaW1lbGluZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtGaW5hbEluc3RhbnRzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0xlZ2VuZFBhZGRpbmddPVwie3RvcDogMCwgYm90dG9tOiA3LCByaWdodDogMCwgbGVmdDogMTB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ZpbGxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNZXJnZURhdGFzZXRzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YV09XCJUb3BBY3RpdmVTZXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtMZWdlbmRdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9wYWN0c2Vzc2lvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhR3JvdXBpbmdUaHJlc2hvbGRdPVwiOTk5OTk5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cImRhdGFTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIiAoY2hhcnRMb2FkZWQpPVwib25DaGFydExvYWRlZCgkZXZlbnQpXCI+PC9lcy1saW5lLWNoYXJ0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3snVG9wIE5vZGVzJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwiVG9wTm9kZXNcIiBbSGlkZVBhZ2luZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW5cIj57eydOb2RlJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snTm9kZSBEZXNjcmlwdGlvbicgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW5cIj57eydBY3Rpdml0eScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW4gYXBwLW5vd3JhcFwiPnt7J05vZGUgVHlwZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW4gYXBwLW5vd3JhcFwiPnt7J1dhaXQgQ2xhc3MgTmFtZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LW5vZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcHAtY29sLW1pblwiPjxzcGFuIGNsYXNzPVwiYXBwLWxpbmtcIiAoY2xpY2spPVwibG9hZE5vZGVEZXRhaWxzKG5vZGUucHJvZm5vZGVpZCk7IGRsZ05vZGVEZXRhaWxzLnNob3coKTtcIj57e25vZGUucHJvZm5vZGVpZH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gdGl0bGU9XCJ7e25vZGUucHJvZm5vZGVkZXNjfX1cIj57e25vZGUucHJvZm5vZGVkZXNjLmxlbmd0aCA+IDQwID8gbm9kZS5wcm9mbm9kZWRlc2Muc3Vic3RyKDAsNDApICsgXCIuLi5cIiA6IG5vZGUucHJvZm5vZGVkZXNjfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFwcC1ub3dyYXBcIj57e25vZGUuYWN0aXZpdHkgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bm9kZS5ub2RldHlwZW5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tub2RlLndhaXRjbGFzc25hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7J1RvcCBTZXNzaW9ucycgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cIlRvcFNlc3Npb25zXCIgW0hpZGVQYWdpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluXCI+SUQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1VzZXInIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydUZW5hbnQnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydQcm9jZXNzJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snQWN0aXZpdHknIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5DcHU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPldhaXQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkRCPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TY3JpcHQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlRocm90dGxlPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TbGVlcDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmV0d29ya2luZzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+SU88L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1zZXNzaW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+e3tzZXNzaW9uLnNpZH19PC9zdHJvbmc+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24udXNlcn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24udGVuYW50fX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5iZ3Byb2Nlc3N9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmFjdGl2aXR5IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uY3B1IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24ud2FpdCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmRiIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uc2NyaXB0IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24udGhyb3R0bGUgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5zbGVlcCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLm5ldCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmlvIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGJzTW9kYWwgI2RsZ05vZGVEZXRhaWxzPVwiYnMtbW9kYWxcIiBjbGFzcz1cIm1vZGFsIGZhZGVcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICA8bm9kZS1kZXRhaWwgKm5nSWY9XCJOb2RlRGV0YWlsc1wiIFtOb2RlRGV0YWlsc109XCJOb2RlRGV0YWlsc1wiIChvbkNsb3NlKT1cImRsZ05vZGVEZXRhaWxzLmhpZGUoKVwiPjwvbm9kZS1kZXRhaWw+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -9,7 +9,11 @@ export class AdmWrkLoc extends LocalizationService {
|
|
|
9
9
|
super.set("en->it", "Errors changing Consumer Group", ["Errori nella modifica del Gruppo di Consumo"]);
|
|
10
10
|
super.set("en->it", "Change Consumer Group", ["Modifica Gruppo di Consumo"]);
|
|
11
11
|
super.set("en->it", "New Consumer Group", ["Nuovo Gruppo di Consumo"]);
|
|
12
|
+
super.set("en->it", "Thread Type", ["Tipo Thread"]);
|
|
13
|
+
super.set("en->it", "Thread Status", ["Stato Thread"]);
|
|
14
|
+
super.set("en->it", "Type", ["Tipo"]);
|
|
12
15
|
super.set("en->it", "State", ["Stato"]);
|
|
16
|
+
super.set("en->it", "In Wait", ["In Attesa"]);
|
|
13
17
|
super.set("en->it", "Global", ["Globale"]);
|
|
14
18
|
super.set("en->it", "Search Application Processes", ["Ricerca Processi Applicativi"]);
|
|
15
19
|
super.set("en->it", "Tenant", ["Operatore"]);
|
|
@@ -33,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
33
37
|
type: Inject,
|
|
34
38
|
args: [ADM_LOCALE]
|
|
35
39
|
}] }]; } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQubG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy93b3JrZXJzL2FkbV93cmsuY29tcG9uZW50LmxvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUcxQyxNQUFNLE9BQU8sU0FBVSxTQUFRLG1CQUFtQjtJQUM5QyxZQUFnQyxVQUFrQjtRQUM5QyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUM7UUFDekcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7UUFDN0UsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7UUFDdkUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4QyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUM7UUFDdEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM3QyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxpQ0FBaUMsRUFBRSxDQUFDLGdEQUFnRCxDQUFDLENBQUMsQ0FBQztRQUMzRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLCtCQUErQixFQUFFLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLDBCQUEwQixFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQzdFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLDRCQUE0QixFQUFFLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztRQUMzRixLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztRQUNwRixLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztRQUNwRixLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSw4RkFBOEYsRUFBRSxDQUFDLDRGQUE0RixDQUFDLENBQUMsQ0FBQztJQUN4TixDQUFDOztzR0ExQlEsU0FBUyxrQkFDRSxVQUFVOzBHQURyQixTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVU7OzBCQUVNLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbmltcG9ydCB7IEFETV9MT0NBTEUgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBZG1XcmtMb2MgZXh0ZW5kcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoQURNX0xPQ0FMRSkgTE9DX0xPQ0FMRTogc3RyaW5nKSB7XHJcbiAgICAgICAgc3VwZXIoTE9DX0xPQ0FMRSk7XHJcblxyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkNvbnN1bWVyIEdyb3VwIHN1Y2Nlc2Z1bGx5IGNoYW5nZWRcIiwgW1wiR3J1cHBvIGRpIENvbnN1bW8gbW9kaWZpY2F0byBjb24gc3VjY2Vzc29cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkVycm9ycyBjaGFuZ2luZyBDb25zdW1lciBHcm91cFwiLCBbXCJFcnJvcmkgbmVsbGEgbW9kaWZpY2EgZGVsIEdydXBwbyBkaSBDb25zdW1vXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJDaGFuZ2UgQ29uc3VtZXIgR3JvdXBcIiwgW1wiTW9kaWZpY2EgR3J1cHBvIGRpIENvbnN1bW9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIk5ldyBDb25zdW1lciBHcm91cFwiLCBbXCJOdW92byBHcnVwcG8gZGkgQ29uc3Vtb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiVGhyZWFkIFR5cGVcIiwgW1wiVGlwbyBUaHJlYWRcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlRocmVhZCBTdGF0dXNcIiwgW1wiU3RhdG8gVGhyZWFkXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJUeXBlXCIsIFtcIlRpcG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlN0YXRlXCIsIFtcIlN0YXRvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJJbiBXYWl0XCIsIFtcIkluIEF0dGVzYVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiR2xvYmFsXCIsIFtcIkdsb2JhbGVcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNlYXJjaCBBcHBsaWNhdGlvbiBQcm9jZXNzZXNcIiwgW1wiUmljZXJjYSBQcm9jZXNzaSBBcHBsaWNhdGl2aVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiVGVuYW50XCIsIFtcIk9wZXJhdG9yZVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiRXJyb3JzIHRvZ2dsaW5nIFByb2Nlc3MgVHJhY2luZ1wiLCBbXCJFcnJvcmkgbmVsbGEgbW9kaWZpY2EgZGVsIFRyYWNpbmcgZGVsIFByb2Nlc3NvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJVc2VyXCIsIFtcIlV0ZW50ZVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiTG9hZGluZyBBcHBsaWNhdGlvbiBQcm9jZXNzZXNcIiwgW1wiQ2FyaWNvIGkgUHJvY2Vzc2kgQXBwbGljYXRpdmlcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkFjdGl2YXRlIFByb2Nlc3MgVHJhY2luZ1wiLCBbXCJBdHRpdmEgVHJhY2luZyBQcm9jZXNzb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiRGVhY3RpdmF0ZSBQcm9jZXNzIFRyYWNpbmdcIiwgW1wiRGlzYXR0aXZhIFRyYWNpbmcgUHJvZ2V0dG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIktpbGwgUHJvY2Vzc1wiLCBbXCJBbW1henphIFByb2Nlc3NvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJFcnJvcnMga2lsbGluZyB0aGUgUHJvY2Vzc1wiLCBbXCJFcnJvcmkgZHVyYW50ZSBsYSBLaWxsIGRlbCBQcm9jZXNzb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiUHJvY2VzcyBzdWNjZXNmdWxseSBraWxsZWRcIiwgW1wiUHJvY2Vzc28gdWNjaXNvIGNvbiBzdWNjZXNzb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiQ29uZmlybSBQcm9jZXNzIEtpbGxcIiwgW1wiQ29uZmVybWEgVGVybWluYXppb25lIGRlbCBQcm9jZXNzb1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiQXJlIHlvdSBzdXJlIHlvdSB3aXNoIHRvIGtpbGwgdGhlIHNlbGVjdGVkIHByb2Nlc3M/IFRoZSBhc3NvY2lhdGVkIHVzZXIgd2lsbCBiZSBkaXNjb25uZWN0ZWRcIiwgW1wiU2VpIHNpY3VybyBkaSB2b2xlciBUZXJtaW5hcmUgaWwgcHJvY2Vzc28gc2VsZXppb25hdG8/IEwndXRlbnRlIHJlbGF0aXZvIHNhcmEnIGRpc2Nvbm5lc3NvXCJdKTtcclxuICAgIH1cclxufSJdfQ==
|