@ieeesa-npm/tenants 0.3.9 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Output, ViewChild, ViewContainerRef, ViewEncap
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { Validators } from '@angular/forms';
4
4
  import { Subject, takeUntil } from 'rxjs';
5
- import { AlignType, FormControlType, DynamicFormComponent, CheckboxComponent, } from '@ieeesa-npm/presentation';
5
+ import { AlignType, FormControlType, CheckboxComponent, DynamicFormComponent, } from '@ieeesa-npm/presentation';
6
6
  import { GroupRosterType, RoleType } from '@ieeesa-npm/groups';
7
7
  import { AlertType } from '@ieeesa-npm/utility';
8
8
  import * as screenTexts from '../../assets/constants.json';
@@ -392,27 +392,30 @@ export class CreateModifyGroupTypeComponent {
392
392
  roleId: selectedRole.id,
393
393
  };
394
394
  });
395
+ const configFieldValue = {
396
+ name: form[0].get('groupType')?.value,
397
+ description: form[0].get('description')?.value,
398
+ businessRule: {
399
+ rosterType: form[0].get('rosterType')?.value,
400
+ allowEdit: this.isSettingSelectedByName(Settings.ALLOW_EDIT),
401
+ allowRoster: this.isSettingSelectedByName(Settings.ALLOW_ROSTERS),
402
+ allowAlternateVoting: this.isSettingSelectedByName(Settings.ALLOW_ALTERNATE_VOTING),
403
+ allowDelete: this.isSettingSelectedByName(Settings.ALLOW_DELETE),
404
+ allowSubGroup: this.isSettingSelectedByName(Settings.ALLOW_SUB_GROUPS),
405
+ hasClassification: this.isSettingSelectedByName(Settings.HAS_CLASSIFICATION),
406
+ allowedGroupType: selectedGroupTypes,
407
+ isRootGroup: form[0].get('isRootGroup')?.value ===
408
+ this.isRootGroupOptions[0].label,
409
+ },
410
+ };
411
+ if (form[0].get('isRootGroup')?.value === this.isRootGroupOptions[0].label)
412
+ configFieldValue.hierarchy = 0;
395
413
  const createGroupTypePayload = {
396
414
  payload: {
397
415
  appId: this.appId,
398
416
  roles: selectedRoles,
399
417
  configFieldName: 'group_type',
400
- configFieldValue: JSON.stringify({
401
- name: form[0].get('groupType')?.value,
402
- description: form[0].get('description')?.value,
403
- businessRule: {
404
- rosterType: form[0].get('rosterType')?.value,
405
- allowEdit: this.isSettingSelectedByName(Settings.ALLOW_EDIT),
406
- allowRoster: this.isSettingSelectedByName(Settings.ALLOW_ROSTERS),
407
- allowAlternateVoting: this.isSettingSelectedByName(Settings.ALLOW_ALTERNATE_VOTING),
408
- allowDelete: this.isSettingSelectedByName(Settings.ALLOW_DELETE),
409
- allowSubGroup: this.isSettingSelectedByName(Settings.ALLOW_SUB_GROUPS),
410
- hasClassification: this.isSettingSelectedByName(Settings.HAS_CLASSIFICATION),
411
- allowedGroupType: selectedGroupTypes,
412
- isRootGroup: form[0].get('isRootGroup')?.value ===
413
- this.isRootGroupOptions[0].label,
414
- },
415
- }),
418
+ configFieldValue: JSON.stringify(configFieldValue),
416
419
  },
417
420
  };
418
421
  this.tenantAppService
@@ -455,11 +458,11 @@ export class CreateModifyGroupTypeComponent {
455
458
  this.destroy$.unsubscribe();
456
459
  }
457
460
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyGroupTypeComponent, deps: [{ token: i1.TenantApplicationsService }, { token: i2.SharedService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
458
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateModifyGroupTypeComponent, isStandalone: true, selector: "ieeesa-create-modify-group-type", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }, { propertyName: "dynamicFormComponentViewRef", first: true, predicate: DynamicFormComponent, descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createGroupTypeFormGroup\"\r\n class=\"ieeesa-create-group-type-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createGroupTypeFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyGroupTypeFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyGroupTypeFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onCheckboxSelectionChange($event)\"\r\n></ieeesa-dynamic-form>\r\n", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-modify-group-type{width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .mat-mdc-dialog-content{padding:1em!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-input-field{width:50%}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\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", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
461
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateModifyGroupTypeComponent, isStandalone: true, selector: "ieeesa-create-modify-group-type", outputs: { submitFormResponse: "submitFormResponse", formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }, { propertyName: "dynamicFormComponentViewRef", first: true, predicate: DynamicFormComponent, descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createGroupTypeFormGroup\"\r\n class=\"ieeesa-create-group-type-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createGroupTypeFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyGroupTypeFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyGroupTypeFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onCheckboxSelectionChange($event)\"\r\n></ieeesa-dynamic-form>\r\n", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-modify-group-type{width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .mat-mdc-dialog-content{padding:1em!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-input-field{width:50%}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\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", "supportTextLinkClick", "formSlideToggleChange", "formFileUpload", "dropdownOpenedChange", "formColorPickerChange", "formRadioOptionSelected", "ctaButtonClick", "formMultiSelectAutoCompleteSearch", "formMultiSelectAutoCompleteClearSearchValue", "multiSelectAutoCompleteOptionsSelected", "formRichTextEditorContentChange"], exportAs: ["dynamicForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
459
462
  }
460
463
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateModifyGroupTypeComponent, decorators: [{
461
464
  type: Component,
462
- args: [{ selector: 'ieeesa-create-modify-group-type', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createGroupTypeFormGroup\"\r\n class=\"ieeesa-create-group-type-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createGroupTypeFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyGroupTypeFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyGroupTypeFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onCheckboxSelectionChange($event)\"\r\n></ieeesa-dynamic-form>\r\n", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-modify-group-type{width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .mat-mdc-dialog-content{padding:1em!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-input-field{width:50%}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\n"] }]
465
+ args: [{ selector: 'ieeesa-create-modify-group-type', standalone: true, imports: [CommonModule, DynamicFormComponent], encapsulation: ViewEncapsulation.None, template: "<ieeesa-dynamic-form\r\n *ngIf=\"createGroupTypeFormGroup\"\r\n class=\"ieeesa-create-group-type-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"false\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createGroupTypeFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formSubmit)=\"onCreateModifyGroupTypeFormSubmit($event)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateModifyGroupTypeFormGroupRef($event)\"\r\n (formCheckboxSelection)=\"onCheckboxSelectionChange($event)\"\r\n></ieeesa-dynamic-form>\r\n", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-modal-dialog.ieeesa-create-modify-group-type{width:60vw!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .mat-mdc-dialog-container{box-shadow:none}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .mat-mdc-dialog-content{padding:1em!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__actions{flex-direction:row-reverse;gap:.5em}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field{margin-bottom:1em;padding-top:0!important}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-modal .ieeesa-dynamic-form__form-field .ieeesa-text-area-field__resize{resize:vertical}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-input-field{width:50%}@media (max-width: 767px){.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form__form-field{width:100%}.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .ieeesa-input-field,.ieeesa-modal-dialog.ieeesa-create-modify-group-type .ieeesa-dynamic-form .mat-mdc-form-field-flex{width:100%!important}}\n"] }]
463
466
  }], ctorParameters: function () { return [{ type: i1.TenantApplicationsService }, { type: i2.SharedService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.FormUtilityService }]; }, propDecorators: { dynamicFormComponent: [{
464
467
  type: ViewChild,
465
468
  args: [DynamicFormComponent]
@@ -471,4 +474,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
471
474
  }], formCancel: [{
472
475
  type: Output
473
476
  }] } });
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGlmeS1ncm91cC10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZS9jcmVhdGUtbW9kaWZ5LWdyb3VwLXR5cGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1ncm91cC10eXBlL2NyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFHWixNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQ0wsU0FBUyxFQUdULGVBQWUsRUFJZixvQkFBb0IsRUFDcEIsaUJBQWlCLEdBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLDZDQUE2QyxDQUFDO0FB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alRENkNZLFlBQVksbUlBQUUsb0JBQW9COzs0RkFLakMsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsaUJBRzlCLGlCQUFpQixDQUFDLElBQUk7OE5BcUNyQyxvQkFBb0I7c0JBRG5CLFNBQVM7dUJBQUMsb0JBQW9CO2dCQUcvQiwyQkFBMkI7c0JBRDFCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUWpELGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2hhcmVkU2VydmljZSwgRm9ybVV0aWxpdHlTZXJ2aWNlLCBMT1YgfSBmcm9tICdAaWVlZXNhLW5wbS9zaGFyZWQnO1xyXG5pbXBvcnQge1xyXG4gIEFsaWduVHlwZSxcclxuICBDaGVja2JveE9wdGlvbixcclxuICBGaWVsZENvbmZpZyxcclxuICBGb3JtQ29udHJvbFR5cGUsXHJcbiAgRm9ybUdyaWQsXHJcbiAgRm9ybU1vZGVsLFxyXG4gIFJhZGlvT3B0aW9uLFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gIENoZWNrYm94Q29tcG9uZW50LFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEdyb3VwUm9zdGVyVHlwZSwgUm9sZVR5cGUgfSBmcm9tICdAaWVlZXNhLW5wbS9ncm91cHMnO1xyXG5pbXBvcnQgeyBBbGVydFR5cGUgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR3JvdXBUeXBlVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL2Fzc2V0cy90ZW5hbnQtdmFsaWRhdGlvbnMnO1xyXG5pbXBvcnQgeyBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTZXR0aW5ncyxcclxuICBSb3N0ZXJUeXBlTE9WQ29kZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvY3JlYXRlLWdyb3VwLXR5cGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgUm9sZSB9IGZyb20gJy4uLy4uL21vZGVscy9yb2xlcy1hbmQtcGVybWlzc2lvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRGdW5jdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFZpZXdHcm91cFR5cGVSZXNwb25zZSxcclxuICBWaWV3R3JvdXBUeXBlc0NvbmZpZ3VyYXRpb24sXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXctdGVuYW50LWdyb3VwLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVHcm91cFR5cGVSZXF1ZXN0UGF5bG9hZCxcclxuICBDcmVhdGVHcm91cFR5cGVSZXNwb25zZSxcclxuICBDcmVhdGVkT3JNb2RpZmllZEdyb3VwVHlwZUluZm8sXHJcbiAgR2V0Um9zdGVyVHlwZU9yU2V0dGluZ3NSZXNwb25zZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvY3JlYXRlLWdyb3VwLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnQgdXNlcyBEeW5hbWljRm9ybUNvbXBvbmVudCB0byBidWlsZCBjcmVhdGUgYWRkIGdyb3VwIHR5cGUgZm9ybSBvciBlZGl0IGdyb3VwIHR5cGUgZm9ybSBhbmQgaW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXRpZXMgb2Ygc3VibWlzc2lvbiBvZiBmb3JtIGFuZCBoYW5kbGluZyBzdWNjZXNzIGFuZCBlcnJvciBzY2VuYXJpb3MuXHJcbiAqIEBjbGFzcyBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWNyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEeW5hbWljRm9ybUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW1vZGlmeS1ncm91cC10eXBlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IHNjcmVlblRleHRzO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM6IGFueSA9IHRoaXMuY29uc3RhbnRzPy5jcmVhdGVHcm91cFR5cGU7XHJcbiAgbGVmdEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LnJpZ2h0QnV0dG9uTGFiZWw7XHJcbiAgY29sV2lkdGg6IEZvcm1HcmlkID0geyB4czogMTIsIHhsOiAxMiwgc206IDEyLCBtZDogMTIsIGxnOiAxMiB9O1xyXG4gIGNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cCE6IEZvcm1Nb2RlbDtcclxuICBjcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtR3JvdXBSZWYhOiBGb3JtR3JvdXA7XHJcbiAgYWN0aW9uQnV0dG9uQWxpZ24gPSBBbGlnblR5cGUuTEVGVDtcclxuICB0ZW5hbnRGdW5jdGlvblR5cGUhOiBUZW5hbnRGdW5jdGlvblR5cGU7XHJcbiAgaXNSb290R3JvdXBPcHRpb25zID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmlzUm9vdEdyb3VwT3B0aW9ucz8ueWVzLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8uaXNSb290R3JvdXBPcHRpb25zPy5ubyxcclxuICAgICAgY2hlY2tlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXTtcclxuICByb3N0ZXJUeXBlT3B0aW9uczogUmFkaW9PcHRpb25bXSA9IFtdO1xyXG4gIHNldHRpbmdPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgb2ZmaWNlclJvbGVzT3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIG1lbWJlckxldmVsT3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIGFsbG93ZWRTdWJHcm91cFR5cGVzT3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIGFsbG93ZWRTdWJHcm91cFR5cGVzRmllbGRDb25maWchOiBGaWVsZENvbmZpZztcclxuICBhcHBJZCE6IHN0cmluZztcclxuICBncm91cFR5cGVEZXRhaWxzITogVmlld0dyb3VwVHlwZVJlc3BvbnNlO1xyXG4gIHNlbGVjdGVkR3JvdXBUeXBlSW5mbyE6IENyZWF0ZWRPck1vZGlmaWVkR3JvdXBUeXBlSW5mbztcclxuICBAVmlld0NoaWxkKER5bmFtaWNGb3JtQ29tcG9uZW50KVxyXG4gIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChEeW5hbWljRm9ybUNvbXBvbmVudCwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgZHluYW1pY0Zvcm1Db21wb25lbnRWaWV3UmVmITogVmlld0NvbnRhaW5lclJlZjtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIGZvcm0gc3VibWlzc2lvbiByZXNwb25zZS5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm1SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVyIGZvciBmb3JtIGNhbmNlbCBhY3Rpb24uXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHRlbmFudEFwcFNlcnZpY2U6IFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZm9ybVV0aWxpdHlTZXJ2aWNlOiBGb3JtVXRpbGl0eVNlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLFxyXG4gICkge31cclxuICAvKipcclxuICAgKiBTZXRzIGFwcElkLCB0ZW5hbnRGdW5jdGlvblR5cGUgYW5kIGNhbGxzIGdldEdyb3VwVHlwZXMoKSAmIGdldFJvc3RlclR5cGVzKCkgdG8gZ2V0IGdyb3VwIGFuZCByb3N0ZXIgdHlwZXMuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcHBJZCA9IHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKClcclxuICAgICAgPy5hcHBJZCBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLnRlbmFudEZ1bmN0aW9uVHlwZSA9IHRoaXMudGVuYW50QXBwU2VydmljZT8uZ2V0VGVuYW50RnVuY3Rpb25UeXBlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlSW5mbyA9XHJcbiAgICAgIHRoaXMudGVuYW50QXBwU2VydmljZT8uZ2V0TmV3bHlDcmVhdGVkR3JvdXBUeXBlSW5mbygpO1xyXG4gICAgdGhpcy5nZXRHcm91cFR5cGVzKCk7XHJcbiAgICB0aGlzLmdldFJvc3RlclR5cGVzKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGxpc3Qgb2Ygcm9zdGVyIHR5cGVzIGFuZCB1cGRhdGVzIHRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvc3RlclR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRSb3N0ZXJUeXBlKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEdldFJvc3RlclR5cGVPclNldHRpbmdzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgY29uc3Qgcm9zdGVyVHlwZUxpc3QgPSByZXNwb25zZS5ib2R5IGFzIExPVltdO1xyXG4gICAgICAgICAgICByb3N0ZXJUeXBlTGlzdC5tYXAoKHJvc3RlclR5cGU6IExPVikgPT5cclxuICAgICAgICAgICAgICB0aGlzLnJvc3RlclR5cGVPcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHJvc3RlclR5cGUubG92SWQsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogcm9zdGVyVHlwZS5sb3ZEZXNjLFxyXG4gICAgICAgICAgICAgICAgY2hlY2tlZDogcm9zdGVyVHlwZS5sb3ZDb2RlID09PSBSb3N0ZXJUeXBlTE9WQ29kZS5JTkRJVklEVUFMLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmhhbmRsZUVycm9ycyhcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHMuZXJyb3JzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBsaXN0IG9mIHNldHRpbmdzIGFuZCB1cGRhdGVzIHRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVTZXR0aW5ncygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBHZXRSb3N0ZXJUeXBlT3JTZXR0aW5nc1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Um9sZXMoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NMaXN0ID0gcmVzcG9uc2UuYm9keSBhcyBMT1ZbXTtcclxuICAgICAgICAgICAgc2V0dGluZ3NMaXN0Lm1hcCgoc2V0dGluZzogTE9WKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nT3B0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBzZXR0aW5nLmxvdklkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogc2V0dGluZy5sb3ZEZXNjLFxyXG4gICAgICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzLmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbGlzdCBvZiByb2xlcyBhbmQgdXBkYXRlcyB0aGUgZm9ybSBjb250cm9sLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRSb2xlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50QXBwU2VydmljZVxyXG4gICAgICAuZ2V0Um9sZXModGhpcy5hcHBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvbGVzTGlzdCA9IHJlc3BvbnNlPy5ib2R5IGFzIFJvbGVbXTtcclxuICAgICAgICAgICAgcm9sZXNMaXN0Lm1hcCgocm9sZTogUm9sZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyb2xlLnJvbGVUeXBlTmFtZSA9PT0gUm9sZVR5cGUuT0ZGSUNFUikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vZmZpY2VyUm9sZXNPcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBpZDogcm9sZS5yb2xlSWQsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJvbGUucm9sZVR5cGVOYW1lID09PSBSb2xlVHlwZS5NRU1CRVJfTEVWRUwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyTGV2ZWxPcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBpZDogcm9sZS5yb2xlSWQsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5tZW1iZXJMZXZlbE9wdGlvbnMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy5vZmZpY2VyUm9sZXNPcHRpb25zLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2Uuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICAgIEFsZXJ0VHlwZS5FUlJPUixcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHMuZXJyb3JzWyczMDE5J11cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmhhbmRsZUVycm9ycyhcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHMuZXJyb3JzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGFuZCBmaWx0ZXJzIG5vbiBTWVNURU1fVVNFUiBncm91cCB0eXBlcywgY29uc3RydWN0cyBhbGxvd2VkIHN1Yi1ncm91cCB0eXBlcyBvcHRpb25zIGFuZCBmb3JtIGZpZWxkIGNvbmZpZy5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBUeXBlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBUeXBlRGV0YWlscyA9IHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRHcm91cFR5cGVEZXRhaWxzKCk7XHJcbiAgICB0aGlzLmdyb3VwVHlwZURldGFpbHM/LmJvZHk/LmZvckVhY2goXHJcbiAgICAgIChpdGVtOiBWaWV3R3JvdXBUeXBlc0NvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpdGVtPy5jb25maWdGaWVsZFZhbHVlPy5idXNpbmVzc1J1bGU/LnJvc3RlclR5cGUgIT09XHJcbiAgICAgICAgICBHcm91cFJvc3RlclR5cGU/LlNZU1RFTV9VU0VSXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRTdWJHcm91cFR5cGVzT3B0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgaWQ6IGl0ZW0/LmNvbmZpZ0ZpZWxkSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0/LmNvbmZpZ0ZpZWxkVmFsdWU/Lm5hbWUsXHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmFsbG93ZWRTdWJHcm91cFR5cGVzRmllbGRDb25maWcgPSB7XHJcbiAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hbGxvd2VkU3ViR3JvdXBUeXBlcyxcclxuICAgICAgY29udHJvbE5hbWU6ICdhbGxvd2VkU3ViR3JvdXBUeXBlcycsXHJcbiAgICAgIGNoZWNrYm94T3B0aW9uczogdGhpcy5hbGxvd2VkU3ViR3JvdXBUeXBlc09wdGlvbnMsXHJcbiAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5hbGxvd2VkU3ViR3JvdXBUeXBlcyxcclxuICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICA/LmFsbG93ZWRTdWJHcm91cFR5cGVzLFxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgY3JlYXRlL2VkaXQgZ3JvdXAgdHlwZSBmb3JtIGdyb3VwIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7Kn0gW2Zvcm1WYWx1ZV1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZUNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlRm9ybUdyb3VwID0ge1xyXG4gICAgICBmb3JtR3JvdXA6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6ICcnLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uSU5QVVQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5ncm91cFR5cGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdncm91cFR5cGUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoR3JvdXBUeXBlVmFsaWRhdGlvbi5ncm91cFR5cGVNYXhMZW5ndGgpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5zdXBwb3J0VGV4dD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdFxyXG4gICAgICAgICAgICAgICAgICA/Lmdyb3VwVHlwZU1heENoYXJzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lmdyb3VwVHlwZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/Lmdyb3VwVHlwZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uZGVzY3JpcHRpb24gKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdkZXNjcmlwdGlvbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChHcm91cFR5cGVWYWxpZGF0aW9uLmRlc2NyaXB0aW9uTWF4TGVuZ3RoKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8uc3VwcG9ydFRleHQ/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogR3JvdXBUeXBlVmFsaWRhdGlvbi5kZXNjcmlwdGlvbk1heExlbmd0aCxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXRcclxuICAgICAgICAgICAgICAgICAgPy5kZXNjcmlwdGlvbk1heENoYXJzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5SQURJTyxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LnJvc3RlclR5cGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdyb3N0ZXJUeXBlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID09PSBUZW5hbnRGdW5jdGlvblR5cGUuRURJVF9HUk9VUF9UWVBFXHJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEdyb3VwVHlwZUluZm8uY29uZmlnRmllbGRWYWx1ZS5idXNpbmVzc1J1bGVcclxuICAgICAgICAgICAgICAgICAgICAgIC5yb3N0ZXJUeXBlXHJcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5yb3N0ZXJUeXBlT3B0aW9uc1swXS5sYWJlbCxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDpcclxuICAgICAgICAgICAgICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID09PSBUZW5hbnRGdW5jdGlvblR5cGUuRURJVF9HUk9VUF9UWVBFLFxyXG4gICAgICAgICAgICAgIHJhZGlvT3B0aW9uczogdGhpcy5yb3N0ZXJUeXBlT3B0aW9ucyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8ucm9zdGVyVHlwZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LnJvc3RlclR5cGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5zZXR0aW5ncyArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3NldHRpbmdzJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMuc2V0dGluZ09wdGlvbnMsXHJcbiAgICAgICAgICAgICAgbWluU2VsZWN0aW9uUmVxdWlyZWQ6IDEsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgICAgPy5zZXR0aW5ncyxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXBwT2ZmaWNlclJvbGVzICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnYXBwT2ZmaWNlclJvbGVzJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMub2ZmaWNlclJvbGVzT3B0aW9ucyxcclxuICAgICAgICAgICAgICBtaW5TZWxlY3Rpb25SZXF1aXJlZDogMSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsXHJcbiAgICAgICAgICAgICAgICAgID8uYXBwT2ZmaWNlclJvbGVzLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uYXBwT2ZmaWNlclJvbGVzLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcHBNZW1iZXJMZXZlbCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2FwcE1lbWJlckxldmVsJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMubWVtYmVyTGV2ZWxPcHRpb25zLFxyXG4gICAgICAgICAgICAgIG1pblNlbGVjdGlvblJlcXVpcmVkOiAxLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWxcclxuICAgICAgICAgICAgICAgICAgPy5hcHBNZW1iZXJMZXZlbCxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LmFwcE1lbWJlckxldmVsLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5SQURJTyxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmlzUm9vdEdyb3VwICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnaXNSb290R3JvdXAnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50ZW5hbnRGdW5jdGlvblR5cGUgPT09IFRlbmFudEZ1bmN0aW9uVHlwZS5FRElUX0dST1VQX1RZUEVcclxuICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlSW5mby5jb25maWdGaWVsZFZhbHVlLmJ1c2luZXNzUnVsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgLmlzUm9vdEdyb3VwXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmlzUm9vdEdyb3VwT3B0aW9uc1swXS5sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5pc1Jvb3RHcm91cE9wdGlvbnNbMV0ubGFiZWxcclxuICAgICAgICAgICAgICAgICAgOiB0aGlzLmlzUm9vdEdyb3VwT3B0aW9uc1sxXS5sYWJlbCxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDpcclxuICAgICAgICAgICAgICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID09PSBUZW5hbnRGdW5jdGlvblR5cGUuRURJVF9HUk9VUF9UWVBFLFxyXG4gICAgICAgICAgICAgIHJhZGlvT3B0aW9uczogdGhpcy5pc1Jvb3RHcm91cE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmlzUm9vdEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uaXNSb290R3JvdXAsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBBZGQgb3IgcmVtb3ZlcyBhbGxvd2VkIHN1YiBncm91cHMgZm9ybSBjb250cm9sIChjaGVja2JveCBncm91cCBjb250cm9sIGFuZCBvcHRpb25zKSBhcyB3aGVuIGFsbG93IHN1YiBncm91cCBzZWxlY3Rpb24gYW5kIHVwZGF0ZXMgdGhlIGZvcm0gc3RhdGUuXHJcbiAgICogQHBhcmFtIHsqfSBzZWxlY3RlZENoZWNrYm94XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hlY2tib3hTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWRDaGVja2JveDogQ2hlY2tib3hPcHRpb24pOiB2b2lkIHtcclxuICAgIGlmIChzZWxlY3RlZENoZWNrYm94Lm5hbWUgPT09IFNldHRpbmdzLkFMTE9XX1NVQl9HUk9VUFMpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkQ2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5mb3JtVXRpbGl0eVNlcnZpY2UuYWRkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50Vmlld1JlZixcclxuICAgICAgICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtR3JvdXBSZWYsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRTdWJHcm91cFR5cGVzRmllbGRDb25maWcsXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLFxyXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgJ2lzLXJvb3QtZ3JvdXAnLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hbGxvd2VkU3ViR3JvdXBUeXBlc09wdGlvbnMuZm9yRWFjaChcclxuICAgICAgICAgIChhbGxvd2VkU3ViR3JvdXBUeXBlczogQ2hlY2tib3hPcHRpb24pID0+XHJcbiAgICAgICAgICAgIChhbGxvd2VkU3ViR3JvdXBUeXBlcy5jaGVja2VkID0gZmFsc2UpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5yZW1vdmVGb3JtQ29udHJvbChcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5R3JvdXBUeXBlRm9ybUdyb3VwUmVmLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkU3ViR3JvdXBUeXBlc0ZpZWxkQ29uZmlnLFxyXG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYsXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLFxyXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGNyZWF0ZS9tb2RpZnkgZ3JvdXAgdHlwZSByZWFjdGl2ZSBmb3JtIGdyb3VwIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtIC1UaGUgZm9ybSBncm91cCBhcnJheSBjb250YWluaW5nIHRoZSBmb3JtIHRvIGJlIHJlZmVyZW5jZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldENyZWF0ZU1vZGlmeUdyb3VwVHlwZUZvcm1Hcm91cFJlZihmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtR3JvdXBSZWYgPSBmb3JtWzBdO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaW5kIHRoZSBwcm92aWRlZCBzZXR0aW5nIG5hbWUgaW4gc2V0dGluZyBvcHRpb24gYW5kIHJldHVybiB0aGUgYm9vbGVhbiB2YWx1ZS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2V0dGluZ05hbWVcclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKHNldHRpbmdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdPcHRpb25zLmZpbmQoXHJcbiAgICAgIChzZXR0aW5nOiBDaGVja2JveE9wdGlvbikgPT4gc2V0dGluZy5uYW1lID09PSBzZXR0aW5nTmFtZVxyXG4gICAgKT8uY2hlY2tlZCBhcyBib29sZWFuO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGdyb3VwIHR5cGUgb24gZm9ybSBzdWJtaXNzaW9uIGFuZCB0aGUgZm9ybSBpcyB2YWxpZC5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlRm9ybVN1Ym1pdChmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgZm9ybVswXT8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgaWYgKGZvcm1bMF0uc3RhdHVzID09PSBGb3JtU3RhdHVzLlZBTElEKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBUeXBlcyA9IHRoaXMuYWxsb3dlZFN1Ykdyb3VwVHlwZXNPcHRpb25zXHJcbiAgICAgICAgLmZpbHRlcigoc3ViR3JvdXBUeXBlOiBDaGVja2JveE9wdGlvbikgPT4gc3ViR3JvdXBUeXBlLmNoZWNrZWQpXHJcbiAgICAgICAgLm1hcChcclxuICAgICAgICAgIChzZWxlY3RlZEdyb3VwVHlwZTogQ2hlY2tib3hPcHRpb24pID0+IHNlbGVjdGVkR3JvdXBUeXBlLmlkIGFzIHN0cmluZ1xyXG4gICAgICAgICk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSBbXHJcbiAgICAgICAgLi4udGhpcy5tZW1iZXJMZXZlbE9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgKG1lbWJlckxldmVsOiBDaGVja2JveE9wdGlvbikgPT4gbWVtYmVyTGV2ZWwuY2hlY2tlZFxyXG4gICAgICAgICksXHJcbiAgICAgICAgLi4udGhpcy5vZmZpY2VyUm9sZXNPcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgIChvZmZpY2VyUm9sZTogQ2hlY2tib3hPcHRpb24pID0+IG9mZmljZXJSb2xlLmNoZWNrZWRcclxuICAgICAgICApLFxyXG4gICAgICBdLm1hcCgoc2VsZWN0ZWRSb2xlOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICByb2xlSWQ6IHNlbGVjdGVkUm9sZS5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNyZWF0ZUdyb3VwVHlwZVBheWxvYWQ6IENyZWF0ZUdyb3VwVHlwZVJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgIGFwcElkOiB0aGlzLmFwcElkLFxyXG4gICAgICAgICAgcm9sZXM6IHNlbGVjdGVkUm9sZXMsXHJcbiAgICAgICAgICBjb25maWdGaWVsZE5hbWU6ICdncm91cF90eXBlJyxcclxuICAgICAgICAgIGNvbmZpZ0ZpZWxkVmFsdWU6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgbmFtZTogZm9ybVswXS5nZXQoJ2dyb3VwVHlwZScpPy52YWx1ZSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGZvcm1bMF0uZ2V0KCdkZXNjcmlwdGlvbicpPy52YWx1ZSxcclxuICAgICAgICAgICAgYnVzaW5lc3NSdWxlOiB7XHJcbiAgICAgICAgICAgICAgcm9zdGVyVHlwZTogZm9ybVswXS5nZXQoJ3Jvc3RlclR5cGUnKT8udmFsdWUsXHJcbiAgICAgICAgICAgICAgYWxsb3dFZGl0OiB0aGlzLmlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKFNldHRpbmdzLkFMTE9XX0VESVQpLFxyXG4gICAgICAgICAgICAgIGFsbG93Um9zdGVyOiB0aGlzLmlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKFNldHRpbmdzLkFMTE9XX1JPU1RFUlMpLFxyXG4gICAgICAgICAgICAgIGFsbG93QWx0ZXJuYXRlVm90aW5nOiB0aGlzLmlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKFxyXG4gICAgICAgICAgICAgICAgU2V0dGluZ3MuQUxMT1dfQUxURVJOQVRFX1ZPVElOR1xyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgYWxsb3dEZWxldGU6IHRoaXMuaXNTZXR0aW5nU2VsZWN0ZWRCeU5hbWUoU2V0dGluZ3MuQUxMT1dfREVMRVRFKSxcclxuICAgICAgICAgICAgICBhbGxvd1N1Ykdyb3VwOiB0aGlzLmlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKFxyXG4gICAgICAgICAgICAgICAgU2V0dGluZ3MuQUxMT1dfU1VCX0dST1VQU1xyXG4gICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgaGFzQ2xhc3NpZmljYXRpb246IHRoaXMuaXNTZXR0aW5nU2VsZWN0ZWRCeU5hbWUoXHJcbiAgICAgICAgICAgICAgICBTZXR0aW5ncy5IQVNfQ0xBU1NJRklDQVRJT05cclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIGFsbG93ZWRHcm91cFR5cGU6IHNlbGVjdGVkR3JvdXBUeXBlcyxcclxuICAgICAgICAgICAgICBpc1Jvb3RHcm91cDpcclxuICAgICAgICAgICAgICAgIGZvcm1bMF0uZ2V0KCdpc1Jvb3RHcm91cCcpPy52YWx1ZSA9PT1cclxuICAgICAgICAgICAgICAgIHRoaXMuaXNSb290R3JvdXBPcHRpb25zWzBdLmxhYmVsLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgICAgLmNyZWF0ZUdyb3VwVHlwZShjcmVhdGVHcm91cFR5cGVQYXlsb2FkKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXNwb25zZTogQ3JlYXRlR3JvdXBUeXBlUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cykge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHsgYXBwSWQsIHJvbGVzLCBjb25maWdGaWVsZE5hbWUgfSA9XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVHcm91cFR5cGVQYXlsb2FkLnBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgY29uZmlnRmllbGRWYWx1ZSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVHcm91cFR5cGVQYXlsb2FkLnBheWxvYWQuY29uZmlnRmllbGRWYWx1ZVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnNldE5ld2x5Q3JlYXRlZEdyb3VwVHlwZUluZm8oe1xyXG4gICAgICAgICAgICAgICAgYXBwSWQsXHJcbiAgICAgICAgICAgICAgICByb2xlcyxcclxuICAgICAgICAgICAgICAgIGNvbmZpZ0ZpZWxkTmFtZSxcclxuICAgICAgICAgICAgICAgIGNvbmZpZ0ZpZWxkVmFsdWUsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtUmVzcG9uc2UuZW1pdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cy5lcnJvcnNcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm0gY2FuY2VsIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uRGVzdHJveSBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIG9wZW4gb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1keW5hbWljLWZvcm1cclxuICAqbmdJZj1cImNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cFwiXHJcbiAgY2xhc3M9XCJpZWVlc2EtY3JlYXRlLWdyb3VwLXR5cGUtZm9ybVwiXHJcbiAgW2xlZnRCdXR0b25MYWJlbF09XCJsZWZ0QnV0dG9uTGFiZWxcIlxyXG4gIFtyaWdodEJ1dHRvbkxhYmVsXT1cInJpZ2h0QnV0dG9uTGFiZWxcIlxyXG4gIFtpc0xlZ2VuZFZpc2libGVdPVwiZmFsc2VcIlxyXG4gIFtjb2xXaWR0aF09XCJjb2xXaWR0aFwiXHJcbiAgW2FjdGlvbkJ1dHRvbkFsaWduXT1cImFjdGlvbkJ1dHRvbkFsaWduXCJcclxuICBbZm9ybUdyb3Vwc109XCJjcmVhdGVHcm91cFR5cGVGb3JtR3JvdXBcIlxyXG4gIFtpc0xlZnRCdXR0b25OZWVkZWRdPVwidHJ1ZVwiXHJcbiAgKGZvcm1TdWJtaXQpPVwib25DcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtU3VibWl0KCRldmVudClcIlxyXG4gIChmb3JtTGVmdEJ1dHRvbkNsaWNrZWQpPVwib25Gb3JtQ2FuY2VsKClcIlxyXG4gIChmb3JtR3JvdXBzUmVmZXJlbmNlKT1cImdldENyZWF0ZU1vZGlmeUdyb3VwVHlwZUZvcm1Hcm91cFJlZigkZXZlbnQpXCJcclxuICAoZm9ybUNoZWNrYm94U2VsZWN0aW9uKT1cIm9uQ2hlY2tib3hTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+XHJcbiJdfQ==
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGlmeS1ncm91cC10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZS9jcmVhdGUtbW9kaWZ5LWdyb3VwLXR5cGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1ncm91cC10eXBlL2NyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFHWixNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQ0wsU0FBUyxFQUdULGVBQWUsRUFJZixpQkFBaUIsRUFDakIsb0JBQW9CLEdBQ3JCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLDZDQUE2QyxDQUFDO0FB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Q1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQXRoQlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsa09Ba0M5QixvQkFBb0IsOEZBRXBCLG9CQUFvQiwyQkFBVSxnQkFBZ0IsNkJDdEczRCxncUJBZUEsNHlURDhDWSxZQUFZLG1JQUFFLG9CQUFvQjs7NEZBS2pDLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FDL0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLGlCQUc5QixpQkFBaUIsQ0FBQyxJQUFJOzhOQXFDckMsb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLG9CQUFvQjtnQkFHL0IsMkJBQTJCO3NCQUQxQixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQVFqRCxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UsIExPViwgRm9ybVV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHtcclxuICBBbGlnblR5cGUsXHJcbiAgQ2hlY2tib3hPcHRpb24sXHJcbiAgRmllbGRDb25maWcsXHJcbiAgRm9ybUNvbnRyb2xUeXBlLFxyXG4gIEZvcm1HcmlkLFxyXG4gIEZvcm1Nb2RlbCxcclxuICBSYWRpb09wdGlvbixcclxuICBDaGVja2JveENvbXBvbmVudCxcclxuICBEeW5hbWljRm9ybUNvbXBvbmVudCxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBHcm91cFJvc3RlclR5cGUsIFJvbGVUeXBlIH0gZnJvbSAnQGllZWVzYS1ucG0vZ3JvdXBzJztcclxuaW1wb3J0IHsgQWxlcnRUeXBlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdyb3VwVHlwZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9hc3NldHMvdGVuYW50LXZhbGlkYXRpb25zJztcclxuaW1wb3J0IHsgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU2V0dGluZ3MsXHJcbiAgUm9zdGVyVHlwZUxPVkNvZGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2NyZWF0ZS1ncm91cC10eXBlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50RnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBWaWV3R3JvdXBUeXBlUmVzcG9uc2UsXHJcbiAgVmlld0dyb3VwVHlwZXNDb25maWd1cmF0aW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy92aWV3LXRlbmFudC1ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgQ29uZmlnRmllbGRWYWx1ZSxcclxuICBDcmVhdGVHcm91cFR5cGVSZXF1ZXN0UGF5bG9hZCxcclxuICBDcmVhdGVHcm91cFR5cGVSZXNwb25zZSxcclxuICBDcmVhdGVkT3JNb2RpZmllZEdyb3VwVHlwZUluZm8sXHJcbiAgR2V0Um9zdGVyVHlwZU9yU2V0dGluZ3NSZXNwb25zZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvY3JlYXRlLWdyb3VwLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnQgdXNlcyBEeW5hbWljRm9ybUNvbXBvbmVudCB0byBidWlsZCBjcmVhdGUgYWRkIGdyb3VwIHR5cGUgZm9ybSBvciBlZGl0IGdyb3VwIHR5cGUgZm9ybSBhbmQgaW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXRpZXMgb2Ygc3VibWlzc2lvbiBvZiBmb3JtIGFuZCBoYW5kbGluZyBzdWNjZXNzIGFuZCBlcnJvciBzY2VuYXJpb3MuXHJcbiAqIEBjbGFzcyBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWNyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEeW5hbWljRm9ybUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1tb2RpZnktZ3JvdXAtdHlwZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW1vZGlmeS1ncm91cC10eXBlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IHNjcmVlblRleHRzO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM6IGFueSA9IHRoaXMuY29uc3RhbnRzPy5jcmVhdGVHcm91cFR5cGU7XHJcbiAgbGVmdEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LnJpZ2h0QnV0dG9uTGFiZWw7XHJcbiAgY29sV2lkdGg6IEZvcm1HcmlkID0geyB4czogMTIsIHhsOiAxMiwgc206IDEyLCBtZDogMTIsIGxnOiAxMiB9O1xyXG4gIGNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cCE6IEZvcm1Nb2RlbDtcclxuICBjcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtR3JvdXBSZWYhOiBGb3JtR3JvdXA7XHJcbiAgYWN0aW9uQnV0dG9uQWxpZ24gPSBBbGlnblR5cGUuTEVGVDtcclxuICB0ZW5hbnRGdW5jdGlvblR5cGUhOiBUZW5hbnRGdW5jdGlvblR5cGU7XHJcbiAgaXNSb290R3JvdXBPcHRpb25zID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogMSxcclxuICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmlzUm9vdEdyb3VwT3B0aW9ucz8ueWVzLFxyXG4gICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8uaXNSb290R3JvdXBPcHRpb25zPy5ubyxcclxuICAgICAgY2hlY2tlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXTtcclxuICByb3N0ZXJUeXBlT3B0aW9uczogUmFkaW9PcHRpb25bXSA9IFtdO1xyXG4gIHNldHRpbmdPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgb2ZmaWNlclJvbGVzT3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIG1lbWJlckxldmVsT3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIGFsbG93ZWRTdWJHcm91cFR5cGVzT3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSA9IFtdO1xyXG4gIGFsbG93ZWRTdWJHcm91cFR5cGVzRmllbGRDb25maWchOiBGaWVsZENvbmZpZztcclxuICBhcHBJZCE6IHN0cmluZztcclxuICBncm91cFR5cGVEZXRhaWxzITogVmlld0dyb3VwVHlwZVJlc3BvbnNlO1xyXG4gIHNlbGVjdGVkR3JvdXBUeXBlSW5mbyE6IENyZWF0ZWRPck1vZGlmaWVkR3JvdXBUeXBlSW5mbztcclxuICBAVmlld0NoaWxkKER5bmFtaWNGb3JtQ29tcG9uZW50KVxyXG4gIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChEeW5hbWljRm9ybUNvbXBvbmVudCwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgZHluYW1pY0Zvcm1Db21wb25lbnRWaWV3UmVmITogVmlld0NvbnRhaW5lclJlZjtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZXIgZm9yIGZvcm0gc3VibWlzc2lvbiByZXNwb25zZS5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHN1Ym1pdEZvcm1SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVyIGZvciBmb3JtIGNhbmNlbCBhY3Rpb24uXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHRlbmFudEFwcFNlcnZpY2U6IFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZm9ybVV0aWxpdHlTZXJ2aWNlOiBGb3JtVXRpbGl0eVNlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLFxyXG4gICkge31cclxuICAvKipcclxuICAgKiBTZXRzIGFwcElkLCB0ZW5hbnRGdW5jdGlvblR5cGUgYW5kIGNhbGxzIGdldEdyb3VwVHlwZXMoKSAmIGdldFJvc3RlclR5cGVzKCkgdG8gZ2V0IGdyb3VwIGFuZCByb3N0ZXIgdHlwZXMuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcHBJZCA9IHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKClcclxuICAgICAgPy5hcHBJZCBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLnRlbmFudEZ1bmN0aW9uVHlwZSA9IHRoaXMudGVuYW50QXBwU2VydmljZT8uZ2V0VGVuYW50RnVuY3Rpb25UeXBlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlSW5mbyA9XHJcbiAgICAgIHRoaXMudGVuYW50QXBwU2VydmljZT8uZ2V0TmV3bHlDcmVhdGVkR3JvdXBUeXBlSW5mbygpO1xyXG4gICAgdGhpcy5nZXRHcm91cFR5cGVzKCk7XHJcbiAgICB0aGlzLmdldFJvc3RlclR5cGVzKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGxpc3Qgb2Ygcm9zdGVyIHR5cGVzIGFuZCB1cGRhdGVzIHRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvc3RlclR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRSb3N0ZXJUeXBlKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEdldFJvc3RlclR5cGVPclNldHRpbmdzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgY29uc3Qgcm9zdGVyVHlwZUxpc3QgPSByZXNwb25zZS5ib2R5IGFzIExPVltdO1xyXG4gICAgICAgICAgICByb3N0ZXJUeXBlTGlzdC5tYXAoKHJvc3RlclR5cGU6IExPVikgPT5cclxuICAgICAgICAgICAgICB0aGlzLnJvc3RlclR5cGVPcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHJvc3RlclR5cGUubG92SWQsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogcm9zdGVyVHlwZS5sb3ZEZXNjLFxyXG4gICAgICAgICAgICAgICAgY2hlY2tlZDogcm9zdGVyVHlwZS5sb3ZDb2RlID09PSBSb3N0ZXJUeXBlTE9WQ29kZS5JTkRJVklEVUFMLFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmhhbmRsZUVycm9ycyhcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHMuZXJyb3JzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBsaXN0IG9mIHNldHRpbmdzIGFuZCB1cGRhdGVzIHRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVTZXR0aW5ncygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBHZXRSb3N0ZXJUeXBlT3JTZXR0aW5nc1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Um9sZXMoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3NMaXN0ID0gcmVzcG9uc2UuYm9keSBhcyBMT1ZbXTtcclxuICAgICAgICAgICAgc2V0dGluZ3NMaXN0Lm1hcCgoc2V0dGluZzogTE9WKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nT3B0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBzZXR0aW5nLmxvdklkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogc2V0dGluZy5sb3ZEZXNjLFxyXG4gICAgICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzLmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbGlzdCBvZiByb2xlcyBhbmQgdXBkYXRlcyB0aGUgZm9ybSBjb250cm9sLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRSb2xlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50QXBwU2VydmljZVxyXG4gICAgICAuZ2V0Um9sZXModGhpcy5hcHBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvbGVzTGlzdCA9IHJlc3BvbnNlPy5ib2R5IGFzIFJvbGVbXTtcclxuICAgICAgICAgICAgcm9sZXNMaXN0Lm1hcCgocm9sZTogUm9sZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyb2xlLnJvbGVUeXBlTmFtZSA9PT0gUm9sZVR5cGUuT0ZGSUNFUikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vZmZpY2VyUm9sZXNPcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBpZDogcm9sZS5yb2xlSWQsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJvbGUucm9sZVR5cGVOYW1lID09PSBSb2xlVHlwZS5NRU1CRVJfTEVWRUwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyTGV2ZWxPcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBpZDogcm9sZS5yb2xlSWQsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHJvbGUucm9sZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5tZW1iZXJMZXZlbE9wdGlvbnMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy5vZmZpY2VyUm9sZXNPcHRpb25zLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2Uuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICAgIEFsZXJ0VHlwZS5FUlJPUixcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHMuZXJyb3JzWyczMDE5J11cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmhhbmRsZUVycm9ycyhcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHMuZXJyb3JzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGFuZCBmaWx0ZXJzIG5vbiBTWVNURU1fVVNFUiBncm91cCB0eXBlcywgY29uc3RydWN0cyBhbGxvd2VkIHN1Yi1ncm91cCB0eXBlcyBvcHRpb25zIGFuZCBmb3JtIGZpZWxkIGNvbmZpZy5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBUeXBlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXBUeXBlRGV0YWlscyA9IHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRHcm91cFR5cGVEZXRhaWxzKCk7XHJcbiAgICB0aGlzLmdyb3VwVHlwZURldGFpbHM/LmJvZHk/LmZvckVhY2goXHJcbiAgICAgIChpdGVtOiBWaWV3R3JvdXBUeXBlc0NvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpdGVtPy5jb25maWdGaWVsZFZhbHVlPy5idXNpbmVzc1J1bGU/LnJvc3RlclR5cGUgIT09XHJcbiAgICAgICAgICBHcm91cFJvc3RlclR5cGU/LlNZU1RFTV9VU0VSXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRTdWJHcm91cFR5cGVzT3B0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgaWQ6IGl0ZW0/LmNvbmZpZ0ZpZWxkSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0/LmNvbmZpZ0ZpZWxkVmFsdWU/Lm5hbWUsXHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmFsbG93ZWRTdWJHcm91cFR5cGVzRmllbGRDb25maWcgPSB7XHJcbiAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hbGxvd2VkU3ViR3JvdXBUeXBlcyxcclxuICAgICAgY29udHJvbE5hbWU6ICdhbGxvd2VkU3ViR3JvdXBUeXBlcycsXHJcbiAgICAgIGNoZWNrYm94T3B0aW9uczogdGhpcy5hbGxvd2VkU3ViR3JvdXBUeXBlc09wdGlvbnMsXHJcbiAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5hbGxvd2VkU3ViR3JvdXBUeXBlcyxcclxuICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICA/LmFsbG93ZWRTdWJHcm91cFR5cGVzLFxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgY3JlYXRlL2VkaXQgZ3JvdXAgdHlwZSBmb3JtIGdyb3VwIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7Kn0gW2Zvcm1WYWx1ZV1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZUNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlRm9ybUdyb3VwID0ge1xyXG4gICAgICBmb3JtR3JvdXA6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6ICcnLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uSU5QVVQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5ncm91cFR5cGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdncm91cFR5cGUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoR3JvdXBUeXBlVmFsaWRhdGlvbi5ncm91cFR5cGVNYXhMZW5ndGgpLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgc3VwcG9ydE1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5zdXBwb3J0VGV4dD8uZ3JvdXBUeXBlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdFxyXG4gICAgICAgICAgICAgICAgICA/Lmdyb3VwVHlwZU1heENoYXJzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/Lmdyb3VwVHlwZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/Lmdyb3VwVHlwZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZT8uVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uZGVzY3JpcHRpb24gKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdkZXNjcmlwdGlvbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChHcm91cFR5cGVWYWxpZGF0aW9uLmRlc2NyaXB0aW9uTWF4TGVuZ3RoKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8uc3VwcG9ydFRleHQ/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogR3JvdXBUeXBlVmFsaWRhdGlvbi5kZXNjcmlwdGlvbk1heExlbmd0aCxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXRcclxuICAgICAgICAgICAgICAgICAgPy5kZXNjcmlwdGlvbk1heENoYXJzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5SQURJTyxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LnJvc3RlclR5cGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdyb3N0ZXJUeXBlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID09PSBUZW5hbnRGdW5jdGlvblR5cGUuRURJVF9HUk9VUF9UWVBFXHJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEdyb3VwVHlwZUluZm8uY29uZmlnRmllbGRWYWx1ZS5idXNpbmVzc1J1bGVcclxuICAgICAgICAgICAgICAgICAgICAgIC5yb3N0ZXJUeXBlXHJcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5yb3N0ZXJUeXBlT3B0aW9uc1swXS5sYWJlbCxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDpcclxuICAgICAgICAgICAgICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID09PSBUZW5hbnRGdW5jdGlvblR5cGUuRURJVF9HUk9VUF9UWVBFLFxyXG4gICAgICAgICAgICAgIHJhZGlvT3B0aW9uczogdGhpcy5yb3N0ZXJUeXBlT3B0aW9ucyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8ucm9zdGVyVHlwZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LnJvc3RlclR5cGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5zZXR0aW5ncyArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3NldHRpbmdzJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMuc2V0dGluZ09wdGlvbnMsXHJcbiAgICAgICAgICAgICAgbWluU2VsZWN0aW9uUmVxdWlyZWQ6IDEsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWRcclxuICAgICAgICAgICAgICAgICAgPy5zZXR0aW5ncyxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXBwT2ZmaWNlclJvbGVzICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnYXBwT2ZmaWNlclJvbGVzJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMub2ZmaWNlclJvbGVzT3B0aW9ucyxcclxuICAgICAgICAgICAgICBtaW5TZWxlY3Rpb25SZXF1aXJlZDogMSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyb3VwVHlwZVNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsXHJcbiAgICAgICAgICAgICAgICAgID8uYXBwT2ZmaWNlclJvbGVzLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uYXBwT2ZmaWNlclJvbGVzLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgICAgICAgICBsYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcHBNZW1iZXJMZXZlbCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2FwcE1lbWJlckxldmVsJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMubWVtYmVyTGV2ZWxPcHRpb25zLFxyXG4gICAgICAgICAgICAgIG1pblNlbGVjdGlvblJlcXVpcmVkOiAxLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWxcclxuICAgICAgICAgICAgICAgICAgPy5hcHBNZW1iZXJMZXZlbCxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZFxyXG4gICAgICAgICAgICAgICAgICA/LmFwcE1lbWJlckxldmVsLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5SQURJTyxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmlzUm9vdEdyb3VwICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnaXNSb290R3JvdXAnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50ZW5hbnRGdW5jdGlvblR5cGUgPT09IFRlbmFudEZ1bmN0aW9uVHlwZS5FRElUX0dST1VQX1RZUEVcclxuICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkR3JvdXBUeXBlSW5mby5jb25maWdGaWVsZFZhbHVlLmJ1c2luZXNzUnVsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgLmlzUm9vdEdyb3VwXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmlzUm9vdEdyb3VwT3B0aW9uc1swXS5sYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5pc1Jvb3RHcm91cE9wdGlvbnNbMV0ubGFiZWxcclxuICAgICAgICAgICAgICAgICAgOiB0aGlzLmlzUm9vdEdyb3VwT3B0aW9uc1sxXS5sYWJlbCxcclxuICAgICAgICAgICAgICBkaXNhYmxlZDpcclxuICAgICAgICAgICAgICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID09PSBUZW5hbnRGdW5jdGlvblR5cGUuRURJVF9HUk9VUF9UWVBFLFxyXG4gICAgICAgICAgICAgIHJhZGlvT3B0aW9uczogdGhpcy5pc1Jvb3RHcm91cE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDpcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JvdXBUeXBlU2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmlzUm9vdEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkXHJcbiAgICAgICAgICAgICAgICAgID8uaXNSb290R3JvdXAsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBBZGQgb3IgcmVtb3ZlcyBhbGxvd2VkIHN1YiBncm91cHMgZm9ybSBjb250cm9sIChjaGVja2JveCBncm91cCBjb250cm9sIGFuZCBvcHRpb25zKSBhcyB3aGVuIGFsbG93IHN1YiBncm91cCBzZWxlY3Rpb24gYW5kIHVwZGF0ZXMgdGhlIGZvcm0gc3RhdGUuXHJcbiAgICogQHBhcmFtIHsqfSBzZWxlY3RlZENoZWNrYm94XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2hlY2tib3hTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWRDaGVja2JveDogQ2hlY2tib3hPcHRpb24pOiB2b2lkIHtcclxuICAgIGlmIChzZWxlY3RlZENoZWNrYm94Lm5hbWUgPT09IFNldHRpbmdzLkFMTE9XX1NVQl9HUk9VUFMpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkQ2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5mb3JtVXRpbGl0eVNlcnZpY2UuYWRkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50Vmlld1JlZixcclxuICAgICAgICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgICAgdGhpcy5jcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtR3JvdXBSZWYsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRTdWJHcm91cFR5cGVzRmllbGRDb25maWcsXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLFxyXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgJ2lzLXJvb3QtZ3JvdXAnLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hbGxvd2VkU3ViR3JvdXBUeXBlc09wdGlvbnMuZm9yRWFjaChcclxuICAgICAgICAgIChhbGxvd2VkU3ViR3JvdXBUeXBlczogQ2hlY2tib3hPcHRpb24pID0+XHJcbiAgICAgICAgICAgIChhbGxvd2VkU3ViR3JvdXBUeXBlcy5jaGVja2VkID0gZmFsc2UpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5yZW1vdmVGb3JtQ29udHJvbChcclxuICAgICAgICAgIHRoaXMuY3JlYXRlTW9kaWZ5R3JvdXBUeXBlRm9ybUdyb3VwUmVmLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkU3ViR3JvdXBUeXBlc0ZpZWxkQ29uZmlnLFxyXG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYsXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLFxyXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGNyZWF0ZS9tb2RpZnkgZ3JvdXAgdHlwZSByZWFjdGl2ZSBmb3JtIGdyb3VwIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtIC1UaGUgZm9ybSBncm91cCBhcnJheSBjb250YWluaW5nIHRoZSBmb3JtIHRvIGJlIHJlZmVyZW5jZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldENyZWF0ZU1vZGlmeUdyb3VwVHlwZUZvcm1Hcm91cFJlZihmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtR3JvdXBSZWYgPSBmb3JtWzBdO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaW5kIHRoZSBwcm92aWRlZCBzZXR0aW5nIG5hbWUgaW4gc2V0dGluZyBvcHRpb24gYW5kIHJldHVybiB0aGUgYm9vbGVhbiB2YWx1ZS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2V0dGluZ05hbWVcclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKHNldHRpbmdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdPcHRpb25zLmZpbmQoXHJcbiAgICAgIChzZXR0aW5nOiBDaGVja2JveE9wdGlvbikgPT4gc2V0dGluZy5uYW1lID09PSBzZXR0aW5nTmFtZVxyXG4gICAgKT8uY2hlY2tlZCBhcyBib29sZWFuO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGdyb3VwIHR5cGUgb24gZm9ybSBzdWJtaXNzaW9uIGFuZCB0aGUgZm9ybSBpcyB2YWxpZC5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUdyb3VwVHlwZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ3JlYXRlTW9kaWZ5R3JvdXBUeXBlRm9ybVN1Ym1pdChmb3JtOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgZm9ybVswXT8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgaWYgKGZvcm1bMF0uc3RhdHVzID09PSBGb3JtU3RhdHVzLlZBTElEKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBUeXBlcyA9IHRoaXMuYWxsb3dlZFN1Ykdyb3VwVHlwZXNPcHRpb25zXHJcbiAgICAgICAgLmZpbHRlcigoc3ViR3JvdXBUeXBlOiBDaGVja2JveE9wdGlvbikgPT4gc3ViR3JvdXBUeXBlLmNoZWNrZWQpXHJcbiAgICAgICAgLm1hcChcclxuICAgICAgICAgIChzZWxlY3RlZEdyb3VwVHlwZTogQ2hlY2tib3hPcHRpb24pID0+IHNlbGVjdGVkR3JvdXBUeXBlLmlkIGFzIHN0cmluZ1xyXG4gICAgICAgICk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSBbXHJcbiAgICAgICAgLi4udGhpcy5tZW1iZXJMZXZlbE9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgKG1lbWJlckxldmVsOiBDaGVja2JveE9wdGlvbikgPT4gbWVtYmVyTGV2ZWwuY2hlY2tlZFxyXG4gICAgICAgICksXHJcbiAgICAgICAgLi4udGhpcy5vZmZpY2VyUm9sZXNPcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgIChvZmZpY2VyUm9sZTogQ2hlY2tib3hPcHRpb24pID0+IG9mZmljZXJSb2xlLmNoZWNrZWRcclxuICAgICAgICApLFxyXG4gICAgICBdLm1hcCgoc2VsZWN0ZWRSb2xlOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICByb2xlSWQ6IHNlbGVjdGVkUm9sZS5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNvbmZpZ0ZpZWxkVmFsdWU6IENvbmZpZ0ZpZWxkVmFsdWUgPSB7XHJcbiAgICAgICAgbmFtZTogZm9ybVswXS5nZXQoJ2dyb3VwVHlwZScpPy52YWx1ZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogZm9ybVswXS5nZXQoJ2Rlc2NyaXB0aW9uJyk/LnZhbHVlLFxyXG4gICAgICAgIGJ1c2luZXNzUnVsZToge1xyXG4gICAgICAgICAgcm9zdGVyVHlwZTogZm9ybVswXS5nZXQoJ3Jvc3RlclR5cGUnKT8udmFsdWUsXHJcbiAgICAgICAgICBhbGxvd0VkaXQ6IHRoaXMuaXNTZXR0aW5nU2VsZWN0ZWRCeU5hbWUoU2V0dGluZ3MuQUxMT1dfRURJVCksXHJcbiAgICAgICAgICBhbGxvd1Jvc3RlcjogdGhpcy5pc1NldHRpbmdTZWxlY3RlZEJ5TmFtZShTZXR0aW5ncy5BTExPV19ST1NURVJTKSxcclxuICAgICAgICAgIGFsbG93QWx0ZXJuYXRlVm90aW5nOiB0aGlzLmlzU2V0dGluZ1NlbGVjdGVkQnlOYW1lKFxyXG4gICAgICAgICAgICBTZXR0aW5ncy5BTExPV19BTFRFUk5BVEVfVk9USU5HXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgYWxsb3dEZWxldGU6IHRoaXMuaXNTZXR0aW5nU2VsZWN0ZWRCeU5hbWUoU2V0dGluZ3MuQUxMT1dfREVMRVRFKSxcclxuICAgICAgICAgIGFsbG93U3ViR3JvdXA6IHRoaXMuaXNTZXR0aW5nU2VsZWN0ZWRCeU5hbWUoXHJcbiAgICAgICAgICAgIFNldHRpbmdzLkFMTE9XX1NVQl9HUk9VUFNcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBoYXNDbGFzc2lmaWNhdGlvbjogdGhpcy5pc1NldHRpbmdTZWxlY3RlZEJ5TmFtZShcclxuICAgICAgICAgICAgU2V0dGluZ3MuSEFTX0NMQVNTSUZJQ0FUSU9OXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgICAgYWxsb3dlZEdyb3VwVHlwZTogc2VsZWN0ZWRHcm91cFR5cGVzLFxyXG4gICAgICAgICAgaXNSb290R3JvdXA6XHJcbiAgICAgICAgICAgIGZvcm1bMF0uZ2V0KCdpc1Jvb3RHcm91cCcpPy52YWx1ZSA9PT1cclxuICAgICAgICAgICAgdGhpcy5pc1Jvb3RHcm91cE9wdGlvbnNbMF0ubGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1bMF0uZ2V0KCdpc1Jvb3RHcm91cCcpPy52YWx1ZSA9PT0gdGhpcy5pc1Jvb3RHcm91cE9wdGlvbnNbMF0ubGFiZWxcclxuICAgICAgKVxyXG4gICAgICAgIGNvbmZpZ0ZpZWxkVmFsdWUuaGllcmFyY2h5ID0gMDtcclxuICAgICAgY29uc3QgY3JlYXRlR3JvdXBUeXBlUGF5bG9hZDogQ3JlYXRlR3JvdXBUeXBlUmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgYXBwSWQ6IHRoaXMuYXBwSWQsXHJcbiAgICAgICAgICByb2xlczogc2VsZWN0ZWRSb2xlcyxcclxuICAgICAgICAgIGNvbmZpZ0ZpZWxkTmFtZTogJ2dyb3VwX3R5cGUnLFxyXG4gICAgICAgICAgY29uZmlnRmllbGRWYWx1ZTogSlNPTi5zdHJpbmdpZnkoY29uZmlnRmllbGRWYWx1ZSksXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgICAgLmNyZWF0ZUdyb3VwVHlwZShjcmVhdGVHcm91cFR5cGVQYXlsb2FkKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXNwb25zZTogQ3JlYXRlR3JvdXBUeXBlUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cykge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHsgYXBwSWQsIHJvbGVzLCBjb25maWdGaWVsZE5hbWUgfSA9XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVHcm91cFR5cGVQYXlsb2FkLnBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgY29uZmlnRmllbGRWYWx1ZSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVHcm91cFR5cGVQYXlsb2FkLnBheWxvYWQuY29uZmlnRmllbGRWYWx1ZVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnNldE5ld2x5Q3JlYXRlZEdyb3VwVHlwZUluZm8oe1xyXG4gICAgICAgICAgICAgICAgYXBwSWQsXHJcbiAgICAgICAgICAgICAgICByb2xlcyxcclxuICAgICAgICAgICAgICAgIGNvbmZpZ0ZpZWxkTmFtZSxcclxuICAgICAgICAgICAgICAgIGNvbmZpZ0ZpZWxkVmFsdWUsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtUmVzcG9uc2UuZW1pdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcm91cFR5cGVTY3JlZW5UZXh0cy5lcnJvcnNcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZvcm0gY2FuY2VsIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uRGVzdHJveSBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIG9wZW4gb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlHcm91cFR5cGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGllZWVzYS1keW5hbWljLWZvcm1cclxuICAqbmdJZj1cImNyZWF0ZUdyb3VwVHlwZUZvcm1Hcm91cFwiXHJcbiAgY2xhc3M9XCJpZWVlc2EtY3JlYXRlLWdyb3VwLXR5cGUtZm9ybVwiXHJcbiAgW2xlZnRCdXR0b25MYWJlbF09XCJsZWZ0QnV0dG9uTGFiZWxcIlxyXG4gIFtyaWdodEJ1dHRvbkxhYmVsXT1cInJpZ2h0QnV0dG9uTGFiZWxcIlxyXG4gIFtpc0xlZ2VuZFZpc2libGVdPVwiZmFsc2VcIlxyXG4gIFtjb2xXaWR0aF09XCJjb2xXaWR0aFwiXHJcbiAgW2FjdGlvbkJ1dHRvbkFsaWduXT1cImFjdGlvbkJ1dHRvbkFsaWduXCJcclxuICBbZm9ybUdyb3Vwc109XCJjcmVhdGVHcm91cFR5cGVGb3JtR3JvdXBcIlxyXG4gIFtpc0xlZnRCdXR0b25OZWVkZWRdPVwidHJ1ZVwiXHJcbiAgKGZvcm1TdWJtaXQpPVwib25DcmVhdGVNb2RpZnlHcm91cFR5cGVGb3JtU3VibWl0KCRldmVudClcIlxyXG4gIChmb3JtTGVmdEJ1dHRvbkNsaWNrZWQpPVwib25Gb3JtQ2FuY2VsKClcIlxyXG4gIChmb3JtR3JvdXBzUmVmZXJlbmNlKT1cImdldENyZWF0ZU1vZGlmeUdyb3VwVHlwZUZvcm1Hcm91cFJlZigkZXZlbnQpXCJcclxuICAoZm9ybUNoZWNrYm94U2VsZWN0aW9uKT1cIm9uQ2hlY2tib3hTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbj48L2llZWVzYS1keW5hbWljLWZvcm0+XHJcbiJdfQ==