@huntsman-cancer-institute/authentication 16.0.1 → 17.0.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.
@@ -1,53 +1,53 @@
1
- /*
2
- * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary
3
- */
4
- import { Component } from "@angular/core";
5
- import { animate, state, style, transition, trigger } from "@angular/animations";
6
- import { timer } from "rxjs";
7
- import { map, takeWhile } from "rxjs/operators";
8
- import { AuthenticationService } from "./authentication.service";
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./authentication.service";
11
- import * as i2 from "@angular/common";
12
- export class TimeoutNotificationComponent {
13
- constructor(authenticationService) {
14
- this.authenticationService = authenticationService;
15
- this.openState = "hidden";
16
- authenticationService.isAboutToTimeOut().subscribe((isAboutToTimeOut) => {
17
- if (isAboutToTimeOut) {
18
- this.openState = "opened";
19
- this.startCountdown();
20
- }
21
- else {
22
- this.openState = "hidden";
23
- //If something changed mid-timeout, cancel the timeout/logout.
24
- if (this.subscription != null && !this.subscription.closed) {
25
- this.subscription.unsubscribe();
26
- }
27
- }
28
- });
29
- }
30
- startCountdown() {
31
- this.seconds = timer(0, 1000)
32
- .pipe(map(() => {
33
- const elapsed = Math.round((Date.now() - this.authenticationService.getTimeoutStart()) / 1000);
34
- return this.authenticationService.userCountdownSeconds - elapsed;
35
- }),
36
- // The true argument emits the final value that completed the observable
37
- takeWhile((value) => value > 0, true));
38
- this.subscription = this.seconds.subscribe((value) => {
39
- if (value < 1) {
40
- this.subscription.unsubscribe();
41
- this.authenticationService.logout(true);
42
- }
43
- });
44
- }
45
- click() {
46
- this.subscription.unsubscribe();
47
- this.authenticationService.updateUserActivity();
48
- }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeoutNotificationComponent, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TimeoutNotificationComponent, selector: "timeout-notification", ngImport: i0, template: `
1
+ /*
2
+ * Copyright (c) 2016 Huntsman Cancer Institute at the University of Utah, Confidential and Proprietary
3
+ */
4
+ import { Component } from "@angular/core";
5
+ import { animate, state, style, transition, trigger } from "@angular/animations";
6
+ import { timer } from "rxjs";
7
+ import { map, takeWhile } from "rxjs/operators";
8
+ import { AuthenticationService } from "./authentication.service";
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./authentication.service";
11
+ import * as i2 from "@angular/common";
12
+ export class TimeoutNotificationComponent {
13
+ constructor(authenticationService) {
14
+ this.authenticationService = authenticationService;
15
+ this.openState = "hidden";
16
+ authenticationService.isAboutToTimeOut().subscribe((isAboutToTimeOut) => {
17
+ if (isAboutToTimeOut) {
18
+ this.openState = "opened";
19
+ this.startCountdown();
20
+ }
21
+ else {
22
+ this.openState = "hidden";
23
+ //If something changed mid-timeout, cancel the timeout/logout.
24
+ if (this.subscription != null && !this.subscription.closed) {
25
+ this.subscription.unsubscribe();
26
+ }
27
+ }
28
+ });
29
+ }
30
+ startCountdown() {
31
+ this.seconds = timer(0, 1000)
32
+ .pipe(map(() => {
33
+ const elapsed = Math.round((Date.now() - this.authenticationService.getTimeoutStart()) / 1000);
34
+ return this.authenticationService.userCountdownSeconds - elapsed;
35
+ }),
36
+ // The true argument emits the final value that completed the observable
37
+ takeWhile((value) => value > 0, true));
38
+ this.subscription = this.seconds.subscribe((value) => {
39
+ if (value < 1) {
40
+ this.subscription.unsubscribe();
41
+ this.authenticationService.logout(true);
42
+ }
43
+ });
44
+ }
45
+ click() {
46
+ this.subscription.unsubscribe();
47
+ this.authenticationService.updateUserActivity();
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TimeoutNotificationComponent, deps: [{ token: i1.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TimeoutNotificationComponent, selector: "timeout-notification", ngImport: i0, template: `
51
51
  <div class="flyout-max" [@openBacksplash]="openState">
52
52
  <div class="modal-dialog" [@openModal]="openState" role="document">
53
53
  <div class="modal-header">
@@ -63,40 +63,40 @@ export class TimeoutNotificationComponent {
63
63
  </div>
64
64
  </div>
65
65
  </div>
66
- `, isInline: true, styles: [".flyout-max{position:fixed;z-index:9999;top:0;bottom:0;background-color:#0006;width:100vw}.modal-dialog{position:fixed;max-width:50vw;min-width:50vw;left:-50vw;top:25vw;margin:0;background-color:#fff;border:black 1px solid;border-left:none;border-radius:20px;pointer-events:all}.modal-body{width:100%;display:inline-block}.modal-body-left{display:inline-block;overflow-y:auto;overflow-x:hidden;min-height:300px;max-height:300px}.modal-body-right{width:70%;vertical-align:top;padding-left:15px;border-left:black 1px solid;margin-left:15px;display:inline-block;overflow-y:auto;min-height:300px;max-height:300px}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
67
- trigger("openBacksplash", [
68
- state("in", style({
69
- "display": "none"
70
- })),
71
- state("hidden", style({
72
- "display": "none"
73
- })),
74
- state("opened", style({
75
- "display": "inherit"
76
- })),
77
- transition("hidden => opened", animate(100)),
78
- transition("opened => hidden", animate(200))
79
- ]),
80
- trigger("openModal", [
81
- state("in", style({
82
- "opacity": "0",
83
- "left": "-50vw"
84
- })),
85
- state("hidden", style({
86
- "opacity": "0",
87
- "left": "-50vw"
88
- })),
89
- state("opened", style({
90
- "opacity": "1",
91
- "left": "25vw"
92
- })),
93
- transition("hidden => opened", animate(500)),
94
- transition("opened => hidden", animate(300))
95
- ])
96
- ] }); }
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimeoutNotificationComponent, decorators: [{
99
- type: Component,
66
+ `, isInline: true, styles: [".flyout-max{position:fixed;z-index:9999;top:0;bottom:0;background-color:#0006;width:100vw}.modal-dialog{position:fixed;max-width:50vw;min-width:50vw;left:-50vw;top:25vw;margin:0;background-color:#fff;border:black 1px solid;border-left:none;border-radius:20px;pointer-events:all}.modal-body{width:100%;display:inline-block}.modal-body-left{display:inline-block;overflow-y:auto;overflow-x:hidden;min-height:300px;max-height:300px}.modal-body-right{width:70%;vertical-align:top;padding-left:15px;border-left:black 1px solid;margin-left:15px;display:inline-block;overflow-y:auto;min-height:300px;max-height:300px}\n"], dependencies: [{ kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
67
+ trigger("openBacksplash", [
68
+ state("in", style({
69
+ "display": "none"
70
+ })),
71
+ state("hidden", style({
72
+ "display": "none"
73
+ })),
74
+ state("opened", style({
75
+ "display": "inherit"
76
+ })),
77
+ transition("hidden => opened", animate(100)),
78
+ transition("opened => hidden", animate(200))
79
+ ]),
80
+ trigger("openModal", [
81
+ state("in", style({
82
+ "opacity": "0",
83
+ "left": "-50vw"
84
+ })),
85
+ state("hidden", style({
86
+ "opacity": "0",
87
+ "left": "-50vw"
88
+ })),
89
+ state("opened", style({
90
+ "opacity": "1",
91
+ "left": "25vw"
92
+ })),
93
+ transition("hidden => opened", animate(500)),
94
+ transition("opened => hidden", animate(300))
95
+ ])
96
+ ] }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TimeoutNotificationComponent, decorators: [{
99
+ type: Component,
100
100
  args: [{ selector: "timeout-notification", template: `
101
101
  <div class="flyout-max" [@openBacksplash]="openState">
102
102
  <div class="modal-dialog" [@openModal]="openState" role="document">
@@ -113,36 +113,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
113
113
  </div>
114
114
  </div>
115
115
  </div>
116
- `, animations: [
117
- trigger("openBacksplash", [
118
- state("in", style({
119
- "display": "none"
120
- })),
121
- state("hidden", style({
122
- "display": "none"
123
- })),
124
- state("opened", style({
125
- "display": "inherit"
126
- })),
127
- transition("hidden => opened", animate(100)),
128
- transition("opened => hidden", animate(200))
129
- ]),
130
- trigger("openModal", [
131
- state("in", style({
132
- "opacity": "0",
133
- "left": "-50vw"
134
- })),
135
- state("hidden", style({
136
- "opacity": "0",
137
- "left": "-50vw"
138
- })),
139
- state("opened", style({
140
- "opacity": "1",
141
- "left": "25vw"
142
- })),
143
- transition("hidden => opened", animate(500)),
144
- transition("opened => hidden", animate(300))
145
- ])
146
- ], styles: [".flyout-max{position:fixed;z-index:9999;top:0;bottom:0;background-color:#0006;width:100vw}.modal-dialog{position:fixed;max-width:50vw;min-width:50vw;left:-50vw;top:25vw;margin:0;background-color:#fff;border:black 1px solid;border-left:none;border-radius:20px;pointer-events:all}.modal-body{width:100%;display:inline-block}.modal-body-left{display:inline-block;overflow-y:auto;overflow-x:hidden;min-height:300px;max-height:300px}.modal-body-right{width:70%;vertical-align:top;padding-left:15px;border-left:black 1px solid;margin-left:15px;display:inline-block;overflow-y:auto;min-height:300px;max-height:300px}\n"] }]
147
- }], ctorParameters: function () { return [{ type: i1.AuthenticationService }]; } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW91dC1ub3RpZmljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYXV0aGVudGljYXRpb24vc3JjL3RpbWVvdXQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQTJCLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBOEcvRCxNQUFNLE9BQU8sNEJBQTRCO0lBTXZDLFlBQW9CLHFCQUE0QztRQUE1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBSnpELGNBQVMsR0FBVyxRQUFRLENBQUM7UUFLbEMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBRXRFLElBQUksZ0JBQWdCLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLDhEQUE4RDtnQkFDOUQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO29CQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lC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RSxNQUFNOzZCQUNsQixDQUFDLENBQUM7NEJBQ0gsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7Z0NBQ3BCLFNBQVMsRUFBRSxNQUFNOzZCQUNsQixDQUFDLENBQUM7NEJBQ0gsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7Z0NBQ3BCLFNBQVMsRUFBRSxTQUFTOzZCQUNyQixDQUFDLENBQUM7NEJBQ0gsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDNUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDN0MsQ0FDRjt3QkFDRCxPQUFPLENBQUMsV0FBVyxFQUNqQjs0QkFDRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztnQ0FDaEIsU0FBUyxFQUFFLEdBQUc7Z0NBQ2QsTUFBTSxFQUFFLE9BQU87NkJBQ2hCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztnQ0FDcEIsU0FBUyxFQUFFLEdBQUc7Z0NBQ2QsTUFBTSxFQUFFLE9BQU87NkJBQ2hCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztnQ0FDcEIsU0FBUyxFQUFFLEdBQUc7Z0NBQ2QsTUFBTSxFQUFFLE1BQU07NkJBQ2YsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzVDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQzdDLENBQ0Y7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcblxyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgdGltZXJ9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7bWFwLCB0YWtlV2hpbGV9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHtBdXRoZW50aWNhdGlvblNlcnZpY2V9IGZyb20gXCIuL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInRpbWVvdXQtbm90aWZpY2F0aW9uXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJmbHlvdXQtbWF4XCIgW0BvcGVuQmFja3NwbGFzaF09XCJvcGVuU3RhdGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiIFtAb3Blbk1vZGFsXT1cIm9wZW5TdGF0ZVwiIHJvbGU9XCJkb2N1bWVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+WW91ciBTZXNzaW9uIElzIEFib3V0IFRvIEV4cGlyZTwvaDQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgIDxwPkZvciB5b3VyIHNlY3VyaXR5LCB5b3VyIHNlc3Npb24gaXMgYWJvdXQgdG8gYXV0b21hdGljYWxseSB0aW1lIG91dCBpbiB0aGUgbmV4dCA8Yj57e3NlY29uZHMgfCBhc3luY319PC9iPiBzZWNvbmRzLiBXb3VsZCB5b3UgbGlrZSB0byBzdGF5IHNpZ25lZCBpbj88L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInVwZGF0ZUJ0blwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNsaWNrKClcIj5ZZXMsIEtlZXAgbWUgc2lnbmVkIGluPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoXCJvcGVuQmFja3NwbGFzaFwiLFxyXG4gICAgICBbXHJcbiAgICAgICAgc3RhdGUoXCJpblwiLCBzdHlsZSh7XHJcbiAgICAgICAgICBcImRpc3BsYXlcIjogXCJub25lXCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoXCJoaWRkZW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgXCJkaXNwbGF5XCI6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwib3BlbmVkXCIsIHN0eWxlKHtcclxuICAgICAgICAgIFwiZGlzcGxheVwiOiBcImluaGVyaXRcIlxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICB0cmFuc2l0aW9uKFwiaGlkZGVuID0+IG9wZW5lZFwiLCBhbmltYXRlKDEwMCkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oXCJvcGVuZWQgPT4gaGlkZGVuXCIsIGFuaW1hdGUoMjAwKSlcclxuICAgICAgXVxyXG4gICAgKSxcclxuICAgIHRyaWdnZXIoXCJvcGVuTW9kYWxcIixcclxuICAgICAgW1xyXG4gICAgICAgIHN0YXRlKFwiaW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgXCJvcGFjaXR5XCI6IFwiMFwiLFxyXG4gICAgICAgICAgXCJsZWZ0XCI6IFwiLTUwdndcIlxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBzdGF0ZShcImhpZGRlblwiLCBzdHlsZSh7XHJcbiAgICAgICAgICBcIm9wYWNpdHlcIjogXCIwXCIsXHJcbiAgICAgICAgICBcImxlZnRcIjogXCItNTB2d1wiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwib3BlbmVkXCIsIHN0eWxlKHtcclxuICAgICAgICAgIFwib3BhY2l0eVwiOiBcIjFcIixcclxuICAgICAgICAgIFwibGVmdFwiOiBcIjI1dndcIlxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICB0cmFuc2l0aW9uKFwiaGlkZGVuID0+IG9wZW5lZFwiLCBhbmltYXRlKDUwMCkpLFxyXG4gICAgICAgIHRyYW5zaXRpb24oXCJvcGVuZWQgPT4gaGlkZGVuXCIsIGFuaW1hdGUoMzAwKSlcclxuICAgICAgXVxyXG4gICAgKVxyXG4gIF0sXHJcbiAgc3R5bGVzOiBbYFxyXG5cclxuICAgIC5mbHlvdXQtbWF4IHtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB6LWluZGV4OiA5OTk5O1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xyXG4gICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIG1heC13aWR0aDogNTB2dztcclxuICAgICAgbWluLXdpZHRoOiA1MHZ3O1xyXG4gICAgICBsZWZ0OiAtNTB2dztcclxuICAgICAgdG9wOiAyNXZ3O1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDtcclxuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMHB4O1xyXG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjBweDtcclxuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjBweDtcclxuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjBweDtcclxuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1vZGFsLWJvZHkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubW9kYWwtYm9keS1sZWZ0IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1vZGFsLWJvZHktcmlnaHQge1xyXG4gICAgICB3aWR0aDogNzAlO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiBibGFjayAxcHggc29saWQ7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZW91dE5vdGlmaWNhdGlvbkNvbXBvbmVudCB7XHJcbiAgcHVibGljIHNlY29uZHM6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICBwdWJsaWMgb3BlblN0YXRlOiBzdHJpbmcgPSBcImhpZGRlblwiO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICBhdXRoZW50aWNhdGlvblNlcnZpY2UuaXNBYm91dFRvVGltZU91dCgpLnN1YnNjcmliZSgoaXNBYm91dFRvVGltZU91dCkgPT4ge1xyXG5cclxuICAgICAgaWYgKGlzQWJvdXRUb1RpbWVPdXQpIHtcclxuICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IFwib3BlbmVkXCI7XHJcbiAgICAgICAgdGhpcy5zdGFydENvdW50ZG93bigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub3BlblN0YXRlID0gXCJoaWRkZW5cIjtcclxuICAgICAgICAvL0lmIHNvbWV0aGluZyBjaGFuZ2VkIG1pZC10aW1lb3V0LCBjYW5jZWwgdGhlIHRpbWVvdXQvbG9nb3V0LlxyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAhPSBudWxsICYmICF0aGlzLnN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXJ0Q291bnRkb3duKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWNvbmRzID0gdGltZXIoMCwgMTAwMClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsYXBzZWQ6IG51bWJlciA9IE1hdGgucm91bmQoKERhdGUubm93KCkgLSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRUaW1lb3V0U3RhcnQoKSkgLyAxMDAwKTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS51c2VyQ291bnRkb3duU2Vjb25kcyAtIGVsYXBzZWQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgLy8gVGhlIHRydWUgYXJndW1lbnQgZW1pdHMgdGhlIGZpbmFsIHZhbHVlIHRoYXQgY29tcGxldGVkIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgdGFrZVdoaWxlKCh2YWx1ZSkgPT4gdmFsdWUgPiAwLCB0cnVlKSxcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuc2Vjb25kcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICBpZiAodmFsdWUgPCAxKSB7XHJcbiAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmxvZ291dCh0cnVlKTtcclxuICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UudXBkYXRlVXNlckFjdGl2aXR5KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
116
+ `, animations: [
117
+ trigger("openBacksplash", [
118
+ state("in", style({
119
+ "display": "none"
120
+ })),
121
+ state("hidden", style({
122
+ "display": "none"
123
+ })),
124
+ state("opened", style({
125
+ "display": "inherit"
126
+ })),
127
+ transition("hidden => opened", animate(100)),
128
+ transition("opened => hidden", animate(200))
129
+ ]),
130
+ trigger("openModal", [
131
+ state("in", style({
132
+ "opacity": "0",
133
+ "left": "-50vw"
134
+ })),
135
+ state("hidden", style({
136
+ "opacity": "0",
137
+ "left": "-50vw"
138
+ })),
139
+ state("opened", style({
140
+ "opacity": "1",
141
+ "left": "25vw"
142
+ })),
143
+ transition("hidden => opened", animate(500)),
144
+ transition("opened => hidden", animate(300))
145
+ ])
146
+ ], styles: [".flyout-max{position:fixed;z-index:9999;top:0;bottom:0;background-color:#0006;width:100vw}.modal-dialog{position:fixed;max-width:50vw;min-width:50vw;left:-50vw;top:25vw;margin:0;background-color:#fff;border:black 1px solid;border-left:none;border-radius:20px;pointer-events:all}.modal-body{width:100%;display:inline-block}.modal-body-left{display:inline-block;overflow-y:auto;overflow-x:hidden;min-height:300px;max-height:300px}.modal-body-right{width:70%;vertical-align:top;padding-left:15px;border-left:black 1px solid;margin-left:15px;display:inline-block;overflow-y:auto;min-height:300px;max-height:300px}\n"] }]
147
+ }], ctorParameters: () => [{ type: i1.AuthenticationService }] });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW91dC1ub3RpZmljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYXV0aGVudGljYXRpb24vc3JjL3RpbWVvdXQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQTJCLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBOEcvRCxNQUFNLE9BQU8sNEJBQTRCO0lBTXZDLFlBQW9CLHFCQUE0QztRQUE1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBSnpELGNBQVMsR0FBVyxRQUFRLENBQUM7UUFLbEMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBRXRFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLDhEQUE4RDtnQkFDOUQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7YUFDMUIsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLE9BQU8sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3ZHLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztRQUNuRSxDQUFDLENBQUM7UUFDRix3RUFBd0U7UUFDeEUsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUN0QyxDQUFDO1FBRUosSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ2xELENBQUM7OEdBNUNVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDREQTFHN0I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsb3RCQUNXO1lBQ1YsT0FBTyxDQUFDLGdCQUFnQixFQUN0QjtnQkFDRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztvQkFDaEIsU0FBUyxFQUFFLE1BQU07aUJBQ2xCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztvQkFDcEIsU0FBUyxFQUFFLE1BQU07aUJBQ2xCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztvQkFDcEIsU0FBUyxFQUFFLFNBQVM7aUJBQ3JCLENBQUMsQ0FBQztnQkFDSCxVQUFVLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdDLENBQ0Y7WUFDRCxPQUFPLENBQUMsV0FBVyxFQUNqQjtnQkFDRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztvQkFDaEIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsTUFBTSxFQUFFLE9BQU87aUJBQ2hCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztvQkFDcEIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsTUFBTSxFQUFFLE9BQU87aUJBQ2hCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztvQkFDcEIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsTUFBTSxFQUFFLE1BQU07aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDN0MsQ0FDRjtTQUNGOzsyRkF1RFUsNEJBQTRCO2tCQTVHeEMsU0FBUzsrQkFDRSxzQkFBc0IsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsY0FDVzt3QkFDVixPQUFPLENBQUMsZ0JBQWdCLEVBQ3RCOzRCQUNFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dDQUNoQixTQUFTLEVBQUUsTUFBTTs2QkFDbEIsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO2dDQUNwQixTQUFTLEVBQUUsTUFBTTs2QkFDbEIsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO2dDQUNwQixTQUFTLEVBQUUsU0FBUzs2QkFDckIsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzVDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQzdDLENBQ0Y7d0JBQ0QsT0FBTyxDQUFDLFdBQVcsRUFDakI7NEJBQ0UsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0NBQ2hCLFNBQVMsRUFBRSxHQUFHO2dDQUNkLE1BQU0sRUFBRSxPQUFPOzZCQUNoQixDQUFDLENBQUM7NEJBQ0gsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7Z0NBQ3BCLFNBQVMsRUFBRSxHQUFHO2dDQUNkLE1BQU0sRUFBRSxPQUFPOzZCQUNoQixDQUFDLENBQUM7NEJBQ0gsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7Z0NBQ3BCLFNBQVMsRUFBRSxHQUFHO2dDQUNkLE1BQU0sRUFBRSxNQUFNOzZCQUNmLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUM1QyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3lCQUM3QyxDQUNGO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5cclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRpbWVyfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21hcCwgdGFrZVdoaWxlfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmltcG9ydCB7QXV0aGVudGljYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ0aW1lb3V0LW5vdGlmaWNhdGlvblwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmx5b3V0LW1heFwiIFtAb3BlbkJhY2tzcGxhc2hdPVwib3BlblN0YXRlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiBbQG9wZW5Nb2RhbF09XCJvcGVuU3RhdGVcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPllvdXIgU2Vzc2lvbiBJcyBBYm91dCBUbyBFeHBpcmU8L2g0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICA8cD5Gb3IgeW91ciBzZWN1cml0eSwgeW91ciBzZXNzaW9uIGlzIGFib3V0IHRvIGF1dG9tYXRpY2FsbHkgdGltZSBvdXQgaW4gdGhlIG5leHQgPGI+e3tzZWNvbmRzIHwgYXN5bmN9fTwvYj4gc2Vjb25kcy4gV291bGQgeW91IGxpa2UgdG8gc3RheSBzaWduZWQgaW4/PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxidXR0b24gaWQ9XCJ1cGRhdGVCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbGljaygpXCI+WWVzLCBLZWVwIG1lIHNpZ25lZCBpbjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKFwib3BlbkJhY2tzcGxhc2hcIixcclxuICAgICAgW1xyXG4gICAgICAgIHN0YXRlKFwiaW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgXCJkaXNwbGF5XCI6IFwibm9uZVwiXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIHN0YXRlKFwiaGlkZGVuXCIsIHN0eWxlKHtcclxuICAgICAgICAgIFwiZGlzcGxheVwiOiBcIm5vbmVcIlxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBzdGF0ZShcIm9wZW5lZFwiLCBzdHlsZSh7XHJcbiAgICAgICAgICBcImRpc3BsYXlcIjogXCJpbmhlcml0XCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgdHJhbnNpdGlvbihcImhpZGRlbiA9PiBvcGVuZWRcIiwgYW5pbWF0ZSgxMDApKSxcclxuICAgICAgICB0cmFuc2l0aW9uKFwib3BlbmVkID0+IGhpZGRlblwiLCBhbmltYXRlKDIwMCkpXHJcbiAgICAgIF1cclxuICAgICksXHJcbiAgICB0cmlnZ2VyKFwib3Blbk1vZGFsXCIsXHJcbiAgICAgIFtcclxuICAgICAgICBzdGF0ZShcImluXCIsIHN0eWxlKHtcclxuICAgICAgICAgIFwib3BhY2l0eVwiOiBcIjBcIixcclxuICAgICAgICAgIFwibGVmdFwiOiBcIi01MHZ3XCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgc3RhdGUoXCJoaWRkZW5cIiwgc3R5bGUoe1xyXG4gICAgICAgICAgXCJvcGFjaXR5XCI6IFwiMFwiLFxyXG4gICAgICAgICAgXCJsZWZ0XCI6IFwiLTUwdndcIlxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBzdGF0ZShcIm9wZW5lZFwiLCBzdHlsZSh7XHJcbiAgICAgICAgICBcIm9wYWNpdHlcIjogXCIxXCIsXHJcbiAgICAgICAgICBcImxlZnRcIjogXCIyNXZ3XCJcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgdHJhbnNpdGlvbihcImhpZGRlbiA9PiBvcGVuZWRcIiwgYW5pbWF0ZSg1MDApKSxcclxuICAgICAgICB0cmFuc2l0aW9uKFwib3BlbmVkID0+IGhpZGRlblwiLCBhbmltYXRlKDMwMCkpXHJcbiAgICAgIF1cclxuICAgIClcclxuICBdLFxyXG4gIHN0eWxlczogW2BcclxuXHJcbiAgICAuZmx5b3V0LW1heCB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgei1pbmRleDogOTk5OTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubW9kYWwtZGlhbG9nIHtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICBtYXgtd2lkdGg6IDUwdnc7XHJcbiAgICAgIG1pbi13aWR0aDogNTB2dztcclxuICAgICAgbGVmdDogLTUwdnc7XHJcbiAgICAgIHRvcDogMjV2dztcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgYm9yZGVyOiBibGFjayAxcHggc29saWQ7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjBweDtcclxuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDIwcHg7XHJcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDIwcHg7XHJcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDIwcHg7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5tb2RhbC1ib2R5IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1vZGFsLWJvZHktbGVmdCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDtcclxuICAgICAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5tb2RhbC1ib2R5LXJpZ2h0IHtcclxuICAgICAgd2lkdGg6IDcwJTtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xyXG4gICAgICBib3JkZXItbGVmdDogYmxhY2sgMXB4IHNvbGlkO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBtaW4taGVpZ2h0OiAzMDBweDtcclxuICAgICAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVvdXROb3RpZmljYXRpb25Db21wb25lbnQge1xyXG4gIHB1YmxpYyBzZWNvbmRzOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgcHVibGljIG9wZW5TdGF0ZTogc3RyaW5nID0gXCJoaWRkZW5cIjtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge1xyXG4gICAgYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzQWJvdXRUb1RpbWVPdXQoKS5zdWJzY3JpYmUoKGlzQWJvdXRUb1RpbWVPdXQpID0+IHtcclxuXHJcbiAgICAgIGlmIChpc0Fib3V0VG9UaW1lT3V0KSB7XHJcbiAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSBcIm9wZW5lZFwiO1xyXG4gICAgICAgIHRoaXMuc3RhcnRDb3VudGRvd24oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IFwiaGlkZGVuXCI7XHJcbiAgICAgICAgLy9JZiBzb21ldGhpbmcgY2hhbmdlZCBtaWQtdGltZW91dCwgY2FuY2VsIHRoZSB0aW1lb3V0L2xvZ291dC5cclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24gIT0gbnVsbCAmJiAhdGhpcy5zdWJzY3JpcHRpb24uY2xvc2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGFydENvdW50ZG93bigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vjb25kcyA9IHRpbWVyKDAsIDEwMDApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBlbGFwc2VkOiBudW1iZXIgPSBNYXRoLnJvdW5kKChEYXRlLm5vdygpIC0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VGltZW91dFN0YXJ0KCkpIC8gMTAwMCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UudXNlckNvdW50ZG93blNlY29uZHMgLSBlbGFwc2VkO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIC8vIFRoZSB0cnVlIGFyZ3VtZW50IGVtaXRzIHRoZSBmaW5hbCB2YWx1ZSB0aGF0IGNvbXBsZXRlZCB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgIHRha2VXaGlsZSgodmFsdWUpID0+IHZhbHVlID4gMCwgdHJ1ZSksXHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnNlY29uZHMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgaWYgKHZhbHVlIDwgMSkge1xyXG4gICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQodHJ1ZSk7XHJcbiAgICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLnVwZGF0ZVVzZXJBY3Rpdml0eSgpO1xyXG4gIH1cclxufVxyXG4iXX0=