@senior-gestao-pessoas/hcm-contract-employee-history 5.5.2 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.js +651 -251
  2. package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.js.map +1 -1
  3. package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js +2 -2
  4. package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js.map +1 -1
  5. package/core/dtos/employee-dependent-save-dto.d.ts +2 -1
  6. package/core/entities/dependent-draft/dependent-draft.d.ts +11 -0
  7. package/core/entities/dependent-draft/dependent-draft.dto.d.ts +13 -0
  8. package/core/entities/dependent-draft/dependent-draft.service.d.ts +13 -0
  9. package/esm2015/core/dtos/employee-dependent-save-dto.js +1 -1
  10. package/esm2015/core/entities/dependent-draft/dependent-draft.dto.js +1 -0
  11. package/esm2015/core/entities/dependent-draft/dependent-draft.js +56 -0
  12. package/esm2015/core/entities/dependent-draft/dependent-draft.service.js +26 -0
  13. package/esm2015/lib/employee-dependent/employee-dependent.module.js +14 -2
  14. package/esm2015/lib/employee-dependent/form/employee-dependent-form.component.js +179 -75
  15. package/esm2015/lib/employee-dependent/form/employee-dependent-personal-step/employee-dependent-personal-step.component.js +1 -1
  16. package/esm2015/lib/employee-dependent/list/draft/dependent-list-draft.component.js +216 -0
  17. package/esm2015/lib/employee-dependent/list/employee-dependent-list.component.js +13 -2
  18. package/esm2015/lib/utils/helpers.js +24 -1
  19. package/esm2015/public-api.js +1 -2
  20. package/esm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +10 -8
  21. package/esm5/core/dtos/employee-dependent-save-dto.js +1 -1
  22. package/esm5/core/entities/dependent-draft/dependent-draft.dto.js +1 -0
  23. package/esm5/core/entities/dependent-draft/dependent-draft.js +61 -0
  24. package/esm5/core/entities/dependent-draft/dependent-draft.service.js +29 -0
  25. package/esm5/lib/employee-dependent/employee-dependent.module.js +14 -2
  26. package/esm5/lib/employee-dependent/form/employee-dependent-form.component.js +183 -75
  27. package/esm5/lib/employee-dependent/form/employee-dependent-personal-step/employee-dependent-personal-step.component.js +1 -1
  28. package/esm5/lib/employee-dependent/list/draft/dependent-list-draft.component.js +230 -0
  29. package/esm5/lib/employee-dependent/list/employee-dependent-list.component.js +17 -2
  30. package/esm5/lib/utils/helpers.js +24 -1
  31. package/esm5/public-api.js +1 -2
  32. package/esm5/senior-gestao-pessoas-hcm-contract-employee-history.js +10 -8
  33. package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +612 -244
  34. package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
  35. package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js +641 -244
  36. package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
  37. package/lib/employee-dependent/form/employee-dependent-form.component.d.ts +16 -7
  38. package/lib/employee-dependent/list/draft/dependent-list-draft.component.d.ts +49 -0
  39. package/lib/employee-dependent/list/employee-dependent-list.component.d.ts +3 -0
  40. package/lib/utils/helpers.d.ts +11 -1
  41. package/package.json +1 -1
  42. package/public-api.d.ts +0 -1
  43. package/senior-gestao-pessoas-hcm-contract-employee-history.d.ts +9 -7
  44. package/senior-gestao-pessoas-hcm-contract-employee-history.metadata.json +1 -1
  45. package/esm2015/locale/fallback.js +0 -54
  46. package/esm5/locale/fallback.js +0 -54
  47. package/locale/fallback.d.ts +0 -1
@@ -4,27 +4,33 @@ import { FormControl, FormGroup } from "@angular/forms";
4
4
  import { ActivatedRoute } from "@angular/router";
5
5
  import { TranslateService } from "@ngx-translate/core";
6
6
  import { SUrlService } from "@senior-gestao-pessoas/angular-components";
7
+ import { validateSpecificControls } from "../../utils/helpers";
7
8
  import { StepState } from "@seniorsistemas/angular-components";
8
9
  import { ConfirmationService, MessageService } from "primeng/api";
9
10
  import { Subject } from "rxjs";
10
11
  import { finalize, takeUntil } from "rxjs/operators";
12
+ import { DependentDraft } from "../../../core/entities/dependent-draft/dependent-draft";
13
+ import { DependentDraftService } from "../../../core/entities/dependent-draft/dependent-draft.service";
11
14
  import { EmployeeDependentService } from "../../../core/entities/employee-dependent-core/employee-dependent-core.service";
12
15
  import { FocusService } from "../../../shared/focus/focus.service";
13
16
  import { DateValidator } from "../../utils/date-validator/date-validator";
14
17
  import { mapFormToDependentSave, mapPersonRetrieveToEmployeeDependentForm } from "./employee-dependent-form-converter";
15
18
  var EmployeeDependentFormComponent = /** @class */ (function () {
16
- function EmployeeDependentFormComponent(translateService, employeeDependentService, sUrlService, focusService, route, confirmationService, messageService) {
19
+ function EmployeeDependentFormComponent(translateService, employeeDependentService, sUrlService, focusService, dependentDraftService, route, confirmationService, messageService) {
17
20
  this.translateService = translateService;
18
21
  this.employeeDependentService = employeeDependentService;
19
22
  this.sUrlService = sUrlService;
20
23
  this.focusService = focusService;
24
+ this.dependentDraftService = dependentDraftService;
21
25
  this.route = route;
22
26
  this.confirmationService = confirmationService;
23
27
  this.messageService = messageService;
24
28
  this.loading = false;
25
29
  this.showSideBar = false;
26
30
  this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
27
- this.formGroup = new FormGroup({});
31
+ this.formGroup = new FormGroup({
32
+ draftId: new FormControl(null),
33
+ });
28
34
  this.ngUnsubscribe = new Subject();
29
35
  this.createSteps();
30
36
  }
@@ -42,29 +48,135 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
42
48
  this.localeConfig = data.localeConfig;
43
49
  this.dateFormat = DateValidator.getDateFormatFromCalendar(data.localeConfig.calendar);
44
50
  };
51
+ EmployeeDependentFormComponent.prototype.undoStep = function () {
52
+ if (this.activeIndex === 1) {
53
+ this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
54
+ }
55
+ else if (this.activeIndex === 0) {
56
+ return;
57
+ }
58
+ this.activeIndex--;
59
+ };
60
+ EmployeeDependentFormComponent.prototype.nextStep = function () {
61
+ if (this.activeIndex === 0) {
62
+ var formBasicStep = this.formGroup.get("basicDependentPersonData");
63
+ this.validateAllFormFields(formBasicStep);
64
+ if (!formBasicStep.valid && !this.dependentId) {
65
+ this.steps[1].disabled = true;
66
+ return this.messageService.add({
67
+ severity: "error",
68
+ summary: this.translateService.instant("hcm_contract.employment_contract.error"),
69
+ detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
70
+ });
71
+ }
72
+ this.steps[1].disabled = false;
73
+ this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.admission_employee_form_btn_step_last");
74
+ this.activeIndex++;
75
+ }
76
+ else if (this.activeIndex === 1) {
77
+ this.validateAllFormFields(this.formGroup);
78
+ if (!this.formGroup.valid) {
79
+ var msg = this.requiredFieldsStep1 ? this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group_step_1")
80
+ : this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group");
81
+ return this.messageService.add({
82
+ severity: "error",
83
+ summary: this.translateService.instant("hcm_contract.employment_contract.error"),
84
+ detail: msg,
85
+ });
86
+ }
87
+ if (this.dependentId) {
88
+ this.onBeforeSave();
89
+ }
90
+ else {
91
+ this.onSaveDependent();
92
+ }
93
+ }
94
+ };
95
+ EmployeeDependentFormComponent.prototype.isNew = function () {
96
+ return !this.dependentId;
97
+ };
98
+ EmployeeDependentFormComponent.prototype.isNewToLabel = function () {
99
+ return this.isNew() ? "create" : "edit";
100
+ };
101
+ EmployeeDependentFormComponent.prototype.onStepSelected = function (event) {
102
+ if (event.index === 0) {
103
+ var complementForm = this.formGroup.get("complementDependentPersonData");
104
+ if (!complementForm.valid && (!this.dependentId)) {
105
+ this.validateAllFormFields(complementForm);
106
+ return;
107
+ }
108
+ this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
109
+ }
110
+ if (event.index === 1) {
111
+ var basicForm = this.formGroup.get("basicDependentPersonData");
112
+ if (!basicForm.valid && (!this.dependentId)) {
113
+ this.validateAllFormFields(basicForm);
114
+ return;
115
+ }
116
+ }
117
+ this.activeIndex = event.index;
118
+ };
119
+ EmployeeDependentFormComponent.prototype.onCancel = function () {
120
+ this.showSideBar = false;
121
+ };
122
+ EmployeeDependentFormComponent.prototype.saveDependentDraft = function () {
123
+ var _this = this;
124
+ validateSpecificControls(this.formGroup, [
125
+ "basicDependentPersonData.fullName",
126
+ "complementDependentPersonData.kinshipDependentDegreeType",
127
+ ]);
128
+ var fullName = this.formGroup.get("basicDependentPersonData.fullName");
129
+ var kinshipDependentDegreeType = this.formGroup.get("complementDependentPersonData.kinshipDependentDegreeType");
130
+ if ((this.activeIndex === 0 && !fullName.valid)
131
+ || (this.activeIndex === 1 && !kinshipDependentDegreeType.valid)) {
132
+ return;
133
+ }
134
+ else if (fullName.valid && this.activeIndex === 0) {
135
+ this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.admission_employee_form_btn_step_last");
136
+ return this.activeIndex++;
137
+ }
138
+ this.loading = true;
139
+ this.getSaveObservable()
140
+ .pipe(takeUntil(this.ngUnsubscribe), finalize(function () { return _this.loading = false; }))
141
+ .subscribe(function (res) {
142
+ _this.formGroup.get("draftId").setValue(res === null || res === void 0 ? void 0 : res.id);
143
+ _this.messageService.add({
144
+ severity: "success",
145
+ summary: _this.translateService.instant("hcm_contract.employment_contract.admission_generic_toast_success"),
146
+ detail: _this.translateService.instant("hcm_contract.employment_contract.admission_draft_employee_form_save_sucess"),
147
+ });
148
+ _this.showSideBar = false;
149
+ _this.closeSideBar.emit(true);
150
+ });
151
+ };
45
152
  EmployeeDependentFormComponent.prototype.subscribeEvents = function () {
46
153
  var _this = this;
47
154
  this.employeeDependentService.getOpenSideBarAndStartForm()
155
+ .pipe(takeUntil(this.ngUnsubscribe))
48
156
  .subscribe(function (data) {
49
157
  _this.activeIndex = 0;
50
158
  _this.buttonLabel = _this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
51
159
  _this.dependentId = data === null || data === void 0 ? void 0 : data.dependentId;
52
160
  _this.personId = data === null || data === void 0 ? void 0 : data.personId;
53
161
  _this.formGroup.reset();
54
- if (!(data === null || data === void 0 ? void 0 : data.dependentId)) {
162
+ if (!(data === null || data === void 0 ? void 0 : data.dependentId) && !data.dependentDraftId) {
55
163
  _this.steps[1].disabled = true;
56
164
  _this.formGroup.enable();
57
165
  if (data.personId) {
58
166
  _this.personRetrieveInformation();
59
167
  }
60
168
  }
61
- else {
169
+ else if ((data === null || data === void 0 ? void 0 : data.personId) && !data.dependentDraftId) {
62
170
  _this.personRetrieveInformation();
63
171
  _this.steps[0].disabled = false;
64
172
  _this.steps[1].disabled = false;
65
173
  }
174
+ else if (data === null || data === void 0 ? void 0 : data.dependentDraftId) {
175
+ _this.loadDraft(data.dependentDraftId);
176
+ }
66
177
  _this.showSideBar = true;
67
178
  });
179
+ this.onSaveByListDraft();
68
180
  };
69
181
  EmployeeDependentFormComponent.prototype.createSteps = function () {
70
182
  var personalData = {
@@ -106,13 +218,29 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
106
218
  .pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
107
219
  _this.loading = false;
108
220
  })).subscribe(function (data) {
221
+ var _a;
222
+ var draftId = (_a = _this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.value;
109
223
  if (data === null || data === void 0 ? void 0 : data.id) {
110
224
  _this.addMessageSucess();
111
225
  _this.showSideBar = false;
112
226
  _this.closeSideBar.emit(true);
227
+ if (draftId) {
228
+ _this.deleteDraft(draftId);
229
+ }
113
230
  }
114
231
  });
115
232
  };
233
+ EmployeeDependentFormComponent.prototype.deleteDraft = function (draftId) {
234
+ var _this = this;
235
+ this.loading = true;
236
+ this.dependentDraftService.delete(draftId)
237
+ .pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
238
+ _this.loading = false;
239
+ }))
240
+ .subscribe(function () {
241
+ _this.closeSideBar.emit(true);
242
+ });
243
+ };
116
244
  EmployeeDependentFormComponent.prototype.addMessageSucess = function () {
117
245
  this.messageService.add({
118
246
  severity: "success",
@@ -133,47 +261,9 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
133
261
  });
134
262
  this.focusService.focusFirstInvalidInput();
135
263
  };
136
- EmployeeDependentFormComponent.prototype.undoStep = function () {
137
- if (this.activeIndex === 1) {
138
- this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
139
- }
140
- else if (this.activeIndex === 0) {
141
- return;
142
- }
143
- this.activeIndex--;
144
- };
145
- EmployeeDependentFormComponent.prototype.nextStep = function () {
146
- if (this.activeIndex === 0) {
147
- var formBasicStep = this.formGroup.get("basicDependentPersonData");
148
- this.validateAllFormFields(formBasicStep);
149
- if (!formBasicStep.valid && !this.dependentId) {
150
- this.steps[1].disabled = true;
151
- return this.messageService.add({
152
- severity: "error",
153
- summary: this.translateService.instant("hcm_contract.employment_contract.error"),
154
- detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
155
- });
156
- }
157
- this.steps[1].disabled = false;
158
- this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.save");
159
- this.activeIndex++;
160
- }
161
- else if (this.activeIndex === 1) {
162
- this.validateAllFormFields(this.formGroup);
163
- if (!this.formGroup.valid) {
164
- return this.messageService.add({
165
- severity: "error",
166
- summary: this.translateService.instant("hcm_contract.employment_contract.error"),
167
- detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
168
- });
169
- }
170
- if (this.dependentId) {
171
- this.onBeforeSave();
172
- }
173
- else {
174
- this.onSaveDependent();
175
- }
176
- }
264
+ EmployeeDependentFormComponent.prototype.requiredFieldsStep1 = function () {
265
+ var _a, _b, _c, _d;
266
+ return ((_a = this.formGroup.get("basicDependentPersonData.fullName")) === null || _a === void 0 ? void 0 : _a.value) && ((_b = this.formGroup.get("basicDependentPersonData.birthDate")) === null || _b === void 0 ? void 0 : _b.value) && ((_c = this.formGroup.get("basicDependentPersonData.genderType")) === null || _c === void 0 ? void 0 : _c.value) && ((_d = this.formGroup.get("basicDependentPersonData.cpf")) === null || _d === void 0 ? void 0 : _d.value);
177
267
  };
178
268
  EmployeeDependentFormComponent.prototype.isFormChanged = function (beforeData, afterData) {
179
269
  if (!(beforeData === null || beforeData === void 0 ? void 0 : beforeData.personDependentData) || !afterData) {
@@ -182,7 +272,7 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
182
272
  var keysToCheck = [
183
273
  "basicDependentPersonData",
184
274
  "complementDependentPersonData",
185
- "documentDependentPersonData"
275
+ "documentDependentPersonData",
186
276
  ];
187
277
  return keysToCheck.some(function (formGroup) {
188
278
  return Object.keys(beforeData.personDependentData[formGroup] || {}).some(function (key) {
@@ -193,33 +283,6 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
193
283
  });
194
284
  });
195
285
  };
196
- EmployeeDependentFormComponent.prototype.isNew = function () {
197
- return !this.dependentId;
198
- };
199
- EmployeeDependentFormComponent.prototype.isNewToLabel = function () {
200
- return this.isNew() ? "create" : "edit";
201
- };
202
- EmployeeDependentFormComponent.prototype.onStepSelected = function (event) {
203
- if (event.index === 0) {
204
- var complementForm = this.formGroup.get("complementDependentPersonData");
205
- if (!complementForm.valid && (!this.dependentId)) {
206
- this.validateAllFormFields(complementForm);
207
- return;
208
- }
209
- this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
210
- }
211
- if (event.index === 1) {
212
- var basicForm = this.formGroup.get("basicDependentPersonData");
213
- if (!basicForm.valid && (!this.dependentId)) {
214
- this.validateAllFormFields(basicForm);
215
- return;
216
- }
217
- }
218
- this.activeIndex = event.index;
219
- };
220
- EmployeeDependentFormComponent.prototype.onCancel = function () {
221
- this.showSideBar = false;
222
- };
223
286
  EmployeeDependentFormComponent.prototype.onBeforeSave = function () {
224
287
  var _this = this;
225
288
  if (!this.formGroup.dirty || !this.isFormChanged(this.loadedDependent, this.formGroup.getRawValue())) {
@@ -240,11 +303,53 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
240
303
  this.closeSideBar.emit(true);
241
304
  this.addMessageSucess();
242
305
  };
306
+ EmployeeDependentFormComponent.prototype.loadDraft = function (draftId) {
307
+ var _this = this;
308
+ this.loading = true;
309
+ this.dependentDraftService.get(draftId)
310
+ .pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
311
+ _this.loading = false;
312
+ }))
313
+ .subscribe(function (draft) {
314
+ var _a;
315
+ (_a = _this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.setValue(draftId);
316
+ var data = DependentDraft.fromDto(draft);
317
+ _this.formGroup.patchValue(data);
318
+ });
319
+ };
320
+ EmployeeDependentFormComponent.prototype.getSaveObservable = function () {
321
+ var _a;
322
+ var form = this.formGroup.getRawValue();
323
+ var dto = DependentDraft.toDto(form, this.employeeId, this.admissionDraft);
324
+ var observable;
325
+ var id = (_a = this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.value;
326
+ if (id) {
327
+ observable = this.dependentDraftService.update(id, dto);
328
+ }
329
+ else {
330
+ observable = this.dependentDraftService.insert(dto);
331
+ }
332
+ return observable;
333
+ };
334
+ EmployeeDependentFormComponent.prototype.onSaveByListDraft = function () {
335
+ var _this = this;
336
+ this.dependentDraftService.saveDraftEvent
337
+ .pipe(takeUntil(this.ngUnsubscribe))
338
+ .subscribe(function (formData) {
339
+ _this.loading = true;
340
+ if (formData) {
341
+ var data = DependentDraft.fromDto(formData);
342
+ _this.formGroup.patchValue(data);
343
+ _this.onSaveDependent();
344
+ }
345
+ });
346
+ };
243
347
  EmployeeDependentFormComponent.ctorParameters = function () { return [
244
348
  { type: TranslateService },
245
349
  { type: EmployeeDependentService },
246
350
  { type: SUrlService },
247
351
  { type: FocusService },
352
+ { type: DependentDraftService },
248
353
  { type: ActivatedRoute },
249
354
  { type: ConfirmationService },
250
355
  { type: MessageService }
@@ -252,6 +357,9 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
252
357
  __decorate([
253
358
  Input()
254
359
  ], EmployeeDependentFormComponent.prototype, "employeeId", void 0);
360
+ __decorate([
361
+ Input()
362
+ ], EmployeeDependentFormComponent.prototype, "admissionDraft", void 0);
255
363
  __decorate([
256
364
  Input()
257
365
  ], EmployeeDependentFormComponent.prototype, "closeSideBar", void 0);
@@ -259,11 +367,11 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
259
367
  Component({
260
368
  // tslint:disable-next-line:component-selector
261
369
  selector: "fnd-employee-dependent-form",
262
- template: "<s-sidebar [visible]=\"showSideBar\"\n (visibleChange)=\"showSideBar = !showSideBar\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_sidebar_title_' + isNewToLabel() | translate\">\n\n <s-steps [steps]=\"steps\" [activeIndex]=\"activeIndex\" (stepSelected)=\"onStepSelected($event)\"></s-steps>\n <form [formGroup]=\"formGroup\" *sLoadingState=\"loading\">\n <div class=\"ui-fluid\">\n <!-- Dados pessoais -->\n <fnd-employee-dependent-personal-step [hidden]=\"activeIndex !== 0\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-personal-step>\n <!-- Dados complementaris -->\n <fnd-employee-dependent-complement-step [hidden]=\"activeIndex !== 1\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-complement-step>\n\n </div>\n </form>\n <s-footer class=\"footer-sidebar-form-dependent\">\n <s-button (click)=\"onCancel()\" priority=\"link\" style=\"margin-right: auto\"\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n ></s-button>\n <div class=\"footer-end\">\n <s-button priority=\"secondary\"\n *ngIf=\"activeIndex !== 0\"\n iconClass=\"fa fa-arrow-left\"\n (onClick)=\"undoStep()\"\n [disabled]=\"activeIndex === 0\"\n [label]=\"'hcm_contract.employment_contract.employee_dependent_button_back' | translate\">\n </s-button>\n <s-button\n class=\"btn-next\"\n iconClass=\"fa fa-arrow-right\"\n (onClick)=\"nextStep()\"\n [disabled]=\"loading\"\n [label]=\"this.buttonLabel\">\n </s-button>\n </div>\n </s-footer>\n</s-sidebar>\n<p-confirmDialog key=\"edit-dependent\"></p-confirmDialog>\n",
370
+ template: "<s-loading-state [loading]=\"loading\" blockWindow=\"true\"></s-loading-state>\n<s-sidebar [visible]=\"showSideBar\"\n (visibleChange)=\"showSideBar = !showSideBar\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_sidebar_title_' + isNewToLabel() | translate\">\n\n <s-steps [steps]=\"steps\" [activeIndex]=\"activeIndex\" (stepSelected)=\"onStepSelected($event)\"></s-steps>\n <form [formGroup]=\"formGroup\" >\n <div class=\"ui-fluid\">\n <!-- Dados pessoais -->\n <fnd-employee-dependent-personal-step [hidden]=\"activeIndex !== 0\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-personal-step>\n <!-- Dados complementaris -->\n <fnd-employee-dependent-complement-step [hidden]=\"activeIndex !== 1\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-complement-step>\n\n </div>\n </form>\n <s-footer class=\"footer-sidebar-form-dependent\">\n <s-button (click)=\"onCancel()\" priority=\"link\" style=\"margin-right: auto\"\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n ></s-button>\n <div class=\"footer-end\">\n <s-button priority=\"secondary\"\n *ngIf=\"activeIndex !== 0\"\n iconClass=\"fa fa-arrow-left\"\n (onClick)=\"undoStep()\"\n [disabled]=\"activeIndex === 0\"\n [label]=\"'hcm_contract.employment_contract.employee_dependent_button_back' | translate\">\n </s-button>\n <s-button id=\"btn-draft\"\n label=\"{{ 'hcm_contract.employment_contract.btn_dependent_save_draft' | translate }}\"\n priority=\"secondary\"(click)=\"saveDependentDraft()\" [auxiliary]=\"false\"\n [disabled]=\"loading\"></s-button>\n <s-button\n class=\"btn-next\"\n [rightIconClass]=\"!activeIndex ? 'fa fa-arrow-right' : ''\"\n (onClick)=\"nextStep()\"\n [disabled]=\"loading\"\n [label]=\"this.buttonLabel\">\n </s-button>\n </div>\n </s-footer>\n</s-sidebar>\n<p-confirmDialog key=\"edit-dependent\"></p-confirmDialog>\n",
263
371
  styles: [".tab-view-full{width:100%}.toggle-header-fieldset{display:flex!important;justify-content:space-between!important;align-items:center!important}.toggle-header-fieldset .ui-inputgroup span{margin-right:8px!important;font-size:14px;font-weight:400;line-height:21px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.footer-sidebar-form-dependent{display:flex;justify-content:space-between}.message-warn-admisison{padding-left:65px;font-size:14px}.message-warn-admisison p:first-of-type{font-weight:700}.btn-next>button{display:flex!important;flex-direction:row-reverse!important}.btn-next>button span{margin-left:5px!important}"]
264
372
  })
265
373
  ], EmployeeDependentFormComponent);
266
374
  return EmployeeDependentFormComponent;
267
375
  }());
268
376
  export { EmployeeDependentFormComponent };
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMkMsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVF2SDtJQW9CSSx3Q0FDcUIsZ0JBQWtDLEVBQzNDLHdCQUFrRCxFQUN6QyxXQUF3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QThCO1FBTjFDLFNBQVMsQ0FBQztZQUNQLDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsNkJBQTZCO1lBQ3ZDLHE2REFBdUQ7O1NBRTFELENBQUM7T0FDVyw4QkFBOEIsQ0FpUjFDO0lBQUQscUNBQUM7Q0FBQSxBQWpSRCxJQWlSQztTQWpSWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBTVXJsU2VydmljZSB9IGZyb20gXCJAc2VuaW9yLWdlc3Rhby1wZXNzb2FzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgTG9jYWxlT3B0aW9ucywgU3RlcCwgU3RlcFNlbGVjdGlvbkV2ZW50LCBTdGVwU3RhdGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgT3BlblNpZGViYXJEdG8gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kdG9zL2VtcGxveWVlLWRlcGVuZGVudC1zYXZlLWR0b1wiO1xuaW1wb3J0IHsgUGVyc29uUmV0cmlldmVPdXRwdXQgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kdG9zL3BlcnNvbi1yZXRyaWV2ZS5kdG9cIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZm9jdXMvZm9jdXMuc2VydmljZVwiO1xuaW1wb3J0IHsgRGF0ZVZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlscy9kYXRlLXZhbGlkYXRvci9kYXRlLXZhbGlkYXRvclwiO1xuaW1wb3J0IHsgbWFwRm9ybVRvRGVwZW5kZW50U2F2ZSwgbWFwUGVyc29uUmV0cmlldmVUb0VtcGxveWVlRGVwZW5kZW50Rm9ybSB9IGZyb20gXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLWNvbnZlcnRlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudC1mb3JtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wbG95ZWVJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VTaWRlQmFyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgcHVibGljIHBlcnNvbklkO1xuICAgIHB1YmxpYyBkZXBlbmRlbnRJZDtcbiAgICBwdWJsaWMgbG9hZGVkRGVwZW5kZW50OiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgICBwdWJsaWMgc3RlcHM6IFN0ZXBbXTtcbiAgICBwdWJsaWMgYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBsb2NhbGVDb25maWc6IExvY2FsZU9wdGlvbnM7XG4gICAgcHJpdmF0ZSBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVtcGxveWVlRGVwZW5kZW50U2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNVcmxTZXJ2aWNlOiBTVXJsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2N1c1NlcnZpY2U6IEZvY3VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RlcHMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHRoaXMub25Sb3V0ZURhdGFDaGFuZ2UoZGF0YSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IERhdGVWYWxpZGF0b3IuZ2V0RGF0ZUZvcm1hdEZyb21DYWxlbmRhcihkYXRhLmxvY2FsZUNvbmZpZy5jYWxlbmRhcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLmdldE9wZW5TaWRlQmFyQW5kU3RhcnRGb3JtKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IE9wZW5TaWRlYmFyRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50SWQgPSBkYXRhPy5kZXBlbmRlbnRJZDtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcnNvbklkID0gZGF0YT8ucGVyc29uSWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGE/LmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucGVyc29uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyc29uUmV0cmlldmVJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGVyc29uYWxEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX3BlcnNvbmFsX2RhdGFcIiksXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbXBsZW1lbnREYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX2NvbXBsZW1lbnRfZGF0YVwiKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiAhdGhpcy5wZXJzb25JZCxcbiAgICAgICAgICAgIHN0YXRlOiBTdGVwU3RhdGUuRGVmYXVsdCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcGF5cm9sbERhdGEgPSB7XG4gICAgICAgICAgICBpZDogXCJwZXJzb25hbC1kYXRhLXN0ZXBcIixcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zaWRlYmFyX3N0ZXBfcGF5cm9sbF9kYXRhXCIpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3RlcHMgPSBbcGVyc29uYWxEYXRhLCBjb21wbGVtZW50RGF0YSAvKnBheXJvbGxEYXRhKi9dO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNvblJldHJpZXZlSW5mb3JtYXRpb24oKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnBlcnNvblJldHJpZXZlKHsgaWQ6IHRoaXMucGVyc29uSWQgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSxcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChyZXNwb25zZTogUGVyc29uUmV0cmlldmVPdXRwdXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYXBQZXJzb25SZXRyaWV2ZVRvRW1wbG95ZWVEZXBlbmRlbnRGb3JtKHJlc3BvbnNlLCB0aGlzLmVtcGxveWVlSWQsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZERlcGVuZGVudCA9IHsuLi5kYXRhfTtcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnNldERlcGVuZGVudEZvcm1EYXRhKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgb25TYXZlRGVwZW5kZW50KCkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhQ29udmVydGVkID0gbWFwRm9ybVRvRGVwZW5kZW50U2F2ZShcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCksXG4gICAgICAgICAgICB0aGlzLmVtcGxveWVlSWQsXG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVudElkLFxuICAgICAgICAgICAgdGhpcy5wZXJzb25JZCxcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5lbXBsb3llZURwZW5kZW50U2F2ZShkYXRhQ29udmVydGVkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGE/LmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlU3VjZXNzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VTaWRlQmFyLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGFkZE1lc3NhZ2VTdWNlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3Quc3VjY2Vzc190b29sdGlwXCIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zYXZlX3N1Y2Nlc3NcIiksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvY3VzU2VydmljZS5mb2N1c0ZpcnN0SW52YWxpZElucHV0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuZG9TdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRTdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUJhc2ljU3RlcCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtQmFzaWNTdGVwKTtcblxuICAgICAgICAgICAgaWYgKCFmb3JtQmFzaWNTdGVwLnZhbGlkICYmICF0aGlzLmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX2ludmFsaWRfZm9ybV9ncm91cFwiKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LnNhdmVcIik7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19pbnZhbGlkX2Zvcm1fZ3JvdXBcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kZXBlbmRlbnRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25CZWZvcmVTYXZlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25TYXZlRGVwZW5kZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRm9ybUNoYW5nZWQoYmVmb3JlRGF0YTogYW55LCBhZnRlckRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWJlZm9yZURhdGE/LnBlcnNvbkRlcGVuZGVudERhdGEgfHwgIWFmdGVyRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleXNUb0NoZWNrID0gW1xuICAgICAgICAgICAgXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIixcbiAgICAgICAgICAgIFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGFcIixcbiAgICAgICAgICAgIFwiZG9jdW1lbnREZXBlbmRlbnRQZXJzb25EYXRhXCJcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGtleXNUb0NoZWNrLnNvbWUoZm9ybUdyb3VwID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhiZWZvcmVEYXRhLnBlcnNvbkRlcGVuZGVudERhdGFbZm9ybUdyb3VwXSB8fCB7fSkuc29tZShrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVZhbHVlID0gYmVmb3JlRGF0YS5wZXJzb25EZXBlbmRlbnREYXRhW2Zvcm1Hcm91cF1ba2V5XSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyVmFsdWUgPSBhZnRlckRhdGFbZm9ybUdyb3VwXT8uW2tleV0gPz8gXCJcIjtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmVmb3JlVmFsdWUgIT09IGFmdGVyVmFsdWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05ldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlcGVuZGVudElkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05ld1RvTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOZXcoKSA/IFwiY3JlYXRlXCIgOiBcImVkaXRcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TdGVwU2VsZWN0ZWQoZXZlbnQ6IFN0ZXBTZWxlY3Rpb25FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZW1lbnRGb3JtID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgICAgICBpZiAoIWNvbXBsZW1lbnRGb3JtLnZhbGlkICYmICghdGhpcy5kZXBlbmRlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb21wbGVtZW50Rm9ybSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBiYXNpY0Zvcm0gPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgICAgICBpZiAoIWJhc2ljRm9ybS52YWxpZCAmJiAoIXRoaXMuZGVwZW5kZW50SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoYmFzaWNGb3JtKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gZXZlbnQuaW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJlZm9yZVNhdmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZGlydHkgfHwgIXRoaXMuaXNGb3JtQ2hhbmdlZCh0aGlzLmxvYWRlZERlcGVuZGVudCwgdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb3NlU2lkZWJhcldpdGhTdWNjZXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICBcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ190ZXh0X3BlcnNvblwiXG4gICAgICAgICl9XFxuJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ19jb25maXJtYXRpb25cIil9YDtcblxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAga2V5OiBcImVkaXQtZGVwZW5kZW50XCIsXG4gICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19ub1wiKSxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3llc1wiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHRoaXMub25TYXZlRGVwZW5kZW50KCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VTaWRlYmFyV2l0aFN1Y2Nlc3MoKSB7XG4gICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgdGhpcy5hZGRNZXNzYWdlU3VjZXNzKCk7XG4gICAgfVxuXG59XG4iXX0=
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBMkMsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUs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LENBQUM7WUFDcEIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsSUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDOUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLEtBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Z0JBM1dzQyxnQkFBZ0I7Z0JBQ2pCLHdCQUF3QjtnQkFDNUIsV0FBVztnQkFDbkIsWUFBWTtnQkFDTSxxQkFBcUI7Z0JBQzlDLGNBQWM7Z0JBQ0EsbUJBQW1CO2dCQUN4QixjQUFjOztJQTdCMUM7UUFEQyxLQUFLLEVBQUU7c0VBQ2tCO0lBRTFCO1FBREMsS0FBSyxFQUFFOzBFQUNzQjtJQUU5QjtRQURDLEtBQUssRUFBRTt3RUFDNEI7SUFQM0IsOEJBQThCO1FBTjFDLFNBQVMsQ0FBQztZQUNQLDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsNkJBQTZCO1lBQ3ZDLDZ5RUFBdUQ7O1NBRTFELENBQUM7T0FDVyw4QkFBOEIsQ0FzWTFDO0lBQUQscUNBQUM7Q0FBQSxBQXRZRCxJQXNZQztTQXRZWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBTVXJsU2VydmljZSB9IGZyb20gXCJAc2VuaW9yLWdlc3Rhby1wZXNzb2FzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVTcGVjaWZpY0NvbnRyb2xzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2hlbHBlcnNcIjtcbmltcG9ydCB7IExvY2FsZU9wdGlvbnMsIFN0ZXAsIFN0ZXBTZWxlY3Rpb25FdmVudCwgU3RlcFN0YXRlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE9wZW5TaWRlYmFyRHRvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZHRvcy9lbXBsb3llZS1kZXBlbmRlbnQtc2F2ZS1kdG9cIjtcbmltcG9ydCB7IFBlcnNvblJldHJpZXZlT3V0cHV0IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZHRvcy9wZXJzb24tcmV0cmlldmUuZHRvXCI7XG5pbXBvcnQgeyBEZXBlbmRlbnREcmFmdCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2RlcGVuZGVudC1kcmFmdC9kZXBlbmRlbnQtZHJhZnRcIjtcbmltcG9ydCB7IERlcGVuZGVudERyYWZ0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2RlcGVuZGVudC1kcmFmdC9kZXBlbmRlbnQtZHJhZnQuc2VydmljZVwiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUuc2VydmljZVwiO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1cy9mb2N1cy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEYXRlVmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2RhdGUtdmFsaWRhdG9yL2RhdGUtdmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBtYXBGb3JtVG9EZXBlbmRlbnRTYXZlLCBtYXBQZXJzb25SZXRyaWV2ZVRvRW1wbG95ZWVEZXBlbmRlbnRGb3JtIH0gZnJvbSBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0tY29udmVydGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogXCJmbmQtZW1wbG95ZWUtZGVwZW5kZW50LWZvcm1cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llZURlcGVuZGVudEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWRtaXNzaW9uRHJhZnQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIGNsb3NlU2lkZUJhcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBwZXJzb25JZDtcbiAgICBwdWJsaWMgZGVwZW5kZW50SWQ7XG4gICAgcHVibGljIGxvYWRlZERlcGVuZGVudDogYW55O1xuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgcHVibGljIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW107XG4gICAgcHVibGljIGJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfYnV0dG9uX25leHRcIik7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGRyYWZ0SWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICB9KTtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBsb2NhbGVDb25maWc6IExvY2FsZU9wdGlvbnM7XG4gICAgcHJpdmF0ZSBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVtcGxveWVlRGVwZW5kZW50U2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNVcmxTZXJ2aWNlOiBTVXJsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2N1c1NlcnZpY2U6IEZvY3VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRlbnREcmFmdFNlcnZpY2U6IERlcGVuZGVudERyYWZ0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RlcHMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHRoaXMub25Sb3V0ZURhdGFDaGFuZ2UoZGF0YSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IERhdGVWYWxpZGF0b3IuZ2V0RGF0ZUZvcm1hdEZyb21DYWxlbmRhcihkYXRhLmxvY2FsZUNvbmZpZy5jYWxlbmRhcik7XG4gICAgfVxuXG4gICAgcHVibGljIHVuZG9TdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRTdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUJhc2ljU3RlcCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtQmFzaWNTdGVwKTtcblxuICAgICAgICAgICAgaWYgKCFmb3JtQmFzaWNTdGVwLnZhbGlkICYmICF0aGlzLmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX2ludmFsaWRfZm9ybV9ncm91cFwiKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2J0bl9zdGVwX2xhc3RcIik7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IHRoaXMucmVxdWlyZWRGaWVsZHNTdGVwMSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfaW52YWxpZF9mb3JtX2dyb3VwX3N0ZXBfMVwiKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfaW52YWxpZF9mb3JtX2dyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogbXNnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGVwZW5kZW50SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQmVmb3JlU2F2ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZURlcGVuZGVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzTmV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZGVwZW5kZW50SWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTmV3VG9MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc05ldygpID8gXCJjcmVhdGVcIiA6IFwiZWRpdFwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblN0ZXBTZWxlY3RlZChldmVudDogU3RlcFNlbGVjdGlvbkV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5pbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgY29tcGxlbWVudEZvcm0gPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjb21wbGVtZW50RGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG5cbiAgICAgICAgICAgIGlmICghY29tcGxlbWVudEZvcm0udmFsaWQgJiYgKCF0aGlzLmRlcGVuZGVudElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbXBsZW1lbnRGb3JtKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfYnV0dG9uX25leHRcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuaW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2ljRm9ybSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG5cbiAgICAgICAgICAgIGlmICghYmFzaWNGb3JtLnZhbGlkICYmICghdGhpcy5kZXBlbmRlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhiYXNpY0Zvcm0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBldmVudC5pbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZURlcGVuZGVudERyYWZ0KCk6IGFueSB7XG4gICAgICAgIHZhbGlkYXRlU3BlY2lmaWNDb250cm9scyh0aGlzLmZvcm1Hcm91cCwgW1xuICAgICAgICAgICAgXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZnVsbE5hbWVcIixcbiAgICAgICAgICAgIFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGEua2luc2hpcERlcGVuZGVudERlZ3JlZVR5cGVcIixcbiAgICAgICAgXSk7XG5cbiAgICAgICAgY29uc3QgZnVsbE5hbWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZnVsbE5hbWVcIik7XG4gICAgICAgIGNvbnN0IGtpbnNoaXBEZXBlbmRlbnREZWdyZWVUeXBlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGEua2luc2hpcERlcGVuZGVudERlZ3JlZVR5cGVcIik7XG4gICAgICAgIGlmICgodGhpcy5hY3RpdmVJbmRleCA9PT0gMCAmJiAhZnVsbE5hbWUudmFsaWQpXG4gICAgICAgICAgICB8fCAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSAmJiAha2luc2hpcERlcGVuZGVudERlZ3JlZVR5cGUudmFsaWQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKGZ1bGxOYW1lLnZhbGlkICYmIHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2J0bl9zdGVwX2xhc3RcIik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZ2V0U2F2ZU9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkcmFmdElkXCIpLnNldFZhbHVlKHJlcz8uaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3RvYXN0X3N1Y2Nlc3NcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZHJhZnRfZW1wbG95ZWVfZm9ybV9zYXZlX3N1Y2Vzc1wiKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5nZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IE9wZW5TaWRlYmFyRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50SWQgPSBkYXRhPy5kZXBlbmRlbnRJZDtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcnNvbklkID0gZGF0YT8ucGVyc29uSWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGE/LmRlcGVuZGVudElkICYmICFkYXRhLmRlcGVuZGVudERyYWZ0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5wZXJzb25JZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGE/LnBlcnNvbklkICYmICFkYXRhLmRlcGVuZGVudERyYWZ0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YT8uZGVwZW5kZW50RHJhZnRJZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREcmFmdChkYXRhLmRlcGVuZGVudERyYWZ0SWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25TYXZlQnlMaXN0RHJhZnQoKTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU3RlcHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBlcnNvbmFsRGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9wZXJzb25hbF9kYXRhXCIpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb21wbGVtZW50RGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9jb21wbGVtZW50X2RhdGFcIiksXG4gICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMucGVyc29uSWQsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBheXJvbGxEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX3BheXJvbGxfZGF0YVwiKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0ZXBzID0gW3BlcnNvbmFsRGF0YSwgY29tcGxlbWVudERhdGEgLypwYXlyb2xsRGF0YSovXTtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5wZXJzb25SZXRyaWV2ZSh7IGlkOiB0aGlzLnBlcnNvbklkIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSksXG4gICAgICAgICAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IFBlcnNvblJldHJpZXZlT3V0cHV0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFwUGVyc29uUmV0cmlldmVUb0VtcGxveWVlRGVwZW5kZW50Rm9ybShyZXNwb25zZSwgdGhpcy5lbXBsb3llZUlkLCB0aGlzLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgdGhpcy5sb2FkZWREZXBlbmRlbnQgPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnNldERlcGVuZGVudEZvcm1EYXRhKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2F2ZURlcGVuZGVudCgpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YUNvbnZlcnRlZCA9IG1hcEZvcm1Ub0RlcGVuZGVudFNhdmUoXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLFxuICAgICAgICAgICAgdGhpcy5lbXBsb3llZUlkLFxuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbnRJZCxcbiAgICAgICAgICAgIHRoaXMucGVyc29uSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2UuZW1wbG95ZWVEcGVuZGVudFNhdmUoZGF0YUNvbnZlcnRlZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRyYWZ0SWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkcmFmdElkXCIpPy52YWx1ZTtcbiAgICAgICAgICAgIGlmIChkYXRhPy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZVN1Y2VzcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlU2lkZUJhci5lbWl0KHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChkcmFmdElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRHJhZnQoZHJhZnRJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZURyYWZ0KGRyYWZ0SWQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UuZGVsZXRlKGRyYWZ0SWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkTWVzc2FnZVN1Y2VzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5zdWNjZXNzX3Rvb2x0aXBcIiksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NhdmVfc3VjY2Vzc1wiKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb2N1c1NlcnZpY2UuZm9jdXNGaXJzdEludmFsaWRJbnB1dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVxdWlyZWRGaWVsZHNTdGVwMSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YS5mdWxsTmFtZVwiKT8udmFsdWUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YS5iaXJ0aERhdGVcIik/LnZhbHVlICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZ2VuZGVyVHlwZVwiKT8udmFsdWUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YS5jcGZcIik/LnZhbHVlO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Zvcm1DaGFuZ2VkKGJlZm9yZURhdGE6IGFueSwgYWZ0ZXJEYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFiZWZvcmVEYXRhPy5wZXJzb25EZXBlbmRlbnREYXRhIHx8ICFhZnRlckRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzVG9DaGVjayA9IFtcbiAgICAgICAgICAgIFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIsXG4gICAgICAgICAgICBcImNvbXBsZW1lbnREZXBlbmRlbnRQZXJzb25EYXRhXCIsXG4gICAgICAgICAgICBcImRvY3VtZW50RGVwZW5kZW50UGVyc29uRGF0YVwiLFxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4ga2V5c1RvQ2hlY2suc29tZShmb3JtR3JvdXAgPT5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGJlZm9yZURhdGEucGVyc29uRGVwZW5kZW50RGF0YVtmb3JtR3JvdXBdIHx8IHt9KS5zb21lKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlVmFsdWUgPSBiZWZvcmVEYXRhLnBlcnNvbkRlcGVuZGVudERhdGFbZm9ybUdyb3VwXVtrZXldID8/IFwiXCI7XG4gICAgICAgICAgICAgICAgY29uc3QgYWZ0ZXJWYWx1ZSA9IGFmdGVyRGF0YVtmb3JtR3JvdXBdPy5ba2V5XSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIHJldHVybiBiZWZvcmVWYWx1ZSAhPT0gYWZ0ZXJWYWx1ZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25CZWZvcmVTYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmRpcnR5IHx8ICF0aGlzLmlzRm9ybUNoYW5nZWQodGhpcy5sb2FkZWREZXBlbmRlbnQsIHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9zZVNpZGViYXJXaXRoU3VjY2VzcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfdGV4dF9wZXJzb25cIixcbiAgICAgICAgKX1cXG4ke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2VtcGxveWVlX2Zvcm1fZGlhbG9nX2NvbmZpcm1hdGlvblwiKX1gO1xuXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBrZXk6IFwiZWRpdC1kZXBlbmRlbnRcIixcbiAgICAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX25vXCIpLFxuICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfeWVzXCIpLFxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ190aXRsZVwiKSxcbiAgICAgICAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5vblNhdmVEZXBlbmRlbnQoKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVNpZGViYXJXaXRoU3VjY2VzcygpIHtcbiAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNsb3NlU2lkZUJhci5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLmFkZE1lc3NhZ2VTdWNlc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWREcmFmdChkcmFmdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UuZ2V0KGRyYWZ0SWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZHJhZnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImRyYWZ0SWRcIik/LnNldFZhbHVlKGRyYWZ0SWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBEZXBlbmRlbnREcmFmdC5mcm9tRHRvKGRyYWZ0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYXZlT2JzZXJ2YWJsZSgpIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGR0byA9IERlcGVuZGVudERyYWZ0LnRvRHRvKGZvcm0sIHRoaXMuZW1wbG95ZWVJZCwgdGhpcy5hZG1pc3Npb25EcmFmdCk7XG4gICAgICAgIGxldCBvYnNlcnZhYmxlO1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImRyYWZ0SWRcIik/LnZhbHVlO1xuICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgIG9ic2VydmFibGUgPSB0aGlzLmRlcGVuZGVudERyYWZ0U2VydmljZS51cGRhdGUoaWQsIGR0byk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYnNlcnZhYmxlID0gdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UuaW5zZXJ0KGR0byk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNhdmVCeUxpc3REcmFmdCgpIHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2Uuc2F2ZURyYWZ0RXZlbnRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb3JtRGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IERlcGVuZGVudERyYWZ0LmZyb21EdG8oZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZURlcGVuZGVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19
@@ -98,4 +98,4 @@ var EmployeeDependentPersonalStepComponent = /** @class */ (function () {
98
98
  return EmployeeDependentPersonalStepComponent;
99
99
  }());
100
100
  export { EmployeeDependentPersonalStepComponent };
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQU1qRztJQWlCSSxnREFDVyxnQkFBa0MsRUFDeEIsS0FBcUIsRUFDOUIsV0FBd0IsRUFDZixPQUFpQztRQUp0RCxpQkFNQztRQUxVLHFCQUFnQixHQUFoQixnQkFB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Z0JBakU0QixnQkFBZ0I7Z0JBQ2pCLGNBQWM7Z0JBQ2pCLFdBQVc7Z0JBQ04sd0JBQXdCOztJQWhCdEQ7UUFEQyxLQUFLLEVBQUU7bUZBQzBCO0lBTHpCLHNDQUFzQztRQUpsRCxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELHExTUFBZ0U7U0FDbkUsQ0FBQztPQUNXLHNDQUFzQyxDQXFGbEQ7SUFBRCw2Q0FBQztDQUFBLEFBckZELElBcUZDO1NBckZZLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zL1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudEZvcm1EdG8gfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9kdG9zL2VtcGxveWVlLWRlcGVuZGVudC1zYXZlLWR0b1wiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUuc2VydmljZVwiO1xuaW1wb3J0IHsgRW51bVRpcFNleCB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2VudW1zL2VudW0tdGlwLXNleFwiO1xuaW1wb3J0IHsgR2VuZXJpY1ZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvdmFsaWRhdG9ycy9nZW5lcmljLXZhbGlkYXRvclwiO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tIFwibW9tZW50XCI7XG5jb25zdCBtb21lbnQgPSBtb21lbnRfOyAvLyBASEFDSyBOZWNlc3NhcnkgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL3JvbGx1cC9pc3N1ZXMvNjcwXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImZuZC1lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRQZXJzb25hbFN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IG1heGxlbmd0aCA9IDgwO1xuICAgIHJlYWRvbmx5IGVtYWlsTWF4ID0gNTAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XG4gICAgcHVibGljIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBnZW5kZXJUeXBlOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBFbnVtVGlwU2V4IH1bXSA9IE9iamVjdC5rZXlzKEVudW1UaXBTZXgpLm1hcCgoaXRlbTogRW51bVRpcFNleCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2dlbmRlcl90eXBlX1wiICsgaXRlbSksXG4gICAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtR3JvdXAuYWRkQ29udHJvbChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiLCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIHRoaXMucm91dGUuZGF0YVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHRoaXMub25Sb3V0ZURhdGFDaGFuZ2UoZGF0YSkpO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBiaXJ0aERhdGU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy52YWxpZGF0ZUJpcnRoRGF0ZUlzQWZ0ZXJOb3coKV0pLFxuICAgICAgICAgICAgY3BmOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBHZW5lcmljVmFsaWRhdG9yLmlzVmFsaWRDcGYoKV0pLFxuICAgICAgICAgICAgZnVsbE5hbWU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKV0pKSxcbiAgICAgICAgICAgIGVtYWlsOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IG51bGwgfSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuZW1haWxNYXgpLCB0aGlzLnZhbGlkYXRvckVtYWlsc0xpc3QoKV0pKSxcbiAgICAgICAgICAgIGdlbmRlclR5cGU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICBuaWNrbmFtZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQmlydGhEYXRlSXNBZnRlck5vdygpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaXJ0aERhdGUgPSBtb21lbnQoY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGJpcnRoRGF0ZS5pc0FmdGVyKG1vbWVudCgpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBiaXJ0aERhdGVJc0FmdGVyOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5nZXREZXBlbmRlbnRGb3JtRGF0YSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBlcnNvbkRhdGE6IEVtcGxveWVlRGVwZW5kZW50Rm9ybUR0bykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUocGVyc29uRGF0YT8ucGVyc29uRGVwZW5kZW50RGF0YT8uYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJvdXRlRGF0YUNoYW5nZShkYXRhOiBhbnkpIHtcbiAgICAgICAgdGhpcy5sb2NhbGVDb25maWcgPSBkYXRhLmxvY2FsZUNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdG9yRW1haWxzTGlzdCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIS9eW1xcdy1cXC5dK0AoW1xcdy1dK1xcLikrW1xcdy1dezIsNH0kLy50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGVtYWlsOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgfVxuXG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQU1qRztJQWlCSSxnREFDVyxnQkFBa0MsRUFDeEIsS0FBcUIsRUFDOUIsV0FBd0IsRUFDZixPQUFpQztRQUp0RCxpQkFNQztRQUxVLHFCQUFnQixHQUFoQixnQkFB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Z0JBakU0QixnQkFBZ0I7Z0JBQ2pCLGNBQWM7Z0JBQ2pCLFdBQVc7Z0JBQ04sd0JBQXdCOztJQWhCdEQ7UUFEQyxLQUFLLEVBQUU7bUZBQzBCO0lBTHpCLHNDQUFzQztRQUpsRCxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELHExTUFBZ0U7U0FDbkUsQ0FBQztPQUNXLHNDQUFzQyxDQW9GbEQ7SUFBRCw2Q0FBQztDQUFBLEFBcEZELElBb0ZDO1NBcEZZLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zL1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudEZvcm1EdG8gfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9kdG9zL2VtcGxveWVlLWRlcGVuZGVudC1zYXZlLWR0b1wiO1xuaW1wb3J0IHsgRGVwZW5kZW50RHJhZnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZGVwZW5kZW50LWRyYWZ0L2RlcGVuZGVudC1kcmFmdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9lbnRpdGllcy9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFbnVtVGlwU2V4IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW51bXMvZW51bS10aXAtc2V4XCI7XG5pbXBvcnQgeyBHZW5lcmljVmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC92YWxpZGF0b3JzL2dlbmVyaWMtdmFsaWRhdG9yXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87IC8vIEBIQUNLIE5lY2Vzc2FyeSBiZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9yb2xsdXAvcm9sbHVwL2lzc3Vlcy82NzBcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudC1wZXJzb25hbC1zdGVwXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llZURlcGVuZGVudFBlcnNvbmFsU3RlcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgbWF4bGVuZ3RoID0gODA7XG4gICAgcmVhZG9ubHkgZW1haWxNYXggPSA1MDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcbiAgICBwdWJsaWMgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGdlbmRlclR5cGU6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEVudW1UaXBTZXggfVtdID0gT2JqZWN0LmtleXMoRW51bVRpcFNleCkubWFwKChpdGVtOiBFbnVtVGlwU2V4KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfZ2VuZGVyX3R5cGVfXCIgKyBpdGVtKSxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgICAgICB0aGlzLnBhcmVudEZvcm1Hcm91cC5hZGRDb250cm9sKFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4gdGhpcy5vblJvdXRlRGF0YUNoYW5nZShkYXRhKSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGJpcnRoRGF0ZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnZhbGlkYXRlQmlydGhEYXRlSXNBZnRlck5vdygpXSksXG4gICAgICAgICAgICBjcGY6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENwZigpXSksXG4gICAgICAgICAgICBmdWxsTmFtZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpXSkpLFxuICAgICAgICAgICAgZW1haWw6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogbnVsbCB9LFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5lbWFpbE1heCksIHRoaXMudmFsaWRhdG9yRW1haWxzTGlzdCgpXSkpLFxuICAgICAgICAgICAgZ2VuZGVyVHlwZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIG5pY2tuYW1lOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVCaXJ0aERhdGVJc0FmdGVyTm93KCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpcnRoRGF0ZSA9IG1vbWVudChjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoYmlydGhEYXRlLmlzQWZ0ZXIobW9tZW50KCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGJpcnRoRGF0ZUlzQWZ0ZXI6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldERlcGVuZGVudEZvcm1EYXRhKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGVyc29uRGF0YTogRW1wbG95ZWVEZXBlbmRlbnRGb3JtRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShwZXJzb25EYXRhPy5wZXJzb25EZXBlbmRlbnREYXRhPy5iYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0b3JFbWFpbHNMaXN0KCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghL15bXFx3LVxcLl0rQChbXFx3LV0rXFwuKStbXFx3LV17Miw0fSQvLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZW1haWw6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=