@reusa/ngx-reusa-app-lib 0.0.1322 → 0.0.1324
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +196 -132
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +29 -24
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +45 -31
- package/esm2022/lib/components/address/address.component.mjs +97 -46
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +139 -75
- package/esm2022/lib/components/contact-us/contact-us.component.mjs +42 -28
- package/esm2022/lib/components/email-update/email-update.component.mjs +119 -62
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +165 -84
- package/esm2022/lib/components/footer/footer.component.mjs +23 -11
- package/esm2022/lib/components/header/header.component.mjs +163 -109
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +29 -18
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
- package/esm2022/lib/components/job-title/job-title.component.mjs +20 -16
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +389 -208
- package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +83 -21
- package/esm2022/lib/components/menu/menu.component.mjs +63 -25
- package/esm2022/lib/components/mfa/mfa.component.mjs +155 -98
- package/esm2022/lib/components/mfa2/mfa2.component.mjs +54 -30
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +31 -23
- package/esm2022/lib/components/profile/profile.component.mjs +34 -14
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +17 -10
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +80 -27
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +29 -8
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +172 -119
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +122 -41
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +10 -7
- package/esm2022/lib/components/security-question/security-question.component.mjs +19 -9
- package/esm2022/lib/components/select/select.component.mjs +10 -5
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
- package/esm2022/lib/components/user-login/user-login.component.mjs +116 -82
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +69 -47
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +480 -1
- package/esm2022/lib/pages/common/login/login.component.mjs +7 -2
- package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
- package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
- package/esm2022/lib/validations/AppValidators.mjs +9 -9
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +3103 -1492
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-employer/add-employer.component.d.ts +22 -73
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
- package/lib/components/add-participant/add-participant.component.d.ts +4 -1
- package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
- package/lib/components/add-payment/add-payment.component.d.ts +1 -2
- package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +10 -1
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/bank-details/bank-details.component.d.ts +17 -1
- package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
- package/lib/components/contact-us/contact-us.component.d.ts +4 -1
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
- package/lib/components/email-update/email-update.component.d.ts +6 -1
- package/lib/components/email-update/email-update.component.d.ts.map +1 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts +6 -24
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/footer/footer.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +3 -0
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
- package/lib/components/job-title/job-title.component.d.ts +3 -1
- package/lib/components/job-title/job-title.component.d.ts.map +1 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
- package/lib/components/menu/menu.component.d.ts +11 -1
- package/lib/components/menu/menu.component.d.ts.map +1 -1
- package/lib/components/mfa/mfa.component.d.ts +6 -1
- package/lib/components/mfa/mfa.component.d.ts.map +1 -1
- package/lib/components/profile/profile.component.d.ts.map +1 -1
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -0
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
- package/lib/components/user-login/user-login.component.d.ts +7 -1
- package/lib/components/user-login/user-login.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +7 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
- package/lib/models/questionnaire/ComboModel.d.ts +80 -0
- package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
- package/lib/pages/common/login/login.component.d.ts.map +1 -1
- package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
- package/lib/validations/AppValidators.d.ts +8 -8
- package/lib/validations/AppValidators.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -10,95 +10,116 @@ import * as i4 from "@ionic/angular";
|
|
|
10
10
|
import * as i5 from "../../services/captcha/captcha.service";
|
|
11
11
|
import * as i6 from "../../services/security-service/security.service";
|
|
12
12
|
import * as i7 from "@angular/router";
|
|
13
|
-
import * as i8 from "@
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "
|
|
16
|
-
import * as i11 from "
|
|
17
|
-
import * as i12 from "primeng/
|
|
18
|
-
import * as i13 from "
|
|
19
|
-
import * as i14 from "
|
|
13
|
+
import * as i8 from "@ngx-translate/core";
|
|
14
|
+
import * as i9 from "@angular/common";
|
|
15
|
+
import * as i10 from "primeng/api";
|
|
16
|
+
import * as i11 from "@angular/material/form-field";
|
|
17
|
+
import * as i12 from "primeng/selectbutton";
|
|
18
|
+
import * as i13 from "primeng/inputnumber";
|
|
19
|
+
import * as i14 from "../error/error.component";
|
|
20
20
|
import * as i15 from "../../pipes/mask/mask.email.pipe";
|
|
21
21
|
const _c0 = ["otpField"];
|
|
22
|
-
function
|
|
22
|
+
function MfaComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
23
23
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
24
24
|
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "div", 8)(3, "label", 9);
|
|
25
25
|
i0.ɵɵtext(4);
|
|
26
26
|
i0.ɵɵpipe(5, "translate");
|
|
27
27
|
i0.ɵɵelementEnd();
|
|
28
28
|
i0.ɵɵelementStart(6, "p-selectButton", 10);
|
|
29
|
-
i0.ɵɵlistener("onChange", function
|
|
29
|
+
i0.ɵɵlistener("onChange", function MfaComponent_div_4_Template_p_selectButton_onChange_6_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.sendOtp($event)); });
|
|
30
30
|
i0.ɵɵelementEnd()()()();
|
|
31
31
|
} if (rf & 2) {
|
|
32
32
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
33
33
|
i0.ɵɵadvance(4);
|
|
34
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, "
|
|
34
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, "mfa.how.send"));
|
|
35
35
|
i0.ɵɵadvance(2);
|
|
36
36
|
i0.ɵɵproperty("options", ctx_r1.options)("formControl", ctx_r1.option);
|
|
37
37
|
} }
|
|
38
|
-
function
|
|
38
|
+
function MfaComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
39
39
|
i0.ɵɵelementStart(0, "span");
|
|
40
|
-
i0.ɵɵtext(1
|
|
41
|
-
i0.ɵɵ
|
|
42
|
-
i0.ɵɵ
|
|
43
|
-
i0.ɵɵ
|
|
40
|
+
i0.ɵɵtext(1);
|
|
41
|
+
i0.ɵɵpipe(2, "translate");
|
|
42
|
+
i0.ɵɵelementStart(3, "b");
|
|
43
|
+
i0.ɵɵtext(4);
|
|
44
|
+
i0.ɵɵpipe(5, "maskEmail");
|
|
44
45
|
i0.ɵɵelementEnd()();
|
|
45
46
|
} if (rf & 2) {
|
|
46
47
|
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
48
|
+
i0.ɵɵadvance(1);
|
|
49
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 2, "mfa.code.sent.email"), ":\u00A0 ");
|
|
47
50
|
i0.ɵɵadvance(3);
|
|
48
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
51
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, ctx_r7.user == null ? null : ctx_r7.user.emailId));
|
|
49
52
|
} }
|
|
50
|
-
function
|
|
53
|
+
function MfaComponent_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
51
54
|
i0.ɵɵelementStart(0, "span");
|
|
52
|
-
i0.ɵɵtext(1
|
|
53
|
-
i0.ɵɵ
|
|
54
|
-
i0.ɵɵ
|
|
55
|
-
i0.ɵɵ
|
|
55
|
+
i0.ɵɵtext(1);
|
|
56
|
+
i0.ɵɵpipe(2, "translate");
|
|
57
|
+
i0.ɵɵelementStart(3, "b");
|
|
58
|
+
i0.ɵɵtext(4);
|
|
59
|
+
i0.ɵɵpipe(5, "maskEmail");
|
|
56
60
|
i0.ɵɵelementEnd()();
|
|
57
61
|
} if (rf & 2) {
|
|
58
62
|
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
63
|
+
i0.ɵɵadvance(1);
|
|
64
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 2, "mfa.code.sent.cell"), "\u00A0 ");
|
|
59
65
|
i0.ɵɵadvance(3);
|
|
60
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
66
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, ctx_r8.user == null ? null : ctx_r8.user.cellphoneNo));
|
|
61
67
|
} }
|
|
62
|
-
function
|
|
68
|
+
function MfaComponent_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
|
|
63
69
|
i0.ɵɵelementStart(0, "span");
|
|
64
|
-
i0.ɵɵtext(1
|
|
65
|
-
i0.ɵɵ
|
|
66
|
-
i0.ɵɵ
|
|
67
|
-
i0.ɵɵ
|
|
70
|
+
i0.ɵɵtext(1);
|
|
71
|
+
i0.ɵɵpipe(2, "translate");
|
|
72
|
+
i0.ɵɵelementStart(3, "b");
|
|
73
|
+
i0.ɵɵtext(4);
|
|
74
|
+
i0.ɵɵpipe(5, "maskEmail");
|
|
68
75
|
i0.ɵɵelementEnd()();
|
|
69
76
|
} if (rf & 2) {
|
|
70
77
|
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
78
|
+
i0.ɵɵadvance(1);
|
|
79
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 2, "mfa.code.sent.cell"), "\u00A0 ");
|
|
71
80
|
i0.ɵɵadvance(3);
|
|
72
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
81
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, ctx_r9.user == null ? null : ctx_r9.user.cellphoneNo));
|
|
73
82
|
} }
|
|
74
|
-
function
|
|
83
|
+
function MfaComponent_div_5_ion_label_8_Template(rf, ctx) { if (rf & 1) {
|
|
75
84
|
i0.ɵɵelementStart(0, "ion-label");
|
|
76
|
-
i0.ɵɵtext(1
|
|
85
|
+
i0.ɵɵtext(1);
|
|
86
|
+
i0.ɵɵpipe(2, "translate");
|
|
77
87
|
i0.ɵɵelementEnd();
|
|
88
|
+
} if (rf & 2) {
|
|
89
|
+
i0.ɵɵadvance(1);
|
|
90
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "mfa.code.sent.junk"), " ");
|
|
78
91
|
} }
|
|
79
|
-
function
|
|
92
|
+
function MfaComponent_div_5_span_9_Template(rf, ctx) { if (rf & 1) {
|
|
80
93
|
i0.ɵɵelementStart(0, "span");
|
|
81
94
|
i0.ɵɵelement(1, "br")(2, "br");
|
|
82
95
|
i0.ɵɵelementEnd();
|
|
83
96
|
} }
|
|
84
|
-
function
|
|
97
|
+
function MfaComponent_div_5_label_11_Template(rf, ctx) { if (rf & 1) {
|
|
85
98
|
i0.ɵɵelementStart(0, "label", 19);
|
|
86
|
-
i0.ɵɵtext(1
|
|
99
|
+
i0.ɵɵtext(1);
|
|
100
|
+
i0.ɵɵpipe(2, "translate");
|
|
87
101
|
i0.ɵɵelementEnd();
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
i0.ɵɵadvance(1);
|
|
104
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "mfa.enter.code"));
|
|
88
105
|
} }
|
|
89
|
-
function
|
|
106
|
+
function MfaComponent_div_5_label_13_Template(rf, ctx) { if (rf & 1) {
|
|
90
107
|
i0.ɵɵelementStart(0, "label", 19);
|
|
91
|
-
i0.ɵɵtext(1
|
|
108
|
+
i0.ɵɵtext(1);
|
|
109
|
+
i0.ɵɵpipe(2, "translate");
|
|
92
110
|
i0.ɵɵelementEnd();
|
|
111
|
+
} if (rf & 2) {
|
|
112
|
+
i0.ɵɵadvance(1);
|
|
113
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "mfa.enter.code.received"));
|
|
93
114
|
} }
|
|
94
|
-
const _c1 = () => ({ required:
|
|
95
|
-
function
|
|
115
|
+
const _c1 = (a0, a1, a2) => ({ required: a0, min: a1, max: a2 });
|
|
116
|
+
function MfaComponent_div_5_app_error_17_Template(rf, ctx) { if (rf & 1) {
|
|
96
117
|
i0.ɵɵelement(0, "app-error", 20);
|
|
97
118
|
} if (rf & 2) {
|
|
98
119
|
const ctx_r15 = i0.ɵɵnextContext(2);
|
|
99
|
-
i0.ɵɵproperty("field", ctx_r15.otp)("form", ctx_r15.otpForm)("errDef", i0.ɵɵ
|
|
120
|
+
i0.ɵɵproperty("field", ctx_r15.otp)("form", ctx_r15.otpForm)("errDef", i0.ɵɵpureFunction3(3, _c1, ctx_r15.AccessRequired, ctx_r15.AccessVerify, ctx_r15.AccessVerify));
|
|
100
121
|
} }
|
|
101
|
-
function
|
|
122
|
+
function MfaComponent_div_5_ion_item_18_Template(rf, ctx) { if (rf & 1) {
|
|
102
123
|
i0.ɵɵelementStart(0, "ion-item", 21);
|
|
103
124
|
i0.ɵɵelement(1, "ion-checkbox", 22);
|
|
104
125
|
i0.ɵɵelementStart(2, "ion-label", 23);
|
|
@@ -107,9 +128,9 @@ function MfaComponent_div_6_ion_item_18_Template(rf, ctx) { if (rf & 1) {
|
|
|
107
128
|
i0.ɵɵelementEnd()();
|
|
108
129
|
} if (rf & 2) {
|
|
109
130
|
i0.ɵɵadvance(3);
|
|
110
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "
|
|
131
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "mfa.browser.trust"));
|
|
111
132
|
} }
|
|
112
|
-
function
|
|
133
|
+
function MfaComponent_div_5_mat_error_19_Template(rf, ctx) { if (rf & 1) {
|
|
113
134
|
i0.ɵɵelementStart(0, "mat-error");
|
|
114
135
|
i0.ɵɵtext(1);
|
|
115
136
|
i0.ɵɵelement(2, "br")(3, "br");
|
|
@@ -119,7 +140,7 @@ function MfaComponent_div_6_mat_error_19_Template(rf, ctx) { if (rf & 1) {
|
|
|
119
140
|
i0.ɵɵadvance(1);
|
|
120
141
|
i0.ɵɵtextInterpolate(ctx_r17.errorDtls);
|
|
121
142
|
} }
|
|
122
|
-
function
|
|
143
|
+
function MfaComponent_div_5_ion_label_20_Template(rf, ctx) { if (rf & 1) {
|
|
123
144
|
i0.ɵɵelementStart(0, "ion-label", 24);
|
|
124
145
|
i0.ɵɵtext(1);
|
|
125
146
|
i0.ɵɵelement(2, "br")(3, "br");
|
|
@@ -129,36 +150,47 @@ function MfaComponent_div_6_ion_label_20_Template(rf, ctx) { if (rf & 1) {
|
|
|
129
150
|
i0.ɵɵadvance(1);
|
|
130
151
|
i0.ɵɵtextInterpolate(ctx_r18.successDtls);
|
|
131
152
|
} }
|
|
132
|
-
function
|
|
153
|
+
function MfaComponent_div_5_ion_label_21_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
133
154
|
i0.ɵɵelementStart(0, "span");
|
|
134
|
-
i0.ɵɵtext(1
|
|
135
|
-
i0.ɵɵ
|
|
136
|
-
i0.ɵɵ
|
|
155
|
+
i0.ɵɵtext(1);
|
|
156
|
+
i0.ɵɵpipe(2, "translate");
|
|
157
|
+
i0.ɵɵelementStart(3, "b");
|
|
158
|
+
i0.ɵɵtext(4);
|
|
137
159
|
i0.ɵɵelementEnd();
|
|
138
|
-
i0.ɵɵtext(
|
|
160
|
+
i0.ɵɵtext(5, ". ");
|
|
139
161
|
i0.ɵɵelementEnd();
|
|
140
162
|
} if (rf & 2) {
|
|
141
163
|
const ctx_r22 = i0.ɵɵnextContext(3);
|
|
164
|
+
i0.ɵɵadvance(1);
|
|
165
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "mfa.code.not.received"), " ");
|
|
142
166
|
i0.ɵɵadvance(3);
|
|
143
167
|
i0.ɵɵtextInterpolate1("", ctx_r22.counter.getValue(), " second(s)");
|
|
144
168
|
} }
|
|
145
|
-
function
|
|
169
|
+
function MfaComponent_div_5_ion_label_21_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
146
170
|
const _r26 = i0.ɵɵgetCurrentView();
|
|
147
171
|
i0.ɵɵelementStart(0, "span")(1, "a", 25);
|
|
148
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
149
|
-
i0.ɵɵtext(2
|
|
172
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_5_ion_label_21_span_2_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r25.resendAuthCode(ctx_r25.option.value)); })("click", function MfaComponent_div_5_ion_label_21_span_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.resendAuthCode(ctx_r27.option.value)); });
|
|
173
|
+
i0.ɵɵtext(2);
|
|
174
|
+
i0.ɵɵpipe(3, "translate");
|
|
150
175
|
i0.ɵɵelementEnd()();
|
|
176
|
+
} if (rf & 2) {
|
|
177
|
+
i0.ɵɵadvance(2);
|
|
178
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "mfa.get.new.code"));
|
|
151
179
|
} }
|
|
152
|
-
function
|
|
180
|
+
function MfaComponent_div_5_ion_label_21_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
153
181
|
const _r29 = i0.ɵɵgetCurrentView();
|
|
154
182
|
i0.ɵɵelementStart(0, "span")(1, "a", 25);
|
|
155
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
156
|
-
i0.ɵɵtext(2
|
|
183
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_5_ion_label_21_span_3_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r28.resendAuthCode(ctx_r28.option.value)); })("click", function MfaComponent_div_5_ion_label_21_span_3_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r30.resendAuthCode(ctx_r30.option.value)); });
|
|
184
|
+
i0.ɵɵtext(2);
|
|
185
|
+
i0.ɵɵpipe(3, "translate");
|
|
157
186
|
i0.ɵɵelementEnd()();
|
|
187
|
+
} if (rf & 2) {
|
|
188
|
+
i0.ɵɵadvance(2);
|
|
189
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "mfa.resend.verification.code"), "");
|
|
158
190
|
} }
|
|
159
|
-
function
|
|
191
|
+
function MfaComponent_div_5_ion_label_21_Template(rf, ctx) { if (rf & 1) {
|
|
160
192
|
i0.ɵɵelementStart(0, "ion-label");
|
|
161
|
-
i0.ɵɵtemplate(1,
|
|
193
|
+
i0.ɵɵtemplate(1, MfaComponent_div_5_ion_label_21_span_1_Template, 6, 4, "span", 12)(2, MfaComponent_div_5_ion_label_21_span_2_Template, 4, 3, "span", 12)(3, MfaComponent_div_5_ion_label_21_span_3_Template, 4, 3, "span", 12);
|
|
162
194
|
i0.ɵɵelementEnd();
|
|
163
195
|
} if (rf & 2) {
|
|
164
196
|
const ctx_r19 = i0.ɵɵnextContext(2);
|
|
@@ -169,10 +201,10 @@ function MfaComponent_div_6_ion_label_21_Template(rf, ctx) { if (rf & 1) {
|
|
|
169
201
|
i0.ɵɵadvance(1);
|
|
170
202
|
i0.ɵɵproperty("ngIf", ctx_r19.counter.getValue() == 1 && ctx_r19.returningUser);
|
|
171
203
|
} }
|
|
172
|
-
function
|
|
204
|
+
function MfaComponent_div_5_p_22_Template(rf, ctx) { if (rf & 1) {
|
|
173
205
|
const _r32 = i0.ɵɵgetCurrentView();
|
|
174
206
|
i0.ɵɵelementStart(0, "p")(1, "a", 25);
|
|
175
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
207
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_5_p_22_Template_a_keyup_enter_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); ctx_r31.showHelp = !ctx_r31.showHelp; return i0.ɵɵresetView($event.preventDefault()); })("click", function MfaComponent_div_5_p_22_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(2); ctx_r33.showHelp = !ctx_r33.showHelp; return i0.ɵɵresetView($event.preventDefault()); });
|
|
176
208
|
i0.ɵɵtext(2);
|
|
177
209
|
i0.ɵɵelementEnd()();
|
|
178
210
|
} if (rf & 2) {
|
|
@@ -180,39 +212,42 @@ function MfaComponent_div_6_p_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
180
212
|
i0.ɵɵadvance(2);
|
|
181
213
|
i0.ɵɵtextInterpolate1("Can't get to your ", ctx_r20.option.value == "text" ? "cellphone" : "email", "?");
|
|
182
214
|
} }
|
|
183
|
-
function
|
|
215
|
+
function MfaComponent_div_5_p_23_Template(rf, ctx) { if (rf & 1) {
|
|
184
216
|
i0.ɵɵelementStart(0, "p");
|
|
185
|
-
i0.ɵɵtext(1
|
|
186
|
-
i0.ɵɵ
|
|
187
|
-
i0.ɵɵ
|
|
188
|
-
i0.ɵɵ
|
|
189
|
-
i0.ɵɵ
|
|
217
|
+
i0.ɵɵtext(1);
|
|
218
|
+
i0.ɵɵpipe(2, "translate");
|
|
219
|
+
i0.ɵɵelement(3, "br");
|
|
220
|
+
i0.ɵɵtext(4, " or");
|
|
221
|
+
i0.ɵɵelement(5, "br");
|
|
222
|
+
i0.ɵɵtext(6);
|
|
190
223
|
i0.ɵɵelementEnd();
|
|
191
224
|
} if (rf & 2) {
|
|
192
225
|
const ctx_r21 = i0.ɵɵnextContext(2);
|
|
226
|
+
i0.ɵɵadvance(1);
|
|
227
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "mfa.good.for.time"), "");
|
|
193
228
|
i0.ɵɵadvance(5);
|
|
194
229
|
i0.ɵɵtextInterpolate1(" If your ", ctx_r21.option.value == "text" ? "cellphone number" : "email address", " has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm. ");
|
|
195
230
|
} }
|
|
196
|
-
function
|
|
231
|
+
function MfaComponent_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
197
232
|
const _r35 = i0.ɵɵgetCurrentView();
|
|
198
233
|
i0.ɵɵelementStart(0, "div", 6)(1, "div", 11)(2, "ion-label");
|
|
199
|
-
i0.ɵɵtemplate(3,
|
|
234
|
+
i0.ɵɵtemplate(3, MfaComponent_div_5_span_3_Template, 6, 6, "span", 12)(4, MfaComponent_div_5_span_4_Template, 6, 6, "span", 12)(5, MfaComponent_div_5_span_5_Template, 6, 6, "span", 12);
|
|
200
235
|
i0.ɵɵelementEnd();
|
|
201
236
|
i0.ɵɵelement(6, "br")(7, "br");
|
|
202
|
-
i0.ɵɵtemplate(8,
|
|
237
|
+
i0.ɵɵtemplate(8, MfaComponent_div_5_ion_label_8_Template, 3, 3, "ion-label", 12)(9, MfaComponent_div_5_span_9_Template, 3, 0, "span", 12);
|
|
203
238
|
i0.ɵɵelementStart(10, "div", 8);
|
|
204
|
-
i0.ɵɵtemplate(11,
|
|
239
|
+
i0.ɵɵtemplate(11, MfaComponent_div_5_label_11_Template, 3, 3, "label", 13);
|
|
205
240
|
i0.ɵɵelement(12, "br");
|
|
206
|
-
i0.ɵɵtemplate(13,
|
|
241
|
+
i0.ɵɵtemplate(13, MfaComponent_div_5_label_13_Template, 3, 3, "label", 13);
|
|
207
242
|
i0.ɵɵelement(14, "br");
|
|
208
243
|
i0.ɵɵelementStart(15, "p-inputNumber", 14, 15);
|
|
209
|
-
i0.ɵɵlistener("click", function
|
|
244
|
+
i0.ɵɵlistener("click", function MfaComponent_div_5_Template_p_inputNumber_click_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.hideOptValidator = false); })("keyup", function MfaComponent_div_5_Template_p_inputNumber_keyup_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r36.hideOptValidator = false); })("keyup.enter", function MfaComponent_div_5_Template_p_inputNumber_keyup_enter_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r37 = i0.ɵɵnextContext(); return i0.ɵɵresetView(!ctx_r37.requestCode && ctx_r37.option.value ? ctx_r37.signIn() : ctx_r37.submit()); });
|
|
210
245
|
i0.ɵɵelementEnd();
|
|
211
|
-
i0.ɵɵtemplate(17,
|
|
246
|
+
i0.ɵɵtemplate(17, MfaComponent_div_5_app_error_17_Template, 1, 7, "app-error", 16);
|
|
212
247
|
i0.ɵɵelementEnd();
|
|
213
|
-
i0.ɵɵtemplate(18,
|
|
248
|
+
i0.ɵɵtemplate(18, MfaComponent_div_5_ion_item_18_Template, 5, 3, "ion-item", 17);
|
|
214
249
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵtemplate(19,
|
|
250
|
+
i0.ɵɵtemplate(19, MfaComponent_div_5_mat_error_19_Template, 4, 1, "mat-error", 12)(20, MfaComponent_div_5_ion_label_20_Template, 4, 1, "ion-label", 18)(21, MfaComponent_div_5_ion_label_21_Template, 4, 3, "ion-label", 12)(22, MfaComponent_div_5_p_22_Template, 3, 1, "p", 12)(23, MfaComponent_div_5_p_23_Template, 7, 4, "p", 12);
|
|
216
251
|
i0.ɵɵelementEnd();
|
|
217
252
|
} if (rf & 2) {
|
|
218
253
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -247,42 +282,53 @@ function MfaComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
247
282
|
i0.ɵɵadvance(1);
|
|
248
283
|
i0.ɵɵproperty("ngIf", ctx_r2.showHelp && !ctx_r2.returningUser);
|
|
249
284
|
} }
|
|
250
|
-
function
|
|
285
|
+
function MfaComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
251
286
|
i0.ɵɵelementStart(0, "div", 26);
|
|
252
287
|
i0.ɵɵelement(1, "ion-spinner", 27);
|
|
253
288
|
i0.ɵɵelementEnd();
|
|
254
289
|
} }
|
|
255
|
-
function
|
|
290
|
+
function MfaComponent_div_8_ion_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
256
291
|
const _r41 = i0.ɵɵgetCurrentView();
|
|
257
292
|
i0.ɵɵelementStart(0, "ion-button", 31);
|
|
258
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
259
|
-
i0.ɵɵtext(1
|
|
293
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_8_ion_button_4_Template_ion_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r40.signIn()); })("click", function MfaComponent_div_8_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r42.signIn()); });
|
|
294
|
+
i0.ɵɵtext(1);
|
|
295
|
+
i0.ɵɵpipe(2, "translate");
|
|
260
296
|
i0.ɵɵelementEnd();
|
|
297
|
+
} if (rf & 2) {
|
|
298
|
+
i0.ɵɵadvance(1);
|
|
299
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "common.submit"), " ");
|
|
261
300
|
} }
|
|
262
|
-
function
|
|
301
|
+
function MfaComponent_div_8_ion_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
263
302
|
const _r44 = i0.ɵɵgetCurrentView();
|
|
264
303
|
i0.ɵɵelementStart(0, "ion-button", 31);
|
|
265
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
266
|
-
i0.ɵɵtext(1
|
|
304
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_8_ion_button_5_Template_ion_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r43.submit()); })("click", function MfaComponent_div_8_ion_button_5_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r45 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r45.submit()); });
|
|
305
|
+
i0.ɵɵtext(1);
|
|
306
|
+
i0.ɵɵpipe(2, "translate");
|
|
267
307
|
i0.ɵɵelementEnd();
|
|
308
|
+
} if (rf & 2) {
|
|
309
|
+
i0.ɵɵadvance(1);
|
|
310
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "common.submit"), " ");
|
|
268
311
|
} }
|
|
269
|
-
function
|
|
312
|
+
function MfaComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
270
313
|
const _r47 = i0.ɵɵgetCurrentView();
|
|
271
314
|
i0.ɵɵelementStart(0, "div", 28)(1, "ion-button", 29);
|
|
272
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
273
|
-
i0.ɵɵtext(2
|
|
315
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_8_Template_ion_button_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r47); const ctx_r46 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r46.close(false)); })("click", function MfaComponent_div_8_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r47); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.close(false)); });
|
|
316
|
+
i0.ɵɵtext(2);
|
|
317
|
+
i0.ɵɵpipe(3, "translate");
|
|
274
318
|
i0.ɵɵelementEnd();
|
|
275
|
-
i0.ɵɵtemplate(
|
|
319
|
+
i0.ɵɵtemplate(4, MfaComponent_div_8_ion_button_4_Template, 3, 3, "ion-button", 30)(5, MfaComponent_div_8_ion_button_5_Template, 3, 3, "ion-button", 30);
|
|
276
320
|
i0.ɵɵelementEnd();
|
|
277
321
|
} if (rf & 2) {
|
|
278
322
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
279
|
-
i0.ɵɵadvance(
|
|
323
|
+
i0.ɵɵadvance(2);
|
|
324
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, "common.close"), " ");
|
|
325
|
+
i0.ɵɵadvance(2);
|
|
280
326
|
i0.ɵɵproperty("ngIf", !ctx_r4.requestCode && ctx_r4.option.value);
|
|
281
327
|
i0.ɵɵadvance(1);
|
|
282
328
|
i0.ɵɵproperty("ngIf", ctx_r4.requestCode && ctx_r4.option.value);
|
|
283
329
|
} }
|
|
284
330
|
export class MfaComponent {
|
|
285
|
-
constructor(ls, fb, util, nav, cs, ss, router) {
|
|
331
|
+
constructor(ls, fb, util, nav, cs, ss, router, translateService) {
|
|
286
332
|
this.ls = ls;
|
|
287
333
|
this.fb = fb;
|
|
288
334
|
this.util = util;
|
|
@@ -290,6 +336,7 @@ export class MfaComponent {
|
|
|
290
336
|
this.cs = cs;
|
|
291
337
|
this.ss = ss;
|
|
292
338
|
this.router = router;
|
|
339
|
+
this.translateService = translateService;
|
|
293
340
|
this.RESEND_CODE_ACTION_NAME = "MFA_RESEND_CODE";
|
|
294
341
|
this.isChecked = false;
|
|
295
342
|
this.showHelp = false;
|
|
@@ -308,6 +355,7 @@ export class MfaComponent {
|
|
|
308
355
|
{ value: 'text', text: 'text' },
|
|
309
356
|
{ value: 'email', text: 'email' }
|
|
310
357
|
];
|
|
358
|
+
this.translateService.use(localStorage.getItem("language"));
|
|
311
359
|
}
|
|
312
360
|
ngOnChanges(changes) {
|
|
313
361
|
if (changes.mfaError?.currentValue) {
|
|
@@ -324,6 +372,7 @@ export class MfaComponent {
|
|
|
324
372
|
}
|
|
325
373
|
}
|
|
326
374
|
ngOnInit() {
|
|
375
|
+
this.translateService.use(localStorage.getItem("language"));
|
|
327
376
|
this.initilizeForm();
|
|
328
377
|
//this.setCountdown();
|
|
329
378
|
if (this.requestCode) {
|
|
@@ -439,6 +488,15 @@ export class MfaComponent {
|
|
|
439
488
|
sendOtp(event) {
|
|
440
489
|
this.resendAuthCode(event.value);
|
|
441
490
|
}
|
|
491
|
+
get AccessVerify() {
|
|
492
|
+
return this.translateService.instant('mfa.access.verify.six');
|
|
493
|
+
}
|
|
494
|
+
get AccessRequired() {
|
|
495
|
+
return this.translateService.instant('mfa.access.required');
|
|
496
|
+
}
|
|
497
|
+
get AccessConfirm() {
|
|
498
|
+
return this.translateService.instant('mfa.access.confirm');
|
|
499
|
+
}
|
|
442
500
|
resendAuthCode(otpType) {
|
|
443
501
|
this.successDtls = null;
|
|
444
502
|
this.errorDtls = null;
|
|
@@ -454,26 +512,25 @@ export class MfaComponent {
|
|
|
454
512
|
this.errorDtls = err.msg;
|
|
455
513
|
});
|
|
456
514
|
}
|
|
457
|
-
static { this.ɵfac = function MfaComponent_Factory(t) { return new (t || MfaComponent)(i0.ɵɵdirectiveInject(i1.LoginService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.CaptchaService), i0.ɵɵdirectiveInject(i6.SecurityService), i0.ɵɵdirectiveInject(i7.Router)); }; }
|
|
515
|
+
static { this.ɵfac = function MfaComponent_Factory(t) { return new (t || MfaComponent)(i0.ɵɵdirectiveInject(i1.LoginService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.CaptchaService), i0.ɵɵdirectiveInject(i6.SecurityService), i0.ɵɵdirectiveInject(i7.Router), i0.ɵɵdirectiveInject(i8.TranslateService)); }; }
|
|
458
516
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MfaComponent, selectors: [["app-mfa"]], viewQuery: function MfaComponent_Query(rf, ctx) { if (rf & 1) {
|
|
459
517
|
i0.ɵɵviewQuery(_c0, 5);
|
|
460
518
|
} if (rf & 2) {
|
|
461
519
|
let _t;
|
|
462
520
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.otpField = _t.first);
|
|
463
|
-
} }, inputs: { user: "user", heading: "heading", requestCode: "requestCode", data: "data", mfaError: "mfaError", hideButtons: "hideButtons", returningUser: "returningUser", display: "display" }, outputs: { clear: "clear", success: "success", error: "error" }, features: [i0.ɵɵNgOnChangesFeature], decls:
|
|
521
|
+
} }, inputs: { user: "user", heading: "heading", requestCode: "requestCode", data: "data", mfaError: "mfaError", hideButtons: "hideButtons", returningUser: "returningUser", display: "display" }, outputs: { clear: "clear", success: "success", error: "error" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 6, consts: [[3, "formGroup"], ["otpFormDirective", "ngForm"], [1, "heading", 2, "padding-left", "10px"], ["style", "padding-left: 10px;", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-text-right ion-padding-bottom", 4, "ngIf"], [2, "padding-left", "10px"], [1, "ion-padding-top", "p-formgrid", "p-grid"], [1, "field", "ion-text-left"], ["for", "otpType"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "onChange"], [1, "ion-padding-top"], [4, "ngIf"], ["for", "authCode", 4, "ngIf"], ["formControlName", "otp", "maxlength", "6", "minlength", "6", "mode", "decimal", "size", "6", "autocomplete", "off", 3, "useGrouping", "inputId", "click", "keyup", "keyup.enter"], ["otpField", ""], [3, "field", "form", "errDef", 4, "ngIf"], ["lines", "none", 4, "ngIf"], ["style", "color: var(--ion-color-green)", 4, "ngIf"], ["for", "authCode"], [3, "field", "form", "errDef"], ["lines", "none"], ["slot", "start", "formControlName", "checked"], [1, "ion-text-wrap"], [2, "color", "var(--ion-color-green)"], ["tabindex", "0", 1, "link", 3, "keyup.enter", "click"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-text-right", "ion-padding-bottom"], ["tabindex", "0", "shape", "round", "type", "reset", "color", "success", "fill", "outline", 3, "keyup.enter", "click"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "keyup.enter", "click", 4, "ngIf"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "keyup.enter", "click"]], template: function MfaComponent_Template(rf, ctx) { if (rf & 1) {
|
|
464
522
|
i0.ɵɵelementStart(0, "form", 0, 1)(2, "h4", 2);
|
|
465
523
|
i0.ɵɵtext(3);
|
|
466
|
-
i0.ɵɵpipe(4, "translate");
|
|
467
524
|
i0.ɵɵelementEnd();
|
|
468
|
-
i0.ɵɵtemplate(
|
|
469
|
-
i0.ɵɵelementStart(
|
|
470
|
-
i0.ɵɵtemplate(
|
|
525
|
+
i0.ɵɵtemplate(4, MfaComponent_div_4_Template, 7, 5, "div", 3)(5, MfaComponent_div_5_Template, 24, 16, "div", 3);
|
|
526
|
+
i0.ɵɵelementStart(6, "p-footer");
|
|
527
|
+
i0.ɵɵtemplate(7, MfaComponent_div_7_Template, 2, 0, "div", 4)(8, MfaComponent_div_8_Template, 6, 5, "div", 5);
|
|
471
528
|
i0.ɵɵelementEnd()();
|
|
472
529
|
} if (rf & 2) {
|
|
473
530
|
i0.ɵɵproperty("formGroup", ctx.otpForm);
|
|
474
531
|
i0.ɵɵadvance(3);
|
|
475
|
-
i0.ɵɵtextInterpolate(ctx.heading ? ctx.heading :
|
|
476
|
-
i0.ɵɵadvance(
|
|
532
|
+
i0.ɵɵtextInterpolate(ctx.heading ? ctx.heading : ctx.AccessConfirm);
|
|
533
|
+
i0.ɵɵadvance(1);
|
|
477
534
|
i0.ɵɵproperty("ngIf", !ctx.option.value && !ctx.returningUser);
|
|
478
535
|
i0.ɵɵadvance(1);
|
|
479
536
|
i0.ɵɵproperty("ngIf", ctx.option.value);
|
|
@@ -481,12 +538,12 @@ export class MfaComponent {
|
|
|
481
538
|
i0.ɵɵproperty("ngIf", ctx.blocked);
|
|
482
539
|
i0.ɵɵadvance(1);
|
|
483
540
|
i0.ɵɵproperty("ngIf", !ctx.blocked && !ctx.hideButtons);
|
|
484
|
-
} }, dependencies: [i4.IonButton, i4.IonCheckbox, i4.IonItem, i4.IonLabel, i4.IonSpinner, i4.BooleanValueAccessor,
|
|
541
|
+
} }, dependencies: [i4.IonButton, i4.IonCheckbox, i4.IonItem, i4.IonLabel, i4.IonSpinner, i4.BooleanValueAccessor, i9.NgIf, i10.Footer, i11.MatError, i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i2.FormControlName, i12.SelectButton, i13.InputNumber, i14.ErrorComponent, i8.TranslatePipe, i15.MaskEmailPipe], styles: ["[_nghost-%COMP%] .panel{box-shadow:none!important}"] }); }
|
|
485
542
|
}
|
|
486
543
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MfaComponent, [{
|
|
487
544
|
type: Component,
|
|
488
|
-
args: [{ selector: 'app-mfa', template: "<form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <h4 style=\"padding-left: 10px;\" class=\"heading\">{{ heading ? heading :
|
|
489
|
-
}], () => [{ type: i1.LoginService }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.CaptchaService }, { type: i6.SecurityService }, { type: i7.Router }], { otpField: [{
|
|
545
|
+
args: [{ selector: 'app-mfa', template: "<form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <h4 style=\"padding-left: 10px;\" class=\"heading\">{{ heading ? heading : AccessConfirm}}</h4>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"!option.value && !returningUser\">\r\n <div class=\"ion-padding-top p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\">\r\n <label for=\"otpType\">{{'mfa.how.send'|translate}}</label>\r\n <p-selectButton [options]=\"options\" optionLabel=\"text\" optionValue=\"value\" [formControl]=\"option\" (onChange)=\"sendOtp($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"option.value\">\r\n <div class=\"ion-padding-top\">\r\n <ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\">{{'mfa.code.sent.email'|translate}}: <b>{{user?.emailId | maskEmail}}</b></span>\r\n <span *ngIf=\"option.value == 'text' && !returningUser\">{{'mfa.code.sent.cell'|translate}} <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n <span *ngIf=\"returningUser\">{{'mfa.code.sent.cell'|translate}} <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n </ion-label><br/><br/>\r\n <ion-label *ngIf=\"option.value == 'email' && !returningUser\">\r\n {{'mfa.code.sent.junk'|translate}}\r\n </ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\"><br/><br/></span>\r\n <div class=\"field ion-text-left\">\r\n <label for=\"authCode\" *ngIf=\"!returningUser\">{{'mfa.enter.code'|translate}}</label><br/>\r\n <label for=\"authCode\" *ngIf=\"returningUser\">{{'mfa.enter.code.received'|translate}}</label><br/>\r\n <p-inputNumber (click)=\"hideOptValidator=false\" (keyup)=\"hideOptValidator=false\" #otpField formControlName=\"otp\" maxlength=\"6\" minlength=\"6\" mode=\"decimal\" [useGrouping]=\"false\" size=\"6\" [inputId]=\"'authCode'\" autocomplete=\"off\" (keyup.enter)=\"(!requestCode && option.value) ? signIn() : submit()\">\r\n </p-inputNumber>\r\n <app-error *ngIf=\"!hideOptValidator\" [field]='otp' [form]=\"otpForm\" [errDef]=\"{ \r\n required: AccessRequired,\r\n min: AccessVerify,\r\n max: AccessVerify\r\n }\"></app-error>\r\n </div>\r\n <ion-item lines=\"none\" *ngIf=\"false\">\r\n <ion-checkbox slot=\"start\" formControlName=\"checked\"></ion-checkbox>\r\n <ion-label class=\"ion-text-wrap\">{{'mfa.browser.trust'|translate}}</ion-label>\r\n </ion-item>\r\n </div>\r\n \r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br /><br /></mat-error>\r\n <ion-label *ngIf=\"successDtls\" style=\"color: var(--ion-color-green)\">{{successDtls}}<br/><br /></ion-label>\r\n <ion-label *ngIf=\"!blocked\">\r\n <span *ngIf=\"counter.getValue() != 1 && !returningUser\">\r\n {{'mfa.code.not.received'|translate}} <b>{{counter.getValue()}} second(s)</b>.\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && !returningUser\">\r\n <a tabindex=\"0\" (keyup.enter)=\"resendAuthCode(option.value)\" (click)=\"resendAuthCode(option.value)\" class=\"link\">{{'mfa.get.new.code'|translate}}</a>\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && returningUser\">\r\n <a tabindex=\"0\" (keyup.enter)=\"resendAuthCode(option.value)\" (click)=\"resendAuthCode(option.value)\" class=\"link\"> {{'mfa.resend.verification.code'|translate}}</a>\r\n </span>\r\n </ion-label>\r\n <p *ngIf=\"!returningUser\"><a tabindex=\"0\" class=\"link\" (keyup.enter)=\"showHelp = !showHelp; $event.preventDefault()\" (click)=\"showHelp = !showHelp; $event.preventDefault()\">Can't get to your {{option.value == 'text' ? 'cellphone' : 'email'}}?</a></p>\r\n <!-- <p *ngIf=\"returningUser\"><a tabindex=\"0\" class=\"link\" (keyup.enter)=\"close()\" (click)=\"close()\">Unable to verify</a></p> -->\r\n <p *ngIf=\"showHelp && !returningUser\">\r\n {{'mfa.good.for.time'|translate}}<br/>\r\n or<br/>\r\n If your {{option.value == 'text' ? 'cellphone number' : 'email address'}} has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm.\r\n </p>\r\n </div>\r\n\r\n <p-footer>\r\n <div *ngIf=\"blocked\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div class=\"ion-text-right ion-padding-bottom\" *ngIf=\"!blocked && !hideButtons\">\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"reset\" (keyup.enter)=\"close(false)\" (click)=\"close(false)\" color=\"success\" fill=\"outline\">\r\n {{'common.close'|translate}}\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (keyup.enter)=\"signIn()\" (click)=\"signIn()\" color=\"success\" *ngIf=\"!requestCode && option.value\">\r\n {{'common.submit'|translate}}\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (keyup.enter)=\"submit()\" (click)=\"submit()\" color=\"success\" *ngIf=\"requestCode && option.value\">\r\n {{'common.submit'|translate}}\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</form>", styles: [":host ::ng-deep .panel{box-shadow:none!important}\n"] }]
|
|
546
|
+
}], () => [{ type: i1.LoginService }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.CaptchaService }, { type: i6.SecurityService }, { type: i7.Router }, { type: i8.TranslateService }], { otpField: [{
|
|
490
547
|
type: ViewChild,
|
|
491
548
|
args: ["otpField"]
|
|
492
549
|
}], user: [{
|
|
@@ -512,5 +569,5 @@ export class MfaComponent {
|
|
|
512
569
|
}], error: [{
|
|
513
570
|
type: Output
|
|
514
571
|
}] }); })();
|
|
515
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber:
|
|
516
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEcEMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQWlFOztJQUFBLGlCQUFRO0lBQzlGLDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQWlFO0lBQWpFLDZGQUFpRTtJQUN0RSxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSwwRUFBMEQ7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqQyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNsSiw0QkFBdUQ7SUFBQSxzRUFBc0Q7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFyQyxlQUFpQztJQUFqQyxnR0FBaUM7OztJQUNqSiw0QkFBNEI7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QUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7NkVBdk9VLFlBQVk7b0VBQVosWUFBWTs7Ozs7O1lDbkJ6QixrQ0FBdUQsWUFBQTtZQUNMLFlBQXFFOztZQUFBLGlCQUFLO1lBRTFILDZEQU9NLGtEQUFBO1lBb0ROLGdDQUFVO1lBQ1IsNkRBRU0sZ0RBQUE7WUFZUixpQkFBVyxFQUFBOztZQTdFUCx1Q0FBcUI7WUFDdUIsZUFBcUU7WUFBckUsd0dBQXFFO1lBRW5GLGVBQXFDO1lBQXJDLDhEQUFxQztZQVNyQyxlQUFrQjtZQUFsQix1Q0FBa0I7WUFtRDVDLGVBQWE7WUFBYixrQ0FBYTtZQUc2QixlQUE4QjtZQUE5Qix1REFBOEI7OztpRkQvQ3JFLFlBQVk7Y0FMeEIsU0FBUzsyQkFDRSxTQUFTO29OQU1JLFFBQVE7a0JBQTlCLFNBQVM7bUJBQUMsVUFBVTtZQWFyQixJQUFJO2tCQURILEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFLTixJQUFJO2tCQURILEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFHTixPQUFPO2tCQUROLEtBQUs7WUFHSSxLQUFLO2tCQUFkLE1BQU07WUFFRyxPQUFPO2tCQUFoQixNQUFNO1lBRUcsS0FBSztrQkFBZCxNQUFNOztrRkEzQ0ksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGludGVydmFsLCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN1cml0eS1zZXJ2aWNlL3NlY3VyaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWZhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZmEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvdHBGaWVsZFwiKSBvdHBGaWVsZDtcclxuICBwcml2YXRlIFJFU0VORF9DT0RFX0FDVElPTl9OQU1FID0gXCJNRkFfUkVTRU5EX0NPREVcIjtcclxuICBcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgaXNDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaGlkZU9wdFZhbGlkYXRvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICB1c2VyIDogVXNlck1vZGVsO1xyXG5cclxuICAvL0lmIHNwZWNpZmllZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQgaGVhZGluZyBvbiB0aGUgY29tcG9uZW50IHdpdGggdGhlIG9uY2Ugc3BlY2lmaWVkIGluIHRoaXMgZmllbGQuXHJcbiAgQElucHV0KCkgaGVhZGluZyA6IHN0cmluZztcclxuXHJcbiAgLy9SZXF1ZXN0IG5ldyBhdXRoY29kZSB3aGVuIGNvbXBvbmVudHMgbG9hZC5cclxuICBASW5wdXQoKVxyXG4gIHJlcXVlc3RDb2RlIDogYm9vbGVhbjtcclxuXHJcbiAgLy9QYXNzIHRoaXMgZGF0YSBhbG9uZyB3aXRoIG91dHB1dCBzbyB0aGF0IGNhbGxpbmcgY29tcG9uZW50IGNhbiB0YWtlIGNhcmUgb2YgaXQuXHJcbiAgQElucHV0KClcclxuICBkYXRhIDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1mYUVycm9yIDogRXJyb3JNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlQnV0dG9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZXR1cm5pbmdVc2VyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzcGxheSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvdHBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuXHJcbiAgcHVibGljIHRpbWUgPSA2MFxyXG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcclxuICBwdWJsaWMgdGltZXIgPSB0aW1lcig2MDAwMCk7IC8vOTBzXHJcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XHJcbiAgcHVibGljIGNvdW50ZXIgOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XHJcbiAgY291bnRlclN1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIG9wdGlvbnMgOiBDb21ib09wdGlvbltdID0gW1xyXG4gICAge3ZhbHVlIDogJ3RleHQnLCB0ZXh0IDogJ3RleHQnfSxcclxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxyXG4gIF07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIGZiIDogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGNzOiBDYXB0Y2hhU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzczogU2VjdXJpdHlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IFxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlcy5tZmFFcnJvcj8uY3VycmVudFZhbHVlKXtcclxuICAgICAgdGhpcy5lcnJvckR0bHMgPSB0aGlzLm1mYUVycm9yLm1zZztcclxuICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5kaXNwbGF5LmN1cnJlbnRWYWx1ZSkgeyAgLy8gd2luZG93IG9wZW5cclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XHJcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUZvcm0oKTtcclxuICAgIC8vdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIGlmKHRoaXMucmVxdWVzdENvZGUpe1xyXG4gICAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICAgIGlmKG1mYU9wdGlvbnMubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgLy9hbGxvdyB1c2VyIHRvIGNob29zZSBvdHAgb3B0aW9uXHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnJlcXVlc3ROZXdBdXRoQ29kZSgnZW1haWwnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RwRmllbGQuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSwgMTAwKVxyXG4gIH1cclxuXHJcbiAgcmVxdWVzdE5ld0F1dGhDb2RlKG90cFR5cGUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMubHMuZ2V0TmV3QXV0aENvZGUob3RwVHlwZSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBcIkFjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LlwiO1xyXG4gICAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRkb3duKCl7XHJcbiAgICBpZih0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24pe1xyXG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMudGltZSAtIHZhbDtcclxuICAgICAgdGhpcy5jb3VudGVyLm5leHQodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVGb3JtKCl7XHJcbiAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ290cCcgOiBbbnVsbCAsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgIFZhbGlkYXRvcnMubWluKDEwMF8wMDApLFZhbGlkYXRvcnMubWF4KDk5OV85OTkpXSldLFxyXG4gICAgICAnY2hlY2tlZCcgOiBbZmFsc2VdLFxyXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoZWNrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdjaGVja2VkJyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSh0cmlnZ2VyRXhpdEFQSSA9IHRydWUpe1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhci5lbWl0KHRyaWdnZXJFeGl0QVBJKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKXtcclxuICAgIHRoaXMuaGlkZU9wdFZhbGlkYXRvciA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5vdHBGb3JtLmludmFsaWQpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm90cEZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzLnNldEF1dGhDb2RlKHRoaXMub3RwLnZhbHVlKTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIHNpZ25Jbigpe1xyXG4gICAgdGhpcy5oaWRlT3B0VmFsaWRhdG9yID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLm90cEZvcm0uaW52YWxpZCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMub3RwRm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoIDogYW55ID0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlci51c2VybmFtZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnVzZXIucGFzc3dvcmQ7XHJcbiAgICBhdXRoLm90cCA9IHRoaXMub3RwLnZhbHVlO1xyXG4gICAgYXV0aC5pc3RydXN0ZWREZXZpY2UgPSB0aGlzLmNoZWNrZWQudmFsdWUgKyBcIlwiO1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxzLmxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJNb2RlbCA6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgICAgIHRoaXMubHMuc2V0VXNlcih1c2VyTW9kZWwpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyLm1zZ1swXS5pbmNsdWRlcyhcIkNsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGV4Y2VlZGVkXCIpKXtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZWRpcmVjdGluZyB0byBpZGVudGl0eSBwcm9vZmluZy5cIik7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0NsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGhhcyBleGNlZWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZW5kT3RwKGV2ZW50KXtcclxuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVzZW5kQXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XHJcbiAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcclxuICAgIG90cFR5cGUgPSBcIlRFWFwiOyAvL1RoaXMgaGFzIHRvIGJlIGNoYW5nZWQgaW4gdGhlIGJhY2tlbmQgb25jZSBtZmFQcmVmZXJlbmNlIGlzIHNhdmVkXHJcbiAgICB0aGlzLmxzLmdlbmVyYXRlT3RwKHRoaXMudXNlci51c2VybmFtZSwgb3RwVHlwZSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9ICdBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS4nO1xyXG4gICAgICAgIHRoaXMuY291bnRlci5uZXh0KDYwKTtcclxuICAgICAgICB0aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm90cEZvcm1cIiAjb3RwRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gIDxoNCBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj57eyBoZWFkaW5nID8gaGVhZGluZyA6ICdDb25maXJtIGFjY2VzcyB0byB5b3VyIGFjY291bnQnIHwgdHJhbnNsYXRlfX08L2g0PlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiICpuZ0lmPVwiIW9wdGlvbi52YWx1ZSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcCBwLWZvcm1ncmlkIHAtZ3JpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJvdHBUeXBlXCI+e3snSG93IHdvdWxkIHlvdSBsaWtlIHVzIHRvIHNlbmQgeW91ciBhY2Nlc3MgY29kZT8nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJvcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJvcHRpb25cIiAob25DaGFuZ2UpPVwic2VuZE90cCgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj5BbiBhY2Nlc3MgY29kZSBoYXMgYmVlbiBzZW50IHRvIHlvdXIgZW1haWwgYWRkcmVzczombmJzcDsgPGI+e3t1c2VyPy5lbWFpbElkIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICd0ZXh0JyAmJiAhcmV0dXJuaW5nVXNlclwiPkFuIGFjY2VzcyBjb2RlIGhhcyBiZWVuIHNlbnQgdG8geW91ciBjZWxscGhvbmU6Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+QW4gYWNjZXNzIGNvZGUgaGFzIGJlZW4gc2VudCB0byB5b3VyIGNlbGxwaG9uZSA6Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAgQ2hlY2sgeW91ciBqdW5rIGZvbGRlciBpZiB5b3UgZG9uJ3Qgc2VlIGl0IGluIHlvdXIgaW5ib3guXHJcbiAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+PGJyLz48YnIvPjwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cIiFyZXR1cm5pbmdVc2VyXCI+RW50ZXIgY29kZTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj5FbnRlciBWYWxpZGF0aW9uIENvZGUgUmVjZWl2ZWQgOjwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8cC1pbnB1dE51bWJlciAoY2xpY2spPVwiaGlkZU9wdFZhbGlkYXRvcj1mYWxzZVwiIChrZXl1cCk9XCJoaWRlT3B0VmFsaWRhdG9yPWZhbHNlXCIgI290cEZpZWxkIGZvcm1Db250cm9sTmFtZT1cIm90cFwiIG1heGxlbmd0aD1cIjZcIiBtaW5sZW5ndGg9XCI2XCIgbW9kZT1cImRlY2ltYWxcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBzaXplPVwiNlwiIFtpbnB1dElkXT1cIidhdXRoQ29kZSdcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoa2V5dXAuZW50ZXIpPVwiKCFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWUpID8gc2lnbkluKCkgOiBzdWJtaXQoKVwiPlxyXG4gICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8YXBwLWVycm9yICpuZ0lmPVwiIWhpZGVPcHRWYWxpZGF0b3JcIiBbZmllbGRdPSdvdHAnIFtmb3JtXT1cIm90cEZvcm1cIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICByZXF1aXJlZDogJ0FjY2VzcyBjb2RlIGlzIHJlcXVpcmVkLicsXHJcbiAgICAgICAgICBtaW46ICdBY2Nlc3MgY29kZSBzaG91bGQgaGF2ZSA2IG51bWJlcnMuJyxcclxuICAgICAgICAgIG1heDogJ0FjY2VzcyBjb2RlIHNob3VsZCBoYXZlIDYgbnVtYmVycy4nXHJcbiAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICA8aW9uLWNoZWNrYm94IHNsb3Q9XCJzdGFydFwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrZWRcIj48L2lvbi1jaGVja2JveD5cclxuICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiaW9uLXRleHQtd3JhcFwiPnt7J0kgdHJ1c3QgdGhpcyBicm93c2VyLicgfCB0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJlcnJvckR0bHNcIj57e2Vycm9yRHRsc319PGJyIC8+PGJyIC8+PC9tYXQtZXJyb3I+XHJcbiAgICA8aW9uLWxhYmVsICpuZ0lmPVwic3VjY2Vzc0R0bHNcIiBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JlZW4pXCI+e3tzdWNjZXNzRHRsc319PGJyLz48YnIgLz48L2lvbi1sYWJlbD5cclxuICAgIDxpb24tbGFiZWwgKm5nSWY9XCIhYmxvY2tlZFwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSAhPSAxICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAgSGF2ZW4ndCByZWNlaXZlZCB0aGUgY29kZT8gUmVzZW5kIG9wdGlvbiBhdmFpbGFibGUgaW4gPGI+e3tjb3VudGVyLmdldFZhbHVlKCl9fSBzZWNvbmQocyk8L2I+LlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPkdldCBuZXcgY29kZTwvYT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSA9PSAxICYmIHJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5dXAuZW50ZXIpPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIChjbGljayk9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgY2xhc3M9XCJsaW5rXCI+UmVzZW5kIFZlcmlmaWNhdGlvbiBDb2RlPC9hPlxyXG4gICAgIDwvc3Bhbj5cclxuICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgPHAgKm5nSWY9XCIhcmV0dXJuaW5nVXNlclwiPjxhIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwibGlua1wiIChrZXl1cC5lbnRlcik9XCJzaG93SGVscCA9ICFzaG93SGVscDsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoY2xpY2spPVwic2hvd0hlbHAgPSAhc2hvd0hlbHA7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+Q2FuJ3QgZ2V0IHRvIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZScgOiAnZW1haWwnfX0/PC9hPjwvcD5cclxuICAgIDwhLS0gPHAgKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+PGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJsaW5rXCIgKGtleXVwLmVudGVyKT1cImNsb3NlKClcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlVuYWJsZSB0byB2ZXJpZnk8L2E+PC9wPiAtLT5cclxuICAgIDxwICpuZ0lmPVwic2hvd0hlbHAgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgWW91ciBjb2RlIGlzIGdvb2QgZm9yIDE1IG1pbnV0ZXMuIFlvdSBjYW4gdHJ5IGFnYWluIGxhdGVyLjxici8+XHJcbiAgICAgIG9yPGJyLz5cclxuICAgICAgSWYgeW91ciB7e29wdGlvbi52YWx1ZSA9PSAndGV4dCcgPyAnY2VsbHBob25lIG51bWJlcicgOiAnZW1haWwgYWRkcmVzcyd9fSBoYXMgY2hhbmdlZCBjYWxsIEtET0wgYXQgNzg1LTU3NS0xNDYwLCBNb25kYXkgdGhyb3VnaCBGcmlkYXkgZnJvbSA4IGFtIHRvIDQ6MzAgcG0uXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxwLWZvb3Rlcj5cclxuICAgIDxkaXYgKm5nSWY9XCJibG9ja2VkXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0IGlvbi1wYWRkaW5nLWJvdHRvbVwiICpuZ0lmPVwiIWJsb2NrZWQgJiYgIWhpZGVCdXR0b25zXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwicmVzZXRcIiAoa2V5dXAuZW50ZXIpPVwiY2xvc2UoZmFsc2UpXCIgKGNsaWNrKT1cImNsb3NlKGZhbHNlKVwiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgQ2xvc2VcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAgdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoa2V5dXAuZW50ZXIpPVwic2lnbkluKClcIiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInN1Y2Nlc3NcIiAqbmdJZj1cIiFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICBTdWJtaXRcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChrZXl1cC5lbnRlcik9XCJzdWJtaXQoKVwiIChjbGljayk9XCJzdWJtaXQoKVwiIGNvbG9yPVwic3VjY2Vzc1wiICpuZ0lmPVwicmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAgU3VibWl0XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvcC1mb290ZXI+XHJcbjwvZm9ybT4iXX0=
|
|
572
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber: 21 }); })();
|
|
573
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEcEMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQTRCOztJQUFBLGlCQUFRO0lBQ3pELDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQTRCO0lBQTVCLDBEQUE0QjtJQUNqQyxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSxZQUEyQzs7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUEvRSxlQUEyQztJQUEzQyxrRkFBMkM7SUFBRyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNuSSw0QkFBdUQ7SUFBQSxZQUF5Qzs7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqRixlQUF5QztJQUF6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LENBQUMsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs2RUFwUFUsWUFBWTtvRUFBWixZQUFZOzs7Ozs7WUNwQnpCLGtDQUF1RCxZQUFBO1lBQ0wsWUFBc0M7WUFBQSxpQkFBSztZQUUzRiw2REFPTSxrREFBQTtZQW9ETixnQ0FBVTtZQUNSLDZEQUVNLGdEQUFBO1lBWVIsaUJBQVcsRUFBQTs7WUE3RVAsdUNBQXFCO1lBQ3VCLGVBQXNDO1lBQXRDLG1FQUFzQztZQUVwRCxlQUFxQztZQUFyQyw4REFBcUM7WUFTckMsZUFBa0I7WUFBbEIsdUNBQWtCO1lBbUQ1QyxlQUFhO1lBQWIsa0NBQWE7WUFHNkIsZUFBOEI7WUFBOUIsdURBQThCOzs7aUZEOUNyRSxZQUFZO2NBTHhCLFNBQVM7MkJBQ0UsU0FBUzttUEFNSSxRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFhckIsSUFBSTtrQkFESCxLQUFLO1lBSUcsT0FBTztrQkFBZixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBS04sSUFBSTtrQkFESCxLQUFLO1lBSU4sUUFBUTtrQkFEUCxLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBR04sT0FBTztrQkFETixLQUFLO1lBR0ksS0FBSztrQkFBZCxNQUFNO1lBRUcsT0FBTztrQkFBaEIsTUFBTTtZQUVHLEtBQUs7a0JBQWQsTUFBTTs7a0ZBM0NJLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFcnJvck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yTW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXB0Y2hhL2NhcHRjaGEuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdXJpdHktc2VydmljZS9zZWN1cml0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWZhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZmEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvdHBGaWVsZFwiKSBvdHBGaWVsZDtcclxuICBwcml2YXRlIFJFU0VORF9DT0RFX0FDVElPTl9OQU1FID0gXCJNRkFfUkVTRU5EX0NPREVcIjtcclxuICBcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgaXNDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaGlkZU9wdFZhbGlkYXRvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICB1c2VyIDogVXNlck1vZGVsO1xyXG5cclxuICAvL0lmIHNwZWNpZmllZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQgaGVhZGluZyBvbiB0aGUgY29tcG9uZW50IHdpdGggdGhlIG9uY2Ugc3BlY2lmaWVkIGluIHRoaXMgZmllbGQuXHJcbiAgQElucHV0KCkgaGVhZGluZyA6IHN0cmluZztcclxuXHJcbiAgLy9SZXF1ZXN0IG5ldyBhdXRoY29kZSB3aGVuIGNvbXBvbmVudHMgbG9hZC5cclxuICBASW5wdXQoKVxyXG4gIHJlcXVlc3RDb2RlIDogYm9vbGVhbjtcclxuXHJcbiAgLy9QYXNzIHRoaXMgZGF0YSBhbG9uZyB3aXRoIG91dHB1dCBzbyB0aGF0IGNhbGxpbmcgY29tcG9uZW50IGNhbiB0YWtlIGNhcmUgb2YgaXQuXHJcbiAgQElucHV0KClcclxuICBkYXRhIDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1mYUVycm9yIDogRXJyb3JNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlQnV0dG9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZXR1cm5pbmdVc2VyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzcGxheSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvdHBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuXHJcbiAgcHVibGljIHRpbWUgPSA2MFxyXG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcclxuICBwdWJsaWMgdGltZXIgPSB0aW1lcig2MDAwMCk7IC8vOTBzXHJcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XHJcbiAgcHVibGljIGNvdW50ZXIgOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XHJcbiAgY291bnRlclN1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIG9wdGlvbnMgOiBDb21ib09wdGlvbltdID0gW1xyXG4gICAge3ZhbHVlIDogJ3RleHQnLCB0ZXh0IDogJ3RleHQnfSxcclxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxyXG4gIF07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIGZiIDogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGNzOiBDYXB0Y2hhU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzczogU2VjdXJpdHlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgeyBcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzLm1mYUVycm9yPy5jdXJyZW50VmFsdWUpe1xyXG4gICAgICB0aGlzLmVycm9yRHRscyA9IHRoaXMubWZhRXJyb3IubXNnO1xyXG4gICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLmRpc3BsYXkuY3VycmVudFZhbHVlKSB7ICAvLyB3aW5kb3cgb3BlblxyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcclxuICAgICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUZvcm0oKTtcclxuICAgIC8vdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIGlmKHRoaXMucmVxdWVzdENvZGUpe1xyXG4gICAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICAgIGlmKG1mYU9wdGlvbnMubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgLy9hbGxvdyB1c2VyIHRvIGNob29zZSBvdHAgb3B0aW9uXHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnJlcXVlc3ROZXdBdXRoQ29kZSgnZW1haWwnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RwRmllbGQuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSwgMTAwKVxyXG4gIH1cclxuXHJcbiAgcmVxdWVzdE5ld0F1dGhDb2RlKG90cFR5cGUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMubHMuZ2V0TmV3QXV0aENvZGUob3RwVHlwZSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBcIkFjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LlwiO1xyXG4gICAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRkb3duKCl7XHJcbiAgICBpZih0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24pe1xyXG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMudGltZSAtIHZhbDtcclxuICAgICAgdGhpcy5jb3VudGVyLm5leHQodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVGb3JtKCl7XHJcbiAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ290cCcgOiBbbnVsbCAsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgIFZhbGlkYXRvcnMubWluKDEwMF8wMDApLFZhbGlkYXRvcnMubWF4KDk5OV85OTkpXSldLFxyXG4gICAgICAnY2hlY2tlZCcgOiBbZmFsc2VdLFxyXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoZWNrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdjaGVja2VkJyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSh0cmlnZ2VyRXhpdEFQSSA9IHRydWUpe1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhci5lbWl0KHRyaWdnZXJFeGl0QVBJKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKXtcclxuICAgIHRoaXMuaGlkZU9wdFZhbGlkYXRvciA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5vdHBGb3JtLmludmFsaWQpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm90cEZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzLnNldEF1dGhDb2RlKHRoaXMub3RwLnZhbHVlKTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIHNpZ25Jbigpe1xyXG4gICAgdGhpcy5oaWRlT3B0VmFsaWRhdG9yID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLm90cEZvcm0uaW52YWxpZCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMub3RwRm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoIDogYW55ID0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlci51c2VybmFtZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnVzZXIucGFzc3dvcmQ7XHJcbiAgICBhdXRoLm90cCA9IHRoaXMub3RwLnZhbHVlO1xyXG4gICAgYXV0aC5pc3RydXN0ZWREZXZpY2UgPSB0aGlzLmNoZWNrZWQudmFsdWUgKyBcIlwiO1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxzLmxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJNb2RlbCA6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgICAgIHRoaXMubHMuc2V0VXNlcih1c2VyTW9kZWwpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyLm1zZ1swXS5pbmNsdWRlcyhcIkNsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGV4Y2VlZGVkXCIpKXtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZWRpcmVjdGluZyB0byBpZGVudGl0eSBwcm9vZmluZy5cIik7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0NsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGhhcyBleGNlZWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZW5kT3RwKGV2ZW50KXtcclxuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEFjY2Vzc1ZlcmlmeSgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdtZmEuYWNjZXNzLnZlcmlmeS5zaXgnKTtcclxuICB9XHJcbiAgZ2V0IEFjY2Vzc1JlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ21mYS5hY2Nlc3MucmVxdWlyZWQnKTtcclxuICB9XHJcblxyXG4gIGdldCBBY2Nlc3NDb25maXJtKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ21mYS5hY2Nlc3MuY29uZmlybScpO1xyXG4gIH1cclxuICByZXNlbmRBdXRoQ29kZShvdHBUeXBlIDogc3RyaW5nKXtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgb3RwVHlwZSA9IFwiVEVYXCI7IC8vVGhpcyBoYXMgdG8gYmUgY2hhbmdlZCBpbiB0aGUgYmFja2VuZCBvbmNlIG1mYVByZWZlcmVuY2UgaXMgc2F2ZWRcclxuICAgIHRoaXMubHMuZ2VuZXJhdGVPdHAodGhpcy51c2VyLnVzZXJuYW1lLCBvdHBUeXBlKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gJ0FjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5Lic7XHJcbiAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgIHRoaXMuc2V0Q291bnRkb3duKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib3RwRm9ybVwiICNvdHBGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgPGg0IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPnt7IGhlYWRpbmcgPyBoZWFkaW5nIDogQWNjZXNzQ29uZmlybX19PC9oND5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIiFvcHRpb24udmFsdWUgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwib3RwVHlwZVwiPnt7J21mYS5ob3cuc2VuZCd8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJvcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJvcHRpb25cIiAob25DaGFuZ2UpPVwic2VuZE90cCgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmVtYWlsJ3x0cmFuc2xhdGV9fTombmJzcDsgPGI+e3t1c2VyPy5lbWFpbElkIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICd0ZXh0JyAmJiAhcmV0dXJuaW5nVXNlclwiPnt7J21mYS5jb2RlLnNlbnQuY2VsbCd8dHJhbnNsYXRlfX0mbmJzcDsgPGI+e3t1c2VyPy5jZWxscGhvbmVObyB8IG1hc2tFbWFpbH19PC9iPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmNlbGwnfHRyYW5zbGF0ZX19Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAge3snbWZhLmNvZGUuc2VudC5qdW5rJ3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udmFsdWUgPT0gJ2VtYWlsJyAmJiAhcmV0dXJuaW5nVXNlclwiPjxici8+PGJyLz48L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF1dGhDb2RlXCIgKm5nSWY9XCIhcmV0dXJuaW5nVXNlclwiPnt7J21mYS5lbnRlci5jb2RlJ3x0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj57eydtZmEuZW50ZXIuY29kZS5yZWNlaXZlZCd8dHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXIgKGNsaWNrKT1cImhpZGVPcHRWYWxpZGF0b3I9ZmFsc2VcIiAoa2V5dXApPVwiaGlkZU9wdFZhbGlkYXRvcj1mYWxzZVwiICNvdHBGaWVsZCBmb3JtQ29udHJvbE5hbWU9XCJvdHBcIiBtYXhsZW5ndGg9XCI2XCIgbWlubGVuZ3RoPVwiNlwiIG1vZGU9XCJkZWNpbWFsXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgc2l6ZT1cIjZcIiBbaW5wdXRJZF09XCInYXV0aENvZGUnXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGtleXVwLmVudGVyKT1cIighcmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlKSA/IHNpZ25JbigpIDogc3VibWl0KClcIj5cclxuICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPGFwcC1lcnJvciAqbmdJZj1cIiFoaWRlT3B0VmFsaWRhdG9yXCIgW2ZpZWxkXT0nb3RwJyBbZm9ybV09XCJvdHBGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IEFjY2Vzc1JlcXVpcmVkLFxyXG4gICAgICAgICAgbWluOiBBY2Nlc3NWZXJpZnksXHJcbiAgICAgICAgICBtYXg6IEFjY2Vzc1ZlcmlmeVxyXG4gICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgICAgPGlvbi1jaGVja2JveCBzbG90PVwic3RhcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2VkXCI+PC9pb24tY2hlY2tib3g+XHJcbiAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj57eydtZmEuYnJvd3Nlci50cnVzdCd8dHJhbnNsYXRlfX08L2lvbi1sYWJlbD5cclxuICAgICAgPC9pb24taXRlbT5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZXJyb3JEdGxzXCI+e3tlcnJvckR0bHN9fTxiciAvPjxiciAvPjwvbWF0LWVycm9yPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cInN1Y2Nlc3NEdGxzXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKVwiPnt7c3VjY2Vzc0R0bHN9fTxici8+PGJyIC8+PC9pb24tbGFiZWw+XHJcbiAgICA8aW9uLWxhYmVsICpuZ0lmPVwiIWJsb2NrZWRcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudGVyLmdldFZhbHVlKCkgIT0gMSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIHt7J21mYS5jb2RlLm5vdC5yZWNlaXZlZCd8dHJhbnNsYXRlfX0gPGI+e3tjb3VudGVyLmdldFZhbHVlKCl9fSBzZWNvbmQocyk8L2I+LlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPnt7J21mYS5nZXQubmV3LmNvZGUnfHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXl1cC5lbnRlcik9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgKGNsaWNrKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiBjbGFzcz1cImxpbmtcIj4ge3snbWZhLnJlc2VuZC52ZXJpZmljYXRpb24uY29kZSd8dHJhbnNsYXRlfX08L2E+XHJcbiAgICAgPC9zcGFuPlxyXG4gICAgPC9pb24tbGFiZWw+XHJcbiAgICA8cCAqbmdJZj1cIiFyZXR1cm5pbmdVc2VyXCI+PGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJsaW5rXCIgKGtleXVwLmVudGVyKT1cInNob3dIZWxwID0gIXNob3dIZWxwOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJzaG93SGVscCA9ICFzaG93SGVscDsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5DYW4ndCBnZXQgdG8geW91ciB7e29wdGlvbi52YWx1ZSA9PSAndGV4dCcgPyAnY2VsbHBob25lJyA6ICdlbWFpbCd9fT88L2E+PC9wPlxyXG4gICAgPCEtLSA8cCAqbmdJZj1cInJldHVybmluZ1VzZXJcIj48YSB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImxpbmtcIiAoa2V5dXAuZW50ZXIpPVwiY2xvc2UoKVwiIChjbGljayk9XCJjbG9zZSgpXCI+VW5hYmxlIHRvIHZlcmlmeTwvYT48L3A+IC0tPlxyXG4gICAgPHAgKm5nSWY9XCJzaG93SGVscCAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICB7eydtZmEuZ29vZC5mb3IudGltZSd8dHJhbnNsYXRlfX08YnIvPlxyXG4gICAgICBvcjxici8+XHJcbiAgICAgIElmIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZSBudW1iZXInIDogJ2VtYWlsIGFkZHJlc3MnfX0gaGFzIGNoYW5nZWQgY2FsbCBLRE9MIGF0IDc4NS01NzUtMTQ2MCwgTW9uZGF5IHRocm91Z2ggRnJpZGF5IGZyb20gOCBhbSB0byA0OjMwIHBtLlxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8cC1mb290ZXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tlZFwiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodCBpb24tcGFkZGluZy1ib3R0b21cIiAqbmdJZj1cIiFibG9ja2VkICYmICFoaWRlQnV0dG9uc1wiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInJlc2V0XCIgKGtleXVwLmVudGVyKT1cImNsb3NlKGZhbHNlKVwiIChjbGljayk9XCJjbG9zZShmYWxzZSlcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiPlxyXG4gICAgICAgIHt7J2NvbW1vbi5jbG9zZSd8dHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAgdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoa2V5dXAuZW50ZXIpPVwic2lnbkluKClcIiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInN1Y2Nlc3NcIiAqbmdJZj1cIiFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eydjb21tb24uc3VibWl0J3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGtleXVwLmVudGVyKT1cInN1Ym1pdCgpXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgY29sb3I9XCJzdWNjZXNzXCIgKm5nSWY9XCJyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eydjb21tb24uc3VibWl0J3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtZm9vdGVyPlxyXG48L2Zvcm0+Il19
|