@esfaenza/core 15.2.313 → 15.2.315

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.
@@ -1,5 +1,7 @@
1
- import { Injectable } from "@angular/core";
1
+ import { Inject, Injectable } from "@angular/core";
2
2
  import { InboundMessageTypes } from "@esfaenza/extensions";
3
+ // Core
4
+ import { ActiveModuleView, USE_FAKE_ACCESS_TOKEN } from "@esfaenza/core/domain";
3
5
  // Direttive, Componenti, Librerie
4
6
  import * as customParseFormat from 'dayjs/plugin/customParseFormat';
5
7
  import * as isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
@@ -12,23 +14,28 @@ import { Subject, filter } from "rxjs";
12
14
  import * as i0 from "@angular/core";
13
15
  import * as i1 from "@angular/router";
14
16
  import * as i2 from "@esfaenza/localizations";
15
- import * as i3 from "./app.accesstoken";
16
- import * as i4 from "@esfaenza/signalr-notifications";
17
- import * as i5 from "@esfaenza/extensions";
17
+ import * as i3 from "@esfaenza/httpservice";
18
+ import * as i4 from "./app.accesstoken";
19
+ import * as i5 from "@esfaenza/signalr-notifications";
20
+ import * as i6 from "@esfaenza/extensions";
21
+ // Chiamate ai Repository
22
+ const GET_Jace_GetActiveJaceModules = "/api/Jace/GetActiveJaceModules";
18
23
  export class AppState {
19
24
  set Modules(modules) {
20
25
  this._modules = modules;
21
26
  this.notifyDataChanged("modules.Retrieved", this._modules);
22
27
  }
23
28
  get Modules() { return this._modules; }
24
- constructor(router, lc, bts, notifications, MessageDef, intercom, emb) {
29
+ constructor(router, lc, http, bts, notifications, MessageDef, intercom, emb, fakeToken) {
25
30
  this.router = router;
26
31
  this.lc = lc;
32
+ this.http = http;
27
33
  this.bts = bts;
28
34
  this.notifications = notifications;
29
35
  this.MessageDef = MessageDef;
30
36
  this.intercom = intercom;
31
37
  this.emb = emb;
38
+ this.fakeToken = fakeToken;
32
39
  this.redirectingToLogin = false;
33
40
  this.handlingError = false;
34
41
  this.christmasTime = false;
@@ -43,6 +50,7 @@ export class AppState {
43
50
  this.hookEmbedding();
44
51
  this.setupDayjs();
45
52
  this.setupSignalRJobListening();
53
+ this.getActiveJaceModules();
46
54
  this.JaceIdentity = null;
47
55
  this._data.subscribe((data) => this._onEvent(data));
48
56
  //Decide se siamo attorno a natale
@@ -57,6 +65,17 @@ export class AppState {
57
65
  this.halloweenTime = today > lowerBound && today < upperBound;
58
66
  this.intercom.inbounds.subscribe((t) => { this.handleInboundMessage(t); });
59
67
  }
68
+ getActiveJaceModules() {
69
+ if (this.fakeToken) {
70
+ this.Modules = [new ActiveModuleView("Modulo Esempio 1"), new ActiveModuleView("Modulo Esempio 2"), new ActiveModuleView("Modulo Esempio 3")];
71
+ this.Modules = this.Modules;
72
+ return;
73
+ }
74
+ this.http.get(GET_Jace_GetActiveJaceModules).subscribe(res => {
75
+ this.Modules = res;
76
+ this.Modules = this.Modules;
77
+ });
78
+ }
60
79
  // Collego le informazioni dell'embedding che devono appoggiarsi all'app state in modo che possano comunicare col resto dell'applicazione
61
80
  hookEmbedding() {
62
81
  this.emb.MessageObserver.pipe(filter(ev => ev.event == "navigation")).subscribe(event => {
@@ -210,10 +229,13 @@ export class AppState {
210
229
  this.headerHeight = height;
211
230
  }
212
231
  }
213
- AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppState, deps: [{ token: i1.Router }, { token: i2.LocalizationService }, { token: i3.TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
232
+ AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppState, deps: [{ token: i1.Router }, { token: i2.LocalizationService }, { token: i3.HTTPService }, { token: i4.TokenService }, { token: i5.NotificationsService }, { token: i5.BaseMessageService }, { token: i6.InterComService }, { token: i6.AppEmbeddingExtensions }, { token: USE_FAKE_ACCESS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
214
233
  AppState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppState, providedIn: "root" });
215
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppState, decorators: [{
216
235
  type: Injectable,
217
236
  args: [{ providedIn: "root" }]
218
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocalizationService }, { type: i3.TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }]; } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQW9DLE1BQU0sc0JBQXNCLENBQUM7QUFTN0Ysa0NBQWtDO0FBQ2xDLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEtBQUssY0FBYyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sS0FBSyxhQUFhLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxLQUFLLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQU12QyxNQUFNLE9BQU8sUUFBUTtJQXdCakIsSUFBVyxPQUFPLENBQUMsT0FBMkI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBVyxPQUFPLEtBQXlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFbEUsWUFBb0IsTUFBYyxFQUFVLEVBQXVCLEVBQVUsR0FBaUIsRUFBVSxhQUFtQyxFQUFVLFVBQThCLEVBQVUsUUFBeUIsRUFBVSxHQUEyQjtRQUF2TyxXQUFNLEdBQU4sTUFBTSxDQUFR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QUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUFrQjtRQUN2QyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTO1FBQ2QsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRS9ELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQzs7c0dBek9RLFFBQVE7MEdBQVIsUUFBUSxjQURLLE1BQU07NEZBQ25CLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZU1lc3NhZ2VTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgSm9iUHJvZ3Jlc3NEdG8gfSBmcm9tIFwiQGVzZmFlbnphL3NpZ25hbHItbm90aWZpY2F0aW9uc1wiO1xyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbU1lc3NhZ2UsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gXCIuL2FwcC5hY2Nlc3N0b2tlblwiO1xyXG5cclxuaW1wb3J0IHsgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy8gQ29yZVxyXG5pbXBvcnQgeyBBY3RpdmVNb2R1bGVWaWV3LCBBcHBsaWNhdGlvbkpvYiwgRW52T3B0aW9ucywgSmFjZUlkZW50aXR5IH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgKiBhcyBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckJlZm9yZSBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmUnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckFmdGVyIGZyb20gJ2RheWpzL3BsdWdpbi9pc1NhbWVPckFmdGVyJztcclxuaW1wb3J0ICogYXMgaXNCZXR3ZWVuIGZyb20gJ2RheWpzL3BsdWdpbi9pc0JldHdlZW4nO1xyXG5pbXBvcnQgKiBhcyBkdXJhdGlvbiBmcm9tICdkYXlqcy9wbHVnaW4vZHVyYXRpb24nO1xyXG5pbXBvcnQgKiBhcyBtaW5NYXggZnJvbSAnZGF5anMvcGx1Z2luL21pbk1heCc7XHJcbmltcG9ydCAqIGFzIHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgQXBwU3RhdGUge1xyXG5cclxuICAgIHB1YmxpYyBzaWRlYmFyV2lkdGg6IG51bWJlcjtcclxuICAgIHB1YmxpYyBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBTZXNzaW9uSWRlbnRpdHk6IHN0cmluZztcclxuICAgIHByaXZhdGUgSmFjZUlkZW50aXR5OiBKYWNlSWRlbnRpdHk7XHJcblxyXG4gICAgcHVibGljIGpvYnNJblByb2dyZXNzOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGFsbEpvYnM6IEFwcGxpY2F0aW9uSm9iW10gPSBbXTtcclxuICAgIHByaXZhdGUgam9iV2l0aElkc0NhY2hlOiB7IFtpbmRleDogc3RyaW5nXTogQXBwbGljYXRpb25Kb2IgfSA9IHt9O1xyXG4gICAgcHVibGljIG5vdGlmeU9uQ29tcGxldGVkSm9iczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGF0YSA9IG5ldyBTdWJqZWN0PE9iamVjdD4oKTtcclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PigpO1xyXG5cclxuICAgIHB1YmxpYyBNb2R1bGVzTG9jYWxpemF0aW9uczogeyBbaWQ6IHN0cmluZ106IExvY2FsaXphdGlvblNlcnZpY2UgfSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuICAgIHB1YmxpYyBzZXQgTW9kdWxlcyhtb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W10pIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVzID0gbW9kdWxlcztcclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgdGhpcy5fbW9kdWxlcyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IE1vZHVsZXMoKTogQWN0aXZlTW9kdWxlVmlld1tdIHsgcmV0dXJuIHRoaXMuX21vZHVsZXM7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykge1xyXG5cclxuICAgICAgICB0aGlzLmhvb2tFbWJlZGRpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERheWpzKCk7XHJcbiAgICAgICAgdGhpcy5zZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2RhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIHRoaXNZZWFyID0gdG9kYXkueWVhcigpO1xyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIxOC8xMi9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRoaXNZZWFyICsgMSksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmNocmlzdG1hc1RpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGFkIGhhbGxvd2VlblxyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIyOC8xMC9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA1LzExL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENvbGxlZ28gbGUgaW5mb3JtYXppb25pIGRlbGwnZW1iZWRkaW5nIGNoZSBkZXZvbm8gYXBwb2dnaWFyc2kgYWxsJ2FwcCBzdGF0ZSBpbiBtb2RvIGNoZSBwb3NzYW5vIGNvbXVuaWNhcmUgY29sIHJlc3RvIGRlbGwnYXBwbGljYXppb25lXHJcbiAgICBob29rRW1iZWRkaW5nKCkge1xyXG4gICAgICAgIHRoaXMuZW1iLk1lc3NhZ2VPYnNlcnZlci5waXBlKGZpbHRlcihldiA9PiBldi5ldmVudCA9PSBcIm5hdmlnYXRpb25cIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBuYXZpZ2F0aW9uT3AgPSBldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKG5hdmlnYXRpb25PcCwgZXZlbnQ/LmRhdGE/LnRpdGxlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5lbWIuTWVzc2FnZU9ic2VydmVyLnBpcGUoZmlsdGVyKGV2ID0+IGV2LmV2ZW50ID09IFwid2luZG93LW1lc3NhZ2VcIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJ3aW5kb3ctbWVzc2FnZVwiLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RhdGEucGlwZShmaWx0ZXIoZSA9PiAoZSBhcyBhbnkpLmV2ZW50ID09IFwibWVudS5pc0NvbGxhcHNlZFwiKSkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVtYi5yZWZyZXNoQm91bmRhcmllc09uTWVudUNvbGxhcHNlKClcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGVuYW50wqdBY2NvdW50wqdVc2VywqdBUFBOQU1FICovXHJcbiAgICBnZXRTZXNzaW9uSWRlbnRpdHkoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5TZXNzaW9uSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLlNlc3Npb25JZGVudGl0eTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGhvIHVuIGlkIG1pIG1hbmNhIGlsIGxvZ2luLCBxdWluZGkgdmlhIGRpIHF1YVxyXG4gICAgICAgIHZhciBpZCA9IHRoaXMuZ2V0SmFjZUlEZW50aXR5KCk7XHJcbiAgICAgICAgaWYgKCFpZCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IENvbW1lbnRhcmUgcGVyIGxhIG1vZGFsaXTDoCBJRlJBTUVcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wibG9naW5cIl0pO1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuU2Vzc2lvbklkZW50aXR5ID0gXCJcIiArIGlkLklkdGVuYW50ICsgXCLCp1wiICsgaWQuSWRBY2NvdW50ICsgXCLCp1wiICsgaWQuSWRVc2VyICsgXCLCp1wiICsgbXljb25maWcuQXBwRGF0YS5Nb2R1bGVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcy5TZXNzaW9uSWRlbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJOYXZpZ2F0aW9uSWZNZWFuaW5nZnVsKHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xyXG4gICAgICAgIGxldCB0aXRsZSA9IHJvdXRlLmRhdGFbXCJ0aXRsZVwiXTtcclxuICAgICAgICBsZXQgaW50ZXJuYWwgPSByb3V0ZS5kYXRhW1wiaW50ZXJuYWxOYXZpZ2F0aW9uXCJdXHJcblxyXG4gICAgICAgIC8vIFBlcm1ldHRlIGRpIGNoaWFtYXJlIHN0byByZWdpc3Rlck5hdmlnYXRpb24gYSBwcmVzY2luZGVyZSBlIGZhcmUgb3B0IG91dCBzZSBub24gw6ggdW5hIHJvdXRlIG5hdmlnYWJpbGVcclxuICAgICAgICBpZighdGl0bGUpIHJldHVybjtcclxuXHJcbiAgICAgICAgLypcclxuICAgICAgICAgKiAgUGFyZW50ICh7dXJsOiBbe3BhdGg6IFwie21vZHVsZX1cIn1dfSlcclxuICAgICAgICAgKiAgICAgIFBhcmVudCAoe3VybDogW3twYXRoOiBcIlwifV19KSAoUm9vdCBkZWwgbW9kdWxvIGxhenkpXHJcbiAgICAgICAgICogICAgICAgICAgLT4gTmF2aWdhemlvbmUgYXR0dWFsZSA8LVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGxldCBtb2R1bGUgPSByb3V0ZS5wYXJlbnQ/LnBhcmVudD8udXJsWzBdPy5wYXRoO1xyXG4gICAgICAgIGxldCBsb2MgPSBtb2R1bGUgPyB0aGlzLk1vZHVsZXNMb2NhbGl6YXRpb25zW21vZHVsZV0gOiBudWxsO1xyXG5cclxuICAgICAgICBpZiAoIW1vZHVsZSlcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkltcG9zc2liaWxlIGVzdHJhcG9sYXJlIGlsIG1vZHVsbyBkYWxsYSBuYXZpZ2F6aW9uZSAoQXR0ZXNvIE1vZHVsbyBhbCBzZWNvbmRvIGxpdmVsbG8gZGkgcGFyZW50ZWxhIHBhcnRlbmRvIGRhbCBjb21wb25lbnRlIGF0dHVhbGUpOiBcIiArIHJvdXRlLnBhdGhGcm9tUm9vdC5tYXAodiA9PiB2LnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnRvU3RyaW5nKCkpLmpvaW4oJy8nKSkuam9pbignLycpKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChpbnRlcm5hbCA/IFwibWVudS5hZGp1c3RTdWJOYXZpZ2F0aW9uVG9cIiA6IFwibWVudS5hZGp1c3ROYXZpZ2F0aW9uVG9cIiwgbG9jID8gbG9jLmxvYyh0aXRsZSkgOiB0aXRsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5ib3VuZE1lc3NhZ2UodDogSW50ZXJDb21NZXNzYWdlKSB7XHJcbiAgICAgICAgc3dpdGNoICh0LnR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb246XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKHQubWVzc2FnZS5zdWIgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIHQubWVzc2FnZS5yb3V0ZVRpdGxlKTtcclxuICAgICAgICAgICAgICAgIC8vIGV4cG9ydCBjb25zdCBNS19BRE0gPSBcIkVzQWRtaW5Nb2R1bGVcIjtcclxuICAgICAgICAgICAgICAgIC8vIEFkbU1lc3NhZ2VUeXBlcy5NZXNzYWdlID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBkZWZpbml0YSBpbiBhZG1pbi1tb2R1bGUuXHJcbiAgICAgICAgICAgICAgICAvLyBhZG1pbi1tb2R1bGUgdXNhIGNvcmUgcXVpbmRpIHJlZmVyZW56ZSBjaXJjb2xhcmkgbm8tbm8tbm9cclxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZCgwLCBcIk5hdmlnYXRpb24gTWVzc2FnZSBSZWNlaXZlZFwiLCBcIkVzQWRtaW5Nb2R1bGVcIik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBEYXlqcygpIHtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+Y3VzdG9tUGFyc2VGb3JtYXQpLmRlZmF1bHQgfHwgY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5taW5NYXgpLmRlZmF1bHQgfHwgbWluTWF4KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNCZXR3ZWVuKS5kZWZhdWx0IHx8IGlzQmV0d2Vlbik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQmVmb3JlKS5kZWZhdWx0IHx8IGlzU2FtZU9yQmVmb3JlKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNTYW1lT3JBZnRlcikuZGVmYXVsdCB8fCBpc1NhbWVPckFmdGVyKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+ZHVyYXRpb24pLmRlZmF1bHQgfHwgZHVyYXRpb24pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT51dGMpLmRlZmF1bHQgfHwgdXRjKTtcclxuXHJcbiAgICAgICAgLy8gUmVxdWlyZSBlIGNvbGxlZ2FtZW50byBjb24gbGEgbG9jYWxpenphemlvbmUgcGVyIGRheWpzXHJcbiAgICAgICAgaW1wb3J0KFwiZGF5anMvbG9jYWxlL1wiICsgdGhpcy5sYy5TbWFsbExvY2FsZSArIFwiLmpzXCIpLnRoZW4obG9jYWxlID0+IHsgZGF5anMubG9jYWxlKGxvY2FsZSk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwU2lnbmFsUkpvYkxpc3RlbmluZygpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMub2JzZXJ2ZSh0aGlzLk1lc3NhZ2VEZWYuSU5fSm9iUHJvZ3Jlc3NOb3RpZmljYXRpb24pLnN1YnNjcmliZSgoZXY6IEpvYlByb2dyZXNzRHRvKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBkZXNjID0gKGV2LmRlc2NyaXB0aW9uIHx8IGV2LmFjdGlvbmlkKSArIFwiIChcIiArIChldi51c2VyIHx8IHRoaXMuZ2V0SmFjZUlEZW50aXR5KCkuRHNVc2VyKSArIFwiKVwiO1xyXG4gICAgICAgICAgICBsZXQgam9iOiBBcHBsaWNhdGlvbkpvYiA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiBldi5pbnN0YW5jZSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgc21hbGxkZXNjcmlwdGlvbjogZGVzYy5sZW5ndGggPiAzNSA/IGRlc2Muc3Vic3RyaW5nKDAsIDMwKSArIFwiLi4uXCIgOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZTogdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogZXYudHlwZSA9PSAnQ29tcGxldGVkJyxcclxuICAgICAgICAgICAgICAgIGZpbGVpZDogZXYucmVzdWx0ZmlsZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydGlkOiBldi5yZXN1bHRyZXBvcnQsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRwYXJzOiBldi5yZXN1bHRyZXBvcnRwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBjb21wbGV4cmVwb3J0aWQ6IGV2LnJlc3VsdGNvbXBsZXhyZXBvcnRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZXYudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlN0YXJ0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkpvYiBhbHJlYWR5IHJlZ2lzdGVyZWQgb24gdGhlICdTdGFydGVkJyBjYWxsYmFja1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuc3RhcnRlZEpvYlwiLCBqb2IuZGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlByb2dyZXNzXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2UgbWkgYXJyaXZhIHVuIHByb2dyZXNzIGRpIHVuIGpvYiBjaGUgbm9uIGhvIHNpZ25pZmljYSBjaGUgbWkgc29ubyBsb2dnYXRvIG9yYSBjb24gZGVpIEpvYiBpbiBjb3Jzb1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHF1aW5kaSBwZXIgcHJpbWEgY29zYSBkZXZvIG1ldHRlcmxvIGluIGxpc3RhXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXS5wZXJjZW50YWdlID0gdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLnByb2dyZXNzSm9iXCIsIHsgZGVzY3JpcHRpb246IGpvYi5kZXNjcmlwdGlvbiwgcHJvZ3Jlc3M6IHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXS5wZXJjZW50YWdlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNvbXBsZXRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgam9iVG9VcGRhdGUgPSB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV07XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucGVyY2VudGFnZSA9IDEwMDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5maWxlaWQgPSBldi5yZXN1bHRmaWxlO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydGlkID0gZXYucmVzdWx0cmVwb3J0O1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydHBhcnMgPSBldi5yZXN1bHRyZXBvcnRwYXJhbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuY29tcGxldGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm90aWZ5T25Db21wbGV0ZWRKb2JzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLmNvbXBsZXRlZEpvYlwiLCBqb2JUb1VwZGF0ZS5kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmpvYnNJblByb2dyZXNzID0gdGhpcy5hbGxKb2JzLmZpbHRlcih0ID0+ICF0LmNvbXBsZXRlZCkubGVuZ3RoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJvdW5kVG9Ud28obnVtKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRKYWNlSURlbnRpdHkoKTogSmFjZUlkZW50aXR5IHtcclxuICAgICAgICBpZiAodGhpcy5KYWNlSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IHRoaXMuYnRzLmdldEphY2VJZGVudGl0eSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBub3RpZnlEYXRhQ2hhbmdlZChldmVudCwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9kYXRhW2V2ZW50XSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2RhdGEubmV4dCh7XHJcbiAgICAgICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgZGF0YTogdGhpcy5fZGF0YVtldmVudF1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmUoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5nZXQoZXZlbnQpIHx8IFtdO1xyXG4gICAgICAgIHN1YnNjcmliZXJzLnB1c2goY2FsbGJhY2spO1xyXG5cclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnNldChldmVudCwgc3Vic2NyaWJlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIF9vbkV2ZW50KGRhdGE6IGFueSkge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGRhdGFbXCJldmVudFwiXSkgfHwgW107XHJcblxyXG4gICAgICAgIHN1YnNjcmliZXJzLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwobnVsbCwgZGF0YVtcImRhdGFcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRTaWRlYmFyV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhcldpZHRoID0gd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEhlYWRlckhlaWdodChoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgfVxyXG59Il19
237
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocalizationService }, { type: i3.HTTPService }, { type: i4.TokenService }, { type: i5.NotificationsService }, { type: i5.BaseMessageService }, { type: i6.InterComService }, { type: i6.AppEmbeddingExtensions }, { type: undefined, decorators: [{
238
+ type: Inject,
239
+ args: [USE_FAKE_ACCESS_TOKEN]
240
+ }] }]; } });
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFvQyxNQUFNLHNCQUFzQixDQUFDO0FBTTdGLE9BQU87QUFDUCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTRDLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUgsa0NBQWtDO0FBQ2xDLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEtBQUssY0FBYyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sS0FBSyxhQUFhLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxLQUFLLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFLdkMseUJBQXlCO0FBQ3pCLE1BQU0sNkJBQTZCLEdBQVcsZ0NBQWdDLENBQUM7QUFHL0UsTUFBTSxPQUFPLFFBQVE7SUF3QmpCLElBQVcsT0FBTyxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQVcsT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWxFLFlBQ1ksTUFBYyxFQUFVLEVBQXVCLEVBQVUsSUFBaUIsRUFBVSxHQUFpQixFQUFVLGFBQW1DLEVBQVUsVUFBOEIsRUFDMUwsUUFBeUIsRUFBVSxHQUEyQixFQUF5QyxTQUFrQjtRQUR6SCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzFMLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFBeUMsY0FBUyxHQUFULFNBQVMsQ0FBUztRQTNCOUgsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBSy9CLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBQzlCLG9CQUFlLEdBQXdDLEVBQUUsQ0FBQztRQUMzRCwwQkFBcUIsR0FBWSxJQUFJLENBQUM7UUFFckMsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDOUIsbUJBQWMsR0FBaUMsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFFbkYseUJBQW9CLEdBQTBDLEVBQUUsQ0FBQztRQWFwRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFcEQsa0NBQWtDO1FBQ2xDLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxHQUFHLFVBQVUsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBRTlELHNDQUFzQztRQUN0QyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssR0FBRyxVQUFVLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUU5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFrQixFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUM5SSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDNUIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFCLDZCQUE2QixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdFLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx5SUFBeUk7SUFDekksYUFBYTtRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BGLElBQUksWUFBWSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztZQUM5RyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFTLENBQUMsS0FBSyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0UsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxDQUFBO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUVoQyx1REFBdUQ7UUFDdkQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDTCx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELDhCQUE4QixDQUFDLEtBQThCO1FBQ3pELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRS9DLHlHQUF5RztRQUN6RyxJQUFHLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbEI7Ozs7V0FJRztRQUNILElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7UUFDaEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU1RCxJQUFJLENBQUMsTUFBTTtZQUNQLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUlBQXVJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXZQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxDQUFrQjtRQUNuQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDWixLQUFLLG1CQUFtQixDQUFDLFVBQVU7Z0JBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3ZILHlDQUF5QztnQkFDekMsK0JBQStCO2dCQUUvQiw0QkFBNEI7Z0JBQzVCLDREQUE0RDtnQkFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLDZCQUE2QixFQUFFLGVBQWUsQ0FBQyxDQUFDO2dCQUN0RSxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNOLEtBQUssQ0FBQyxNQUFNLENBQU8saUJBQWtCLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLE1BQU0sQ0FBTyxNQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxNQUFNLENBQU8sU0FBVSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFPLGNBQWUsQ0FBQyxPQUFPLElBQUksY0FBYyxDQUFDLENBQUM7UUFDOUQsS0FBSyxDQUFDLE1BQU0sQ0FBTyxhQUFjLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxDQUFDO1FBQzVELEtBQUssQ0FBQyxNQUFNLENBQU8sUUFBUyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQztRQUNsRCxLQUFLLENBQUMsTUFBTSxDQUFPLEdBQUksQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFFeEMseURBQXlEO1FBQ3pELE1BQU0sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQWtCLEVBQUUsRUFBRTtZQUNwRyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNyRyxJQUFJLEdBQUcsR0FBbUI7Z0JBQ3RCLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUTtnQkFDZixXQUFXLEVBQUUsSUFBSTtnQkFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDekUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksV0FBVztnQkFDakMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVO2dCQUNyQixRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVk7Z0JBQ3pCLFVBQVUsRUFBRSxFQUFFLENBQUMsa0JBQWtCO2dCQUNqQyxlQUFlLEVBQUUsRUFBRSxDQUFDLG1CQUFtQjthQUMxQyxDQUFDO1lBRUYsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFO2dCQUNiLEtBQUssU0FBUztvQkFDVixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7d0JBQ2pFLE9BQU87cUJBQ1Y7b0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO29CQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMxRCxNQUFNO2dCQUNWLEtBQUssVUFBVTtvQkFDWCx1R0FBdUc7b0JBQ3ZHLCtDQUErQztvQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ2xDO29CQUNELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3BJLE1BQU07Z0JBQ1YsS0FBSyxXQUFXO29CQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO3dCQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNsQztvQkFDRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDcEQsV0FBVyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7b0JBQzdCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDbkMsV0FBVyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QyxXQUFXLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDL0MsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBRTdCLElBQUksSUFBSSxDQUFDLHFCQUFxQjt3QkFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFFeEUsTUFBTTthQUNiO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRztRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUs7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDWixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUFrQjtRQUN2QyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTO1FBQ2QsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRS9ELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sZUFBZSxDQUFDLE1BQWM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQzs7c0dBelBRLFFBQVEsNlFBZ0NtRSxxQkFBcUI7MEdBaENoRyxRQUFRLGNBREssTUFBTTs0RkFDbkIsUUFBUTtrQkFEcEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWlDK0MsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VNZXNzYWdlU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIEpvYlByb2dyZXNzRHRvIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21NZXNzYWdlLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi9hcHAuYWNjZXNzdG9rZW5cIjtcclxuXHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIENvcmVcclxuaW1wb3J0IHsgQWN0aXZlTW9kdWxlVmlldywgQXBwbGljYXRpb25Kb2IsIEVudk9wdGlvbnMsIEphY2VJZGVudGl0eSwgVVNFX0ZBS0VfQUNDRVNTX1RPS0VOIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XHJcbmltcG9ydCAqIGFzIGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcclxuaW1wb3J0ICogYXMgZHVyYXRpb24gZnJvbSAnZGF5anMvcGx1Z2luL2R1cmF0aW9uJztcclxuaW1wb3J0ICogYXMgbWluTWF4IGZyb20gJ2RheWpzL3BsdWdpbi9taW5NYXgnO1xyXG5pbXBvcnQgKiBhcyB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5kZWNsYXJlIHZhciBkYXlqczogYW55O1xyXG5kZWNsYXJlIHZhciBteWNvbmZpZzogRW52T3B0aW9ucztcclxuXHJcbi8vIENoaWFtYXRlIGFpIFJlcG9zaXRvcnlcclxuY29uc3QgR0VUX0phY2VfR2V0QWN0aXZlSmFjZU1vZHVsZXM6IHN0cmluZyA9IFwiL2FwaS9KYWNlL0dldEFjdGl2ZUphY2VNb2R1bGVzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBjbGFzcyBBcHBTdGF0ZSB7XHJcblxyXG4gICAgcHVibGljIHNpZGViYXJXaWR0aDogbnVtYmVyO1xyXG4gICAgcHVibGljIGhlYWRlckhlaWdodDogbnVtYmVyO1xyXG5cclxuICAgIHB1YmxpYyByZWRpcmVjdGluZ1RvTG9naW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYW5kbGluZ0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgY2hyaXN0bWFzVGltZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGhhbGxvd2VlblRpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIFNlc3Npb25JZGVudGl0eTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBKYWNlSWRlbnRpdHk6IEphY2VJZGVudGl0eTtcclxuXHJcbiAgICBwdWJsaWMgam9ic0luUHJvZ3Jlc3M6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgYWxsSm9iczogQXBwbGljYXRpb25Kb2JbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBqb2JXaXRoSWRzQ2FjaGU6IHsgW2luZGV4OiBzdHJpbmddOiBBcHBsaWNhdGlvbkpvYiB9ID0ge307XHJcbiAgICBwdWJsaWMgbm90aWZ5T25Db21wbGV0ZWRKb2JzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIF9kYXRhID0gbmV3IFN1YmplY3Q8T2JqZWN0PigpO1xyXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PiA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxGdW5jdGlvbj4+KCk7XHJcblxyXG4gICAgcHVibGljIE1vZHVsZXNMb2NhbGl6YXRpb25zOiB7IFtpZDogc3RyaW5nXTogTG9jYWxpemF0aW9uU2VydmljZSB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBfbW9kdWxlczogQWN0aXZlTW9kdWxlVmlld1tdO1xyXG4gICAgcHVibGljIHNldCBNb2R1bGVzKG1vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXSkge1xyXG4gICAgICAgIHRoaXMuX21vZHVsZXMgPSBtb2R1bGVzO1xyXG4gICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJtb2R1bGVzLlJldHJpZXZlZFwiLCB0aGlzLl9tb2R1bGVzKTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBnZXQgTW9kdWxlcygpOiBBY3RpdmVNb2R1bGVWaWV3W10geyByZXR1cm4gdGhpcy5fbW9kdWxlczsgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsIHByaXZhdGUgYnRzOiBUb2tlblNlcnZpY2UsIHByaXZhdGUgbm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uc1NlcnZpY2UsIHByaXZhdGUgTWVzc2FnZURlZjogQmFzZU1lc3NhZ2VTZXJ2aWNlLCBcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsIHByaXZhdGUgZW1iOiBBcHBFbWJlZGRpbmdFeHRlbnNpb25zLCBASW5qZWN0KFVTRV9GQUtFX0FDQ0VTU19UT0tFTikgcHJpdmF0ZSBmYWtlVG9rZW46IGJvb2xlYW4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5ob29rRW1iZWRkaW5nKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0dXBEYXlqcygpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBTaWduYWxSSm9iTGlzdGVuaW5nKCk7XHJcbiAgICAgICAgdGhpcy5nZXRBY3RpdmVKYWNlTW9kdWxlcygpO1xyXG5cclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMuX29uRXZlbnQoZGF0YSkpO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGEgbmF0YWxlXHJcbiAgICAgICAgdmFyIHRvZGF5ID0gZGF5anMoKTtcclxuICAgICAgICB2YXIgdGhpc1llYXIgPSB0b2RheS55ZWFyKCk7XHJcbiAgICAgICAgdmFyIGxvd2VyQm91bmQgPSBkYXlqcyhcIjE4LzEyL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB2YXIgdXBwZXJCb3VuZCA9IGRheWpzKFwiMDcvMDEvXCIgKyAodGhpc1llYXIgKyAxKSwgXCJERC9NTS9ZWVlZXCIpO1xyXG4gICAgICAgIHRoaXMuY2hyaXN0bWFzVGltZSA9IHRvZGF5ID4gbG93ZXJCb3VuZCAmJiB0b2RheSA8IHVwcGVyQm91bmQ7XHJcblxyXG4gICAgICAgIC8vRGVjaWRlIHNlIHNpYW1vIGF0dG9ybm8gYWQgaGFsbG93ZWVuXHJcbiAgICAgICAgdmFyIGxvd2VyQm91bmQgPSBkYXlqcyhcIjI4LzEwL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB2YXIgdXBwZXJCb3VuZCA9IGRheWpzKFwiMDUvMTEvXCIgKyB0aGlzWWVhciwgXCJERC9NTS9ZWVlZXCIpO1xyXG4gICAgICAgIHRoaXMuaGFsbG93ZWVuVGltZSA9IHRvZGF5ID4gbG93ZXJCb3VuZCAmJiB0b2RheSA8IHVwcGVyQm91bmQ7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uaW5ib3VuZHMuc3Vic2NyaWJlKCh0OiBJbnRlckNvbU1lc3NhZ2UpID0+IHsgdGhpcy5oYW5kbGVJbmJvdW5kTWVzc2FnZSh0KTsgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWN0aXZlSmFjZU1vZHVsZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmFrZVRva2VuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuTW9kdWxlcyA9IFtuZXcgQWN0aXZlTW9kdWxlVmlldyhcIk1vZHVsbyBFc2VtcGlvIDFcIiksIG5ldyBBY3RpdmVNb2R1bGVWaWV3KFwiTW9kdWxvIEVzZW1waW8gMlwiKSwgbmV3IEFjdGl2ZU1vZHVsZVZpZXcoXCJNb2R1bG8gRXNlbXBpbyAzXCIpXTtcclxuICAgICAgICAgICAgdGhpcy5Nb2R1bGVzID0gdGhpcy5Nb2R1bGVzO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PEFjdGl2ZU1vZHVsZVZpZXdbXT4oR0VUX0phY2VfR2V0QWN0aXZlSmFjZU1vZHVsZXMpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLk1vZHVsZXMgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMuTW9kdWxlcyA9IHRoaXMuTW9kdWxlcztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDb2xsZWdvIGxlIGluZm9ybWF6aW9uaSBkZWxsJ2VtYmVkZGluZyBjaGUgZGV2b25vIGFwcG9nZ2lhcnNpIGFsbCdhcHAgc3RhdGUgaW4gbW9kbyBjaGUgcG9zc2FubyBjb211bmljYXJlIGNvbCByZXN0byBkZWxsJ2FwcGxpY2F6aW9uZVxyXG4gICAgaG9va0VtYmVkZGluZygpIHtcclxuICAgICAgICB0aGlzLmVtYi5NZXNzYWdlT2JzZXJ2ZXIucGlwZShmaWx0ZXIoZXYgPT4gZXYuZXZlbnQgPT0gXCJuYXZpZ2F0aW9uXCIpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICB2YXIgbmF2aWdhdGlvbk9wID0gZXZlbnQ/LmRhdGE/LmludGVybmFsTmF2aWdhdGlvbiA/IFwibWVudS5hZGp1c3RTdWJOYXZpZ2F0aW9uVG9cIiA6IFwibWVudS5hZGp1c3ROYXZpZ2F0aW9uVG9cIjtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChuYXZpZ2F0aW9uT3AsIGV2ZW50Py5kYXRhPy50aXRsZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZW1iLk1lc3NhZ2VPYnNlcnZlci5waXBlKGZpbHRlcihldiA9PiBldi5ldmVudCA9PSBcIndpbmRvdy1tZXNzYWdlXCIpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwid2luZG93LW1lc3NhZ2VcIiwgZXZlbnQ/LmRhdGEpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9kYXRhLnBpcGUoZmlsdGVyKGUgPT4gKGUgYXMgYW55KS5ldmVudCA9PSBcIm1lbnUuaXNDb2xsYXBzZWRcIikpLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lbWIucmVmcmVzaEJvdW5kYXJpZXNPbk1lbnVDb2xsYXBzZSgpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRlbmFudMKnQWNjb3VudMKnVXNlcsKnQVBQTkFNRSAqL1xyXG4gICAgZ2V0U2Vzc2lvbklkZW50aXR5KCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuU2Vzc2lvbklkZW50aXR5KVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5TZXNzaW9uSWRlbnRpdHk7XHJcblxyXG4gICAgICAgIC8vIFNlIG5vbiBobyB1biBpZCBtaSBtYW5jYSBpbCBsb2dpbiwgcXVpbmRpIHZpYSBkaSBxdWFcclxuICAgICAgICB2YXIgaWQgPSB0aGlzLmdldEphY2VJRGVudGl0eSgpO1xyXG4gICAgICAgIGlmICghaWQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBDb21tZW50YXJlIHBlciBsYSBtb2RhbGl0w6AgSUZSQU1FXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImxvZ2luXCJdKTtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLlNlc3Npb25JZGVudGl0eSA9IFwiXCIgKyBpZC5JZHRlbmFudCArIFwiwqdcIiArIGlkLklkQWNjb3VudCArIFwiwqdcIiArIGlkLklkVXNlciArIFwiwqdcIiArIG15Y29uZmlnLkFwcERhdGEuTW9kdWxlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuU2Vzc2lvbklkZW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyTmF2aWdhdGlvbklmTWVhbmluZ2Z1bChyb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgICAgICBsZXQgdGl0bGUgPSByb3V0ZS5kYXRhW1widGl0bGVcIl07XHJcbiAgICAgICAgbGV0IGludGVybmFsID0gcm91dGUuZGF0YVtcImludGVybmFsTmF2aWdhdGlvblwiXVxyXG5cclxuICAgICAgICAvLyBQZXJtZXR0ZSBkaSBjaGlhbWFyZSBzdG8gcmVnaXN0ZXJOYXZpZ2F0aW9uIGEgcHJlc2NpbmRlcmUgZSBmYXJlIG9wdCBvdXQgc2Ugbm9uIMOoIHVuYSByb3V0ZSBuYXZpZ2FiaWxlXHJcbiAgICAgICAgaWYoIXRpdGxlKSByZXR1cm47XHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogIFBhcmVudCAoe3VybDogW3twYXRoOiBcInttb2R1bGV9XCJ9XX0pXHJcbiAgICAgICAgICogICAgICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJcIn1dfSkgKFJvb3QgZGVsIG1vZHVsbyBsYXp5KVxyXG4gICAgICAgICAqICAgICAgICAgIC0+IE5hdmlnYXppb25lIGF0dHVhbGUgPC1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgbW9kdWxlID0gcm91dGUucGFyZW50Py5wYXJlbnQ/LnVybFswXT8ucGF0aDtcclxuICAgICAgICBsZXQgbG9jID0gbW9kdWxlID8gdGhpcy5Nb2R1bGVzTG9jYWxpemF0aW9uc1ttb2R1bGVdIDogbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKCFtb2R1bGUpXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbXBvc3NpYmlsZSBlc3RyYXBvbGFyZSBpbCBtb2R1bG8gZGFsbGEgbmF2aWdhemlvbmUgKEF0dGVzbyBNb2R1bG8gYWwgc2Vjb25kbyBsaXZlbGxvIGRpIHBhcmVudGVsYSBwYXJ0ZW5kbyBkYWwgY29tcG9uZW50ZSBhdHR1YWxlKTogXCIgKyByb3V0ZS5wYXRoRnJvbVJvb3QubWFwKHYgPT4gdi51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC50b1N0cmluZygpKS5qb2luKCcvJykpLmpvaW4oJy8nKSk7XHJcblxyXG4gICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoaW50ZXJuYWwgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIGxvYyA/IGxvYy5sb2ModGl0bGUpIDogdGl0bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUluYm91bmRNZXNzYWdlKHQ6IEludGVyQ29tTWVzc2FnZSkge1xyXG4gICAgICAgIHN3aXRjaCAodC50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZCh0Lm1lc3NhZ2Uuc3ViID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCB0Lm1lc3NhZ2Uucm91dGVUaXRsZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBleHBvcnQgY29uc3QgTUtfQURNID0gXCJFc0FkbWluTW9kdWxlXCI7XHJcbiAgICAgICAgICAgICAgICAvLyBBZG1NZXNzYWdlVHlwZXMuTWVzc2FnZSA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5pdGEgaW4gYWRtaW4tbW9kdWxlLlxyXG4gICAgICAgICAgICAgICAgLy8gYWRtaW4tbW9kdWxlIHVzYSBjb3JlIHF1aW5kaSByZWZlcmVuemUgY2lyY29sYXJpIG5vLW5vLW5vXHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoMCwgXCJOYXZpZ2F0aW9uIE1lc3NhZ2UgUmVjZWl2ZWRcIiwgXCJFc0FkbWluTW9kdWxlXCIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRGF5anMoKSB7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmN1c3RvbVBhcnNlRm9ybWF0KS5kZWZhdWx0IHx8IGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+bWluTWF4KS5kZWZhdWx0IHx8IG1pbk1heCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzQmV0d2VlbikuZGVmYXVsdCB8fCBpc0JldHdlZW4pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc1NhbWVPckJlZm9yZSkuZGVmYXVsdCB8fCBpc1NhbWVPckJlZm9yZSk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQWZ0ZXIpLmRlZmF1bHQgfHwgaXNTYW1lT3JBZnRlcik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmR1cmF0aW9uKS5kZWZhdWx0IHx8IGR1cmF0aW9uKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+dXRjKS5kZWZhdWx0IHx8IHV0Yyk7XHJcblxyXG4gICAgICAgIC8vIFJlcXVpcmUgZSBjb2xsZWdhbWVudG8gY29uIGxhIGxvY2FsaXp6YXppb25lIHBlciBkYXlqc1xyXG4gICAgICAgIGltcG9ydChcImRheWpzL2xvY2FsZS9cIiArIHRoaXMubGMuU21hbGxMb2NhbGUgKyBcIi5qc1wiKS50aGVuKGxvY2FsZSA9PiB7IGRheWpzLmxvY2FsZShsb2NhbGUpOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9ic2VydmUodGhpcy5NZXNzYWdlRGVmLklOX0pvYlByb2dyZXNzTm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKGV2OiBKb2JQcm9ncmVzc0R0bykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgZGVzYyA9IChldi5kZXNjcmlwdGlvbiB8fCBldi5hY3Rpb25pZCkgKyBcIiAoXCIgKyAoZXYudXNlciB8fCB0aGlzLmdldEphY2VJRGVudGl0eSgpLkRzVXNlcikgKyBcIilcIjtcclxuICAgICAgICAgICAgbGV0IGpvYjogQXBwbGljYXRpb25Kb2IgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogZXYuaW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzYyxcclxuICAgICAgICAgICAgICAgIHNtYWxsZGVzY3JpcHRpb246IGRlc2MubGVuZ3RoID4gMzUgPyBkZXNjLnN1YnN0cmluZygwLCAzMCkgKyBcIi4uLlwiIDogZGVzYyxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHRoaXMucm91bmRUb1R3byhldi5wcm9ncmVzcyksXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZWQ6IGV2LnR5cGUgPT0gJ0NvbXBsZXRlZCcsXHJcbiAgICAgICAgICAgICAgICBmaWxlaWQ6IGV2LnJlc3VsdGZpbGUsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRpZDogZXYucmVzdWx0cmVwb3J0LFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0cGFyczogZXYucmVzdWx0cmVwb3J0cGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgY29tcGxleHJlcG9ydGlkOiBldi5yZXN1bHRjb21wbGV4cmVwb3J0XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBzd2l0Y2ggKGV2LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJTdGFydGVkXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJKb2IgYWxyZWFkeSByZWdpc3RlcmVkIG9uIHRoZSAnU3RhcnRlZCcgY2FsbGJhY2tcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLnN0YXJ0ZWRKb2JcIiwgam9iLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJQcm9ncmVzc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNlIG1pIGFycml2YSB1biBwcm9ncmVzcyBkaSB1biBqb2IgY2hlIG5vbiBobyBzaWduaWZpY2EgY2hlIG1pIHNvbm8gbG9nZ2F0byBvcmEgY29uIGRlaSBKb2IgaW4gY29yc29cclxuICAgICAgICAgICAgICAgICAgICAvLyBxdWluZGkgcGVyIHByaW1hIGNvc2EgZGV2byBtZXR0ZXJsbyBpbiBsaXN0YVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0ucGVyY2VudGFnZSA9IHRoaXMucm91bmRUb1R3byhldi5wcm9ncmVzcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5wcm9ncmVzc0pvYlwiLCB7IGRlc2NyaXB0aW9uOiBqb2IuZGVzY3JpcHRpb24sIHByb2dyZXNzOiB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0ucGVyY2VudGFnZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJDb21wbGV0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGpvYlRvVXBkYXRlID0gdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnBlcmNlbnRhZ2UgPSAxMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuZmlsZWlkID0gZXYucmVzdWx0ZmlsZTtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5yZXBvcnRpZCA9IGV2LnJlc3VsdHJlcG9ydDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5yZXBvcnRwYXJzID0gZXYucmVzdWx0cmVwb3J0cGFyYW1zO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLmNvbXBsZXRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5vdGlmeU9uQ29tcGxldGVkSm9icylcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5jb21wbGV0ZWRKb2JcIiwgam9iVG9VcGRhdGUuZGVzY3JpcHRpb24pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5qb2JzSW5Qcm9ncmVzcyA9IHRoaXMuYWxsSm9icy5maWx0ZXIodCA9PiAhdC5jb21wbGV0ZWQpLmxlbmd0aDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByb3VuZFRvVHdvKG51bSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bSAqIDEwMCkgLyAxMDA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SmFjZUlEZW50aXR5KCk6IEphY2VJZGVudGl0eSB7XHJcbiAgICAgICAgaWYgKHRoaXMuSmFjZUlkZW50aXR5KVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5KYWNlSWRlbnRpdHk7XHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSB0aGlzLmJ0cy5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5KYWNlSWRlbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgbm90aWZ5RGF0YUNoYW5nZWQoZXZlbnQsIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fZGF0YVtldmVudF0gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9kYXRhLm5leHQoe1xyXG4gICAgICAgICAgICBldmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX2RhdGFbZXZlbnRdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGV2ZW50KSB8fCBbXTtcclxuICAgICAgICBzdWJzY3JpYmVycy5wdXNoKGNhbGxiYWNrKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5zZXQoZXZlbnQsIHN1YnNjcmliZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBfb25FdmVudChkYXRhOiBhbnkpIHtcclxuICAgICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmdldChkYXRhW1wiZXZlbnRcIl0pIHx8IFtdO1xyXG5cclxuICAgICAgICBzdWJzY3JpYmVycy5mb3JFYWNoKChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKG51bGwsIGRhdGFbXCJkYXRhXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U2lkZWJhcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNpZGViYXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRIZWFkZXJIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmhlYWRlckhlaWdodCA9IGhlaWdodDtcclxuICAgIH1cclxufSJdfQ==
@@ -15,7 +15,7 @@ import * as i2$2 from '@esfaenza/httpservice';
15
15
  import { __awaiter } from 'tslib';
16
16
  import * as i1$2 from '@esfaenza/localizations';
17
17
  import { LocalizationService, LocalizationModule } from '@esfaenza/localizations';
18
- import { MENU_LOCALIZATION, MENU, ActiveModuleView, NAVBAR_EXTENSIONS, LOGIN_URL_LEGACY, USE_FAKE_ACCESS_TOKEN, REDIRECT_MAP, EMBEDDED_ROUTE, ROUTE, UpdatePasswordDto } from '@esfaenza/core/domain';
18
+ import { MENU_LOCALIZATION, MENU, NAVBAR_EXTENSIONS, LOGIN_URL_LEGACY, REDIRECT_MAP, EMBEDDED_ROUTE, ROUTE, UpdatePasswordDto } from '@esfaenza/core/domain';
19
19
  import { SlimScroll, ComponentHostDirective, EsModalDirective, Draggable, DirectivesModule } from '@esfaenza/core/directives';
20
20
  import * as i7 from '@esfaenza/es-table';
21
21
  import { EsTableColumnsDefinition, EsTableModule } from '@esfaenza/es-table';
@@ -634,13 +634,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
634
634
  }] });
635
635
 
636
636
  // Angular
637
- // Chiamate ai Repository
638
- const GET_Jace_GetActiveJaceModules = "/api/Jace/GetActiveJaceModules";
639
637
  const GET_Cache_ClearAllCaches = "/api/Cache/ClearAllCaches";
640
638
  const GET_Cache_ClearAllClientsCaches = "/api/Cache/ClearAllClientsCaches";
641
639
  const GET_Cache_ClearAllClientsPreferences = "/api/Cache/ClearAllClientsPreferences";
642
640
  class Navbar extends ReactiveComponent {
643
- constructor(prefsService, cacheService, MessageDef, notifications, msgExts, lc, http, cdr, _state, sr, router, cjrService, extensionComponents, loginUrlLegacy, fakeToken) {
641
+ constructor(prefsService, cacheService, MessageDef, notifications, msgExts, lc, http, cdr, _state, sr, router, cjrService, extensionComponents, loginUrlLegacy) {
644
642
  super();
645
643
  this.prefsService = prefsService;
646
644
  this.cacheService = cacheService;
@@ -656,7 +654,6 @@ class Navbar extends ReactiveComponent {
656
654
  this.cjrService = cjrService;
657
655
  this.extensionComponents = extensionComponents;
658
656
  this.loginUrlLegacy = loginUrlLegacy;
659
- this.fakeToken = fakeToken;
660
657
  this.applicationVersion = myconfig.AppData.ComponentVersion;
661
658
  this.applicationEnvironment = myconfig.AppData.ComponentEnvironment;
662
659
  this.isMenuCollapsed = false;
@@ -670,7 +667,6 @@ class Navbar extends ReactiveComponent {
670
667
  this._state.subscribe("app.startedJob", (_) => { this.cdr.markForCheck(); });
671
668
  this._state.subscribe("app.progressJob", (_) => { this.cdr.markForCheck(); });
672
669
  this.handleBaseNotifications();
673
- this.getActiveJaceModules();
674
670
  // Appena la pagina parte, poi ogni secondo, controllo l'identity per verificare se rimane la stessa
675
671
  interval(1000).pipe(startWith(0), takeUntil(this.destroyed$), takeWhile(_ => !myconfig.redirectInProgress)).subscribe(t => {
676
672
  this.checkIdentity();
@@ -708,17 +704,6 @@ class Navbar extends ReactiveComponent {
708
704
  }
709
705
  this.CurrentIdentity = id;
710
706
  }
711
- getActiveJaceModules() {
712
- if (this.fakeToken) {
713
- this.Modules = [new ActiveModuleView("Modulo Esempio 1"), new ActiveModuleView("Modulo Esempio 2"), new ActiveModuleView("Modulo Esempio 3")];
714
- this._state.Modules = this.Modules;
715
- return;
716
- }
717
- this.http.get(GET_Jace_GetActiveJaceModules).subscribe(res => {
718
- this.Modules = res;
719
- this._state.Modules = this.Modules;
720
- });
721
- }
722
707
  checkSessionTimeout(identity) {
723
708
  if (dayjs() >= dayjs(identity.ExpirationTime).subtract(10, 'minutes') && !myconfig.redirectInProgress) {
724
709
  myconfig.redirectInProgress = true;
@@ -802,7 +787,7 @@ class Navbar extends ReactiveComponent {
802
787
  this.cjrService.redirect(job);
803
788
  }
804
789
  }
805
- Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Navbar, deps: [{ token: i1$3.PreferencesService }, { token: i1$3.CacheService }, { token: i2$3.BaseMessageService }, { token: i2$3.NotificationsService }, { token: i2.MessageService }, { token: i1$2.LocalizationService }, { token: i2$2.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i1.AppState }, { token: i1.TokenService }, { token: i1$1.Router }, { token: i1.CompletedJobRedirectionService }, { token: NAVBAR_EXTENSIONS }, { token: LOGIN_URL_LEGACY }, { token: USE_FAKE_ACCESS_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
790
+ Navbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Navbar, deps: [{ token: i1$3.PreferencesService }, { token: i1$3.CacheService }, { token: i2$3.BaseMessageService }, { token: i2$3.NotificationsService }, { token: i2.MessageService }, { token: i1$2.LocalizationService }, { token: i2$2.HTTPService }, { token: i0.ChangeDetectorRef }, { token: i1.AppState }, { token: i1.TokenService }, { token: i1$1.Router }, { token: i1.CompletedJobRedirectionService }, { token: NAVBAR_EXTENSIONS }, { token: LOGIN_URL_LEGACY }], target: i0.ɵɵFactoryTarget.Component });
806
791
  Navbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Navbar, isStandalone: true, selector: "navbar", viewQueries: [{ propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nav #navbar class=\"nav enuma-navbar\">\r\n <div class=\"d-flex\" style=\"width: 100%;\">\r\n <!-- Collapse men\u00F9 a sinistra -->\r\n <div><a (click)=\"toggleMenu()\" class=\"far fa-bars nav-icon app-padding-left-15\" style=\"padding-top: 8px;\"></a></div>\r\n\r\n <!-- Breadcrumb -->\r\n <div class=\"app-padding-left-15\" style=\"padding-top: 8px;\"><ng-content></ng-content></div>\r\n\r\n <div style=\"margin-left: auto; display: flex;\">\r\n <!--Notifications (Jobs)-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <div *ngIf=\"_state.jobsInProgress > 0\" class=\"fa-beat-fade nav-jobs-icon-notification\"></div>\r\n <a [class.fa-shake]=\"_state.jobsInProgress > 0\" class=\"far fa-bell module-nav-menu-link dropdown-toggle app-pointer\" style=\"--fa-animation-duration: 3s; --fa-animation-iteration-count: 1;\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"nav-jobs-menu\" role=\"menu\">\r\n <div class=\"nav-jobs-menu-header\">\r\n <span style=\"margin-right: auto;\">{{'Job Applicativi' | localize : lc}}</span>\r\n <span class=\"app-margin-right-5\">{{'Notifiche' | localize : lc}}:</span>\r\n <span class=\"m-t-min-2\"><mat-slide-toggle [(ngModel)]=\"_state.notifyOnCompletedJobs\" (click)=\"clearMessages(); $event.stopPropagation();\"></mat-slide-toggle></span>\r\n </div>\r\n <div class=\"nav-jobs-menu-list\">\r\n <div *ngIf=\"_state.allJobs.length == 0\" class=\"nav-jobs-menu-list-empty\">\r\n <div>{{\"Al momento non c'\u00E8 nulla in esecuzione\" | localize : lc}}</div>\r\n </div>\r\n <div *ngFor=\"let job of _state.allJobs; let last = last\" [class.app-margin-bottom-5]=\"!last\">\r\n <span class=\"nav-jobs-menu-list-description\">\r\n <span *ngIf=\"!job.completed\" title=\"{{job.description}}\">{{job.smalldescription}}</span>\r\n <span *ngIf=\"job.completed\" title=\"{{job.description}}\" class=\"app-link app-no-selection app-inline app-pointer\" (click)=\"completedJobClicked(job); $event.stopPropagation();\">{{job.smalldescription}}</span>\r\n <strong class=\"pull-right\" *ngIf=\"!job.completed\">{{job.percentage}}%</strong>\r\n <strong class=\"pull-right\" *ngIf=\"job.completed\">{{'Completed' | localize : lc}}</strong>\r\n </span>\r\n <div class=\"progress progress-sm\">\r\n <progressbar *ngIf=\"!job.completed\" [max]=\"100\" [value]=\"job.percentage\" [striped]=\"true\" [animate]=\"true\"></progressbar>\r\n <progressbar *ngIf=\"job.completed\" type=\"success\" [max]=\"100\" [value]=\"100\" [striped]=\"false\" [animate]=\"false\"></progressbar>\r\n </div>\r\n </div>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <!--Other Modules-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-cubes module-nav-menu-link dropdown-toggle app-pointer\" (click)=\"goToDashboard()\"></a>\r\n </div>\r\n\r\n <!--Quick Actions-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" dropdown container=\"body\" placement=\"bottom right\">\r\n <a class=\"far fa-folder-gear module-nav-menu-link dropdown-toggle app-pointer\" dropdownToggle></a>\r\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right-user app-no-padding\" role=\"menu\">\r\n <li class=\"d-flex dropdown-title-bg\">\r\n <div class=\"dropdown-title\">Gestisci Cache Utente</div>\r\n </li>\r\n <li class=\"dropdown-top\"></li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearUserPreferences()\">\r\n <i class=\"far fa-user-times app-margin-right-10\"></i>{{'Ripulisci le Preferenze Utente' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-item app-pointer\" (click)=\"clearAll()\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('cache')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci la Cache di tutti' | localize : lc}}\r\n </li>\r\n <li *ac=\"'R:Jace Admin'\" class=\"dropdown-item app-pointer\" (click)=\"forceClearConnectedClientAssets('preferences')\">\r\n <i class=\"far fa-broom-wide app-margin-right-10\"></i>{{'Ripulisci le Preferenze di tutti' | localize : lc}}\r\n </li>\r\n <li class=\"dropdown-bot\"></li>\r\n </ul>\r\n </div>\r\n \r\n <!--Punti di estensione per Calendar, Chatroom e chi pi\u00F9 ne ha pi\u00F9 ne metta...-->\r\n <div class=\"user-menu app-no-selection app-margin-right-15\" *ngFor=\"let comp of extensionComponents\">\r\n <ng-template [componentHost]=\"comp\"></ng-template>\r\n </div>\r\n </div>\r\n\r\n <!--Ambiente-->\r\n <div>\r\n <div class=\"nav-environment app-no-selection\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n </div>\r\n\r\n <!--Debugging ruoli e permessi-->\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n </div>\r\n</nav>\r\n\r\n<!-- Template per l'icona dell'utente -->\r\n<ng-template #userIcon let-context>\r\n <img src='../assets/img/users/user.jpg' alt=\"user-img\" class=\"img-circle user-img\">\r\n <img src='../assets/img/events/christmas.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.christmasTime\">\r\n <img src='../assets/img/events/halloween.png' alt=\"user-img\" class=\"img-circle user-img app-absolute app-right-0\" [style.right.px]=\"context?.right || undefined\" *ngIf=\"_state.halloweenTime\">\r\n</ng-template>\r\n\r\n<!-- Template per le informaizoni di debug: Ambiente, ruoli, permessi ecc -->\r\n<ng-template #debugInfos>\r\n <div>{{CurrentIdentity?.FullName}} - ({{CurrentIdentity?.TenantName}})</div>\r\n <div hidden>{{applicationEnvironment}}</div>\r\n <div class=\"text-sm-center\">\r\n <ng-container *ngIf=\"['Dev', 2].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevA', 3].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['DevB', 4].includes(applicationEnvironment)\">{{'Ambiente di Sviluppo B' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Stage', 5].includes(applicationEnvironment)\">{{'Ambiente di Staging' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['StageA', 6].includes(applicationEnvironment)\">{{'Ambiente di Staging A' | localize : lc}}</ng-container>\r\n <ng-container *ngIf=\"['Prod', 1].includes(applicationEnvironment)\">{{'Ambiente di Produzione' | localize : lc}}</ng-container>\r\n </div>\r\n <div [hidden]=\"true\">\r\n <div>Permissions:</div>\r\n <div *ngFor=\"let p of CurrentIdentity.Permissions\">{{p}}</div>\r\n <div>Roles:</div>\r\n <div *ngFor=\"let r of CurrentIdentity.Roles\">{{r}}</div>\r\n </div>\r\n</ng-template>", styles: [".nav-jobs-icon{position:absolute;left:-20px;margin:0;padding:0;top:10px;color:#fff!important;font-size:20px}.nav-jobs-icon-notification{top:7px;left:-7px;position:absolute;background-color:#0056b3;border-radius:50%;height:8px;width:8px}.nav-jobs-menu{width:350px;height:250px;background:white;margin:2px 0 0;padding:5px;border:1px solid #3e4d64}.nav-jobs-menu-header{background-color:#344154;padding:8px;font-size:14px;margin-top:-5px;margin-left:-5px;margin-right:-5px;display:flex}.nav-jobs-menu-header span{color:#fffc}.nav-jobs-menu-list{position:relative;overflow:auto;width:auto;height:203px;padding:5px}.nav-jobs-menu-list-description{font-size:13px;color:#666}.nav-jobs-menu-list-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;text-align:center}.user-menu{font-size:14px}.user-menu .dropdown-toggle:after{display:none}.user-menu .dropdown-menu{right:0;top:auto!important;left:auto!important;margin-top:10px;padding-top:0;overflow:hidden;border-radius:0;font-size:14px;box-shadow:0 6px 12px #0003;transform:none!important}.user-menu .dropdown-menu a{color:#024a88}.user-menu .dropdown-menu a:hover{color:#fff8a9;background-color:red}.user-menu .dropdown-menu a i{margin-right:8px}.navbar-help{font-size:20px!important;color:#ffffff80!important;border:1px solid rgba(255,255,255,.1);margin-left:5px!important;padding:5px 10px 2px 11px!important;border-radius:50%;background-color:#ffffff0d;cursor:pointer;width:31px;height:31px}.navbar-fill{margin-top:-5px;margin-bottom:-5px;margin-left:10px;width:calc(100% - 530px)}.navbar-fillable{width:calc(100% - 231px)}.navbar-floating-label{position:absolute;top:-9px;left:-5px;background:#242D3A;padding-left:5px;padding-right:5px;color:#ffffffe6!important}.module-nav-menu-link{color:#fff!important;font-size:20px;padding-top:8px;padding-right:5px;cursor:pointer}.module-board-menu{position:relative;top:1px;background-color:#1f1f1f;padding:15px}.dropdown-title-bg{background-color:#344154;border:1px solid #3e4d64;border-bottom:0px}.dropdown-title{color:#fff;margin:auto;padding:8px 0;font-size:18px}.dropdown-menu{background-color:#fff;border:none}.dropdown-divider{border-top:1px solid #eeeeee}.dropdown-item{background-color:#fff;color:#0056b3}.dropdown-item:hover{color:#004a9a!important;background-color:#eee}.dropdown-top{background-color:#fff;height:0;margin-bottom:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.dropdown-bot{background-color:#fff;height:0;margin-top:.5rem;overflow:hidden;border-top:1px solid #eeeeee}.enuma-navbar{height:60px;align-items:center;background-color:#2a3544;box-shadow:0 8px 6px -6px #1313130a,0 12px 16px -16px #1313130d;margin-bottom:-1px;border-bottom:1px solid #191E29}.nav-environment{color:#fff;background-color:#3e4d64;text-align:center;padding:5px 10px;margin:2px 10px 0 0}.nav-icon{color:#fff!important;font-size:20px;cursor:pointer}.nav-right-section{position:absolute;right:10px;top:10px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i9.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i9.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i9.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ProgressbarModule }, { kind: "component", type: i11.ProgressbarComponent, selector: "progressbar", inputs: ["max", "animate", "striped", "type", "value"] }, { kind: "directive", type: ComponentHostDirective, selector: "[componentHost]", inputs: ["componentHost", "Inputs"] }, { kind: "ngmodule", type: EsTableModule }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1$2.LocalizePipe, name: "localize" }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i5.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }], viewProviders: [{ provide: LocalizationService, useClass: NavBarLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
807
792
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Navbar, decorators: [{
808
793
  type: Component,
@@ -814,9 +799,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
814
799
  }] }, { type: undefined, decorators: [{
815
800
  type: Inject,
816
801
  args: [LOGIN_URL_LEGACY]
817
- }] }, { type: undefined, decorators: [{
818
- type: Inject,
819
- args: [USE_FAKE_ACCESS_TOKEN]
820
802
  }] }];
821
803
  }, propDecorators: { navbar: [{
822
804
  type: ViewChild,