@ieeesa-npm/groups 0.10.6 → 0.10.7

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 (37) hide show
  1. package/esm2022/lib/assets/constants.json +11 -0
  2. package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +34 -28
  3. package/esm2022/lib/components/create-group/create-group.component.mjs +192 -68
  4. package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +3 -3
  5. package/esm2022/lib/components/tree-view/tree-view.component.mjs +16 -11
  6. package/esm2022/lib/components/view-roster/view-roster.component.mjs +5 -4
  7. package/esm2022/lib/groups.component.mjs +34 -19
  8. package/esm2022/lib/models/add-new-user.model.mjs +1 -1
  9. package/esm2022/lib/models/add-or-edit-user-group.model.mjs +1 -1
  10. package/esm2022/lib/models/group-function-type.model.mjs +2 -1
  11. package/esm2022/lib/models/group-info.model.mjs +1 -1
  12. package/esm2022/lib/models/parent-groups-info.model.mjs +2 -0
  13. package/esm2022/lib/models/permission-type.model.mjs +6 -2
  14. package/esm2022/lib/models/user-info.model.mjs +1 -1
  15. package/esm2022/lib/models/user.model.mjs +1 -1
  16. package/esm2022/lib/services/group-permissions-map-service.mjs +42 -6
  17. package/esm2022/lib/services/groups.service.mjs +48 -6
  18. package/esm2022/lib/services/user-permissions.service.mjs +3 -5
  19. package/esm2022/public-api.mjs +2 -1
  20. package/fesm2022/ieeesa-npm-groups.mjs +380 -139
  21. package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
  22. package/lib/components/add-user-roster/add-user-roster.component.d.ts +5 -0
  23. package/lib/components/create-group/create-group.component.d.ts +55 -4
  24. package/lib/groups.component.d.ts +3 -1
  25. package/lib/models/add-new-user.model.d.ts +1 -1
  26. package/lib/models/add-or-edit-user-group.model.d.ts +1 -1
  27. package/lib/models/group-function-type.model.d.ts +1 -0
  28. package/lib/models/group-info.model.d.ts +2 -0
  29. package/lib/models/parent-groups-info.model.d.ts +5 -0
  30. package/lib/models/permission-type.model.d.ts +6 -2
  31. package/lib/models/user-info.model.d.ts +1 -1
  32. package/lib/models/user.model.d.ts +5 -1
  33. package/lib/services/group-permissions-map-service.d.ts +13 -0
  34. package/lib/services/groups.service.d.ts +44 -15
  35. package/lib/services/user-permissions.service.d.ts +1 -1
  36. package/package.json +4 -4
  37. package/public-api.d.ts +1 -0
@@ -1,7 +1,7 @@
1
- import { Component, EventEmitter, Output, ViewEncapsulation, } from '@angular/core';
1
+ import { Component, EventEmitter, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { Validators } from '@angular/forms';
4
- import { DynamicFormComponent, FormControlType, AlignType, } from '@ieeesa-npm/presentation';
4
+ import { AlignType, DynamicFormComponent, FormControlType, } from '@ieeesa-npm/presentation';
5
5
  import { AlertsService, AlertType, } from '@ieeesa-npm/utility';
6
6
  import * as screenTexts from '../../assets/constants.json';
7
7
  import { GroupsValidationPatterns } from '../../assets/form-validations';
@@ -14,8 +14,9 @@ import * as i0 from "@angular/core";
14
14
  import * as i1 from "../../services/groups.service";
15
15
  import * as i2 from "@ieeesa-npm/utility";
16
16
  import * as i3 from "@angular/common";
17
+ const INDEX_VALUE = 4;
17
18
  /**
18
- * CreateGroupComponent uses DynamicFormComponent to build create new group form and implement the functionalities of submission of form and handling success and error scenarios.
19
+ * CreateGroupComponent uses DynamicFormComponent to build create new group form or edit group and implement the functionalities of submission of form and handling success and error scenarios.
19
20
  * @class CreateGroupComponent
20
21
  * @implements {OnInit}
21
22
  * @implements {OnDestroy}
@@ -28,7 +29,7 @@ export class CreateGroupComponent {
28
29
  // eslint-disable-next-line no-unused-vars
29
30
  globalErrorHandlerService,
30
31
  // eslint-disable-next-line no-unused-vars
31
- alertService // eslint-disable-next-line no-empty-function
32
+ alertService // eslint-disable-next-line no-empty-function,
32
33
  ) {
33
34
  this.groupsService = groupsService;
34
35
  this.globalErrorHandlerService = globalErrorHandlerService;
@@ -53,6 +54,14 @@ export class CreateGroupComponent {
53
54
  this.isLeftButtonNeeded = true;
54
55
  this.colWidth = { xs: 12, xl: 12, sm: 12, md: 12, lg: 12 };
55
56
  this.actionButtonAlign = AlignType.LEFT;
57
+ this.allowedParentGroups = [];
58
+ this.allowedParentGroupsOptions = [];
59
+ this.isParentGroupChanged = false;
60
+ this.slideToggleOption = {
61
+ id: 1,
62
+ label: this.createGroupText?.label?.changeParentGroup,
63
+ checked: false,
64
+ };
56
65
  }
57
66
  /**
58
67
  * Initialize the create group form group array and component.
@@ -65,49 +74,40 @@ export class CreateGroupComponent {
65
74
  if (this.groupFunctionType === GroupFunctionType.EDIT) {
66
75
  this.selectedGroupParentInfo =
67
76
  this.groupsService?.getSelectedGroupParentInfo();
77
+ if (this.selectedGroupInfo?.groupParentId)
78
+ this.getParentGroups(this.selectedGroupInfo?.groupId);
68
79
  this.createFormGroup();
69
80
  }
70
81
  else {
71
- this.groupsService
72
- .getGroupTypes()
73
- .pipe(takeUntil(this.destroy$))
74
- .subscribe({
75
- next: (res) => {
76
- if (res?.status) {
77
- const groupTypes = this.groupsService?.getFormattedGroupTypes(res?.body);
78
- if (this.selectedGroupInfo?.groupType) {
79
- const allowedGroupType = groupTypes[this.selectedGroupInfo?.groupType]
80
- ?.businessRule?.allowedGroupType;
81
- if (allowedGroupType?.length) {
82
- this.groupTypes = allowedGroupType.map((groupTypeId) => ({
83
- id: groupTypeId,
84
- name: groupTypes[groupTypeId]?.name,
85
- }));
86
- this.groupTypes = this.groupTypes.filter((groupType) => !groupTypes[groupType.id]?.businessRule?.isAdmin);
87
- }
88
- else {
89
- this.showAlertMessage(screenTexts?.errors?.ER1000, AlertType.ERROR);
90
- }
91
- }
92
- else {
93
- this.groupTypes = Object.entries(groupTypes).map(([id, item]) => ({
94
- id,
95
- name: item?.name,
96
- }));
97
- this.groupTypes = this.groupTypes.filter((groupType) => groupTypes[groupType.id]?.hierarchy === 0 && !groupTypes[groupType.id]?.businessRule?.isAdmin);
98
- }
99
- if (this.groupTypes?.length) {
100
- this.createFormGroup();
101
- }
102
- else {
103
- this.showAlertMessage(screenTexts?.errors?.['1010'], AlertType.ERROR);
104
- }
105
- }
106
- },
107
- error: (error) => {
108
- this.handleErrors(error);
109
- },
110
- });
82
+ const groupTypes = this.groupsService?.getFormattedGroupTypes(this.groupsService?.getLoadedGroupTypes());
83
+ if (this.selectedGroupInfo?.groupType) {
84
+ const allowedGroupType = groupTypes[this.selectedGroupInfo?.groupType]?.businessRule
85
+ ?.allowedGroupType;
86
+ if (allowedGroupType?.length) {
87
+ this.groupTypes = allowedGroupType.map((groupTypeId) => ({
88
+ id: groupTypeId,
89
+ name: groupTypes[groupTypeId]?.name,
90
+ }));
91
+ this.groupTypes = this.groupTypes.filter((groupType) => !groupTypes[groupType.id]?.businessRule?.isAdmin);
92
+ }
93
+ else {
94
+ this.showAlertMessage(screenTexts?.errors?.ER1000, AlertType.ERROR);
95
+ }
96
+ }
97
+ else {
98
+ this.groupTypes = Object.entries(groupTypes).map(([id, item]) => ({
99
+ id,
100
+ name: item?.name,
101
+ }));
102
+ this.groupTypes = this.groupTypes.filter((groupType) => groupTypes[groupType.id]?.hierarchy === 0 &&
103
+ !groupTypes[groupType.id]?.businessRule?.isAdmin);
104
+ }
105
+ if (this.groupTypes?.length) {
106
+ this.createFormGroup();
107
+ }
108
+ else {
109
+ this.showAlertMessage(screenTexts?.errors?.['1010'], AlertType.ERROR);
110
+ }
111
111
  }
112
112
  }
113
113
  /**
@@ -126,6 +126,7 @@ export class CreateGroupComponent {
126
126
  ariaMultiline: false,
127
127
  value: this.selectedGroupInfo?.groupTypeInfo?.name,
128
128
  ariaLabel: this.constants?.editGroup?.ariaLabel?.groupType,
129
+ ariaDescribedById: this.createGroupText?.label?.ariaDescribedById?.groupType,
129
130
  isResize: true,
130
131
  };
131
132
  }
@@ -140,8 +141,8 @@ export class CreateGroupComponent {
140
141
  dropdownOptions: this.groupTypes,
141
142
  supportMessage: this.createGroupText?.supportText?.groupType,
142
143
  ariaLabel: this.createGroupText?.label?.ariaLabel?.groupType,
143
- placeholder: '',
144
144
  ariaDescribedById: this.createGroupText?.label?.ariaDescribedById?.groupType,
145
+ placeholder: '',
145
146
  };
146
147
  }
147
148
  return groupTypeField;
@@ -150,7 +151,8 @@ export class CreateGroupComponent {
150
151
  * Initialize the create group form group array.
151
152
  * @memberof CreateGroupComponent
152
153
  */
153
- createFormGroup() {
154
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
+ createFormGroup(formValue) {
154
156
  this.formGroup = {
155
157
  formGroup: [
156
158
  {
@@ -163,7 +165,9 @@ export class CreateGroupComponent {
163
165
  controlName: 'groupName',
164
166
  requiredErrorMessage: this.createGroupText?.message?.error?.required,
165
167
  value: this.groupFunctionType === GroupFunctionType.EDIT
166
- ? this.selectedGroupInfo?.groupName
168
+ ? formValue
169
+ ? formValue?.groupName
170
+ : this.selectedGroupInfo?.groupName
167
171
  : '',
168
172
  placeholder: '',
169
173
  supportMessage: this.createGroupText?.supportText?.groupName,
@@ -183,7 +187,9 @@ export class CreateGroupComponent {
183
187
  controlName: 'shortName',
184
188
  requiredErrorMessage: this.createGroupText?.message?.error?.required,
185
189
  value: this.groupFunctionType === GroupFunctionType.EDIT
186
- ? this.selectedGroupInfo?.groupShortName
190
+ ? formValue
191
+ ? formValue?.shortName
192
+ : this.selectedGroupInfo?.groupShortName
187
193
  : '',
188
194
  patternErrorMessage: this.createGroupText?.message?.error?.pattern?.shortName,
189
195
  placeholder: '',
@@ -203,7 +209,9 @@ export class CreateGroupComponent {
203
209
  controlName: 'groupScope',
204
210
  patternErrorMessage: this.createGroupText?.message?.error?.pattern?.groupScope,
205
211
  value: this.groupFunctionType === GroupFunctionType.EDIT
206
- ? this.selectedGroupInfo?.groupDesc
212
+ ? formValue
213
+ ? formValue?.groupScope
214
+ : this.selectedGroupInfo?.groupDesc
207
215
  : '',
208
216
  placeholder: '',
209
217
  supportMessage: this.createGroupText?.supportText?.groupScope,
@@ -232,22 +240,58 @@ export class CreateGroupComponent {
232
240
  * @memberof CreateGroupComponent
233
241
  */
234
242
  updateCreateFormGroup(parentGroupInfo) {
235
- const parentGroup = {
236
- type: FormControlType?.TEXT_AREA,
237
- label: this.createGroupText?.label?.parentGroup,
238
- controlName: 'parentGroup',
239
- isReadonly: true,
240
- ariaMultiline: false,
241
- value: this.groupFunctionType === GroupFunctionType.EDIT
242
- ? this.selectedGroupParentInfo?.groupName
243
- : parentGroupInfo?.groupName,
244
- ariaLabel: this.createGroupText?.label?.ariaLabel?.parentGroup,
245
- isResize: true,
246
- };
247
- if (parentGroup?.value) {
248
- this.formGroup?.formGroup[0]?.controls?.unshift(parentGroup);
243
+ if ((this.groupFunctionType === GroupFunctionType.EDIT &&
244
+ parentGroupInfo?.groupParentId) ||
245
+ this.groupFunctionType === GroupFunctionType.CREATE) {
246
+ this.updateAddUserFormControls(this.formGroup?.formGroup[0]?.controls?.length - INDEX_VALUE, {
247
+ type: FormControlType?.TEXT_AREA,
248
+ label: this.createGroupText?.label?.parentGroup,
249
+ controlName: 'parentGroup',
250
+ value: this.selectedGroupParentInfo?.groupName ??
251
+ parentGroupInfo?.groupName,
252
+ ariaLabel: this.createGroupText?.label?.ariaLabel?.parentGroup,
253
+ ariaDescribedById: this.createGroupText?.label?.ariaDescribedById?.parentGroup,
254
+ isReadonly: true,
255
+ ariaMultiline: false,
256
+ isResize: true,
257
+ });
258
+ if (this.groupFunctionType === GroupFunctionType.EDIT) {
259
+ this.updateAddUserFormControls(this.formGroup?.formGroup[0]?.controls?.length - INDEX_VALUE, {
260
+ type: FormControlType?.SLIDE_TOGGLE,
261
+ controlName: 'changeParentGroup',
262
+ ariaLabel: this.createGroupText?.label?.ariaLabel?.changeParentGroup,
263
+ ariaDescribedById: this.createGroupText?.label?.ariaDescribedById?.changeParentGroup,
264
+ slideToggleOption: this.slideToggleOption,
265
+ disabled: this.allowedParentGroupsOptions.length === 0,
266
+ });
267
+ if (this.isParentGroupChanged) {
268
+ this.updateAddUserFormControls(this.formGroup?.formGroup[0]?.controls?.length - INDEX_VALUE, {
269
+ type: FormControlType?.SELECT,
270
+ label: this.createGroupText?.label?.newParentGroup + '*',
271
+ controlName: 'newParentGroup',
272
+ value: this.allowedParentGroupsOptions?.filter((option) => option?.id === this.selectedGroupInfo?.groupId)[0],
273
+ requiredErrorMessage: this.createGroupText?.message?.error?.required,
274
+ validation: [Validators.required],
275
+ dropdownOptions: this.allowedParentGroupsOptions,
276
+ placeholder: '',
277
+ supportMessage: this.createGroupText?.supportText?.newParentGroup,
278
+ ariaLabel: this.createGroupText?.label?.ariaLabel?.newParentGroup,
279
+ ariaDescribedById: this.createGroupText?.label?.ariaDescribedById?.newParentGroup,
280
+ });
281
+ }
282
+ }
249
283
  }
250
284
  }
285
+ /**
286
+ * Updates the create or edit user form group controls by adding fieldConfig at required index.
287
+ * @param {number} indexPosition
288
+ * @param {FieldConfig} fieldConfig
289
+ * @return -returns nothing
290
+ * @memberof CreateGroupComponent
291
+ */
292
+ updateAddUserFormControls(indexPosition, fieldConfig) {
293
+ this.formGroup?.formGroup[0]?.controls?.splice(indexPosition, 0, fieldConfig);
294
+ }
251
295
  /**
252
296
  * Handles client side validation and calls create group or edit group methods.
253
297
  * @param {FormGroup[]} form -Array of formGroup
@@ -297,18 +341,21 @@ export class CreateGroupComponent {
297
341
  }
298
342
  /**
299
343
  * Constructs edit group payload and calls edit group API and emits create group API response.
300
- * @param {*} formData
344
+ * @param formData
301
345
  * @return -returns nothing
302
346
  * @memberof CreateGroupComponent
303
347
  */
304
348
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
305
349
  editGroup(formData) {
350
+ this.groupsService?.setParentGroupChangeStatus(this.isParentGroupChanged);
306
351
  const editGroupPayload = {
307
352
  payload: {
308
353
  groupName: formData?.groupName,
309
354
  groupShortName: formData?.shortName,
310
355
  groupDesc: formData?.groupScope,
311
- groupParentId: this.selectedGroupInfo?.groupParentId ?? null,
356
+ groupParentId: this.isParentGroupChanged
357
+ ? formData?.newParentGroup?.id
358
+ : this.selectedGroupInfo?.groupParentId ?? null,
312
359
  groupId: this.selectedGroupInfo?.groupId,
313
360
  },
314
361
  };
@@ -373,6 +420,80 @@ export class CreateGroupComponent {
373
420
  createGroupCancelled() {
374
421
  this.formCancel?.emit();
375
422
  }
423
+ /**
424
+ * Gets allowed parent groups for reassigning the parent.
425
+ * @param {string} groupId
426
+ * @return -returns nothing
427
+ * @memberof CreateGroupComponent
428
+ */
429
+ getParentGroups(groupId) {
430
+ this.allowedParentGroups = [];
431
+ this.groupsService
432
+ .getAllowedParentGroups(groupId)
433
+ .pipe(takeUntil(this.destroy$))
434
+ .subscribe({
435
+ next: (response) => {
436
+ response?.forEach((option) => {
437
+ this.allowedParentGroupsOptions?.push({
438
+ id: option?.groupId,
439
+ name: option?.groupAcronym,
440
+ });
441
+ });
442
+ this.allowedParentGroups = response;
443
+ if (this.allowedParentGroupsOptions.length > 0) {
444
+ this.updateFormControlOptions('changeParentGroup', 'isDisabled', false);
445
+ this.updateFormControlOptions('newParentGroup', 'dropdownOptions', this.allowedParentGroupsOptions);
446
+ }
447
+ },
448
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
449
+ error: (error) => {
450
+ this.handleErrors(error);
451
+ this.updateFormControlOptions('changeParentGroup', 'isDisabled', this.allowedParentGroupsOptions.length === 0);
452
+ },
453
+ });
454
+ }
455
+ /**
456
+ * Update passed form field values.
457
+ * @param {string} formControlName
458
+ * @param {string} formControlInputProperty
459
+ * @param {*} value
460
+ * @memberof CreateGroupComponent
461
+ */
462
+ updateFormControlOptions(formControlName, formControlInputProperty,
463
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
464
+ value) {
465
+ const formFields = this.dynamicFormComponent?.formFields?.toArray();
466
+ formFields?.forEach((formField) => {
467
+ if (formField?.component?.instance?.config?.controlName ===
468
+ formControlName &&
469
+ formField?.component?.instance?.[formControlInputProperty])
470
+ formField.component.instance[formControlInputProperty] = value;
471
+ });
472
+ }
473
+ /**
474
+ * Adds/removes new parent group selection options whenever Change Parent Group slider is toggled.
475
+ * @param {SlideToggleOption} toggle
476
+ * @return -returns nothing
477
+ * @memberof CreateGroupComponent
478
+ */
479
+ onFormSlideToggleChange(toggle) {
480
+ this.slideToggleOption.checked = toggle?.checked;
481
+ this.isParentGroupChanged = toggle?.checked;
482
+ this.createFormGroup(this.form?.value);
483
+ }
484
+ /**
485
+ * Handles create group form change event.
486
+ * @param {FormGroup[]} form
487
+ * @return -returns nothing
488
+ * @memberof CreateGroupComponent
489
+ */
490
+ onCreateGroupFormChange(form) {
491
+ if (this.isParentGroupChanged) {
492
+ const selectedParentGroup = this.allowedParentGroups?.filter((option) => option?.groupId ===
493
+ form[0]?.controls['newParentGroup']?.value?.id?.toString())[0];
494
+ this.form?.get('parentGroup')?.setValue(selectedParentGroup?.groupName);
495
+ }
496
+ }
376
497
  /**
377
498
  * NgOnDestroy performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
378
499
  * @memberof CreateGroupComponent
@@ -382,14 +503,17 @@ export class CreateGroupComponent {
382
503
  this.destroy$.unsubscribe();
383
504
  }
384
505
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateGroupComponent, deps: [{ token: i1.GroupsService }, { token: i2.GlobalErrorHandlerService }, { token: i2.AlertsService }], target: i0.ɵɵFactoryTarget.Component }); }
385
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateGroupComponent, isStandalone: true, selector: "ieeesa-create-group", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, providers: [AlertsService], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]){margin-bottom:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex;min-height:2.5em;height:2.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field{display:flex;height:auto;min-height:4.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-flex,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__support-text{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-form-error--text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-form-error--text{padding:.25em 1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "addFormGroup", "formTimeSelected"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateGroupComponent, isStandalone: true, selector: "ieeesa-create-group", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, providers: [AlertsService], viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formChange)=\"onCreateGroupFormChange($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]){margin-bottom:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex;min-height:40px;height:40px}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field{display:flex;height:auto;min-height:4.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-flex,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-text-area-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-text-area-field__support-text,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-text-area-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-text-area-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__support-text{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-form-error--text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-form-error--text{padding:.25em 1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__content,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-select-min-line,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mdc-list-item__primary-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-select-min-line,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mdc-list-item__primary-text{color:#49454f}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicFormComponent, selector: "ieeesa-dynamic-form", inputs: ["formGroups", "submitResponse", "searchResponse", "colWidth", "isLegendVisible", "rightButtonLabel", "leftButtonLabel", "isSubmitButtonDisabled", "isLeftButtonDisabled", "isLeftButtonNeeded", "actionButtonAlign"], outputs: ["formSubmit", "formChange", "formInput", "formLeftButtonClicked", "formSearchApply", "formGroupsReference", "dropdownChange", "formCheckboxSelection", "formDateSelected", "formSelectSearch", "formControlChange", "formAutoCompleteSearch", "formAutoCompleteClearSearchValue", "autoCompleteOptionSelected", "formAfterContentInit", "formSelectedDateRange", "formSlideToggleChange"], exportAs: ["dynamicForm"] }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
386
507
  }
387
508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateGroupComponent, decorators: [{
388
509
  type: Component,
389
- args: [{ selector: 'ieeesa-create-group', standalone: true, imports: [CommonModule, DynamicFormComponent, MatDialogModule], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]){margin-bottom:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex;min-height:2.5em;height:2.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field{display:flex;height:auto;min-height:4.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-flex,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__support-text{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-form-error--text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-form-error--text{padding:.25em 1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"] }]
510
+ args: [{ selector: 'ieeesa-create-group', standalone: true, imports: [CommonModule, DynamicFormComponent, MatDialogModule], encapsulation: ViewEncapsulation.None, providers: [AlertsService], template: "<ieeesa-dynamic-form\r\n *ngIf=\"formGroup\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"isLegendVisible\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"formGroup\"\r\n [isLeftButtonNeeded]=\"isLeftButtonNeeded\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"createGroupCancelled()\"\r\n (formGroupsReference)=\"getFormGroupReference($event)\"\r\n (formSlideToggleChange)=\"onFormSlideToggleChange($event)\"\r\n (formChange)=\"onCreateGroupFormChange($event)\"\r\n></ieeesa-dynamic-form>", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-container,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-group .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-edit-group .mat-mdc-dialog-surface{border-radius:0;margin:1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal{box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080;padding-bottom:.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]),.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]){margin-bottom:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay{background:#fff;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mat-mdc-form-field-focus-overlay .mat-mdc-form-field-infix{min-height:2.375em;padding-top:.0625em;padding-bottom:.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .parent-group.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:before,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type.ieeesa-dynamic-form__form-field:has(.mat-mdc-input-element[readonly=true]) .ieeesa-text-area-field .mat-mdc-form-field .mdc-line-ripple:after{border:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__actions,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:1.5em;padding:3em 1em .75em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding:0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field{display:flex;min-height:40px;height:40px}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field:not(.group-scope) .mat-mdc-form-field .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-dynamic-form__form-field.group-scope .mat-mdc-form-field{display:flex;height:auto;min-height:4.375em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-flex,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-flex{width:62.5em}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field .mat-mdc-form-field{display:flex}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-text-area-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-text-area-field__support-text,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-select-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-text-area-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-text-area-field__support-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__label,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-select-field__support-text{color:#49454f}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field{display:flex;width:43%}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-form-error--text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-form-error--text{padding:.25em 1em 0}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-dialog-content{padding:1.5em 1em .75em!important}.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .ieeesa-input-field__content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-text-area-field__content,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .ieeesa-input-field__content,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mat-mdc-select-min-line,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .mdc-list-item__primary-text,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mat-mdc-select-min-line,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .mdc-list-item__primary-text{color:#49454f}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .new-parent-group .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .group-type .ieeesa-select-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-create-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field,.ieeesa-modal-dialog.ieeesa-edit-group .ieeesa-modal .short-name .ieeesa-input-field .mat-mdc-form-field{width:100%}}\n"] }]
390
511
  }], ctorParameters: function () { return [{ type: i1.GroupsService }, { type: i2.GlobalErrorHandlerService }, { type: i2.AlertsService }]; }, propDecorators: { submitFormResponse: [{
391
512
  type: Output
392
513
  }], formCancel: [{
393
514
  type: Output
515
+ }], dynamicFormComponent: [{
516
+ type: ViewChild,
517
+ args: [DynamicFormComponent]
394
518
  }] } });
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWdyb3VwL2NyZWF0ZS1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFJTCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFNBQVMsR0FFVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsU0FBUyxHQUVWLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQUUzRTs7Ozs7R0FLRztBQVdI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Ozs7O09BSUc7SUFDSCxxQkFBcUIsQ0FBQyxJQUFpQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsT0FBMEIsRUFBRSxTQUFvQjtRQUMvRCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztZQUM3QixNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQjtRQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQW5aVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixtSkFGcEIsQ0FBQyxhQUFhLENBQUMsMEJDbkQ1QiwwZ0JBWXVCLGc0akJEbUNYLFlBQVksbUlBQUUsb0JBQW9CLHlzQkFBRSxlQUFlOzs0RkFNbEQsb0JBQW9CO2tCQVZoQyxTQUFTOytCQUVFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxDQUFDLGlCQUcvQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsYUFBYSxDQUFDO3dLQVFoQixrQkFBa0I7c0JBQTNCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1HcmlkLFxyXG4gIEZvcm1Nb2RlbCxcclxuICBTZWxlY3RPcHRpb24sXHJcbiAgRHluYW1pY0Zvcm1Db21wb25lbnQsXHJcbiAgRm9ybUNvbnRyb2xUeXBlLFxyXG4gIEFsaWduVHlwZSxcclxuICBGaWVsZENvbmZpZyxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQge1xyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgQWxlcnRUeXBlLFxyXG4gIEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuaW1wb3J0IHsgQ3JlYXRlR3JvdXBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NyZWF0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3Vwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ncm91cHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR3JvdXBUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBFZGl0R3JvdXBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBGdW5jdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JvdXAtZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogQ3JlYXRlR3JvdXBDb21wb25lbnQgdXNlcyBEeW5hbWljRm9ybUNvbXBvbmVudCB0byBidWlsZCBjcmVhdGUgbmV3IGdyb3VwIGZvcm0gYW5kIGltcGxlbWVudCB0aGUgZnVuY3Rpb25hbGl0aWVzIG9mIHN1Ym1pc3Npb24gb2YgZm9ybSBhbmQgaGFuZGxpbmcgc3VjY2VzcyBhbmQgZXJyb3Igc2NlbmFyaW9zLlxyXG4gKiBAY2xhc3MgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtY3JlYXRlLWdyb3VwJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIER5bmFtaWNGb3JtQ29tcG9uZW50LCBNYXREaWFsb2dNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbQWxlcnRzU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm1SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgY2FuY2VsbGVkLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNyZWF0ZUdyb3VwVGV4dCA9IHNjcmVlblRleHRzPy5jcmVhdGVHcm91cDtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcbiAgbGVmdEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5sZWZ0QnV0dG9uTGFiZWw7XHJcbiAgcmlnaHRCdXR0b25MYWJlbCA9IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8ucmlnaHRCdXR0b25MYWJlbDtcclxuICBpc0xlZ2VuZFZpc2libGUgPSBmYWxzZTtcclxuICBpc0xlZnRCdXR0b25OZWVkZWQgPSB0cnVlO1xyXG4gIGNvbFdpZHRoOiBGb3JtR3JpZCA9IHsgeHM6IDEyLCB4bDogMTIsIHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIgfTtcclxuICBmb3JtR3JvdXAhOiBGb3JtTW9kZWw7XHJcbiAgZ3JvdXBUeXBlcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGFjdGlvbkJ1dHRvbkFsaWduID0gQWxpZ25UeXBlLkxFRlQ7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBzZWxlY3RlZEdyb3VwSW5mbyE6IEdyb3VwSW5mbyB8IHVuZGVmaW5lZDtcclxuICBncm91cEZ1bmN0aW9uVHlwZSE6IEdyb3VwRnVuY3Rpb25UeXBlO1xyXG4gIHNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvITogR3JvdXBJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBjcmVhdGUgZ3JvdXAgZm9ybSBncm91cCBhcnJheSBhbmQgY29tcG9uZW50LlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9IHRoaXMuZ3JvdXBzU2VydmljZT8uZ2V0R3JvdXBGdW5jdGlvblR5cGUoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cEluZm8gPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldFNlbGVjdGVkR3JvdXBJbmZvKCk7XHJcbiAgICBpZiAodGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvID1cclxuICAgICAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldFNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvKCk7XHJcbiAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgICAuZ2V0R3JvdXBUeXBlcygpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICBjb25zdCBncm91cFR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRGb3JtYXR0ZWRHcm91cFR5cGVzKHJlcz8uYm9keSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWxsb3dlZEdyb3VwVHlwZSA9XHJcbiAgICAgICAgICAgICAgICBncm91cFR5cGVzW3RoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwVHlwZV1cclxuICAgICAgICAgICAgICAgICAgICA/LmJ1c2luZXNzUnVsZT8uYWxsb3dlZEdyb3VwVHlwZTtcclxuICAgICAgICAgICAgICAgIGlmIChhbGxvd2VkR3JvdXBUeXBlPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gYWxsb3dlZEdyb3VwVHlwZS5tYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgKGdyb3VwVHlwZUlkOiBzdHJpbmcpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZDogZ3JvdXBUeXBlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBncm91cFR5cGVzW2dyb3VwVHlwZUlkXT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwVHlwZXMgPSB0aGlzLmdyb3VwVHlwZXMuZmlsdGVyKChncm91cFR5cGUpPT4gIWdyb3VwVHlwZXNbZ3JvdXBUeXBlLmlkXT8uYnVzaW5lc3NSdWxlPy5pc0FkbWluKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICBzY3JlZW5UZXh0cz8uZXJyb3JzPy5FUjEwMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgQWxlcnRUeXBlLkVSUk9SXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBUeXBlcyA9IE9iamVjdC5lbnRyaWVzKGdyb3VwVHlwZXMpLm1hcChcclxuICAgICAgICAgICAgICAgICAgKFtpZCwgaXRlbV06IFtzdHJpbmcsIEdyb3VwVHlwZV0pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogaXRlbT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwVHlwZXMgPSB0aGlzLmdyb3VwVHlwZXMuZmlsdGVyKChncm91cFR5cGUpPT4gZ3JvdXBUeXBlc1tncm91cFR5cGUuaWRdPy5oaWVyYXJjaHkgPT09IDAgJiYgIWdyb3VwVHlwZXNbZ3JvdXBUeXBlLmlkXT8uYnVzaW5lc3NSdWxlPy5pc0FkbWluKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZ3JvdXBUeXBlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5lcnJvcnM/LlsnMTAxMCddLFxyXG4gICAgICAgICAgICAgICAgICBBbGVydFR5cGUuRVJST1JcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyB0aGUgZ3JvdXAgdHlwZSBmb3JtIGZpZWxkIGJhc2VkIG9uIGVkaXQgZ3JvdXAgb3Igbm90LlxyXG4gICAqIEByZXR1cm4ge0ZpZWxkQ29uZmlnfSAtZ3JvdXAgdHlwZSBmb3JtIGZpZWxkLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEdyb3VwVHlwZUZpZWxkKCk6IEZpZWxkQ29uZmlnIHtcclxuICAgIGxldCBncm91cFR5cGVGaWVsZDogRmllbGRDb25maWc7XHJcbiAgICBpZiAodGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVCkge1xyXG4gICAgICBncm91cFR5cGVGaWVsZCA9IHtcclxuICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlRFWFRfQVJFQSxcclxuICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5ncm91cFR5cGUsXHJcbiAgICAgICAgY29udHJvbE5hbWU6ICdncm91cFR5cGUnLFxyXG4gICAgICAgIGlzUmVhZG9ubHk6IHRydWUsXHJcbiAgICAgICAgYXJpYU11bHRpbGluZTogZmFsc2UsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwVHlwZUluZm8/Lm5hbWUsXHJcbiAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNvbnN0YW50cz8uZWRpdEdyb3VwPy5hcmlhTGFiZWw/Lmdyb3VwVHlwZSxcclxuICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGdyb3VwVHlwZUZpZWxkID0ge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uU0VMRUNULFxyXG4gICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/Lmdyb3VwVHlwZSArICcqJyxcclxuICAgICAgICBjb250cm9sTmFtZTogJ2dyb3VwVHlwZScsXHJcbiAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuZ3JvdXBUeXBlcyxcclxuICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5jcmVhdGVHcm91cFRleHQ/LnN1cHBvcnRUZXh0Py5ncm91cFR5cGUsXHJcbiAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lmdyb3VwVHlwZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cFR5cGVGaWVsZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGNyZWF0ZSBncm91cCBmb3JtIGdyb3VwIGFycmF5LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0ge1xyXG4gICAgICBmb3JtR3JvdXA6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6ICcnLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAgdGhpcy5nZXRHcm91cFR5cGVGaWVsZCgpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5JTlBVVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5ncm91cE5hbWUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdncm91cE5hbWUnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cE5hbWVcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjUwMFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihHcm91cHNWYWxpZGF0aW9uUGF0dGVybnM/Lmdyb3VwTmFtZSksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0Py5ncm91cE5hbWUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5JTlBVVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5zaG9ydE5hbWUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdzaG9ydE5hbWUnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFNob3J0TmFtZVxyXG4gICAgICAgICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uc2hvcnROYW1lLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChcclxuICAgICAgICAgICAgICAgICAgc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwPy5jaGFyYWN0ZXJMaW1pdD8uY2hhcmFjdGVyMTVcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zPy5zaG9ydE5hbWUpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uc2hvcnROYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2dyb3VwU2NvcGUnLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBEZXNjXHJcbiAgICAgICAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uc3VwcG9ydFRleHQ/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgbWF4TGVuZ3RoOlxyXG4gICAgICAgICAgICAgICAgc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwPy5jaGFyYWN0ZXJMaW1pdD8uY2hhcmFjdGVyMjAwMCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChcclxuICAgICAgICAgICAgICAgICAgc2NyZWVuVGV4dHM/LmNyZWF0ZUdyb3VwPy5jaGFyYWN0ZXJMaW1pdD8uY2hhcmFjdGVyMTUwMFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihHcm91cHNWYWxpZGF0aW9uUGF0dGVybnM/Lmdyb3VwU2NvcGUpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5ncm91cFNjb3BlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBJZCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNyZWF0ZUZvcm1Hcm91cCh0aGlzLnNlbGVjdGVkR3JvdXBJbmZvKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgY3JlYXRlIHN1YiBncm91cCBmb3JtIGdyb3VwIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbmZvfSBwYXJlbnRHcm91cEluZm8gLVBhcmVudCBncm91cCBpbmZvLlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHVwZGF0ZUNyZWF0ZUZvcm1Hcm91cChwYXJlbnRHcm91cEluZm86IEdyb3VwSW5mbyk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFyZW50R3JvdXAgPSB7XHJcbiAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5wYXJlbnRHcm91cCxcclxuICAgICAgY29udHJvbE5hbWU6ICdwYXJlbnRHcm91cCcsXHJcbiAgICAgIGlzUmVhZG9ubHk6IHRydWUsXHJcbiAgICAgIGFyaWFNdWx0aWxpbmU6IGZhbHNlLFxyXG4gICAgICB2YWx1ZTpcclxuICAgICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRHcm91cFBhcmVudEluZm8/Lmdyb3VwTmFtZVxyXG4gICAgICAgICAgOiBwYXJlbnRHcm91cEluZm8/Lmdyb3VwTmFtZSxcclxuICAgICAgYXJpYUxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8ucGFyZW50R3JvdXAsXHJcbiAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChwYXJlbnRHcm91cD8udmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXA/LmZvcm1Hcm91cFswXT8uY29udHJvbHM/LnVuc2hpZnQocGFyZW50R3JvdXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBjbGllbnQgc2lkZSB2YWxpZGF0aW9uIGFuZCBjYWxscyBjcmVhdGUgZ3JvdXAgb3IgZWRpdCBncm91cCBtZXRob2RzLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm0gLUFycmF5IG9mIGZvcm1Hcm91cFxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdChmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgZm9ybVswXT8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgaWYgKGZvcm1bMF0uc3RhdHVzID09PSBGb3JtU3RhdHVzLlZBTElEKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gZm9ybVswXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xyXG4gICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgPyB0aGlzLmVkaXRHcm91cChmb3JtRGF0YSlcclxuICAgICAgICA6IHRoaXMuY3JlYXRlR3JvdXAoZm9ybURhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBjcmVhdGUgZ3JvdXAgcGF5bG9hZCBhbmQgY2FsbHMgY3JlYXRlIGdyb3VwIEFQSSBhbmQgZW1pdHMgY3JlYXRlIGdyb3VwIEFQSSByZXNwb25zZS5cclxuICAgKiBAcGFyYW0gZm9ybURhdGFcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZUdyb3VwKGZvcm1EYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNyZWF0ZUdyb3VwUGF5bG9hZDogQ3JlYXRlR3JvdXBQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBOYW1lOiBmb3JtRGF0YT8uZ3JvdXBOYW1lLFxyXG4gICAgICAgIGdyb3VwU2hvcnROYW1lOiBmb3JtRGF0YT8uc2hvcnROYW1lLFxyXG4gICAgICAgIGdyb3VwVHlwZTogZm9ybURhdGE/Lmdyb3VwVHlwZT8uaWQsXHJcbiAgICAgICAgZ3JvdXBEZXNjOiBmb3JtRGF0YT8uZ3JvdXBTY29wZSxcclxuICAgICAgICBncm91cFBhcmVudElkOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkID8/IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVHcm91cChjcmVhdGVHcm91cFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0Rm9ybVJlc3BvbnNlPy5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGVkaXQgZ3JvdXAgcGF5bG9hZCBhbmQgY2FsbHMgZWRpdCBncm91cCBBUEkgYW5kIGVtaXRzIGNyZWF0ZSBncm91cCBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtRGF0YVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZWRpdEdyb3VwKGZvcm1EYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVkaXRHcm91cFBheWxvYWQ6IEVkaXRHcm91cFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cE5hbWU6IGZvcm1EYXRhPy5ncm91cE5hbWUsXHJcbiAgICAgICAgZ3JvdXBTaG9ydE5hbWU6IGZvcm1EYXRhPy5zaG9ydE5hbWUsXHJcbiAgICAgICAgZ3JvdXBEZXNjOiBmb3JtRGF0YT8uZ3JvdXBTY29wZSxcclxuICAgICAgICBncm91cFBhcmVudElkOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFBhcmVudElkID8/IG51bGwsXHJcbiAgICAgICAgZ3JvdXBJZDogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBJZCBhcyBzdHJpbmcsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5lZGl0R3JvdXAoZWRpdEdyb3VwUGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtUmVzcG9uc2U/LmVtaXQocmVzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhcHR1cmVzIHRoZSBzZXJ2ZXIgc2lkZSBlcnJvcnMgYW5kIGhhbmRsZXMgdGhlIGVycm9ycyBiYXNlZCBvbiB0aGUgY3VzdG9tIG9yIEh0dHAgZXJyb3JzLlxyXG4gICAqIEBwYXJhbSB7SHR0cEVycm9yUmVzcG9uc2V9IGVycm9yXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaGFuZGxlRXJyb3JzKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXJyb3JDb2Rlczogc3RyaW5nW10gPSBlcnJvcj8uZXJyb3I/LmJvZHk/LmVycm9yQ29kZXM7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvckNvZGVzKSkge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2U6IHN0cmluZ1tdID1cclxuICAgICAgICB0aGlzLmdyb3Vwc1NlcnZpY2U/LnBhcnNlRXJyb3JNZXNzYWdlKGVycm9yQ29kZXMpO1xyXG4gICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoZXJyb3JNZXNzYWdlLCBBbGVydFR5cGUuRVJST1IpO1xyXG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZT8uaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGZvcm0gcmVmZXJlbmNlLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGb3JtR3JvdXBSZWZlcmVuY2UoZm9ybTogRm9ybUdyb3VwW10pIHtcclxuICAgIHRoaXMuZm9ybSA9IGZvcm1bMF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGFsZXJ0cyBmb3IgZXJyb3IsIHdhcm5pbmcuXHJcbiAgICogQHBhcmFtIHsoc3RyaW5nIHwgc3RyaW5nW10pfSBtZXNzYWdlIC1lcnJvciBvciB3YXJuaW5nIG1lc3NhZ2VcclxuICAgKiBAcGFyYW0ge0FsZXJ0VHlwZX0gYWxlcnRUeXBlXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2hvd0FsZXJ0TWVzc2FnZShtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSwgYWxlcnRUeXBlOiBBbGVydFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXHJcbiAgICAgIGFsZXJ0VHlwZTogYWxlcnRUeXBlLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBmb3JtIGNhbmNlbCBldmVudC5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBjcmVhdGVHcm91cENhbmNlbGxlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNhbmNlbD8uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aWVlZXNhLWR5bmFtaWMtZm9ybVxyXG4gICpuZ0lmPVwiZm9ybUdyb3VwXCJcclxuICBbbGVmdEJ1dHRvbkxhYmVsXT1cImxlZnRCdXR0b25MYWJlbFwiXHJcbiAgW3JpZ2h0QnV0dG9uTGFiZWxdPVwicmlnaHRCdXR0b25MYWJlbFwiXHJcbiAgW2lzTGVnZW5kVmlzaWJsZV09XCJpc0xlZ2VuZFZpc2libGVcIlxyXG4gIFtjb2xXaWR0aF09XCJjb2xXaWR0aFwiXHJcbiAgW2FjdGlvbkJ1dHRvbkFsaWduXT1cImFjdGlvbkJ1dHRvbkFsaWduXCJcclxuICBbZm9ybUdyb3Vwc109XCJmb3JtR3JvdXBcIlxyXG4gIFtpc0xlZnRCdXR0b25OZWVkZWRdPVwiaXNMZWZ0QnV0dG9uTmVlZGVkXCJcclxuICAoZm9ybVN1Ym1pdCk9XCJvbkZvcm1TdWJtaXQoJGV2ZW50KVwiXHJcbiAgKGZvcm1MZWZ0QnV0dG9uQ2xpY2tlZCk9XCJjcmVhdGVHcm91cENhbmNlbGxlZCgpXCJcclxuICAoZm9ybUdyb3Vwc1JlZmVyZW5jZSk9XCJnZXRGb3JtR3JvdXBSZWZlcmVuY2UoJGV2ZW50KVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+Il19
519
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLWdyb3VwL2NyZWF0ZS1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBSUwsU0FBUyxFQUNULG9CQUFvQixFQUNwQixlQUFlLEdBR2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEdBRVYsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEtBQUssV0FBVyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7O0FBRTNFLE1B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QkFFRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsQ0FBQyxpQkFHL0MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLGFBQWEsQ0FBQzt3S0FRaEIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBd0IwQixvQkFBb0I7c0JBQXBELFNBQVM7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1HcmlkLFxyXG4gIEZvcm1Nb2RlbCxcclxuICBTZWxlY3RPcHRpb24sXHJcbiAgQWxpZ25UeXBlLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gIEZvcm1Db250cm9sVHlwZSxcclxuICBGaWVsZENvbmZpZyxcclxuICBTbGlkZVRvZ2dsZU9wdGlvbixcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQge1xyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgQWxlcnRUeXBlLFxyXG4gIEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuaW1wb3J0IHsgQ3JlYXRlR3JvdXBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NyZWF0ZS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3Vwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ncm91cHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR3JvdXBUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBFZGl0R3JvdXBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBGdW5jdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JvdXAtZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFBhcmVudEdyb3Vwc0luZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvcGFyZW50LWdyb3Vwcy1pbmZvLm1vZGVsJztcclxuY29uc3QgSU5ERVhfVkFMVUUgPSA0O1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZUdyb3VwQ29tcG9uZW50IHVzZXMgRHluYW1pY0Zvcm1Db21wb25lbnQgdG8gYnVpbGQgY3JlYXRlIG5ldyBncm91cCBmb3JtIG9yIGVkaXQgZ3JvdXAgYW5kIGltcGxlbWVudCB0aGUgZnVuY3Rpb25hbGl0aWVzIG9mIHN1Ym1pc3Npb24gb2YgZm9ybSBhbmQgaGFuZGxpbmcgc3VjY2VzcyBhbmQgZXJyb3Igc2NlbmFyaW9zLlxyXG4gKiBAY2xhc3MgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtY3JlYXRlLWdyb3VwJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIER5bmFtaWNGb3JtQ29tcG9uZW50LCBNYXREaWFsb2dNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbQWxlcnRzU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm1SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgY2FuY2VsbGVkLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNyZWF0ZUdyb3VwVGV4dCA9IHNjcmVlblRleHRzPy5jcmVhdGVHcm91cDtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcbiAgbGVmdEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5sZWZ0QnV0dG9uTGFiZWw7XHJcbiAgcmlnaHRCdXR0b25MYWJlbCA9IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8ucmlnaHRCdXR0b25MYWJlbDtcclxuICBpc0xlZ2VuZFZpc2libGUgPSBmYWxzZTtcclxuICBpc0xlZnRCdXR0b25OZWVkZWQgPSB0cnVlO1xyXG4gIGNvbFdpZHRoOiBGb3JtR3JpZCA9IHsgeHM6IDEyLCB4bDogMTIsIHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIgfTtcclxuICBmb3JtR3JvdXAhOiBGb3JtTW9kZWw7XHJcbiAgZ3JvdXBUeXBlcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGFjdGlvbkJ1dHRvbkFsaWduID0gQWxpZ25UeXBlLkxFRlQ7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBzZWxlY3RlZEdyb3VwSW5mbyE6IEdyb3VwSW5mbyB8IHVuZGVmaW5lZDtcclxuICBncm91cEZ1bmN0aW9uVHlwZSE6IEdyb3VwRnVuY3Rpb25UeXBlO1xyXG4gIHNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvITogR3JvdXBJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIGFsbG93ZWRQYXJlbnRHcm91cHM6IFBhcmVudEdyb3Vwc0luZm9bXSA9IFtdO1xyXG4gIGFsbG93ZWRQYXJlbnRHcm91cHNPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGlzUGFyZW50R3JvdXBDaGFuZ2VkID0gZmFsc2U7XHJcbiAgc2xpZGVUb2dnbGVPcHRpb246IFNsaWRlVG9nZ2xlT3B0aW9uID0ge1xyXG4gICAgaWQ6IDEsXHJcbiAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5jaGFuZ2VQYXJlbnRHcm91cCxcclxuICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gIH07XHJcbiAgQFZpZXdDaGlsZChEeW5hbWljRm9ybUNvbXBvbmVudCkgZHluYW1pY0Zvcm1Db21wb25lbnQhOiBEeW5hbWljRm9ybUNvbXBvbmVudDtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBzU2VydmljZTogR3JvdXBzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBnbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlOiBHbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvbixcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGNyZWF0ZSBncm91cCBmb3JtIGdyb3VwIGFycmF5IGFuZCBjb21wb25lbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRHcm91cEZ1bmN0aW9uVHlwZSgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwSW5mbyA9IHRoaXMuZ3JvdXBzU2VydmljZT8uZ2V0U2VsZWN0ZWRHcm91cEluZm8oKTtcclxuICAgIGlmICh0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cFBhcmVudEluZm8gPVxyXG4gICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uZ2V0U2VsZWN0ZWRHcm91cFBhcmVudEluZm8oKTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwUGFyZW50SWQpXHJcbiAgICAgICAgdGhpcy5nZXRQYXJlbnRHcm91cHModGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBJZCk7XHJcbiAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBncm91cFR5cGVzID0gdGhpcy5ncm91cHNTZXJ2aWNlPy5nZXRGb3JtYXR0ZWRHcm91cFR5cGVzKFxyXG4gICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uZ2V0TG9hZGVkR3JvdXBUeXBlcygpXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cFR5cGUpIHtcclxuICAgICAgICBjb25zdCBhbGxvd2VkR3JvdXBUeXBlID1cclxuICAgICAgICAgIGdyb3VwVHlwZXNbdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBUeXBlXT8uYnVzaW5lc3NSdWxlXHJcbiAgICAgICAgICAgID8uYWxsb3dlZEdyb3VwVHlwZTtcclxuICAgICAgICBpZiAoYWxsb3dlZEdyb3VwVHlwZT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwVHlwZXMgPSBhbGxvd2VkR3JvdXBUeXBlLm1hcCgoZ3JvdXBUeXBlSWQ6IHN0cmluZykgPT4gKHtcclxuICAgICAgICAgICAgaWQ6IGdyb3VwVHlwZUlkLFxyXG4gICAgICAgICAgICBuYW1lOiBncm91cFR5cGVzW2dyb3VwVHlwZUlkXT8ubmFtZSxcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBUeXBlcyA9IHRoaXMuZ3JvdXBUeXBlcy5maWx0ZXIoXHJcbiAgICAgICAgICAgIChncm91cFR5cGUpID0+ICFncm91cFR5cGVzW2dyb3VwVHlwZS5pZF0/LmJ1c2luZXNzUnVsZT8uaXNBZG1pblxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKHNjcmVlblRleHRzPy5lcnJvcnM/LkVSMTAwMCwgQWxlcnRUeXBlLkVSUk9SKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gT2JqZWN0LmVudHJpZXMoZ3JvdXBUeXBlcykubWFwKFxyXG4gICAgICAgICAgKFtpZCwgaXRlbV06IFtzdHJpbmcsIEdyb3VwVHlwZV0pID0+ICh7XHJcbiAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICBuYW1lOiBpdGVtPy5uYW1lLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBUeXBlcyA9IHRoaXMuZ3JvdXBUeXBlcy5maWx0ZXIoXHJcbiAgICAgICAgICAoZ3JvdXBUeXBlKSA9PlxyXG4gICAgICAgICAgICBncm91cFR5cGVzW2dyb3VwVHlwZS5pZF0/LmhpZXJhcmNoeSA9PT0gMCAmJlxyXG4gICAgICAgICAgICAhZ3JvdXBUeXBlc1tncm91cFR5cGUuaWRdPy5idXNpbmVzc1J1bGU/LmlzQWRtaW5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmdyb3VwVHlwZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKHNjcmVlblRleHRzPy5lcnJvcnM/LlsnMTAxMCddLCBBbGVydFR5cGUuRVJST1IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIHRoZSBncm91cCB0eXBlIGZvcm0gZmllbGQgYmFzZWQgb24gZWRpdCBncm91cCBvciBub3QuXHJcbiAgICogQHJldHVybiB7RmllbGRDb25maWd9IC1ncm91cCB0eXBlIGZvcm0gZmllbGQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBUeXBlRmllbGQoKTogRmllbGRDb25maWcge1xyXG4gICAgbGV0IGdyb3VwVHlwZUZpZWxkOiBGaWVsZENvbmZpZztcclxuICAgIGlmICh0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUKSB7XHJcbiAgICAgIGdyb3VwVHlwZUZpZWxkID0ge1xyXG4gICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/Lmdyb3VwVHlwZSxcclxuICAgICAgICBjb250cm9sTmFtZTogJ2dyb3VwVHlwZScsXHJcbiAgICAgICAgaXNSZWFkb25seTogdHJ1ZSxcclxuICAgICAgICBhcmlhTXVsdGlsaW5lOiBmYWxzZSxcclxuICAgICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBUeXBlSW5mbz8ubmFtZSxcclxuICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY29uc3RhbnRzPy5lZGl0R3JvdXA/LmFyaWFMYWJlbD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZ3JvdXBUeXBlRmllbGQgPSB7XHJcbiAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5TRUxFQ1QsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBUeXBlICsgJyonLFxyXG4gICAgICAgIGNvbnRyb2xOYW1lOiAnZ3JvdXBUeXBlJyxcclxuICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5ncm91cFR5cGVzLFxyXG4gICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uc3VwcG9ydFRleHQ/Lmdyb3VwVHlwZSxcclxuICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5ncm91cFR5cGUsXHJcbiAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5ncm91cFR5cGUsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwVHlwZUZpZWxkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgY3JlYXRlIGdyb3VwIGZvcm0gZ3JvdXAgYXJyYXkuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVGb3JtR3JvdXAoZm9ybVZhbHVlPzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHtcclxuICAgICAgZm9ybUdyb3VwOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiAnJyxcclxuICAgICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0R3JvdXBUeXBlRmllbGQoKSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uSU5QVVQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uZ3JvdXBOYW1lICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnZ3JvdXBOYW1lJyxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgICAgICAgID8gZm9ybVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWU/Lmdyb3VwTmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBOYW1lXHJcbiAgICAgICAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uc3VwcG9ydFRleHQ/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuPy5ncm91cE5hbWUsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKFxyXG4gICAgICAgICAgICAgICAgICBzY3JlZW5UZXh0cz8uY3JlYXRlR3JvdXA/LmNoYXJhY3RlckxpbWl0Py5jaGFyYWN0ZXI1MDBcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oR3JvdXBzVmFsaWRhdGlvblBhdHRlcm5zPy5ncm91cE5hbWUpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uZ3JvdXBOYW1lLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lmdyb3VwTmFtZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uSU5QVVQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uc2hvcnROYW1lICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnc2hvcnROYW1lJyxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUXHJcbiAgICAgICAgICAgICAgICAgID8gZm9ybVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmb3JtVmFsdWU/LnNob3J0TmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBTaG9ydE5hbWVcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuPy5zaG9ydE5hbWUsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8uc3VwcG9ydFRleHQ/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoXHJcbiAgICAgICAgICAgICAgICAgIHNjcmVlblRleHRzPy5jcmVhdGVHcm91cD8uY2hhcmFjdGVyTGltaXQ/LmNoYXJhY3RlcjE1XHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucz8uc2hvcnROYW1lKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5tZXNzYWdlPy5lcnJvcj8ubGltaXQ/LnNob3J0TmFtZSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5zaG9ydE5hbWUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5zaG9ydE5hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdncm91cFNjb3BlJyxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuPy5ncm91cFNjb3BlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cEZ1bmN0aW9uVHlwZSA9PT0gR3JvdXBGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICAgICAgICAgICAgICA/IGZvcm1WYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgID8gZm9ybVZhbHVlPy5ncm91cFNjb3BlXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cERlc2NcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5zdXBwb3J0VGV4dD8uZ3JvdXBTY29wZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBtYXhMZW5ndGg6XHJcbiAgICAgICAgICAgICAgICBzY3JlZW5UZXh0cz8uY3JlYXRlR3JvdXA/LmNoYXJhY3RlckxpbWl0Py5jaGFyYWN0ZXIyMDAwLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKFxyXG4gICAgICAgICAgICAgICAgICBzY3JlZW5UZXh0cz8uY3JlYXRlR3JvdXA/LmNoYXJhY3RlckxpbWl0Py5jaGFyYWN0ZXIxNTAwXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEdyb3Vwc1ZhbGlkYXRpb25QYXR0ZXJucz8uZ3JvdXBTY29wZSksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0Py5ncm91cFNjb3BlLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5jcmVhdGVHcm91cFRleHQ/LmxhYmVsPy5hcmlhTGFiZWw/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5ncm91cFNjb3BlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQ3JlYXRlRm9ybUdyb3VwKHRoaXMuc2VsZWN0ZWRHcm91cEluZm8pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBjcmVhdGUgc3ViIGdyb3VwIGZvcm0gZ3JvdXAgYXJyYXkuXHJcbiAgICogQHBhcmFtIHtHcm91cEluZm99IHBhcmVudEdyb3VwSW5mbyAtUGFyZW50IGdyb3VwIGluZm8uXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlQ3JlYXRlRm9ybUdyb3VwKHBhcmVudEdyb3VwSW5mbzogR3JvdXBJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgICh0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUICYmXHJcbiAgICAgICAgcGFyZW50R3JvdXBJbmZvPy5ncm91cFBhcmVudElkKSB8fFxyXG4gICAgICB0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5DUkVBVEVcclxuICAgICkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUFkZFVzZXJGb3JtQ29udHJvbHMoXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXA/LmZvcm1Hcm91cFswXT8uY29udHJvbHM/Lmxlbmd0aCAtIElOREVYX1ZBTFVFLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8ucGFyZW50R3JvdXAsXHJcbiAgICAgICAgICBjb250cm9sTmFtZTogJ3BhcmVudEdyb3VwJyxcclxuICAgICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBQYXJlbnRJbmZvPy5ncm91cE5hbWUgPz9cclxuICAgICAgICAgICAgcGFyZW50R3JvdXBJbmZvPy5ncm91cE5hbWUsXHJcbiAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5wYXJlbnRHcm91cCxcclxuICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5wYXJlbnRHcm91cCxcclxuICAgICAgICAgIGlzUmVhZG9ubHk6IHRydWUsXHJcbiAgICAgICAgICBhcmlhTXVsdGlsaW5lOiBmYWxzZSxcclxuICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyb3VwRnVuY3Rpb25UeXBlID09PSBHcm91cEZ1bmN0aW9uVHlwZS5FRElUKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBZGRVc2VyRm9ybUNvbnRyb2xzKFxyXG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXA/LmZvcm1Hcm91cFswXT8uY29udHJvbHM/Lmxlbmd0aCAtIElOREVYX1ZBTFVFLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGU/LlNMSURFX1RPR0dMRSxcclxuICAgICAgICAgICAgY29udHJvbE5hbWU6ICdjaGFuZ2VQYXJlbnRHcm91cCcsXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVGV4dD8ubGFiZWw/LmFyaWFMYWJlbD8uY2hhbmdlUGFyZW50R3JvdXAsXHJcbiAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmNoYW5nZVBhcmVudEdyb3VwLFxyXG4gICAgICAgICAgICBzbGlkZVRvZ2dsZU9wdGlvbjogdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbixcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnMubGVuZ3RoID09PSAwLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNQYXJlbnRHcm91cENoYW5nZWQpIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlQWRkVXNlckZvcm1Db250cm9scyhcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXA/LmZvcm1Hcm91cFswXT8uY29udHJvbHM/Lmxlbmd0aCAtIElOREVYX1ZBTFVFLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlPy5TRUxFQ1QsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8ubmV3UGFyZW50R3JvdXAgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICduZXdQYXJlbnRHcm91cCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwSWRcclxuICAgICAgICAgICAgICApWzBdLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFRleHQ/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHNPcHRpb25zLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgICAgICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5jcmVhdGVHcm91cFRleHQ/LnN1cHBvcnRUZXh0Py5uZXdQYXJlbnRHcm91cCxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYUxhYmVsPy5uZXdQYXJlbnRHcm91cCxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUZXh0Py5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/Lm5ld1BhcmVudEdyb3VwLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgY3JlYXRlIG9yIGVkaXQgdXNlciBmb3JtIGdyb3VwIGNvbnRyb2xzIGJ5IGFkZGluZyBmaWVsZENvbmZpZyBhdCByZXF1aXJlZCBpbmRleC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhQb3NpdGlvblxyXG4gICAqIEBwYXJhbSB7RmllbGRDb25maWd9IGZpZWxkQ29uZmlnXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlQWRkVXNlckZvcm1Db250cm9scyhcclxuICAgIGluZGV4UG9zaXRpb246IG51bWJlcixcclxuICAgIGZpZWxkQ29uZmlnOiBGaWVsZENvbmZpZ1xyXG4gICk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXA/LmZvcm1Hcm91cFswXT8uY29udHJvbHM/LnNwbGljZShcclxuICAgICAgaW5kZXhQb3NpdGlvbixcclxuICAgICAgMCxcclxuICAgICAgZmllbGRDb25maWdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNsaWVudCBzaWRlIHZhbGlkYXRpb24gYW5kIGNhbGxzIGNyZWF0ZSBncm91cCBvciBlZGl0IGdyb3VwIG1ldGhvZHMuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybSAtQXJyYXkgb2YgZm9ybUdyb3VwXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtU3VibWl0KGZvcm06IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICBmb3JtWzBdPy5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICBpZiAoZm9ybVswXS5zdGF0dXMgPT09IEZvcm1TdGF0dXMuVkFMSUQpIHtcclxuICAgICAgY29uc3QgZm9ybURhdGEgPSBmb3JtWzBdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXHJcbiAgICAgIHRoaXMuZ3JvdXBGdW5jdGlvblR5cGUgPT09IEdyb3VwRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgICA/IHRoaXMuZWRpdEdyb3VwKGZvcm1EYXRhKVxyXG4gICAgICAgIDogdGhpcy5jcmVhdGVHcm91cChmb3JtRGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgY3JlYXRlIGdyb3VwIHBheWxvYWQgYW5kIGNhbGxzIGNyZWF0ZSBncm91cCBBUEkgYW5kIGVtaXRzIGNyZWF0ZSBncm91cCBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjcmVhdGVHcm91cChmb3JtRGF0YTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBjcmVhdGVHcm91cFBheWxvYWQ6IENyZWF0ZUdyb3VwUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGdyb3VwTmFtZTogZm9ybURhdGE/Lmdyb3VwTmFtZSxcclxuICAgICAgICBncm91cFNob3J0TmFtZTogZm9ybURhdGE/LnNob3J0TmFtZSxcclxuICAgICAgICBncm91cFR5cGU6IGZvcm1EYXRhPy5ncm91cFR5cGU/LmlkLFxyXG4gICAgICAgIGdyb3VwRGVzYzogZm9ybURhdGE/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgZ3JvdXBQYXJlbnRJZDogdGhpcy5zZWxlY3RlZEdyb3VwSW5mbz8uZ3JvdXBJZCA/PyBudWxsLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAuY3JlYXRlR3JvdXAoY3JlYXRlR3JvdXBQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm1SZXNwb25zZT8uZW1pdChyZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyBlZGl0IGdyb3VwIHBheWxvYWQgYW5kIGNhbGxzIGVkaXQgZ3JvdXAgQVBJIGFuZCBlbWl0cyBjcmVhdGUgZ3JvdXAgQVBJIHJlc3BvbnNlLlxyXG4gICAqIEBwYXJhbSBmb3JtRGF0YVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZWRpdEdyb3VwKGZvcm1EYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZT8uc2V0UGFyZW50R3JvdXBDaGFuZ2VTdGF0dXModGhpcy5pc1BhcmVudEdyb3VwQ2hhbmdlZCk7XHJcbiAgICBjb25zdCBlZGl0R3JvdXBQYXlsb2FkOiBFZGl0R3JvdXBQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBOYW1lOiBmb3JtRGF0YT8uZ3JvdXBOYW1lLFxyXG4gICAgICAgIGdyb3VwU2hvcnROYW1lOiBmb3JtRGF0YT8uc2hvcnROYW1lLFxyXG4gICAgICAgIGdyb3VwRGVzYzogZm9ybURhdGE/Lmdyb3VwU2NvcGUsXHJcbiAgICAgICAgZ3JvdXBQYXJlbnRJZDogdGhpcy5pc1BhcmVudEdyb3VwQ2hhbmdlZFxyXG4gICAgICAgICAgPyBmb3JtRGF0YT8ubmV3UGFyZW50R3JvdXA/LmlkXHJcbiAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRHcm91cEluZm8/Lmdyb3VwUGFyZW50SWQgPz8gbnVsbCxcclxuICAgICAgICBncm91cElkOiB0aGlzLnNlbGVjdGVkR3JvdXBJbmZvPy5ncm91cElkIGFzIHN0cmluZyxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmVkaXRHcm91cChlZGl0R3JvdXBQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm1SZXNwb25zZT8uZW1pdChyZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FwdHVyZXMgdGhlIHNlcnZlciBzaWRlIGVycm9ycyBhbmQgaGFuZGxlcyB0aGUgZXJyb3JzIGJhc2VkIG9uIHRoZSBjdXN0b20gb3IgSHR0cCBlcnJvcnMuXHJcbiAgICogQHBhcmFtIHtIdHRwRXJyb3JSZXNwb25zZX0gZXJyb3JcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBoYW5kbGVFcnJvcnMoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBlcnJvckNvZGVzOiBzdHJpbmdbXSA9IGVycm9yPy5lcnJvcj8uYm9keT8uZXJyb3JDb2RlcztcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yQ29kZXMpKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZTogc3RyaW5nW10gPVxyXG4gICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZT8ucGFyc2VFcnJvck1lc3NhZ2UoZXJyb3JDb2Rlcyk7XHJcbiAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShlcnJvck1lc3NhZ2UsIEFsZXJ0VHlwZS5FUlJPUik7XHJcbiAgICB9IGVsc2UgaWYgKGVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5nbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlPy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgZm9ybSByZWZlcmVuY2UuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEZvcm1Hcm91cFJlZmVyZW5jZShmb3JtOiBGb3JtR3JvdXBbXSkge1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybVswXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYWxlcnRzIGZvciBlcnJvciwgd2FybmluZy5cclxuICAgKiBAcGFyYW0geyhzdHJpbmcgfCBzdHJpbmdbXSl9IG1lc3NhZ2UgLWVycm9yIG9yIHdhcm5pbmcgbWVzc2FnZVxyXG4gICAqIEBwYXJhbSB7QWxlcnRUeXBlfSBhbGVydFR5cGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlR3JvdXBDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93QWxlcnRNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdLCBhbGVydFR5cGU6IEFsZXJ0VHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgYWxlcnRUeXBlOiBhbGVydFR5cGUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm0gY2FuY2VsIGV2ZW50LlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZUdyb3VwQ2FuY2VsbGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2FuY2VsPy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGFsbG93ZWQgcGFyZW50IGdyb3VwcyBmb3IgcmVhc3NpZ25pbmcgdGhlIHBhcmVudC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFBhcmVudEdyb3Vwcyhncm91cElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWxsb3dlZFBhcmVudEdyb3VwcyA9IFtdO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRBbGxvd2VkUGFyZW50R3JvdXBzKGdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXNwb25zZT8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsb3dlZFBhcmVudEdyb3Vwc09wdGlvbnM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBvcHRpb24/Lmdyb3VwSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogb3B0aW9uPy5ncm91cEFjcm9ueW0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHMgPSByZXNwb25zZTtcclxuICAgICAgICAgIGlmICh0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHNPcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICAgJ2NoYW5nZVBhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgICAnaXNEaXNhYmxlZCcsXHJcbiAgICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICAgJ25ld1BhcmVudEdyb3VwJyxcclxuICAgICAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgICAgICB0aGlzLmFsbG93ZWRQYXJlbnRHcm91cHNPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAgICdjaGFuZ2VQYXJlbnRHcm91cCcsXHJcbiAgICAgICAgICAgICdpc0Rpc2FibGVkJyxcclxuICAgICAgICAgICAgdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzT3B0aW9ucy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgcGFzc2VkIGZvcm0gZmllbGQgdmFsdWVzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtQ29udHJvbE5hbWVcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybUNvbnRyb2xJbnB1dFByb3BlcnR5XHJcbiAgICogQHBhcmFtIHsqfSB2YWx1ZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgIGZvcm1Db250cm9sTmFtZTogc3RyaW5nLFxyXG4gICAgZm9ybUNvbnRyb2xJbnB1dFByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgdmFsdWU6IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnQ/LmZvcm1GaWVsZHM/LnRvQXJyYXkoKTtcclxuICAgIGZvcm1GaWVsZHM/LmZvckVhY2goKGZvcm1GaWVsZCkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZm9ybUZpZWxkPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5jb25maWc/LmNvbnRyb2xOYW1lID09PVxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lICYmXHJcbiAgICAgICAgZm9ybUZpZWxkPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5bZm9ybUNvbnRyb2xJbnB1dFByb3BlcnR5XVxyXG4gICAgICApXHJcbiAgICAgICAgZm9ybUZpZWxkLmNvbXBvbmVudC5pbnN0YW5jZVtmb3JtQ29udHJvbElucHV0UHJvcGVydHldID0gdmFsdWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMvcmVtb3ZlcyBuZXcgcGFyZW50IGdyb3VwIHNlbGVjdGlvbiBvcHRpb25zIHdoZW5ldmVyIENoYW5nZSBQYXJlbnQgR3JvdXAgc2xpZGVyIGlzIHRvZ2dsZWQuXHJcbiAgICogQHBhcmFtIHtTbGlkZVRvZ2dsZU9wdGlvbn0gdG9nZ2xlXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtU2xpZGVUb2dnbGVDaGFuZ2UodG9nZ2xlOiBTbGlkZVRvZ2dsZU9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5jaGVja2VkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gICAgdGhpcy5pc1BhcmVudEdyb3VwQ2hhbmdlZCA9IHRvZ2dsZT8uY2hlY2tlZDtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKHRoaXMuZm9ybT8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBjcmVhdGUgZ3JvdXAgZm9ybSBjaGFuZ2UgZXZlbnQuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVHcm91cENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ3JlYXRlR3JvdXBGb3JtQ2hhbmdlKGZvcm06IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1BhcmVudEdyb3VwQ2hhbmdlZCkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZFBhcmVudEdyb3VwID0gdGhpcy5hbGxvd2VkUGFyZW50R3JvdXBzPy5maWx0ZXIoXHJcbiAgICAgICAgKG9wdGlvbjogUGFyZW50R3JvdXBzSW5mbykgPT5cclxuICAgICAgICAgIG9wdGlvbj8uZ3JvdXBJZCA9PT1cclxuICAgICAgICAgIGZvcm1bMF0/LmNvbnRyb2xzWyduZXdQYXJlbnRHcm91cCddPy52YWx1ZT8uaWQ/LnRvU3RyaW5nKClcclxuICAgICAgKVswXTtcclxuICAgICAgdGhpcy5mb3JtPy5nZXQoJ3BhcmVudEdyb3VwJyk/LnNldFZhbHVlKHNlbGVjdGVkUGFyZW50R3JvdXA/Lmdyb3VwTmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZUdyb3VwQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxpZWVlc2EtZHluYW1pYy1mb3JtXHJcbiAgKm5nSWY9XCJmb3JtR3JvdXBcIlxyXG4gIFtsZWZ0QnV0dG9uTGFiZWxdPVwibGVmdEJ1dHRvbkxhYmVsXCJcclxuICBbcmlnaHRCdXR0b25MYWJlbF09XCJyaWdodEJ1dHRvbkxhYmVsXCJcclxuICBbaXNMZWdlbmRWaXNpYmxlXT1cImlzTGVnZW5kVmlzaWJsZVwiXHJcbiAgW2NvbFdpZHRoXT1cImNvbFdpZHRoXCJcclxuICBbYWN0aW9uQnV0dG9uQWxpZ25dPVwiYWN0aW9uQnV0dG9uQWxpZ25cIlxyXG4gIFtmb3JtR3JvdXBzXT1cImZvcm1Hcm91cFwiXHJcbiAgW2lzTGVmdEJ1dHRvbk5lZWRlZF09XCJpc0xlZnRCdXR0b25OZWVkZWRcIlxyXG4gIChmb3JtU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgkZXZlbnQpXCJcclxuICAoZm9ybUxlZnRCdXR0b25DbGlja2VkKT1cImNyZWF0ZUdyb3VwQ2FuY2VsbGVkKClcIlxyXG4gIChmb3JtR3JvdXBzUmVmZXJlbmNlKT1cImdldEZvcm1Hcm91cFJlZmVyZW5jZSgkZXZlbnQpXCJcclxuICAoZm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRm9ybVNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gIChmb3JtQ2hhbmdlKT1cIm9uQ3JlYXRlR3JvdXBGb3JtQ2hhbmdlKCRldmVudClcIlxyXG4+PC9pZWVlc2EtZHluYW1pYy1mb3JtPiJdfQ==