@esfaenza/admin-module 15.2.0 → 15.2.1

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.
@@ -6,7 +6,7 @@ import { InboundMessageTypes } from "@esfaenza/extensions";
6
6
  // Applicazione
7
7
  import { LocksView } from "../../models/components/LocksView";
8
8
  import { Repository } from "../../models/externals/Repository";
9
- import { ADM_BACKEND_URL, ADM_MODULE_PATH } from "../../tokens";
9
+ import { ADM_MODULE_PATH } from "../../tokens";
10
10
  // Localizzazione
11
11
  import { AdmEnqLoc } from "./adm_enq.component.loc";
12
12
  import * as i0 from "@angular/core";
@@ -20,7 +20,7 @@ import * as i7 from "@angular/forms";
20
20
  import * as i8 from "@esfaenza/es-table";
21
21
  import * as i9 from "@esfaenza/forms-and-validations";
22
22
  export class AdmEnqComponent {
23
- constructor(lc, localStorage, expExts, intercom, http, route, location, backend, mod) {
23
+ constructor(lc, localStorage, expExts, intercom, http, route, location, mod) {
24
24
  this.lc = lc;
25
25
  this.localStorage = localStorage;
26
26
  this.expExts = expExts;
@@ -28,7 +28,6 @@ export class AdmEnqComponent {
28
28
  this.http = http;
29
29
  this.route = route;
30
30
  this.location = location;
31
- this.backend = backend;
32
31
  this.mod = mod;
33
32
  this.locksView = new LocksView();
34
33
  this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
@@ -55,7 +54,7 @@ export class AdmEnqComponent {
55
54
  init(HotPotato) {
56
55
  if (HotPotato) {
57
56
  this.locksView = HotPotato;
58
- this.POSTGetProcesses(this.backend + Repository["POST_Adm_GetServerLocks"], this.locksView);
57
+ this.POSTGetProcesses(Repository["POST_Adm_GetServerLocks"], this.locksView);
59
58
  }
60
59
  else {
61
60
  this.locksView = new LocksView();
@@ -65,7 +64,7 @@ export class AdmEnqComponent {
65
64
  sendSearch(resetPage = true) {
66
65
  if (resetPage)
67
66
  this.locksView.page = 1;
68
- this.POSTGetProcesses(this.backend + Repository["POST_Adm_GetServerLocks"], this.locksView);
67
+ this.POSTGetProcesses(Repository["POST_Adm_GetServerLocks"], this.locksView);
69
68
  }
70
69
  POSTGetProcesses(url, data) {
71
70
  this.http.post(url, data).subscribe(t => {
@@ -74,16 +73,13 @@ export class AdmEnqComponent {
74
73
  });
75
74
  }
76
75
  }
77
- AdmEnqComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmEnqComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PreferencesService }, { token: i3.ExportService }, { token: i3.InterComService }, { token: i4.HTTPService }, { token: i5.ActivatedRoute }, { token: i6.Location }, { token: ADM_BACKEND_URL }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
76
+ AdmEnqComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmEnqComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PreferencesService }, { token: i3.ExportService }, { token: i3.InterComService }, { token: i4.HTTPService }, { token: i5.ActivatedRoute }, { token: i6.Location }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
78
77
  AdmEnqComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmEnqComponent, selector: "adm_enq", 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\">{{'Search Application Locks' | localize : lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <form role=\"form\">\r\n <div class=\"col-md-12 row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filtersid\" name=\"filtersid\" [Placeholder]=\"'SID'\"></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 [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterlock\" name=\"filterlock\" [Placeholder]=\"'Name' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper app-padding-top-10\">\r\n <form-checkbox [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterglobal\" name=\"filterglobal\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer\" (click)=\"locksView.filterglobal = !locksView.filterglobal\">{{'Global' | localize : lc}}</span>\r\n </div>\r\n <button 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 class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!locksView\"><em>{{'Loading Application Locks' | localize : lc}}...</em></p>\r\n <div *ngIf=\"locksView\">\r\n <es-table [(ngModel)]=\"locksView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\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: i6.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: "component", type: i8.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: i9.FormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: i9.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "pipe", type: i1.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmEnqLoc }] });
79
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmEnqComponent, decorators: [{
80
79
  type: Component,
81
80
  args: [{ selector: "adm_enq", viewProviders: [{ provide: LocalizationService, useClass: AdmEnqLoc }], 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\">{{'Search Application Locks' | localize : lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <form role=\"form\">\r\n <div class=\"col-md-12 row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filtersid\" name=\"filtersid\" [Placeholder]=\"'SID'\"></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 [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterlock\" name=\"filterlock\" [Placeholder]=\"'Name' | localize : lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper app-padding-top-10\">\r\n <form-checkbox [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"locksView.filterglobal\" name=\"filterglobal\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer\" (click)=\"locksView.filterglobal = !locksView.filterglobal\">{{'Global' | localize : lc}}</span>\r\n </div>\r\n <button 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 class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!locksView\"><em>{{'Loading Application Locks' | localize : lc}}...</em></p>\r\n <div *ngIf=\"locksView\">\r\n <es-table [(ngModel)]=\"locksView\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\"></es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
82
81
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.PreferencesService }, { type: i3.ExportService }, { type: i3.InterComService }, { type: i4.HTTPService }, { type: i5.ActivatedRoute }, { type: i6.Location }, { type: undefined, decorators: [{
83
- type: Inject,
84
- args: [ADM_BACKEND_URL]
85
- }] }, { type: undefined, decorators: [{
86
82
  type: Inject,
87
83
  args: [ADM_MODULE_PATH]
88
84
  }] }]; } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2VucS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2VucXVldWVzL2FkbV9lbnEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9lbnF1ZXVlcy9hZG1fZW5xLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFpQixtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUczRixlQUFlO0FBQ2YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRSxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7OztBQU9wRCxNQUFNLE9BQU8sZUFBZTtJQUl4QixZQUNXLEVBQXVCLEVBQ3RCLFlBQWdDLEVBQ2pDLE9BQXNCLEVBQ3JCLFFBQXlCLEVBQ3pCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ08sT0FBZSxFQUNmLEdBQVc7UUFSckMsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIs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QUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs0R0E5RFEsZUFBZSxvT0FZWixlQUFlLGFBQ2YsZUFBZTtnR0FibEIsZUFBZSwrQ0N4QjVCLGswRUFpQ00sZ2dGRFphLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDOzJGQUc3RCxlQUFlO2tCQUwzQixTQUFTOytCQUNJLFNBQVMsaUJBQ0osQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7OzBCQWVqRSxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBMb2Nrc1ZpZXcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTG9ja3NWaWV3XCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcbmltcG9ydCB7IEFETV9CQUNLRU5EX1VSTCwgQURNX01PRFVMRV9QQVRIIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgQWRtRW5xTG9jIH0gZnJvbSBcIi4vYWRtX2VucS5jb21wb25lbnQubG9jXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV9lbnFcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1FbnFMb2MgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FkbV9lbnEuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtRW5xQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBsb2Nrc1ZpZXc6IExvY2tzVmlldyA9IG5ldyBMb2Nrc1ZpZXcoKTtcclxuICAgIHB1YmxpYyBzdG9yYWdlU3ViOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGV4cEV4dHM6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nLFxyXG4gICAgICAgIEBJbmplY3QoQURNX01PRFVMRV9QQVRIKSBwcml2YXRlIG1vZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7IHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTsgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPExvY2tzVmlldz4oXCJIb3RFbnF1ZXVlXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vc2VydmVyZW5xdWV1ZXNgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90RW5xdWV1ZVwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IExvY2tzVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5sb2Nrc1ZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldFByb2Nlc3Nlcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0U2VydmVyTG9ja3NcIl0sIHRoaXMubG9ja3NWaWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja3NWaWV3ID0gbmV3IExvY2tzVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFNlYXJjaChyZXNldFBhZ2U6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5sb2Nrc1ZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldFByb2Nlc3Nlcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0U2VydmVyTG9ja3NcIl0sIHRoaXMubG9ja3NWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0UHJvY2Vzc2VzKHVybDogc3RyaW5nLCBkYXRhOiBMb2Nrc1ZpZXcpIHtcclxuICAgICAgICB0aGlzLmh0dHAucG9zdDxMb2Nrc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tzVmlldyA9IHQ7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RFbnF1ZXVlXCIsIHRoaXMubG9ja3NWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBhcHAtb3ZlcmZsb3ctdmlzaWJsZVwiIHdpZGdldD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+e3snU2VhcmNoIEFwcGxpY2F0aW9uIExvY2tzJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgd2lkZ2V0LWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiByb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJsb2Nrc1ZpZXcuZmlsdGVyc2lkXCIgbmFtZT1cImZpbHRlcnNpZFwiIFtQbGFjZWhvbGRlcl09XCInU0lEJ1wiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJsb2Nrc1ZpZXcuZmlsdGVybG9ja1wiIG5hbWU9XCJmaWx0ZXJsb2NrXCIgW1BsYWNlaG9sZGVyXT1cIidOYW1lJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlciBhcHAtcGFkZGluZy10b3AtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWNoZWNrYm94IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cImxvY2tzVmlldy5maWx0ZXJnbG9iYWxcIiBuYW1lPVwiZmlsdGVyZ2xvYmFsXCI+PC9mb3JtLWNoZWNrYm94PiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtcG9pbnRlclwiIChjbGljayk9XCJsb2Nrc1ZpZXcuZmlsdGVyZ2xvYmFsID0gIWxvY2tzVmlldy5maWx0ZXJnbG9iYWxcIj57eydHbG9iYWwnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaCBhcHAtbWFyZ2luLXRvcC0yMFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFsb2Nrc1ZpZXdcIj48ZW0+e3snTG9hZGluZyBBcHBsaWNhdGlvbiBMb2NrcycgfCBsb2NhbGl6ZSA6IGxjfX0uLi48L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvY2tzVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwibG9ja3NWaWV3XCIgW0F1dG9VcGRhdGVdPVwidHJ1ZVwiIFtPcmRlckJ5Q29sdW1uXT1cInRydWVcIiAob25TZWFyY2hSZXF1ZXN0KT1cInNlbmRTZWFyY2goJGV2ZW50KTtcIj48L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2VucS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2VucXVldWVzL2FkbV9lbnEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9lbnF1ZXVlcy9hZG1fZW5xLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFpQixtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUczRixlQUFlO0FBQ2YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7O0FBT3BELE1BQU0sT0FBTyxlQUFlO0lBSXhCLFlBQ1csRUFBdUIsRUFDdEIsWUFBZ0MsRUFDakMsT0FBc0IsRUFDckIsUUFBeUIsRUFDekIsSUFBaUIsRUFDakIsS0FBcUIsRUFDckIsUUFBa0IsRUFDTyxHQUFXO1FBUHJDLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNqQyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQWE7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LGdnRkRaYSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQzsyRkFHN0QsZUFBZTtrQkFMM0IsU0FBUzsrQkFDSSxTQUFTLGlCQUNKLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDOzswQkFlakUsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBFeHBvcnRTZXJ2aWNlLCBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgTG9ja3NWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL0xvY2tzVmlld1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1FbnFMb2MgfSBmcm9tIFwiLi9hZG1fZW5xLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX2VucVwiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbUVucUxvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX2VucS5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1FbnFDb21wb25lbnQge1xyXG4gICAgcHVibGljIGxvY2tzVmlldzogTG9ja3NWaWV3ID0gbmV3IExvY2tzVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZXhwRXh0czogRXhwb3J0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBASW5qZWN0KEFETV9NT0RVTEVfUEFUSCkgcHJpdmF0ZSBtb2Q6IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4geyB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIEluaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxMb2Nrc1ZpZXc+KFwiSG90RW5xdWV1ZVwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgL3BhZ2VzLyR7dGhpcy5tb2R9L3NlcnZlcmVucXVldWVzYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdEVucXVldWVcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBMb2Nrc1ZpZXcpIHtcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja3NWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXMoUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlckxvY2tzXCJdLCB0aGlzLmxvY2tzVmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tzVmlldyA9IG5ldyBMb2Nrc1ZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmIChyZXNldFBhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMubG9ja3NWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXMoUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlckxvY2tzXCJdLCB0aGlzLmxvY2tzVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldFByb2Nlc3Nlcyh1cmw6IHN0cmluZywgZGF0YTogTG9ja3NWaWV3KSB7XHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8TG9ja3NWaWV3Pih1cmwsIGRhdGEpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2Nrc1ZpZXcgPSB0O1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90RW5xdWV1ZVwiLCB0aGlzLmxvY2tzVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7J1NlYXJjaCBBcHBsaWNhdGlvbiBMb2NrcycgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHdpZGdldC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgcm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwibG9ja3NWaWV3LmZpbHRlcnNpZFwiIG5hbWU9XCJmaWx0ZXJzaWRcIiBbUGxhY2Vob2xkZXJdPVwiJ1NJRCdcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwibG9ja3NWaWV3LmZpbHRlcmxvY2tcIiBuYW1lPVwiZmlsdGVybG9ja1wiIFtQbGFjZWhvbGRlcl09XCInTmFtZScgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXIgYXBwLXBhZGRpbmctdG9wLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1jaGVja2JveCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJsb2Nrc1ZpZXcuZmlsdGVyZ2xvYmFsXCIgbmFtZT1cImZpbHRlcmdsb2JhbFwiPjwvZm9ybS1jaGVja2JveD4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXBvaW50ZXJcIiAoY2xpY2spPVwibG9ja3NWaWV3LmZpbHRlcmdsb2JhbCA9ICFsb2Nrc1ZpZXcuZmlsdGVyZ2xvYmFsXCI+e3snR2xvYmFsJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBidG4gYXBwLWJ0bi1zZWFyY2ggYXBwLW1hcmdpbi10b3AtMjBcIiAoY2xpY2spPVwic2VuZFNlYXJjaCgpXCIgdHlwZT1cInN1Ym1pdFwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhbG9ja3NWaWV3XCI+PGVtPnt7J0xvYWRpbmcgQXBwbGljYXRpb24gTG9ja3MnIHwgbG9jYWxpemUgOiBsY319Li4uPC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsb2Nrc1ZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cImxvY2tzVmlld1wiIFtBdXRvVXBkYXRlXT1cInRydWVcIiBbT3JkZXJCeUNvbHVtbl09XCJ0cnVlXCIgKG9uU2VhcmNoUmVxdWVzdCk9XCJzZW5kU2VhcmNoKCRldmVudCk7XCI+PC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,10 +1,9 @@
1
1
  // Angular
2
- import { Component, Inject } from "@angular/core";
2
+ import { Component } from "@angular/core";
3
3
  // Configurazioni
4
4
  import { LocalizationService } from "@esfaenza/localizations";
5
5
  import { InboundMessageTypes } from "@esfaenza/extensions";
6
6
  // Applicazione
7
- import { ADM_BACKEND_URL } from "../../tokens";
8
7
  import { Repository } from "../../models/externals/Repository";
9
8
  // Localizzazione
10
9
  import { AdmLogsLoc } from "./adm_logs.component.loc";
@@ -15,25 +14,21 @@ import * as i3 from "@esfaenza/localizations";
15
14
  import * as i4 from "@angular/router";
16
15
  import * as i5 from "@angular/common";
17
16
  export class AdmLogsComponent {
18
- constructor(intercom, http, lc, route, backend) {
17
+ constructor(intercom, http, lc, route) {
19
18
  this.intercom = intercom;
20
19
  this.http = http;
21
20
  this.lc = lc;
22
21
  this.route = route;
23
- this.backend = backend;
24
22
  this.intercom.send(InboundMessageTypes.Navigation, { sub: false, routeTitle: this.lc.loc(this.route.snapshot.data["title"]) });
25
23
  }
26
24
  ngOnInit() {
27
- this.http.get(this.backend + Repository["GET_Adm_GetServerLogs"]).subscribe(t => { this.Log = t; });
25
+ this.http.get(Repository["GET_Adm_GetServerLogs"]).subscribe(t => { this.Log = t; });
28
26
  }
29
27
  }
30
- AdmLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmLogsComponent, deps: [{ token: i1.InterComService }, { token: i2.HTTPService }, { token: i3.LocalizationService }, { token: i4.ActivatedRoute }, { token: ADM_BACKEND_URL }], target: i0.ɵɵFactoryTarget.Component });
28
+ AdmLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmLogsComponent, deps: [{ token: i1.InterComService }, { token: i2.HTTPService }, { token: i3.LocalizationService }, { token: i4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
31
29
  AdmLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmLogsComponent, selector: "adm_logs", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 bottom-15\">\r\n <p *ngIf=\"Log\" class=\"app-whitespace-prewrap\" [innerHTML]=\"Log\"></p>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], viewProviders: [{ provide: LocalizationService, useClass: AdmLogsLoc }] });
32
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdmLogsComponent, decorators: [{
33
31
  type: Component,
34
32
  args: [{ selector: "adm_logs", viewProviders: [{ provide: LocalizationService, useClass: AdmLogsLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12 bottom-15\">\r\n <p *ngIf=\"Log\" class=\"app-whitespace-prewrap\" [innerHTML]=\"Log\"></p>\r\n </div>\r\n</div>" }]
35
- }], ctorParameters: function () { return [{ type: i1.InterComService }, { type: i2.HTTPService }, { type: i3.LocalizationService }, { type: i4.ActivatedRoute }, { type: undefined, decorators: [{
36
- type: Inject,
37
- args: [ADM_BACKEND_URL]
38
- }] }]; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2xvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9sb2dzL2FkbV9sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvbG9ncy9hZG1fbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEQsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RSxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQU90RCxNQUFNLE9BQU8sZ0JBQWdCO0lBR3pCLFlBQ1ksUUFBeUIsRUFDekIsSUFBaUIsRUFDakIsRUFBdUIsRUFDdkIsS0FBcUIsRUFDSSxPQUFlO1FBSnhDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDSSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRWhELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuSSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7OzZHQWZRLGdCQUFnQiw2SUFRYixlQUFlO2lHQVJsQixnQkFBZ0IsZ0RDckI3QiwyS0FJTSxxSURjYSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQzsyRkFHOUQsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNJLFVBQVUsaUJBQ0wsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7OzBCQVdsRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBBRE1fQkFDS0VORF9VUkwgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1Mb2dzTG9jIH0gZnJvbSBcIi4vYWRtX2xvZ3MuY29tcG9uZW50LmxvY1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhZG1fbG9nc1wiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbUxvZ3NMb2MgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FkbV9sb2dzLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbUxvZ3NDb21wb25lbnQge1xyXG4gICAgcHVibGljIExvZzogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEhUVFBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9HZXRTZXJ2ZXJMb2dzXCJdKS5zdWJzY3JpYmUodCA9PiB7IHRoaXMuTG9nID0gdDsgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGJvdHRvbS0xNVwiPlxyXG4gICAgICAgIDxwICpuZ0lmPVwiTG9nXCIgY2xhc3M9XCJhcHAtd2hpdGVzcGFjZS1wcmV3cmFwXCIgW2lubmVySFRNTF09XCJMb2dcIj48L3A+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
33
+ }], ctorParameters: function () { return [{ type: i1.InterComService }, { type: i2.HTTPService }, { type: i3.LocalizationService }, { type: i4.ActivatedRoute }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2xvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9sb2dzL2FkbV9sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvbG9ncy9hZG1fbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLHNCQUFzQixDQUFDO0FBRTVFLGVBQWU7QUFDZixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQU90RCxNQUFNLE9BQU8sZ0JBQWdCO0lBR3pCLFlBQ1ksUUFBeUIsRUFDekIsSUFBaUIsRUFDakIsRUFBdUIsRUFDdkIsS0FBcUI7UUFIckIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUU3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkksQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQzs7NkdBZFEsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsZ0RDcEI3QiwyS0FJTSxxSURhYSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQzsyRkFHOUQsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNJLFVBQVUsaUJBQ0wsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZXh0ZXJuYWxzL1JlcG9zaXRvcnlcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbUxvZ3NMb2MgfSBmcm9tIFwiLi9hZG1fbG9ncy5jb21wb25lbnQubG9jXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV9sb2dzXCIsXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtTG9nc0xvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX2xvZ3MuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtTG9nc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgTG9nOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PHN0cmluZz4oUmVwb3NpdG9yeVtcIkdFVF9BZG1fR2V0U2VydmVyTG9nc1wiXSkuc3Vic2NyaWJlKHQgPT4geyB0aGlzLkxvZyA9IHQ7IH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICA8cCAqbmdJZj1cIkxvZ1wiIGNsYXNzPVwiYXBwLXdoaXRlc3BhY2UtcHJld3JhcFwiIFtpbm5lckhUTUxdPVwiTG9nXCI+PC9wPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -8,7 +8,7 @@ import { InboundMessageTypes } from "@esfaenza/extensions";
8
8
  import { KeyValue } from "../../models/shared/KeyValue";
9
9
  import { MetricsView } from "../../models/components/MetricsView";
10
10
  import { Repository } from "../../models/externals/Repository";
11
- import { ADM_BACKEND_URL, ADM_MODULE_PATH } from "../../tokens";
11
+ import { ADM_MODULE_PATH } from "../../tokens";
12
12
  // Localizzazione
13
13
  import { AdmMetricsLoc } from "./metrics_search.component.loc";
14
14
  import * as i0 from "@angular/core";
@@ -22,7 +22,7 @@ import * as i7 from "@angular/forms";
22
22
  import * as i8 from "@esfaenza/forms-and-validations";
23
23
  import * as i9 from "@esfaenza/es-charts";
24
24
  export class AdmMetricsComponent {
25
- constructor(dateExts, lc, localStorage, location, intercom, http, route, backend, mod) {
25
+ constructor(dateExts, lc, localStorage, location, intercom, http, route, mod) {
26
26
  this.dateExts = dateExts;
27
27
  this.lc = lc;
28
28
  this.localStorage = localStorage;
@@ -30,7 +30,6 @@ export class AdmMetricsComponent {
30
30
  this.intercom = intercom;
31
31
  this.http = http;
32
32
  this.route = route;
33
- this.backend = backend;
34
33
  this.mod = mod;
35
34
  this.MetricsChartCache = {};
36
35
  this.searchView = new MetricsView();
@@ -59,7 +58,7 @@ export class AdmMetricsComponent {
59
58
  this.selectedInstance = "";
60
59
  this.searchView.filtermetrics = [];
61
60
  var pars = new HttpParams().set("from", this.searchView.filterfrom || "").set("to", this.searchView.filterto || "");
62
- this.http.get(this.backend + Repository["GET_Adm_GetMetrics"], pars).subscribe(t => this.Metrics = t);
61
+ this.http.get(Repository["GET_Adm_GetMetrics"], pars).subscribe(t => this.Metrics = t);
63
62
  }
64
63
  async doInit(ignoreStorage) {
65
64
  let item = await this.localStorage.getItem("HotSearchMetrics").toPromise();
@@ -76,7 +75,7 @@ export class AdmMetricsComponent {
76
75
  init(HotPotato) {
77
76
  if (HotPotato) {
78
77
  this.searchView = HotPotato;
79
- this.POSTGetItems(this.backend + Repository["POST_Adm_GetMetrics"], this.searchView, false);
78
+ this.POSTGetItems(Repository["POST_Adm_GetMetrics"], this.searchView, false);
80
79
  }
81
80
  else {
82
81
  this.searchView = new MetricsView();
@@ -96,7 +95,7 @@ export class AdmMetricsComponent {
96
95
  this.searchView.itemsperpageoverride = 999999;
97
96
  if (resetPage)
98
97
  this.searchView.page = 1;
99
- this.POSTGetItems(this.backend + Repository["POST_Adm_GetMetrics"], searchViewOverride ?? this.searchView, update);
98
+ this.POSTGetItems(Repository["POST_Adm_GetMetrics"], searchViewOverride ?? this.searchView, update);
100
99
  }
101
100
  POSTGetItems(url, data, update) {
102
101
  data.filterrealtime = update ? data.filterrealtime : !(!!data.filterfrom || !!data.filterto);
@@ -158,7 +157,7 @@ export class AdmMetricsComponent {
158
157
  clearInterval(this.updateTimer);
159
158
  }
160
159
  }
161
- 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_BACKEND_URL }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
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 });
162
161
  AdmMetricsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdmMetricsComponent, selector: "metrics_search", providers: [
163
162
  { provide: LocalizationService, useClass: AdmMetricsLoc }
164
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" }] });
@@ -168,10 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
168
167
  { provide: LocalizationService, useClass: AdmMetricsLoc }
169
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>" }]
170
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: [{
171
- type: Inject,
172
- args: [ADM_BACKEND_URL]
173
- }] }, { type: undefined, decorators: [{
174
170
  type: Inject,
175
171
  args: [ADM_MODULE_PATH]
176
172
  }] }]; } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljc19zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9tZXRyaWNzL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvbWV0cmljcy9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RCxPQUFPLEVBQWUsbUJBQW1CLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFekYsZUFBZTtBQUNmLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBUy9ELE1BQU0sT0FBTyxtQkFBbUI7SUFXNUIsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFrQixFQUNsQixRQUF5QixFQUN6QixJQUFpQixFQUNqQixLQUFxQixFQUNJLE9BQWUsRUFDZixHQUFXO1FBUnJDLGFB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QUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBCYXNlQ2hhcnRDb21wb25lbnQgfSBmcm9tIFwiQGVzZmFlbnphL2VzLWNoYXJ0c1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UsIEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zaGFyZWQvS2V5VmFsdWVcIjtcclxuaW1wb3J0IHsgTWV0cmljIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY1wiO1xyXG5pbXBvcnQgeyBNZXRyaWNDaGFydCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9NZXRyaWNDaGFydFwiO1xyXG5pbXBvcnQgeyBNZXRyaWNzVmlldyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9NZXRyaWNzVmlld1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBBRE1fQkFDS0VORF9VUkwsIEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbU1ldHJpY3NMb2MgfSBmcm9tIFwiLi9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIm1ldHJpY3Nfc2VhcmNoXCIsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1NZXRyaWNzTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbU1ldHJpY3NDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBNZXRyaWNzOiBNZXRyaWNbXTtcclxuICAgIHByaXZhdGUgTWV0cmljc0NoYXJ0Q2FjaGU6IHsgW25hbWU6IHN0cmluZ106IHsgY2hhcnQ6IEJhc2VDaGFydENvbXBvbmVudCwgbGFzdFRzOiBEYXRlIH0gfSA9IHt9O1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBNZXRyaWNzVmlldyA9IG5ldyBNZXRyaWNzVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgYXV0b1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNlY29uZHM6IHN0cmluZyA9IFwiNVwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBkYXRlRXh0czogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nLFxyXG4gICAgICAgIEBJbmplY3QoQURNX01PRFVMRV9QQVRIKSBwcml2YXRlIG1vZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBJbml0KGlnbm9yZVN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5kb0luaXQoaWdub3JlU3RvcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGRhdGVDaGFuZ2VkKCkge1xyXG4gICAgICAgIC8vIFB1bGl6aWEgZGkgdHV0dGkgaSBwYXJhbWV0cmkgZGkgcmljZXJjYSBkaXBlbmRlbnRpIGRhbGxlIGRhdGVcclxuICAgICAgICB0aGlzLm1ldHJpY3NUb1Nob3cgPSBbXTtcclxuICAgICAgICB0aGlzLk1ldHJpY3MgPSBbXTtcclxuICAgICAgICB0aGlzLmluc3RhbmNlUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkluc3RhbmNlcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbnN0YW5jZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LmZpbHRlcm1ldHJpY3MgPSBbXTtcclxuXHJcbiAgICAgICAgdmFyIHBhcnMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcImZyb21cIiwgdGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20gfHwgXCJcIikuc2V0KFwidG9cIiwgdGhpcy5zZWFyY2hWaWV3LmZpbHRlcnRvIHx8IFwiXCIpXHJcbiAgICAgICAgdGhpcy5odHRwLmdldDxNZXRyaWNbXT4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fR2V0TWV0cmljc1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4gdGhpcy5NZXRyaWNzID0gdCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZG9Jbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08TWV0cmljc1ZpZXc+KFwiSG90U2VhcmNoTWV0cmljc1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgL3BhZ2VzLyR7dGhpcy5tb2R9L21ldHJpY3NgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90U2VhcmNoTWV0cmljc1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IE1ldHJpY3NWaWV3KSB7XHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRNZXRyaWNzXCJdLCB0aGlzLnNlYXJjaFZpZXcsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBNZXRyaWNzVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSwgdXBkYXRlOiBib29sZWFuID0gZmFsc2UsIHNlYXJjaFZpZXdPdmVycmlkZTogTWV0cmljc1ZpZXcgPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKCF1cGRhdGUpXHJcbiAgICAgICAgICAgIHRoaXMuTWV0cmljc0NoYXJ0Q2FjaGUgPSB7fTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIC8vIFF1ZXN0YSByaWNlcmNhIHByZW5kZSBpIG5vbWkgZGlzdGluY3QgZGVsbGUgbWV0cmljaGUgcXVpbmRpIGRldm8gcHJlbmRlcmUgdHV0dG8gcGVyIGZvcnphXHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3Lml0ZW1zcGVycGFnZW92ZXJyaWRlID0gOTk5OTk5O1xyXG4gICAgICAgIGlmIChyZXNldFBhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5wYWdlID0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldE1ldHJpY3NcIl0sIHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcsIHVwZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEluc3RhbmNlczogS2V5VmFsdWVbXSA9IFtdXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRJbnN0YW5jZSA9IFwiXCI7XHJcbiAgICBwdWJsaWMgaW5zdGFuY2VSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIG1ldHJpY3NUb1Nob3c6IE1ldHJpY1tdID0gW107XHJcblxyXG4gICAgUE9TVEdldEl0ZW1zKHVybDogc3RyaW5nLCBkYXRhOiBNZXRyaWNzVmlldywgdXBkYXRlOiBib29sZWFuKSB7XHJcbiAgICAgICAgZGF0YS5maWx0ZXJyZWFsdGltZSA9IHVwZGF0ZSA/IGRhdGEuZmlsdGVycmVhbHRpbWUgOiAhKCEhZGF0YS5maWx0ZXJmcm9tIHx8ICEhZGF0YS5maWx0ZXJ0byk7XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PE1ldHJpY3NWaWV3Pih1cmwsIGRhdGEpLnN1YnNjcmliZShhc3luYyAodCkgPT4ge1xyXG4gICAgICAgICAgICAvL1NlIHNvbm8gaW4gbW9kYWxpdMOgIGRpIHVwZGF0ZSBub24gZGV2byB0b2NjYXJlIGxhIHNlYXJjaFZpZXcgYXR0dWFsZSBzZSBub24gcGVyIGlsIHNlYXJjaGlucHJvZ3Jlc3MgY2hlIHZpZW5lIG1lc3NvIGRhbGwnZXMgdGFibGVcclxuICAgICAgICAgICAgaWYgKCF1cGRhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbnN0YW5jZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1ldHJpY3NUb1Nob3cgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuaXRlbXMuZm9yRWFjaChtID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuSW5zdGFuY2VzLmZpbmQodCA9PiB0LmlkID09IG0uaW5zdGFuY2UpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkluc3RhbmNlcy5wdXNoKG5ldyBLZXlWYWx1ZShtLmluc3RhbmNlLCBtLmluc3RhbmNlKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VSZXF1aXJlZCA9IHRoaXMuSW5zdGFuY2VzLmxlbmd0aCA+IDE7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5JbnN0YW5jZXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2UgPSB0aGlzLkluc3RhbmNlc1swXS5pZDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlU2VsZWN0ZWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hNZXRyaWNzXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBQZXIgb2duaSBncmFmaWNvIGRpIG9nbmkgbWV0cmljYSBhZ2dpdW5nbyB0dXR0aSBpIHZhbG9yaSBjaGUgc29ubyBET1BPIGFsbCd1bHRpbW8gdHMgcmVnaXN0cmF0byBwZXIgcXVlbCBncmFmaWNvXHJcbiAgICAgICAgICAgICAgICB0Lml0ZW1zLmZvckVhY2gobSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbS52YWx1ZXMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZm0gPSB0aGlzLk1ldHJpY3NDaGFydENhY2hlW3RoaXMubWV0cmljS2V5KG0sIGMpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlZm0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuc2VyaWVzLmZvckVhY2gocyA9PiB7IHMudmFsdWVzID0gcy52YWx1ZXMuZmlsdGVyKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpLmlzQWZ0ZXIocmVmbS5sYXN0VHMpKTsgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5zZXJpZXMuc29tZSh0ID0+IHQudmFsdWVzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmbS5sYXN0VHMgPSBjLnNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm0uY2hhcnQuYWRkRGF0YShjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbnN0YW5jZVNlbGVjdGVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEluc3RhbmNlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMubWV0cmljc1RvU2hvdyA9IHRoaXMuc2VhcmNoVmlldy5pdGVtcy5maWx0ZXIodCA9PiB0Lmluc3RhbmNlID09IHRoaXMuc2VsZWN0ZWRJbnN0YW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGlua0NoYXJ0VG9NZXRyaWMobWV0cmljOiBNZXRyaWMsIG1ldHJpY0NoYXJ0OiBNZXRyaWNDaGFydCwgY2hhcnRDb21wOiBCYXNlQ2hhcnRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLk1ldHJpY3NDaGFydENhY2hlW3RoaXMubWV0cmljS2V5KG1ldHJpYywgbWV0cmljQ2hhcnQpXSA9IHsgY2hhcnQ6IGNoYXJ0Q29tcCwgbGFzdFRzOiBtZXRyaWNDaGFydC5zZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbWV0cmljS2V5KG1ldHJpYzogTWV0cmljLCB2YWx1ZTogTWV0cmljQ2hhcnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBtZXRyaWMubmFtZSArIFwiIC0gXCIgKyB2YWx1ZS54dGl0bGUgKyBcIiAtIFwiICsgbWV0cmljLmluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNyZWdpb24gR2VzdGlvbmUgdXBkYXRlIGF1dG9tYXRpY29cclxuICAgIHVwZGF0ZVRpbWVyOiBhbnk7XHJcbiAgICBhdXRvVXBkYXRlQ2hhbmdlZCgpIHtcclxuICAgICAgICBpZiAoIS9eWzEtOV1cXGQqJC8udGVzdCh0aGlzLnNlY29uZHMpKVxyXG4gICAgICAgICAgICB0aGlzLnNlY29uZHMgPSAnMTAnO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHNJbk1zID0gcGFyc2VJbnQodGhpcy5zZWNvbmRzLCBudWxsKSAqIDEwMDA7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b1VwZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goZmFsc2UsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4geyB0aGlzLnNlbmRTZWFyY2goZmFsc2UsIHRydWUpOyB9LCBzZWNvbmRzSW5Ncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnVwZGF0ZVRpbWVyKTtcclxuICAgIH1cclxuICAgIC8vICNlbmRyZWdpb25cclxufSIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBhcHAtb3ZlcmZsb3ctdmlzaWJsZVwiIHdpZGdldD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snU3lzdGVtIE1ldHJpY3MnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHdpZGdldC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gcm9sZT1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgcm93IGFwcC1uby1wYWRkaW5nIGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tZGF0ZXRpbWUgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmZyb21cIiBuYW1lPVwiZmlsdGVyZnJvbVwiIFtQbGFjZWhvbGRlcl09XCInRnJvbScgfCBsb2NhbGl6ZSA6IGxjXCIgKGlucHV0Q2hhbmdlKT1cImRhdGVDaGFuZ2VkKCk7XCI+PC9mb3JtLWRhdGV0aW1lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGV0aW1lIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0b1wiIG5hbWU9XCJmaWx0ZXJ0b1wiIFtQbGFjZWhvbGRlcl09XCInVG8nIHwgbG9jYWxpemUgOiBsY1wiIChpbnB1dENoYW5nZSk9XCJkYXRlQ2hhbmdlZCgpO1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyc2lkXCIgbmFtZT1cImZpbHRlcnNpZFwiIFtQbGFjZWhvbGRlcl09XCInU2Vzc2lvbiBJRCcgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJzZXJpYWxcIiBuYW1lPVwiZmlsdGVyc2VyaWFsXCIgW1BsYWNlaG9sZGVyXT1cIidTZXNzaW9uIFNlcmlhbCcgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHJvdyBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tbXVsdGlzZWxlY3QgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcm1ldHJpY3NcIiBbSWRGaWVsZF09XCInbmFtZSdcIiBbRGlzcGxheV09XCIne25hbWV9J1wiIG5hbWU9XCJmaWx0ZXJtZXRyaWNzXCIgW1NlbGVjdExhYmVsXT1cIidGaWx0ZXIgTWV0cmljcy4uLicgfCBsb2NhbGl6ZSA6IGxjXCIgW1NvdXJjZV09XCJNZXRyaWNzXCI+PC9mb3JtLW11bHRpc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIGFwcC1uby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzIHx8IGF1dG9VcGRhdGVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1jb2wtMTIgYXBwLW1hcmdpbi10b3AtMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J1VwZGF0ZSBldmVyeScgfCBsb2NhbGl6ZSA6IGxjfX0mbmJzcDs8aW5wdXQgW3JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBtYXhsZW5ndGg9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXVwZGV2ZXJ5LWlucHV0XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlY29uZHNcIiAvPiZuYnNwO3t7J3NlY29uZC9zJyB8IGxvY2FsaXplIDogbGN9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHQgbS10LTIgYXBwLW1hcmdpbi1yaWdodC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJhdXRvVXBkYXRlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYXV0b1VwZGF0ZUNoYW5nZWQoKTtcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhc2VhcmNoVmlld1wiPjxlbT57eydMb2FkaW5nIERhdGEnIHwgbG9jYWxpemUgOiBsY319PC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3ICYmIGluc3RhbmNlUmVxdWlyZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFtMYWJlbF09XCInTWV0cmljcyBJbnN0YW5jZScgfCBsb2NhbGl6ZSA6IGxjXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEluc3RhbmNlXCIgbmFtZT1cImluc3RhbmNlXCIgW1NvdXJjZV09XCJJbnN0YW5jZXNcIiAoaW5wdXRDaGFuZ2UpPVwiaW5zdGFuY2VTZWxlY3RlZCgpXCIgcmVxdWlyZWQ+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3ICYmIG1ldHJpY3NUb1Nob3cgJiYgbWV0cmljc1RvU2hvdy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1wYWRkaW5nLXJpZ2h0LTAgcm93IGFwcC1tYXJnaW4tdG9wLTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWV0cmljIG9mIG1ldHJpY3NUb1Nob3c7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGFwcC1uby1wYWRkaW5nIGFwcC1zaW1wbGUtYm9yZGVyXCIgKm5nRm9yPVwibGV0IGNoYXJ0IG9mIG1ldHJpYy52YWx1ZXM7IGxldCB6ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAyNjBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy1saW5lLWNoYXJ0IFtYVGl0bGVdPVwiY2hhcnQueHRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbWVRpdGxlXT1cImNoYXJ0Lnl0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01pbkdyaWREaXN0YW5jZV09XCI2NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RpbWVsaW5lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kUGFkZGluZ109XCJ7dG9wOiAwLCBib3R0b206IDcsIHJpZ2h0OiAwLCBsZWZ0OiAxMH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNZXJnZURhdGFzZXRzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhXT1cImNoYXJ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQW5pbWF0aW9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kXT1cImNoYXJ0LmxlZ2VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1ldHJpY197e2l9fV9jaGFydF97e3p9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXJ0TG9hZGVkKT1cImxpbmtDaGFydFRvTWV0cmljKG1ldHJpYywgY2hhcnQsICRldmVudCk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YUdyb3VwaW5nVGhyZXNob2xkXT1cIjk5OTk5OTk5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy1saW5lLWNoYXJ0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljc19zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9tZXRyaWNzL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvbWV0cmljcy9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RCxPQUFPLEVBQWUsbUJBQW1CLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFekYsZUFBZTtBQUNmLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFTL0QsTUFBTSxPQUFPLG1CQUFtQjtJQVc1QixZQUNXLFFBQXFCLEVBQ3JCLEVBQXVCLEVBQ3RCLFlBQWdDLEVBQ2hDLFFBQWtCLEVBQ2xCLFFBQXlCLEVBQ3pCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ0ksR0FBVztRQVByQyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FB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RyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBSUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3hGOztZQUVHLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Z0hBaEtRLG1CQUFtQixrT0FtQmhCLGVBQWU7b0dBbkJsQixtQkFBbUIseUNBTGpCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTtLQUM1RCwwQkM1QkwscTlOQXlGTTsyRkQxRE8sbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixhQUNmO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7cUJBQzVEOzswQkFzQkksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSwgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NoYXJlZC9LZXlWYWx1ZVwiO1xyXG5pbXBvcnQgeyBNZXRyaWMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvTWV0cmljXCI7XHJcbmltcG9ydCB7IE1ldHJpY0NoYXJ0IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY0NoYXJ0XCI7XHJcbmltcG9ydCB7IE1ldHJpY3NWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL01ldHJpY3NWaWV3XCI7XHJcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2V4dGVybmFscy9SZXBvc2l0b3J5XCI7XHJcbmltcG9ydCB7IEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbU1ldHJpY3NMb2MgfSBmcm9tIFwiLi9tZXRyaWNzX3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIm1ldHJpY3Nfc2VhcmNoXCIsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1NZXRyaWNzTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL21ldHJpY3Nfc2VhcmNoLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbU1ldHJpY3NDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBNZXRyaWNzOiBNZXRyaWNbXTtcclxuICAgIHByaXZhdGUgTWV0cmljc0NoYXJ0Q2FjaGU6IHsgW25hbWU6IHN0cmluZ106IHsgY2hhcnQ6IEJhc2VDaGFydENvbXBvbmVudCwgbGFzdFRzOiBEYXRlIH0gfSA9IHt9O1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBNZXRyaWNzVmlldyA9IG5ldyBNZXRyaWNzVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgYXV0b1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNlY29uZHM6IHN0cmluZyA9IFwiNVwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBkYXRlRXh0czogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIEluaXQoaWdub3JlU3RvcmUpIHtcclxuICAgICAgICB0aGlzLmRvSW5pdChpZ25vcmVTdG9yZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgLy8gUHVsaXppYSBkaSB0dXR0aSBpIHBhcmFtZXRyaSBkaSByaWNlcmNhIGRpcGVuZGVudGkgZGFsbGUgZGF0ZVxyXG4gICAgICAgIHRoaXMubWV0cmljc1RvU2hvdyA9IFtdO1xyXG4gICAgICAgIHRoaXMuTWV0cmljcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuaW5zdGFuY2VSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuSW5zdGFuY2VzID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluc3RhbmNlID0gXCJcIjtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuZmlsdGVybWV0cmljcyA9IFtdO1xyXG5cclxuICAgICAgICB2YXIgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiZnJvbVwiLCB0aGlzLnNlYXJjaFZpZXcuZmlsdGVyZnJvbSB8fCBcIlwiKS5zZXQoXCJ0b1wiLCB0aGlzLnNlYXJjaFZpZXcuZmlsdGVydG8gfHwgXCJcIilcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PE1ldHJpY1tdPihSZXBvc2l0b3J5W1wiR0VUX0FkbV9HZXRNZXRyaWNzXCJdLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB0aGlzLk1ldHJpY3MgPSB0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxNZXRyaWNzVmlldz4oXCJIb3RTZWFyY2hNZXRyaWNzXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vbWV0cmljc2ApO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3RTZWFyY2hNZXRyaWNzXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogTWV0cmljc1ZpZXcpIHtcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IEhvdFBvdGF0bztcclxuICAgICAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXMoUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldE1ldHJpY3NcIl0sIHRoaXMuc2VhcmNoVmlldywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IE1ldHJpY3NWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGVDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFNlYXJjaChyZXNldFBhZ2U6IGJvb2xlYW4gPSB0cnVlLCB1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZSwgc2VhcmNoVmlld092ZXJyaWRlOiBNZXRyaWNzVmlldyA9IG51bGwpIHtcclxuICAgICAgICBpZiAoIXVwZGF0ZSlcclxuICAgICAgICAgICAgdGhpcy5NZXRyaWNzQ2hhcnRDYWNoZSA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgLy8gUXVlc3RhIHJpY2VyY2EgcHJlbmRlIGkgbm9taSBkaXN0aW5jdCBkZWxsZSBtZXRyaWNoZSBxdWluZGkgZGV2byBwcmVuZGVyZSB0dXR0byBwZXIgZm9yemFcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgPSA5OTk5OTk7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyhSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0TWV0cmljc1wiXSwgc2VhcmNoVmlld092ZXJyaWRlID8/IHRoaXMuc2VhcmNoVmlldywgdXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgSW5zdGFuY2VzOiBLZXlWYWx1ZVtdID0gW11cclxuICAgIHB1YmxpYyBzZWxlY3RlZEluc3RhbmNlID0gXCJcIjtcclxuICAgIHB1YmxpYyBpbnN0YW5jZVJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgbWV0cmljc1RvU2hvdzogTWV0cmljW10gPSBbXTtcclxuXHJcbiAgICBQT1NUR2V0SXRlbXModXJsOiBzdHJpbmcsIGRhdGE6IE1ldHJpY3NWaWV3LCB1cGRhdGU6IGJvb2xlYW4pIHtcclxuICAgICAgICBkYXRhLmZpbHRlcnJlYWx0aW1lID0gdXBkYXRlID8gZGF0YS5maWx0ZXJyZWFsdGltZSA6ICEoISFkYXRhLmZpbHRlcmZyb20gfHwgISFkYXRhLmZpbHRlcnRvKTtcclxuXHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8TWV0cmljc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKGFzeW5jICh0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vU2Ugc29ubyBpbiBtb2RhbGl0w6AgZGkgdXBkYXRlIG5vbiBkZXZvIHRvY2NhcmUgbGEgc2VhcmNoVmlldyBhdHR1YWxlIHNlIG5vbiBwZXIgaWwgc2VhcmNoaW5wcm9ncmVzcyBjaGUgdmllbmUgbWVzc28gZGFsbCdlcyB0YWJsZVxyXG4gICAgICAgICAgICBpZiAoIXVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluc3RhbmNlID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMubWV0cmljc1RvU2hvdyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5pdGVtcy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5JbnN0YW5jZXMuZmluZCh0ID0+IHQuaWQgPT0gbS5pbnN0YW5jZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuSW5zdGFuY2VzLnB1c2gobmV3IEtleVZhbHVlKG0uaW5zdGFuY2UsIG0uaW5zdGFuY2UpKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVJlcXVpcmVkID0gdGhpcy5JbnN0YW5jZXMubGVuZ3RoID4gMTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLkluc3RhbmNlcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbnN0YW5jZSA9IHRoaXMuSW5zdGFuY2VzWzBdLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VTZWxlY3RlZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkhvdFNlYXJjaE1ldHJpY3NcIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIFBlciBvZ25pIGdyYWZpY28gZGkgb2duaSBtZXRyaWNhIGFnZ2l1bmdvIHR1dHRpIGkgdmFsb3JpIGNoZSBzb25vIERPUE8gYWxsJ3VsdGltbyB0cyByZWdpc3RyYXRvIHBlciBxdWVsIGdyYWZpY29cclxuICAgICAgICAgICAgICAgIHQuaXRlbXMuZm9yRWFjaChtID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtLnZhbHVlcy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVmbSA9IHRoaXMuTWV0cmljc0NoYXJ0Q2FjaGVbdGhpcy5tZXRyaWNLZXkobSwgYyldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVmbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5zZXJpZXMuZm9yRWFjaChzID0+IHsgcy52YWx1ZXMgPSBzLnZhbHVlcy5maWx0ZXIodiA9PiB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHYuZCkuaXNBZnRlcihyZWZtLmxhc3RUcykpOyB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLnNlcmllcy5zb21lKHQgPT4gdC52YWx1ZXMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZtLmxhc3RUcyA9IGMuc2VyaWVzLm1hcCh0ID0+IGRheWpzLm1heCh0LnZhbHVlcy5tYXAodiA9PiB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHYuZCkpKSlbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmbS5jaGFydC5hZGREYXRhKGMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGluc3RhbmNlU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSW5zdGFuY2UpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5tZXRyaWNzVG9TaG93ID0gdGhpcy5zZWFyY2hWaWV3Lml0ZW1zLmZpbHRlcih0ID0+IHQuaW5zdGFuY2UgPT0gdGhpcy5zZWxlY3RlZEluc3RhbmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBsaW5rQ2hhcnRUb01ldHJpYyhtZXRyaWM6IE1ldHJpYywgbWV0cmljQ2hhcnQ6IE1ldHJpY0NoYXJ0LCBjaGFydENvbXA6IEJhc2VDaGFydENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuTWV0cmljc0NoYXJ0Q2FjaGVbdGhpcy5tZXRyaWNLZXkobWV0cmljLCBtZXRyaWNDaGFydCldID0geyBjaGFydDogY2hhcnRDb21wLCBsYXN0VHM6IG1ldHJpY0NoYXJ0LnNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBtZXRyaWNLZXkobWV0cmljOiBNZXRyaWMsIHZhbHVlOiBNZXRyaWNDaGFydCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG1ldHJpYy5uYW1lICsgXCIgLSBcIiArIHZhbHVlLnh0aXRsZSArIFwiIC0gXCIgKyBtZXRyaWMuaW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBHZXN0aW9uZSB1cGRhdGUgYXV0b21hdGljb1xyXG4gICAgdXBkYXRlVGltZXI6IGFueTtcclxuICAgIGF1dG9VcGRhdGVDaGFuZ2VkKCkge1xyXG4gICAgICAgIGlmICghL15bMS05XVxcZCokLy50ZXN0KHRoaXMuc2Vjb25kcykpXHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyA9ICcxMCc7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kc0luTXMgPSBwYXJzZUludCh0aGlzLnNlY29uZHMsIG51bGwpICogMTAwMDtcclxuICAgICAgICBpZiAodGhpcy5hdXRvVXBkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7IHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7IH0sIHNlY29uZHNJbk1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudXBkYXRlVGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZHJlZ2lvblxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eydTeXN0ZW0gTWV0cmljcycgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgd2lkZ2V0LWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiByb3cgYXBwLW5vLXBhZGRpbmcgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIiAoaW5wdXRDaGFuZ2UpPVwiZGF0ZUNoYW5nZWQoKTtcIj48L2Zvcm0tZGF0ZXRpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tZGF0ZXRpbWUgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRvXCIgbmFtZT1cImZpbHRlcnRvXCIgW1BsYWNlaG9sZGVyXT1cIidUbycgfCBsb2NhbGl6ZSA6IGxjXCIgKGlucHV0Q2hhbmdlKT1cImRhdGVDaGFuZ2VkKCk7XCI+PC9mb3JtLWRhdGV0aW1lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJzaWRcIiBuYW1lPVwiZmlsdGVyc2lkXCIgW1BsYWNlaG9sZGVyXT1cIidTZXNzaW9uIElEJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnNlcmlhbFwiIG5hbWU9XCJmaWx0ZXJzZXJpYWxcIiBbUGxhY2Vob2xkZXJdPVwiJ1Nlc3Npb24gU2VyaWFsJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgcm93IGFwcC1uby1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1tdWx0aXNlbGVjdCBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVybWV0cmljc1wiIFtJZEZpZWxkXT1cIiduYW1lJ1wiIFtEaXNwbGF5XT1cIid7bmFtZX0nXCIgbmFtZT1cImZpbHRlcm1ldHJpY3NcIiBbU2VsZWN0TGFiZWxdPVwiJ0ZpbHRlciBNZXRyaWNzLi4uJyB8IGxvY2FsaXplIDogbGNcIiBbU291cmNlXT1cIk1ldHJpY3NcIj48L2Zvcm0tbXVsdGlzZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgYXBwLW5vLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJzZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgfHwgYXV0b1VwZGF0ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLWNvbC0xMiBhcHAtbWFyZ2luLXRvcC0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3snVXBkYXRlIGV2ZXJ5JyB8IGxvY2FsaXplIDogbGN9fSZuYnNwOzxpbnB1dCBbcmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIG1heGxlbmd0aD1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdXBkZXZlcnktaW5wdXRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2Vjb25kc1wiIC8+Jm5ic3A7e3snc2Vjb25kL3MnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtLXQtMiBhcHAtbWFyZ2luLXJpZ2h0LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImF1dG9VcGRhdGVcIiAobmdNb2RlbENoYW5nZSk9XCJhdXRvVXBkYXRlQ2hhbmdlZCgpO1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0xvYWRpbmcgRGF0YScgfCBsb2NhbGl6ZSA6IGxjfX08L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXcgJiYgaW5zdGFuY2VSZXF1aXJlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgW0xhYmVsXT1cIidNZXRyaWNzIEluc3RhbmNlJyB8IGxvY2FsaXplIDogbGNcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkSW5zdGFuY2VcIiBuYW1lPVwiaW5zdGFuY2VcIiBbU291cmNlXT1cIkluc3RhbmNlc1wiIChpbnB1dENoYW5nZSk9XCJpbnN0YW5jZVNlbGVjdGVkKClcIiByZXF1aXJlZD48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXcgJiYgbWV0cmljc1RvU2hvdyAmJiBtZXRyaWNzVG9TaG93Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLXBhZGRpbmctcmlnaHQtMCByb3cgYXBwLW1hcmdpbi10b3AtMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZXRyaWMgb2YgbWV0cmljc1RvU2hvdzsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgYXBwLW5vLXBhZGRpbmcgYXBwLXNpbXBsZS1ib3JkZXJcIiAqbmdGb3I9XCJsZXQgY2hhcnQgb2YgbWV0cmljLnZhbHVlczsgbGV0IHogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDI2MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLWxpbmUtY2hhcnQgW1hUaXRsZV09XCJjaGFydC54dGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtZVGl0bGVdPVwiY2hhcnQueXRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWluR3JpZERpc3RhbmNlXT1cIjY1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVGltZWxpbmVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtMZWdlbmRQYWRkaW5nXT1cInt0b3A6IDAsIGJvdHRvbTogNywgcmlnaHQ6IDAsIGxlZnQ6IDEwfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01lcmdlRGF0YXNldHNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RhdGFdPVwiY2hhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbmltYXRpb25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtMZWdlbmRdPVwiY2hhcnQubGVnZW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibWV0cmljX3t7aX19X2NoYXJ0X3t7en19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcnRMb2FkZWQpPVwibGlua0NoYXJ0VG9NZXRyaWMobWV0cmljLCBjaGFydCwgJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhR3JvdXBpbmdUaHJlc2hvbGRdPVwiOTk5OTk5OTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLWxpbmUtY2hhcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==