@reusa/ngx-reusa-app-lib 0.0.1331 → 0.0.1332
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 +3 -1
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +278 -233
- package/esm2022/lib/components/menu/menu.component.mjs +1 -2
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +365 -358
- package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -1
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +643 -590
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts +4 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/menu/menu.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +2 -0
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +2 -0
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { ClaimAppEmpResponseModel } from '../../models/questionnaire/ClaimAppEmpResponseModel';
|
|
4
4
|
import { ClaimAppEmployerDetailsModel } from '../../models/questionnaire/ClaimAppEmployerDetailsModel';
|
|
@@ -16,25 +16,26 @@ import * as i5 from "../../services/login/login.service";
|
|
|
16
16
|
import * as i6 from "@angular/router";
|
|
17
17
|
import * as i7 from "../../services/claims/claims.service";
|
|
18
18
|
import * as i8 from "@ionic/storage-angular";
|
|
19
|
-
const _c0 =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
i0.ɵɵ
|
|
19
|
+
const _c0 = ["gridTop"];
|
|
20
|
+
const _c1 = () => ["fal", "edit"];
|
|
21
|
+
function EmployerGridComponent_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
23
|
+
i0.ɵɵelement(1, "fa-icon", 5)(2, "span", 3);
|
|
23
24
|
i0.ɵɵpipe(3, "trustHtml");
|
|
24
25
|
i0.ɵɵpipe(4, "translate");
|
|
25
26
|
i0.ɵɵtext(5, ",\u00A0 ");
|
|
26
27
|
i0.ɵɵelementEnd();
|
|
27
28
|
} if (rf & 2) {
|
|
28
29
|
i0.ɵɵadvance(1);
|
|
29
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(6,
|
|
30
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(6, _c1));
|
|
30
31
|
i0.ɵɵadvance(1);
|
|
31
32
|
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 2, i0.ɵɵpipeBind1(4, 4, "induction.employment.subheader.edit")), i0.ɵɵsanitizeHtml);
|
|
32
33
|
} }
|
|
33
|
-
function
|
|
34
|
-
i0.ɵɵelement(0, "br",
|
|
34
|
+
function EmployerGridComponent_br_25_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵelement(0, "br", 4);
|
|
35
36
|
} }
|
|
36
|
-
function
|
|
37
|
-
i0.ɵɵelementStart(0, "tr")(1, "th",
|
|
37
|
+
function EmployerGridComponent_p_table_30_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵelementStart(0, "tr")(1, "th", 17);
|
|
38
39
|
i0.ɵɵtext(2);
|
|
39
40
|
i0.ɵɵpipe(3, "translate");
|
|
40
41
|
i0.ɵɵelementEnd();
|
|
@@ -67,73 +68,79 @@ function EmployerGridComponent_p_table_29_ng_template_2_Template(rf, ctx) { if (
|
|
|
67
68
|
i0.ɵɵadvance(3);
|
|
68
69
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(16, 13, "induction.employment.table.sep.reason"), " ");
|
|
69
70
|
} }
|
|
70
|
-
function
|
|
71
|
-
i0.ɵɵelementStart(0, "td",
|
|
71
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_1_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
|
|
72
73
|
i0.ɵɵtext(2, "Employer");
|
|
73
74
|
i0.ɵɵelementEnd();
|
|
74
|
-
i0.ɵɵelementStart(3, "span",
|
|
75
|
+
i0.ɵɵelementStart(3, "span", 33);
|
|
75
76
|
i0.ɵɵtext(4);
|
|
76
77
|
i0.ɵɵelement(5, "br");
|
|
77
78
|
i0.ɵɵelementEnd()();
|
|
78
79
|
} if (rf & 2) {
|
|
79
|
-
const
|
|
80
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
81
|
+
i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
|
|
80
82
|
i0.ɵɵadvance(4);
|
|
81
|
-
i0.ɵɵtextInterpolate2(" ",
|
|
83
|
+
i0.ɵɵtextInterpolate2(" ", employer_r11.employerData.displayName, " - ", employer_r11.employerData.displayState.text, "");
|
|
82
84
|
} }
|
|
83
|
-
function
|
|
84
|
-
i0.ɵɵelementStart(0, "td",
|
|
85
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_td_0_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
|
|
85
87
|
i0.ɵɵtext(2, "Employer");
|
|
86
88
|
i0.ɵɵelementEnd();
|
|
87
|
-
i0.ɵɵelementStart(3, "span",
|
|
89
|
+
i0.ɵɵelementStart(3, "span", 33);
|
|
88
90
|
i0.ɵɵtext(4);
|
|
89
91
|
i0.ɵɵelement(5, "br");
|
|
90
92
|
i0.ɵɵelementEnd()();
|
|
91
93
|
} if (rf & 2) {
|
|
92
|
-
const
|
|
94
|
+
const employer_r11 = i0.ɵɵnextContext(3).$implicit;
|
|
95
|
+
i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
|
|
93
96
|
i0.ɵɵadvance(4);
|
|
94
|
-
i0.ɵɵtextInterpolate2(" ",
|
|
97
|
+
i0.ɵɵtextInterpolate2(" ", employer_r11.employerData.displayName, " - ", employer_r11.workState.text, "");
|
|
95
98
|
} }
|
|
96
|
-
function
|
|
97
|
-
i0.ɵɵtemplate(0,
|
|
99
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵtemplate(0, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_td_0_Template, 6, 4, "td", 20);
|
|
98
101
|
} if (rf & 2) {
|
|
99
102
|
i0.ɵɵnextContext();
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
i0.ɵɵproperty("ngIf",
|
|
103
|
+
const _r18 = i0.ɵɵreference(5);
|
|
104
|
+
const employer_r11 = i0.ɵɵnextContext().$implicit;
|
|
105
|
+
i0.ɵɵproperty("ngIf", employer_r11.osaBpEmployerFlag === "1" && employer_r11.employerType === "REG" && employer_r11.workState != null)("ngIfElse", _r18);
|
|
103
106
|
} }
|
|
104
|
-
function
|
|
105
|
-
i0.ɵɵelementStart(0, "td",
|
|
107
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
|
|
106
109
|
i0.ɵɵtext(2, "Employer");
|
|
107
110
|
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵelementStart(3, "span",
|
|
111
|
+
i0.ɵɵelementStart(3, "span", 33);
|
|
109
112
|
i0.ɵɵtext(4);
|
|
110
113
|
i0.ɵɵelement(5, "br");
|
|
111
114
|
i0.ɵɵelementEnd();
|
|
112
|
-
i0.ɵɵelement(6, "div",
|
|
115
|
+
i0.ɵɵelement(6, "div", 34);
|
|
113
116
|
i0.ɵɵpipe(7, "trustHtml");
|
|
114
117
|
i0.ɵɵelementEnd();
|
|
115
118
|
} if (rf & 2) {
|
|
116
|
-
const
|
|
119
|
+
const employer_r11 = i0.ɵɵnextContext(3).$implicit;
|
|
120
|
+
i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
|
|
117
121
|
i0.ɵɵadvance(4);
|
|
118
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
122
|
+
i0.ɵɵtextInterpolate1(" ", employer_r11.employerData.displayName, " ");
|
|
119
123
|
i0.ɵɵadvance(2);
|
|
120
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(7,
|
|
124
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(7, 4, employer_r11.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
|
|
121
125
|
} }
|
|
122
|
-
function
|
|
123
|
-
i0.ɵɵtemplate(0,
|
|
126
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
i0.ɵɵtemplate(0, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_td_0_Template, 8, 6, "td", 23);
|
|
124
128
|
} if (rf & 2) {
|
|
125
|
-
const
|
|
126
|
-
i0.ɵɵproperty("ngIf",
|
|
129
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
130
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerData.displayName && employer_r11.employerType != "MIL");
|
|
127
131
|
} }
|
|
128
|
-
function
|
|
129
|
-
i0.ɵɵelementStart(0, "td",
|
|
132
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_6_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
+
i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
|
|
130
134
|
i0.ɵɵtext(2, "Employer");
|
|
131
135
|
i0.ɵɵelementEnd();
|
|
132
136
|
i0.ɵɵelement(3, "span");
|
|
133
137
|
i0.ɵɵelementEnd();
|
|
138
|
+
} if (rf & 2) {
|
|
139
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
140
|
+
i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
|
|
134
141
|
} }
|
|
135
|
-
function
|
|
136
|
-
i0.ɵɵelementStart(0, "td",
|
|
142
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_7_Template(rf, ctx) { if (rf & 1) {
|
|
143
|
+
i0.ɵɵelementStart(0, "td", 17)(1, "span", 32);
|
|
137
144
|
i0.ɵɵtext(2, "Employer");
|
|
138
145
|
i0.ɵɵelementEnd();
|
|
139
146
|
i0.ɵɵelementStart(3, "span");
|
|
@@ -141,126 +148,133 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_7_Template(rf, c
|
|
|
141
148
|
i0.ɵɵelement(5, "br");
|
|
142
149
|
i0.ɵɵelementEnd()();
|
|
143
150
|
} if (rf & 2) {
|
|
144
|
-
const
|
|
151
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
152
|
+
i0.ɵɵstyleProp("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "#eb445a" : "");
|
|
145
153
|
i0.ɵɵadvance(4);
|
|
146
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
147
|
-
} }
|
|
148
|
-
function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_9_Template(rf, ctx) { if (rf & 1) {
|
|
149
|
-
const _r46 = i0.ɵɵgetCurrentView();
|
|
150
|
-
i0.ɵɵelementStart(0, "ion-button", 34);
|
|
151
|
-
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const employer_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r44 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r44.editBasePeriodEmployer(employer_r10)); });
|
|
152
|
-
i0.ɵɵelement(1, "fa-icon", 35);
|
|
153
|
-
i0.ɵɵelementEnd();
|
|
154
|
-
} if (rf & 2) {
|
|
155
|
-
i0.ɵɵadvance(1);
|
|
156
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1, _c0));
|
|
154
|
+
i0.ɵɵtextInterpolate1(" ", employer_r11.serviceBranch.text, " ");
|
|
157
155
|
} }
|
|
158
|
-
function
|
|
159
|
-
const
|
|
160
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
161
|
-
i0.ɵɵlistener("click", function
|
|
162
|
-
i0.ɵɵelement(1, "fa-icon",
|
|
156
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_9_Template(rf, ctx) { if (rf & 1) {
|
|
157
|
+
const _r48 = i0.ɵɵgetCurrentView();
|
|
158
|
+
i0.ɵɵelementStart(0, "ion-button", 35);
|
|
159
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_9_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const employer_r11 = i0.ɵɵnextContext(2).$implicit; const ctx_r46 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r46.editBasePeriodEmployer(employer_r11)); });
|
|
160
|
+
i0.ɵɵelement(1, "fa-icon", 36);
|
|
163
161
|
i0.ɵɵelementEnd();
|
|
164
162
|
} if (rf & 2) {
|
|
163
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
164
|
+
i0.ɵɵproperty("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "danger" : "success");
|
|
165
165
|
i0.ɵɵadvance(1);
|
|
166
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(
|
|
166
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c1));
|
|
167
167
|
} }
|
|
168
|
-
|
|
169
|
-
function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_11_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_10_Template(rf, ctx) { if (rf & 1) {
|
|
170
169
|
const _r52 = i0.ɵɵgetCurrentView();
|
|
171
170
|
i0.ɵɵelementStart(0, "ion-button", 37);
|
|
172
|
-
i0.ɵɵlistener("click", function
|
|
173
|
-
i0.ɵɵelement(1, "fa-icon",
|
|
171
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_10_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r52); const employer_r11 = i0.ɵɵnextContext(2).$implicit; const ctx_r50 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r50.editEmployer(employer_r11)); });
|
|
172
|
+
i0.ɵɵelement(1, "fa-icon", 36);
|
|
174
173
|
i0.ɵɵelementEnd();
|
|
175
174
|
} if (rf & 2) {
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
i0.ɵɵproperty("id", "btnConfirmEmployer-" + rowIndex_r11);
|
|
175
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
176
|
+
i0.ɵɵproperty("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "danger" : "success");
|
|
179
177
|
i0.ɵɵadvance(1);
|
|
180
|
-
i0.ɵɵproperty("icon",
|
|
178
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c1));
|
|
181
179
|
} }
|
|
182
|
-
const _c2 = () => ["fal", "
|
|
183
|
-
function
|
|
180
|
+
const _c2 = () => ["fal", "check-circle"];
|
|
181
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_11_Template(rf, ctx) { if (rf & 1) {
|
|
184
182
|
const _r56 = i0.ɵɵgetCurrentView();
|
|
185
183
|
i0.ɵɵelementStart(0, "ion-button", 38);
|
|
186
|
-
i0.ɵɵlistener("click", function
|
|
187
|
-
i0.ɵɵelement(1, "fa-icon",
|
|
184
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_11_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r56); const employer_r11 = i0.ɵɵnextContext(2).$implicit; const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.finish(employer_r11)); });
|
|
185
|
+
i0.ɵɵelement(1, "fa-icon", 36);
|
|
188
186
|
i0.ɵɵelementEnd();
|
|
189
187
|
} if (rf & 2) {
|
|
190
|
-
const
|
|
191
|
-
|
|
188
|
+
const ctx_r57 = i0.ɵɵnextContext(2);
|
|
189
|
+
const rowIndex_r12 = ctx_r57.rowIndex;
|
|
190
|
+
const employer_r11 = ctx_r57.$implicit;
|
|
191
|
+
const ctx_r23 = i0.ɵɵnextContext(2);
|
|
192
|
+
i0.ɵɵproperty("id", "btnConfirmEmployer-" + rowIndex_r12)("color", !employer_r11.isEmployerEdited && employer_r11.isEmployerGridSubmitted ? "danger" : "success");
|
|
192
193
|
i0.ɵɵadvance(1);
|
|
193
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(
|
|
194
|
+
i0.ɵɵproperty("icon", ctx_r23.util.isState("MS") ? i0.ɵɵpureFunction0(3, _c1) : i0.ɵɵpureFunction0(4, _c2));
|
|
194
195
|
} }
|
|
195
|
-
|
|
196
|
+
const _c3 = () => ["fal", "trash-alt"];
|
|
197
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_12_Template(rf, ctx) { if (rf & 1) {
|
|
196
198
|
const _r60 = i0.ɵɵgetCurrentView();
|
|
197
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
198
|
-
i0.ɵɵlistener("click", function
|
|
199
|
-
i0.ɵɵelement(1, "fa-icon",
|
|
199
|
+
i0.ɵɵelementStart(0, "ion-button", 39);
|
|
200
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_12_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r60); const rowIndex_r12 = i0.ɵɵnextContext(2).rowIndex; const ctx_r58 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r58.deleteEmployer(rowIndex_r12)); });
|
|
201
|
+
i0.ɵɵelement(1, "fa-icon", 36);
|
|
200
202
|
i0.ɵɵelementEnd();
|
|
201
203
|
} if (rf & 2) {
|
|
202
|
-
const
|
|
203
|
-
i0.ɵɵproperty("id", "
|
|
204
|
+
const rowIndex_r12 = i0.ɵɵnextContext(2).rowIndex;
|
|
205
|
+
i0.ɵɵproperty("id", "btnDeleteEmployer-" + rowIndex_r12);
|
|
204
206
|
i0.ɵɵadvance(1);
|
|
205
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2,
|
|
207
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c3));
|
|
206
208
|
} }
|
|
207
|
-
|
|
208
|
-
function EmployerGridComponent_p_table_29_ng_template_3_tr_0_ion_button_14_Template(rf, ctx) { if (rf & 1) {
|
|
209
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_13_Template(rf, ctx) { if (rf & 1) {
|
|
209
210
|
const _r64 = i0.ɵɵgetCurrentView();
|
|
210
211
|
i0.ɵɵelementStart(0, "ion-button", 39);
|
|
211
|
-
i0.ɵɵlistener("click", function
|
|
212
|
-
i0.ɵɵelement(1, "fa-icon",
|
|
212
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_13_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(2); const employer_r11 = ctx_r63.$implicit; const rowIndex_r12 = ctx_r63.rowIndex; const ctx_r62 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r62.removeEmployment(employer_r11, rowIndex_r12)); });
|
|
213
|
+
i0.ɵɵelement(1, "fa-icon", 36);
|
|
214
|
+
i0.ɵɵelementEnd();
|
|
215
|
+
} if (rf & 2) {
|
|
216
|
+
const rowIndex_r12 = i0.ɵɵnextContext(2).rowIndex;
|
|
217
|
+
i0.ɵɵproperty("id", "btnRemoveEmployer-" + rowIndex_r12);
|
|
218
|
+
i0.ɵɵadvance(1);
|
|
219
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c3));
|
|
220
|
+
} }
|
|
221
|
+
const _c4 = () => ["fal", "trash-restore-alt"];
|
|
222
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_14_Template(rf, ctx) { if (rf & 1) {
|
|
223
|
+
const _r68 = i0.ɵɵgetCurrentView();
|
|
224
|
+
i0.ɵɵelementStart(0, "ion-button", 40);
|
|
225
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_14_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r68); const ctx_r67 = i0.ɵɵnextContext(2); const employer_r11 = ctx_r67.$implicit; const rowIndex_r12 = ctx_r67.rowIndex; const ctx_r66 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r66.restoreEmployment(employer_r11, rowIndex_r12)); });
|
|
226
|
+
i0.ɵɵelement(1, "fa-icon", 36);
|
|
213
227
|
i0.ɵɵelementEnd();
|
|
214
228
|
} if (rf & 2) {
|
|
215
229
|
i0.ɵɵadvance(1);
|
|
216
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1,
|
|
230
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(1, _c4));
|
|
217
231
|
} }
|
|
218
|
-
function
|
|
219
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
232
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_15_Template(rf, ctx) { if (rf & 1) {
|
|
233
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
220
234
|
i0.ɵɵtext(2, "Job Title");
|
|
221
235
|
i0.ɵɵelementEnd();
|
|
222
236
|
i0.ɵɵtext(3);
|
|
223
237
|
i0.ɵɵelementEnd();
|
|
224
238
|
} if (rf & 2) {
|
|
225
|
-
const
|
|
239
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
226
240
|
i0.ɵɵadvance(3);
|
|
227
|
-
i0.ɵɵtextInterpolate(
|
|
241
|
+
i0.ɵɵtextInterpolate(employer_r11.jobTileOrPosition);
|
|
228
242
|
} }
|
|
229
|
-
function
|
|
230
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
243
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_16_Template(rf, ctx) { if (rf & 1) {
|
|
244
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
231
245
|
i0.ɵɵtext(2, "Job Title");
|
|
232
246
|
i0.ɵɵelementEnd();
|
|
233
247
|
i0.ɵɵtext(3);
|
|
234
248
|
i0.ɵɵelementEnd();
|
|
235
249
|
} if (rf & 2) {
|
|
236
|
-
const
|
|
250
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
237
251
|
i0.ɵɵadvance(3);
|
|
238
|
-
i0.ɵɵtextInterpolate(
|
|
252
|
+
i0.ɵɵtextInterpolate(employer_r11.fedJobTileOrPosition);
|
|
239
253
|
} }
|
|
240
|
-
function
|
|
241
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
254
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_17_Template(rf, ctx) { if (rf & 1) {
|
|
255
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
242
256
|
i0.ɵɵtext(2, "Job Title");
|
|
243
257
|
i0.ɵɵelementEnd()();
|
|
244
258
|
} }
|
|
245
|
-
function
|
|
246
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
259
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_18_Template(rf, ctx) { if (rf & 1) {
|
|
260
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
247
261
|
i0.ɵɵtext(2, "Pay");
|
|
248
262
|
i0.ɵɵelementEnd();
|
|
249
263
|
i0.ɵɵtext(3);
|
|
250
264
|
i0.ɵɵpipe(4, "currency");
|
|
251
265
|
i0.ɵɵelementEnd();
|
|
252
266
|
} if (rf & 2) {
|
|
253
|
-
const
|
|
267
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
254
268
|
i0.ɵɵadvance(3);
|
|
255
|
-
i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(4, 2,
|
|
269
|
+
i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(4, 2, employer_r11.payRate), "/", employer_r11.payRateFrequency.text, "");
|
|
256
270
|
} }
|
|
257
|
-
function
|
|
258
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
271
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_19_Template(rf, ctx) { if (rf & 1) {
|
|
272
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
259
273
|
i0.ɵɵtext(2, "Pay");
|
|
260
274
|
i0.ɵɵelementEnd()();
|
|
261
275
|
} }
|
|
262
|
-
function
|
|
263
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
276
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_20_Template(rf, ctx) { if (rf & 1) {
|
|
277
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
264
278
|
i0.ɵɵtext(2, "Start and End");
|
|
265
279
|
i0.ɵɵelementEnd();
|
|
266
280
|
i0.ɵɵtext(3);
|
|
@@ -268,12 +282,12 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_20_Template(rf,
|
|
|
268
282
|
i0.ɵɵpipe(5, "date");
|
|
269
283
|
i0.ɵɵelementEnd();
|
|
270
284
|
} if (rf & 2) {
|
|
271
|
-
const
|
|
285
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
272
286
|
i0.ɵɵadvance(3);
|
|
273
|
-
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2,
|
|
287
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r11.startDate, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r11.endDate, "M/d/yyyy"), " ");
|
|
274
288
|
} }
|
|
275
|
-
function
|
|
276
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
289
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_21_Template(rf, ctx) { if (rf & 1) {
|
|
290
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
277
291
|
i0.ɵɵtext(2, "Start and End");
|
|
278
292
|
i0.ɵɵelementEnd();
|
|
279
293
|
i0.ɵɵtext(3);
|
|
@@ -281,12 +295,12 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_21_Template(rf,
|
|
|
281
295
|
i0.ɵɵpipe(5, "date");
|
|
282
296
|
i0.ɵɵelementEnd();
|
|
283
297
|
} if (rf & 2) {
|
|
284
|
-
const
|
|
298
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
285
299
|
i0.ɵɵadvance(3);
|
|
286
|
-
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2,
|
|
300
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r11.startDateFed, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r11.endDateFed, "M/d/yyyy"), " ");
|
|
287
301
|
} }
|
|
288
|
-
function
|
|
289
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
302
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_22_Template(rf, ctx) { if (rf & 1) {
|
|
303
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
290
304
|
i0.ɵɵtext(2, "Start and End");
|
|
291
305
|
i0.ɵɵelementEnd();
|
|
292
306
|
i0.ɵɵtext(3);
|
|
@@ -294,97 +308,97 @@ function EmployerGridComponent_p_table_29_ng_template_3_tr_0_td_22_Template(rf,
|
|
|
294
308
|
i0.ɵɵpipe(5, "date");
|
|
295
309
|
i0.ɵɵelementEnd();
|
|
296
310
|
} if (rf & 2) {
|
|
297
|
-
const
|
|
311
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
298
312
|
i0.ɵɵadvance(3);
|
|
299
|
-
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2,
|
|
313
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind2(4, 2, employer_r11.startDateMil, "M/d/yyyy"), " - ", i0.ɵɵpipeBind2(5, 5, employer_r11.endDateMil, "M/d/yyyy"), " ");
|
|
300
314
|
} }
|
|
301
|
-
function
|
|
302
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
315
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_23_Template(rf, ctx) { if (rf & 1) {
|
|
316
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
303
317
|
i0.ɵɵtext(2, "Separation Reason");
|
|
304
318
|
i0.ɵɵelementEnd();
|
|
305
319
|
i0.ɵɵtext(3);
|
|
306
320
|
i0.ɵɵelementEnd();
|
|
307
321
|
} if (rf & 2) {
|
|
308
|
-
const
|
|
322
|
+
const employer_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
309
323
|
i0.ɵɵadvance(3);
|
|
310
|
-
i0.ɵɵtextInterpolate1("",
|
|
324
|
+
i0.ɵɵtextInterpolate1("", employer_r11.reasonSeparation.text, " ");
|
|
311
325
|
} }
|
|
312
|
-
function
|
|
313
|
-
i0.ɵɵelementStart(0, "td")(1, "span",
|
|
326
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_24_Template(rf, ctx) { if (rf & 1) {
|
|
327
|
+
i0.ɵɵelementStart(0, "td")(1, "span", 32);
|
|
314
328
|
i0.ɵɵtext(2, "Separation Reason");
|
|
315
329
|
i0.ɵɵelementEnd()();
|
|
316
330
|
} }
|
|
317
|
-
function
|
|
318
|
-
i0.ɵɵelementStart(0, "tr",
|
|
319
|
-
i0.ɵɵtemplate(1,
|
|
320
|
-
i0.ɵɵelementStart(8, "td",
|
|
321
|
-
i0.ɵɵtemplate(9,
|
|
331
|
+
function EmployerGridComponent_p_table_30_ng_template_3_tr_0_Template(rf, ctx) { if (rf & 1) {
|
|
332
|
+
i0.ɵɵelementStart(0, "tr", 19);
|
|
333
|
+
i0.ɵɵtemplate(1, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_1_Template, 6, 4, "td", 20)(2, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_2_Template, 1, 2, "ng-template", null, 21, i0.ɵɵtemplateRefExtractor)(4, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ng_template_4_Template, 1, 1, "ng-template", null, 22, i0.ɵɵtemplateRefExtractor)(6, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_6_Template, 4, 2, "td", 23)(7, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_7_Template, 6, 3, "td", 23);
|
|
334
|
+
i0.ɵɵelementStart(8, "td", 24);
|
|
335
|
+
i0.ɵɵtemplate(9, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_9_Template, 2, 3, "ion-button", 25)(10, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_10_Template, 2, 3, "ion-button", 26)(11, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_11_Template, 2, 5, "ion-button", 27)(12, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_12_Template, 2, 3, "ion-button", 28)(13, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_13_Template, 2, 3, "ion-button", 28)(14, EmployerGridComponent_p_table_30_ng_template_3_tr_0_ion_button_14_Template, 2, 2, "ion-button", 29);
|
|
322
336
|
i0.ɵɵelementEnd();
|
|
323
|
-
i0.ɵɵtemplate(15,
|
|
324
|
-
i0.ɵɵelement(25, "td",
|
|
337
|
+
i0.ɵɵtemplate(15, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_15_Template, 4, 1, "td", 30)(16, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_16_Template, 4, 1, "td", 30)(17, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_17_Template, 3, 0, "td", 30)(18, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_18_Template, 5, 4, "td", 30)(19, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_19_Template, 3, 0, "td", 30)(20, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_20_Template, 6, 8, "td", 30)(21, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_21_Template, 6, 8, "td", 30)(22, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_22_Template, 6, 8, "td", 30)(23, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_23_Template, 4, 1, "td", 30)(24, EmployerGridComponent_p_table_30_ng_template_3_tr_0_td_24_Template, 3, 0, "td", 30);
|
|
338
|
+
i0.ɵɵelement(25, "td", 31);
|
|
325
339
|
i0.ɵɵelementEnd();
|
|
326
340
|
} if (rf & 2) {
|
|
327
|
-
const
|
|
328
|
-
const
|
|
329
|
-
i0.ɵɵproperty("ngClass",
|
|
341
|
+
const _r16 = i0.ɵɵreference(3);
|
|
342
|
+
const employer_r11 = i0.ɵɵnextContext().$implicit;
|
|
343
|
+
i0.ɵɵproperty("ngClass", employer_r11.empDeleted == "Y" ? "strikethrough" : null);
|
|
330
344
|
i0.ɵɵadvance(1);
|
|
331
|
-
i0.ɵɵproperty("ngIf",
|
|
345
|
+
i0.ɵɵproperty("ngIf", employer_r11.osaBpEmployerFlag === "1" && employer_r11.employerType === "REG" && employer_r11.employerData.displayState != null)("ngIfElse", _r16);
|
|
332
346
|
i0.ɵɵadvance(5);
|
|
333
|
-
i0.ɵɵproperty("ngIf", !
|
|
347
|
+
i0.ɵɵproperty("ngIf", !employer_r11.employerData.displayName && employer_r11.employerType != "MIL");
|
|
334
348
|
i0.ɵɵadvance(1);
|
|
335
|
-
i0.ɵɵproperty("ngIf",
|
|
349
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType === "MIL");
|
|
336
350
|
i0.ɵɵadvance(2);
|
|
337
|
-
i0.ɵɵproperty("ngIf",
|
|
351
|
+
i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && employer_r11.payRate && employer_r11.startDate && employer_r11.empDeleted != "Y");
|
|
338
352
|
i0.ɵɵadvance(1);
|
|
339
|
-
i0.ɵɵproperty("ngIf",
|
|
353
|
+
i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "0");
|
|
340
354
|
i0.ɵɵadvance(1);
|
|
341
|
-
i0.ɵɵproperty("ngIf",
|
|
355
|
+
i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && !employer_r11.payRate && !employer_r11.startDate && employer_r11.empDeleted != "Y");
|
|
342
356
|
i0.ɵɵadvance(1);
|
|
343
|
-
i0.ɵɵproperty("ngIf",
|
|
357
|
+
i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "0");
|
|
344
358
|
i0.ɵɵadvance(1);
|
|
345
|
-
i0.ɵɵproperty("ngIf",
|
|
359
|
+
i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && employer_r11.empDeleted != "Y");
|
|
346
360
|
i0.ɵɵadvance(1);
|
|
347
|
-
i0.ɵɵproperty("ngIf",
|
|
361
|
+
i0.ɵɵproperty("ngIf", employer_r11.bpEmployerFlag === "1" && employer_r11.empDeleted == "Y");
|
|
348
362
|
i0.ɵɵadvance(1);
|
|
349
|
-
i0.ɵɵproperty("ngIf",
|
|
363
|
+
i0.ɵɵproperty("ngIf", employer_r11.jobTileOrPosition && !employer_r11.fedJobTileOrPosition);
|
|
350
364
|
i0.ɵɵadvance(1);
|
|
351
|
-
i0.ɵɵproperty("ngIf",
|
|
365
|
+
i0.ɵɵproperty("ngIf", employer_r11.fedJobTileOrPosition && !employer_r11.jobTileOrPosition);
|
|
352
366
|
i0.ɵɵadvance(1);
|
|
353
|
-
i0.ɵɵproperty("ngIf",
|
|
367
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType == "MIL");
|
|
354
368
|
i0.ɵɵadvance(1);
|
|
355
|
-
i0.ɵɵproperty("ngIf",
|
|
369
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType != "MIL" && employer_r11.payRate && employer_r11.payRateFrequency);
|
|
356
370
|
i0.ɵɵadvance(1);
|
|
357
|
-
i0.ɵɵproperty("ngIf",
|
|
371
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType == "MIL");
|
|
358
372
|
i0.ɵɵadvance(1);
|
|
359
|
-
i0.ɵɵproperty("ngIf",
|
|
373
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType === "REG" && employer_r11.startDate && employer_r11.endDate);
|
|
360
374
|
i0.ɵɵadvance(1);
|
|
361
|
-
i0.ɵɵproperty("ngIf",
|
|
375
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType === "FED" && employer_r11.startDateFed && employer_r11.endDateFed);
|
|
362
376
|
i0.ɵɵadvance(1);
|
|
363
|
-
i0.ɵɵproperty("ngIf",
|
|
377
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType === "MIL" && employer_r11.startDateMil && employer_r11.endDateMil);
|
|
364
378
|
i0.ɵɵadvance(1);
|
|
365
|
-
i0.ɵɵproperty("ngIf",
|
|
379
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType != "MIL" && employer_r11.reasonSeparation);
|
|
366
380
|
i0.ɵɵadvance(1);
|
|
367
|
-
i0.ɵɵproperty("ngIf",
|
|
381
|
+
i0.ɵɵproperty("ngIf", employer_r11.employerType === "MIL");
|
|
368
382
|
} }
|
|
369
|
-
function
|
|
370
|
-
i0.ɵɵtemplate(0,
|
|
383
|
+
function EmployerGridComponent_p_table_30_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
384
|
+
i0.ɵɵtemplate(0, EmployerGridComponent_p_table_30_ng_template_3_tr_0_Template, 26, 21, "tr", 18);
|
|
371
385
|
} if (rf & 2) {
|
|
372
|
-
const
|
|
373
|
-
i0.ɵɵproperty("ngIf",
|
|
374
|
-
} }
|
|
375
|
-
const
|
|
376
|
-
function
|
|
377
|
-
const
|
|
378
|
-
i0.ɵɵelementStart(0, "table")(1, "tr")(2, "td",
|
|
379
|
-
i0.ɵɵelement(3, "div",
|
|
386
|
+
const employer_r11 = ctx.$implicit;
|
|
387
|
+
i0.ɵɵproperty("ngIf", employer_r11.displaySeasonalEmp === true);
|
|
388
|
+
} }
|
|
389
|
+
const _c5 = () => ["fal", "plus"];
|
|
390
|
+
function EmployerGridComponent_p_table_30_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
391
|
+
const _r79 = i0.ɵɵgetCurrentView();
|
|
392
|
+
i0.ɵɵelementStart(0, "table")(1, "tr")(2, "td", 41);
|
|
393
|
+
i0.ɵɵelement(3, "div", 3);
|
|
380
394
|
i0.ɵɵpipe(4, "trustHtml");
|
|
381
395
|
i0.ɵɵpipe(5, "translate");
|
|
382
396
|
i0.ɵɵelementEnd();
|
|
383
|
-
i0.ɵɵelementStart(6, "td",
|
|
384
|
-
i0.ɵɵlistener("click", function
|
|
385
|
-
i0.ɵɵelement(8, "fa-icon",
|
|
397
|
+
i0.ɵɵelementStart(6, "td", 42)(7, "ion-button", 43);
|
|
398
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_table_30_ng_template_4_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r79); const ctx_r78 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r78.addNewEmpDetails()); });
|
|
399
|
+
i0.ɵɵelement(8, "fa-icon", 36);
|
|
386
400
|
i0.ɵɵelementEnd()();
|
|
387
|
-
i0.ɵɵelementStart(9, "td",
|
|
401
|
+
i0.ɵɵelementStart(9, "td", 31);
|
|
388
402
|
i0.ɵɵtext(10, "\u00A0");
|
|
389
403
|
i0.ɵɵelementEnd()()();
|
|
390
404
|
} if (rf & 2) {
|
|
@@ -395,44 +409,44 @@ function EmployerGridComponent_p_table_29_ng_template_4_Template(rf, ctx) { if (
|
|
|
395
409
|
i0.ɵɵadvance(4);
|
|
396
410
|
i0.ɵɵproperty("id", "btnAddEmployer");
|
|
397
411
|
i0.ɵɵadvance(1);
|
|
398
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(8,
|
|
412
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(8, _c5));
|
|
399
413
|
} }
|
|
400
|
-
function
|
|
401
|
-
i0.ɵɵelementStart(0, "p-table",
|
|
402
|
-
i0.ɵɵtemplate(2,
|
|
414
|
+
function EmployerGridComponent_p_table_30_Template(rf, ctx) { if (rf & 1) {
|
|
415
|
+
i0.ɵɵelementStart(0, "p-table", 12, 13);
|
|
416
|
+
i0.ɵɵtemplate(2, EmployerGridComponent_p_table_30_ng_template_2_Template, 17, 15, "ng-template", 14)(3, EmployerGridComponent_p_table_30_ng_template_3_Template, 1, 1, "ng-template", 15)(4, EmployerGridComponent_p_table_30_ng_template_4_Template, 11, 9, "ng-template", 16);
|
|
403
417
|
i0.ɵɵelementEnd();
|
|
404
418
|
} if (rf & 2) {
|
|
405
|
-
const
|
|
406
|
-
i0.ɵɵproperty("columns",
|
|
419
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
420
|
+
i0.ɵɵproperty("columns", ctx_r3.cols)("value", ctx_r3.claimAppEmpResponseModelFromService.bpEmpList)("loading", ctx_r3.showProgressBar)("rowHover", true);
|
|
407
421
|
} }
|
|
408
|
-
function
|
|
409
|
-
const
|
|
410
|
-
i0.ɵɵelementStart(0, "app-add-employer",
|
|
411
|
-
i0.ɵɵlistener("success", function
|
|
422
|
+
function EmployerGridComponent_app_add_employer_31_Template(rf, ctx) { if (rf & 1) {
|
|
423
|
+
const _r81 = i0.ɵɵgetCurrentView();
|
|
424
|
+
i0.ɵɵelementStart(0, "app-add-employer", 44);
|
|
425
|
+
i0.ɵɵlistener("success", function EmployerGridComponent_app_add_employer_31_Template_app_add_employer_success_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r80 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r80.addEmployer($event)); })("basePeriodIndex", function EmployerGridComponent_app_add_employer_31_Template_app_add_employer_basePeriodIndex_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r82 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r82.deleteBpEmpl($event)); })("modelCancel", function EmployerGridComponent_app_add_employer_31_Template_app_add_employer_modelCancel_0_listener($event) { i0.ɵɵrestoreView(_r81); const ctx_r83 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r83.onModelCancel($event)); });
|
|
412
426
|
i0.ɵɵelementEnd();
|
|
413
427
|
} if (rf & 2) {
|
|
414
|
-
const
|
|
415
|
-
i0.ɵɵproperty("recordIndexToEdit",
|
|
428
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
429
|
+
i0.ɵɵproperty("recordIndexToEdit", ctx_r4.indexToEdit)("isBasePeriodEmployer", ctx_r4.isBasePeriodEmployer)("isNewClaim", ctx_r4.isNewClaim)("dob", ctx_r4.claimantDob);
|
|
416
430
|
} }
|
|
417
|
-
function
|
|
431
|
+
function EmployerGridComponent_p_dialog_32_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
418
432
|
i0.ɵɵelementStart(0, "div");
|
|
419
433
|
i0.ɵɵtext(1);
|
|
420
434
|
i0.ɵɵpipe(2, "translate");
|
|
421
435
|
i0.ɵɵelementEnd();
|
|
422
436
|
} if (rf & 2) {
|
|
423
|
-
const
|
|
437
|
+
const ctx_r84 = i0.ɵɵnextContext(2);
|
|
424
438
|
i0.ɵɵadvance(1);
|
|
425
|
-
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(2, 2, "induction.confirm.employment.dba"), " ",
|
|
439
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(2, 2, "induction.confirm.employment.dba"), " ", ctx_r84.selectedEmployer.employerData.tradeName, "");
|
|
426
440
|
} }
|
|
427
|
-
function
|
|
428
|
-
const
|
|
429
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
430
|
-
i0.ɵɵlistener("click", function
|
|
441
|
+
function EmployerGridComponent_p_dialog_32_ng_template_20_Template(rf, ctx) { if (rf & 1) {
|
|
442
|
+
const _r87 = i0.ɵɵgetCurrentView();
|
|
443
|
+
i0.ɵɵelementStart(0, "ion-button", 49);
|
|
444
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_32_ng_template_20_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r87); const ctx_r86 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r86.close()); });
|
|
431
445
|
i0.ɵɵtext(1);
|
|
432
446
|
i0.ɵɵpipe(2, "translate");
|
|
433
447
|
i0.ɵɵelementEnd();
|
|
434
|
-
i0.ɵɵelementStart(3, "ion-button",
|
|
435
|
-
i0.ɵɵlistener("click", function
|
|
448
|
+
i0.ɵɵelementStart(3, "ion-button", 50);
|
|
449
|
+
i0.ɵɵlistener("click", function EmployerGridComponent_p_dialog_32_ng_template_20_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r87); const ctx_r88 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r88.removeBasePeriodEmployer()); });
|
|
436
450
|
i0.ɵɵtext(4);
|
|
437
451
|
i0.ɵɵpipe(5, "translate");
|
|
438
452
|
i0.ɵɵelementEnd();
|
|
@@ -442,21 +456,21 @@ function EmployerGridComponent_p_dialog_31_ng_template_20_Template(rf, ctx) { if
|
|
|
442
456
|
i0.ɵɵadvance(3);
|
|
443
457
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, "induction.employment.grid.popup.remove"), " ");
|
|
444
458
|
} }
|
|
445
|
-
const
|
|
446
|
-
const
|
|
447
|
-
const
|
|
448
|
-
function
|
|
449
|
-
i0.ɵɵelementStart(0, "p-dialog",
|
|
459
|
+
const _c6 = () => ({ width: "45vw" });
|
|
460
|
+
const _c7 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
|
|
461
|
+
const _c8 = a0 => [a0];
|
|
462
|
+
function EmployerGridComponent_p_dialog_32_Template(rf, ctx) { if (rf & 1) {
|
|
463
|
+
i0.ɵɵelementStart(0, "p-dialog", 45)(1, "h4", 46);
|
|
450
464
|
i0.ɵɵtext(2);
|
|
451
465
|
i0.ɵɵpipe(3, "translate");
|
|
452
466
|
i0.ɵɵelementEnd();
|
|
453
467
|
i0.ɵɵelementStart(4, "ion-label");
|
|
454
468
|
i0.ɵɵtext(5);
|
|
455
|
-
i0.ɵɵtemplate(6,
|
|
469
|
+
i0.ɵɵtemplate(6, EmployerGridComponent_p_dialog_32_div_6_Template, 3, 4, "div", 30);
|
|
456
470
|
i0.ɵɵelement(7, "br");
|
|
457
471
|
i0.ɵɵelementEnd();
|
|
458
472
|
i0.ɵɵelementStart(8, "ion-label");
|
|
459
|
-
i0.ɵɵelement(9, "div",
|
|
473
|
+
i0.ɵɵelement(9, "div", 47);
|
|
460
474
|
i0.ɵɵpipe(10, "trustHtml");
|
|
461
475
|
i0.ɵɵelementEnd();
|
|
462
476
|
i0.ɵɵelement(11, "br");
|
|
@@ -466,27 +480,27 @@ function EmployerGridComponent_p_dialog_31_Template(rf, ctx) { if (rf & 1) {
|
|
|
466
480
|
i0.ɵɵelementEnd();
|
|
467
481
|
i0.ɵɵelement(15, "br")(16, "br");
|
|
468
482
|
i0.ɵɵelementStart(17, "ion-label");
|
|
469
|
-
i0.ɵɵelement(18, "div",
|
|
483
|
+
i0.ɵɵelement(18, "div", 3);
|
|
470
484
|
i0.ɵɵpipe(19, "translate");
|
|
471
485
|
i0.ɵɵelementEnd();
|
|
472
|
-
i0.ɵɵtemplate(20,
|
|
486
|
+
i0.ɵɵtemplate(20, EmployerGridComponent_p_dialog_32_ng_template_20_Template, 6, 6, "ng-template", 48);
|
|
473
487
|
i0.ɵɵelementEnd();
|
|
474
488
|
} if (rf & 2) {
|
|
475
|
-
const
|
|
476
|
-
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(22,
|
|
477
|
-
i0.ɵɵproperty("visible",
|
|
489
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
490
|
+
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(22, _c6));
|
|
491
|
+
i0.ɵɵproperty("visible", ctx_r5.showConfirmPopup)("modal", true)("breakpoints", i0.ɵɵpureFunction0(23, _c7))("baseZIndex", 5000)("draggable", false)("resizable", false);
|
|
478
492
|
i0.ɵɵadvance(2);
|
|
479
493
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 14, "induction.employment.grid.popup.heading"));
|
|
480
494
|
i0.ɵɵadvance(3);
|
|
481
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
495
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r5.selectedEmployer.employerData.displayName, " ");
|
|
482
496
|
i0.ɵɵadvance(1);
|
|
483
|
-
i0.ɵɵproperty("ngIf",
|
|
497
|
+
i0.ɵɵproperty("ngIf", ctx_r5.selectedEmployer.employerData.tradeName != null);
|
|
484
498
|
i0.ɵɵadvance(3);
|
|
485
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(10, 16,
|
|
499
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(10, 16, ctx_r5.selectedEmployer.employerData.mailingAddressDisplay), i0.ɵɵsanitizeHtml);
|
|
486
500
|
i0.ɵɵadvance(4);
|
|
487
501
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 18, "induction.employment.grid.popup.failure.label"), " ");
|
|
488
502
|
i0.ɵɵadvance(5);
|
|
489
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpureFunction1(24,
|
|
503
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpureFunction1(24, _c8, i0.ɵɵpipeBind1(19, 20, "induction.employment.grid.popup.didnt.work.label")), i0.ɵɵsanitizeHtml);
|
|
490
504
|
} }
|
|
491
505
|
export class EmployerGridComponent {
|
|
492
506
|
constructor(popup, logger, validationService, navController, util, ls, activatedRoute, claimsService, storage) {
|
|
@@ -517,6 +531,7 @@ export class EmployerGridComponent {
|
|
|
517
531
|
this.workCountryOptions = ComboOption.WORK_COUNTRY;
|
|
518
532
|
this.statesOptions = ComboOption.US_STATES;
|
|
519
533
|
this.militaryServiceOptions = ComboOption.MILITARY_SERVICE;
|
|
534
|
+
this.count = 0;
|
|
520
535
|
this.onChange = (value) => {
|
|
521
536
|
};
|
|
522
537
|
this.onTouch = () => {
|
|
@@ -826,57 +841,84 @@ export class EmployerGridComponent {
|
|
|
826
841
|
let workState = this.statesOptions.filter(s => s.value == emp.workState?.value?.trim());
|
|
827
842
|
emp.workState = workState[0];
|
|
828
843
|
}
|
|
844
|
+
submit() {
|
|
845
|
+
this.claimAppEmpResponseModelFromService.bpEmpList.forEach(e => {
|
|
846
|
+
if (!e.isEmployerEdited) {
|
|
847
|
+
e.isEmployerGridSubmitted = true;
|
|
848
|
+
this.count = this.count + 1;
|
|
849
|
+
if (this.count <= this.claimAppEmpResponseModelFromService.bpEmpList.length) {
|
|
850
|
+
const ctrl = this.form?.get('prevwork');
|
|
851
|
+
if (!ctrl)
|
|
852
|
+
return;
|
|
853
|
+
const hasError = !!ctrl.errors?.bpEmplrFlag && (ctrl.touched || ctrl.dirty);
|
|
854
|
+
if (hasError) {
|
|
855
|
+
setTimeout(() => {
|
|
856
|
+
this.gridTop?.nativeElement?.scrollIntoView({
|
|
857
|
+
behavior: 'smooth',
|
|
858
|
+
block: 'center',
|
|
859
|
+
});
|
|
860
|
+
}, 100);
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
});
|
|
865
|
+
}
|
|
829
866
|
static { this.ɵfac = function EmployerGridComponent_Factory(t) { return new (t || EmployerGridComponent)(i0.ɵɵdirectiveInject(i1.PopoverController), i0.ɵɵdirectiveInject(i2.LoggerService), i0.ɵɵdirectiveInject(i3.ValidationService), i0.ɵɵdirectiveInject(i1.NavController), i0.ɵɵdirectiveInject(i4.UtilService), i0.ɵɵdirectiveInject(i5.LoginService), i0.ɵɵdirectiveInject(i6.ActivatedRoute), i0.ɵɵdirectiveInject(i7.ClaimService), i0.ɵɵdirectiveInject(i8.Storage)); }; }
|
|
830
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmployerGridComponent, selectors: [["app-employer-grid"]],
|
|
867
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EmployerGridComponent, selectors: [["app-employer-grid"]], viewQuery: function EmployerGridComponent_Query(rf, ctx) { if (rf & 1) {
|
|
868
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
869
|
+
} if (rf & 2) {
|
|
870
|
+
let _t;
|
|
871
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gridTop = _t.first);
|
|
872
|
+
} }, inputs: { form: "form", dynamicParam: "dynamicParam" }, outputs: { modelDisplay: "modelDisplay", onComplete: "onComplete" }, features: [i0.ɵɵProvidersFeature([{
|
|
831
873
|
provide: NG_VALUE_ACCESSOR,
|
|
832
874
|
useExisting: EmployerGridComponent,
|
|
833
875
|
multi: true
|
|
834
|
-
}])], decls:
|
|
835
|
-
i0.ɵɵelementStart(0, "div", 0)(
|
|
836
|
-
i0.ɵɵelement(
|
|
837
|
-
i0.ɵɵpipe(
|
|
838
|
-
i0.ɵɵpipe(
|
|
839
|
-
i0.ɵɵpipe(
|
|
840
|
-
i0.ɵɵpipe(
|
|
841
|
-
i0.ɵɵtext(
|
|
842
|
-
i0.ɵɵelement(
|
|
843
|
-
i0.ɵɵpipe(
|
|
844
|
-
i0.ɵɵpipe(
|
|
845
|
-
i0.ɵɵtext(
|
|
846
|
-
i0.ɵɵelement(
|
|
847
|
-
i0.ɵɵpipe(
|
|
848
|
-
i0.ɵɵpipe(
|
|
849
|
-
i0.ɵɵtext(
|
|
850
|
-
i0.ɵɵelement(
|
|
851
|
-
i0.ɵɵtemplate(
|
|
852
|
-
i0.ɵɵelement(
|
|
853
|
-
i0.ɵɵpipe(
|
|
854
|
-
i0.ɵɵpipe(
|
|
876
|
+
}])], decls: 33, vars: 39, consts: [[2, "margin-left", "-5px", 3, "formGroup"], ["gridTop", ""], [3, "icon"], [3, "innerHtml"], [1, "mobile-action-view"], [1, "action-icon", "font-bold", 3, "icon"], ["style", "display: inline-block;", 4, "ngIf"], ["class", "mobile-action-view", 4, "ngIf"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover", 4, "ngIf"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "success", "basePeriodIndex", "modelCancel", 4, "ngIf"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", 4, "ngIf"], [2, "display", "inline-block"], ["styleClass", "p-datatable-striped app-datatable ion-padding-top", 3, "columns", "value", "loading", "rowHover"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "summary"], ["colspan", "2", 1, "dataHeadings", 2, "width", "20%"], ["class", "ui-selectable-row", 3, "ngClass", 4, "ngIf"], [1, "ui-selectable-row", 3, "ngClass"], ["colspan", "2", "class", "dataHeadings", "style", "width:20%;", 3, "Color", 4, "ngIf", "ngIfElse"], ["workState", ""], ["notOsaBpAndRegEmployer", ""], ["colspan", "2", "class", "dataHeadings", "style", "width:20%;", 3, "Color", 4, "ngIf"], [2, "text-align", "center"], ["size", "small", "fill", "outline", "class", "action-button", "aria-label", "Add employer", 3, "color", "click", 4, "ngIf"], ["size", "small", "fill", "outline", "class", "action-button", "aria-label", "Edit employer", 3, "color", "click", 4, "ngIf"], ["size", "small", "fill", "outline", "class", "action-button", "aria-label", "Confirm employer", 3, "id", "color", "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Remove employer", "style", "padding-left: 5px;", 3, "id", "click", 4, "ngIf"], ["size", "small", "color", "success", "fill", "outline", "class", "action-button", "aria-label", "Restore", 3, "click", 4, "ngIf"], [4, "ngIf"], ["colspan", "4"], [1, "p-column-title"], [1, "displayName"], [1, "displayNameText", 2, "font-size", "12px", 3, "innerHtml"], ["size", "small", "fill", "outline", "aria-label", "Add employer", 1, "action-button", 3, "color", "click"], [1, "action-icon", 3, "icon"], ["size", "small", "fill", "outline", "aria-label", "Edit employer", 1, "action-button", 3, "color", "click"], ["size", "small", "fill", "outline", "aria-label", "Confirm employer", 1, "action-button", 3, "id", "color", "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Remove employer", 1, "action-button", 2, "padding-left", "5px", 3, "id", "click"], ["size", "small", "color", "success", "fill", "outline", "aria-label", "Restore", 1, "action-button", 3, "click"], [1, "action-footer", 2, "width", "40%"], [1, "add-employer"], ["fill", "outline", "size", "small", "aria-label", "Add employer", 1, "action-button", 3, "id", "click"], [3, "recordIndexToEdit", "isBasePeriodEmployer", "isNewClaim", "dob", "success", "basePeriodIndex", "modelCancel"], ["appendTo", "body", "position", "top", "appendTo", "body", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], [1, "heading"], [2, "font-size", "12px", 3, "innerHtml"], ["pTemplate", "footer"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"]], template: function EmployerGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
877
|
+
i0.ɵɵelementStart(0, "div", 0, 1)(2, "ion-row")(3, "ion-col");
|
|
878
|
+
i0.ɵɵelement(4, "fa-icon", 2)(5, "span", 3);
|
|
879
|
+
i0.ɵɵpipe(6, "trustHtml");
|
|
880
|
+
i0.ɵɵpipe(7, "translate");
|
|
881
|
+
i0.ɵɵpipe(8, "trustHtml");
|
|
882
|
+
i0.ɵɵpipe(9, "translate");
|
|
883
|
+
i0.ɵɵtext(10, ",\u00A0 ");
|
|
884
|
+
i0.ɵɵelement(11, "br", 4)(12, "fa-icon", 5)(13, "span", 3);
|
|
885
|
+
i0.ɵɵpipe(14, "trustHtml");
|
|
886
|
+
i0.ɵɵpipe(15, "translate");
|
|
887
|
+
i0.ɵɵtext(16, ",\u00A0 ");
|
|
888
|
+
i0.ɵɵelement(17, "br", 4)(18, "fa-icon", 5)(19, "span", 3);
|
|
889
|
+
i0.ɵɵpipe(20, "trustHtml");
|
|
890
|
+
i0.ɵɵpipe(21, "translate");
|
|
891
|
+
i0.ɵɵtext(22, ",\u00A0 ");
|
|
892
|
+
i0.ɵɵelement(23, "br", 4);
|
|
893
|
+
i0.ɵɵtemplate(24, EmployerGridComponent_div_24_Template, 6, 7, "div", 6)(25, EmployerGridComponent_br_25_Template, 1, 0, "br", 7);
|
|
894
|
+
i0.ɵɵelement(26, "fa-icon", 5)(27, "span", 3);
|
|
895
|
+
i0.ɵɵpipe(28, "trustHtml");
|
|
896
|
+
i0.ɵɵpipe(29, "translate");
|
|
855
897
|
i0.ɵɵelementEnd()();
|
|
856
|
-
i0.ɵɵtemplate(
|
|
898
|
+
i0.ɵɵtemplate(30, EmployerGridComponent_p_table_30_Template, 5, 4, "p-table", 8)(31, EmployerGridComponent_app_add_employer_31_Template, 1, 4, "app-add-employer", 9)(32, EmployerGridComponent_p_dialog_32_Template, 21, 26, "p-dialog", 10);
|
|
857
899
|
i0.ɵɵelementEnd();
|
|
858
900
|
} if (rf & 2) {
|
|
859
901
|
i0.ɵɵproperty("formGroup", ctx.form);
|
|
860
|
-
i0.ɵɵadvance(
|
|
861
|
-
i0.ɵɵproperty("icon", ctx.util.isState("MS") ? i0.ɵɵpureFunction0(34,
|
|
902
|
+
i0.ɵɵadvance(4);
|
|
903
|
+
i0.ɵɵproperty("icon", ctx.util.isState("MS") ? i0.ɵɵpureFunction0(34, _c1) : i0.ɵɵpureFunction0(35, _c2));
|
|
862
904
|
i0.ɵɵadvance(1);
|
|
863
|
-
i0.ɵɵproperty("innerHtml", ctx.util.isState("MS") ? i0.ɵɵpipeBind1(
|
|
905
|
+
i0.ɵɵproperty("innerHtml", ctx.util.isState("MS") ? i0.ɵɵpipeBind1(6, 14, i0.ɵɵpipeBind1(7, 16, "induction.employment.subheader.confirm.ms")) : i0.ɵɵpipeBind1(8, 18, i0.ɵɵpipeBind1(9, 20, "induction.employment.subheader.confirm")), i0.ɵɵsanitizeHtml);
|
|
864
906
|
i0.ɵɵadvance(7);
|
|
865
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(36,
|
|
907
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(36, _c3));
|
|
866
908
|
i0.ɵɵadvance(1);
|
|
867
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(
|
|
909
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(14, 22, i0.ɵɵpipeBind1(15, 24, "induction.employment.subheader.delete")), i0.ɵɵsanitizeHtml);
|
|
868
910
|
i0.ɵɵadvance(5);
|
|
869
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(37,
|
|
911
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(37, _c5));
|
|
870
912
|
i0.ɵɵadvance(1);
|
|
871
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(
|
|
913
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(20, 26, i0.ɵɵpipeBind1(21, 28, "induction.employment.subheader.add")), i0.ɵɵsanitizeHtml);
|
|
872
914
|
i0.ɵɵadvance(5);
|
|
873
915
|
i0.ɵɵproperty("ngIf", !ctx.util.isState("MS"));
|
|
874
916
|
i0.ɵɵadvance(1);
|
|
875
917
|
i0.ɵɵproperty("ngIf", !ctx.util.isState("MS"));
|
|
876
918
|
i0.ɵɵadvance(1);
|
|
877
|
-
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(38,
|
|
919
|
+
i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(38, _c4));
|
|
878
920
|
i0.ɵɵadvance(1);
|
|
879
|
-
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(
|
|
921
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(28, 30, i0.ɵɵpipeBind1(29, 32, "induction.employment.subheader.restore")), i0.ɵɵsanitizeHtml);
|
|
880
922
|
i0.ɵɵadvance(3);
|
|
881
923
|
i0.ɵɵproperty("ngIf", ctx.claimAppEmpResponseModelFromService);
|
|
882
924
|
i0.ɵɵadvance(1);
|
|
@@ -891,7 +933,7 @@ export class EmployerGridComponent {
|
|
|
891
933
|
provide: NG_VALUE_ACCESSOR,
|
|
892
934
|
useExisting: EmployerGridComponent,
|
|
893
935
|
multi: true
|
|
894
|
-
}], changeDetection: ChangeDetectionStrategy.Default, template: "<div [formGroup]=\"form\" style=\"margin-left: -5px;\">\r\n<ion-row>\r\n <ion-col> \r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\"></fa-icon>\r\n <span [innerHtml]=\"util.isState('MS') ? ('induction.employment.subheader.confirm.ms' | translate | trustHtml) : ('induction.employment.subheader.confirm' | translate | trustHtml)\"></span>, \r\n <br class=\"mobile-action-view\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.delete' | translate | trustHtml\"></span>, \r\n <br class=\"mobile-action-view\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.add' | translate | trustHtml\"></span>, \r\n <br class=\"mobile-action-view\">\r\n <div *ngIf=\"!util.isState('MS')\" style=\"display: inline-block;\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.edit' | translate | trustHtml\"></span>, \r\n </div>\r\n <br *ngIf=\"!util.isState('MS')\" class=\"mobile-action-view\">\r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.restore' | translate | trustHtml\"></span>\r\n </ion-col>\r\n</ion-row>\r\n\r\n<p-table #dt [columns]=\"cols\" [value]=\"claimAppEmpResponseModelFromService.bpEmpList\" [loading]=\"showProgressBar\"\r\n [rowHover]=\"true\" *ngIf=\"claimAppEmpResponseModelFromService\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" >\r\n {{\"induction.employment.table.employer.name\"|translate}}\r\n </th>\r\n <th>\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.job.title\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.pay\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.dates\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.sep.reason\"|translate}}\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"body\" let-employer let-rowIndex=\"rowIndex\">\r\n <tr class=\"ui-selectable-row\" [ngClass]=\"employer.empDeleted=='Y' ? 'strikethrough' : null\" *ngIf=\"employer.displaySeasonalEmp === true\">\r\n \r\n <td *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.employerData.displayState != null; else workState\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.employerData.displayState.text}}<br>\r\n </span>\r\n </td>\r\n <ng-template #workState>\r\n <td *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.workState != null; else notOsaBpAndRegEmployer\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.workState.text}}<br>\r\n </span>\r\n </td>\r\n </ng-template>\r\n <ng-template #notOsaBpAndRegEmployer>\r\n <td *ngIf=\"employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} <br>\r\n </span><div style=\"font-size: 12px;\" class=\"displayNameText\" [innerHtml]=\"employer.employerData.mailingAddressDisplay | trustHtml\">\r\n </div>\r\n </td> \r\n </ng-template>\r\n \r\n <td *ngIf=\"!employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span>\r\n </span>\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span>\r\n {{employer.serviceBranch.text}} <br>\r\n </span>\r\n </td>\r\n <td style=\"text-align: center;\"> \r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.payRate && employer.startDate && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"editBasePeriodEmployer(employer);\" class=\"action-button\" aria-label=\"Add employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"editEmployer(employer);\" class=\"action-button\" aria-label=\"Edit employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnConfirmEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && !employer.payRate && !employer.startDate && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"finish(employer);\" class=\"action-button\" aria-label=\"Confirm employer\">\r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnDeleteEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"deleteEmployer(rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\" style=\"padding-left: 5px;\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnRemoveEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"removeEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\" style=\"padding-left: 5px;\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted=='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"restoreEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Restore\">\r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td> \r\n <td *ngIf=\"employer.jobTileOrPosition && !employer.fedJobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.jobTileOrPosition}}</td>\r\n\r\n <td *ngIf=\"employer.fedJobTileOrPosition && !employer.jobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.fedJobTileOrPosition}}</td>\r\n\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Job Title</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType !='MIL' && employer.payRate && employer.payRateFrequency\"><span class=\"p-column-title\">Pay</span>{{employer.payRate | currency}}/{{employer.payRateFrequency.text}}</td>\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Pay</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType==='REG' && employer.startDate && employer.endDate\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDate | date:'M/d/yyyy'}} - {{employer.endDate | date:'M/d/yyyy'}}\r\n </td>\r\n \r\n <td *ngIf=\"employer.employerType==='FED' && employer.startDateFed && employer.endDateFed\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDateFed | date:'M/d/yyyy'}} - {{employer.endDateFed | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL' && employer.startDateMil && employer.endDateMil\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDateMil | date:'M/d/yyyy'}} - {{employer.endDateMil | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n\r\n <td *ngIf=\"employer.employerType!='MIL' && employer.reasonSeparation\"><span class=\"p-column-title\">Separation Reason</span>{{employer.reasonSeparation.text}}\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\"><span class=\"p-column-title\">Separation Reason</span>\r\n </td>\r\n \r\n <td colspan=\"4\"></td>\r\n\r\n \r\n \r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"summary\" let-columns>\r\n <table>\r\n <tr>\r\n <td [attr.colspan]=\"2\" style=\"width: 40%;\" class=\"action-footer\">\r\n <div [innerHtml]=\"'induction.employment.footer.label' | translate | trustHtml\"></div>\r\n </td>\r\n <td class=\"add-employer\">\r\n <ion-button fill=\"outline\" size=\"small\" class=\"action-button\" (click)=\"addNewEmpDetails()\" class=\"action-button\" aria-label=\"Add employer\" [id]=\"'btnAddEmployer'\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td colspan=\"4\"> </td>\r\n </tr>\r\n </table>\r\n </ng-template>\r\n\r\n</p-table>\r\n <app-add-employer *ngIf=\"display\" (success)=\"addEmployer($event)\" [recordIndexToEdit]=\"indexToEdit\" \r\n (basePeriodIndex)=\"deleteBpEmpl($event)\" [isBasePeriodEmployer]=\"isBasePeriodEmployer\" [isNewClaim]=\"isNewClaim\" \r\n (modelCancel)=\"onModelCancel($event)\" [dob]=\"claimantDob\">\r\n </app-add-employer>\r\n\r\n <p-dialog [visible]=\"showConfirmPopup\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" *ngIf=\"selectedEmployer\">\r\n <h4 class=\"heading\">{{'induction.employment.grid.popup.heading' | translate}}</h4>\r\n <ion-label>\r\n {{selectedEmployer.employerData.displayName}}\r\n <div *ngIf=\"selectedEmployer.employerData.tradeName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{selectedEmployer.employerData.tradeName}}</div>\r\n <br>\r\n </ion-label>\r\n <ion-label><div style=\"font-size: 12px;\" [innerHtml]=\"selectedEmployer.employerData.mailingAddressDisplay | trustHtml\"></div></ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.failure.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <div [innerHtml]=\"['induction.employment.grid.popup.didnt.work.label' | translate]\"></div>\r\n </ion-label>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'induction.employment.grid.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"removeBasePeriodEmployer()\">\r\n {{'induction.employment.grid.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n</div>", styles: [".add-employer{width:9.75%;text-align:right}.mobile-action-view{display:none}:host ::ng-deep .p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{display:none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{color:var(--ion-color-primary);text-align:left;font-weight:700;padding:8px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{font-size:16px;padding:3px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:none}@media screen and (max-width: 767px){.mobile-action-view{display:block}}@media screen and (max-width: 40rem){.action-footer{width:300px!important}ion-col{text-align:left!important}.dataHeadings{width:500px!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{text-align:left!important;display:block;width:100%!important;float:left;clear:left;border:0 none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:30%;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td:last-child{border-bottom:1px solid var(--surface-d)}}@media screen and (max-width: 40rem){:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:0%!important;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}}@media (min-width: 767px) and (max-width: 1325px){.displayNameText{font-size:12px!important;width:max-content}}.strikethrough{text-decoration:line-through}\n"] }]
|
|
936
|
+
}], changeDetection: ChangeDetectionStrategy.Default, template: "<div [formGroup]=\"form\" style=\"margin-left: -5px;\" #gridTop>\r\n<ion-row>\r\n <ion-col> \r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\"></fa-icon>\r\n <span [innerHtml]=\"util.isState('MS') ? ('induction.employment.subheader.confirm.ms' | translate | trustHtml) : ('induction.employment.subheader.confirm' | translate | trustHtml)\"></span>, \r\n <br class=\"mobile-action-view\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.delete' | translate | trustHtml\"></span>, \r\n <br class=\"mobile-action-view\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.add' | translate | trustHtml\"></span>, \r\n <br class=\"mobile-action-view\">\r\n <div *ngIf=\"!util.isState('MS')\" style=\"display: inline-block;\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.edit' | translate | trustHtml\"></span>, \r\n </div>\r\n <br *ngIf=\"!util.isState('MS')\" class=\"mobile-action-view\">\r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon font-bold\"></fa-icon>\r\n <span [innerHtml]=\"'induction.employment.subheader.restore' | translate | trustHtml\"></span>\r\n </ion-col>\r\n</ion-row>\r\n\r\n<p-table #dt [columns]=\"cols\" [value]=\"claimAppEmpResponseModelFromService.bpEmpList\" [loading]=\"showProgressBar\"\r\n [rowHover]=\"true\" *ngIf=\"claimAppEmpResponseModelFromService\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" >\r\n {{\"induction.employment.table.employer.name\"|translate}}\r\n </th>\r\n <th>\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.job.title\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.pay\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.dates\"|translate}}\r\n </th>\r\n <th>\r\n {{\"induction.employment.table.sep.reason\"|translate}}\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"body\" let-employer let-rowIndex=\"rowIndex\">\r\n <tr class=\"ui-selectable-row\" [ngClass]=\"employer.empDeleted=='Y' ? 'strikethrough' : null\" *ngIf=\"employer.displaySeasonalEmp === true\">\r\n \r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.employerData.displayState != null; else workState\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.employerData.displayState.text}}<br>\r\n </span>\r\n </td>\r\n <ng-template #workState>\r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.osaBpEmployerFlag === '1' && employer.employerType ==='REG' && employer.workState != null; else notOsaBpAndRegEmployer\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} - {{employer.workState.text}}<br>\r\n </span>\r\n </td>\r\n </ng-template>\r\n <ng-template #notOsaBpAndRegEmployer>\r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span class=\"displayName\">\r\n {{employer.employerData.displayName}} <br>\r\n </span><div style=\"font-size: 12px;\" class=\"displayNameText\" [innerHtml]=\"employer.employerData.mailingAddressDisplay | trustHtml\">\r\n </div>\r\n </td> \r\n </ng-template>\r\n \r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"!employer.employerData.displayName && employer.employerType!='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span>\r\n </span>\r\n </td>\r\n\r\n <td [style.Color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? '#eb445a':''\"\r\n *ngIf=\"employer.employerType==='MIL'\" colspan=\"2\" class=\"dataHeadings\" style=\"width:20%;\" ><span class=\"p-column-title\">Employer</span><span>\r\n {{employer.serviceBranch.text}} <br>\r\n </span>\r\n </td>\r\n <td style=\"text-align: center;\"> \r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.payRate && employer.startDate && employer.empDeleted!='Y'\" \r\n [color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? 'danger':'success'\" fill=\"outline\" \r\n (click)=\"editBasePeriodEmployer(employer);\" class=\"action-button\" aria-label=\"Add employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" fill=\"outline\" \r\n [color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? 'danger':'success'\"\r\n (click)=\"editEmployer(employer);\" class=\"action-button\" aria-label=\"Edit employer\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnConfirmEmployer-' + rowIndex\" size=\"small\" [color]=\"(!employer.isEmployerEdited && employer.isEmployerGridSubmitted) ? 'danger':'success'\"\r\n *ngIf=\"employer.bpEmployerFlag==='1' && !employer.payRate && !employer.startDate && employer.empDeleted!='Y'\" fill=\"outline\" \r\n (click)=\"finish(employer);\" class=\"action-button\" aria-label=\"Confirm employer\">\r\n <fa-icon [icon]=\"util.isState('MS') ? ['fal', 'edit'] : ['fal', 'check-circle']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnDeleteEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='0'\" color=\"success\" fill=\"outline\" \r\n (click)=\"deleteEmployer(rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\" style=\"padding-left: 5px;\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button [id]=\"'btnRemoveEmployer-' + rowIndex\" size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted!='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"removeEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Remove employer\" style=\"padding-left: 5px;\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-button size=\"small\" *ngIf=\"employer.bpEmployerFlag==='1' && employer.empDeleted=='Y'\" color=\"success\" fill=\"outline\" \r\n (click)=\"restoreEmployment(employer, rowIndex);\" class=\"action-button\" aria-label=\"Restore\">\r\n <fa-icon [icon]=\"['fal', 'trash-restore-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td> \r\n <td *ngIf=\"employer.jobTileOrPosition && !employer.fedJobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.jobTileOrPosition}}</td>\r\n\r\n <td *ngIf=\"employer.fedJobTileOrPosition && !employer.jobTileOrPosition\"><span class=\"p-column-title\">Job Title</span>{{employer.fedJobTileOrPosition}}</td>\r\n\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Job Title</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType !='MIL' && employer.payRate && employer.payRateFrequency\"><span class=\"p-column-title\">Pay</span>{{employer.payRate | currency}}/{{employer.payRateFrequency.text}}</td>\r\n <td *ngIf=\"employer.employerType =='MIL'\"><span class=\"p-column-title\">Pay</span></td>\r\n\r\n \r\n <td *ngIf=\"employer.employerType==='REG' && employer.startDate && employer.endDate\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDate | date:'M/d/yyyy'}} - {{employer.endDate | date:'M/d/yyyy'}}\r\n </td>\r\n \r\n <td *ngIf=\"employer.employerType==='FED' && employer.startDateFed && employer.endDateFed\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDateFed | date:'M/d/yyyy'}} - {{employer.endDateFed | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL' && employer.startDateMil && employer.endDateMil\"><span class=\"p-column-title\">Start and End</span>\r\n {{employer.startDateMil | date:'M/d/yyyy'}} - {{employer.endDateMil | date:'M/d/yyyy'}}\r\n </td>\r\n\r\n\r\n <td *ngIf=\"employer.employerType!='MIL' && employer.reasonSeparation\"><span class=\"p-column-title\">Separation Reason</span>{{employer.reasonSeparation.text}}\r\n </td>\r\n\r\n <td *ngIf=\"employer.employerType==='MIL'\"><span class=\"p-column-title\">Separation Reason</span>\r\n </td>\r\n \r\n <td colspan=\"4\"></td>\r\n\r\n \r\n \r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"summary\" let-columns>\r\n <table>\r\n <tr>\r\n <td [attr.colspan]=\"2\" style=\"width: 40%;\" class=\"action-footer\">\r\n <div [innerHtml]=\"'induction.employment.footer.label' | translate | trustHtml\"></div>\r\n </td>\r\n <td class=\"add-employer\">\r\n <ion-button fill=\"outline\" size=\"small\" class=\"action-button\" (click)=\"addNewEmpDetails()\" class=\"action-button\" aria-label=\"Add employer\" [id]=\"'btnAddEmployer'\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td colspan=\"4\"> </td>\r\n </tr>\r\n </table>\r\n </ng-template>\r\n\r\n</p-table>\r\n <app-add-employer *ngIf=\"display\" (success)=\"addEmployer($event)\" [recordIndexToEdit]=\"indexToEdit\" \r\n (basePeriodIndex)=\"deleteBpEmpl($event)\" [isBasePeriodEmployer]=\"isBasePeriodEmployer\" [isNewClaim]=\"isNewClaim\" \r\n (modelCancel)=\"onModelCancel($event)\" [dob]=\"claimantDob\">\r\n </app-add-employer>\r\n\r\n <p-dialog [visible]=\"showConfirmPopup\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" *ngIf=\"selectedEmployer\">\r\n <h4 class=\"heading\">{{'induction.employment.grid.popup.heading' | translate}}</h4>\r\n <ion-label>\r\n {{selectedEmployer.employerData.displayName}}\r\n <div *ngIf=\"selectedEmployer.employerData.tradeName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{selectedEmployer.employerData.tradeName}}</div>\r\n <br>\r\n </ion-label>\r\n <ion-label><div style=\"font-size: 12px;\" [innerHtml]=\"selectedEmployer.employerData.mailingAddressDisplay | trustHtml\"></div></ion-label><br/>\r\n <ion-label>\r\n {{'induction.employment.grid.popup.failure.label' | translate}}\r\n </ion-label><br/><br/>\r\n <ion-label>\r\n <div [innerHtml]=\"['induction.employment.grid.popup.didnt.work.label' | translate]\"></div>\r\n </ion-label>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'induction.employment.grid.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"removeBasePeriodEmployer()\">\r\n {{'induction.employment.grid.popup.remove' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n </p-dialog>\r\n</div>", styles: [".add-employer{width:9.75%;text-align:right}.mobile-action-view{display:none}:host ::ng-deep .p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{display:none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{color:var(--ion-color-primary);text-align:left;font-weight:700;padding:8px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{font-size:16px;padding:3px;width:-webkit-fill-available!important}:host ::ng-deep .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:none}@media screen and (max-width: 767px){.mobile-action-view{display:block}}@media screen and (max-width: 40rem){.action-footer{width:300px!important}ion-col{text-align:left!important}.dataHeadings{width:500px!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td{text-align:left!important;display:block;width:100%!important;float:left;clear:left;border:0 none}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:30%;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}:host ::ng-deep .p-datatable.p-datatable-worksearch .p-datatable-tbody>tr>td:last-child{border-bottom:1px solid var(--surface-d)}}@media screen and (max-width: 40rem){:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{display:none!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-tbody>tr>td .p-column-title{padding:.6rem;min-width:0%!important;display:inline-block;margin:-.4em 1em -.4em -.4rem;font-weight:700}}@media (min-width: 767px) and (max-width: 1325px){.displayNameText{font-size:12px!important;width:max-content}}.strikethrough{text-decoration:line-through}\n"] }]
|
|
895
937
|
}], () => [{ type: i1.PopoverController }, { type: i2.LoggerService }, { type: i3.ValidationService }, { type: i1.NavController }, { type: i4.UtilService }, { type: i5.LoginService }, { type: i6.ActivatedRoute }, { type: i7.ClaimService }, { type: i8.Storage }], { form: [{
|
|
896
938
|
type: Input
|
|
897
939
|
}], dynamicParam: [{
|
|
@@ -900,6 +942,9 @@ export class EmployerGridComponent {
|
|
|
900
942
|
type: Output
|
|
901
943
|
}], onComplete: [{
|
|
902
944
|
type: Output
|
|
945
|
+
}], gridTop: [{
|
|
946
|
+
type: ViewChild,
|
|
947
|
+
args: ['gridTop', { static: false }]
|
|
903
948
|
}] }); })();
|
|
904
949
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmployerGridComponent, { className: "EmployerGridComponent", filePath: "lib\\components\\employer-grid\\employer-grid.component.ts", lineNumber: 31 }); })();
|
|
905
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUEwQyxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBS25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBR25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7OztJQ0p2RCwrQkFBZ0U7SUFDaEUsNkJBQTBFLGNBQUE7OztJQUNlLHdCQUN6RjtJQUFBLGlCQUFNOztJQUZHLGVBQXdCO0lBQXhCLGlEQUF3QjtJQUMzQixlQUEyRTtJQUEzRSxnSUFBMkU7OztJQUVqRix3QkFBMkQ7OztJQVMzRCwwQkFB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QSxlQUFBOzs7WUFFNEQseUJBQzNGO1lBQUEseUJBQStCLGtCQUFBLGVBQUE7OztZQUV5RCx5QkFDeEY7WUFBQSx5QkFBK0I7WUFDL0Isd0VBR00seURBQUE7WUFFTiw4QkFBdUYsZUFBQTs7O1lBRXpGLGlCQUFVLEVBQUE7WUFHWixnRkEwSVUscUZBQUEsdUVBQUE7WUErQlYsaUJBQU07O1lBL0xELG9DQUFrQjtZQUdWLGVBQXVFO1lBQXZFLHlHQUF1RTtZQUMxRSxlQUE2SztZQUE3SywwUEFBNks7WUFFMUssZUFBNkI7WUFBN0Isa0RBQTZCO1lBQ2hDLGVBQTZFO1lBQTdFLHNJQUE2RTtZQUUxRSxlQUF3QjtZQUF4QixrREFBd0I7WUFDM0IsZUFBMEU7WUFBMUUsbUlBQTBFO1lBRTFFLGVBQXlCO1lBQXpCLDhDQUF5QjtZQUkxQixlQUF5QjtZQUF6Qiw4Q0FBeUI7WUFDckIsZUFBcUM7WUFBckMsa0RBQXFDO1lBQ3hDLGVBQThFO1lBQTlFLHVJQUE4RTtZQUtwRSxlQUF5QztZQUF6Qyw4REFBeUM7WUEwSXhDLGVBQWE7WUFBYixrQ0FBYTtZQU1xRSxlQUFzQjtZQUF0QiwyQ0FBc0I7OztpRkR6SWhILHFCQUFxQjtjQVhqQyxTQUFTOzJCQUNFLG1CQUFtQixhQUdsQixDQUFDO3dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsdUJBQXVCO3dCQUNsQyxLQUFLLEVBQUUsSUFBSTtxQkFDWixDQUFDLG1CQUNlLHVCQUF1QixDQUFDLE9BQU87NlFBYXZDLElBQUk7a0JBQVosS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFHSSxZQUFZO2tCQUFyQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTs7a0ZBaEJJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCc7XG5pbXBvcnQgeyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltT25seUVtcGxveWVyRGF0YU1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVtcGxveWVyV2FnZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyV2FnZXNNb2RlbCc7XG5pbXBvcnQgeyBDbGFpbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbXMvY2xhaW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xuaW1wb3J0IHsgRmJDb25zdGFudHMgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlL0ZiQ29uc3RhbnRzJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVtcGxveWVyLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBFbXBsb3llckdyaWRDb21wb25lbnQsXG4gICAgbXVsdGk6IHRydWVcbiAgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llckdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBwdWJsaWMgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIHB1YmxpYyBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsXG4gICAgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZSA6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgY2xhaW1zU2VydmljZSA6IENsYWltU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2UgOiBTdG9yYWdlKSB7XG5cbiAgfVxuXG4gIGNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlOiAgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsID0gbmV3IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCgpO1xuICBjb2xzOiBhbnlbXTtcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZHluYW1pY1BhcmFtIDogYW55O1xuICBkaXNwbGF5OiBib29sZWFuO1xuICBiYXNlUGVyaW9kZGlzcGxheTogYm9vbGVhbjtcbiAgQE91dHB1dCgpIG1vZGVsRGlzcGxheSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICBjYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcbiAgc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcbiAgc2VsZWN0ZWRCYXNlUGVyaW9kRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWw7XG4gIHB1YmxpYyBpbmRleFRvRWRpdDtcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc05ld0NsYWltOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93Q29uZmlybVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuICBzc25Gb3JDU1IgOiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgdXVpZDogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyBwYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XG4gIHB1YmxpYyBjb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUlk7XG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XG4gIHB1YmxpYyBzdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTO1xuICBwdWJsaWMgbWlsaXRhcnlTZXJ2aWNlT3B0aW9ucyA9IENvbWJvT3B0aW9uLk1JTElUQVJZX1NFUlZJQ0U7XG4gIHB1YmxpYyBjbGFpbWFudERvYiA6IERhdGU7XG5cbiAgbG9hZE1hc3RlckRhdGEoKXtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UubG9hZE1hc3RlckRhdGEoKTtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0UmVhc29uU2VwYXJhdGlvbigpLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldERpc2NoYXJnZVJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFF1aXRSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZyBvbml0IG9mIGVtcGxveWVyIGdyaWQnKVxuICAgIHRoaXMubG9hZE1hc3RlckRhdGEoKTtcbiAgICB0aGlzLmNvbHMgPSBbXG4gICAgICB7IGZpZWxkOiAnZW1wbG95ZXInLCBoZWFkZXI6ICdFbXBsb3llcicgfSxcbiAgICAgIHsgZmllbGQ6ICdqb2JUaXRsZScsIGhlYWRlcjogJ0pvYiBUaXRsZScgfSxcbiAgICAgIHsgZmllbGQ6ICdQYXknLCBoZWFkZXI6ICdQYXknIH0sXG4gICAgICB7IGZpZWxkOiAnc3RhcnRFbmREYXRlJywgaGVhZGVyOiAnU3RhcnQgYW5kIEVuZCcgfSxcbiAgICAgIHsgZmllbGQ6ICdzZXBhcmF0aW9uUmVhc29uJywgaGVhZGVyOiAnU2VwYXJhdGlvbiBSZWFzb24nIH0sXG4gICAgICB7IGZpZWxkOiAnJywgaGVhZGVyOiAnJyB9XG4gICAgXTtcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlID0gcmVzLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIGlmKHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UgJiYgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5pc05ld0NsYWltQXBwbGljYXRpb24pe1xuICAgICAgICAgICAgICB0aGlzLmlzTmV3Q2xhaW0gPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmlzTmV3Q2xhaW1BcHBsaWNhdGlvbi52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgIHRoaXMuY2xhaW1hbnREb2IgPSBuZXcgRGF0ZSh0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmRhdGVPZkJpcnRoLnJlcGxhY2UoXCItXCIsXCIvXCIpLnJlcGxhY2UoXCItXCIsXCIvXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGROZXdFbXBEZXRhaWxzKCkge1xuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcj1mYWxzZTtcbiAgICB0aGlzLm1vZGVsRGlzcGxheS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xuICB9O1xuXG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7XG4gIH07XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYodmFsdWUpe1xuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5zZXR1cEVtcGxveWVyKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2Uuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIGFzeW5jIGdldElkZW50aWZpZXIoKXtcbiAgICBsZXQgdXVpZDtcbiAgICBsZXQgZGF0YSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2lkZW50aWZpZXInKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImRhdGEgZm9yIGlkZW50aWZpZXIgaXMgOiBcIiwgZGF0YSlcbiAgICAgIGlmKGRhdGEpeyAgICAgICAgICBcbiAgICAgICAgdXVpZCA9IGRhdGE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1dWlkID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChGYkNvbnN0YW50cy51dWlkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1dWlkO1xuICB9XG4gIGFzeW5jIHNldHVwRW1wbG95ZXIoKSB7XG4gICAgbGV0IG1vZGVsID0gbmV3IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsKCk7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLnV1aWQgPSBhd2FpdCB0aGlzLmdldElkZW50aWZpZXIoKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1dWlkIGlzID09PT0nLCB0aGlzLnV1aWQpO1xuICAgICAgbGV0IHVybCA9IFwiXCI7XG4gICAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSA9PT0gdHJ1ZSl7XG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2NsYWltYW50L2FwcC9icGVtcGxveWVyc1wiOyAgICAgXG4gICAgICAgIGxldCBwcm9jZXNzdHlwZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3Byb2Nlc3N0eXBlJyk7XG4gICAgICAgIGlmKHByb2Nlc3N0eXBlID09PSAnYWljLXJlb3Blbicpe1xuICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoRmJDb25zdGFudHMudXVpZCk7XG4gICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1Zygnb2JqRGF0YSA9PT09Jywgb2JqRGF0YSk7XG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xuICAgICAgICB9ICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2FwcC9icGVtcGxveWVyc1wiO1xuICAgICAgICBsZXQgcHJvY2Vzc3R5cGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9jZXNzdHlwZScpO1xuICAgICAgICBpZihwcm9jZXNzdHlwZSA9PT0gJ2FpYy1yZW9wZW4nKXtcbiAgICAgICAgICBtb2RlbC5mbG93RnJvbSA9IFwiQWljLVJlb3Blbi1mbG93XCI7XG4gICAgICAgIH0gIFxuICAgICAgfVxuICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGUgdXVpZCB1c2VkIGluIG1vZGVsIGlzIDogJywgdGhpcy51dWlkKTtcbiAgICAgIGlmKG1vZGVsLmZsb3dGcm9tID09PSAnQWljLVJlb3Blbi1mbG93Jyl7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGFpYyByZW9wZW4gZmxvd1wiKTtcbiAgICAgICAgdGhpcy5mZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsLCB1cmwpO1xuICAgICAgfSBlbHNlIGlmKHRoaXMudXVpZCl7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJbnNpZGUgZ2V0dGluZyB2YWx1ZXMgYmFzZWQgb24gdXVpZFwiKTtcbiAgICAgICAgICBtb2RlbC51dWlkID0gdGhpcy51dWlkO1xuICAgICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiS2VlcCB3YWl0aW5nLi4uLnV1aWQgbm90IGZvdW5kLi5cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWw6IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsLCB1cmw6IHN0cmluZykge1xuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnBvc3Q8Q2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsPih1cmwsIG1vZGVsKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgICBpZihyZXMuYnBFbXBMaXN0Lmxlbmd0aCA+IDApe1xuICAgICAgICAgIHJlcy5icEVtcExpc3QuZm9yRWFjaChlbXAgPT4gdGhpcy5zZXRDaG9pc2VNb2RlbHMoZW1wKSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHJlcyk7XG4gICAgICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW1wbG95ZXIgTGlzdCBmcm9tIFNlcnZpY2UnLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICBsZXQgbGlzdCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dChsaXN0KTtcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIFxuICBkZWxldGVCcEVtcGwoZXZlbnQ6bnVtYmVyKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgJywgZXZlbnQpO1xuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShldmVudCwgMSk7XG4gIH1cblxuICBkZWxldGVFbXBsb3llcihlbGVtZW50SW5kZXgpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgZm9yID0gJywgZWxlbWVudEluZGV4KTtcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyPWZhbHNlO1xuICAgIC8vdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3RbZWxlbWVudEluZGV4XS5lbXBEZWxldGVkID0gXCJZXCI7XG4gICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3Quc3BsaWNlKGVsZW1lbnRJbmRleCwgMSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XG4gIH1cblxuICBkZWxldGVFbXBsb3llckJhc2VQZXJpb2QoZWxlbWVudEluZGV4KSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgYmFzZSBwZXJpb2QgZW1wbG95ZXIgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbZWxlbWVudEluZGV4XS53b3JrRmxhZyA9IFwiTlwiO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgYmFzZSBwZXJpb2QgZW1wbG95ZXIgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xuICB9XG5cbiAgZWRpdEVtcGxveWVyKGVtcGxveWVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgbWV0aG9kIGNhbGxlZCcsIGVtcGxveWVyKTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luZGV4IFRvIEVkaXQgPSAnLCB0aGlzLmluZGV4VG9FZGl0KTtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICB9XG5cbiAgZmluaXNoKGVtcGxveWVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0ZpbmlzaCBFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llcik7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xuICAgIGVtcGxveWVyLndvcmtGbGFnID0gJ1knO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XG4gICAgdGhpcy5tb2RlbERpc3BsYXkuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGVkaXRCYXNlUGVyaW9kRW1wbG95ZXIoZW1wbG95ZXIpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRWRpdCBCYXNlUGVyaW9kIEVtcGxveWVyIGNhbGxlZCBmb3IgJywgZW1wbG95ZXIpO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSB0cnVlO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XG4gIH1cblxuICBvbk1vZGVsQ2FuY2VsKGNhbmNlbDogYm9vbGVhbikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDYW5jZWwgTWV0aG9kICAnLCBjYW5jZWwpO1xuICAgIHRoaXMuZGlzcGxheSA9IGNhbmNlbDtcbiAgICB0aGlzLmJhc2VQZXJpb2RkaXNwbGF5ID0gY2FuY2VsO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgPSBmYWxzZTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYWZ0ZXIgdmFsdWUgY2hhbmdlIG9uIGVtcGxveWVyIGdyaWQgJywgdGhpcy5kaXNwbGF5KTtcbiAgfVxuXG4gIGFkZEVtcGxveWVyKGV2ZW50OiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FkZCBFbXBsb3llciBjYWxsZWQgZnJvbSBncmlkICcsIGV2ZW50LCAnaW5kZXhUb0VkaXQnLCB0aGlzLmluZGV4VG9FZGl0LCd0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyJyx0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKTtcbiAgICBldmVudC5lbXBEZWxldGVkID0gJ04nO1xuICAgIGlmICh0aGlzLmluZGV4VG9FZGl0IHx8IHRoaXMuaW5kZXhUb0VkaXQgPT0gMCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBpZiBvZiBhZGQgZW1wbG95ZXIgLS0gJyxldmVudClcbiAgICAgIGxldCBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcbiAgICAgIGxldCBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IG5ldyBFbXBsb3llcldhZ2VzTW9kZWwoKTtcbiAgICAgIGlmICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xuICAgICAgICBlbXBEYXRhTW9kZWwgPSAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0uZW1wbG95ZXJEYXRhO1xuICAgICAgICBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdLmVtcGxveWVyUHJvdmlkZWRXYWdlcztcbiAgICAgICAgZXZlbnQuYnBFbXBsb3llckZsYWcgPSAnMSdcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xuICAgICAgICBldmVudC5lbXBsb3llclByb3ZpZGVkV2FnZXMgPSBlbXBQcm92aWRlZFdhZ2VNb2RlbDtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc2V0dGluZyB0aGUgdmFsdWUgYWdhaW4gPSAgJyxldmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcbiAgICAgICAgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XG4gICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5lbXBsb3llck5hbWU7XG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnICcgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyctJyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpeyBcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZmVkRW1wbG95ZXJOYW1lO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXSA/IGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXS52YWx1ZSA6ICcnKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIm5vIGFkZHJlc3MgZm9yIHRoaXMgZW1wbG95ZXIgdHlwZVwiKTtcbiAgICAgIH1cbiAgICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVyVHlwZSA9IGV2ZW50LmVtcGxveWVyVHlwZTtcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xuICAgICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJJZD1ldmVudC5lbXBsb3llcklkO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzAnXG4gICAgICB9XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XSA9IGV2ZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIGVsc2Ugb2YgYWRkIGVtcGxveWVyIC0tICcsZXZlbnQpXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICAgICAgbGV0IGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcbiAgICAgIGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xuICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xuICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZW1wbG95ZXJOYW1lO1xuICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XG4gICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnICcgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLScgKyhldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpe1xuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5mZWRFbXBsb3llck5hbWU7XG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnICcgKyBldmVudC5hZGRyZXNzWydjaXR5J10gKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctJyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGVsc2UgLSBubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XG4gICAgICB9XG4gICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJUeXBlID0gZXZlbnQuZW1wbG95ZXJUeXBlO1xuICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVySWQ9ZXZlbnQuZW1wbG95ZXJJZDtcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUxPWV2ZW50LmFkZHJlc3M/LnN0cmVldEFkZHJlc3M7XG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XG4gICAgICBpZiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuYnBFbXBsb3llckZsYWcgPSAnMSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuYnBFbXBsb3llckZsYWcgPSAnMCc7XG4gICAgICB9XG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3QucHVzaCh0aGlzLmNsYWltZGV0YWlsTW9kZWwpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgfVxuXG4gIHJlbW92ZUVtcGxveW1lbnQoc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCwgaW5kZXgpe1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBpbmRleDtcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBzZWxlY3RlZEVtcGxveWVyO1xuICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IHRydWU7XG4gIH1cblxuICByZW1vdmVCYXNlUGVyaW9kRW1wbG95ZXIoKXtcbiAgICB0aGlzLmRlbGV0ZUVtcGxveWVyQmFzZVBlcmlvZCh0aGlzLmluZGV4VG9FZGl0KTtcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xuICB9XG5cbiAgcmVzdG9yZUVtcGxveW1lbnQoc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCwgaW5kZXgpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGJhc2UgcGVyaW9kIGVtcGxveWVyIGNhbGxlZCBmb3IgPSAnLCBpbmRleCk7XG4gICAgbGV0IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLndvcmtGbGFnO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS53b3JrRmxhZyA9IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID8gKGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID09IFwiTlwiID8gXCJZXCIgOiBcIk5cIikgOiBudWxsO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS5lbXBEZWxldGVkID0gXCJOXCI7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBiYXNlIHBlcmlvZCBlbXBsb3llciBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xuICB9XG4gIHNldENob2lzZU1vZGVscyhlbXA6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwpOiB2b2lkIHtcbiAgICBsZXQgc2VwUmVhc29uIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlKTtcbiAgICBpZihzZXBSZWFzb24ubGVuZ3RoID4gMCl7XG4gICAgICBlbXAucmVhc29uU2VwYXJhdGlvbiA9IHNlcFJlYXNvblswXTtcbiAgICB9XG4gICAgbGV0IGRpc2NoYXJnZVJlYXNvbiA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmRpc2NoYXJnZURldGFpbD8udmFsdWUpO1xuICAgIGlmKGRpc2NoYXJnZVJlYXNvbi5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC5kaXNjaGFyZ2VEZXRhaWwgPSBkaXNjaGFyZ2VSZWFzb25bMF07XG4gICAgfVxuICAgIGxldCB2b2xRdWl0IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnZvbFF1aXREZXRhaWxzPy52YWx1ZSk7XG4gICAgaWYodm9sUXVpdC5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC52b2xRdWl0RGV0YWlscyA9IHZvbFF1aXRbMF07XG4gICAgfVxuICAgIGxldCBwYXlSYXRlRnJlcXVlbmN5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnBheVJhdGVGcmVxdWVuY3k/LnZhbHVlKTtcbiAgICBpZihwYXlSYXRlRnJlcXVlbmN5Lmxlbmd0aCA+IDApe1xuICAgICAgZW1wLnBheVJhdGVGcmVxdWVuY3kgPSBwYXlSYXRlRnJlcXVlbmN5WzBdO1xuICAgIH1cblxuICAgIGxldCBjb3VudHJ5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrQ291bnRyeT8udmFsdWUpO1xuICAgIGlmKGNvdW50cnkubGVuZ3RoID4gMCl7XG4gICAgICBlbXAuZmVkV29ya0NvdW50cnkgPSBjb3VudHJ5WzBdO1xuICAgIH1cblxuICAgIGxldCBzdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmZlZFdvcmtTdGF0ZT8udmFsdWUpO1xuICAgIGlmKHN0YXRlLmxlbmd0aCA+IDApe1xuICAgICAgZW1wLmZlZFdvcmtTdGF0ZSA9IHN0YXRlWzBdO1xuICAgIH1cblxuICAgIGxldCBzZXJ2aWNlQnJhbmNoIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuc2VydmljZUJyYW5jaD8udmFsdWUpO1xuICAgIGlmKHNlcnZpY2VCcmFuY2gubGVuZ3RoID4gMCl7XG4gICAgICBlbXAuc2VydmljZUJyYW5jaCA9IHNlcnZpY2VCcmFuY2hbMF07XG4gICAgfVxuXG4gICAgbGV0IHdvcmtTdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLndvcmtTdGF0ZT8udmFsdWU/LnRyaW0oKSk7XG4gICAgZW1wLndvcmtTdGF0ZSA9IHdvcmtTdGF0ZVswXTtcblxuICB9XG59XG5cblxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG48aW9uLXJvdz5cclxuICA8aW9uLWNvbD4gICAgXHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJ1dGlsLmlzU3RhdGUoJ01TJykgPyBbJ2ZhbCcsICdlZGl0J10gOiBbJ2ZhbCcsICdjaGVjay1jaXJjbGUnXVwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwidXRpbC5pc1N0YXRlKCdNUycpID8gKCdpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuY29uZmlybS5tcycgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWwpIDogKCdpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuY29uZmlybScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWwpXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxiciBjbGFzcz1cIm1vYmlsZS1hY3Rpb24tdmlld1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5kZWxldGUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxiciBjbGFzcz1cIm1vYmlsZS1hY3Rpb24tdmlld1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuYWRkJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8YnIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNUycpXCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCI+XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5lZGl0JyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8L2Rpdj5cclxuICAgIDxiciAqbmdJZj1cIiF1dGlsLmlzU3RhdGUoJ01TJylcIiBjbGFzcz1cIm1vYmlsZS1hY3Rpb24tdmlld1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtcmVzdG9yZS1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLnJlc3RvcmUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvaW9uLWNvbD5cclxuPC9pb24tcm93PlxyXG5cclxuPHAtdGFibGUgI2R0IFtjb2x1bW5zXT1cImNvbHNcIiBbdmFsdWVdPVwiY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0XCIgW2xvYWRpbmddPVwic2hvd1Byb2dyZXNzQmFyXCJcclxuIFtyb3dIb3Zlcl09XCJ0cnVlXCIgKm5nSWY9XCJjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZVwiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkIGFwcC1kYXRhdGFibGUgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGggY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuZW1wbG95ZXIubmFtZVwifHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0aD5cclxuICAgICAgIDwvdGg+XHJcbiAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLnBheVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5kYXRlc1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5zZXAucmVhc29uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1lbXBsb3llciBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxyXG4gICAgPHRyIGNsYXNzPVwidWktc2VsZWN0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJlbXBsb3llci5lbXBEZWxldGVkPT0nWScgPyAnc3RyaWtldGhyb3VnaCcgOiBudWxsXCIgKm5nSWY9XCJlbXBsb3llci5kaXNwbGF5U2Vhc29uYWxFbXAgPT09IHRydWVcIj5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLm9zYUJwRW1wbG95ZXJGbGFnID09PSAnMScgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09PSdSRUcnICYmIGVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUgIT0gbnVsbDsgZWxzZSB3b3JrU3RhdGVcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gLSB7e2VtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUudGV4dH19PGJyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjd29ya1N0YXRlPlxyXG4gICAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLm9zYUJwRW1wbG95ZXJGbGFnID09PSAnMScgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09PSdSRUcnICYmIGVtcGxveWVyLndvcmtTdGF0ZSAhPSBudWxsOyBlbHNlIG5vdE9zYUJwQW5kUmVnRW1wbG95ZXJcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAge3tlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fSAtIHt7ZW1wbG95ZXIud29ya1N0YXRlLnRleHR9fTxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNub3RPc2FCcEFuZFJlZ0VtcGxveWVyPlxyXG4gICAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZSAmJiBlbXBsb3llci5lbXBsb3llclR5cGUhPSdNSUwnXCIgIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuIGNsYXNzPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gPGJyPlxyXG4gICAgICAgIDwvc3Bhbj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiIGNsYXNzPVwiZGlzcGxheU5hbWVUZXh0XCIgW2lubmVySHRtbF09XCJlbXBsb3llci5lbXBsb3llckRhdGEubWFpbGluZ0FkZHJlc3NEaXNwbGF5IHwgdHJ1c3RIdG1sXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZD4gICAgICAgICBcclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZSAmJiBlbXBsb3llci5lbXBsb3llclR5cGUhPSdNSUwnXCIgIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCIgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgICB7e2VtcGxveWVyLnNlcnZpY2VCcmFuY2gudGV4dH19IDxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj4gXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQWRkIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiRWRpdCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCInYnRuQ29uZmlybUVtcGxveWVyLScgKyByb3dJbmRleFwiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgIWVtcGxveWVyLnBheVJhdGUgJiYgIWVtcGxveWVyLnN0YXJ0RGF0ZSAmJiBlbXBsb3llci5lbXBEZWxldGVkIT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImZpbmlzaChlbXBsb3llcik7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNvbmZpcm0gZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cInV0aWwuaXNTdGF0ZSgnTVMnKSA/IFsnZmFsJywgJ2VkaXQnXSA6IFsnZmFsJywgJ2NoZWNrLWNpcmNsZSddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCInYnRuRGVsZXRlRW1wbG95ZXItJyArIHJvd0luZGV4XCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRW1wbG95ZXIocm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNXB4O1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gW2lkXT1cIididG5SZW1vdmVFbXBsb3llci0nICsgcm93SW5kZXhcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRW1wbG95bWVudChlbXBsb3llciwgcm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNXB4O1wiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiBlbXBsb3llci5lbXBEZWxldGVkPT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlc3RvcmVFbXBsb3ltZW50KGVtcGxveWVyLCByb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlc3RvcmVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLXJlc3RvcmUtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC90ZD4gICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5Kb2IgVGl0bGU8L3NwYW4+e3tlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5Kb2IgVGl0bGU8L3NwYW4+e3tlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSA9PSdNSUwnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkpvYiBUaXRsZTwvc3Bhbj48L3RkPlxyXG5cclxuICAgICAgICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSAhPSdNSUwnICYmIGVtcGxveWVyLnBheVJhdGUgJiYgZW1wbG95ZXIucGF5UmF0ZUZyZXF1ZW5jeVwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5QYXk8L3NwYW4+e3tlbXBsb3llci5wYXlSYXRlIHwgY3VycmVuY3l9fS97e2VtcGxveWVyLnBheVJhdGVGcmVxdWVuY3kudGV4dH19PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+UGF5PC9zcGFuPjwvdGQ+XHJcblxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J1JFRycgJiYgZW1wbG95ZXIuc3RhcnREYXRlICYmIGVtcGxveWVyLmVuZERhdGVcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U3RhcnQgYW5kIEVuZDwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZSB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdGRUQnICYmIGVtcGxveWVyLnN0YXJ0RGF0ZUZlZCAmJiBlbXBsb3llci5lbmREYXRlRmVkXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlN0YXJ0IGFuZCBFbmQ8L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVGZWQgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJyAmJiBlbXBsb3llci5zdGFydERhdGVNaWwgJiYgZW1wbG95ZXIuZW5kRGF0ZU1pbFwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TdGFydCBhbmQgRW5kPC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlTWlsIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCcgJiYgZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TZXBhcmF0aW9uIFJlYXNvbjwvc3Bhbj57e2VtcGxveWVyLnJlYXNvblNlcGFyYXRpb24udGV4dH19XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TZXBhcmF0aW9uIFJlYXNvbjwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCBjb2xzcGFuPVwiNFwiPjwvdGQ+XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCIgbGV0LWNvbHVtbnM+XHJcbiAgICA8dGFibGU+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCIyXCIgc3R5bGU9XCJ3aWR0aDogNDAlO1wiIGNsYXNzPVwiYWN0aW9uLWZvb3RlclwiPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5mb290ZXIubGFiZWwnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJhZGQtZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgKGNsaWNrKT1cImFkZE5ld0VtcERldGFpbHMoKVwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJBZGQgZW1wbG95ZXJcIiBbaWRdPVwiJ2J0bkFkZEVtcGxveWVyJ1wiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+Jm5ic3A7PC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvcC10YWJsZT5cclxuICA8YXBwLWFkZC1lbXBsb3llciAqbmdJZj1cImRpc3BsYXlcIiAoc3VjY2Vzcyk9XCJhZGRFbXBsb3llcigkZXZlbnQpXCIgIFtyZWNvcmRJbmRleFRvRWRpdF09XCJpbmRleFRvRWRpdFwiIFxyXG4gICAgKGJhc2VQZXJpb2RJbmRleCk9XCJkZWxldGVCcEVtcGwoJGV2ZW50KVwiIFtpc0Jhc2VQZXJpb2RFbXBsb3llcl09XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIFtpc05ld0NsYWltXT1cImlzTmV3Q2xhaW1cIiBcclxuICAgIChtb2RlbENhbmNlbCk9XCJvbk1vZGVsQ2FuY2VsKCRldmVudClcIiBbZG9iXT1cImNsYWltYW50RG9iXCI+XHJcbiAgPC9hcHAtYWRkLWVtcGxveWVyPlxyXG5cclxuICA8cC1kaWFsb2cgW3Zpc2libGVdPVwic2hvd0NvbmZpcm1Qb3B1cFwiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgKm5nSWY9XCJzZWxlY3RlZEVtcGxveWVyXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuaGVhZGluZycgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7c2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLnRyYWRlTmFtZSAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRiYVwifHRyYW5zbGF0ZX19IHt7c2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lfX08L2Rpdj5cclxuICAgICAgICAgIDxicj5cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8aW9uLWxhYmVsPjxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgW2lubmVySHRtbF09XCJzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj48L2Rpdj48L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmZhaWx1cmUubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJbJ2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZGlkbnQud29yay5sYWJlbCcgfCB0cmFuc2xhdGVdXCI+PC9kaXY+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmNhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cInJlbW92ZUJhc2VQZXJpb2RFbXBsb3llcigpXCI+XHJcbiAgICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5yZW1vdmUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtZGlhbG9nPlxyXG48L2Rpdj4iXX0=
|
|
950
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFBMEMsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7O0lDSnZELCtCQUFnRTtJQUNoRSw2QkFBMEUsY0FBQTs7O0lBQ2Usd0JBQ3pGO0lBQUEsaUJBQU07O0lBRkcsZUFBd0I7SUFBeEIsaURBQXdCO0lBQzNCLGVBQTJFO0lBQTNFLGdJQUEyRTs7O0lBRWpGLHdCQUEyRDs7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K0Isa0JBQUEsZUFBQTs7O1lBRXlELHlCQUN4RjtZQUFBLHlCQUErQjtZQUMvQix3RUFHTSx5REFBQTtZQUVOLDhCQUF1RixlQUFBOzs7WUFFekYsaUJBQVUsRUFBQTtZQUdaLGdGQWtKVSxxRkFBQSx3RUFBQTtZQStCVixpQkFBTTs7WUF2TUQsb0NBQWtCO1lBR1YsZUFBdUU7WUFBdkUseUdBQXVFO1lBQzFFLGVBQTZLO1lBQTdLLDBQQUE2SztZQUUxSyxlQUE2QjtZQUE3QixrREFBNkI7WUFDaEMsZUFBNkU7WUFBN0Usc0lBQTZFO1lBRTFFLGVBQXdCO1lBQXhCLGtEQUF3QjtZQUMzQixlQUEwRTtZQUExRSxtSUFBMEU7WUFFMUUsZUFBeUI7WUFBekIsOENBQXlCO1lBSTFCLGVBQXlCO1lBQXpCLDhDQUF5QjtZQUNyQixlQUFxQztZQUFyQyxrREFBcUM7WUFDeEMsZUFBOEU7WUFBOUUsdUlBQThFO1lBS3BFLGVBQXlDO1lBQXpDLDhEQUF5QztZQWtKeEMsZUFBYTtZQUFiLGtDQUFhO1lBTXFFLGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRGpKaEgscUJBQXFCO2NBWGpDLFNBQVM7MkJBQ0UsbUJBQW1CLGFBR2xCLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyx1QkFBdUI7d0JBQ2xDLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUMsbUJBQ2UsdUJBQXVCLENBQUMsT0FBTzs2UUFhdkMsSUFBSTtrQkFBWixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUdJLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxVQUFVO2tCQUFuQixNQUFNO1lBdUJrQyxPQUFPO2tCQUEvQyxTQUFTO21CQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O2tGQXZDNUIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsJztcbmltcG9ydCB7IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsJztcbmltcG9ydCB7IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFbXBsb3llcldhZ2VzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbXBsb3llcldhZ2VzTW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcbmltcG9ydCB7IENob2ljZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BZGRyZXNzQ29tcG9uZW50TW9kZWwnO1xuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcbmltcG9ydCB7IEZiQ29uc3RhbnRzIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS9GYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnQGlvbmljL3N0b3JhZ2UtYW5ndWxhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1lbXBsb3llci1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbXBsb3llci1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogRW1wbG95ZXJHcmlkQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZXJHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBvcHVwOiBQb3BvdmVyQ29udHJvbGxlciwgcHVibGljIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlciwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgYWN0aXZhdGVkUm91dGUgOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIGNsYWltc1NlcnZpY2UgOiBDbGFpbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlIDogU3RvcmFnZSkge1xuXG4gIH1cblxuICBjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZTogIENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcbiAgY29sczogYW55W107XG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbSA6IGFueTtcbiAgZGlzcGxheTogYm9vbGVhbjtcbiAgYmFzZVBlcmlvZGRpc3BsYXk6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBtb2RlbERpc3BsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgY2FpbUFwcEVtcFJlc3BvbnNlTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XG4gIHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWw7XG4gIHNlbGVjdGVkQmFzZVBlcmlvZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xuICBwdWJsaWMgaW5kZXhUb0VkaXQ7XG4gIHB1YmxpYyBpc0Jhc2VQZXJpb2RFbXBsb3llcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0NvbmZpcm1Qb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3NuRm9yQ1NSIDogc3RyaW5nO1xuICBwdWJsaWMgc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gIHV1aWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgcGF5UmF0ZU9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EO1xuICBwdWJsaWMgY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xuICBwdWJsaWMgd29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZO1xuICBwdWJsaWMgc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xuICBwdWJsaWMgY2xhaW1hbnREb2IgOiBEYXRlO1xuICBjb3VudCA9IDA7XG4gIEBWaWV3Q2hpbGQoJ2dyaWRUb3AnLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JpZFRvcD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGxvYWRNYXN0ZXJEYXRhKCl7XG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmxvYWRNYXN0ZXJEYXRhKCk7XG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLnB1c2goYXJyKSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnbmcgb25pdCBvZiBlbXBsb3llciBncmlkJylcbiAgICB0aGlzLmxvYWRNYXN0ZXJEYXRhKCk7XG4gICAgdGhpcy5jb2xzID0gW1xuICAgICAgeyBmaWVsZDogJ2VtcGxveWVyJywgaGVhZGVyOiAnRW1wbG95ZXInIH0sXG4gICAgICB7IGZpZWxkOiAnam9iVGl0bGUnLCBoZWFkZXI6ICdKb2IgVGl0bGUnIH0sXG4gICAgICB7IGZpZWxkOiAnUGF5JywgaGVhZGVyOiAnUGF5JyB9LFxuICAgICAgeyBmaWVsZDogJ3N0YXJ0RW5kRGF0ZScsIGhlYWRlcjogJ1N0YXJ0IGFuZCBFbmQnIH0sXG4gICAgICB7IGZpZWxkOiAnc2VwYXJhdGlvblJlYXNvbicsIGhlYWRlcjogJ1NlcGFyYXRpb24gUmVhc29uJyB9LFxuICAgICAgeyBmaWVsZDogJycsIGhlYWRlcjogJycgfVxuICAgIF07XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSA9IHJlcy52YWx1ZU9mKCk7XG4gICAgICAgICAgICBpZih0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlICYmIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuaXNOZXdDbGFpbUFwcGxpY2F0aW9uKXtcbiAgICAgICAgICAgICAgdGhpcy5pc05ld0NsYWltID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5pc05ld0NsYWltQXBwbGljYXRpb24udmFsdWVPZigpO1xuICAgICAgICAgICAgICB0aGlzLmNsYWltYW50RG9iID0gbmV3IERhdGUodGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5kYXRlT2ZCaXJ0aC5yZXBsYWNlKFwiLVwiLFwiL1wiKS5yZXBsYWNlKFwiLVwiLFwiL1wiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkTmV3RW1wRGV0YWlscygpIHtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXI9ZmFsc2U7XG4gICAgdGhpcy5tb2RlbERpc3BsYXkuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKHZhbHVlOiBTdHJpbmcpID0+IHtcbiAgfTtcblxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge1xuICB9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmKHZhbHVlKXtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQodmFsdWUpO1xuICAgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMuc2V0dXBFbXBsb3llcigpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmblxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLnN1YnNjcmliZShmbik7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBhc3luYyBnZXRJZGVudGlmaWVyKCl7XG4gICAgbGV0IHV1aWQ7XG4gICAgbGV0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdpZGVudGlmaWVyJyk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJkYXRhIGZvciBpZGVudGlmaWVyIGlzIDogXCIsIGRhdGEpXG4gICAgICBpZihkYXRhKXsgICAgICAgICAgXG4gICAgICAgIHV1aWQgPSBkYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXVpZCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoRmJDb25zdGFudHMudXVpZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXVpZDtcbiAgfVxuICBhc3luYyBzZXR1cEVtcGxveWVyKCkge1xuICAgIGxldCBtb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCgpO1xuICAgIGlmICghdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy51dWlkID0gYXdhaXQgdGhpcy5nZXRJZGVudGlmaWVyKCk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXVpZCBpcyA9PT09JywgdGhpcy51dWlkKTtcbiAgICAgIGxldCB1cmwgPSBcIlwiO1xuICAgICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkgPT09IHRydWUpe1xuICAgICAgICB1cmwgPSBcIi9jbGFpbXMtc2VydmljZS9jbGFpbS9jbGFpbWFudC9hcHAvYnBlbXBsb3llcnNcIjsgICAgIFxuICAgICAgICBsZXQgcHJvY2Vzc3R5cGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9jZXNzdHlwZScpO1xuICAgICAgICBpZihwcm9jZXNzdHlwZSA9PT0gJ2FpYy1yZW9wZW4nKXtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKEZiQ29uc3RhbnRzLnV1aWQpO1xuICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ29iakRhdGEgPT09PScsIG9iakRhdGEpO1xuICAgICAgICAgIG1vZGVsLmZsb3dGcm9tID0gXCJBaWMtUmVvcGVuLWZsb3dcIjtcbiAgICAgICAgfSAgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSBcIi9jbGFpbXMtc2VydmljZS9jbGFpbS9hcHAvYnBlbXBsb3llcnNcIjtcbiAgICAgICAgbGV0IHByb2Nlc3N0eXBlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncHJvY2Vzc3R5cGUnKTtcbiAgICAgICAgaWYocHJvY2Vzc3R5cGUgPT09ICdhaWMtcmVvcGVuJyl7XG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xuICAgICAgICB9ICBcbiAgICAgIH1cbiAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhlIHV1aWQgdXNlZCBpbiBtb2RlbCBpcyA6ICcsIHRoaXMudXVpZCk7XG4gICAgICBpZihtb2RlbC5mbG93RnJvbSA9PT0gJ0FpYy1SZW9wZW4tZmxvdycpe1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkluc2lkZSBhaWMgcmVvcGVuIGZsb3dcIik7XG4gICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLnV1aWQpe1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGdldHRpbmcgdmFsdWVzIGJhc2VkIG9uIHV1aWRcIik7XG4gICAgICAgICAgbW9kZWwudXVpZCA9IHRoaXMudXVpZDtcbiAgICAgICAgICB0aGlzLmZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWwsIHVybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIktlZXAgd2FpdGluZy4uLi51dWlkIG5vdCBmb3VuZC4uXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBmZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsOiBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCwgdXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IHRydWU7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5wb3N0PENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbD4odXJsLCBtb2RlbCkuc3Vic2NyaWJlKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgaWYocmVzLmJwRW1wTGlzdC5sZW5ndGggPiAwKXtcbiAgICAgICAgICByZXMuYnBFbXBMaXN0LmZvckVhY2goZW1wID0+IHRoaXMuc2V0Q2hvaXNlTW9kZWxzKGVtcCkpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dChyZXMpO1xuICAgICAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VtcGxveWVyIExpc3QgZnJvbSBTZXJ2aWNlJywgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgbGV0IGxpc3QgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQobGlzdCk7XG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBcbiAgZGVsZXRlQnBFbXBsKGV2ZW50Om51bWJlcil7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkICcsIGV2ZW50KTtcbiAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5zcGxpY2UoZXZlbnQsIDEpO1xuICB9XG5cbiAgZGVsZXRlRW1wbG95ZXIoZWxlbWVudEluZGV4KSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcj1mYWxzZTtcbiAgICAvL3RoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShlbGVtZW50SW5kZXgsIDEpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xuICB9XG5cbiAgZGVsZXRlRW1wbG95ZXJCYXNlUGVyaW9kKGVsZW1lbnRJbmRleCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGJhc2UgcGVyaW9kIGVtcGxveWVyIGNhbGxlZCBmb3IgPSAnLCBlbGVtZW50SW5kZXgpO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0ud29ya0ZsYWcgPSBcIk5cIjtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLmVtcERlbGV0ZWQgPSBcIllcIjtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWZ0ZXIgZGVsZXRlIGJhc2UgcGVyaW9kIGVtcGxveWVyIGxpc3QgaXMgPSAnLCB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlKTtcbiAgfVxuXG4gIGVkaXRFbXBsb3llcihlbXBsb3llcikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdFZGl0IG1ldGhvZCBjYWxsZWQnLCBlbXBsb3llcik7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbmlzaChlbXBsb3llcikge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdGaW5pc2ggRW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIpO1xuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcbiAgICBlbXBsb3llci53b3JrRmxhZyA9ICdZJztcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xuICAgIHRoaXMubW9kZWxEaXNwbGF5LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgQmFzZVBlcmlvZCBFbXBsb3llciBjYWxsZWQgZm9yICcsIGVtcGxveWVyKTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5kZXggVG8gRWRpdCA9ICcsIHRoaXMuaW5kZXhUb0VkaXQpO1xuICB9XG5cbiAgb25Nb2RlbENhbmNlbChjYW5jZWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FuY2VsIE1ldGhvZCAgJywgY2FuY2VsKTtcbiAgICB0aGlzLmRpc3BsYXkgPSBjYW5jZWw7XG4gICAgdGhpcy5iYXNlUGVyaW9kZGlzcGxheSA9IGNhbmNlbDtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gZmFsc2U7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FmdGVyIHZhbHVlIGNoYW5nZSBvbiBlbXBsb3llciBncmlkICcsIHRoaXMuZGlzcGxheSk7XG4gIH1cblxuICBhZGRFbXBsb3llcihldmVudDogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZGQgRW1wbG95ZXIgY2FsbGVkIGZyb20gZ3JpZCAnLCBldmVudCwgJ2luZGV4VG9FZGl0JywgdGhpcy5pbmRleFRvRWRpdCwndGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcicsdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcik7XG4gICAgZXZlbnQuZW1wRGVsZXRlZCA9ICdOJztcbiAgICBpZiAodGhpcy5pbmRleFRvRWRpdCB8fCB0aGlzLmluZGV4VG9FZGl0ID09IDApIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgaWYgb2YgYWRkIGVtcGxveWVyIC0tICcsZXZlbnQpXG4gICAgICBsZXQgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XG4gICAgICBsZXQgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSBuZXcgRW1wbG95ZXJXYWdlc01vZGVsKCk7XG4gICAgICBpZiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcbiAgICAgICAgZW1wRGF0YU1vZGVsID0gIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdLmVtcGxveWVyRGF0YTtcbiAgICAgICAgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XS5lbXBsb3llclByb3ZpZGVkV2FnZXM7XG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzEnXG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJQcm92aWRlZFdhZ2VzID0gZW1wUHJvdmlkZWRXYWdlTW9kZWw7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXNldHRpbmcgdGhlIHZhbHVlIGFnYWluID0gICcsZXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XG4gICAgICAgIGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xuICAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZW1wbG95ZXJOYW1lO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsnLScgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xuICAgICAgfSBlbHNlIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdGRUQnKXsgXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmZlZEVtcGxveWVyTmFtZTtcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XG4gICAgICAgIGV2ZW50LmFkZHJlc3NbJ3N0cmVldEFkZHJlc3MnXSArICcgJyArIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctJyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XG4gICAgICB9XG4gICAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llclR5cGUgPSBldmVudC5lbXBsb3llclR5cGU7XG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcbiAgICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVySWQ9ZXZlbnQuZW1wbG95ZXJJZDtcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTE9ZXZlbnQuYWRkcmVzcz8uc3RyZWV0QWRkcmVzcztcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xuICAgICAgICBldmVudC5icEVtcGxveWVyRmxhZyA9ICcwJ1xuICAgICAgfVxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0gPSBldmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBlbHNlIG9mIGFkZCBlbXBsb3llciAtLSAnLGV2ZW50KVxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgICAgIGxldCBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKVxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XG4gICAgICBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcbiAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcbiAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmVtcGxveWVyTmFtZTtcbiAgICAgIGVtcERhdGFNb2RlbC5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPVxuICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy0nICsoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xuICAgICAgfSBlbHNlIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdGRUQnKXtcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZmVkRW1wbG95ZXJOYW1lO1xuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJyAnICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xuICAgICAgfWVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkluc2lkZSBlbHNlIC0gbm8gYWRkcmVzcyBmb3IgdGhpcyBlbXBsb3llciB0eXBlXCIpO1xuICAgICAgfVxuICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVyVHlwZSA9IGV2ZW50LmVtcGxveWVyVHlwZTtcbiAgICAgIGVtcERhdGFNb2RlbC5lbXBsb3llcklkPWV2ZW50LmVtcGxveWVySWQ7XG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xuICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xuICAgICAgaWYgKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzEnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzAnO1xuICAgICAgfVxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0LnB1c2godGhpcy5jbGFpbWRldGFpbE1vZGVsKTtcbiAgICB9XG4gICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XG4gIH1cblxuICByZW1vdmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gaW5kZXg7XG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gc2VsZWN0ZWRFbXBsb3llcjtcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlQmFzZVBlcmlvZEVtcGxveWVyKCl7XG4gICAgdGhpcy5kZWxldGVFbXBsb3llckJhc2VQZXJpb2QodGhpcy5pbmRleFRvRWRpdCk7XG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gbnVsbDtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcbiAgfVxuXG4gIHJlc3RvcmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBiYXNlIHBlcmlvZCBlbXBsb3llciBjYWxsZWQgZm9yID0gJywgaW5kZXgpO1xuICAgIGxldCBjdXJyZW50V29ya0ZsYWdWYWx1ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS53b3JrRmxhZztcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0ud29ya0ZsYWcgPSBjdXJyZW50V29ya0ZsYWdWYWx1ZSA/IChjdXJyZW50V29ya0ZsYWdWYWx1ZSA9PSBcIk5cIiA/IFwiWVwiIDogXCJOXCIpIDogbnVsbDtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0uZW1wRGVsZXRlZCA9IFwiTlwiO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgYmFzZSBwZXJpb2QgZW1wbG95ZXIgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gbnVsbDtcbiAgfVxuICBzZXRDaG9pc2VNb2RlbHMoZW1wOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKTogdm9pZCB7XG4gICAgbGV0IHNlcFJlYXNvbiA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5yZWFzb25TZXBhcmF0aW9uPy52YWx1ZSk7XG4gICAgaWYoc2VwUmVhc29uLmxlbmd0aCA+IDApe1xuICAgICAgZW1wLnJlYXNvblNlcGFyYXRpb24gPSBzZXBSZWFzb25bMF07XG4gICAgfVxuICAgIGxldCBkaXNjaGFyZ2VSZWFzb24gOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5kaXNjaGFyZ2VEZXRhaWw/LnZhbHVlKTtcbiAgICBpZihkaXNjaGFyZ2VSZWFzb24ubGVuZ3RoID4gMCl7XG4gICAgICBlbXAuZGlzY2hhcmdlRGV0YWlsID0gZGlzY2hhcmdlUmVhc29uWzBdO1xuICAgIH1cbiAgICBsZXQgdm9sUXVpdCA6IENob2ljZXNNb2RlbFtdID0gdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC52b2xRdWl0RGV0YWlscz8udmFsdWUpO1xuICAgIGlmKHZvbFF1aXQubGVuZ3RoID4gMCl7XG4gICAgICBlbXAudm9sUXVpdERldGFpbHMgPSB2b2xRdWl0WzBdO1xuICAgIH1cbiAgICBsZXQgcGF5UmF0ZUZyZXF1ZW5jeSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5wYXlSYXRlRnJlcXVlbmN5Py52YWx1ZSk7XG4gICAgaWYocGF5UmF0ZUZyZXF1ZW5jeS5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC5wYXlSYXRlRnJlcXVlbmN5ID0gcGF5UmF0ZUZyZXF1ZW5jeVswXTtcbiAgICB9XG5cbiAgICBsZXQgY291bnRyeSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy53b3JrQ291bnRyeU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAuZmVkV29ya0NvdW50cnk/LnZhbHVlKTtcbiAgICBpZihjb3VudHJ5Lmxlbmd0aCA+IDApe1xuICAgICAgZW1wLmZlZFdvcmtDb3VudHJ5ID0gY291bnRyeVswXTtcbiAgICB9XG5cbiAgICBsZXQgc3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrU3RhdGU/LnZhbHVlKTtcbiAgICBpZihzdGF0ZS5sZW5ndGggPiAwKXtcbiAgICAgIGVtcC5mZWRXb3JrU3RhdGUgPSBzdGF0ZVswXTtcbiAgICB9XG5cbiAgICBsZXQgc2VydmljZUJyYW5jaCA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnNlcnZpY2VCcmFuY2g/LnZhbHVlKTtcbiAgICBpZihzZXJ2aWNlQnJhbmNoLmxlbmd0aCA+IDApe1xuICAgICAgZW1wLnNlcnZpY2VCcmFuY2ggPSBzZXJ2aWNlQnJhbmNoWzBdO1xuICAgIH1cblxuICAgIGxldCB3b3JrU3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC53b3JrU3RhdGU/LnZhbHVlPy50cmltKCkpO1xuICAgIGVtcC53b3JrU3RhdGUgPSB3b3JrU3RhdGVbMF07XG5cbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYgKCFlLmlzRW1wbG95ZXJFZGl0ZWQpIHtcbiAgICAgICAgZS5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY291bnQgPSB0aGlzLmNvdW50ICsgMTtcbiAgICAgICAgaWYgKHRoaXMuY291bnQgPD0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgY3RybCA9IHRoaXMuZm9ybT8uZ2V0KCdwcmV2d29yaycpO1xuICAgICAgICAgIGlmICghY3RybCkgcmV0dXJuO1xuICAgICAgICAgIGNvbnN0IGhhc0Vycm9yID1cbiAgICAgICAgICAgICEhY3RybC5lcnJvcnM/LmJwRW1wbHJGbGFnICYmIChjdHJsLnRvdWNoZWQgfHwgY3RybC5kaXJ0eSk7XG5cbiAgICAgICAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmdyaWRUb3A/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgICAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG5cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTVweDtcIiAjZ3JpZFRvcD5cclxuPGlvbi1yb3c+XHJcbiAgPGlvbi1jb2w+ICAgIFxyXG4gICAgPGZhLWljb24gW2ljb25dPVwidXRpbC5pc1N0YXRlKCdNUycpID8gWydmYWwnLCAnZWRpdCddIDogWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInV0aWwuaXNTdGF0ZSgnTVMnKSA/ICgnaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmNvbmZpcm0ubXMnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sKSA6ICgnaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmNvbmZpcm0nIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sKVwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8YnIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuZGVsZXRlJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8YnIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmFkZCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGJyIGNsYXNzPVwibW9iaWxlLWFjdGlvbi12aWV3XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXV0aWwuaXNTdGF0ZSgnTVMnKVwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrO1wiPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuZWRpdCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPC9kaXY+XHJcbiAgICA8YnIgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNUycpXCIgY2xhc3M9XCJtb2JpbGUtYWN0aW9uLXZpZXdcIj5cclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLXJlc3RvcmUtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5yZXN0b3JlJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2lvbi1jb2w+XHJcbjwvaW9uLXJvdz5cclxuXHJcbjxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjb2xzXCIgW3ZhbHVlXT1cImNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdFwiIFtsb2FkaW5nXT1cInNob3dQcm9ncmVzc0JhclwiXHJcbiBbcm93SG92ZXJdPVwidHJ1ZVwiICpuZ0lmPVwiY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2VcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0cj5cclxuICAgICAgPHRoIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmVtcGxveWVyLm5hbWVcInx0cmFuc2xhdGV9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGg+XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmpvYi50aXRsZVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5wYXlcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuZGF0ZXNcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuc2VwLnJlYXNvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgXHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW1wbG95ZXIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgIDx0ciBjbGFzcz1cInVpLXNlbGVjdGFibGUtcm93XCIgW25nQ2xhc3NdPVwiZW1wbG95ZXIuZW1wRGVsZXRlZD09J1knID8gJ3N0cmlrZXRocm91Z2gnIDogbnVsbFwiICpuZ0lmPVwiZW1wbG95ZXIuZGlzcGxheVNlYXNvbmFsRW1wID09PSB0cnVlXCI+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAqbmdJZj1cImVtcGxveWVyLm9zYUJwRW1wbG95ZXJGbGFnID09PSAnMScgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09PSdSRUcnICYmIGVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUgIT0gbnVsbDsgZWxzZSB3b3JrU3RhdGVcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gLSB7e2VtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5U3RhdGUudGV4dH19PGJyPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjd29ya1N0YXRlPlxyXG4gICAgICAgIDx0ZCBbc3R5bGUuQ29sb3JdPVwiKCFlbXBsb3llci5pc0VtcGxveWVyRWRpdGVkICYmIGVtcGxveWVyLmlzRW1wbG95ZXJHcmlkU3VibWl0dGVkKSA/ICcjZWI0NDVhJzonJ1wiXHJcbiAgICAgICAgKm5nSWY9XCJlbXBsb3llci5vc2FCcEVtcGxveWVyRmxhZyA9PT0gJzEnICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSA9PT0nUkVHJyAmJiBlbXBsb3llci53b3JrU3RhdGUgIT0gbnVsbDsgZWxzZSBub3RPc2FCcEFuZFJlZ0VtcGxveWVyXCIgIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJkYXRhSGVhZGluZ3NcIiBzdHlsZT1cIndpZHRoOjIwJTtcIiA+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkVtcGxveWVyPC9zcGFuPjxzcGFuIGNsYXNzPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX0gLSB7e2VtcGxveWVyLndvcmtTdGF0ZS50ZXh0fX08YnI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90T3NhQnBBbmRSZWdFbXBsb3llcj5cclxuICAgICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAgICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCdcIiAgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4gY2xhc3M9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAge3tlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWV9fSA8YnI+XHJcbiAgICAgICAgPC9zcGFuPjxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgY2xhc3M9XCJkaXNwbGF5TmFtZVRleHRcIiBbaW5uZXJIdG1sXT1cImVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPiAgICAgICAgIFxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIFxyXG4gICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAqbmdJZj1cIiFlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWUgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJ1wiICBjb2xzcGFuPVwiMlwiIGNsYXNzPVwiZGF0YUhlYWRpbmdzXCIgc3R5bGU9XCJ3aWR0aDoyMCU7XCIgPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5FbXBsb3llcjwvc3Bhbj48c3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgW3N0eWxlLkNvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnI2ViNDQ1YSc6JydcIlxyXG4gICAgICAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCIgY29sc3Bhbj1cIjJcIiBjbGFzcz1cImRhdGFIZWFkaW5nc1wiIHN0eWxlPVwid2lkdGg6MjAlO1wiID48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+RW1wbG95ZXI8L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgICB7e2VtcGxveWVyLnNlcnZpY2VCcmFuY2gudGV4dH19IDxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj4gXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgXHJcbiAgICAgICAgW2NvbG9yXT1cIighZW1wbG95ZXIuaXNFbXBsb3llckVkaXRlZCAmJiBlbXBsb3llci5pc0VtcGxveWVyR3JpZFN1Ym1pdHRlZCkgPyAnZGFuZ2VyJzonc3VjY2VzcydcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCYXNlUGVyaW9kRW1wbG95ZXIoZW1wbG95ZXIpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJBZGQgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzAnXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICBbY29sb3JdPVwiKCFlbXBsb3llci5pc0VtcGxveWVyRWRpdGVkICYmIGVtcGxveWVyLmlzRW1wbG95ZXJHcmlkU3VibWl0dGVkKSA/ICdkYW5nZXInOidzdWNjZXNzJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiRWRpdCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtpZF09XCInYnRuQ29uZmlybUVtcGxveWVyLScgKyByb3dJbmRleFwiIHNpemU9XCJzbWFsbFwiIFtjb2xvcl09XCIoIWVtcGxveWVyLmlzRW1wbG95ZXJFZGl0ZWQgJiYgZW1wbG95ZXIuaXNFbXBsb3llckdyaWRTdWJtaXR0ZWQpID8gJ2Rhbmdlcic6J3N1Y2Nlc3MnXCJcclxuICAgICAgICAgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiAhZW1wbG95ZXIucGF5UmF0ZSAmJiAhZW1wbG95ZXIuc3RhcnREYXRlICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZmluaXNoKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQ29uZmlybSBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwidXRpbC5pc1N0YXRlKCdNUycpID8gWydmYWwnLCAnZWRpdCddIDogWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gW2lkXT1cIididG5EZWxldGVFbXBsb3llci0nICsgcm93SW5kZXhcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzAnXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVFbXBsb3llcihyb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSBlbXBsb3llclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1cHg7XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBbaWRdPVwiJ2J0blJlbW92ZUVtcGxveWVyLScgKyByb3dJbmRleFwiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVFbXBsb3ltZW50KGVtcGxveWVyLCByb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSBlbXBsb3llclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA1cHg7XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQ9PSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVzdG9yZUVtcGxveW1lbnQoZW1wbG95ZXIsIHJvd0luZGV4KTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVzdG9yZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtcmVzdG9yZS1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8L3RkPiAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb24gJiYgIWVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkpvYiBUaXRsZTwvc3Bhbj57e2VtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb24gJiYgIWVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPkpvYiBUaXRsZTwvc3Bhbj57e2VtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlID09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+Sm9iIFRpdGxlPC9zcGFuPjwvdGQ+XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlICE9J01JTCcgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5wYXlSYXRlRnJlcXVlbmN5XCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlBheTwvc3Bhbj57e2VtcGxveWVyLnBheVJhdGUgfCBjdXJyZW5jeX19L3t7ZW1wbG95ZXIucGF5UmF0ZUZyZXF1ZW5jeS50ZXh0fX08L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGUgPT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5QYXk8L3NwYW4+PC90ZD5cclxuXHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nUkVHJyAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW5kRGF0ZVwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj5TdGFydCBhbmQgRW5kPC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGUgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J0ZFRCcgJiYgZW1wbG95ZXIuc3RhcnREYXRlRmVkICYmIGVtcGxveWVyLmVuZERhdGVGZWRcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+U3RhcnQgYW5kIEVuZDwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlRmVkIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnICYmIGVtcGxveWVyLnN0YXJ0RGF0ZU1pbCAmJiBlbXBsb3llci5lbmREYXRlTWlsXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlN0YXJ0IGFuZCBFbmQ8L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZU1pbCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJyAmJiBlbXBsb3llci5yZWFzb25TZXBhcmF0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlNlcGFyYXRpb24gUmVhc29uPC9zcGFuPnt7ZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvbi50ZXh0fX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPlNlcGFyYXRpb24gUmVhc29uPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkIGNvbHNwYW49XCI0XCI+PC90ZD5cclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0YWJsZT5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIjJcIiBzdHlsZT1cIndpZHRoOiA0MCU7XCIgY2xhc3M9XCJhY3Rpb24tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LmZvb3Rlci5sYWJlbCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cImFkZC1lbXBsb3llclwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiAoY2xpY2spPVwiYWRkTmV3RW1wRGV0YWlscygpXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkFkZCBlbXBsb3llclwiIFtpZF09XCInYnRuQWRkRW1wbG95ZXInXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj4mbmJzcDs8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuPC9wLXRhYmxlPlxyXG4gIDxhcHAtYWRkLWVtcGxveWVyICpuZ0lmPVwiZGlzcGxheVwiIChzdWNjZXNzKT1cImFkZEVtcGxveWVyKCRldmVudClcIiAgW3JlY29yZEluZGV4VG9FZGl0XT1cImluZGV4VG9FZGl0XCIgXHJcbiAgICAoYmFzZVBlcmlvZEluZGV4KT1cImRlbGV0ZUJwRW1wbCgkZXZlbnQpXCIgW2lzQmFzZVBlcmlvZEVtcGxveWVyXT1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgW2lzTmV3Q2xhaW1dPVwiaXNOZXdDbGFpbVwiIFxyXG4gICAgKG1vZGVsQ2FuY2VsKT1cIm9uTW9kZWxDYW5jZWwoJGV2ZW50KVwiIFtkb2JdPVwiY2xhaW1hbnREb2JcIj5cclxuICA8L2FwcC1hZGQtZW1wbG95ZXI+XHJcblxyXG4gIDxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93Q29uZmlybVBvcHVwXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiAqbmdJZj1cInNlbGVjdGVkRW1wbG95ZXJcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJoZWFkaW5nXCI+e3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5oZWFkaW5nJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAge3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lICE9IG51bGxcIj5cclxuICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZGJhXCJ8dHJhbnNsYXRlfX0ge3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS50cmFkZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgPGJyPlxyXG4gICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDxpb24tbGFiZWw+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiBbaW5uZXJIdG1sXT1cInNlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheSB8IHRydXN0SHRtbFwiPjwvZGl2PjwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZmFpbHVyZS5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIlsnaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5kaWRudC53b3JrLmxhYmVsJyB8IHRyYW5zbGF0ZV1cIj48L2Rpdj5cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwicmVtb3ZlQmFzZVBlcmlvZEVtcGxveWVyKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnJlbW92ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC1kaWFsb2c+XHJcbjwvZGl2PiJdfQ==
|