@ieeesa-npm/events-and-meetings 0.2.8 → 0.2.9

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.
@@ -544,7 +544,7 @@ export class CreateOrModifyEventComponent {
544
544
  ${this.screenTexts?.searchResultMsgPart2} "<strong>${this.trimmedSearchTerm}</strong>"`;
545
545
  this.meetings =
546
546
  this.eventsAndMeetingsService.mapMeetingsInfoToDataTable(response?.body?.meetings);
547
- if (response?.body?.meetings?.length > 0)
547
+ if (response?.body?.meetings?.length > 0 || this.isSearchActive)
548
548
  this.meetingDetailsTitle =
549
549
  this.screenTexts?.addMeeting?.firstLabel +
550
550
  '"' +
@@ -1206,15 +1206,15 @@ export class CreateOrModifyEventComponent {
1206
1206
  this.destroy$.unsubscribe();
1207
1207
  }
1208
1208
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrModifyEventComponent, deps: [{ token: i1.MatDialog }, { token: i2.EventsAndMeetingsService }, { token: i3.AlertsService }, { token: i3.CountryAndTimezoneService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrModifyEventComponent, isStandalone: true, selector: "ieeesa-create-modify-event", outputs: { formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<div\r\n class=\"ieeesa-create-update-event-form-container\"\r\n [ngClass]=\"selectedEventId ? 'ieeesa-event' : ''\"\r\n>\r\n <p *ngIf=\"selectedEventId\" class=\"ieeesa-title-lg-24 pb-3 m-0\">\r\n {{ screenTexts?.label?.eventDetails }}\r\n </p>\r\n <ieeesa-dynamic-form\r\n *ngIf=\"createOrUpdateEventsFormGroup\"\r\n class=\"ieeesa-create-update-event-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"true\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createOrUpdateEventsFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event, true)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateOrUpdateEventFormGroupRef($event)\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n ></ieeesa-dynamic-form>\r\n\r\n <p\r\n class=\"ieeesa-title-lg-24 mb-0 mt-3\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ screenTexts?.label?.meetingDetails }}\r\n </p>\r\n <p\r\n class=\"ieeesa-body-md-14 ieeesa-add-meetings-title\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ meetingDetailsTitle }}\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n <a\r\n *ngIf=\"meetings?.length === 0 && isAddMeetingAllowed\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n (click)=\"openAddMeetingModal()\"\r\n [ngClass]=\"{ 'ieeesa-add-meeting-link': isAddMeetingDisabled }\"\r\n >{{ addMeetingsLink }}</a\r\n >\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n </p>\r\n <ieeesa-data-table\r\n *ngIf=\"\r\n ((paginatorConfig?.totalRecords && meetings?.length) || isSearchActive) &&\r\n eventActionType === eventAndMeetingFunctionType.EDIT\r\n \"\r\n class=\"ieeesa-meetings\"\r\n [tableDataInfo]=\"meetings\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [searchPlaceHolderText]=\"screenTexts?.searchMeeting\"\r\n [searchType]=\"searchType\"\r\n (searchedValue)=\"onMeetingsSearchClick($event)\"\r\n [tableActions]=\"meetingActions\"\r\n [tableRowActions]=\"screenTexts?.tableActions\"\r\n [addButton]=\"addMeetingButton\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [legends]=\"meetingLegends\"\r\n (menuActionClick)=\"getSelectedRowData($event)\"\r\n (selectActionMenu)=\"handleMeetingActions($event)\"\r\n (paginationChange)=\"onMeetingsTablePageChange($event)\"\r\n (addRow)=\"openAddMeetingModal()\"\r\n (sortChange)=\"onSortMeeting($event)\"\r\n (selectedRowsToDelete)=\"openDeleteMeetingsConfirmationModal($event)\"\r\n [searchSupportMessage]=\"supportMessage\"\r\n [searchResultMessage]=\"searchResultMessage\"\r\n (rowLink)=\"navigateToEditMeetingPage($event)\"\r\n >\r\n </ieeesa-data-table>\r\n</div>\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-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-create-update-event-form-container{padding-bottom:1.87em}.ieeesa-event{background-color:#fff;padding:1em 1.5em 1.87em;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-add-meeting-link{pointer-events:none;color:#63666a}.ieeesa-create-update-event-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:2em 1em .75em;margin-top:2em;z-index:0}.ieeesa-create-update-event-form .ieeesa-dynamic-form__form-field{margin-bottom:.4em;padding-top:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__legend{margin-bottom:0!important;padding:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__fieldset{margin-top:.6em}.ieeesa-create-update-event-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-event-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-event-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-event-form .mdc-text-field--focused,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-event-form .mdc-text-field{border:1px solid #49454f;border-radius:4px}.ieeesa-create-update-event-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-event-form .start-date .ieeesa-datepicker,.ieeesa-create-update-event-form .end-date .ieeesa-datepicker,.ieeesa-create-update-event-form .time-zone .ieeesa-datepicker{min-width:100px}.ieeesa-create-update-event-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field{min-height:35px;height:35px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field .mat-mdc-input-element{position:relative;bottom:6px}.ieeesa-create-update-event-form .event-name,.ieeesa-create-update-event-form .description,.ieeesa-create-update-event-form .address{margin-top:10px}.ieeesa-create-update-event-form .event-name .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .address .mat-mdc-form-field-infix{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-event-form .event-name{margin-top:0}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:5em}.ieeesa-create-update-event-form .ip-address-range{margin-top:5px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:13em}.ieeesa-create-update-event-form .credits-applicable{margin-top:.7em;margin-bottom:1.3em}.ieeesa-create-update-event-form .credits-applicable .mdc-checkbox{padding-left:3px;margin-left:-10px}.ieeesa-create-update-event-form .credits-applicable .mdc-label{padding-top:5px;font-size:1.125rem}.ieeesa-create-update-event-form .credits-applicable .ieeesa-form-support-text{padding-left:0!important;padding-top:0!important}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-event-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-input-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-event-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-input-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-input-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-event-form .ieeesa-select-field__label,.ieeesa-create-update-event-form .ieeesa-input-field__label,.ieeesa-create-update-event-form .ieeesa-text-area-field__label,.ieeesa-create-update-event-form .ieeesa-datepicker__label,.ieeesa-create-update-event-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-meetings .mdc-notched-outline__trailing,.ieeesa-meetings .mdc-notched-outline__notch,.ieeesa-meetings .mdc-notched-outline__leading{border:none!important}.ieeesa-meetings .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-meetings .mat-mdc-paginator-page-size-label{position:relative;left:2em;color:#63666a}.ieeesa-meetings .mdc-text-field{border:none}.ieeesa-meetings .ieeesa-data-table__search-wrapper .mat-mdc-form-field{background:unset!important}.ieeesa-meetings .ieeesa-data-table__cell-content{color:#333436}.ieeesa-meetings .ieeesa-data-table__cell-content-link .mdc-button__label{font-weight:700}.ieeesa-meetings .ieeesa-data-table__content{z-index:0}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mat-sort-header-container,.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mdc-icon-button{float:right}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .fa-ellipsis-vertical{color:#00629b}.ieeesa-meetings .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-meetings .mat-mdc-paginator-page-size,.ieeesa-meetings .mat-mdc-paginator-page-size-label,.ieeesa-meetings .mat-mdc-paginator-page-size-select,.ieeesa-meetings .mat-mdc-paginator-range-label{margin:0}.ieeesa-meetings .at-mdc-select-min-line,.ieeesa-meetings .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-add-meetings-title{color:#49454f!important}@media (min-width: 767px){.ieeesa-create-update-event-form .event-type,.ieeesa-create-update-event-form .related-group,.ieeesa-create-update-event-form .event-password,.ieeesa-create-update-event-form .country,.ieeesa-create-update-event-form .time-zone{width:30%}.ieeesa-create-update-event-form .start-date,.ieeesa-create-update-event-form .end-date{width:19%}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:30px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:56px}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-meetings .ieeesa-data-table__search-wrapper{width:25%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.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"], exportAs: ["dynamicForm"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "searchResultMessage"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
1209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrModifyEventComponent, isStandalone: true, selector: "ieeesa-create-modify-event", outputs: { formCancel: "formCancel" }, viewQueries: [{ propertyName: "dynamicFormComponent", first: true, predicate: DynamicFormComponent, descendants: true }], ngImport: i0, template: "<div\r\n class=\"ieeesa-create-update-event-form-container\"\r\n [ngClass]=\"selectedEventId ? 'ieeesa-event' : ''\"\r\n>\r\n <p *ngIf=\"selectedEventId\" class=\"ieeesa-title-lg-24 pb-3 m-0\">\r\n {{ screenTexts?.label?.eventDetails }}\r\n </p>\r\n <ieeesa-dynamic-form\r\n *ngIf=\"createOrUpdateEventsFormGroup\"\r\n class=\"ieeesa-create-update-event-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"true\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createOrUpdateEventsFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event, true)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateOrUpdateEventFormGroupRef($event)\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n ></ieeesa-dynamic-form>\r\n\r\n <p\r\n class=\"ieeesa-title-lg-24 mb-0 mt-3\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ screenTexts?.label?.meetingDetails }}\r\n </p>\r\n <p\r\n class=\"ieeesa-body-md-14 ieeesa-add-meetings-title\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ meetingDetailsTitle }}\r\n <ng-container *ngIf=\"!isSearchActive\" >\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n <a\r\n *ngIf=\"meetings?.length === 0 && isAddMeetingAllowed\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n (click)=\"openAddMeetingModal()\"\r\n [ngClass]=\"{ 'ieeesa-add-meeting-link': isAddMeetingDisabled }\"\r\n >{{ addMeetingsLink }}</a\r\n >\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n </ng-container>\r\n </p>\r\n <ieeesa-data-table\r\n *ngIf=\"\r\n ((paginatorConfig?.totalRecords && meetings?.length) || isSearchActive) &&\r\n eventActionType === eventAndMeetingFunctionType.EDIT\r\n \"\r\n class=\"ieeesa-meetings\"\r\n [tableDataInfo]=\"meetings\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [searchPlaceHolderText]=\"screenTexts?.searchMeeting\"\r\n [searchType]=\"searchType\"\r\n (searchedValue)=\"onMeetingsSearchClick($event)\"\r\n [tableActions]=\"meetingActions\"\r\n [tableRowActions]=\"screenTexts?.tableActions\"\r\n [addButton]=\"addMeetingButton\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [legends]=\"meetingLegends\"\r\n (menuActionClick)=\"getSelectedRowData($event)\"\r\n (selectActionMenu)=\"handleMeetingActions($event)\"\r\n (paginationChange)=\"onMeetingsTablePageChange($event)\"\r\n (addRow)=\"openAddMeetingModal()\"\r\n (sortChange)=\"onSortMeeting($event)\"\r\n (selectedRowsToDelete)=\"openDeleteMeetingsConfirmationModal($event)\"\r\n [searchSupportMessage]=\"supportMessage\"\r\n [searchResultMessage]=\"searchResultMessage\"\r\n (rowLink)=\"navigateToEditMeetingPage($event)\"\r\n >\r\n </ieeesa-data-table>\r\n</div>\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-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-create-update-event-form-container{padding-bottom:1.87em}.ieeesa-event{background-color:#fff;padding:1em 1.5em 1.87em;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-add-meeting-link{pointer-events:none;color:#63666a}.ieeesa-create-update-event-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:2em 1em .75em;margin-top:2em;z-index:0}.ieeesa-create-update-event-form .ieeesa-dynamic-form__form-field{margin-bottom:.4em;padding-top:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__legend{margin-bottom:0!important;padding:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__fieldset{margin-top:.6em}.ieeesa-create-update-event-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-event-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-event-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-event-form .mdc-text-field--focused,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-event-form .mdc-text-field{border:1px solid #49454f;border-radius:4px}.ieeesa-create-update-event-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-event-form .start-date .ieeesa-datepicker,.ieeesa-create-update-event-form .end-date .ieeesa-datepicker,.ieeesa-create-update-event-form .time-zone .ieeesa-datepicker{min-width:100px}.ieeesa-create-update-event-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field{min-height:35px;height:35px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field .mat-mdc-input-element{position:relative;bottom:6px}.ieeesa-create-update-event-form .event-name,.ieeesa-create-update-event-form .description,.ieeesa-create-update-event-form .address{margin-top:10px}.ieeesa-create-update-event-form .event-name .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .address .mat-mdc-form-field-infix{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-event-form .event-name{margin-top:0}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:5em}.ieeesa-create-update-event-form .ip-address-range{margin-top:5px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:13em}.ieeesa-create-update-event-form .credits-applicable{margin-top:.7em;margin-bottom:1.3em}.ieeesa-create-update-event-form .credits-applicable .mdc-checkbox{padding-left:3px;margin-left:-10px}.ieeesa-create-update-event-form .credits-applicable .mdc-label{padding-top:5px;font-size:1.125rem}.ieeesa-create-update-event-form .credits-applicable .ieeesa-form-support-text{padding-left:0!important;padding-top:0!important}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-event-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-input-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-event-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-input-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-input-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-event-form .ieeesa-select-field__label,.ieeesa-create-update-event-form .ieeesa-input-field__label,.ieeesa-create-update-event-form .ieeesa-text-area-field__label,.ieeesa-create-update-event-form .ieeesa-datepicker__label,.ieeesa-create-update-event-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-meetings .mdc-notched-outline__trailing,.ieeesa-meetings .mdc-notched-outline__notch,.ieeesa-meetings .mdc-notched-outline__leading{border:none!important}.ieeesa-meetings .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-meetings .mat-mdc-paginator-page-size-label{position:relative;left:2em;color:#63666a}.ieeesa-meetings .mdc-text-field{border:none}.ieeesa-meetings .ieeesa-data-table__search-wrapper .mat-mdc-form-field{background:unset!important}.ieeesa-meetings .ieeesa-data-table__cell-content{color:#333436}.ieeesa-meetings .ieeesa-data-table__cell-content-link .mdc-button__label{font-weight:700}.ieeesa-meetings .ieeesa-data-table__content{z-index:0}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mat-sort-header-container,.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mdc-icon-button{float:right}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .fa-ellipsis-vertical{color:#00629b}.ieeesa-meetings .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-meetings .mat-mdc-paginator-page-size,.ieeesa-meetings .mat-mdc-paginator-page-size-label,.ieeesa-meetings .mat-mdc-paginator-page-size-select,.ieeesa-meetings .mat-mdc-paginator-range-label{margin:0}.ieeesa-meetings .at-mdc-select-min-line,.ieeesa-meetings .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-add-meetings-title{color:#49454f!important}@media (min-width: 767px){.ieeesa-create-update-event-form .event-type,.ieeesa-create-update-event-form .related-group,.ieeesa-create-update-event-form .event-password,.ieeesa-create-update-event-form .country,.ieeesa-create-update-event-form .time-zone{width:30%}.ieeesa-create-update-event-form .start-date,.ieeesa-create-update-event-form .end-date{width:19%}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:30px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:56px}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-meetings .ieeesa-data-table__search-wrapper{width:25%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.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"], exportAs: ["dynamicForm"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "searchResultMessage"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
1210
1210
  }
1211
1211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrModifyEventComponent, decorators: [{
1212
1212
  type: Component,
1213
- args: [{ selector: 'ieeesa-create-modify-event', imports: [CommonModule, DynamicFormComponent, DataTableComponent], standalone: true, encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-create-update-event-form-container\"\r\n [ngClass]=\"selectedEventId ? 'ieeesa-event' : ''\"\r\n>\r\n <p *ngIf=\"selectedEventId\" class=\"ieeesa-title-lg-24 pb-3 m-0\">\r\n {{ screenTexts?.label?.eventDetails }}\r\n </p>\r\n <ieeesa-dynamic-form\r\n *ngIf=\"createOrUpdateEventsFormGroup\"\r\n class=\"ieeesa-create-update-event-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"true\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createOrUpdateEventsFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event, true)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateOrUpdateEventFormGroupRef($event)\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n ></ieeesa-dynamic-form>\r\n\r\n <p\r\n class=\"ieeesa-title-lg-24 mb-0 mt-3\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ screenTexts?.label?.meetingDetails }}\r\n </p>\r\n <p\r\n class=\"ieeesa-body-md-14 ieeesa-add-meetings-title\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ meetingDetailsTitle }}\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n <a\r\n *ngIf=\"meetings?.length === 0 && isAddMeetingAllowed\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n (click)=\"openAddMeetingModal()\"\r\n [ngClass]=\"{ 'ieeesa-add-meeting-link': isAddMeetingDisabled }\"\r\n >{{ addMeetingsLink }}</a\r\n >\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n </p>\r\n <ieeesa-data-table\r\n *ngIf=\"\r\n ((paginatorConfig?.totalRecords && meetings?.length) || isSearchActive) &&\r\n eventActionType === eventAndMeetingFunctionType.EDIT\r\n \"\r\n class=\"ieeesa-meetings\"\r\n [tableDataInfo]=\"meetings\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [searchPlaceHolderText]=\"screenTexts?.searchMeeting\"\r\n [searchType]=\"searchType\"\r\n (searchedValue)=\"onMeetingsSearchClick($event)\"\r\n [tableActions]=\"meetingActions\"\r\n [tableRowActions]=\"screenTexts?.tableActions\"\r\n [addButton]=\"addMeetingButton\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [legends]=\"meetingLegends\"\r\n (menuActionClick)=\"getSelectedRowData($event)\"\r\n (selectActionMenu)=\"handleMeetingActions($event)\"\r\n (paginationChange)=\"onMeetingsTablePageChange($event)\"\r\n (addRow)=\"openAddMeetingModal()\"\r\n (sortChange)=\"onSortMeeting($event)\"\r\n (selectedRowsToDelete)=\"openDeleteMeetingsConfirmationModal($event)\"\r\n [searchSupportMessage]=\"supportMessage\"\r\n [searchResultMessage]=\"searchResultMessage\"\r\n (rowLink)=\"navigateToEditMeetingPage($event)\"\r\n >\r\n </ieeesa-data-table>\r\n</div>\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-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-create-update-event-form-container{padding-bottom:1.87em}.ieeesa-event{background-color:#fff;padding:1em 1.5em 1.87em;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-add-meeting-link{pointer-events:none;color:#63666a}.ieeesa-create-update-event-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:2em 1em .75em;margin-top:2em;z-index:0}.ieeesa-create-update-event-form .ieeesa-dynamic-form__form-field{margin-bottom:.4em;padding-top:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__legend{margin-bottom:0!important;padding:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__fieldset{margin-top:.6em}.ieeesa-create-update-event-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-event-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-event-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-event-form .mdc-text-field--focused,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-event-form .mdc-text-field{border:1px solid #49454f;border-radius:4px}.ieeesa-create-update-event-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-event-form .start-date .ieeesa-datepicker,.ieeesa-create-update-event-form .end-date .ieeesa-datepicker,.ieeesa-create-update-event-form .time-zone .ieeesa-datepicker{min-width:100px}.ieeesa-create-update-event-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field{min-height:35px;height:35px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field .mat-mdc-input-element{position:relative;bottom:6px}.ieeesa-create-update-event-form .event-name,.ieeesa-create-update-event-form .description,.ieeesa-create-update-event-form .address{margin-top:10px}.ieeesa-create-update-event-form .event-name .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .address .mat-mdc-form-field-infix{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-event-form .event-name{margin-top:0}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:5em}.ieeesa-create-update-event-form .ip-address-range{margin-top:5px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:13em}.ieeesa-create-update-event-form .credits-applicable{margin-top:.7em;margin-bottom:1.3em}.ieeesa-create-update-event-form .credits-applicable .mdc-checkbox{padding-left:3px;margin-left:-10px}.ieeesa-create-update-event-form .credits-applicable .mdc-label{padding-top:5px;font-size:1.125rem}.ieeesa-create-update-event-form .credits-applicable .ieeesa-form-support-text{padding-left:0!important;padding-top:0!important}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-event-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-input-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-event-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-input-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-input-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-event-form .ieeesa-select-field__label,.ieeesa-create-update-event-form .ieeesa-input-field__label,.ieeesa-create-update-event-form .ieeesa-text-area-field__label,.ieeesa-create-update-event-form .ieeesa-datepicker__label,.ieeesa-create-update-event-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-meetings .mdc-notched-outline__trailing,.ieeesa-meetings .mdc-notched-outline__notch,.ieeesa-meetings .mdc-notched-outline__leading{border:none!important}.ieeesa-meetings .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-meetings .mat-mdc-paginator-page-size-label{position:relative;left:2em;color:#63666a}.ieeesa-meetings .mdc-text-field{border:none}.ieeesa-meetings .ieeesa-data-table__search-wrapper .mat-mdc-form-field{background:unset!important}.ieeesa-meetings .ieeesa-data-table__cell-content{color:#333436}.ieeesa-meetings .ieeesa-data-table__cell-content-link .mdc-button__label{font-weight:700}.ieeesa-meetings .ieeesa-data-table__content{z-index:0}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mat-sort-header-container,.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mdc-icon-button{float:right}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .fa-ellipsis-vertical{color:#00629b}.ieeesa-meetings .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-meetings .mat-mdc-paginator-page-size,.ieeesa-meetings .mat-mdc-paginator-page-size-label,.ieeesa-meetings .mat-mdc-paginator-page-size-select,.ieeesa-meetings .mat-mdc-paginator-range-label{margin:0}.ieeesa-meetings .at-mdc-select-min-line,.ieeesa-meetings .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-add-meetings-title{color:#49454f!important}@media (min-width: 767px){.ieeesa-create-update-event-form .event-type,.ieeesa-create-update-event-form .related-group,.ieeesa-create-update-event-form .event-password,.ieeesa-create-update-event-form .country,.ieeesa-create-update-event-form .time-zone{width:30%}.ieeesa-create-update-event-form .start-date,.ieeesa-create-update-event-form .end-date{width:19%}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:30px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:56px}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-meetings .ieeesa-data-table__search-wrapper{width:25%}}\n"] }]
1213
+ args: [{ selector: 'ieeesa-create-modify-event', imports: [CommonModule, DynamicFormComponent, DataTableComponent], standalone: true, encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-create-update-event-form-container\"\r\n [ngClass]=\"selectedEventId ? 'ieeesa-event' : ''\"\r\n>\r\n <p *ngIf=\"selectedEventId\" class=\"ieeesa-title-lg-24 pb-3 m-0\">\r\n {{ screenTexts?.label?.eventDetails }}\r\n </p>\r\n <ieeesa-dynamic-form\r\n *ngIf=\"createOrUpdateEventsFormGroup\"\r\n class=\"ieeesa-create-update-event-form\"\r\n [leftButtonLabel]=\"leftButtonLabel\"\r\n [rightButtonLabel]=\"rightButtonLabel\"\r\n [isLegendVisible]=\"true\"\r\n [isSubmitButtonDisabled]=\"isSubmitButtonDisabled\"\r\n [colWidth]=\"colWidth\"\r\n [actionButtonAlign]=\"actionButtonAlign\"\r\n [formGroups]=\"createOrUpdateEventsFormGroup\"\r\n [isLeftButtonNeeded]=\"true\"\r\n (formCheckboxSelection)=\"onAttendeeTypeSelection($event, true)\"\r\n (formLeftButtonClicked)=\"onFormCancel()\"\r\n (formGroupsReference)=\"getCreateOrUpdateEventFormGroupRef($event)\"\r\n (formSubmit)=\"onFormSubmit($event)\"\r\n (formChange)=\"onFormChange($event)\"\r\n (formSelectSearch)=\"formSelectSearch($event)\"\r\n ></ieeesa-dynamic-form>\r\n\r\n <p\r\n class=\"ieeesa-title-lg-24 mb-0 mt-3\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ screenTexts?.label?.meetingDetails }}\r\n </p>\r\n <p\r\n class=\"ieeesa-body-md-14 ieeesa-add-meetings-title\"\r\n *ngIf=\"\r\n eventActionType === eventAndMeetingFunctionType.EDIT || isEventCreated\r\n \"\r\n >\r\n {{ meetingDetailsTitle }}\r\n <ng-container *ngIf=\"!isSearchActive\" >\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n <a\r\n *ngIf=\"meetings?.length === 0 && isAddMeetingAllowed\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n (click)=\"openAddMeetingModal()\"\r\n [ngClass]=\"{ 'ieeesa-add-meeting-link': isAddMeetingDisabled }\"\r\n >{{ addMeetingsLink }}</a\r\n >\r\n <ng-container *ngIf=\"!meetings?.length && isAddMeetingAllowed\"\r\n >\"</ng-container\r\n >\r\n </ng-container>\r\n </p>\r\n <ieeesa-data-table\r\n *ngIf=\"\r\n ((paginatorConfig?.totalRecords && meetings?.length) || isSearchActive) &&\r\n eventActionType === eventAndMeetingFunctionType.EDIT\r\n \"\r\n class=\"ieeesa-meetings\"\r\n [tableDataInfo]=\"meetings\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [searchPlaceHolderText]=\"screenTexts?.searchMeeting\"\r\n [searchType]=\"searchType\"\r\n (searchedValue)=\"onMeetingsSearchClick($event)\"\r\n [tableActions]=\"meetingActions\"\r\n [tableRowActions]=\"screenTexts?.tableActions\"\r\n [addButton]=\"addMeetingButton\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [legends]=\"meetingLegends\"\r\n (menuActionClick)=\"getSelectedRowData($event)\"\r\n (selectActionMenu)=\"handleMeetingActions($event)\"\r\n (paginationChange)=\"onMeetingsTablePageChange($event)\"\r\n (addRow)=\"openAddMeetingModal()\"\r\n (sortChange)=\"onSortMeeting($event)\"\r\n (selectedRowsToDelete)=\"openDeleteMeetingsConfirmationModal($event)\"\r\n [searchSupportMessage]=\"supportMessage\"\r\n [searchResultMessage]=\"searchResultMessage\"\r\n (rowLink)=\"navigateToEditMeetingPage($event)\"\r\n >\r\n </ieeesa-data-table>\r\n</div>\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-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-create-update-event-form-container{padding-bottom:1.87em}.ieeesa-event{background-color:#fff;padding:1em 1.5em 1.87em;box-shadow:0 3px #11b7e5 inset,0 4px 24px #00000080}.ieeesa-add-meeting-link{pointer-events:none;color:#63666a}.ieeesa-create-update-event-form .ieeesa-dynamic-form__actions{flex-direction:row-reverse;padding:2em 1em .75em;margin-top:2em;z-index:0}.ieeesa-create-update-event-form .ieeesa-dynamic-form__form-field{margin-bottom:.4em;padding-top:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__legend{margin-bottom:0!important;padding:0!important}.ieeesa-create-update-event-form .ieeesa-dynamic-form__fieldset{margin-top:.6em}.ieeesa-create-update-event-form .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-create-update-event-form .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:none!important;border-radius:4px!important}.ieeesa-create-update-event-form .mdc-text-field--filled:not(.mdc-text-field--disabled),.ieeesa-create-update-event-form .mdc-text-field--focused,.ieeesa-create-update-event-form .mat-mdc-form-field-focus-overlay{background:unset!important}.ieeesa-create-update-event-form .mdc-text-field{border:1px solid #49454f;border-radius:4px}.ieeesa-create-update-event-form .mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#c9c5ca!important;background-color:transparent!important}.ieeesa-create-update-event-form .start-date .ieeesa-datepicker,.ieeesa-create-update-event-form .end-date .ieeesa-datepicker,.ieeesa-create-update-event-form .time-zone .ieeesa-datepicker{min-width:100px}.ieeesa-create-update-event-form .ieeesa-text-area-field__resize{resize:auto}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper{height:35px}.ieeesa-create-update-event-form .related-group .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .event-type .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .time-zone .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .country .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .start-date .mat-mdc-text-field-wrapper .mat-mdc-select,.ieeesa-create-update-event-form .end-date .mat-mdc-text-field-wrapper .mat-mdc-select{position:relative;bottom:13px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field{min-height:35px;height:35px}.ieeesa-create-update-event-form .event-password .mat-mdc-form-field .mat-mdc-input-element{position:relative;bottom:6px}.ieeesa-create-update-event-form .event-name,.ieeesa-create-update-event-form .description,.ieeesa-create-update-event-form .address{margin-top:10px}.ieeesa-create-update-event-form .event-name .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix,.ieeesa-create-update-event-form .address .mat-mdc-form-field-infix{min-height:30px;padding-top:3px!important;padding-bottom:8px!important}.ieeesa-create-update-event-form .event-name{margin-top:0}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:5em}.ieeesa-create-update-event-form .ip-address-range{margin-top:5px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:13em}.ieeesa-create-update-event-form .credits-applicable{margin-top:.7em;margin-bottom:1.3em}.ieeesa-create-update-event-form .credits-applicable .mdc-checkbox{padding-left:3px;margin-left:-10px}.ieeesa-create-update-event-form .credits-applicable .mdc-label{padding-top:5px;font-size:1.125rem}.ieeesa-create-update-event-form .credits-applicable .ieeesa-form-support-text{padding-left:0!important;padding-top:0!important}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{margin-left:-10px;flex-direction:column}.ieeesa-create-update-event-form .ieeesa-select-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-input-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-text-area-field .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-datepicker .mdc-text-field__input,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-create-update-event-form .ieeesa-select-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-select-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-input-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-input-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-text-area-field ::placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-datepicker ::placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field .mat-mdc-select-placeholder,.ieeesa-create-update-event-form .ieeesa-checkbox-field ::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-create-update-event-form .ieeesa-select-field__label,.ieeesa-create-update-event-form .ieeesa-input-field__label,.ieeesa-create-update-event-form .ieeesa-text-area-field__label,.ieeesa-create-update-event-form .ieeesa-datepicker__label,.ieeesa-create-update-event-form .ieeesa-checkbox-field__label{color:#49454f;font-size:.75rem}.ieeesa-meetings .mdc-notched-outline__trailing,.ieeesa-meetings .mdc-notched-outline__notch,.ieeesa-meetings .mdc-notched-outline__leading{border:none!important}.ieeesa-meetings .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-meetings .mat-mdc-paginator-page-size-label{position:relative;left:2em;color:#63666a}.ieeesa-meetings .mdc-text-field{border:none}.ieeesa-meetings .ieeesa-data-table__search-wrapper .mat-mdc-form-field{background:unset!important}.ieeesa-meetings .ieeesa-data-table__cell-content{color:#333436}.ieeesa-meetings .ieeesa-data-table__cell-content-link .mdc-button__label{font-weight:700}.ieeesa-meetings .ieeesa-data-table__content{z-index:0}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mat-sort-header-container,.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .mdc-icon-button{float:right}.ieeesa-meetings .ieeesa-data-table .mat-column-ACTIONS .fa-ellipsis-vertical{color:#00629b}.ieeesa-meetings .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-meetings .mat-mdc-paginator-page-size,.ieeesa-meetings .mat-mdc-paginator-page-size-label,.ieeesa-meetings .mat-mdc-paginator-page-size-select,.ieeesa-meetings .mat-mdc-paginator-range-label{margin:0}.ieeesa-meetings .at-mdc-select-min-line,.ieeesa-meetings .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-add-meetings-title{color:#49454f!important}@media (min-width: 767px){.ieeesa-create-update-event-form .event-type,.ieeesa-create-update-event-form .related-group,.ieeesa-create-update-event-form .event-password,.ieeesa-create-update-event-form .country,.ieeesa-create-update-event-form .time-zone{width:30%}.ieeesa-create-update-event-form .start-date,.ieeesa-create-update-event-form .end-date{width:19%}.ieeesa-create-update-event-form .description .mat-mdc-form-field-infix{min-height:30px}.ieeesa-create-update-event-form .ip-address-range .mat-mdc-form-field-infix{min-height:56px}.ieeesa-create-update-event-form .attendees-type .mat-mdc-list{flex-direction:row;gap:10px}.ieeesa-meetings .ieeesa-data-table__search-wrapper{width:25%}}\n"] }]
1214
1214
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.EventsAndMeetingsService }, { type: i3.AlertsService }, { type: i3.CountryAndTimezoneService }, { type: i4.Router }]; }, propDecorators: { dynamicFormComponent: [{
1215
1215
  type: ViewChild,
1216
1216
  args: [DynamicFormComponent]
1217
1217
  }], formCancel: [{
1218
1218
  type: Output
1219
1219
  }] } });
1220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGlmeS1ldmVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtbW9kaWZ5LWV2ZW50L2NyZWF0ZS1tb2RpZnktZXZlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZlbnRzLWFuZC1tZWV0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1ldmVudC9jcmVhdGUtbW9kaWZ5LWV2ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBS1osZUFBZSxFQUVmLFVBQVUsRUFDVixlQUFlLEVBQ2YsMEJBQTBCLEVBRTFCLG9CQUFvQixFQUVwQix3QkFBd0IsRUFDeEIsY0FBYyxFQUVkLGtCQUFrQixFQUVuQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUNMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQs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U0FBUyxDQUFDLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQTUyQ1UsNEJBQTRCO21HQUE1Qiw0QkFBNEIsbUxBMEI1QixvQkFBb0IsZ0RDbEhqQyxrdkdBb0ZBLHV1ZkRGWSxZQUFZLGlPQUFFLG9CQUFvQiwydkJBQUUsa0JBQWtCOzs0RkFNckQsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNFLDRCQUE0QixXQUM3QixDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxjQUNyRCxJQUFJLGlCQUdELGlCQUFpQixDQUFDLElBQUk7Z09BNEJKLG9CQUFvQjtzQkFBcEQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ3JCLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgQWxpZ25UeXBlLFxyXG4gIENhbGVuZGFyVHlwZSxcclxuICBDaGVja2JveE9wdGlvbixcclxuICBGb3JtR3JpZCxcclxuICBQYWdpbmF0b3JDb25maWcsXHJcbiAgU2VsZWN0T3B0aW9uLFxyXG4gIEZvcm1Db250cm9sVHlwZSxcclxuICBGb3JtTW9kZWwsXHJcbiAgU2VhcmNoVHlwZSxcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgTWVudSxcclxuICBEeW5hbWljRm9ybUNvbXBvbmVudCxcclxuICBDb25maXJtYXRpb25Nb2RhbERhdGEsXHJcbiAgVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gIE1vZGFsQ29tcG9uZW50LFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBMZWdlbmRcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgKiBhcyBzY3JlZW5UZXh0cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nc1ZhbGlkYXRpb25QYXR0ZXJucyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuaW1wb3J0IHsgRXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLWFuZC1tZWV0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQWxlcnRUeXBlLFxyXG4gIEFsZXJ0c1NlcnZpY2UsXHJcbiAgQ291bnRyeUFuZFRpbWV6b25lU2VydmljZSxcclxuICBEZWFjdGl2YXRlQ29tcG9uZW50LFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgRm9ybVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXN0YXR1cy5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGVGb3JtYXRzIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2RhdGUtZm9ybWF0cyc7XHJcbmltcG9ydCB7IEdldEdyb3VwUmVzcG9uc2UsIEdyb3VwSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1yZXNwb25zZS5tb2RlbCc7XHJcbmltcG9ydCB7IENyZWF0ZU9yRWRpdEV2ZW50UGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVscy9jcmVhdGUtZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBBdHRlbmRlZVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXR0ZW5kZWUtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgR2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkLFxyXG4gIE1lZXRpbmcsXHJcbiAgTWVldGluZ0RldGFpbHMsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL21lZXRpbmdzLXVuZGVyLWV2ZW50cy5tb2RlbCc7XHJcbmltcG9ydCB7IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC1tZWV0aW5nLWZ1bmN0aW9uLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnREZXRhaWxzQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy92aWV3LWV2ZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFkZE1lZXRpbmdDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtbWVldGluZy9hZGQtbWVldGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNZWV0aW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LW9yLW1lZXRpbmctbWVudS1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XHJcbmNvbnN0IENPTFVNTl9ERUYgPSB7XHJcbiAgbWVldGluZ1RpdGxlOiAnbWVldGluZ1RpdGxlJyxcclxuICBtZWV0aW5nU3REYXRlOiAnbWVldGluZ1N0RGF0ZScsXHJcbiAgZW5kRGF0ZUFuZFRpbWU6ICdlbmQtZGF0ZS10aW1lJyxcclxuICB0aW1lWm9uZTogJ3RpbWUtem9uZScsXHJcbiAgZ3JvdXA6ICdyZWxhdGVkLWdyb3VwJyxcclxuICBsb2NhdGlvbjogJ2xvY2F0aW9uJyxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBldmVudCBjcmVhdGlvbiBvciBtb2RpZmljYXRpb24uXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWNyZWF0ZS1tb2RpZnktZXZlbnQnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIER5bmFtaWNGb3JtQ29tcG9uZW50LCBEYXRhVGFibGVDb21wb25lbnRdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1tb2RpZnktZXZlbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1tb2RpZnktZXZlbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgRGVhY3RpdmF0ZUNvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZGlhbG9nUmVmOiBhbnk7XHJcbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuICBjaGFyc0xpbWl0ID0gdGhpcy5jb25zdGFudHM/LmNoYXJhY3RlckxpbWl0cztcclxuICBzY3JlZW5UZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5jcmVhdGVPck1vZGlmeUV2ZW50O1xyXG4gIGFkZE1lZXRpbmcgPSB0aGlzLnNjcmVlblRleHRzPy5hZGRNZWV0aW5nO1xyXG4gIGNvbHVtbkhlYWRpbmcgPSB0aGlzLnNjcmVlblRleHRzPy5jb2x1bW5TY2hlbWE/LmhlYWRpbmc7XHJcbiAgbGVmdEJ1dHRvbkxhYmVsID0gdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmxlZnRCdXR0b25MYWJlbDtcclxuICByaWdodEJ1dHRvbkxhYmVsID0gdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LnJpZ2h0QnV0dG9uTGFiZWw7XHJcbiAgbWVldGluZ0RldGFpbHNUaXRsZSA9IHRoaXMuYWRkTWVldGluZz8uZmlyc3RMYWJlbDtcclxuICBhZGRNZWV0aW5nc0xpbmsgPSB0aGlzLmFkZE1lZXRpbmc/LmFkZE1lZXRpbmdzTGluaztcclxuICBpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICBjb2xXaWR0aDogRm9ybUdyaWQgPSB7IHhzOiAxMiwgeGw6IDEyLCBzbTogMTIsIG1kOiAxMiwgbGc6IDEyIH07XHJcbiAgbWVldGluZ3M6IE1lZXRpbmdbXSA9IFtdO1xyXG4gIGNyZWF0ZU9yVXBkYXRlRXZlbnRzRm9ybUdyb3VwITogRm9ybU1vZGVsO1xyXG4gIGFjdGlvbkJ1dHRvbkFsaWduID0gQWxpZ25UeXBlLkxFRlQ7XHJcbiAgZXZlbnRUeXBlczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBzZWxlY3RlZEF0dGVuZGVlVHlwZXM6IHN0cmluZ1tdID0gW107XHJcbiAgaXNDcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUludmFsaWQgPSBmYWxzZTtcclxuICBjcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmITogRm9ybUdyb3VwW107XHJcbiAgYXR0ZW5kZWVzVHlwZXM6IENoZWNrYm94T3B0aW9uW10gPSB0aGlzLmNvbnN0YW50cz8uYXR0ZW5kZWVzVHlwZTtcclxuICBAVmlld0NoaWxkKER5bmFtaWNGb3JtQ29tcG9uZW50KSBkeW5hbWljRm9ybUNvbXBvbmVudCE6IER5bmFtaWNGb3JtQ29tcG9uZW50O1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGdyb3VwczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBjb3VudHJpZXMhOiBTZWxlY3RPcHRpb25bXTtcclxuICBzZWxlY3RlZEV2ZW50SWQhOiBzdHJpbmc7XHJcbiAgZXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlID0gRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlO1xyXG4gIHNlbGVjdGVkRXZlbnREYXRhITogRXZlbnREZXRhaWxzQ29uZmlndXJhdGlvbjtcclxuICB0aW1lem9uZXMhOiBTZWxlY3RPcHRpb25bXTtcclxuICBjb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIHBhZ2luYXRvckNvbmZpZzogUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgcmVjb3Jkc1BlclBhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/LnBhZ2VTaXplT3B0aW9ucz8uWzFdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnNjcmVlblRleHRzPy5wYWdlU2l6ZU9wdGlvbnMsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgfTtcclxuICBkZWZhdWx0VGltZVpvbmVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgZGVmYXVsdENvdW50cmllcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIG1lZXRpbmdBY3Rpb25zID0ge1xyXG4gICAgaXNBZGROZWVkZWQ6IHRydWUsXHJcbiAgICBpc0RlbGV0ZU5lZWRlZDogdHJ1ZSxcclxuICAgIGlzU2VhcmNoTmVlZGVkOiB0cnVlLFxyXG4gICAgaXNGaWx0ZXJOZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNFZGl0TmVlZGVkOiBmYWxzZSxcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIGV2ZW50QWN0aW9uVHlwZSE6IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZTtcclxuICBpc0V2ZW50Q3JlYXRlZCA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkTWVldGluZ0lkczogc3RyaW5nW10gPSBbXTtcclxuICBzZXJ2ZXJDdXJyZW50RGF0ZSE6IHN0cmluZztcclxuICBpc0FkZE1lZXRpbmdEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgc2VhcmNoUmVzdWx0TWVzc2FnZSE6IHN0cmluZztcclxuICBpc1NlYXJjaEFjdGl2ZSA9IGZhbHNlO1xyXG4gIHNlYXJjaFR5cGU6IFNlYXJjaFR5cGUgPSBTZWFyY2hUeXBlLk9OX0NMSUNLO1xyXG4gIHN1cHBvcnRNZXNzYWdlITogc3RyaW5nO1xyXG4gIGRlZmF1bHRTb3J0ZWRDb2x1bW4gPSAnbWVldGluZ1N0RGF0ZSc7XHJcbiAgZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPSBmYWxzZTtcclxuICBhZGRNZWV0aW5nQnV0dG9uID0gdGhpcy5zY3JlZW5UZXh0cz8uYnV0dG9ucz8uWzBdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2VsZWN0ZWRNZWV0aW5nOiBhbnk7XHJcbiAgaXNBZGRNZWV0aW5nQWxsb3dlZCA9IGZhbHNlO1xyXG4gIGNvbmZpcm1hdGlvbk1vZGFsVGV4dHMgPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LmNyZWF0ZU1vZGlmeUV2ZW50T3JNZWV0aW5nXHJcbiAgICAgID8udW5zYXZlZEZvcm1DaGFuZ2VzQ29uZmlybWF0aW9uRGlhbG9nT3B0aW9ucztcclxuICBjb25maXJtYXRpb25Nb2RhbENvbmZpZyE6IENvbmZpcm1hdGlvbk1vZGFsRGF0YTtcclxuICBtZWV0aW5nTGVnZW5kczogTGVnZW5kW10gPSB0aGlzLmNvbnN0YW50cz8uZXZlbnRPck1lZXRpbmdMZWdlbmRzO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJldmlvdXNGb3JtVmFsdWVzOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U6IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBjb3VudHJ5QW5kVGltZXpvbmVTZXJ2aWNlOiBDb3VudHJ5QW5kVGltZXpvbmVTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5kZWZhdWx0Q291bnRyaWVzID1cclxuICAgICAgdGhpcy5jb3VudHJ5QW5kVGltZXpvbmVTZXJ2aWNlLmdldEFsbENvdW50cmllcygpO1xyXG4gICAgdGhpcy50aW1lem9uZXMgPSB0aGlzLmRlZmF1bHRUaW1lWm9uZXMgPVxyXG4gICAgICB0aGlzLmNvdW50cnlBbmRUaW1lem9uZVNlcnZpY2UuZ2V0VVRDVGltZXpvbmVPcHRpb25zKCk7XHJcbiAgICB0aGlzLmF0dGVuZGVlc1R5cGVzLm1hcCgoYXR0ZW5kZWUpID0+IHtcclxuICAgICAgYXR0ZW5kZWUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICBhdHRlbmRlZS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRyaWdnZXJzIGNvbmZpcm1hdGlvbiBtb2RhbCB3aGlsZSBsZWF2aW5nIHVuc2F2ZWQgZm9ybS5cclxuICAgKiBAcmV0dXJuIHsoYm9vbGVhblxyXG4gICAqICAgICB8IFVybFRyZWVcclxuICAgKiAgICAgfCBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPlxyXG4gICAqICAgICB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+KX1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNhbkRlYWN0aXZhdGUoKTpcclxuICAgIHwgYm9vbGVhblxyXG4gICAgfCBVcmxUcmVlXHJcbiAgICB8IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+XHJcbiAgICB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcclxuICAgIGlmICh0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKCkpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8ub3BlbkNvbmZpcm1hdGlvbk1vZGFsKFxyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uTW9kYWxDb25maWdcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmPy5hZnRlckNsb3NlZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIGNvbHVtbiBzY2hlbWEsIGdyb3VwcywgbWVldGluZ3MgY3JlYXRlZCB1bmRlciBldmVudHMsIGV2ZW50IHR5cGVzIGFuZCBjcmVhdGVzIGZvcm0gZ3JvdXAuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWVldGluZ0FjdGlvbnMuaXNEZWxldGVOZWVkZWQgPVxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgICBQZXJtaXNzaW9uVHlwZS5ERUxFVEVfTUVFVElOR1xyXG4gICAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJNZWV0aW5nVGFibGVBY3Rpb25zKCk7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbk1vZGFsQ29uZmlnID0ge1xyXG4gICAgICBsZWZ0QnV0dG9uTGFiZWw6IHRoaXMuY29uZmlybWF0aW9uTW9kYWxUZXh0cz8ubGVmdEJ1dHRvbkxhYmVsLFxyXG4gICAgICByaWdodEJ1dHRvbkxhYmVsOiB0aGlzLmNvbmZpcm1hdGlvbk1vZGFsVGV4dHM/LnJpZ2h0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHByb21wdE1lc3NhZ2U6IHRoaXMuY29uZmlybWF0aW9uTW9kYWxUZXh0cz8ucHJvbXB0TWVzc2FnZSxcclxuICAgICAgYWN0aW9uQnV0dG9uQWxpZ246IEFsaWduVHlwZS5NSURETEUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmNhbkNsb3NlQWRkTWVldGluZ01vZGFsJD8ubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5TY2hlbWEoKTtcclxuICAgIHRoaXMuZ2V0R3JvdXBzKCk7XHJcbiAgICB0aGlzLmdldEV2ZW50VHlwZXMoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFdmVudElkID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNlbGVjdGVkRXZlbnRJZDtcclxuICAgIHRoaXMuc3VwcG9ydE1lc3NhZ2UgPSB0aGlzLnNjcmVlblRleHRzPy5zdXBwb3J0TWVzc2FnZTtcclxuICAgIHRoaXMuY3JlYXRlc0V2ZW50Rm9ybUdyb3VwKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5ldmVudEFjdGlvblR5cGUgPSBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVDtcclxuICAgICAgdGhpcy5nZXRNZWV0aW5nc0J5RXZlbnRJZCh7XHJcbiAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0U2VsZWN0ZWRFdmVudElkKCksXHJcbiAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ubWVldGluZ1N0RGF0ZSxcclxuICAgICAgICAgIGFzY2VuZGluZ09yZGVyOiBmYWxzZSxcclxuICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudmlld0V2ZW50RGV0YWlscyh0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2VsZWN0ZWRFdmVudElkKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNBZGRNZWV0aW5nQWxsb3dlZCA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgUGVybWlzc2lvblR5cGUuQ1JFQVRFX01FRVRJTkdcclxuICAgICk7XHJcbiAgICB0aGlzLm1lZXRpbmdBY3Rpb25zLmlzQWRkTmVlZGVkID0gdGhpcy5pc0FkZE1lZXRpbmdBbGxvd2VkO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID09PVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5DUkVBVEUgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50SWRcclxuICAgICkge1xyXG4gICAgICB0aGlzLmdldE1lZXRpbmdzQnlFdmVudElkKHtcclxuICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRTZWxlY3RlZEV2ZW50SWQoKSxcclxuICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5tZWV0aW5nU3REYXRlLFxyXG4gICAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgICAgcGFnZTogMSxcclxuICAgICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5ldmVudEFjdGlvblR5cGUgPSBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVDtcclxuICAgICAgdGhpcy52aWV3RXZlbnREZXRhaWxzKHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZWxlY3RlZEV2ZW50SWQpO1xyXG4gICAgICB0aGlzLm9wZW5BZGRNZWV0aW5nTW9kYWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5jYW5DbG9zZUFkZE1lZXRpbmdNb2RhbCRcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UgJiYgdGhpcy5kaWFsb2dSZWYpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmNhbkNsb3NlQWRkTWVldGluZ01vZGFsJD8ubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVycyB0aGUgbWVldGluZyB0YWJsZSBtZW51IGFjdGlvbnMgYmFzZWQgb24gbWVldGluZ3MgcGVybWlzc2lvbi5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZpbHRlck1lZXRpbmdUYWJsZUFjdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zY3JlZW5UZXh0cz8udGFibGVBY3Rpb25zKVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzLnRhYmxlQWN0aW9ucyA9XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0RmlsdGVyZWRNZWV0aW5nQWN0aW9ucyhcclxuICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHMudGFibGVBY3Rpb25zXHJcbiAgICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRhYmxlIGNvbHVtbiBzY2hlbWEgdG8gZGlzcGxheSB0aGUgbWVldGluZyBhbmQgaXQgZGV0YWlscyBpbiB0YWJ1bGFyIHZpZXcuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBpbml0aWFsaXplQ29sdW1uU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5TY2hlbWEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMSxcclxuICAgICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgaGVhZGluZzogJycsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlNFTEVDVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnNlbGVjdH1gLFxyXG4gICAgICAgIGlzU3RpY2t5Q29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5tZWV0aW5nVGl0bGUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5uYW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5MSU5LLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQubWVldGluZ1RpdGxlfWAsXHJcbiAgICAgICAgaXNTdGlja3lDb2x1bW46IHRydWUsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgICBpc0NvbnRlbnRVbmRlckxpbms6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMyxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lm1lZXRpbmdTdERhdGUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5zdGFydERhdGVBbmRUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHttb21lbnQoZWxlbWVudC5tZWV0aW5nU3REYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICl9PGJyPiR7bW9tZW50KGVsZW1lbnQubWVldGluZ1N0RGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uZW5kRGF0ZUFuZFRpbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5lbmREYXRlQW5kVGltZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7bW9tZW50KGVsZW1lbnQubWVldGluZ0VkRGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50Lm1lZXRpbmdFZERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMudGltZUZvcm1hdFxyXG4gICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDUsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5ncm91cCxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lmdyb3VwLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQuZ3JvdXBOYW1lfWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmxvY2F0aW9uLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubG9jYXRpb24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5tZWV0aW5nTG9jYXRpb259YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA3LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5hY3Rpb24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5hY3Rpb259YCxcclxuICAgICAgICBpc1N0aWNreUVuZENvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgdGhlIGZvcm0gZ3JvdXBcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNyZWF0ZXNFdmVudEZvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudHNGb3JtR3JvdXAgPSB7XHJcbiAgICAgIGZvcm1Hcm91cDogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlZ2VuZDogdGhpcy5zY3JlZW5UZXh0cz8ubGVnZW5kPy5iYXNpY0RldGFpbHMsXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LnJlbGF0ZWRHcm91cCArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3JlbGF0ZWRHcm91cCcsXHJcbiAgICAgICAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLmdyb3VwcyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy5yZWxhdGVkR3JvdXAsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnJlbGF0ZWRHcm91cCxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8ucmVsYXRlZEdyb3VwLFxyXG4gICAgICAgICAgICAgIGlzU2VhcmNoOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlRFWFRfQVJFQSxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmV2ZW50TmFtZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2V2ZW50TmFtZScsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcclxuICAgICAgICAgICAgICAgICAgRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnMubWVldGluZ09yRXZlbnROYW1lT3JGYWNpbGl0YXRvclxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuY2hhcnNMaW1pdC5saW1pdFRvMTUwKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jaGFyc0xpbWl0LmxpbWl0VG8xNTAsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy5ldmVudE5hbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/Lm1lZXRpbmdPckV2ZW50TmFtZSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXQ/LmV2ZW50TmFtZU1heENoYXJzLFxyXG4gICAgICAgICAgICAgIGlzUmVhZG9ubHk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgICAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5ldmVudE5hbWUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmV2ZW50TmFtZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5ldmVudFR5cGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdldmVudFR5cGUnLFxyXG4gICAgICAgICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5ldmVudFR5cGVzLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LmV2ZW50VHlwZSxcclxuICAgICAgICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8uc3VwcG9ydFRleHQ/LmV2ZW50VHlwZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uZXZlbnRUeXBlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5ldmVudFR5cGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnNjcmVlblRleHRzPy5sZWdlbmQ/LmRhdGVBbmRUaW1lLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5EQVRFLFxyXG4gICAgICAgICAgICAgIGRhdGVQaWNrZXI6IHtcclxuICAgICAgICAgICAgICAgIGNhbGVuZGFyVHlwZTogQ2FsZW5kYXJUeXBlLlNJTkdMRV9EQVRFX1NFTEVDVElPTixcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uc3RhcnREYXRlICsgJyonLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LmRhdGUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3N0YXJ0RGF0ZScsXHJcbiAgICAgICAgICAgICAgaXNMYWJlbEFsaWduZWRMZWZ0OiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LnN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uc3RhcnREYXRlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLkRBVEUsXHJcbiAgICAgICAgICAgICAgZGF0ZVBpY2tlcjoge1xyXG4gICAgICAgICAgICAgICAgY2FsZW5kYXJUeXBlOiBDYWxlbmRhclR5cGUuU0lOR0xFX0RBVEVfU0VMRUNUSU9OLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5lbmREYXRlICsgJyonLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LmRhdGUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2VuZERhdGUnLFxyXG4gICAgICAgICAgICAgIGlzTGFiZWxBbGlnbmVkTGVmdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICAgIG1pbkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5pbnZhbGlkRGF0VGltZUVycm9yTWVzc2FnZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uZW5kRGF0ZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZW5kRGF0ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy50aW1lWm9uZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ3RpbWVab25lJyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy50aW1lWm9uZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8udGltZVpvbmUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LnRpbWVab25lLFxyXG4gICAgICAgICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy50aW1lem9uZXMsXHJcbiAgICAgICAgICAgICAgaXNTZWFyY2g6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnNjcmVlblRleHRzPy5sZWdlbmQ/LmxvY2F0aW9uLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hZGRyZXNzLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnYWRkcmVzcycsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEV2ZW50c0FuZE1lZXRpbmdzVmFsaWRhdGlvblBhdHRlcm5zLmFkZHJlc3MpLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jaGFyc0xpbWl0Py5saW1pdFRvMTUwKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uYWRkcmVzcyxcclxuICAgICAgICAgICAgICBtYXhDaGFyQ291bnQ6IHRoaXMuY2hhcnNMaW1pdD8ubGltaXRUbzE1MCxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXQ/LmFkZHJlc3NNYXhDaGFycyxcclxuICAgICAgICAgICAgICBpc1JlYWRvbmx5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBhcmlhTXVsdGlsaW5lOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucGF0dGVybj8uYWRkcmVzcyxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmFkZHJlc3MsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmFkZHJlc3MsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uY291bnRyeSxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2NvdW50cnknLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uY291bnRyeSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmNvdW50cnksXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmNvdW50cnksXHJcbiAgICAgICAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLmNvdW50cmllcyxcclxuICAgICAgICAgICAgICBpc1NlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6IHRoaXMuc2NyZWVuVGV4dHM/LmxlZ2VuZD8uYXR0ZW5kZWVzLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmF0dGVuZGVlc1R5cGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdhdHRlbmRlZXNUeXBlJyxcclxuICAgICAgICAgICAgICBtaW5TZWxlY3Rpb25SZXF1aXJlZDogMSxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMuYXR0ZW5kZWVzVHlwZXMsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5hdHRlbmRlZXNUeXBlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5hdHRlbmRlZXNUeXBlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlZ2VuZDogdGhpcy5zY3JlZW5UZXh0cz8ubGVnZW5kPy5hY2Nlc3MsXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLklOUFVULFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uZXZlbnRQYXNzd29yZCxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2V2ZW50UGFzc3dvcmQnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcclxuICAgICAgICAgICAgICAgICAgRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnMuZXZlbnRQYXNzd29yZFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuY2hhcnNMaW1pdC5saW1pdFRvMjApLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4Q2hhckNvdW50OiB0aGlzLmNoYXJzTGltaXQubGltaXRUbzIwLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uZXZlbnRQYXNzd29yZE1heENoYXJzLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uZXZlbnRQYXNzd29yZCxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/LmV2ZW50UGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5ldmVudFBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5ldmVudFBhc3N3b3JkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlRFWFRfQVJFQSxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmlwQWRkcmVzc1JhbmdlLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnaXBBZGRyZXNzUmFuZ2UnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmlwQWRkcmVzc1JhbmdlVmFsaWRhdG9yKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5saW1pdD8ubm9PZklwQWRkcmVzc1JhbmdlU2V0c1xyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uaXBBZGRyZXNzUmFuZ2UsXHJcbiAgICAgICAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBzdXBwb3J0TWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LnN1cHBvcnRUZXh0Py5pcEFkZHJlc3NSYW5nZUZvcm1hdFRleHQsXHJcbiAgICAgICAgICAgICAgcGF0dGVybkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuPy5pcEFkZHJlc3NSYW5nZSxcclxuICAgICAgICAgICAgICBtYXhFcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ubGltaXQ/Lm5vT2ZJcEFkZHJlc3NSYW5nZVNldHMsXHJcbiAgICAgICAgICAgICAgbWF4UmFuZ2VMaW1pdDogdGhpcy5zY3JlZW5UZXh0cz8ubGltaXQ/Lm5vT2ZJcEFkZHJlc3NSYW5nZVNldHMsXHJcbiAgICAgICAgICAgICAgcmVtYWluaW5nQ2hhcnNMZWZ0TWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmlwQWRkcmVzc1JhbmdlUmVtYWluaW5nLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uaXBBZGRyZXNzUmFuZ2UsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmlwQWRkcmVzc1JhbmdlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlZ2VuZDogdGhpcy5zY3JlZW5UZXh0cz8ubGVnZW5kPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdkZXNjcmlwdGlvbicsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuY2hhcnNMaW1pdC5saW1pdFRvMjAwMCldLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jaGFyc0xpbWl0LmxpbWl0VG8yMDAwLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uZGVzY3JpcHRpb25NYXhDaGFycyxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgICAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuQ0hFQ0tCT1gsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdjcmVkaXRzQXBwbGljYWJsZScsXHJcbiAgICAgICAgICAgICAgY2hlY2tib3hPcHRpb25zOiB0aGlzLnNjcmVlblRleHRzPy5jcmVkaXRzQXBwbGljYWJsZSxcclxuICAgICAgICAgICAgICBzdXBwb3J0TWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8uc3VwcG9ydFRleHQ/LmNyZWRpdHNBcHBsaWNhYmxlLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uY3JlZGl0c0FwcGxpY2FibGUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmNyZWRpdHNBcHBsaWNhYmxlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmb3JtIGNhbmNlbCBldmVudC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybUNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUNhbmNlbC5lbWl0KCk7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbk1vZGFsQ29uZmlnLnByb21wdE1lc3NhZ2UgPVxyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbk1vZGFsVGV4dHM/LnByb21wdE1lc3NhZ2VPbkNhbmNlbDtcclxuICAgIHRoaXMucm91dGVyPy5uYXZpZ2F0ZUJ5VXJsKFxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0Um91dGVQYXRocygpPy5ldmVudHNBbmRNZWV0aW5nc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTG9hZHMgZXZlbnQgdHlwZXMgdXNpbmcgZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRFdmVudFR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldEV2ZW50VHlwZXMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LmZvckVhY2goKGV2ZW50VHlwZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZXM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBldmVudFR5cGU/LmNvbmZpZ0ZpZWxkSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogZXZlbnRUeXBlPy5jb25maWdGaWVsZFZhbHVlPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgJ2V2ZW50VHlwZScsXHJcbiAgICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZXMsXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWY/LlswXVxyXG4gICAgICAgICAgICAuZ2V0KCdldmVudFR5cGUnKVxyXG4gICAgICAgICAgICA/LnNldFZhbHVlKFxyXG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRUeXBlcz8uZmluZChcclxuICAgICAgICAgICAgICAgIChldmVudFR5cGUpID0+XHJcbiAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZS5pZCA9PT0gdGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZXZlbnRUeXBlXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIG1lZXRpbmdzIGNyZWF0ZWQgZm9yIHRoZSBzZWxlY3RlZCBldmVudCBmcm9tIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge0dldE1lZXRpbmdzQnlFdmVudElkUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0TWVldGluZ3NCeUV2ZW50SWQocGF5bG9hZDogR2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0TWVldGluZ3NCeUV2ZW50SWQocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubWVldGluZ3MgPSBbXTtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9XHJcbiAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py50b3RhbFJlY29yZHMgPz8gdGhpcy5tZWV0aW5ncz8ubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcgPSB7IC4uLnRoaXMucGFnaW5hdG9yQ29uZmlnIH07XHJcbiAgICAgICAgICB0aGlzLm1lZXRpbmdzID0gcmVzcG9uc2U/LmJvZHk/Lm1lZXRpbmdzO1xyXG4gICAgICAgICAgdGhpcy5tZWV0aW5ncz8ubWFwKChtZWV0aW5nKSA9PiAobWVldGluZy5jYW5EZWxldGUgPSB0cnVlKSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEFjdGl2ZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRNZXNzYWdlID0gYCR7dGhpcy5zY3JlZW5UZXh0cz8uc2VhcmNoUmVzdWx0TXNnUGFydDF9ICR7dGhpcy5wYWdpbmF0b3JDb25maWc/LnRvdGFsUmVjb3Jkc31cclxuICAgICAgICAgICR7dGhpcy5zY3JlZW5UZXh0cz8uc2VhcmNoUmVzdWx0TXNnUGFydDJ9IFwiPHN0cm9uZz4ke3RoaXMudHJpbW1lZFNlYXJjaFRlcm19PC9zdHJvbmc+XCJgO1xyXG4gICAgICAgICAgdGhpcy5tZWV0aW5ncyA9XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLm1hcE1lZXRpbmdzSW5mb1RvRGF0YVRhYmxlKFxyXG4gICAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py5tZWV0aW5nc1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5ib2R5Py5tZWV0aW5ncz8ubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5tZWV0aW5nRGV0YWlsc1RpdGxlID1cclxuICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5hZGRNZWV0aW5nPy5maXJzdExhYmVsICtcclxuICAgICAgICAgICAgICAnXCInICtcclxuICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5hZGRNZWV0aW5nPy5zZWNvbmRMYWJlbCArXHJcbiAgICAgICAgICAgICAgJ1wiJyArXHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uYWRkTWVldGluZz8ubGFzdExhYmVsO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLm1lZXRpbmdEZXRhaWxzVGl0bGUgPSB0aGlzLmlzQWRkTWVldGluZ0FsbG93ZWRcclxuICAgICAgICAgICAgICA/IHRoaXMuYWRkTWVldGluZz8uZmlyc3RMYWJlbFxyXG4gICAgICAgICAgICAgIDogdGhpcy5hZGRNZWV0aW5nPy5maXJzdExhYmVsV2l0aG91dEFkZEJ0bjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmFibGVzIGFuZCBkaXNhYmxlcyBmb3JtIHN1Ym1pdCBidXR0b24gd2hlbiBjcmVhdGUgb3IgdXBkYXRlIGV2ZW50cyBmb3JtIGNoYW5nZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtR3JvdXBzXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkZvcm1DaGFuZ2UoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIHRoaXMuY2FuRW5hYmxlQWRkTWVldGluZyhmb3JtR3JvdXBzKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldEV2ZW50T3JNZWV0aW5nRm9ybUNoYW5nZVN0YXR1cyhcclxuICAgICAgZm9ybUdyb3Vwcy5zb21lKChmb3JtR3JvdXApID0+IGZvcm1Hcm91cD8uZGlydHkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZm9ybUdyb3Vwcy5zb21lKFxyXG4gICAgICAoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5JTlZBTElEXHJcbiAgICApO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRzRm9ybUdyb3VwLmZvcm1Hcm91cD8uWzFdPy5jb250cm9scz8uWzFdXHJcbiAgICAgICAgPy5kYXRlUGlja2VyXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50c0Zvcm1Hcm91cC5mb3JtR3JvdXBbMV0uY29udHJvbHNbMV0uZGF0ZVBpY2tlci5taW5EYXRlID1cclxuICAgICAgICBmb3JtR3JvdXBzPy5bMV0/LmdldCgnc3RhcnREYXRlJyk/LnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBMb2FkcyBncm91cHMgdXNpbmcgZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRHcm91cHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0R3JvdXBzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBHZXRHcm91cFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXM/LmJvZHk/LmZvckVhY2goKGdyb3VwOiBHcm91cEluZm8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHM/LnB1c2goe1xyXG4gICAgICAgICAgICAgIGlkOiBncm91cD8uZ3JvdXBJZCxcclxuICAgICAgICAgICAgICBuYW1lOiBgJHtncm91cD8uZ3JvdXBOYW1lfSAtICR7Z3JvdXA/Lmdyb3VwQWNyb255bX1gLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgICAncmVsYXRlZEdyb3VwJyxcclxuICAgICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNvcnRPcHRpb25zKHRoaXMuZ3JvdXBzKSxcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzBdXHJcbiAgICAgICAgICAgIC5nZXQoJ3JlbGF0ZWRHcm91cCcpXHJcbiAgICAgICAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgdGhpcy5ncm91cHM/LmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoZ3JvdXApID0+IGdyb3VwLmlkID09PSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5ncm91cElkXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBhbmQgY2FsbHMgY3JlYXRlIGV2ZW50IG1ldGhvZHMuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybSAtQXJyYXkgb2YgZm9ybUdyb3VwXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtU3VibWl0KGZvcm1Hcm91cHM6IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGZvcm1Hcm91cHMuZXZlcnkoXHJcbiAgICAgICAgKGZvcm1Hcm91cDogRm9ybUdyb3VwKSA9PiBmb3JtR3JvdXAuc3RhdHVzID09PSBGb3JtU3RhdHVzLlZBTElEXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuQ1JFQVRFXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRXZlbnQoZm9ybUdyb3Vwcyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVkaXRFdmVudChmb3JtR3JvdXBzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGFrZXMgZXZlbnQgYmFzaWMgZGV0YWlscywgZGF0ZSBhbmQgdGltZSwgbG9jYXRpb24gZGV0YWlscywgYXR0ZW5kZWUgZGV0YWlscywgYWNjZXNzIGRldGFpbHMgZm9ybSBncm91cCBkYXRhIGFuZCBjb21iaW5pbmcgc3RhcnQgZGF0ZSBhbmQgZW5kIGRhdGUgYW5kIGNvbnZlcnRpbmcgdG8gVVRDIGZvcm1hdCBhbmQgcGFzc2luZyBhbGwgdGhlIGZvcm0gZGF0YSBpbiB0aGUgcGF5bG9hZCBvYmplY3QgdG8gY3JlYXRlIGV2ZW50IEFQSSB0byB0aGUgc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm1Hcm91cHNcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBjcmVhdGVFdmVudChmb3JtR3JvdXBzOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXZlbnRCYXNpY0RldGFpbHMgPSBmb3JtR3JvdXBzPy5bMF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBldmVudERhdGVBbmRUaW1lRGV0YWlscyA9IGZvcm1Hcm91cHM/LlsxXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IGV2ZW50TG9jYXRpb25EZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzJdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZXZlbnRBdHRlbmRlZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bM10/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBldmVudEFjY2Vzc0RldGFpbHMgPSBmb3JtR3JvdXBzPy5bNF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgZXZlbnREYXRlQW5kVGltZURldGFpbHM/LnN0YXJ0RGF0ZS5mb3JtYXQoXHJcbiAgICAgICAgRGF0ZUZvcm1hdHMucmVxdWVzdFBheWxvYWRGb3JtYXRcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGVuZERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgZXZlbnREYXRlQW5kVGltZURldGFpbHM/LmVuZERhdGUuZm9ybWF0KERhdGVGb3JtYXRzPy5yZXF1ZXN0UGF5bG9hZEZvcm1hdClcclxuICAgICk7XHJcbiAgICBjb25zdCBjcmVhdGVFdmVudFBheWxvYWQ6IENyZWF0ZU9yRWRpdEV2ZW50UGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50TmFtZTogZXZlbnRCYXNpY0RldGFpbHM/LmV2ZW50TmFtZSxcclxuICAgICAgICBldmVudFR5cGU6IGV2ZW50QmFzaWNEZXRhaWxzPy5ldmVudFR5cGU/LmlkLFxyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA/PyBudWxsLFxyXG4gICAgICAgIGdyb3VwSWQ6IGV2ZW50QmFzaWNEZXRhaWxzPy5yZWxhdGVkR3JvdXA/LmlkLFxyXG4gICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxyXG4gICAgICAgIGVuZERhdGU6IGVuZERhdGUsXHJcbiAgICAgICAgdGltZVpvbmU6IGV2ZW50RGF0ZUFuZFRpbWVEZXRhaWxzPy50aW1lWm9uZT8ubmFtZSxcclxuICAgICAgICBjb3VudHJ5OiBldmVudExvY2F0aW9uRGV0YWlscz8uY291bnRyeT8uaWQsXHJcbiAgICAgICAgZXZlbnRQYXNzd29yZDogZXZlbnRBY2Nlc3NEZXRhaWxzPy5ldmVudFBhc3N3b3JkLFxyXG4gICAgICAgIG9wZW5Gb3JBbGw6IGV2ZW50QXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMF0sXHJcbiAgICAgICAgcmVnaXN0ZXJlZFBhcnRpY2lwYW50czogZXZlbnRBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsyXSxcclxuICAgICAgICBncm91cFBhcnRpY2lwYW50czogZXZlbnRBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsxXSxcclxuICAgICAgICBpcGFkZHJlc3M6IGV2ZW50QWNjZXNzRGV0YWlscz8uaXBBZGRyZXNzUmFuZ2UgPz8gJycsXHJcbiAgICAgICAgbG9jYXRpb246IGV2ZW50TG9jYXRpb25EZXRhaWxzPy5hZGRyZXNzLFxyXG4gICAgICAgIGV2ZW50VGl0bGU6IGV2ZW50QmFzaWNEZXRhaWxzPy5ldmVudE5hbWUsXHJcbiAgICAgICAgZXZlbnREZXNjOiBmb3JtR3JvdXBzPy5bNV0/LmdldFJhd1ZhbHVlKCk/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgIHZpcnR1YWxNZWV0aW5nVXJsOiBldmVudExvY2F0aW9uRGV0YWlscz8udmlydHVhbE1lZXRpbmdVcmwgPz8gJycsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmNyZWF0ZUV2ZW50KGNyZWF0ZUV2ZW50UGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0V2ZW50Q3JlYXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRBY3Rpb25UeXBlID0gRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICAgICAgICAgIHRoaXMuaXNBZGRNZWV0aW5nRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYWRkTWVldGluZ0J1dHRvbikgdGhpcy5hZGRNZWV0aW5nQnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChyZXM/LmJvZHkpXHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldFNlbGVjdGVkRXZlbnRJZChcclxuICAgICAgICAgICAgICAgIE9iamVjdChyZXM/LmJvZHkpPy5pZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZXRTZWxlY3RlZEV2ZW50RGF0YSh7XHJcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiBzdGFydERhdGUsXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogZW5kRGF0ZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybUdyb3VwVmFsdWVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldEV2ZW50T3JNZWV0aW5nRm9ybUNoYW5nZVN0YXR1cyhcclxuICAgICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgQWxlcnRUeXBlPy5TVUNDRVNTLFxyXG4gICAgICAgICAgICAgIGNyZWF0ZUV2ZW50UGF5bG9hZC5wYXlsb2FkLmV2ZW50VGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8uc3VibWlzc2lvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYWxlcnRzIGZvciBzdWNjZXNzLCBlcnJvciBhbmQgd2FybmluZy5cclxuICAgKiBAcGFyYW0geyhzdHJpbmcgfCBzdHJpbmdbXSl9IG1lc3NhZ2UgLXN1Y2Nlc3Mgb3IgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLlxyXG4gICAqIEBwYXJhbSB7QWxlcnRUeXBlfSBhbGVydFR5cGVcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBzaG93QWxlcnRNZXNzYWdlKGFsZXJ0VHlwZTogQWxlcnRUeXBlLCBtZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgYWxlcnRUeXBlOiBhbGVydFR5cGUsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgYXR0ZW5kZWUgdHlwZSBzZWxlY3Rpb24gaW4gZXZlbnQgZm9ybS5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9ufSBhdHRlbmRlZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKFxyXG4gICAgYXR0ZW5kZWVUeXBlOiBDaGVja2JveE9wdGlvbixcclxuICAgIGlzQ2hlY2tib3hDaGFuZ2VkID0gZmFsc2VcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChhdHRlbmRlZVR5cGU/Lm5hbWU/LmluY2x1ZGVzKCdFbmFibGUnKSkgcmV0dXJuO1xyXG4gICAgaWYgKGF0dGVuZGVlVHlwZT8uaWQgPT09IEF0dGVuZGVlVHlwZS5PUEVOX0ZPUl9BTEwpIHtcclxuICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlcz8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgaWYgKGF0dGVuZGVlVHlwZT8uY2hlY2tlZCAmJiBvcHRpb24/LmlkICE9PSBhdHRlbmRlZVR5cGUuaWQpXHJcbiAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIGVsc2UgaWYgKCFhdHRlbmRlZVR5cGU/LmNoZWNrZWQgJiYgb3B0aW9uPy5pZCAhPT0gYXR0ZW5kZWVUeXBlLmlkKVxyXG4gICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgJ2F0dGVuZGVlc1R5cGUnLFxyXG4gICAgICAgICdjaGVja2JveE9wdGlvbnMnLFxyXG4gICAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXMsXHJcbiAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgYXR0ZW5kZWVUeXBlPy5pZCA9PT0gQXR0ZW5kZWVUeXBlLkdST1VQX01FTUJFUlMgfHxcclxuICAgICAgYXR0ZW5kZWVUeXBlPy5pZCA9PT0gQXR0ZW5kZWVUeXBlLlJFR0lTVEVSRURfUEFSVElDSVBBTlRTXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1xyXG4gICAgICAgID8uZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IEF0dGVuZGVlVHlwZS5PUEVOX0ZPUl9BTEwpXHJcbiAgICAgICAgLm1hcCgoZmlsdGVyZWRPcHRpb24pID0+IHtcclxuICAgICAgICAgIGlmIChhdHRlbmRlZVR5cGU/LmNoZWNrZWQpIHJldHVybiAoZmlsdGVyZWRPcHRpb24uZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMuY2FuRW5hYmxlT3BlbkZvckFsbENoZWNrYm94KCkpXHJcbiAgICAgICAgICAgIHJldHVybiAoZmlsdGVyZWRPcHRpb24uZGlzYWJsZWQgPSBmYWxzZSk7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWRPcHRpb247XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAnYXR0ZW5kZWVzVHlwZScsXHJcbiAgICAgICAgJ2NoZWNrYm94T3B0aW9ucycsXHJcbiAgICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlcyxcclxuICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChhdHRlbmRlZVR5cGU/LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXM/LnB1c2goYXR0ZW5kZWVUeXBlLmlkIGFzIHN0cmluZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcyA9IHRoaXMuc2VsZWN0ZWRBdHRlbmRlZVR5cGVzLmZpbHRlcihcclxuICAgICAgICAodmFsdWUpID0+IHZhbHVlICE9PSBhdHRlbmRlZVR5cGUuaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQ3JlYXRlT3JVcGRhdGVFdmVudEZvcm1JbnZhbGlkID1cclxuICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmLnNvbWUoXHJcbiAgICAgICAgKGZvcm1Hcm91cDogRm9ybUdyb3VwKSA9PiBmb3JtR3JvdXAuc3RhdHVzID09PSBGb3JtU3RhdHVzLklOVkFMSURcclxuICAgICAgKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXMubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgIHRoaXMuaXNDcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUludmFsaWRcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKFxyXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWYuc29tZSgoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LmRpcnR5KVxyXG4gICAgKTtcclxuICAgIHRoaXMuaXNBZGRNZWV0aW5nRGlzYWJsZWQgPSBpc0NoZWNrYm94Q2hhbmdlZDtcclxuICAgIGlmICh0aGlzLmFkZE1lZXRpbmdCdXR0b24pXHJcbiAgICAgIHRoaXMuYWRkTWVldGluZ0J1dHRvbi5kaXNhYmxlZCA9IGlzQ2hlY2tib3hDaGFuZ2VkO1xyXG4gICAgdGhpcy5jYW5FbmFibGVBZGRNZWV0aW5nKHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldCBldmVudCBmb3JtIGdyb3VwIHJlZmVyZW5jZS5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0Q3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZihmb3JtOiBGb3JtR3JvdXBbXSkge1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmID0gZm9ybTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIHRoZSBkcm9wZG93biBvcHRpb25zIGFuZCBzaG93IG9wdGlvbnMgcmVsYXRlZCB0byB0aGF0IHNlYXJjaCBzdHJpbmdcclxuICAgKiBAcGFyYW0ge3sgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH19IGRhdGFcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1TZWxlY3RTZWFyY2goZGF0YTogeyBzZWFyY2hFdmVudDogRXZlbnQ7IGNvbnRyb2xOYW1lOiBzdHJpbmcgfSkge1xyXG4gICAgc3dpdGNoIChkYXRhLmNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIGNhc2UgJ3RpbWVab25lJzpcclxuICAgICAgICB0aGlzLnRpbWV6b25lcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0VGltZVpvbmVzLFxyXG4gICAgICAgICAgdGhpcy50aW1lem9uZXNcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICd0aW1lWm9uZScsXHJcbiAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgIHRoaXMudGltZXpvbmVzLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NvdW50cnknOlxyXG4gICAgICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZmlsdGVyT3B0aW9ucyhcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJpZXMsXHJcbiAgICAgICAgICB0aGlzLmNvdW50cmllc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgJ2NvdW50cnknLFxyXG4gICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICB0aGlzLmNvdW50cmllcyxcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyZWxhdGVkR3JvdXAnOlxyXG4gICAgICAgIHRoaXMuZ3JvdXBzID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZmlsdGVyT3B0aW9ucyhcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICB0aGlzLmdyb3VwcyxcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAncmVsYXRlZEdyb3VwJyxcclxuICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgdGhpcy5ncm91cHMsXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tpbmcgZm9yIHVuY2hlY2tlZCBjaGVja2JveCBjb3VudCBleGNlcHQgT1BFTl9GT1JfQUxMXHJcbiAgICogQHJldHVybiB7Kn0gIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlNZWV0aW5nQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY2FuRW5hYmxlT3BlbkZvckFsbENoZWNrYm94KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHVuY2hlY2tlZENvdW50ID0gMDtcclxuICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXM/LmZvckVhY2goKGF0dGVuZGVlVHlwZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgYXR0ZW5kZWVUeXBlPy5pZCAhPT0gQXR0ZW5kZWVUeXBlLk9QRU5fRk9SX0FMTCAmJlxyXG4gICAgICAgICFhdHRlbmRlZVR5cGU/LmNoZWNrZWRcclxuICAgICAgKVxyXG4gICAgICAgIHVuY2hlY2tlZENvdW50Kys7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1bmNoZWNrZWRDb3VudCA9PT0gdGhpcy5hdHRlbmRlZXNUeXBlcz8ubGVuZ3RoIC0gMTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBtb2RhbCB0byBjcmVhdGUgbWVldGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlbkFkZE1lZXRpbmdNb2RhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKGZhbHNlKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldEV2ZW50T3JNZWV0aW5nRm9ybUNoYW5nZVN0YXR1cyhmYWxzZSk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9ICcnO1xyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGluZzogdGhpcy5zY3JlZW5UZXh0cz8ubmV3TWVldGluZyxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBBZGRNZWV0aW5nQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgICBjYW5DbG9zZU1vZGFsOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHdpZHRoOiAnYXV0bycsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLW1vZGFsLWRpYWxvZycsICdpZWVlc2EtYWRkLW1lZXRpbmctZm9ybSddLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8ubW9kYWxDb25maXJtXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZmVyZW5jZSA9XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5vcGVuQ29uZmlybWF0aW9uTW9kYWwoXHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25Nb2RhbENvbmZpZ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgZGlhbG9nUmVmZXJlbmNlXHJcbiAgICAgICAgICAgID8uYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICA/LnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmNhbkNsb3NlQWRkTWVldGluZ01vZGFsJD8ubmV4dChcclxuICAgICAgICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKHRydWUpO1xyXG4gICAgICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0U2VsZWN0ZWRFdmVudElkKCksXHJcbiAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5tZWV0aW5nU3REYXRlLFxyXG4gICAgICAgICAgICBhc2NlbmRpbmdPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBtZWV0aW5ncyBieSBldmVudCBpZCBvbiBjaGFuZ2Ugb2YgdGFibGUgcGFnaW5hdGlvbi5cclxuICAgKiBAcGFyYW0ge3tcclxuICAgKiAgICAgcGFnZU9mZnNldDogbnVtYmVyO1xyXG4gICAqICAgICBwYWdlTGltaXQ6IG51bWJlcjtcclxuICAgKiAgIH19IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NZWV0aW5nc1RhYmxlUGFnZUNoYW5nZShwYWdlRXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRNZWV0aW5nc0J5RXZlbnRJZCh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRTZWxlY3RlZEV2ZW50SWQoKSxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgcGFnZTogcGFnZUV2ZW50LnBhZ2VJbmRleCArIDEsXHJcbiAgICAgICAgc2l6ZTogcGFnZUV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWaWV3IGV2ZW50IGRldGFpbHMgYW5kIGNhbGxzIGdldCBldmVudCBkZXRhaWxzIEFQSSBhbmQgZW1pdHMgdmlldyBldmVudCBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHtldmVudElEfVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG5cclxuICB2aWV3RXZlbnREZXRhaWxzKGV2ZW50SUQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldEV2ZW50RGV0YWlscyhldmVudElEKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRXZlbnREYXRhID0gcmVzPy5ib2R5O1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0U2VsZWN0ZWRFdmVudERhdGEoXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50RGF0YVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkRm9ybUdyb3VwVmFsdWVzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGVkaXQgZXZlbnQgZGV0YWlscyBvbiBnZXQgdmlldyBldmVudCBkZXRhaWxzIEFQSSBjYWxsLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFNlbGVjdGVkRm9ybUdyb3VwVmFsdWVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMF1cclxuICAgICAgLmdldCgncmVsYXRlZEdyb3VwJylcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmdyb3Vwcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gdGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZ3JvdXBJZFxyXG4gICAgICAgICk/LlswXVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMF1cclxuICAgICAgLmdldCgnZXZlbnROYW1lJylcclxuICAgICAgPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5ldmVudE5hbWUpO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMF1cclxuICAgICAgLmdldCgnZXZlbnRUeXBlJylcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmV2ZW50VHlwZXM/LmZpbHRlcihcclxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmV2ZW50VHlwZVxyXG4gICAgICAgICk/LlswXVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMV1cclxuICAgICAgLmdldCgnc3RhcnREYXRlJylcclxuICAgICAgPy5zZXRWYWx1ZShtb21lbnQodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uc3RhcnREYXRlKSk7XHJcbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWY/LlsxXVxyXG4gICAgICAuZ2V0KCdlbmREYXRlJylcclxuICAgICAgPy5zZXRWYWx1ZShtb21lbnQodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZW5kRGF0ZSkpO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMV1cclxuICAgICAgLmdldCgndGltZVpvbmUnKVxyXG4gICAgICA/LnNldFZhbHVlKFxyXG4gICAgICAgIHRoaXMudGltZXpvbmVzPy5maWx0ZXIoXHJcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24/Lm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LnRpbWVab25lXHJcbiAgICAgICAgKVswXVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMl1cclxuICAgICAgLmdldCgnYWRkcmVzcycpXHJcbiAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8ubG9jYXRpb24pO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRFdmVudERhdGEub3BlbkZvckFsbCkge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzBdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMF0pO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50RGF0YS5ncm91cFBhcnRpY2lwYW50cyAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGVkRXZlbnREYXRhLnJlZ2lzdGVyZWRQYXJ0aWNpcGFudHNcclxuICAgICkge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzFdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMV0pO1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzJdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMl0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRXZlbnREYXRhLmdyb3VwUGFydGljaXBhbnRzKSB7XHJcbiAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXNbMV0uY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMub25BdHRlbmRlZVR5cGVTZWxlY3Rpb24odGhpcy5hdHRlbmRlZXNUeXBlc1sxXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzJdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMl0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bM11cclxuICAgICAgLmdldCgnYXR0ZW5kZWVzVHlwZScpXHJcbiAgICAgID8uc2V0VmFsdWUodGhpcy5hdHRlbmRlZXNUeXBlcy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQpKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzJdXHJcbiAgICAgIC5nZXQoJ2NvdW50cnknKVxyXG4gICAgICA/LnNldFZhbHVlKFxyXG4gICAgICAgIHRoaXMuY291bnRyaWVzPy5maWx0ZXIoXHJcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24/LmlkID09PSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5jb3VudHJ5XHJcbiAgICAgICAgKVswXVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bNF1cclxuICAgICAgLmdldCgnZXZlbnRQYXNzd29yZCcpXHJcbiAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZXZlbnRQYXNzd29yZCk7XHJcbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWY/Lls0XVxyXG4gICAgICAuZ2V0KCdpcEFkZHJlc3NSYW5nZScpXHJcbiAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uaXBhZGRyZXNzKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzVdXHJcbiAgICAgIC5nZXQoJ2Rlc2NyaXB0aW9uJylcclxuICAgICAgPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5ldmVudERlc2MpO1xyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0Rm9ybUdyb3VwVmFsdWVzKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgZWRpdCBldmVudCBwYXlsb2FkIGFuZCBjYWxscyBlZGl0IGV2ZW50IEFQSSBhbmQgZW1pdHMgZWRpdCBldmVudCBBUEkgcmVzcG9uc2UuXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtRGF0YVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGVkaXRFdmVudChmb3JtR3JvdXBzOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgZXZlbnRCYXNpY0RldGFpbHMgPSBmb3JtR3JvdXBzPy5bMF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBldmVudERhdGVBbmRUaW1lRGV0YWlscyA9IGZvcm1Hcm91cHM/LlsxXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IGV2ZW50TG9jYXRpb25EZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzJdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZXZlbnRBdHRlbmRlZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bM10/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBldmVudEFjY2Vzc0RldGFpbHMgPSBmb3JtR3JvdXBzPy5bNF0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgZXZlbnREYXRlQW5kVGltZURldGFpbHM/LnN0YXJ0RGF0ZS5mb3JtYXQoXHJcbiAgICAgICAgRGF0ZUZvcm1hdHMucmVxdWVzdFBheWxvYWRGb3JtYXRcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGVuZERhdGUgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5jb252ZXJ0RGF0ZVRpbWVUb1VUQyhcclxuICAgICAgZXZlbnREYXRlQW5kVGltZURldGFpbHM/LmVuZERhdGUuZm9ybWF0KERhdGVGb3JtYXRzPy5yZXF1ZXN0UGF5bG9hZEZvcm1hdClcclxuICAgICk7XHJcbiAgICBjb25zdCBlZGl0RXZlbnRQYXlsb2FkOiBDcmVhdGVPckVkaXRFdmVudFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudE5hbWU6IGV2ZW50QmFzaWNEZXRhaWxzPy5ldmVudE5hbWUsXHJcbiAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID8/IG51bGwsXHJcbiAgICAgICAgZXZlbnRUeXBlOiBldmVudEJhc2ljRGV0YWlscz8uZXZlbnRUeXBlLmlkLFxyXG4gICAgICAgIGdyb3VwSWQ6IGV2ZW50QmFzaWNEZXRhaWxzPy5yZWxhdGVkR3JvdXA/LmlkLFxyXG4gICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxyXG4gICAgICAgIGVuZERhdGU6IGVuZERhdGUsXHJcbiAgICAgICAgdGltZVpvbmU6IGV2ZW50RGF0ZUFuZFRpbWVEZXRhaWxzPy50aW1lWm9uZT8ubmFtZSxcclxuICAgICAgICBjb3VudHJ5OiBldmVudExvY2F0aW9uRGV0YWlscz8uY291bnRyeT8uaWQsXHJcbiAgICAgICAgZXZlbnRQYXNzd29yZDogZXZlbnRBY2Nlc3NEZXRhaWxzPy5ldmVudFBhc3N3b3JkLFxyXG4gICAgICAgIG9wZW5Gb3JBbGw6IGV2ZW50QXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMF0sXHJcbiAgICAgICAgcmVnaXN0ZXJlZFBhcnRpY2lwYW50czogZXZlbnRBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsyXSxcclxuICAgICAgICBncm91cFBhcnRpY2lwYW50czogZXZlbnRBdHRlbmRlZURldGFpbHM/LmF0dGVuZGVlc1R5cGU/LlsxXSxcclxuICAgICAgICBpcGFkZHJlc3M6IGV2ZW50QWNjZXNzRGV0YWlscz8uaXBBZGRyZXNzUmFuZ2UgPz8gJycsXHJcbiAgICAgICAgbG9jYXRpb246IGV2ZW50TG9jYXRpb25EZXRhaWxzPy5hZGRyZXNzLFxyXG4gICAgICAgIGV2ZW50VGl0bGU6IGV2ZW50QmFzaWNEZXRhaWxzPy5ldmVudE5hbWUsXHJcbiAgICAgICAgZXZlbnREZXNjOiBmb3JtR3JvdXBzPy5bNV0/LmdldFJhd1ZhbHVlKCk/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgIHZpcnR1YWxNZWV0aW5nVXJsOiBldmVudExvY2F0aW9uRGV0YWlscz8udmlydHVhbE1lZXRpbmdVcmwgPz8gJycsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmVkaXRFdmVudChlZGl0RXZlbnRQYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLmlzQWRkTWVldGluZ0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFkZE1lZXRpbmdCdXR0b24pIHRoaXMuYWRkTWVldGluZ0J1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEZvcm1Hcm91cFZhbHVlcygpO1xyXG4gICAgICAgICAgICBpZiAocmVzPy5ib2R5KVxyXG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZXRTZWxlY3RlZEV2ZW50SWQoXHJcbiAgICAgICAgICAgICAgICBPYmplY3QocmVzPy5ib2R5KT8uaWRcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0U2VsZWN0ZWRFdmVudERhdGEoe1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgIGVuZERhdGU6IGVuZERhdGUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBlZGl0RXZlbnRQYXlsb2FkLnBheWxvYWQuZXZlbnRUaXRsZSArXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy51cGRhdGlvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNlbGVjdGVkIHRhYmxlIHJvdyBkYXRhLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBnZXRTZWxlY3RlZFJvd0RhdGEocm93OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nID0gcm93O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBjbGlja2VkIG1lZXRpbmcgYWN0aW9uXHJcbiAgICogQHBhcmFtIHtNZW51fSBtZW51XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBoYW5kbGVNZWV0aW5nQWN0aW9ucyhtZW51OiBNZW51KTogdm9pZCB7XHJcbiAgICBpZiAobWVudT8uaWQgPT09IE1lZXRpbmdBY3Rpb24uREVMRVRFX01FRVRJTkcpXHJcbiAgICAgIHRoaXMub3BlbkRlbGV0ZU1lZXRpbmdzQ29uZmlybWF0aW9uTW9kYWwodGhpcy5zZWxlY3RlZE1lZXRpbmcpO1xyXG4gICAgZWxzZSBpZiAobWVudT8uaWQgPT09IE1lZXRpbmdBY3Rpb24uVklFV19NRUVUSU5HKVxyXG4gICAgICB0aGlzLm5hdmlnYXRlVG9FZGl0TWVldGluZ1BhZ2UodGhpcy5zZWxlY3RlZE1lZXRpbmcpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gZWRpdCBtZWV0aW5nIHBhZ2UuXHJcbiAgICogQHBhcmFtIHNlbGVjdGVkTWVldGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmF2aWdhdGVUb0VkaXRNZWV0aW5nUGFnZShzZWxlY3RlZE1lZXRpbmc6IE1lZXRpbmdEZXRhaWxzKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyh0cnVlKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPSBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVDtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkTWVldGluZ0lkID1cclxuICAgICAgc2VsZWN0ZWRNZWV0aW5nPy5tZWV0aW5nSWQ7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uZ2V0Um91dGVQYXRocygpPy5lZGl0TWVldGluZ1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogT3BlbnMgdGhlIGNvbmZpcm1hdGlvbiBtb2RhbCB0byBnZXQgdXNlciBjb25maXJtYXRpb24gdG8gZGVsZXRlIHRoZSBtZWV0aW5ncyBmcm9tIHRoZSBzZWxlY3RlZCBldmVudC5cclxuICAgKiBAcGFyYW0geyp9IHNlbGVjdGVkTWVldGluZ3NcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb3BlbkRlbGV0ZU1lZXRpbmdzQ29uZmlybWF0aW9uTW9kYWwoc2VsZWN0ZWRNZWV0aW5nczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0lkcyA9IFtdO1xyXG4gICAgaWYgKHNlbGVjdGVkTWVldGluZ3M/Lm1lZXRpbmdJZClcclxuICAgICAgdGhpcy5zZWxlY3RlZE1lZXRpbmdJZHM/LnB1c2goc2VsZWN0ZWRNZWV0aW5ncz8ubWVldGluZ0lkKTtcclxuICAgIGVsc2VcclxuICAgICAgc2VsZWN0ZWRNZWV0aW5ncz8uZm9yRWFjaCgobWVldGluZzogTWVldGluZykgPT4ge1xyXG4gICAgICAgIGlmIChtZWV0aW5nPy5tZWV0aW5nSWQpXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0lkcz8ucHVzaChtZWV0aW5nLm1lZXRpbmdJZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgY29uc3QgY29uZmlybWF0aW9uSW5mbyA9IHRoaXMuc2NyZWVuVGV4dHM/LmRlbGV0ZU1lZXRpbmdzPy5jb25maXJtYXRpb25JbmZvO1xyXG4gICAgY29uc3QgZGVsZXRlVXNlckdyb3VwTW9kYWxPcHRpb25zID0ge1xyXG4gICAgICBsZWZ0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LmxlZnRCdXR0b25MYWJlbCxcclxuICAgICAgcmlnaHRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ucmlnaHRCdXR0b25MYWJlbCxcclxuICAgICAgcHJvbXB0TWVzc2FnZTogY29uZmlybWF0aW9uSW5mbz8ucHJvbXB0TWVzc2FnZSxcclxuICAgICAgYWN0aW9uQnV0dG9uQWxpZ246IEFsaWduVHlwZT8uTUlERExFLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkZWxldGVVc2VyR3JvdXBNb2RhbE9wdGlvbnMsXHJcbiAgICAgIGF1dG9Gb2N1czogJ2RpYWxvZycsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5jb25zdGFudHM/LmFyaWFMYWJlbD8uYWxlcnQsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkgdGhpcy5kZWxldGVFdmVudE1lZXRpbmdzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZW5kcyBBUEkgUmVxdWVzdCB0byBkZWxldGUgdGhlIHNlbGVjdGVkIG1lZXRpbmdzIHdpdGhpbiBldmVudCBhbmQgaGFuZGxlcyB0aGUgc3VjY2VzcyBhbmQgZXJyb3IgcmVzcG9uc2Ugb2YgdGhlIGh0dHAgcmVxdWVzdC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRlbGV0ZUV2ZW50TWVldGluZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyh7XHJcbiAgICAgICAgcGF5bG9hZDogdGhpcy5zZWxlY3RlZE1lZXRpbmdJZHMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5nZXRNZWV0aW5nc0J5RXZlbnRJZCh7XHJcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRTZWxlY3RlZEV2ZW50SWQoKSxcclxuICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ubWVldGluZ1RpdGxlLFxyXG4gICAgICAgICAgICAgIGFzY2VuZGluZ09yZGVyOiB0cnVlLFxyXG4gICAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOlxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nSWRzLmxlbmd0aCArXHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uZGVsZXRlTWVldGluZ3M/Lm1lc3NhZ2U/LnN1Y2Nlc3M/LmRlbGV0aW9uLFxyXG4gICAgICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5TVUNDRVNTLFxyXG4gICAgICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgc2VhcmNoIGZpZWxkIG9uIGNsaWNrIG9mIHNlYXJjaCBpY29uIGluIGNhc2Ugb2YgbW9iaWxlIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVldGluZ1NlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGlzU2VhcmNoQWN0aXZlIHRvIHRydWUgYW5kIGxvYWRzIHRoZSBtZWV0aW5ncyAuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVldGluZ3NTZWFyY2hDbGljayhzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChzZWFyY2hUZXJtKSB7XHJcbiAgICAgIHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtLnRyaW0oKTtcclxuICAgICAgdGhpcy5pc1NlYXJjaEFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIGlmICghdGhpcy50cmltbWVkU2VhcmNoVGVybSkgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hSZXN1bHRNZXNzYWdlID0gJyc7XHJcbiAgICAgIHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPSAnJztcclxuICAgICAgdGhpcy5pc1NlYXJjaEFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRNZWV0aW5nc0J5RXZlbnRJZCh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRTZWxlY3RlZEV2ZW50SWQoKSxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ubWVldGluZ1RpdGxlLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiBmYWxzZSxcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzZWFyY2hUZXJtOiBzZWFyY2hUZXJtID8gdGhpcy50cmltbWVkU2VhcmNoVGVybSA6IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLypcclxuICAgKiBHZXRzIHRoZSBtZWV0aW5ncyBiYXNlZCBvbiB0aGUgY29sdW1uIG5hbWUgYW5kIHNvcnQgZGlyZWN0aW9uLlxyXG4gICAqIEBwYXJhbSB7U29ydH0gc29ydFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgb25Tb3J0TWVldGluZyhzb3J0OiBTb3J0KTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4gPSBzb3J0LmFjdGl2ZTtcclxuICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPVxyXG4gICAgICBzb3J0LmRpcmVjdGlvbiA9PT0gVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLkFTQ0VORElORztcclxuICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0U2VsZWN0ZWRFdmVudElkKCksXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNlYXJjaFRlcm06IHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKlxyXG4gICAqIERpc2FibGVzIGFkZCBtZWV0aW5nIGxpbmsvaWNvbiB3aGVuIHRoZSBjdXJyZW50IGZvcm0gdmFsdWUgY2hhbmdlcy5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtR3JvdXBzXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBjYW5FbmFibGVBZGRNZWV0aW5nKGZvcm1Hcm91cHM6IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzQWRkTWVldGluZ0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5hZGRNZWV0aW5nQnV0dG9uKSB0aGlzLmFkZE1lZXRpbmdCdXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IG1vZGlmaWVkRm9ybVZhbHVlcyA9IHRoaXMucHJldmlvdXNGb3JtVmFsdWVzPy5maWx0ZXIoXHJcbiAgICAgIChwcmV2aW91c0Zvcm1Hcm91cDogRm9ybUdyb3VwKSA9PlxyXG4gICAgICAgICFmb3JtR3JvdXBzLnNvbWUoKGN1cnJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1Hcm91cC52YWx1ZSkgPT09XHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHByZXZpb3VzRm9ybUdyb3VwKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICAgIGlmIChtb2RpZmllZEZvcm1WYWx1ZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5pc0FkZE1lZXRpbmdEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLmFkZE1lZXRpbmdCdXR0b24pIHRoaXMuYWRkTWVldGluZ0J1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFN0b3JlcyBmb3JtIGdyb3VwIHZhbHVlcy5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEZvcm1Hcm91cFZhbHVlcygpOiB2b2lkIHtcclxuICAgIHRoaXMucHJldmlvdXNGb3JtVmFsdWVzID0gdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5tYXAoXHJcbiAgICAgIChmb3JtZ3JvdXApID0+IHtcclxuICAgICAgICByZXR1cm4gZm9ybWdyb3VwLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLWNyZWF0ZS11cGRhdGUtZXZlbnQtZm9ybS1jb250YWluZXJcIlxyXG4gIFtuZ0NsYXNzXT1cInNlbGVjdGVkRXZlbnRJZCA/ICdpZWVlc2EtZXZlbnQnIDogJydcIlxyXG4+XHJcbiAgPHAgKm5nSWY9XCJzZWxlY3RlZEV2ZW50SWRcIiBjbGFzcz1cImllZWVzYS10aXRsZS1sZy0yNCBwYi0zIG0tMFwiPlxyXG4gICAge3sgc2NyZWVuVGV4dHM/LmxhYmVsPy5ldmVudERldGFpbHMgfX1cclxuICA8L3A+XHJcbiAgPGllZWVzYS1keW5hbWljLWZvcm1cclxuICAgICpuZ0lmPVwiY3JlYXRlT3JVcGRhdGVFdmVudHNGb3JtR3JvdXBcIlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtY3JlYXRlLXVwZGF0ZS1ldmVudC1mb3JtXCJcclxuICAgIFtsZWZ0QnV0dG9uTGFiZWxdPVwibGVmdEJ1dHRvbkxhYmVsXCJcclxuICAgIFtyaWdodEJ1dHRvbkxhYmVsXT1cInJpZ2h0QnV0dG9uTGFiZWxcIlxyXG4gICAgW2lzTGVnZW5kVmlzaWJsZV09XCJ0cnVlXCJcclxuICAgIFtpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkXT1cImlzU3VibWl0QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgW2NvbFdpZHRoXT1cImNvbFdpZHRoXCJcclxuICAgIFthY3Rpb25CdXR0b25BbGlnbl09XCJhY3Rpb25CdXR0b25BbGlnblwiXHJcbiAgICBbZm9ybUdyb3Vwc109XCJjcmVhdGVPclVwZGF0ZUV2ZW50c0Zvcm1Hcm91cFwiXHJcbiAgICBbaXNMZWZ0QnV0dG9uTmVlZGVkXT1cInRydWVcIlxyXG4gICAgKGZvcm1DaGVja2JveFNlbGVjdGlvbik9XCJvbkF0dGVuZGVlVHlwZVNlbGVjdGlvbigkZXZlbnQsIHRydWUpXCJcclxuICAgIChmb3JtTGVmdEJ1dHRvbkNsaWNrZWQpPVwib25Gb3JtQ2FuY2VsKClcIlxyXG4gICAgKGZvcm1Hcm91cHNSZWZlcmVuY2UpPVwiZ2V0Q3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZigkZXZlbnQpXCJcclxuICAgIChmb3JtU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgkZXZlbnQpXCJcclxuICAgIChmb3JtQ2hhbmdlKT1cIm9uRm9ybUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChmb3JtU2VsZWN0U2VhcmNoKT1cImZvcm1TZWxlY3RTZWFyY2goJGV2ZW50KVwiXHJcbiAgPjwvaWVlZXNhLWR5bmFtaWMtZm9ybT5cclxuXHJcbiAgPHBcclxuICAgIGNsYXNzPVwiaWVlZXNhLXRpdGxlLWxnLTI0IG1iLTAgbXQtM1wiXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBldmVudEFjdGlvblR5cGUgPT09IGV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUIHx8IGlzRXZlbnRDcmVhdGVkXHJcbiAgICBcIlxyXG4gID5cclxuICAgIHt7IHNjcmVlblRleHRzPy5sYWJlbD8ubWVldGluZ0RldGFpbHMgfX1cclxuICA8L3A+XHJcbiAgPHBcclxuICAgIGNsYXNzPVwiaWVlZXNhLWJvZHktbWQtMTQgaWVlZXNhLWFkZC1tZWV0aW5ncy10aXRsZVwiXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICBldmVudEFjdGlvblR5cGUgPT09IGV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUIHx8IGlzRXZlbnRDcmVhdGVkXHJcbiAgICBcIlxyXG4gID5cclxuICAgIHt7IG1lZXRpbmdEZXRhaWxzVGl0bGUgfX1cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbWVldGluZ3M/Lmxlbmd0aCAmJiBpc0FkZE1lZXRpbmdBbGxvd2VkXCJcclxuICAgICAgPlwiPC9uZy1jb250YWluZXJcclxuICAgID5cclxuICAgIDxhXHJcbiAgICAgICpuZ0lmPVwibWVldGluZ3M/Lmxlbmd0aCA9PT0gMCAmJiBpc0FkZE1lZXRpbmdBbGxvd2VkXCJcclxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkFkZE1lZXRpbmdNb2RhbCgpXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnaWVlZXNhLWFkZC1tZWV0aW5nLWxpbmsnOiBpc0FkZE1lZXRpbmdEaXNhYmxlZCB9XCJcclxuICAgICAgPnt7IGFkZE1lZXRpbmdzTGluayB9fTwvYVxyXG4gICAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtZWV0aW5ncz8ubGVuZ3RoICYmIGlzQWRkTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICA+XCI8L25nLWNvbnRhaW5lclxyXG4gICAgPlxyXG4gIDwvcD5cclxuICA8aWVlZXNhLWRhdGEtdGFibGVcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgICgocGFnaW5hdG9yQ29uZmlnPy50b3RhbFJlY29yZHMgJiYgbWVldGluZ3M/Lmxlbmd0aCkgfHwgaXNTZWFyY2hBY3RpdmUpICYmXHJcbiAgICAgIGV2ZW50QWN0aW9uVHlwZSA9PT0gZXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVRcclxuICAgIFwiXHJcbiAgICBjbGFzcz1cImllZWVzYS1tZWV0aW5nc1wiXHJcbiAgICBbdGFibGVEYXRhSW5mb109XCJtZWV0aW5nc1wiXHJcbiAgICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gICAgW3NlYXJjaFBsYWNlSG9sZGVyVGV4dF09XCJzY3JlZW5UZXh0cz8uc2VhcmNoTWVldGluZ1wiXHJcbiAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgIChzZWFyY2hlZFZhbHVlKT1cIm9uTWVldGluZ3NTZWFyY2hDbGljaygkZXZlbnQpXCJcclxuICAgIFt0YWJsZUFjdGlvbnNdPVwibWVldGluZ0FjdGlvbnNcIlxyXG4gICAgW3RhYmxlUm93QWN0aW9uc109XCJzY3JlZW5UZXh0cz8udGFibGVBY3Rpb25zXCJcclxuICAgIFthZGRCdXR0b25dPVwiYWRkTWVldGluZ0J1dHRvblwiXHJcbiAgICBbcGFnaW5hdG9yQ29uZmlnXT1cInBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICBbbGVnZW5kc109XCJtZWV0aW5nTGVnZW5kc1wiXHJcbiAgICAobWVudUFjdGlvbkNsaWNrKT1cImdldFNlbGVjdGVkUm93RGF0YSgkZXZlbnQpXCJcclxuICAgIChzZWxlY3RBY3Rpb25NZW51KT1cImhhbmRsZU1lZXRpbmdBY3Rpb25zKCRldmVudClcIlxyXG4gICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25NZWV0aW5nc1RhYmxlUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChhZGRSb3cpPVwib3BlbkFkZE1lZXRpbmdNb2RhbCgpXCJcclxuICAgIChzb3J0Q2hhbmdlKT1cIm9uU29ydE1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAoc2VsZWN0ZWRSb3dzVG9EZWxldGUpPVwib3BlbkRlbGV0ZU1lZXRpbmdzQ29uZmlybWF0aW9uTW9kYWwoJGV2ZW50KVwiXHJcbiAgICBbc2VhcmNoU3VwcG9ydE1lc3NhZ2VdPVwic3VwcG9ydE1lc3NhZ2VcIlxyXG4gICAgW3NlYXJjaFJlc3VsdE1lc3NhZ2VdPVwic2VhcmNoUmVzdWx0TWVzc2FnZVwiXHJcbiAgICAocm93TGluayk9XCJuYXZpZ2F0ZVRvRWRpdE1lZXRpbmdQYWdlKCRldmVudClcIlxyXG4gID5cclxuICA8L2llZWVzYS1kYXRhLXRhYmxlPlxyXG48L2Rpdj5cclxuIl19
1220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGlmeS1ldmVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtbW9kaWZ5LWV2ZW50L2NyZWF0ZS1tb2RpZnktZXZlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZlbnRzLWFuZC1tZWV0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1ldmVudC9jcmVhdGUtbW9kaWZ5LWV2ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBS1osZUFBZSxFQUVmLFVBQVUsRUFDVixlQUFlLEVBQ2YsMEJBQTBCLEVBRTFCLG9CQUFvQixFQUVwQix3QkFBd0IsRUFDeEIsY0FBYyxFQUVkLGtCQUFrQixFQUVuQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUNMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQs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RUFBRSxFQUFFO1lBQ1osT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBNTJDVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixtTEEwQjVCLG9CQUFvQixnRENsSGpDLDB6R0FzRkEsdXVmREpZLFlBQVksaU9BQUUsb0JBQW9CLDJ2QkFBRSxrQkFBa0I7OzRGQU1yRCw0QkFBNEI7a0JBUnhDLFNBQVM7K0JBQ0UsNEJBQTRCLFdBQzdCLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLGNBQ3JELElBQUksaUJBR0QsaUJBQWlCLENBQUMsSUFBSTtnT0E0Qkosb0JBQW9CO3NCQUFwRCxTQUFTO3VCQUFDLG9CQUFvQjtnQkFDckIsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBBbGlnblR5cGUsXHJcbiAgQ2FsZW5kYXJUeXBlLFxyXG4gIENoZWNrYm94T3B0aW9uLFxyXG4gIEZvcm1HcmlkLFxyXG4gIFBhZ2luYXRvckNvbmZpZyxcclxuICBTZWxlY3RPcHRpb24sXHJcbiAgRm9ybUNvbnRyb2xUeXBlLFxyXG4gIEZvcm1Nb2RlbCxcclxuICBTZWFyY2hUeXBlLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxuICBNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCxcclxuICBNZW51LFxyXG4gIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gIENvbmZpcm1hdGlvbk1vZGFsRGF0YSxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgVGFibGVDb2x1bW5TY2hlbWEsXHJcbiAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIExlZ2VuZFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdzVmFsaWRhdGlvblBhdHRlcm5zIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2Zvcm0tdmFsaWRhdGlvbnMnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudHMtYW5kLW1lZXRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBDb3VudHJ5QW5kVGltZXpvbmVTZXJ2aWNlLFxyXG4gIERlYWN0aXZhdGVDb21wb25lbnQsXHJcbiAgTW9kYWxUeXBlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBGb3JtU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICcuLi8uLi9hc3NldHMvZGF0ZS1mb3JtYXRzJztcclxuaW1wb3J0IHsgR2V0R3JvdXBSZXNwb25zZSwgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLXJlc3BvbnNlLm1vZGVsJztcclxuaW1wb3J0IHsgQ3JlYXRlT3JFZGl0RXZlbnRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NyZWF0ZS1ldmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEF0dGVuZGVlVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRlZS10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBHZXRNZWV0aW5nc0J5RXZlbnRJZFBheWxvYWQsXHJcbiAgTWVldGluZyxcclxuICBNZWV0aW5nRGV0YWlscyxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvbWVldGluZ3MtdW5kZXItZXZlbnRzLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50LW1lZXRpbmctZnVuY3Rpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudERldGFpbHNDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ZpZXctZXZlbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWRkTWVldGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1tZWV0aW5nL2FkZC1tZWV0aW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCBtb21lbnRfIGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1lZXRpbmdBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQtb3ItbWVldGluZy1tZW51LWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcclxuY29uc3QgQ09MVU1OX0RFRiA9IHtcclxuICBtZWV0aW5nVGl0bGU6ICdtZWV0aW5nVGl0bGUnLFxyXG4gIG1lZXRpbmdTdERhdGU6ICdtZWV0aW5nU3REYXRlJyxcclxuICBlbmREYXRlQW5kVGltZTogJ2VuZC1kYXRlLXRpbWUnLFxyXG4gIHRpbWVab25lOiAndGltZS16b25lJyxcclxuICBncm91cDogJ3JlbGF0ZWQtZ3JvdXAnLFxyXG4gIGxvY2F0aW9uOiAnbG9jYXRpb24nLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIGV2ZW50IGNyZWF0aW9uIG9yIG1vZGlmaWNhdGlvbi5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtY3JlYXRlLW1vZGlmeS1ldmVudCcsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHluYW1pY0Zvcm1Db21wb25lbnQsIERhdGFUYWJsZUNvbXBvbmVudF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLW1vZGlmeS1ldmVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW1vZGlmeS1ldmVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBEZWFjdGl2YXRlQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IHNjcmVlblRleHRzO1xyXG4gIGNoYXJzTGltaXQgPSB0aGlzLmNvbnN0YW50cz8uY2hhcmFjdGVyTGltaXRzO1xyXG4gIHNjcmVlblRleHRzID0gdGhpcy5jb25zdGFudHM/LmNyZWF0ZU9yTW9kaWZ5RXZlbnQ7XHJcbiAgYWRkTWVldGluZyA9IHRoaXMuc2NyZWVuVGV4dHM/LmFkZE1lZXRpbmc7XHJcbiAgY29sdW1uSGVhZGluZyA9IHRoaXMuc2NyZWVuVGV4dHM/LmNvbHVtblNjaGVtYT8uaGVhZGluZztcclxuICBsZWZ0QnV0dG9uTGFiZWwgPSB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ubGVmdEJ1dHRvbkxhYmVsO1xyXG4gIHJpZ2h0QnV0dG9uTGFiZWwgPSB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ucmlnaHRCdXR0b25MYWJlbDtcclxuICBtZWV0aW5nRGV0YWlsc1RpdGxlID0gdGhpcy5hZGRNZWV0aW5nPy5maXJzdExhYmVsO1xyXG4gIGFkZE1lZXRpbmdzTGluayA9IHRoaXMuYWRkTWVldGluZz8uYWRkTWVldGluZ3NMaW5rO1xyXG4gIGlzU3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gIGNvbFdpZHRoOiBGb3JtR3JpZCA9IHsgeHM6IDEyLCB4bDogMTIsIHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIgfTtcclxuICBtZWV0aW5nczogTWVldGluZ1tdID0gW107XHJcbiAgY3JlYXRlT3JVcGRhdGVFdmVudHNGb3JtR3JvdXAhOiBGb3JtTW9kZWw7XHJcbiAgYWN0aW9uQnV0dG9uQWxpZ24gPSBBbGlnblR5cGUuTEVGVDtcclxuICBldmVudFR5cGVzOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIHNlbGVjdGVkQXR0ZW5kZWVUeXBlczogc3RyaW5nW10gPSBbXTtcclxuICBpc0NyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtSW52YWxpZCA9IGZhbHNlO1xyXG4gIGNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWYhOiBGb3JtR3JvdXBbXTtcclxuICBhdHRlbmRlZXNUeXBlczogQ2hlY2tib3hPcHRpb25bXSA9IHRoaXMuY29uc3RhbnRzPy5hdHRlbmRlZXNUeXBlO1xyXG4gIEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1Db21wb25lbnQpIGR5bmFtaWNGb3JtQ29tcG9uZW50ITogRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZ3JvdXBzOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGNvdW50cmllcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIHNlbGVjdGVkRXZlbnRJZCE6IHN0cmluZztcclxuICBldmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUgPSBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGU7XHJcbiAgc2VsZWN0ZWRFdmVudERhdGEhOiBFdmVudERldGFpbHNDb25maWd1cmF0aW9uO1xyXG4gIHRpbWV6b25lcyE6IFNlbGVjdE9wdGlvbltdO1xyXG4gIGNvbHVtblNjaGVtYSE6IFRhYmxlQ29sdW1uU2NoZW1hW107XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy5zY3JlZW5UZXh0cz8ucGFnZVNpemVPcHRpb25zPy5bMV0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMuc2NyZWVuVGV4dHM/LnBhZ2VTaXplT3B0aW9ucyxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICB9O1xyXG4gIGRlZmF1bHRUaW1lWm9uZXMhOiBTZWxlY3RPcHRpb25bXTtcclxuICBkZWZhdWx0Q291bnRyaWVzITogU2VsZWN0T3B0aW9uW107XHJcbiAgbWVldGluZ0FjdGlvbnMgPSB7XHJcbiAgICBpc0FkZE5lZWRlZDogdHJ1ZSxcclxuICAgIGlzRGVsZXRlTmVlZGVkOiB0cnVlLFxyXG4gICAgaXNTZWFyY2hOZWVkZWQ6IHRydWUsXHJcbiAgICBpc0ZpbHRlck5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0VkaXROZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNQYWdpbmF0aW9uTmVlZGVkOiB0cnVlLFxyXG4gIH07XHJcbiAgZXZlbnRBY3Rpb25UeXBlITogRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlO1xyXG4gIGlzRXZlbnRDcmVhdGVkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRNZWV0aW5nSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlcnZlckN1cnJlbnREYXRlITogc3RyaW5nO1xyXG4gIGlzQWRkTWVldGluZ0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgdHJpbW1lZFNlYXJjaFRlcm0gPSAnJztcclxuICBzZWFyY2hSZXN1bHRNZXNzYWdlITogc3RyaW5nO1xyXG4gIGlzU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZSA9IFNlYXJjaFR5cGUuT05fQ0xJQ0s7XHJcbiAgc3VwcG9ydE1lc3NhZ2UhOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFNvcnRlZENvbHVtbiA9ICdtZWV0aW5nU3REYXRlJztcclxuICBkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbiA9IGZhbHNlO1xyXG4gIGFkZE1lZXRpbmdCdXR0b24gPSB0aGlzLnNjcmVlblRleHRzPy5idXR0b25zPy5bMF07XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBzZWxlY3RlZE1lZXRpbmc6IGFueTtcclxuICBpc0FkZE1lZXRpbmdBbGxvd2VkID0gZmFsc2U7XHJcbiAgY29uZmlybWF0aW9uTW9kYWxUZXh0cyA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8uY3JlYXRlTW9kaWZ5RXZlbnRPck1lZXRpbmdcclxuICAgICAgPy51bnNhdmVkRm9ybUNoYW5nZXNDb25maXJtYXRpb25EaWFsb2dPcHRpb25zO1xyXG4gIGNvbmZpcm1hdGlvbk1vZGFsQ29uZmlnITogQ29uZmlybWF0aW9uTW9kYWxEYXRhO1xyXG4gIG1lZXRpbmdMZWdlbmRzOiBMZWdlbmRbXSA9IHRoaXMuY29uc3RhbnRzPy5ldmVudE9yTWVldGluZ0xlZ2VuZHM7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcmV2aW91c0Zvcm1WYWx1ZXM6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGV2ZW50c0FuZE1lZXRpbmdzU2VydmljZTogRXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGNvdW50cnlBbmRUaW1lem9uZVNlcnZpY2U6IENvdW50cnlBbmRUaW1lem9uZVNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgdGhpcy5jb3VudHJpZXMgPSB0aGlzLmRlZmF1bHRDb3VudHJpZXMgPVxyXG4gICAgICB0aGlzLmNvdW50cnlBbmRUaW1lem9uZVNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCk7XHJcbiAgICB0aGlzLnRpbWV6b25lcyA9IHRoaXMuZGVmYXVsdFRpbWVab25lcyA9XHJcbiAgICAgIHRoaXMuY291bnRyeUFuZFRpbWV6b25lU2VydmljZS5nZXRVVENUaW1lem9uZU9wdGlvbnMoKTtcclxuICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXMubWFwKChhdHRlbmRlZSkgPT4ge1xyXG4gICAgICBhdHRlbmRlZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIGF0dGVuZGVlLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcnMgY29uZmlybWF0aW9uIG1vZGFsIHdoaWxlIGxlYXZpbmcgdW5zYXZlZCBmb3JtLlxyXG4gICAqIEByZXR1cm4geyhib29sZWFuXHJcbiAgICogICAgIHwgVXJsVHJlZVxyXG4gICAqICAgICB8IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+XHJcbiAgICogICAgIHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4pfVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY2FuRGVhY3RpdmF0ZSgpOlxyXG4gICAgfCBib29sZWFuXHJcbiAgICB8IFVybFRyZWVcclxuICAgIHwgT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT5cclxuICAgIHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4ge1xyXG4gICAgaWYgKHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5nZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoKSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5vcGVuQ29uZmlybWF0aW9uTW9kYWwoXHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25Nb2RhbENvbmZpZ1xyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY/LmFmdGVyQ2xvc2VkKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgY29sdW1uIHNjaGVtYSwgZ3JvdXBzLCBtZWV0aW5ncyBjcmVhdGVkIHVuZGVyIGV2ZW50cywgZXZlbnQgdHlwZXMgYW5kIGNyZWF0ZXMgZm9ybSBncm91cC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZWV0aW5nQWN0aW9ucy5pc0RlbGV0ZU5lZWRlZCA9XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIFBlcm1pc3Npb25UeXBlLkRFTEVURV9NRUVUSU5HXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmZpbHRlck1lZXRpbmdUYWJsZUFjdGlvbnMoKTtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uTW9kYWxDb25maWcgPSB7XHJcbiAgICAgIGxlZnRCdXR0b25MYWJlbDogdGhpcy5jb25maXJtYXRpb25Nb2RhbFRleHRzPy5sZWZ0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHJpZ2h0QnV0dG9uTGFiZWw6IHRoaXMuY29uZmlybWF0aW9uTW9kYWxUZXh0cz8ucmlnaHRCdXR0b25MYWJlbCxcclxuICAgICAgcHJvbXB0TWVzc2FnZTogdGhpcy5jb25maXJtYXRpb25Nb2RhbFRleHRzPy5wcm9tcHRNZXNzYWdlLFxyXG4gICAgICBhY3Rpb25CdXR0b25BbGlnbjogQWxpZ25UeXBlLk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uY2FuQ2xvc2VBZGRNZWV0aW5nTW9kYWwkPy5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtblNjaGVtYSgpO1xyXG4gICAgdGhpcy5nZXRHcm91cHMoKTtcclxuICAgIHRoaXMuZ2V0RXZlbnRUeXBlcygpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEV2ZW50SWQgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2VsZWN0ZWRFdmVudElkO1xyXG4gICAgdGhpcy5zdXBwb3J0TWVzc2FnZSA9IHRoaXMuc2NyZWVuVGV4dHM/LnN1cHBvcnRNZXNzYWdlO1xyXG4gICAgdGhpcy5jcmVhdGVzRXZlbnRGb3JtR3JvdXAoKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9PT1cclxuICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICkge1xyXG4gICAgICB0aGlzLmV2ZW50QWN0aW9uVHlwZSA9IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgICB0aGlzLmdldE1lZXRpbmdzQnlFdmVudElkKHtcclxuICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRTZWxlY3RlZEV2ZW50SWQoKSxcclxuICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5tZWV0aW5nU3REYXRlLFxyXG4gICAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgICAgcGFnZTogMSxcclxuICAgICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy52aWV3RXZlbnREZXRhaWxzKHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZWxlY3RlZEV2ZW50SWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0FkZE1lZXRpbmdBbGxvd2VkID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICBQZXJtaXNzaW9uVHlwZS5DUkVBVEVfTUVFVElOR1xyXG4gICAgKTtcclxuICAgIHRoaXMubWVldGluZ0FjdGlvbnMuaXNBZGROZWVkZWQgPSB0aGlzLmlzQWRkTWVldGluZ0FsbG93ZWQ7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkNSRUFURSAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGVkRXZlbnRJZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldFNlbGVjdGVkRXZlbnRJZCgpLFxyXG4gICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/Lm1lZXRpbmdTdERhdGUsXHJcbiAgICAgICAgICBhc2NlbmRpbmdPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmV2ZW50QWN0aW9uVHlwZSA9IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgICB0aGlzLnZpZXdFdmVudERldGFpbHModGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNlbGVjdGVkRXZlbnRJZCk7XHJcbiAgICAgIHRoaXMub3BlbkFkZE1lZXRpbmdNb2RhbCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmNhbkNsb3NlQWRkTWVldGluZ01vZGFsJFxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSAmJiB0aGlzLmRpYWxvZ1JlZikge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uY2FuQ2xvc2VBZGRNZWV0aW5nTW9kYWwkPy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaWx0ZXJzIHRoZSBtZWV0aW5nIHRhYmxlIG1lbnUgYWN0aW9ucyBiYXNlZCBvbiBtZWV0aW5ncyBwZXJtaXNzaW9uLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZmlsdGVyTWVldGluZ1RhYmxlQWN0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNjcmVlblRleHRzPy50YWJsZUFjdGlvbnMpXHJcbiAgICAgIHRoaXMuc2NyZWVuVGV4dHMudGFibGVBY3Rpb25zID1cclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRGaWx0ZXJlZE1lZXRpbmdBY3Rpb25zKFxyXG4gICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cy50YWJsZUFjdGlvbnNcclxuICAgICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGFibGUgY29sdW1uIHNjaGVtYSB0byBkaXNwbGF5IHRoZSBtZWV0aW5nIGFuZCBpdCBkZXRhaWxzIGluIHRhYnVsYXIgdmlldy5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGluaXRpYWxpemVDb2x1bW5TY2hlbWEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLlNFTEVDVCxcclxuICAgICAgICBoZWFkaW5nOiAnJyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuU0VMRUNULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQuc2VsZWN0fWAsXHJcbiAgICAgICAgaXNTdGlja3lDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lm1lZXRpbmdUaXRsZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lm5hbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkxJTkssXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5tZWV0aW5nVGl0bGV9YCxcclxuICAgICAgICBpc1N0aWNreUNvbHVtbjogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICAgIGlzQ29udGVudFVuZGVyTGluazogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAzLFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubWVldGluZ1N0RGF0ZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LnN0YXJ0RGF0ZUFuZFRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke21vbWVudChlbGVtZW50Lm1lZXRpbmdTdERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgKX08YnI+JHttb21lbnQoZWxlbWVudC5tZWV0aW5nU3REYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICl9YCxcclxuICAgICAgICBpc0hUTUxDZWxsRGF0YTogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDQsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5lbmREYXRlQW5kVGltZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmVuZERhdGVBbmRUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHttb21lbnQoZWxlbWVudC5tZWV0aW5nRWREYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICl9PGJyPiR7bW9tZW50KGVsZW1lbnQubWVldGluZ0VkRGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lmdyb3VwLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZ3JvdXAsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5ncm91cE5hbWV9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA2LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubG9jYXRpb24sXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5sb2NhdGlvbixcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm1lZXRpbmdMb2NhdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDcsXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmFjdGlvbixcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmFjdGlvbn1gLFxyXG4gICAgICAgIGlzU3RpY2t5RW5kQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyB0aGUgZm9ybSBncm91cFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlc0V2ZW50Rm9ybUdyb3VwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50c0Zvcm1Hcm91cCA9IHtcclxuICAgICAgZm9ybUdyb3VwOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnNjcmVlblRleHRzPy5sZWdlbmQ/LmJhc2ljRGV0YWlscyxcclxuICAgICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ucmVsYXRlZEdyb3VwICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAncmVsYXRlZEdyb3VwJyxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuZ3JvdXBzLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LnJlbGF0ZWRHcm91cCxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8ucmVsYXRlZEdyb3VwLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5yZWxhdGVkR3JvdXAsXHJcbiAgICAgICAgICAgICAgaXNTZWFyY2g6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uZXZlbnROYW1lICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnZXZlbnROYW1lJyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFxyXG4gICAgICAgICAgICAgICAgICBFdmVudHNBbmRNZWV0aW5nc1ZhbGlkYXRpb25QYXR0ZXJucy5tZWV0aW5nT3JFdmVudE5hbWVPckZhY2lsaXRhdG9yXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jaGFyc0xpbWl0LmxpbWl0VG8xNTApLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgbWF4Q2hhckNvdW50OiB0aGlzLmNoYXJzTGltaXQubGltaXRUbzE1MCxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LmV2ZW50TmFtZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucGF0dGVybj8ubWVldGluZ09yRXZlbnROYW1lLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uZXZlbnROYW1lTWF4Q2hhcnMsXHJcbiAgICAgICAgICAgICAgaXNSZWFkb25seTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmV2ZW50TmFtZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uZXZlbnROYW1lLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmV2ZW50VHlwZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2V2ZW50VHlwZScsXHJcbiAgICAgICAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLmV2ZW50VHlwZXMsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uZXZlbnRUeXBlLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLnNjcmVlblRleHRzPy5zdXBwb3J0VGV4dD8uZXZlbnRUeXBlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5ldmVudFR5cGUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmV2ZW50VHlwZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6IHRoaXMuc2NyZWVuVGV4dHM/LmxlZ2VuZD8uZGF0ZUFuZFRpbWUsXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLkRBVEUsXHJcbiAgICAgICAgICAgICAgZGF0ZVBpY2tlcjoge1xyXG4gICAgICAgICAgICAgICAgY2FsZW5kYXJUeXBlOiBDYWxlbmRhclR5cGUuU0lOR0xFX0RBVEVfU0VMRUNUSU9OLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5zdGFydERhdGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uZGF0ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnc3RhcnREYXRlJyxcclxuICAgICAgICAgICAgICBpc0xhYmVsQWxpZ25lZExlZnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICByZXF1aXJlZEVycm9yTWVzc2FnZTogdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uc3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5zdGFydERhdGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuREFURSxcclxuICAgICAgICAgICAgICBkYXRlUGlja2VyOiB7XHJcbiAgICAgICAgICAgICAgICBjYWxlbmRhclR5cGU6IENhbGVuZGFyVHlwZS5TSU5HTEVfREFURV9TRUxFQ1RJT04sXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmVuZERhdGUgKyAnKicsXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uZGF0ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnZW5kRGF0ZScsXHJcbiAgICAgICAgICAgICAgaXNMYWJlbEFsaWduZWRMZWZ0OiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgbWluRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmludmFsaWREYXRUaW1lRXJyb3JNZXNzYWdlLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5lbmREYXRlLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5lbmREYXRlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlNFTEVDVCxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LnRpbWVab25lICsgJyonLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAndGltZVpvbmUnLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5zY3JlZW5UZXh0cz8ucGxhY2Vob2xkZXI/LnRpbWVab25lLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy50aW1lWm9uZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8udGltZVpvbmUsXHJcbiAgICAgICAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLnRpbWV6b25lcyxcclxuICAgICAgICAgICAgICBpc1NlYXJjaDogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZWdlbmQ6IHRoaXMuc2NyZWVuVGV4dHM/LmxlZ2VuZD8ubG9jYXRpb24sXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLlRFWFRfQVJFQSxcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFkZHJlc3MsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdhZGRyZXNzJyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oRXZlbnRzQW5kTWVldGluZ3NWYWxpZGF0aW9uUGF0dGVybnMuYWRkcmVzcyksXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmNoYXJzTGltaXQ/LmxpbWl0VG8xNTApLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy5hZGRyZXNzLFxyXG4gICAgICAgICAgICAgIG1heENoYXJDb3VudDogdGhpcy5jaGFyc0xpbWl0Py5saW1pdFRvMTUwLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8uYWRkcmVzc01heENoYXJzLFxyXG4gICAgICAgICAgICAgIGlzUmVhZG9ubHk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFyaWFNdWx0aWxpbmU6IHRydWUsXHJcbiAgICAgICAgICAgICAgaXNSZXNpemU6IHRydWUsXHJcbiAgICAgICAgICAgICAgcGF0dGVybkVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5wYXR0ZXJuPy5hZGRyZXNzLFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uYWRkcmVzcyxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uYWRkcmVzcyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5jb3VudHJ5LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnY291bnRyeScsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy5jb3VudHJ5LFxyXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFMYWJlbD8uY291bnRyeSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uY291bnRyeSxcclxuICAgICAgICAgICAgICBkcm9wZG93bk9wdGlvbnM6IHRoaXMuY291bnRyaWVzLFxyXG4gICAgICAgICAgICAgIGlzU2VhcmNoOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlZ2VuZDogdGhpcy5zY3JlZW5UZXh0cz8ubGVnZW5kPy5hdHRlbmRlZXMsXHJcbiAgICAgICAgICBjb250cm9sczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogRm9ybUNvbnRyb2xUeXBlLkNIRUNLQk9YLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXR0ZW5kZWVzVHlwZSArICcqJyxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2F0dGVuZGVlc1R5cGUnLFxyXG4gICAgICAgICAgICAgIG1pblNlbGVjdGlvblJlcXVpcmVkOiAxLFxyXG4gICAgICAgICAgICAgIGNoZWNrYm94T3B0aW9uczogdGhpcy5hdHRlbmRlZXNUeXBlcyxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmF0dGVuZGVlc1R5cGUsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmF0dGVuZGVlc1R5cGUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWRFcnJvck1lc3NhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5yZXF1aXJlZCxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnNjcmVlblRleHRzPy5sZWdlbmQ/LmFjY2VzcyxcclxuICAgICAgICAgIGNvbnRyb2xzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuSU5QVVQsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5ldmVudFBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xOYW1lOiAnZXZlbnRQYXNzd29yZCcsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFxyXG4gICAgICAgICAgICAgICAgICBFdmVudHNBbmRNZWV0aW5nc1ZhbGlkYXRpb25QYXR0ZXJucy5ldmVudFBhc3N3b3JkXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jaGFyc0xpbWl0LmxpbWl0VG8yMCksXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICBtYXhDaGFyQ291bnQ6IHRoaXMuY2hhcnNMaW1pdC5saW1pdFRvMjAsXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0Py5ldmVudFBhc3N3b3JkTWF4Q2hhcnMsXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy5ldmVudFBhc3N3b3JkLFxyXG4gICAgICAgICAgICAgIHBhdHRlcm5FcnJvck1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5tZXNzYWdlPy5lcnJvcj8ucGF0dGVybj8uZXZlbnRQYXNzd29yZCxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmV2ZW50UGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgYXJpYURlc2NyaWJlZEJ5SWQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYURlc2NyaWJlZEJ5SWQ/LmV2ZW50UGFzc3dvcmQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBGb3JtQ29udHJvbFR5cGUuVEVYVF9BUkVBLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uaXBBZGRyZXNzUmFuZ2UsXHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWU6ICdpcEFkZHJlc3NSYW5nZScsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaXBBZGRyZXNzUmFuZ2VWYWxpZGF0b3IoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxpbWl0Py5ub09mSXBBZGRyZXNzUmFuZ2VTZXRzXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuc2NyZWVuVGV4dHM/LnBsYWNlaG9sZGVyPy5pcEFkZHJlc3NSYW5nZSxcclxuICAgICAgICAgICAgICBhcmlhTXVsdGlsaW5lOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGlzUmVzaXplOiB0cnVlLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uc3VwcG9ydFRleHQ/LmlwQWRkcmVzc1JhbmdlRm9ybWF0VGV4dCxcclxuICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LnBhdHRlcm4/LmlwQWRkcmVzc1JhbmdlLFxyXG4gICAgICAgICAgICAgIG1heEVycm9yTWVzc2FnZTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LmVycm9yPy5saW1pdD8ubm9PZklwQWRkcmVzc1JhbmdlU2V0cyxcclxuICAgICAgICAgICAgICBtYXhSYW5nZUxpbWl0OiB0aGlzLnNjcmVlblRleHRzPy5saW1pdD8ubm9PZklwQWRkcmVzc1JhbmdlU2V0cyxcclxuICAgICAgICAgICAgICByZW1haW5pbmdDaGFyc0xlZnRNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uaXBBZGRyZXNzUmFuZ2VSZW1haW5pbmcsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5pcEFkZHJlc3NSYW5nZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uaXBBZGRyZXNzUmFuZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnNjcmVlblRleHRzPy5sZWdlbmQ/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgY29udHJvbHM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5URVhUX0FSRUEsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2Rlc2NyaXB0aW9uJyxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBbVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jaGFyc0xpbWl0LmxpbWl0VG8yMDAwKV0sXHJcbiAgICAgICAgICAgICAgbWF4Q2hhckNvdW50OiB0aGlzLmNoYXJzTGltaXQubGltaXRUbzIwMDAsXHJcbiAgICAgICAgICAgICAgbWF4RXJyb3JNZXNzYWdlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uZXJyb3I/LmxpbWl0Py5kZXNjcmlwdGlvbk1heENoYXJzLFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnNjcmVlblRleHRzPy5wbGFjZWhvbGRlcj8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgYXJpYU11bHRpbGluZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBpc1Jlc2l6ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhTGFiZWw/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIGFyaWFEZXNjcmliZWRCeUlkOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/LmFyaWFEZXNjcmliZWRCeUlkPy5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IEZvcm1Db250cm9sVHlwZS5DSEVDS0JPWCxcclxuICAgICAgICAgICAgICBjb250cm9sTmFtZTogJ2NyZWRpdHNBcHBsaWNhYmxlJyxcclxuICAgICAgICAgICAgICBjaGVja2JveE9wdGlvbnM6IHRoaXMuc2NyZWVuVGV4dHM/LmNyZWRpdHNBcHBsaWNhYmxlLFxyXG4gICAgICAgICAgICAgIHN1cHBvcnRNZXNzYWdlOiB0aGlzLnNjcmVlblRleHRzPy5zdXBwb3J0VGV4dD8uY3JlZGl0c0FwcGxpY2FibGUsXHJcbiAgICAgICAgICAgICAgYXJpYUxhYmVsOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8uYXJpYUxhYmVsPy5jcmVkaXRzQXBwbGljYWJsZSxcclxuICAgICAgICAgICAgICBhcmlhRGVzY3JpYmVkQnlJZDpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmxhYmVsPy5hcmlhRGVzY3JpYmVkQnlJZD8uY3JlZGl0c0FwcGxpY2FibGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZvcm0gY2FuY2VsIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2FuY2VsLmVtaXQoKTtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uTW9kYWxDb25maWcucHJvbXB0TWVzc2FnZSA9XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uTW9kYWxUZXh0cz8ucHJvbXB0TWVzc2FnZU9uQ2FuY2VsO1xyXG4gICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwoXHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5nZXRSb3V0ZVBhdGhzKCk/LmV2ZW50c0FuZE1lZXRpbmdzXHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBMb2FkcyBldmVudCB0eXBlcyB1c2luZyBldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEV2ZW50VHlwZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0RXZlbnRUeXBlcygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXNwb25zZT8uYm9keT8uZm9yRWFjaCgoZXZlbnRUeXBlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRUeXBlcz8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgaWQ6IGV2ZW50VHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICAgICAgICBuYW1lOiBldmVudFR5cGU/LmNvbmZpZ0ZpZWxkVmFsdWU/LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgICAnZXZlbnRUeXBlJyxcclxuICAgICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRUeXBlcyxcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzBdXHJcbiAgICAgICAgICAgIC5nZXQoJ2V2ZW50VHlwZScpXHJcbiAgICAgICAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudFR5cGVzPy5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGV2ZW50VHlwZSkgPT5cclxuICAgICAgICAgICAgICAgICAgZXZlbnRUeXBlLmlkID09PSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5ldmVudFR5cGVcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgY3JlYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGV2ZW50IGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7R2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRNZWV0aW5nc0J5RXZlbnRJZChwYXlsb2FkOiBHZXRNZWV0aW5nc0J5RXZlbnRJZFBheWxvYWQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRNZWV0aW5nc0J5RXZlbnRJZChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZWV0aW5ncyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcudG90YWxSZWNvcmRzID1cclxuICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LnRvdGFsUmVjb3JkcyA/PyB0aGlzLm1lZXRpbmdzPy5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZyA9IHsgLi4udGhpcy5wYWdpbmF0b3JDb25maWcgfTtcclxuICAgICAgICAgIHRoaXMubWVldGluZ3MgPSByZXNwb25zZT8uYm9keT8ubWVldGluZ3M7XHJcbiAgICAgICAgICB0aGlzLm1lZXRpbmdzPy5tYXAoKG1lZXRpbmcpID0+IChtZWV0aW5nLmNhbkRlbGV0ZSA9IHRydWUpKTtcclxuICAgICAgICAgIGlmICh0aGlzLmlzU2VhcmNoQWN0aXZlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdE1lc3NhZ2UgPSBgJHt0aGlzLnNjcmVlblRleHRzPy5zZWFyY2hSZXN1bHRNc2dQYXJ0MX0gJHt0aGlzLnBhZ2luYXRvckNvbmZpZz8udG90YWxSZWNvcmRzfVxyXG4gICAgICAgICAgJHt0aGlzLnNjcmVlblRleHRzPy5zZWFyY2hSZXN1bHRNc2dQYXJ0Mn0gXCI8c3Ryb25nPiR7dGhpcy50cmltbWVkU2VhcmNoVGVybX08L3N0cm9uZz5cImA7XHJcbiAgICAgICAgICB0aGlzLm1lZXRpbmdzID1cclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UubWFwTWVldGluZ3NJbmZvVG9EYXRhVGFibGUoXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHk/Lm1lZXRpbmdzXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LmJvZHk/Lm1lZXRpbmdzPy5sZW5ndGggPiAwIHx8IHRoaXMuaXNTZWFyY2hBY3RpdmUpXHJcbiAgICAgICAgICAgIHRoaXMubWVldGluZ0RldGFpbHNUaXRsZSA9XHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uYWRkTWVldGluZz8uZmlyc3RMYWJlbCArXHJcbiAgICAgICAgICAgICAgJ1wiJyArXHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uYWRkTWVldGluZz8uc2Vjb25kTGFiZWwgK1xyXG4gICAgICAgICAgICAgICdcIicgK1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmFkZE1lZXRpbmc/Lmxhc3RMYWJlbDtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5tZWV0aW5nRGV0YWlsc1RpdGxlID0gdGhpcy5pc0FkZE1lZXRpbmdBbGxvd2VkXHJcbiAgICAgICAgICAgICAgPyB0aGlzLmFkZE1lZXRpbmc/LmZpcnN0TGFiZWxcclxuICAgICAgICAgICAgICA6IHRoaXMuYWRkTWVldGluZz8uZmlyc3RMYWJlbFdpdGhvdXRBZGRCdG47XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlcyBhbmQgZGlzYWJsZXMgZm9ybSBzdWJtaXQgYnV0dG9uIHdoZW4gY3JlYXRlIG9yIHVwZGF0ZSBldmVudHMgZm9ybSBjaGFuZ2UuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybUdyb3Vwc1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtQ2hhbmdlKGZvcm1Hcm91cHM6IEZvcm1Hcm91cFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbkVuYWJsZUFkZE1lZXRpbmcoZm9ybUdyb3Vwcyk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgIGZvcm1Hcm91cHMuc29tZSgoZm9ybUdyb3VwKSA9PiBmb3JtR3JvdXA/LmRpcnR5KVxyXG4gICAgKTtcclxuICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZvcm1Hcm91cHMuc29tZShcclxuICAgICAgKGZvcm1Hcm91cCkgPT4gZm9ybUdyb3VwPy5zdGF0dXMgPT09IEZvcm1TdGF0dXMuSU5WQUxJRFxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50c0Zvcm1Hcm91cC5mb3JtR3JvdXA/LlsxXT8uY29udHJvbHM/LlsxXVxyXG4gICAgICAgID8uZGF0ZVBpY2tlclxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudHNGb3JtR3JvdXAuZm9ybUdyb3VwWzFdLmNvbnRyb2xzWzFdLmRhdGVQaWNrZXIubWluRGF0ZSA9XHJcbiAgICAgICAgZm9ybUdyb3Vwcz8uWzFdPy5nZXQoJ3N0YXJ0RGF0ZScpPy52YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogTG9hZHMgZ3JvdXBzIHVzaW5nIGV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0R3JvdXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldEdyb3VwcygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogR2V0R3JvdXBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmVzPy5ib2R5Py5mb3JFYWNoKChncm91cDogR3JvdXBJbmZvKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzPy5wdXNoKHtcclxuICAgICAgICAgICAgICBpZDogZ3JvdXA/Lmdyb3VwSWQsXHJcbiAgICAgICAgICAgICAgbmFtZTogYCR7Z3JvdXA/Lmdyb3VwTmFtZX0gLSAke2dyb3VwPy5ncm91cEFjcm9ueW19YCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICAgJ3JlbGF0ZWRHcm91cCcsXHJcbiAgICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zb3J0T3B0aW9ucyh0aGlzLmdyb3VwcyksXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWY/LlswXVxyXG4gICAgICAgICAgICAuZ2V0KCdyZWxhdGVkR3JvdXAnKVxyXG4gICAgICAgICAgICA/LnNldFZhbHVlKFxyXG4gICAgICAgICAgICAgIHRoaXMuZ3JvdXBzPy5maW5kKFxyXG4gICAgICAgICAgICAgICAgKGdyb3VwKSA9PiBncm91cC5pZCA9PT0gdGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZ3JvdXBJZFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNsaWVudCBzaWRlIHZhbGlkYXRpb24gYW5kIGNhbGxzIGNyZWF0ZSBldmVudCBtZXRob2RzLlxyXG4gICAqIEBwYXJhbSB7Rm9ybUdyb3VwW119IGZvcm0gLUFycmF5IG9mIGZvcm1Hcm91cFxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybVN1Ym1pdChmb3JtR3JvdXBzOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBmb3JtR3JvdXBzLmV2ZXJ5KFxyXG4gICAgICAgIChmb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT4gZm9ybUdyb3VwLnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5WQUxJRFxyXG4gICAgICApXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkNSRUFURVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNyZWF0ZUV2ZW50KGZvcm1Hcm91cHMpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPT09XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0RXZlbnQoZm9ybUdyb3Vwcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRha2VzIGV2ZW50IGJhc2ljIGRldGFpbHMsIGRhdGUgYW5kIHRpbWUsIGxvY2F0aW9uIGRldGFpbHMsIGF0dGVuZGVlIGRldGFpbHMsIGFjY2VzcyBkZXRhaWxzIGZvcm0gZ3JvdXAgZGF0YSBhbmQgY29tYmluaW5nIHN0YXJ0IGRhdGUgYW5kIGVuZCBkYXRlIGFuZCBjb252ZXJ0aW5nIHRvIFVUQyBmb3JtYXQgYW5kIHBhc3NpbmcgYWxsIHRoZSBmb3JtIGRhdGEgaW4gdGhlIHBheWxvYWQgb2JqZWN0IHRvIGNyZWF0ZSBldmVudCBBUEkgdG8gdGhlIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge0Zvcm1Hcm91cFtdfSBmb3JtR3JvdXBzXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY3JlYXRlRXZlbnQoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IGV2ZW50QmFzaWNEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzBdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZXZlbnREYXRlQW5kVGltZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bMV0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBldmVudExvY2F0aW9uRGV0YWlscyA9IGZvcm1Hcm91cHM/LlsyXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IGV2ZW50QXR0ZW5kZWVEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzNdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZXZlbnRBY2Nlc3NEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzRdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuY29udmVydERhdGVUaW1lVG9VVEMoXHJcbiAgICAgIGV2ZW50RGF0ZUFuZFRpbWVEZXRhaWxzPy5zdGFydERhdGUuZm9ybWF0KFxyXG4gICAgICAgIERhdGVGb3JtYXRzLnJlcXVlc3RQYXlsb2FkRm9ybWF0XHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICBjb25zdCBlbmREYXRlID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuY29udmVydERhdGVUaW1lVG9VVEMoXHJcbiAgICAgIGV2ZW50RGF0ZUFuZFRpbWVEZXRhaWxzPy5lbmREYXRlLmZvcm1hdChEYXRlRm9ybWF0cz8ucmVxdWVzdFBheWxvYWRGb3JtYXQpXHJcbiAgICApO1xyXG4gICAgY29uc3QgY3JlYXRlRXZlbnRQYXlsb2FkOiBDcmVhdGVPckVkaXRFdmVudFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudE5hbWU6IGV2ZW50QmFzaWNEZXRhaWxzPy5ldmVudE5hbWUsXHJcbiAgICAgICAgZXZlbnRUeXBlOiBldmVudEJhc2ljRGV0YWlscz8uZXZlbnRUeXBlPy5pZCxcclxuICAgICAgICBldmVudElkOiB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZEV2ZW50SWQgPz8gbnVsbCxcclxuICAgICAgICBncm91cElkOiBldmVudEJhc2ljRGV0YWlscz8ucmVsYXRlZEdyb3VwPy5pZCxcclxuICAgICAgICBzdGFydERhdGU6IHN0YXJ0RGF0ZSxcclxuICAgICAgICBlbmREYXRlOiBlbmREYXRlLFxyXG4gICAgICAgIHRpbWVab25lOiBldmVudERhdGVBbmRUaW1lRGV0YWlscz8udGltZVpvbmU/Lm5hbWUsXHJcbiAgICAgICAgY291bnRyeTogZXZlbnRMb2NhdGlvbkRldGFpbHM/LmNvdW50cnk/LmlkLFxyXG4gICAgICAgIGV2ZW50UGFzc3dvcmQ6IGV2ZW50QWNjZXNzRGV0YWlscz8uZXZlbnRQYXNzd29yZCxcclxuICAgICAgICBvcGVuRm9yQWxsOiBldmVudEF0dGVuZGVlRGV0YWlscz8uYXR0ZW5kZWVzVHlwZT8uWzBdLFxyXG4gICAgICAgIHJlZ2lzdGVyZWRQYXJ0aWNpcGFudHM6IGV2ZW50QXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMl0sXHJcbiAgICAgICAgZ3JvdXBQYXJ0aWNpcGFudHM6IGV2ZW50QXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMV0sXHJcbiAgICAgICAgaXBhZGRyZXNzOiBldmVudEFjY2Vzc0RldGFpbHM/LmlwQWRkcmVzc1JhbmdlID8/ICcnLFxyXG4gICAgICAgIGxvY2F0aW9uOiBldmVudExvY2F0aW9uRGV0YWlscz8uYWRkcmVzcyxcclxuICAgICAgICBldmVudFRpdGxlOiBldmVudEJhc2ljRGV0YWlscz8uZXZlbnROYW1lLFxyXG4gICAgICAgIGV2ZW50RGVzYzogZm9ybUdyb3Vwcz8uWzVdPy5nZXRSYXdWYWx1ZSgpPy5kZXNjcmlwdGlvbixcclxuICAgICAgICB2aXJ0dWFsTWVldGluZ1VybDogZXZlbnRMb2NhdGlvbkRldGFpbHM/LnZpcnR1YWxNZWV0aW5nVXJsID8/ICcnLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVFdmVudChjcmVhdGVFdmVudFBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNFdmVudENyZWF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50QWN0aW9uVHlwZSA9IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgICAgICAgICB0aGlzLmlzQWRkTWVldGluZ0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFkZE1lZXRpbmdCdXR0b24pIHRoaXMuYWRkTWVldGluZ0J1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAocmVzPy5ib2R5KVxyXG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZXRTZWxlY3RlZEV2ZW50SWQoXHJcbiAgICAgICAgICAgICAgICBPYmplY3QocmVzPy5ib2R5KT8uaWRcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0U2VsZWN0ZWRFdmVudERhdGEoe1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxyXG4gICAgICAgICAgICAgIGVuZERhdGU6IGVuZERhdGUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmdldEZvcm1Hcm91cFZhbHVlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoXHJcbiAgICAgICAgICAgICAgZmFsc2VcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgICAgICBjcmVhdGVFdmVudFBheWxvYWQucGF5bG9hZC5ldmVudFRpdGxlICtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LnN1Y2Nlc3M/LnN1Ym1pc3Npb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGFsZXJ0cyBmb3Igc3VjY2VzcywgZXJyb3IgYW5kIHdhcm5pbmcuXHJcbiAgICogQHBhcmFtIHsoc3RyaW5nIHwgc3RyaW5nW10pfSBtZXNzYWdlIC1zdWNjZXNzIG9yIGVycm9yIG9yIHdhcm5pbmcgbWVzc2FnZS5cclxuICAgKiBAcGFyYW0ge0FsZXJ0VHlwZX0gYWxlcnRUeXBlXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgc2hvd0FsZXJ0TWVzc2FnZShhbGVydFR5cGU6IEFsZXJ0VHlwZSwgbWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXHJcbiAgICAgIGFsZXJ0VHlwZTogYWxlcnRUeXBlLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGF0dGVuZGVlIHR5cGUgc2VsZWN0aW9uIGluIGV2ZW50IGZvcm0uXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbn0gYXR0ZW5kZWVcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkF0dGVuZGVlVHlwZVNlbGVjdGlvbihcclxuICAgIGF0dGVuZGVlVHlwZTogQ2hlY2tib3hPcHRpb24sXHJcbiAgICBpc0NoZWNrYm94Q2hhbmdlZCA9IGZhbHNlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoYXR0ZW5kZWVUeXBlPy5uYW1lPy5pbmNsdWRlcygnRW5hYmxlJykpIHJldHVybjtcclxuICAgIGlmIChhdHRlbmRlZVR5cGU/LmlkID09PSBBdHRlbmRlZVR5cGUuT1BFTl9GT1JfQUxMKSB7XHJcbiAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXM/LmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICAgIGlmIChhdHRlbmRlZVR5cGU/LmNoZWNrZWQgJiYgb3B0aW9uPy5pZCAhPT0gYXR0ZW5kZWVUeXBlLmlkKVxyXG4gICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICBlbHNlIGlmICghYXR0ZW5kZWVUeXBlPy5jaGVja2VkICYmIG9wdGlvbj8uaWQgIT09IGF0dGVuZGVlVHlwZS5pZClcclxuICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICdhdHRlbmRlZXNUeXBlJyxcclxuICAgICAgICAnY2hlY2tib3hPcHRpb25zJyxcclxuICAgICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzLFxyXG4gICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIGF0dGVuZGVlVHlwZT8uaWQgPT09IEF0dGVuZGVlVHlwZS5HUk9VUF9NRU1CRVJTIHx8XHJcbiAgICAgIGF0dGVuZGVlVHlwZT8uaWQgPT09IEF0dGVuZGVlVHlwZS5SRUdJU1RFUkVEX1BBUlRJQ0lQQU5UU1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXNcclxuICAgICAgICA/LmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24/LmlkID09PSBBdHRlbmRlZVR5cGUuT1BFTl9GT1JfQUxMKVxyXG4gICAgICAgIC5tYXAoKGZpbHRlcmVkT3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICBpZiAoYXR0ZW5kZWVUeXBlPy5jaGVja2VkKSByZXR1cm4gKGZpbHRlcmVkT3B0aW9uLmRpc2FibGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLmNhbkVuYWJsZU9wZW5Gb3JBbGxDaGVja2JveCgpKVxyXG4gICAgICAgICAgICByZXR1cm4gKGZpbHRlcmVkT3B0aW9uLmRpc2FibGVkID0gZmFsc2UpO1xyXG4gICAgICAgICAgcmV0dXJuIGZpbHRlcmVkT3B0aW9uO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgJ2F0dGVuZGVlc1R5cGUnLFxyXG4gICAgICAgICdjaGVja2JveE9wdGlvbnMnLFxyXG4gICAgICAgIHRoaXMuYXR0ZW5kZWVzVHlwZXMsXHJcbiAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBpZiAoYXR0ZW5kZWVUeXBlPy5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRlbmRlZVR5cGVzPy5wdXNoKGF0dGVuZGVlVHlwZS5pZCBhcyBzdHJpbmcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEF0dGVuZGVlVHlwZXMgPSB0aGlzLnNlbGVjdGVkQXR0ZW5kZWVUeXBlcy5maWx0ZXIoXHJcbiAgICAgICAgKHZhbHVlKSA9PiB2YWx1ZSAhPT0gYXR0ZW5kZWVUeXBlLmlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0NyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtSW52YWxpZCA9XHJcbiAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZi5zb21lKFxyXG4gICAgICAgIChmb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT4gZm9ybUdyb3VwLnN0YXR1cyA9PT0gRm9ybVN0YXR1cy5JTlZBTElEXHJcbiAgICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRlbmRlZVR5cGVzLmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICB0aGlzLmlzQ3JlYXRlT3JVcGRhdGVFdmVudEZvcm1JbnZhbGlkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1N1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldEV2ZW50T3JNZWV0aW5nRm9ybUNoYW5nZVN0YXR1cyhcclxuICAgICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmLnNvbWUoKGZvcm1Hcm91cCkgPT4gZm9ybUdyb3VwPy5kaXJ0eSlcclxuICAgICk7XHJcbiAgICB0aGlzLmlzQWRkTWVldGluZ0Rpc2FibGVkID0gaXNDaGVja2JveENoYW5nZWQ7XHJcbiAgICBpZiAodGhpcy5hZGRNZWV0aW5nQnV0dG9uKVxyXG4gICAgICB0aGlzLmFkZE1lZXRpbmdCdXR0b24uZGlzYWJsZWQgPSBpc0NoZWNrYm94Q2hhbmdlZDtcclxuICAgIHRoaXMuY2FuRW5hYmxlQWRkTWVldGluZyh0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWYpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXQgZXZlbnQgZm9ybSBncm91cCByZWZlcmVuY2UuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldENyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWYoZm9ybTogRm9ybUdyb3VwW10pIHtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZiA9IGZvcm07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciB0aGUgZHJvcGRvd24gb3B0aW9ucyBhbmQgc2hvdyBvcHRpb25zIHJlbGF0ZWQgdG8gdGhhdCBzZWFyY2ggc3RyaW5nXHJcbiAgICogQHBhcmFtIHt7IHNlYXJjaEV2ZW50OiBFdmVudDsgY29udHJvbE5hbWU6IHN0cmluZyB9fSBkYXRhXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU1vZGlmeU1lZXRpbmdDb21wb25lbnRcclxuICAgKi9cclxuICBmb3JtU2VsZWN0U2VhcmNoKGRhdGE6IHsgc2VhcmNoRXZlbnQ6IEV2ZW50OyBjb250cm9sTmFtZTogc3RyaW5nIH0pIHtcclxuICAgIHN3aXRjaCAoZGF0YS5jb250cm9sTmFtZSkge1xyXG4gICAgICBjYXNlICd0aW1lWm9uZSc6XHJcbiAgICAgICAgdGhpcy50aW1lem9uZXMgPSB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5maWx0ZXJPcHRpb25zKFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdFRpbWVab25lcyxcclxuICAgICAgICAgIHRoaXMudGltZXpvbmVzXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS51cGRhdGVGb3JtQ29udHJvbE9wdGlvbnMoXHJcbiAgICAgICAgICAndGltZVpvbmUnLFxyXG4gICAgICAgICAgJ2Ryb3Bkb3duT3B0aW9ucycsXHJcbiAgICAgICAgICB0aGlzLnRpbWV6b25lcyxcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1Db21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjb3VudHJ5JzpcclxuICAgICAgICB0aGlzLmNvdW50cmllcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q291bnRyaWVzLFxyXG4gICAgICAgICAgdGhpcy5jb3VudHJpZXNcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnVwZGF0ZUZvcm1Db250cm9sT3B0aW9ucyhcclxuICAgICAgICAgICdjb3VudHJ5JyxcclxuICAgICAgICAgICdkcm9wZG93bk9wdGlvbnMnLFxyXG4gICAgICAgICAgdGhpcy5jb3VudHJpZXMsXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmVsYXRlZEdyb3VwJzpcclxuICAgICAgICB0aGlzLmdyb3VwcyA9IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmZpbHRlck9wdGlvbnMoXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgdGhpcy5ncm91cHMsXHJcbiAgICAgICAgICB0aGlzLmdyb3Vwc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudXBkYXRlRm9ybUNvbnRyb2xPcHRpb25zKFxyXG4gICAgICAgICAgJ3JlbGF0ZWRHcm91cCcsXHJcbiAgICAgICAgICAnZHJvcGRvd25PcHRpb25zJyxcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzLFxyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybUNvbXBvbmVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENoZWNraW5nIGZvciB1bmNoZWNrZWQgY2hlY2tib3ggY291bnQgZXhjZXB0IE9QRU5fRk9SX0FMTFxyXG4gICAqIEByZXR1cm4geyp9ICB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5TWVldGluZ0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNhbkVuYWJsZU9wZW5Gb3JBbGxDaGVja2JveCgpOiBib29sZWFuIHtcclxuICAgIGxldCB1bmNoZWNrZWRDb3VudCA9IDA7XHJcbiAgICB0aGlzLmF0dGVuZGVlc1R5cGVzPy5mb3JFYWNoKChhdHRlbmRlZVR5cGUpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGF0dGVuZGVlVHlwZT8uaWQgIT09IEF0dGVuZGVlVHlwZS5PUEVOX0ZPUl9BTEwgJiZcclxuICAgICAgICAhYXR0ZW5kZWVUeXBlPy5jaGVja2VkXHJcbiAgICAgIClcclxuICAgICAgICB1bmNoZWNrZWRDb3VudCsrO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdW5jaGVja2VkQ291bnQgPT09IHRoaXMuYXR0ZW5kZWVzVHlwZXM/Lmxlbmd0aCAtIDE7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIGEgbW9kYWwgdG8gY3JlYXRlIG1lZXRpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5BZGRNZWV0aW5nTW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyhmYWxzZSk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRFdmVudE9yTWVldGluZ0Zvcm1DaGFuZ2VTdGF0dXMoZmFsc2UpO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRNZWV0aW5nSWQgPSAnJztcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IHRoaXMuc2NyZWVuVGV4dHM/Lm5ld01lZXRpbmcsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIGNvbXBvbmVudFJlZmVyZW5jZTogQWRkTWVldGluZ0NvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgICAgY2FuQ2xvc2VNb2RhbDogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZz8ub3BlbihNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkaWFsb2dPcHRpb25zLFxyXG4gICAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCAnaWVlZXNhLWFkZC1tZWV0aW5nLWZvcm0nXSxcclxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/Lm1vZGFsQ29uZmlybVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmdldEV2ZW50T3JNZWV0aW5nRm9ybUNoYW5nZVN0YXR1cygpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBkaWFsb2dSZWZlcmVuY2UgPVxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8ub3BlbkNvbmZpcm1hdGlvbk1vZGFsKFxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uTW9kYWxDb25maWdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIGRpYWxvZ1JlZmVyZW5jZVxyXG4gICAgICAgICAgICA/LmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgPy5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5jYW5DbG9zZUFkZE1lZXRpbmdNb2RhbCQ/Lm5leHQoXHJcbiAgICAgICAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKGZhbHNlKTtcclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyh0cnVlKTtcclxuICAgICAgICB0aGlzLmdldE1lZXRpbmdzQnlFdmVudElkKHtcclxuICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmdldFNlbGVjdGVkRXZlbnRJZCgpLFxyXG4gICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNjcmVlblRleHRzPy5sYWJlbD8ubWVldGluZ1N0RGF0ZSxcclxuICAgICAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgYnkgZXZlbnQgaWQgb24gY2hhbmdlIG9mIHRhYmxlIHBhZ2luYXRpb24uXHJcbiAgICogQHBhcmFtIHt7XHJcbiAgICogICAgIHBhZ2VPZmZzZXQ6IG51bWJlcjtcclxuICAgKiAgICAgcGFnZUxpbWl0OiBudW1iZXI7XHJcbiAgICogICB9fSBwYWdlRXZlbnRcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVldGluZ3NUYWJsZVBhZ2VDaGFuZ2UocGFnZUV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0U2VsZWN0ZWRFdmVudElkKCksXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHBhZ2U6IHBhZ2VFdmVudC5wYWdlSW5kZXggKyAxLFxyXG4gICAgICAgIHNpemU6IHBhZ2VFdmVudC5wYWdlU2l6ZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmlldyBldmVudCBkZXRhaWxzIGFuZCBjYWxscyBnZXQgZXZlbnQgZGV0YWlscyBBUEkgYW5kIGVtaXRzIHZpZXcgZXZlbnQgQVBJIHJlc3BvbnNlLlxyXG4gICAqIEBwYXJhbSB7ZXZlbnRJRH1cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuXHJcbiAgdmlld0V2ZW50RGV0YWlscyhldmVudElEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRFdmVudERldGFpbHMoZXZlbnRJRClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50RGF0YSA9IHJlcz8uYm9keTtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldFNlbGVjdGVkRXZlbnREYXRhKFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFdmVudERhdGFcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEZvcm1Hcm91cFZhbHVlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBlZGl0IGV2ZW50IGRldGFpbHMgb24gZ2V0IHZpZXcgZXZlbnQgZGV0YWlscyBBUEkgY2FsbC5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBzZXRTZWxlY3RlZEZvcm1Hcm91cFZhbHVlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzBdXHJcbiAgICAgIC5nZXQoJ3JlbGF0ZWRHcm91cCcpXHJcbiAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgdGhpcy5ncm91cHM/LmZpbHRlcihcclxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbj8uaWQgPT09IHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/Lmdyb3VwSWRcclxuICAgICAgICApPy5bMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzBdXHJcbiAgICAgIC5nZXQoJ2V2ZW50TmFtZScpXHJcbiAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZXZlbnROYW1lKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzBdXHJcbiAgICAgIC5nZXQoJ2V2ZW50VHlwZScpXHJcbiAgICAgID8uc2V0VmFsdWUoXHJcbiAgICAgICAgdGhpcy5ldmVudFR5cGVzPy5maWx0ZXIoXHJcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24/LmlkID09PSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy5ldmVudFR5cGVcclxuICAgICAgICApPy5bMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzFdXHJcbiAgICAgIC5nZXQoJ3N0YXJ0RGF0ZScpXHJcbiAgICAgID8uc2V0VmFsdWUobW9tZW50KHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LnN0YXJ0RGF0ZSkpO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bMV1cclxuICAgICAgLmdldCgnZW5kRGF0ZScpXHJcbiAgICAgID8uc2V0VmFsdWUobW9tZW50KHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmVuZERhdGUpKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzFdXHJcbiAgICAgIC5nZXQoJ3RpbWVab25lJylcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLnRpbWV6b25lcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5uYW1lID09PSB0aGlzLnNlbGVjdGVkRXZlbnREYXRhPy50aW1lWm9uZVxyXG4gICAgICAgIClbMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzJdXHJcbiAgICAgIC5nZXQoJ2FkZHJlc3MnKVxyXG4gICAgICA/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmxvY2F0aW9uKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRXZlbnREYXRhLm9wZW5Gb3JBbGwpIHtcclxuICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1swXS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzBdKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFdmVudERhdGEuZ3JvdXBQYXJ0aWNpcGFudHMgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50RGF0YS5yZWdpc3RlcmVkUGFydGljaXBhbnRzXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1sxXS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzFdKTtcclxuICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1syXS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzJdKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEV2ZW50RGF0YS5ncm91cFBhcnRpY2lwYW50cykge1xyXG4gICAgICB0aGlzLmF0dGVuZGVlc1R5cGVzWzFdLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uQXR0ZW5kZWVUeXBlU2VsZWN0aW9uKHRoaXMuYXR0ZW5kZWVzVHlwZXNbMV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hdHRlbmRlZXNUeXBlc1syXS5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbkF0dGVuZGVlVHlwZVNlbGVjdGlvbih0aGlzLmF0dGVuZGVlc1R5cGVzWzJdKTtcclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzNdXHJcbiAgICAgIC5nZXQoJ2F0dGVuZGVlc1R5cGUnKVxyXG4gICAgICA/LnNldFZhbHVlKHRoaXMuYXR0ZW5kZWVzVHlwZXMubWFwKChvcHRpb24pID0+IG9wdGlvbi5jaGVja2VkKSk7XHJcbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWY/LlsyXVxyXG4gICAgICAuZ2V0KCdjb3VudHJ5JylcclxuICAgICAgPy5zZXRWYWx1ZShcclxuICAgICAgICB0aGlzLmNvdW50cmllcz8uZmlsdGVyKFxyXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uPy5pZCA9PT0gdGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uY291bnRyeVxyXG4gICAgICAgIClbMF1cclxuICAgICAgKTtcclxuICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8uWzRdXHJcbiAgICAgIC5nZXQoJ2V2ZW50UGFzc3dvcmQnKVxyXG4gICAgICA/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmV2ZW50UGFzc3dvcmQpO1xyXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUV2ZW50Rm9ybUdyb3VwUmVmPy5bNF1cclxuICAgICAgLmdldCgnaXBBZGRyZXNzUmFuZ2UnKVxyXG4gICAgICA/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRFdmVudERhdGE/LmlwYWRkcmVzcyk7XHJcbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWY/Lls1XVxyXG4gICAgICAuZ2V0KCdkZXNjcmlwdGlvbicpXHJcbiAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEV2ZW50RGF0YT8uZXZlbnREZXNjKTtcclxuICAgIHRoaXMuaXNTdWJtaXRCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLmdldEZvcm1Hcm91cFZhbHVlcygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGVkaXQgZXZlbnQgcGF5bG9hZCBhbmQgY2FsbHMgZWRpdCBldmVudCBBUEkgYW5kIGVtaXRzIGVkaXQgZXZlbnQgQVBJIHJlc3BvbnNlLlxyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybURhdGFcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBlZGl0RXZlbnQoZm9ybUdyb3VwczogRm9ybUdyb3VwW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IGV2ZW50QmFzaWNEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzBdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZXZlbnREYXRlQW5kVGltZURldGFpbHMgPSBmb3JtR3JvdXBzPy5bMV0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICBjb25zdCBldmVudExvY2F0aW9uRGV0YWlscyA9IGZvcm1Hcm91cHM/LlsyXT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGNvbnN0IGV2ZW50QXR0ZW5kZWVEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzNdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3QgZXZlbnRBY2Nlc3NEZXRhaWxzID0gZm9ybUdyb3Vwcz8uWzRdPy5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuY29udmVydERhdGVUaW1lVG9VVEMoXHJcbiAgICAgIGV2ZW50RGF0ZUFuZFRpbWVEZXRhaWxzPy5zdGFydERhdGUuZm9ybWF0KFxyXG4gICAgICAgIERhdGVGb3JtYXRzLnJlcXVlc3RQYXlsb2FkRm9ybWF0XHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICBjb25zdCBlbmREYXRlID0gdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuY29udmVydERhdGVUaW1lVG9VVEMoXHJcbiAgICAgIGV2ZW50RGF0ZUFuZFRpbWVEZXRhaWxzPy5lbmREYXRlLmZvcm1hdChEYXRlRm9ybWF0cz8ucmVxdWVzdFBheWxvYWRGb3JtYXQpXHJcbiAgICApO1xyXG4gICAgY29uc3QgZWRpdEV2ZW50UGF5bG9hZDogQ3JlYXRlT3JFZGl0RXZlbnRQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnROYW1lOiBldmVudEJhc2ljRGV0YWlscz8uZXZlbnROYW1lLFxyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA/PyBudWxsLFxyXG4gICAgICAgIGV2ZW50VHlwZTogZXZlbnRCYXNpY0RldGFpbHM/LmV2ZW50VHlwZS5pZCxcclxuICAgICAgICBncm91cElkOiBldmVudEJhc2ljRGV0YWlscz8ucmVsYXRlZEdyb3VwPy5pZCxcclxuICAgICAgICBzdGFydERhdGU6IHN0YXJ0RGF0ZSxcclxuICAgICAgICBlbmREYXRlOiBlbmREYXRlLFxyXG4gICAgICAgIHRpbWVab25lOiBldmVudERhdGVBbmRUaW1lRGV0YWlscz8udGltZVpvbmU/Lm5hbWUsXHJcbiAgICAgICAgY291bnRyeTogZXZlbnRMb2NhdGlvbkRldGFpbHM/LmNvdW50cnk/LmlkLFxyXG4gICAgICAgIGV2ZW50UGFzc3dvcmQ6IGV2ZW50QWNjZXNzRGV0YWlscz8uZXZlbnRQYXNzd29yZCxcclxuICAgICAgICBvcGVuRm9yQWxsOiBldmVudEF0dGVuZGVlRGV0YWlscz8uYXR0ZW5kZWVzVHlwZT8uWzBdLFxyXG4gICAgICAgIHJlZ2lzdGVyZWRQYXJ0aWNpcGFudHM6IGV2ZW50QXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMl0sXHJcbiAgICAgICAgZ3JvdXBQYXJ0aWNpcGFudHM6IGV2ZW50QXR0ZW5kZWVEZXRhaWxzPy5hdHRlbmRlZXNUeXBlPy5bMV0sXHJcbiAgICAgICAgaXBhZGRyZXNzOiBldmVudEFjY2Vzc0RldGFpbHM/LmlwQWRkcmVzc1JhbmdlID8/ICcnLFxyXG4gICAgICAgIGxvY2F0aW9uOiBldmVudExvY2F0aW9uRGV0YWlscz8uYWRkcmVzcyxcclxuICAgICAgICBldmVudFRpdGxlOiBldmVudEJhc2ljRGV0YWlscz8uZXZlbnROYW1lLFxyXG4gICAgICAgIGV2ZW50RGVzYzogZm9ybUdyb3Vwcz8uWzVdPy5nZXRSYXdWYWx1ZSgpPy5kZXNjcmlwdGlvbixcclxuICAgICAgICB2aXJ0dWFsTWVldGluZ1VybDogZXZlbnRMb2NhdGlvbkRldGFpbHM/LnZpcnR1YWxNZWV0aW5nVXJsID8/ICcnLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5lZGl0RXZlbnQoZWRpdEV2ZW50UGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0FkZE1lZXRpbmdEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hZGRNZWV0aW5nQnV0dG9uKSB0aGlzLmFkZE1lZXRpbmdCdXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRGb3JtR3JvdXBWYWx1ZXMoKTtcclxuICAgICAgICAgICAgaWYgKHJlcz8uYm9keSlcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0U2VsZWN0ZWRFdmVudElkKFxyXG4gICAgICAgICAgICAgICAgT2JqZWN0KHJlcz8uYm9keSk/LmlkXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldFNlbGVjdGVkRXZlbnREYXRhKHtcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHN0YXJ0RGF0ZSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiBlbmREYXRlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0RXZlbnRPck1lZXRpbmdGb3JtQ2hhbmdlU3RhdHVzKFxyXG4gICAgICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICAgICAgZWRpdEV2ZW50UGF5bG9hZC5wYXlsb2FkLmV2ZW50VGl0bGUgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWVzc2FnZT8uc3VjY2Vzcz8udXBkYXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBzZWxlY3RlZCB0YWJsZSByb3cgZGF0YS5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZ2V0U2VsZWN0ZWRSb3dEYXRhKHJvdzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTWVldGluZyA9IHJvdztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgY2xpY2tlZCBtZWV0aW5nIGFjdGlvblxyXG4gICAqIEBwYXJhbSB7TWVudX0gbWVudVxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgaGFuZGxlTWVldGluZ0FjdGlvbnMobWVudTogTWVudSk6IHZvaWQge1xyXG4gICAgaWYgKG1lbnU/LmlkID09PSBNZWV0aW5nQWN0aW9uLkRFTEVURV9NRUVUSU5HKVxyXG4gICAgICB0aGlzLm9wZW5EZWxldGVNZWV0aW5nc0NvbmZpcm1hdGlvbk1vZGFsKHRoaXMuc2VsZWN0ZWRNZWV0aW5nKTtcclxuICAgIGVsc2UgaWYgKG1lbnU/LmlkID09PSBNZWV0aW5nQWN0aW9uLlZJRVdfTUVFVElORylcclxuICAgICAgdGhpcy5uYXZpZ2F0ZVRvRWRpdE1lZXRpbmdQYWdlKHRoaXMuc2VsZWN0ZWRNZWV0aW5nKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmF2aWdhdGVzIHRvIGVkaXQgbWVldGluZyBwYWdlLlxyXG4gICAqIEBwYXJhbSBzZWxlY3RlZE1lZXRpbmdcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5hdmlnYXRlVG9FZGl0TWVldGluZ1BhZ2Uoc2VsZWN0ZWRNZWV0aW5nOiBNZWV0aW5nRGV0YWlscyk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0U3RhbmRhbG9uZU1lZXRpbmdTdGF0dXModHJ1ZSk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID0gRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9XHJcbiAgICAgIHNlbGVjdGVkTWVldGluZz8ubWVldGluZ0lkO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LmdldFJvdXRlUGF0aHMoKT8uZWRpdE1lZXRpbmdcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBjb25maXJtYXRpb24gbW9kYWwgdG8gZ2V0IHVzZXIgY29uZmlybWF0aW9uIHRvIGRlbGV0ZSB0aGUgbWVldGluZ3MgZnJvbSB0aGUgc2VsZWN0ZWQgZXZlbnQuXHJcbiAgICogQHBhcmFtIHsqfSBzZWxlY3RlZE1lZXRpbmdzXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG9wZW5EZWxldGVNZWV0aW5nc0NvbmZpcm1hdGlvbk1vZGFsKHNlbGVjdGVkTWVldGluZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE1lZXRpbmdJZHMgPSBbXTtcclxuICAgIGlmIChzZWxlY3RlZE1lZXRpbmdzPy5tZWV0aW5nSWQpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNZWV0aW5nSWRzPy5wdXNoKHNlbGVjdGVkTWVldGluZ3M/Lm1lZXRpbmdJZCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHNlbGVjdGVkTWVldGluZ3M/LmZvckVhY2goKG1lZXRpbmc6IE1lZXRpbmcpID0+IHtcclxuICAgICAgICBpZiAobWVldGluZz8ubWVldGluZ0lkKVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE1lZXRpbmdJZHM/LnB1c2gobWVldGluZy5tZWV0aW5nSWQpO1xyXG4gICAgICB9KTtcclxuICAgIGNvbnN0IGNvbmZpcm1hdGlvbkluZm8gPSB0aGlzLnNjcmVlblRleHRzPy5kZWxldGVNZWV0aW5ncz8uY29uZmlybWF0aW9uSW5mbztcclxuICAgIGNvbnN0IGRlbGV0ZVVzZXJHcm91cE1vZGFsT3B0aW9ucyA9IHtcclxuICAgICAgbGVmdEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5sZWZ0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHJpZ2h0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LnJpZ2h0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHByb21wdE1lc3NhZ2U6IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2UsXHJcbiAgICAgIGFjdGlvbkJ1dHRvbkFsaWduOiBBbGlnblR5cGU/Lk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGVsZXRlVXNlckdyb3VwTW9kYWxPcHRpb25zLFxyXG4gICAgICBhdXRvRm9jdXM6ICdkaWFsb2cnLFxyXG4gICAgICBhcmlhTGFiZWw6IHRoaXMuY29uc3RhbnRzPy5hcmlhTGFiZWw/LmFsZXJ0LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHRoaXMuZGVsZXRlRXZlbnRNZWV0aW5ncygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VuZHMgQVBJIFJlcXVlc3QgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBtZWV0aW5ncyB3aXRoaW4gZXZlbnQgYW5kIGhhbmRsZXMgdGhlIHN1Y2Nlc3MgYW5kIGVycm9yIHJlc3BvbnNlIG9mIHRoZSBodHRwIHJlcXVlc3QuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBkZWxldGVFdmVudE1lZXRpbmdzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmRlbGV0ZUV2ZW50c09yTWVldGluZ3Moe1xyXG4gICAgICAgIHBheWxvYWQ6IHRoaXMuc2VsZWN0ZWRNZWV0aW5nSWRzLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0U2VsZWN0ZWRFdmVudElkKCksXHJcbiAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/Lm1lZXRpbmdUaXRsZSxcclxuICAgICAgICAgICAgICBhc2NlbmRpbmdPcmRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICAgICAgbWVzc2FnZTpcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTWVldGluZ0lkcy5sZW5ndGggK1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmRlbGV0ZU1lZXRpbmdzPy5tZXNzYWdlPy5zdWNjZXNzPy5kZWxldGlvbixcclxuICAgICAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGUuU1VDQ0VTUyxcclxuICAgICAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2hvd3MgdGhlIHNlYXJjaCBmaWVsZCBvbiBjbGljayBvZiBzZWFyY2ggaWNvbiBpbiBjYXNlIG9mIG1vYmlsZSB2aWV3XHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBvbk1lZXRpbmdTZWFyY2goKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyBpc1NlYXJjaEFjdGl2ZSB0byB0cnVlIGFuZCBsb2FkcyB0aGUgbWVldGluZ3MgLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXJtXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBvbk1lZXRpbmdzU2VhcmNoQ2xpY2soc2VhcmNoVGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoc2VhcmNoVGVybSkge1xyXG4gICAgICB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMudHJpbW1lZFNlYXJjaFRlcm0pIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUmVzdWx0TWVzc2FnZSA9ICcnO1xyXG4gICAgICB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0U2VsZWN0ZWRFdmVudElkKCksXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5zY3JlZW5UZXh0cz8ubGFiZWw/Lm1lZXRpbmdUaXRsZSxcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgcGFnZTogMSxcclxuICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgc2VhcmNoVGVybTogc2VhcmNoVGVybSA/IHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gOiBudWxsLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgYmFzZWQgb24gdGhlIGNvbHVtbiBuYW1lIGFuZCBzb3J0IGRpcmVjdGlvbi5cclxuICAgKiBAcGFyYW0ge1NvcnR9IHNvcnRcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gIG9uU29ydE1lZXRpbmcoc29ydDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gc29ydC5hY3RpdmU7XHJcbiAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID1cclxuICAgICAgc29ydC5kaXJlY3Rpb24gPT09IFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgICB0aGlzLmdldE1lZXRpbmdzQnlFdmVudElkKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldFNlbGVjdGVkRXZlbnRJZCgpLFxyXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbixcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzZWFyY2hUZXJtOiB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID8/IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLypcclxuICAgKiBEaXNhYmxlcyBhZGQgbWVldGluZyBsaW5rL2ljb24gd2hlbiB0aGUgY3VycmVudCBmb3JtIHZhbHVlIGNoYW5nZXMuXHJcbiAgICogQHBhcmFtIHtGb3JtR3JvdXBbXX0gZm9ybUdyb3Vwc1xyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgY2FuRW5hYmxlQWRkTWVldGluZyhmb3JtR3JvdXBzOiBGb3JtR3JvdXBbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0FkZE1lZXRpbmdEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuYWRkTWVldGluZ0J1dHRvbikgdGhpcy5hZGRNZWV0aW5nQnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBjb25zdCBtb2RpZmllZEZvcm1WYWx1ZXMgPSB0aGlzLnByZXZpb3VzRm9ybVZhbHVlcz8uZmlsdGVyKFxyXG4gICAgICAocHJldmlvdXNGb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT5cclxuICAgICAgICAhZm9ybUdyb3Vwcy5zb21lKChjdXJyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXApID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtR3JvdXAudmFsdWUpID09PVxyXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShwcmV2aW91c0Zvcm1Hcm91cClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZiAobW9kaWZpZWRGb3JtVmFsdWVzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaXNBZGRNZWV0aW5nRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5hZGRNZWV0aW5nQnV0dG9uKSB0aGlzLmFkZE1lZXRpbmdCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBTdG9yZXMgZm9ybSBncm91cCB2YWx1ZXMuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGb3JtR3JvdXBWYWx1ZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnByZXZpb3VzRm9ybVZhbHVlcyA9IHRoaXMuY3JlYXRlT3JVcGRhdGVFdmVudEZvcm1Hcm91cFJlZj8ubWFwKFxyXG4gICAgICAoZm9ybWdyb3VwKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1ncm91cC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImllZWVzYS1jcmVhdGUtdXBkYXRlLWV2ZW50LWZvcm0tY29udGFpbmVyXCJcclxuICBbbmdDbGFzc109XCJzZWxlY3RlZEV2ZW50SWQgPyAnaWVlZXNhLWV2ZW50JyA6ICcnXCJcclxuPlxyXG4gIDxwICpuZ0lmPVwic2VsZWN0ZWRFdmVudElkXCIgY2xhc3M9XCJpZWVlc2EtdGl0bGUtbGctMjQgcGItMyBtLTBcIj5cclxuICAgIHt7IHNjcmVlblRleHRzPy5sYWJlbD8uZXZlbnREZXRhaWxzIH19XHJcbiAgPC9wPlxyXG4gIDxpZWVlc2EtZHluYW1pYy1mb3JtXHJcbiAgICAqbmdJZj1cImNyZWF0ZU9yVXBkYXRlRXZlbnRzRm9ybUdyb3VwXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLWNyZWF0ZS11cGRhdGUtZXZlbnQtZm9ybVwiXHJcbiAgICBbbGVmdEJ1dHRvbkxhYmVsXT1cImxlZnRCdXR0b25MYWJlbFwiXHJcbiAgICBbcmlnaHRCdXR0b25MYWJlbF09XCJyaWdodEJ1dHRvbkxhYmVsXCJcclxuICAgIFtpc0xlZ2VuZFZpc2libGVdPVwidHJ1ZVwiXHJcbiAgICBbaXNTdWJtaXRCdXR0b25EaXNhYmxlZF09XCJpc1N1Ym1pdEJ1dHRvbkRpc2FibGVkXCJcclxuICAgIFtjb2xXaWR0aF09XCJjb2xXaWR0aFwiXHJcbiAgICBbYWN0aW9uQnV0dG9uQWxpZ25dPVwiYWN0aW9uQnV0dG9uQWxpZ25cIlxyXG4gICAgW2Zvcm1Hcm91cHNdPVwiY3JlYXRlT3JVcGRhdGVFdmVudHNGb3JtR3JvdXBcIlxyXG4gICAgW2lzTGVmdEJ1dHRvbk5lZWRlZF09XCJ0cnVlXCJcclxuICAgIChmb3JtQ2hlY2tib3hTZWxlY3Rpb24pPVwib25BdHRlbmRlZVR5cGVTZWxlY3Rpb24oJGV2ZW50LCB0cnVlKVwiXHJcbiAgICAoZm9ybUxlZnRCdXR0b25DbGlja2VkKT1cIm9uRm9ybUNhbmNlbCgpXCJcclxuICAgIChmb3JtR3JvdXBzUmVmZXJlbmNlKT1cImdldENyZWF0ZU9yVXBkYXRlRXZlbnRGb3JtR3JvdXBSZWYoJGV2ZW50KVwiXHJcbiAgICAoZm9ybVN1Ym1pdCk9XCJvbkZvcm1TdWJtaXQoJGV2ZW50KVwiXHJcbiAgICAoZm9ybUNoYW5nZSk9XCJvbkZvcm1DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoZm9ybVNlbGVjdFNlYXJjaCk9XCJmb3JtU2VsZWN0U2VhcmNoKCRldmVudClcIlxyXG4gID48L2llZWVzYS1keW5hbWljLWZvcm0+XHJcblxyXG4gIDxwXHJcbiAgICBjbGFzcz1cImllZWVzYS10aXRsZS1sZy0yNCBtYi0wIG10LTNcIlxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgZXZlbnRBY3Rpb25UeXBlID09PSBldmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVCB8fCBpc0V2ZW50Q3JlYXRlZFxyXG4gICAgXCJcclxuICA+XHJcbiAgICB7eyBzY3JlZW5UZXh0cz8ubGFiZWw/Lm1lZXRpbmdEZXRhaWxzIH19XHJcbiAgPC9wPlxyXG4gIDxwXHJcbiAgICBjbGFzcz1cImllZWVzYS1ib2R5LW1kLTE0IGllZWVzYS1hZGQtbWVldGluZ3MtdGl0bGVcIlxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgZXZlbnRBY3Rpb25UeXBlID09PSBldmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVCB8fCBpc0V2ZW50Q3JlYXRlZFxyXG4gICAgXCJcclxuICA+XHJcbiAgICB7eyBtZWV0aW5nRGV0YWlsc1RpdGxlIH19XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2VhcmNoQWN0aXZlXCIgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtZWV0aW5ncz8ubGVuZ3RoICYmIGlzQWRkTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICA+XCI8L25nLWNvbnRhaW5lclxyXG4gICAgPlxyXG4gICAgPGFcclxuICAgICAgKm5nSWY9XCJtZWV0aW5ncz8ubGVuZ3RoID09PSAwICYmIGlzQWRkTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXHJcbiAgICAgIChjbGljayk9XCJvcGVuQWRkTWVldGluZ01vZGFsKClcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdpZWVlc2EtYWRkLW1lZXRpbmctbGluayc6IGlzQWRkTWVldGluZ0Rpc2FibGVkIH1cIlxyXG4gICAgICA+e3sgYWRkTWVldGluZ3NMaW5rIH19PC9hXHJcbiAgICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1lZXRpbmdzPy5sZW5ndGggJiYgaXNBZGRNZWV0aW5nQWxsb3dlZFwiXHJcbiAgICAgID5cIjwvbmctY29udGFpbmVyXHJcbiAgICA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3A+XHJcbiAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAqbmdJZj1cIlxyXG4gICAgICAoKHBhZ2luYXRvckNvbmZpZz8udG90YWxSZWNvcmRzICYmIG1lZXRpbmdzPy5sZW5ndGgpIHx8IGlzU2VhcmNoQWN0aXZlKSAmJlxyXG4gICAgICBldmVudEFjdGlvblR5cGUgPT09IGV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUXHJcbiAgICBcIlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtbWVldGluZ3NcIlxyXG4gICAgW3RhYmxlRGF0YUluZm9dPVwibWVldGluZ3NcIlxyXG4gICAgW2NvbHVtblNjaGVtYUluZm9dPVwiY29sdW1uU2NoZW1hXCJcclxuICAgIFtzZWFyY2hQbGFjZUhvbGRlclRleHRdPVwic2NyZWVuVGV4dHM/LnNlYXJjaE1lZXRpbmdcIlxyXG4gICAgW3NlYXJjaFR5cGVdPVwic2VhcmNoVHlwZVwiXHJcbiAgICAoc2VhcmNoZWRWYWx1ZSk9XCJvbk1lZXRpbmdzU2VhcmNoQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbdGFibGVBY3Rpb25zXT1cIm1lZXRpbmdBY3Rpb25zXCJcclxuICAgIFt0YWJsZVJvd0FjdGlvbnNdPVwic2NyZWVuVGV4dHM/LnRhYmxlQWN0aW9uc1wiXHJcbiAgICBbYWRkQnV0dG9uXT1cImFkZE1lZXRpbmdCdXR0b25cIlxyXG4gICAgW3BhZ2luYXRvckNvbmZpZ109XCJwYWdpbmF0b3JDb25maWdcIlxyXG4gICAgW2xlZ2VuZHNdPVwibWVldGluZ0xlZ2VuZHNcIlxyXG4gICAgKG1lbnVBY3Rpb25DbGljayk9XCJnZXRTZWxlY3RlZFJvd0RhdGEoJGV2ZW50KVwiXHJcbiAgICAoc2VsZWN0QWN0aW9uTWVudSk9XCJoYW5kbGVNZWV0aW5nQWN0aW9ucygkZXZlbnQpXCJcclxuICAgIChwYWdpbmF0aW9uQ2hhbmdlKT1cIm9uTWVldGluZ3NUYWJsZVBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoYWRkUm93KT1cIm9wZW5BZGRNZWV0aW5nTW9kYWwoKVwiXHJcbiAgICAoc29ydENoYW5nZSk9XCJvblNvcnRNZWV0aW5nKCRldmVudClcIlxyXG4gICAgKHNlbGVjdGVkUm93c1RvRGVsZXRlKT1cIm9wZW5EZWxldGVNZWV0aW5nc0NvbmZpcm1hdGlvbk1vZGFsKCRldmVudClcIlxyXG4gICAgW3NlYXJjaFN1cHBvcnRNZXNzYWdlXT1cInN1cHBvcnRNZXNzYWdlXCJcclxuICAgIFtzZWFyY2hSZXN1bHRNZXNzYWdlXT1cInNlYXJjaFJlc3VsdE1lc3NhZ2VcIlxyXG4gICAgKHJvd0xpbmspPVwibmF2aWdhdGVUb0VkaXRNZWV0aW5nUGFnZSgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9pZWVlc2EtZGF0YS10YWJsZT5cclxuPC9kaXY+XHJcbiJdfQ==