@ieeesa-npm/tenants 0.1.9 → 0.2.0

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.
@@ -439,7 +439,7 @@ export class ViewTenantDetailsComponent {
439
439
  this.destroy$?.unsubscribe();
440
440
  }
441
441
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantDetailsComponent, deps: [{ token: i1.MatDialog }, { token: i2.BreakpointObserverService }, { token: i3.TenantApplicationsService }, { token: i2.GlobalErrorHandlerService }, { token: i4.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
442
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantDetailsComponent, isStandalone: true, selector: "ieeesa-view-tenant-details", inputs: { apiBaseURL: "apiBaseURL", userPermissions: "userPermissions", routePaths: "routePaths" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-view-tenant-info px-4 pb-4\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--bg-white'\r\n : 'ieeesa-view-tenant-info--bg-blue'\r\n \"\r\n>\r\n <div\r\n class=\"d-flex justify-content-between gap-lg-4 gap-md-3 gap-sm-2 gap-3\"\r\n [ngClass]=\"isMobileView ? 'flex-column gap-2 pb-3' : 'align-item-center'\"\r\n >\r\n <div\r\n class=\"d-flex gap-lg-4 gap-md-3 gap-sm-3 gap-3 ps-0 align-items-md-center align-items-xl-center\"\r\n [ngClass]=\"isMobileView ? 'flex-column' : ''\"\r\n >\r\n <p\r\n class=\"mb-0 ieeesa-headline-lg-32 py-3\"\r\n [ngClass]=\"isMobileView ? '' : 'ieeesa-view-tenant-info--title'\"\r\n >\r\n {{ tenantDetails?.appTitle }}\r\n </p>\r\n <div class=\"d-flex gap-lg-2 gap-md-2 gap-sm-2 gap-2\">\r\n <span\r\n class=\"mb-0 ieeesa-title-sm-14 mt-1\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'ieeesa-view-tenant-info--app-id'\"\r\n >\r\n {{ tenantLabels?.appId }}:\r\n </span>\r\n {{ tenantDetails?.appId }}\r\n <ng-container *ngIf=\"tenantDetails?.appId !== tenantLabels?.saAppId\">\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <span\r\n class=\"mb-0 mt-1 ieeesa-title-sm-14 ieeesa-view-tenant-info--app-status\"\r\n [ngClass]=\"isMobileView ? 'p-0' : ''\"\r\n >\r\n {{ tenantLabels?.status }}:\r\n </span>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"slideToggleOption\"\r\n (slideToggleChange)=\"onSlideToggleChange($event)\"\r\n ></ieeesa-slide-toggle>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <a\r\n class=\"ieeesa-btn-label-lg-bold-16 text-decoration-none mt-lg-3 mt-xl-6 p-sm-0 p-md-0\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n [routerLink]=\"viewTenantsRouteUrl\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--link-mobile'\r\n : 'ieeesa-view-tenant-info--link'\r\n \"\r\n >{{ tenantLabels?.viewAllApps }}</a\r\n >\r\n </div>\r\n <div\r\n class=\"ieeesa-view-tenant-info__accordion ieeesa-view-tenant-info__accordion--blue-bg\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-view-tenant-info__accordion--info' : ''\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let accordionInfo of accordionInfoList;\r\n trackBy: trackByAccordionFn\r\n \"\r\n >\r\n <ng-container [ngSwitch]=\"accordionInfo.id\">\r\n <ng-container *ngSwitchCase=\"accordionDetails.BASIC_DETAILS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__accordion-info\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <ieeesa-icon-button\r\n *ngIf=\"\r\n isBasicDetailsExpanded &&\r\n validateAccess(permissionType.MANAGE_TENANT)\r\n \"\r\n actions\r\n class=\"ieeesa-button\"\r\n [iconButton]=\"editButton\"\r\n (iconButtonClick)=\"openEditTenantForm()\"\r\n ></ieeesa-icon-button>\r\n <ng-container component *ngIf=\"isBasicDetailsExpanded\">\r\n <ieeesa-tenant-basic-details\r\n [tenantDetails]=\"tenantDetails\"\r\n ></ieeesa-tenant-basic-details>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.ROLES_AND_PERMISSIONS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isRolesAndPermissionsExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels.addRole\r\n }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels\r\n .mapPermissionsRoles\r\n }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isRolesAndPermissionsExpanded\">\r\n <mat-divider\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions__divider\"\r\n ></mat-divider>\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [caption]=\"rolesAndPermissionsTableCaption\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [tableActions]=\"tableActions\"\r\n [isScrollSupportMessageNeeded]=\"true\"\r\n [tableColumnActionMenuSize]=\"iconSize\"\r\n [tableColumnActions]=\"menuItems\"\r\n [tableColumnsHeaderText]=\"rolesAndPermissionsTableHeaderName\"\r\n [scrollbarSupportMessage]=\"\r\n rolesAndPermissionsTableSupportMessage\r\n \"\r\n [verticalColumnHeaderNumber]=\"permissionsColumnClassNumber\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n ></ieeesa-data-table>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n ></ieeesa-accordion>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\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-view-tenant-info{background-color:#f2f2f2}.ieeesa-view-tenant-info--bg-white{background-color:#fff;padding:1em 1.5em 0}.ieeesa-view-tenant-info__actions{top:15px;margin-right:20px;position:absolute;right:0}.ieeesa-view-tenant-info--title,.ieeesa-view-tenant-info--action{padding:.75em 0}.ieeesa-view-tenant-info--link{padding:1em .75em 1.3em 0!important}.ieeesa-view-tenant-info--link-mobile{max-width:-moz-fit-content;max-width:fit-content}.ieeesa-view-tenant-info--app-id,.ieeesa-view-tenant-info--app-status{color:#49454f}.ieeesa-view-tenant-info__accordion{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:1.5em .75em}.ieeesa-view-tenant-info__accordion--bg-white{background-color:#fff;box-shadow:none}.ieeesa-view-tenant-info__accordion--info{padding:1em 1em 1.5em}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__accordion-info .ieeesa-button{position:absolute;top:1.25em;right:0}.ieeesa-view-tenant-info__accordion-info .ieeesa-button svg{width:1.3em!important;height:1.3em!important}.ieeesa-view-tenant-info .mat-divider-vertical{margin:0;height:1.4em;color:#cac4d0;width:.063em;border-right-color:#cac4d0}.ieeesa-view-tenant-info .ieeesa-slide-toggle-field .mat-mdc-slide-toggle .mdc-label{color:#000!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__roles-and-permissions__divider{margin-top:12px!important;margin-bottom:16px!important;border-top:1px solid #ccd2da!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mat-expansion-panel-body,.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table .mat-column-permissions{min-width:12.5em}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__column-menu .mat-mdc-icon-button.mat-mdc-button-base{padding:6px;width:24px;height:24px}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__columns-header-text{padding:8px 16px;background:#dae9f1;box-shadow:0 1px #dce3e9 inset}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__trailing,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__notch,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-select,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenant-info__roles-and-permissions .at-mdc-select-min-line,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}.ieeesa-menu .mat-mdc-menu-item{min-height:35px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled"], outputs: ["slideToggleChange"] }, { kind: "component", type: AccordionComponent, selector: "ieeesa-accordion", inputs: ["accordionInfo"], outputs: ["accordionOpened"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: TenantBasicDetailsComponent, selector: "ieeesa-tenant-basic-details", inputs: ["tenantDetails"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "tableColumnActions", "tableColumnActionMenuSize", "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", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "searchResultMessage"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
442
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantDetailsComponent, isStandalone: true, selector: "ieeesa-view-tenant-details", inputs: { apiBaseURL: "apiBaseURL", userPermissions: "userPermissions", routePaths: "routePaths" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-view-tenant-info px-4 pb-4\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--bg-white'\r\n : 'ieeesa-view-tenant-info--bg-blue'\r\n \"\r\n>\r\n <div\r\n class=\"d-flex justify-content-between gap-lg-4 gap-md-3 gap-sm-2 gap-3\"\r\n [ngClass]=\"isMobileView ? 'flex-column gap-2 pb-3' : 'align-item-center'\"\r\n >\r\n <div\r\n class=\"d-flex gap-lg-4 gap-md-3 gap-sm-3 gap-3 ps-0 align-items-md-center align-items-xl-center\"\r\n [ngClass]=\"isMobileView ? 'flex-column' : ''\"\r\n >\r\n <p\r\n class=\"mb-0 ieeesa-headline-lg-32 py-3\"\r\n [ngClass]=\"isMobileView ? '' : 'ieeesa-view-tenant-info--title'\"\r\n >\r\n {{ tenantDetails?.appTitle }}\r\n </p>\r\n <div class=\"d-flex gap-lg-2 gap-md-2 gap-sm-2 gap-2\">\r\n <span\r\n class=\"mb-0 ieeesa-title-sm-14 mt-1\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'ieeesa-view-tenant-info--app-id'\"\r\n >\r\n {{ tenantLabels?.appId }}:\r\n </span>\r\n {{ tenantDetails?.appId }}\r\n <ng-container *ngIf=\"tenantDetails?.appId !== tenantLabels?.saAppId\">\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <span\r\n class=\"mb-0 mt-1 ieeesa-title-sm-14 ieeesa-view-tenant-info--app-status\"\r\n [ngClass]=\"isMobileView ? 'p-0' : ''\"\r\n >\r\n {{ tenantLabels?.status }}:\r\n </span>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"slideToggleOption\"\r\n (slideToggleChange)=\"onSlideToggleChange($event)\"\r\n ></ieeesa-slide-toggle>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <a\r\n class=\"ieeesa-btn-label-lg-bold-16 text-decoration-none mt-lg-3 mt-xl-6 p-sm-0 p-md-0\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n [routerLink]=\"viewTenantsRouteUrl\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--link-mobile'\r\n : 'ieeesa-view-tenant-info--link'\r\n \"\r\n >{{ tenantLabels?.viewAllApps }}</a\r\n >\r\n </div>\r\n <div\r\n class=\"ieeesa-view-tenant-info__accordion ieeesa-view-tenant-info__accordion--blue-bg\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-view-tenant-info__accordion--info' : ''\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let accordionInfo of accordionInfoList;\r\n trackBy: trackByAccordionFn\r\n \"\r\n >\r\n <ng-container [ngSwitch]=\"accordionInfo.id\">\r\n <ng-container *ngSwitchCase=\"accordionDetails.BASIC_DETAILS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__accordion-info\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <ieeesa-icon-button\r\n *ngIf=\"\r\n isBasicDetailsExpanded &&\r\n validateAccess(permissionType.MANAGE_TENANT)\r\n \"\r\n actions\r\n class=\"ieeesa-button\"\r\n [iconButton]=\"editButton\"\r\n (iconButtonClick)=\"openEditTenantForm()\"\r\n ></ieeesa-icon-button>\r\n <ng-container component *ngIf=\"isBasicDetailsExpanded\">\r\n <ieeesa-tenant-basic-details\r\n [tenantDetails]=\"tenantDetails\"\r\n ></ieeesa-tenant-basic-details>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.ROLES_AND_PERMISSIONS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isRolesAndPermissionsExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels.addRole\r\n }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels\r\n .mapPermissionsRoles\r\n }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isRolesAndPermissionsExpanded\">\r\n <mat-divider\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions__divider\"\r\n ></mat-divider>\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [caption]=\"rolesAndPermissionsTableCaption\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [tableActions]=\"tableActions\"\r\n [isScrollSupportMessageNeeded]=\"true\"\r\n [tableColumnActionMenuSize]=\"iconSize\"\r\n [tableColumnActions]=\"menuItems\"\r\n [tableColumnsHeaderText]=\"rolesAndPermissionsTableHeaderName\"\r\n [scrollbarSupportMessage]=\"\r\n rolesAndPermissionsTableSupportMessage\r\n \"\r\n [verticalColumnHeaderNumber]=\"permissionsColumnClassNumber\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n ></ieeesa-data-table>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n ></ieeesa-accordion>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\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-view-tenant-info{background-color:#f2f2f2}.ieeesa-view-tenant-info--bg-white{background-color:#fff;padding:1em 1.5em 0}.ieeesa-view-tenant-info__actions{top:15px;margin-right:20px;position:absolute;right:0}.ieeesa-view-tenant-info--title,.ieeesa-view-tenant-info--action{padding:.75em 0}.ieeesa-view-tenant-info--link{padding:1em .75em 1.3em 0!important}.ieeesa-view-tenant-info--link-mobile{max-width:-moz-fit-content;max-width:fit-content}.ieeesa-view-tenant-info--app-id,.ieeesa-view-tenant-info--app-status{color:#49454f}.ieeesa-view-tenant-info__accordion{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:1.5em .75em}.ieeesa-view-tenant-info__accordion--bg-white{background-color:#fff;box-shadow:none}.ieeesa-view-tenant-info__accordion--info{padding:1em 1em 1.5em}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-body{padding:1.5em 1.5em 1.5em 2.25em}.ieeesa-view-tenant-info__accordion-info .ieeesa-button{position:absolute;top:1.25em;right:0}.ieeesa-view-tenant-info__accordion-info .ieeesa-button svg{width:1.3em!important;height:1.3em!important}.ieeesa-view-tenant-info .mat-divider-vertical{margin:0;height:1.4em;color:#cac4d0;width:.063em;border-right-color:#cac4d0}.ieeesa-view-tenant-info .ieeesa-slide-toggle-field .mat-mdc-slide-toggle .mdc-label{color:#000!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__roles-and-permissions__divider{margin-top:12px!important;margin-bottom:16px!important;border-top:1px solid #ccd2da!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mat-expansion-panel-body,.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table .mat-column-permissions{min-width:12.5em}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__column-menu .mat-mdc-icon-button.mat-mdc-button-base{padding:6px;width:24px;height:24px}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__columns-header-text{padding:8px 16px;background:#dae9f1;box-shadow:0 1px #dce3e9 inset}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__trailing,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__notch,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-select,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenant-info__roles-and-permissions .at-mdc-select-min-line,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}.ieeesa-menu .mat-mdc-menu-item{min-height:35px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled"], outputs: ["slideToggleChange"] }, { kind: "component", type: AccordionComponent, selector: "ieeesa-accordion", inputs: ["accordionInfo"], outputs: ["accordionOpened"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: TenantBasicDetailsComponent, selector: "ieeesa-tenant-basic-details", inputs: ["tenantDetails"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "tableColumnActions", "tableColumnActionMenuSize", "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", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "searchResultMessage"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
443
443
  }
444
444
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantDetailsComponent, decorators: [{
445
445
  type: Component,
@@ -453,7 +453,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
453
453
  IconButtonComponent,
454
454
  MatButtonModule,
455
455
  DataTableComponent,
456
- ], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-view-tenant-info px-4 pb-4\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--bg-white'\r\n : 'ieeesa-view-tenant-info--bg-blue'\r\n \"\r\n>\r\n <div\r\n class=\"d-flex justify-content-between gap-lg-4 gap-md-3 gap-sm-2 gap-3\"\r\n [ngClass]=\"isMobileView ? 'flex-column gap-2 pb-3' : 'align-item-center'\"\r\n >\r\n <div\r\n class=\"d-flex gap-lg-4 gap-md-3 gap-sm-3 gap-3 ps-0 align-items-md-center align-items-xl-center\"\r\n [ngClass]=\"isMobileView ? 'flex-column' : ''\"\r\n >\r\n <p\r\n class=\"mb-0 ieeesa-headline-lg-32 py-3\"\r\n [ngClass]=\"isMobileView ? '' : 'ieeesa-view-tenant-info--title'\"\r\n >\r\n {{ tenantDetails?.appTitle }}\r\n </p>\r\n <div class=\"d-flex gap-lg-2 gap-md-2 gap-sm-2 gap-2\">\r\n <span\r\n class=\"mb-0 ieeesa-title-sm-14 mt-1\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'ieeesa-view-tenant-info--app-id'\"\r\n >\r\n {{ tenantLabels?.appId }}:\r\n </span>\r\n {{ tenantDetails?.appId }}\r\n <ng-container *ngIf=\"tenantDetails?.appId !== tenantLabels?.saAppId\">\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <span\r\n class=\"mb-0 mt-1 ieeesa-title-sm-14 ieeesa-view-tenant-info--app-status\"\r\n [ngClass]=\"isMobileView ? 'p-0' : ''\"\r\n >\r\n {{ tenantLabels?.status }}:\r\n </span>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"slideToggleOption\"\r\n (slideToggleChange)=\"onSlideToggleChange($event)\"\r\n ></ieeesa-slide-toggle>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <a\r\n class=\"ieeesa-btn-label-lg-bold-16 text-decoration-none mt-lg-3 mt-xl-6 p-sm-0 p-md-0\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n [routerLink]=\"viewTenantsRouteUrl\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--link-mobile'\r\n : 'ieeesa-view-tenant-info--link'\r\n \"\r\n >{{ tenantLabels?.viewAllApps }}</a\r\n >\r\n </div>\r\n <div\r\n class=\"ieeesa-view-tenant-info__accordion ieeesa-view-tenant-info__accordion--blue-bg\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-view-tenant-info__accordion--info' : ''\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let accordionInfo of accordionInfoList;\r\n trackBy: trackByAccordionFn\r\n \"\r\n >\r\n <ng-container [ngSwitch]=\"accordionInfo.id\">\r\n <ng-container *ngSwitchCase=\"accordionDetails.BASIC_DETAILS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__accordion-info\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <ieeesa-icon-button\r\n *ngIf=\"\r\n isBasicDetailsExpanded &&\r\n validateAccess(permissionType.MANAGE_TENANT)\r\n \"\r\n actions\r\n class=\"ieeesa-button\"\r\n [iconButton]=\"editButton\"\r\n (iconButtonClick)=\"openEditTenantForm()\"\r\n ></ieeesa-icon-button>\r\n <ng-container component *ngIf=\"isBasicDetailsExpanded\">\r\n <ieeesa-tenant-basic-details\r\n [tenantDetails]=\"tenantDetails\"\r\n ></ieeesa-tenant-basic-details>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.ROLES_AND_PERMISSIONS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isRolesAndPermissionsExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels.addRole\r\n }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels\r\n .mapPermissionsRoles\r\n }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isRolesAndPermissionsExpanded\">\r\n <mat-divider\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions__divider\"\r\n ></mat-divider>\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [caption]=\"rolesAndPermissionsTableCaption\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [tableActions]=\"tableActions\"\r\n [isScrollSupportMessageNeeded]=\"true\"\r\n [tableColumnActionMenuSize]=\"iconSize\"\r\n [tableColumnActions]=\"menuItems\"\r\n [tableColumnsHeaderText]=\"rolesAndPermissionsTableHeaderName\"\r\n [scrollbarSupportMessage]=\"\r\n rolesAndPermissionsTableSupportMessage\r\n \"\r\n [verticalColumnHeaderNumber]=\"permissionsColumnClassNumber\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n ></ieeesa-data-table>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n ></ieeesa-accordion>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\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-view-tenant-info{background-color:#f2f2f2}.ieeesa-view-tenant-info--bg-white{background-color:#fff;padding:1em 1.5em 0}.ieeesa-view-tenant-info__actions{top:15px;margin-right:20px;position:absolute;right:0}.ieeesa-view-tenant-info--title,.ieeesa-view-tenant-info--action{padding:.75em 0}.ieeesa-view-tenant-info--link{padding:1em .75em 1.3em 0!important}.ieeesa-view-tenant-info--link-mobile{max-width:-moz-fit-content;max-width:fit-content}.ieeesa-view-tenant-info--app-id,.ieeesa-view-tenant-info--app-status{color:#49454f}.ieeesa-view-tenant-info__accordion{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:1.5em .75em}.ieeesa-view-tenant-info__accordion--bg-white{background-color:#fff;box-shadow:none}.ieeesa-view-tenant-info__accordion--info{padding:1em 1em 1.5em}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__accordion-info .ieeesa-button{position:absolute;top:1.25em;right:0}.ieeesa-view-tenant-info__accordion-info .ieeesa-button svg{width:1.3em!important;height:1.3em!important}.ieeesa-view-tenant-info .mat-divider-vertical{margin:0;height:1.4em;color:#cac4d0;width:.063em;border-right-color:#cac4d0}.ieeesa-view-tenant-info .ieeesa-slide-toggle-field .mat-mdc-slide-toggle .mdc-label{color:#000!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__roles-and-permissions__divider{margin-top:12px!important;margin-bottom:16px!important;border-top:1px solid #ccd2da!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mat-expansion-panel-body,.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table .mat-column-permissions{min-width:12.5em}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__column-menu .mat-mdc-icon-button.mat-mdc-button-base{padding:6px;width:24px;height:24px}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__columns-header-text{padding:8px 16px;background:#dae9f1;box-shadow:0 1px #dce3e9 inset}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__trailing,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__notch,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-select,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenant-info__roles-and-permissions .at-mdc-select-min-line,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}.ieeesa-menu .mat-mdc-menu-item{min-height:35px!important}\n"] }]
456
+ ], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-view-tenant-info px-4 pb-4\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--bg-white'\r\n : 'ieeesa-view-tenant-info--bg-blue'\r\n \"\r\n>\r\n <div\r\n class=\"d-flex justify-content-between gap-lg-4 gap-md-3 gap-sm-2 gap-3\"\r\n [ngClass]=\"isMobileView ? 'flex-column gap-2 pb-3' : 'align-item-center'\"\r\n >\r\n <div\r\n class=\"d-flex gap-lg-4 gap-md-3 gap-sm-3 gap-3 ps-0 align-items-md-center align-items-xl-center\"\r\n [ngClass]=\"isMobileView ? 'flex-column' : ''\"\r\n >\r\n <p\r\n class=\"mb-0 ieeesa-headline-lg-32 py-3\"\r\n [ngClass]=\"isMobileView ? '' : 'ieeesa-view-tenant-info--title'\"\r\n >\r\n {{ tenantDetails?.appTitle }}\r\n </p>\r\n <div class=\"d-flex gap-lg-2 gap-md-2 gap-sm-2 gap-2\">\r\n <span\r\n class=\"mb-0 ieeesa-title-sm-14 mt-1\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'ieeesa-view-tenant-info--app-id'\"\r\n >\r\n {{ tenantLabels?.appId }}:\r\n </span>\r\n {{ tenantDetails?.appId }}\r\n <ng-container *ngIf=\"tenantDetails?.appId !== tenantLabels?.saAppId\">\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <span\r\n class=\"mb-0 mt-1 ieeesa-title-sm-14 ieeesa-view-tenant-info--app-status\"\r\n [ngClass]=\"isMobileView ? 'p-0' : ''\"\r\n >\r\n {{ tenantLabels?.status }}:\r\n </span>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"slideToggleOption\"\r\n (slideToggleChange)=\"onSlideToggleChange($event)\"\r\n ></ieeesa-slide-toggle>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <a\r\n class=\"ieeesa-btn-label-lg-bold-16 text-decoration-none mt-lg-3 mt-xl-6 p-sm-0 p-md-0\"\r\n href=\"javascript:void(0)\"\r\n rel=\"noopener noreferrer\"\r\n [routerLink]=\"viewTenantsRouteUrl\"\r\n [ngClass]=\"\r\n isMobileView\r\n ? 'ieeesa-view-tenant-info--link-mobile'\r\n : 'ieeesa-view-tenant-info--link'\r\n \"\r\n >{{ tenantLabels?.viewAllApps }}</a\r\n >\r\n </div>\r\n <div\r\n class=\"ieeesa-view-tenant-info__accordion ieeesa-view-tenant-info__accordion--blue-bg\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-view-tenant-info__accordion--info' : ''\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let accordionInfo of accordionInfoList;\r\n trackBy: trackByAccordionFn\r\n \"\r\n >\r\n <ng-container [ngSwitch]=\"accordionInfo.id\">\r\n <ng-container *ngSwitchCase=\"accordionDetails.BASIC_DETAILS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__accordion-info\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <ieeesa-icon-button\r\n *ngIf=\"\r\n isBasicDetailsExpanded &&\r\n validateAccess(permissionType.MANAGE_TENANT)\r\n \"\r\n actions\r\n class=\"ieeesa-button\"\r\n [iconButton]=\"editButton\"\r\n (iconButtonClick)=\"openEditTenantForm()\"\r\n ></ieeesa-icon-button>\r\n <ng-container component *ngIf=\"isBasicDetailsExpanded\">\r\n <ieeesa-tenant-basic-details\r\n [tenantDetails]=\"tenantDetails\"\r\n ></ieeesa-tenant-basic-details>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"accordionDetails.ROLES_AND_PERMISSIONS\">\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n >\r\n <div\r\n actions\r\n *ngIf=\"isRolesAndPermissionsExpanded\"\r\n class=\"d-flex gap-3\"\r\n [ngClass]=\"\r\n isMobileView ? 'mb-3 px-4' : 'ieeesa-view-tenant-info__actions'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels.addRole\r\n }}\r\n </button>\r\n <button\r\n mat-button\r\n class=\"mat-tertiary-button\"\r\n [ngClass]=\"isMobileView ? 'p-0' : 'px-2 py-2'\"\r\n >\r\n {{\r\n constants.viewRolesAndPermissions.actionButtonLabels\r\n .mapPermissionsRoles\r\n }}\r\n </button>\r\n </div>\r\n <ng-container component *ngIf=\"isRolesAndPermissionsExpanded\">\r\n <mat-divider\r\n class=\"ieeesa-view-tenant-info__roles-and-permissions__divider\"\r\n ></mat-divider>\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [caption]=\"rolesAndPermissionsTableCaption\"\r\n [paginatorConfig]=\"paginatorConfig\"\r\n [tableActions]=\"tableActions\"\r\n [isScrollSupportMessageNeeded]=\"true\"\r\n [tableColumnActionMenuSize]=\"iconSize\"\r\n [tableColumnActions]=\"menuItems\"\r\n [tableColumnsHeaderText]=\"rolesAndPermissionsTableHeaderName\"\r\n [scrollbarSupportMessage]=\"\r\n rolesAndPermissionsTableSupportMessage\r\n \"\r\n [verticalColumnHeaderNumber]=\"permissionsColumnClassNumber\"\r\n (paginationChange)=\"onTablePaginationChange($event)\"\r\n ></ieeesa-data-table>\r\n </ng-container>\r\n </ieeesa-accordion>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ieeesa-accordion\r\n [accordionInfo]=\"accordionInfo\"\r\n (accordionOpened)=\"showTenantDetails(accordionInfo, $event)\"\r\n ></ieeesa-accordion>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\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-view-tenant-info{background-color:#f2f2f2}.ieeesa-view-tenant-info--bg-white{background-color:#fff;padding:1em 1.5em 0}.ieeesa-view-tenant-info__actions{top:15px;margin-right:20px;position:absolute;right:0}.ieeesa-view-tenant-info--title,.ieeesa-view-tenant-info--action{padding:.75em 0}.ieeesa-view-tenant-info--link{padding:1em .75em 1.3em 0!important}.ieeesa-view-tenant-info--link-mobile{max-width:-moz-fit-content;max-width:fit-content}.ieeesa-view-tenant-info--app-id,.ieeesa-view-tenant-info--app-status{color:#49454f}.ieeesa-view-tenant-info__accordion{background-color:#fff;box-shadow:0 1px 4px #00000040,0 4px #00b5e2 inset;padding:1.5em .75em}.ieeesa-view-tenant-info__accordion--bg-white{background-color:#fff;box-shadow:none}.ieeesa-view-tenant-info__accordion--info{padding:1em 1em 1.5em}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__accordion-info .mat-accordion .mat-expansion-panel-body{padding:1.5em 1.5em 1.5em 2.25em}.ieeesa-view-tenant-info__accordion-info .ieeesa-button{position:absolute;top:1.25em;right:0}.ieeesa-view-tenant-info__accordion-info .ieeesa-button svg{width:1.3em!important;height:1.3em!important}.ieeesa-view-tenant-info .mat-divider-vertical{margin:0;height:1.4em;color:#cac4d0;width:.063em;border-right-color:#cac4d0}.ieeesa-view-tenant-info .ieeesa-slide-toggle-field .mat-mdc-slide-toggle .mdc-label{color:#000!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-accordion .mat-accordion .mat-expansion-panel-spacing.mat-expanded{position:relative}.ieeesa-view-tenant-info__roles-and-permissions__divider{margin-top:12px!important;margin-bottom:16px!important;border-top:1px solid #ccd2da!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-header-cell{white-space:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mat-expansion-panel-body,.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table{padding-left:0;padding-right:0}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table .mat-column-permissions{min-width:12.5em}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__column-menu .mat-mdc-icon-button.mat-mdc-button-base{padding:6px;width:24px;height:24px}.ieeesa-view-tenant-info__roles-and-permissions .ieeesa-data-table__columns-header-text{padding:8px 16px;background:#dae9f1;box-shadow:0 1px #dce3e9 inset}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-container{padding:0;flex-wrap:nowrap}.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__trailing,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__notch,.ieeesa-view-tenant-info__roles-and-permissions .mdc-notched-outline__leading{border:none!important}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-select,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{margin:0}.ieeesa-view-tenant-info__roles-and-permissions .at-mdc-select-min-line,.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-range-label{color:#1c1d1e}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-paginator-page-size-label{position:relative;color:#63666a;left:2em}.ieeesa-view-tenant-info__roles-and-permissions .mat-mdc-select-value{display:flex;justify-content:center}.ieeesa-menu__item:not(:last-of-type){margin-bottom:0!important}.ieeesa-menu .mat-mdc-menu-item{min-height:35px!important}\n"] }]
457
457
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.BreakpointObserverService }, { type: i3.TenantApplicationsService }, { type: i2.GlobalErrorHandlerService }, { type: i4.SharedService }]; }, propDecorators: { apiBaseURL: [{
458
458
  type: Input
459
459
  }], userPermissions: [{
@@ -461,4 +461,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
461
461
  }], routePaths: [{
462
462
  type: Input
463
463
  }] } });
464
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnQtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvY29tcG9uZW50cy92aWV3LXRlbmFudC1kZXRhaWxzL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnQtZGV0YWlscy92aWV3LXRlbmFudC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBRUwsY0FBYyxFQUdkLG9CQUFvQixFQUVwQixTQUFTLEVBQ1QsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUtuQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFVN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FB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O1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQXJkVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwwTEMxRnZDLG83TUFnS0EsbzdXRHBGSSxZQUFZLHltQkFDWixZQUFZLHdRQUNaLG9CQUFvQiwwSkFDcEIsa0JBQWtCLHFIQUNsQixnQkFBZ0IsbUlBQ2hCLDJCQUEyQixtR0FDM0IsbUJBQW1CLHFJQUNuQixlQUFlLDRRQUNmLGtCQUFrQjs7NEZBTVQsMEJBQTBCO2tCQW5CdEMsU0FBUzsrQkFFRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7b1BBSTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICBHbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBBY2NvcmRpb25JbmZvLFxyXG4gIE1vZGFsQ29tcG9uZW50LFxyXG4gIE1lbnUsXHJcbiAgUGFnaW5hdG9yQ29uZmlnLFxyXG4gIFNsaWRlVG9nZ2xlQ29tcG9uZW50LFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBBbGlnblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICBSYWRpb09wdGlvbixcclxuICBJY29uQnV0dG9uLFxyXG4gIFNsaWRlVG9nZ2xlT3B0aW9uLFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxuICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgQWNjb3JkaW9uQ29tcG9uZW50LFxyXG4gIEFjY29yZGlvbkRldGFpbHMsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHQgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVuYW50c1Blcm1pc3Npb25zLCBVc2VyUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgVGVuYW50c1JvdXRlc0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGZWF0dXJlcyB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50QmFzaWNJbmZvLFxyXG4gIFRlbmFudERldGFpbHNSZXNwb25zZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50RnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgQ3JlYXRlVGVuYW50QXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jcmVhdGUtdGVuYW50LWFwcGxpY2F0aW9uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZCxcclxuICBVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdXBkYXRlLXRlbmFudC1zdGF0dXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGZWF0dXJlUGVybWlzc2lvbklkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZlYXR1cmUtcGVybWlzc2lvbi1pZC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgQXBwVHlwZUNvbmZpZyxcclxuICBHZXRBcHBUeXBlc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRCYXNpY0RldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi90ZW5hbnQtYmFzaWMtZGV0YWlscy90ZW5hbnQtYmFzaWMtZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkLFxyXG4gIEdldFJvbGVzQW5kUGVybWlzc2lvbnNSZXNwb25zZSxcclxuICBHZXRSb2xlc1Jlc3BvbnNlLFxyXG4gIFJvbGUsXHJcbiAgUm9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmcsXHJcbiAgUm9sZXNBbmRQZXJtaXNzaW9ucyxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGVybWlzc2lvbi10eXBlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2Etdmlldy10ZW5hbnQtZGV0YWlscycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIEFjY29yZGlvbkNvbXBvbmVudCxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBUZW5hbnRCYXNpY0RldGFpbHNDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld1RlbmFudERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXNlclBlcm1pc3Npb25zITogVXNlclBlcm1pc3Npb25bXTtcclxuICBASW5wdXQoKSByb3V0ZVBhdGhzITogVGVuYW50c1JvdXRlc0NvbmZpZztcclxuICBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dDtcclxuICB0ZW5hbnRMYWJlbHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmxhYmVsO1xyXG4gIHNsaWRlVG9nZ2xlT3B0aW9uID0ge1xyXG4gICAgaWQ6IDEsXHJcbiAgICBsYWJlbDogdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzPy5sYWJlbD8uYWN0aXZlLFxyXG4gICAgY2hlY2tlZDogdHJ1ZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICB9O1xyXG4gIGVkaXRCdXR0b246IEljb25CdXR0b24gPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmJ1dHRvbnM7XHJcbiAgdGVuYW50RGV0YWlscyE6IFRlbmFudEJhc2ljSW5mbztcclxuICBhY2NvcmRpb25JbmZvTGlzdDogQWNjb3JkaW9uSW5mb1tdID0gSlNPTi5wYXJzZShcclxuICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuY29uc3RhbnRzPy52aWV3VGVuYW50cz8udGVuYW50QWNjb3JkaW9uSW5mbylcclxuICApO1xyXG4gIGFwcElkID0gJyc7XHJcbiAgaWNvblNpemUgPSB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LmNvbHVtbkFjdGlvbkljb25TaXplO1xyXG4gIHJvbGVzQW5kUGVybWlzc2lvbnNUYWJsZUNhcHRpb24gPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LnZpZXdSb2xlc0FuZFBlcm1pc3Npb25zPy50YWJsZUNhcHRpb247XHJcbiAgcm9sZXNBbmRQZXJtaXNzaW9uc1RhYmxlSGVhZGVyTmFtZSA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LnRhYmxlQ29sdW1uc0hlYWRlclRleHQ7XHJcbiAgcm9sZXNBbmRQZXJtaXNzaW9uc1RhYmxlU3VwcG9ydE1lc3NhZ2UgPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LnZpZXdSb2xlc0FuZFBlcm1pc3Npb25zPy5zY3JvbGxiYXJTdXBwb3J0TWVzc2FnZTtcclxuICBwZXJtaXNzaW9uc0NvbHVtbkNsYXNzTnVtYmVyID0gMTtcclxuICBtZW51SXRlbXM6IE1lbnVbXSA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LmNvbHVtbkFjdGlvbk1lbnVJdGVtcztcclxuICBjb2x1bW5TY2hlbWE6IFRhYmxlQ29sdW1uU2NoZW1hW10gPSBbXTtcclxuICB0YWJsZURhdGE6IFJvbGVzQW5kUGVybWlzc2lvbnNbXSA9IFtdO1xyXG4gIGlzUm9sZXNBbmRQZXJtaXNzaW9uc0V4cGFuZGVkID0gZmFsc2U7XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy5jb25zdGFudHM/LnZpZXdSb2xlc0FuZFBlcm1pc3Npb25zPy5wYWdlU2l6ZU9wdGlvbnNbMF0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMuY29uc3RhbnRzPy52aWV3Um9sZXNBbmRQZXJtaXNzaW9ucz8ucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgdGFibGVBY3Rpb25zOiBUYWJsZUFjdGlvbnMgPSB7XHJcbiAgICBpc1BhZ2luYXRpb25OZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICB2aWV3VGVuYW50c1JvdXRlVXJsITogc3RyaW5nO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZGlhbG9nUmVmOiBhbnk7XHJcbiAgYWNjb3JkaW9uRGV0YWlscyA9IEFjY29yZGlvbkRldGFpbHM7XHJcbiAgYXBwVHlwZU9wdGlvbnMhOiBSYWRpb09wdGlvbltdO1xyXG4gIGlzQmFzaWNEZXRhaWxzRXhwYW5kZWQgPSBmYWxzZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGVkaXRUZW5hbnRTY3JlZW5UZXh0czogYW55ID0gdGhpcy5jb25zdGFudHM/LmVkaXRUZW5hbnQ7XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICB1c2VyVGVuYW50c1Blcm1pc3Npb25zITogVGVuYW50c1Blcm1pc3Npb25zW107XHJcbiAgcGVybWlzc2lvblR5cGUgPSBQZXJtaXNzaW9uVHlwZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdGVuYW50QXBwU2VydmljZTogVGVuYW50QXBwbGljYXRpb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHsgbWF0Y2hlczogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQ/Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdmlldyB0ZW5hbnQgZGV0YWlscyBjb21wb25lbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlUGF0aHMgPSB0aGlzLnJvdXRlUGF0aHMgPz8gdGhpcy5jb25zdGFudHM/LnJvdXRlQ29uZmlnUGF0aDtcclxuICAgIHRoaXMudmlld1RlbmFudHNSb3V0ZVVybCA9IGAvJHt0aGlzLnJvdXRlUGF0aHM/LnZpZXdUZW5hbnRzfWA7XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2U/LnNldEFwcENvbmZpZyh0aGlzLmFwaUJhc2VVUkwsIHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9ucyA9XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2U/LmZpbHRlclBlcm1pc3Npb24odGhpcy51c2VyUGVybWlzc2lvbnMpO1xyXG4gICAgdGhpcy5hcHBJZCA9IHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKClcclxuICAgICAgPy5hcHBJZCBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmdldFRlbmFudERldGFpbHModGhpcy5hcHBJZCk7XHJcbiAgICB0aGlzLmdldEFwcGxpY2F0aW9uVHlwZXMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0ZWQgdGVuYW50IGRldGFpbHMgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0VGVuYW50RGV0YWlscyhhcHBJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2VcclxuICAgICAgLmdldFRlbmFudERldGFpbHMoYXBwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBUZW5hbnREZXRhaWxzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IHJlc3BvbnNlPy5ib2R5IGFzIFRlbmFudEJhc2ljSW5mbztcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnNldFNlbGVjdGVkVGVuYW50SW5mb3JtYXRpb24oXHJcbiAgICAgICAgICAgICAgdGhpcy50ZW5hbnREZXRhaWxzXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2xpZGVUb2dnbGVPcHRpb24uY2hlY2tlZCA9IHRoaXMudGVuYW50RGV0YWlsc1xyXG4gICAgICAgICAgICAgIC5zdGF0dXMgYXMgYm9vbGVhbjtcclxuICAgICAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5sYWJlbCA9IHRoaXMudGVuYW50RGV0YWlscy5zdGF0dXNcclxuICAgICAgICAgICAgICA/IHRoaXMudGVuYW50TGFiZWxzPy5hY3RpdmVcclxuICAgICAgICAgICAgICA6IHRoaXMudGVuYW50TGFiZWxzPy5pbmFjdGl2ZTtcclxuICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSB0aGlzLnRlbmFudERldGFpbHMuZmVhdHVyZXMgYXMgRmVhdHVyZXNbXTtcclxuICAgICAgICAgICAgZmVhdHVyZXMubWFwKChmZWF0dXJlOiBGZWF0dXJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGZlYXR1cmU/LmZlYXR1cmVJZCA9PT1cclxuICAgICAgICAgICAgICAgICAgRmVhdHVyZVBlcm1pc3Npb25JZC5NRUVUSU5HU19BTkRfRVZFTlRTIHx8XHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlPy5mZWF0dXJlSWQgPT09IEZlYXR1cmVQZXJtaXNzaW9uSWQuQkFMTE9UU1xyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIHRoaXMuYWNjb3JkaW9uSW5mb0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFjY29yZGlvbkluZm9MaXN0Lmxlbmd0aCArIDEsXHJcbiAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogZmVhdHVyZT8uZmVhdHVyZU5hbWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzLmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXkgdGhlIGNvcnJlc3BvbmRpbmcgdGVuYW50IGJhc2ljIG9yIGZlYXR1cmUgZGV0YWlscyBiYXNlZCBvbiBzZWxlY3RlZCBhY2NvcmRpb24uXHJcbiAgICogQHBhcmFtIHtBY2NvcmRpb25JbmZvfSBhY2NvcmRpb25JbmZvXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBleHBhbmRlZFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dUZW5hbnREZXRhaWxzKGFjY29yZGlvbkluZm86IEFjY29yZGlvbkluZm8sIGV4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBhY2NvcmRpb25JZCA9IGFjY29yZGlvbkluZm8uaWQgYXMgbnVtYmVyO1xyXG4gICAgc3dpdGNoIChhY2NvcmRpb25JZCkge1xyXG4gICAgICBjYXNlIDE6IHtcclxuICAgICAgICB0aGlzLmlzQmFzaWNEZXRhaWxzRXhwYW5kZWQgPSBleHBhbmRlZDtcclxuICAgICAgICBpZiAoZXhwYW5kZWQpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0QXBwbGljYXRpb25UeXBlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIDI6IHtcclxuICAgICAgICB0aGlzLmlzUm9sZXNBbmRQZXJtaXNzaW9uc0V4cGFuZGVkID0gZXhwYW5kZWQ7XHJcbiAgICAgICAgaWYgKGV4cGFuZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcucmVjb3Jkc1BlclBhZ2UgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LnBhZ2VTaXplT3B0aW9uc1swXTtcclxuICAgICAgICAgIHRoaXMuZ2V0Um9sZXNBbmRJbml0aWFsaXplVGFibGVTY2hlbWEoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgY29uZmlndXJlZCByb2xlcyBvZiB0aGUgc2VsZWN0ZWQgdGVuYW50IGFuZCBjcmVhdGVzIHRoZSBjb2x1bW4gc2NoZW1hLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvbGVzQW5kSW5pdGlhbGl6ZVRhYmxlU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRSb2xlcyh0aGlzLmFwcElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogR2V0Um9sZXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRSb2xlc0FuZFBlcm1pc3Npb25zQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgcm9sZXNMaXN0ID0gcmVzcG9uc2UuYm9keSBhcyBSb2xlW107XHJcbiAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25zdGFudHMudmlld1JvbGVzQW5kUGVybWlzc2lvbnMudGFibGVDZWxsVmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW1uU2NoZW1hID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgY29sdW1uRGVmOiAncGVybWlzc2lvbnMnLFxyXG4gICAgICAgICAgICAgICAgaGVhZGluZzpcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdGFudHMudmlld1JvbGVzQW5kUGVybWlzc2lvbnMudGFibGVDb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICAucGVybWlzc2lvbnMsXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAgICAgICAgIGNlbGxEYXRhOiAocm9sZXNBbmRQZXJtaXNzaW9uczogUm9sZXNBbmRQZXJtaXNzaW9ucykgPT5cclxuICAgICAgICAgICAgICAgICAgcm9sZXNBbmRQZXJtaXNzaW9ucy5wZXJtaXNzaW9uLFxyXG4gICAgICAgICAgICAgICAgaXNTdGlja3lDb2x1bW46IHRydWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgcm9sZXNMaXN0Lm1hcCgocm9sZTogUm9sZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbHVtblNjaGVtYS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBpbmRleCArIDEsXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5EZWY6IHJvbGUucm9sZUlkLFxyXG4gICAgICAgICAgICAgICAgaGVhZGluZzogcm9sZS5yb2xlTmFtZSxcclxuICAgICAgICAgICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgICAgICAgICAgaGFzQ29sdW1uQWN0aW9uczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNlbGxEYXRhOiAocm9sZXNBbmRQZXJtaXNzaW9uczogUm9sZXNBbmRQZXJtaXNzaW9ucykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gcm9sZXNBbmRQZXJtaXNzaW9ucy5yb2xlSWRzTGlzdC5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIChyb2xlSWQ6IHN0cmluZykgPT4gcm9sZS5yb2xlSWQgPT09IHJvbGVJZFxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgPyBjZWxsVmFsdWUueWVzXHJcbiAgICAgICAgICAgICAgICAgICAgOiBjZWxsVmFsdWUubm87XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgcm9sZXMgYW5kIHBlcm1pc3Npb25zIG1hcHBpbmdzIGZvciB0aGUgc2VsZWN0ZWQgdGVuYW50IGFuZCBhbmQgaW5pdGlhbGl6ZSB0YWJsZSB2aWV3LlxyXG4gICAqIEBwYXJhbSB7R2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRSb2xlc0FuZFBlcm1pc3Npb25zQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyhcclxuICAgIHBheWxvYWQ6IEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkXHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2VcclxuICAgICAgLmdldFJvbGVzQW5kUGVybWlzc2lvbnNNYXBwaW5ncyh0aGlzLmFwcElkLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZy50b3RhbFJlY29yZHMgPSByZXNwb25zZT8uYm9keVxyXG4gICAgICAgICAgICAgID8udG90YWxSZWNvcmRzIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgY29uc3Qgcm9sZXNBbmRQZXJtaXNzaW9uc0xpc3QgPSByZXNwb25zZT8uYm9keVxyXG4gICAgICAgICAgICAgID8ucm9sZVBlcm1pc3Npb25EZXRhaWxzIGFzIFJvbGVzQW5kUGVybWlzc2lvbnNNYXBwaW5nW107XHJcbiAgICAgICAgICAgIHJvbGVzQW5kUGVybWlzc2lvbnNMaXN0Lm1hcCgocGVybWlzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCByb2xlSWRzTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgICByb2xlSWRzTGlzdCA9IHBlcm1pc3Npb24ucm9sZUxpc3QubWFwKChyb2xlKSA9PiByb2xlLnJvbGVJZCk7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uOiBwZXJtaXNzaW9uLnBlcm1pc3Npb25OYW1lLFxyXG4gICAgICAgICAgICAgICAgcm9sZUlkc0xpc3Q6IHJvbGVJZHNMaXN0LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggdGhlIHJvbGVzIGFuZCBwZXJtaXNzaW9ucyByZWNvcmRzIGJhc2VkIG9uIG9mZnNldCBhbmQgcGFnZSBzaXplIHdoaWxlIHRoZSBwYWdpbmF0aW9uIGNoYW5nZXMuXHJcbiAgICogQHBhcmFtIHtQYWdlRXZlbnR9IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVGFibGVQYWdpbmF0aW9uQ2hhbmdlKHBhZ2VFdmVudDogUGFnZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFJvbGVzQW5kUGVybWlzc2lvbnNBbmRJbml0aWFsaXplVGFibGVWaWV3KHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG9mZnNldDogcGFnZUV2ZW50LnBhZ2VJbmRleCxcclxuICAgICAgICBwYWdlU2l6ZTogcGFnZUV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEtlZXBzIHRyYWNrIG9mIHRoZSBhY2NvcmRpb24gYmFzZWQgb24gdGhlIGVsZW1lbnQncyBJRCBpbiBET00gdHJlZS5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5QWNjb3JkaW9uRm4oaW5kZXg6IG51bWJlciwgaXRlbTogQWNjb3JkaW9uSW5mbyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaXRlbT8uaWQgYXMgbnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGVkaXQgdGVuYW50IG1vZGFsIGFuZCBjYWxscyBvcGVuTW9kYWwgbWV0aG9kLlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5FZGl0VGVuYW50Rm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50QXBwU2VydmljZT8uc2V0VGVuYW50RnVuY3Rpb25UeXBlKFRlbmFudEZ1bmN0aW9uVHlwZT8uRURJVCk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLnRlbmFudERldGFpbHM/LmFwcFRpdGxlLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZVRlbmFudEFwcGxpY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtZWRpdC10ZW5hbnQnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIG1vZGFsIGNvbXBvbmVudCB3aXRoIHJlY2VpdmVkIHBhcmFtcyBhbmQgaGFuZGxlcyBmb3JtIHN1Ym1pc3Npb24gc3VjY2VzcyBhbmQgZXJyb3JzLlxyXG4gICAqIEBwYXJhbSB7Kn0gZGlhbG9nT3B0aW9uc1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY2xhc3NOYW1lXVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0RldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBvcGVuTW9kYWwoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgZGlhbG9nT3B0aW9uczogYW55LFxyXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gJyc7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHdpZHRoOiAnJyxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtbW9kYWwtZGlhbG9nJywgY2xhc3NOYW1lXSxcclxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LnN1Ym1pdEZvcm1SZXNwb25zZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIG5vLXVudXNlZC12YXJzXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICBgJHt0aGlzLnRlbmFudERldGFpbHM/LmFwcFRpdGxlfSAke3RoaXMuZWRpdFRlbmFudFNjcmVlblRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9ufWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IHtcclxuICAgICAgICAgIC4uLih0aGlzLnRlbmFudEFwcFNlcnZpY2UuZ2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbigpIGFzIFRlbmFudEJhc2ljSW5mbyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LmZvcm1DYW5jZWxcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENhbGxzIG9wZW5UZW5hbnRTdGF0dXNDb25maXJtYXRpb25Nb2RhbCB0byBjaGFuZ2UgdGhlIHN0YXR1cyBvZiB0ZW5hbnQgb24gc2xpZGUgdG9nZ2xlIGNoYW5nZS5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSBzbGlkZVRvZ2dsZU9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2xpZGVUb2dnbGVDaGFuZ2Uoc2xpZGVUb2dnbGVPcHRpb246IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5UZW5hbnRTdGF0dXNDb25maXJtYXRpb25Nb2RhbChzbGlkZVRvZ2dsZU9wdGlvbj8uY2hlY2tlZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBjb25maXJtYXRpb24gbW9kYWwgdG8gaW5hY3RpdmF0ZS9yZWFjdGl2YXRlIHRoZSB0ZW5hbnQuXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc0FjdGl2YXRlXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlblRlbmFudFN0YXR1c0NvbmZpcm1hdGlvbk1vZGFsKGlzQWN0aXZhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbmZpcm1hdGlvbkluZm8gPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmNvbmZpcm1hdGlvbkluZm87XHJcbiAgICBjb25zdCBzdGF0dXNUZXh0ID0gaXNBY3RpdmF0ZVxyXG4gICAgICA/IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2VBY3RpdmF0ZVxyXG4gICAgICA6IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2VJbmFjdGl2YXRlO1xyXG4gICAgY29uc3QgdXBkYXRlVGVuYW50U3RhdHVzTW9kYWxPcHRpb25zID0ge1xyXG4gICAgICBsZWZ0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LmxlZnRCdXR0b25MYWJlbCxcclxuICAgICAgcmlnaHRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ucmlnaHRCdXR0b25MYWJlbCxcclxuICAgICAgcHJvbXB0TWVzc2FnZTogYCR7Y29uZmlybWF0aW9uSW5mbz8ucHJvbXB0TWVzc2FnZX0gJHtzdGF0dXNUZXh0fSAke3RoaXMudGVuYW50RGV0YWlscz8uYXBwVGl0bGV9P2AsXHJcbiAgICAgIGFjdGlvbkJ1dHRvbkFsaWduOiB0aGlzLmFsaWdubWVudFR5cGU/Lk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHVwZGF0ZVRlbmFudFN0YXR1c01vZGFsT3B0aW9ucyxcclxuICAgICAgd2lkdGg6ICdhdXRvJyxcclxuICAgICAgYXV0b0ZvY3VzOiAnZGlhbG9nJyxcclxuICAgICAgYXJpYUxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5hcmlhTGFiZWw/LmFsZXJ0LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVGVuYW50U3RhdHVzKGlzQWN0aXZhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNsaWRlVG9nZ2xlU3RhdHVzKGlzQWN0aXZhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHRlbmFudCBzdGF0dXMgdG8gdGhlIHNlcnZlciB1c2luZyBodHRwIHJlcXVlc3QgYW5kIGRpc3BsYXkgc3VjY2Vzcy9lcnJvciBtZXNzYWdlIGJhc2VkIG9uIHJlcXVlc3QgcmVzcG9uc2UgKHN1Y2Nlc3Mgb3IgZmFpbHVyZSkuXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc0FjdGl2YXRlXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlVGVuYW50U3RhdHVzKGlzQWN0aXZhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHVwZGF0ZVRlbmFudFN0YXR1c1JlcXVlc3RQYXlsb2FkOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGFwcElkOiB0aGlzLnRlbmFudERldGFpbHM/LmFwcElkLFxyXG4gICAgICAgIHN0YXR1czogaXNBY3RpdmF0ZSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2VcclxuICAgICAgLnVwZGF0ZVRlbmFudFN0YXR1cyh1cGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5sYWJlbCA9IGlzQWN0aXZhdGVcclxuICAgICAgICAgICAgICA/IHRoaXMudGVuYW50TGFiZWxzPy5hY3RpdmVcclxuICAgICAgICAgICAgICA6IHRoaXMudGVuYW50TGFiZWxzPy5pbmFjdGl2ZTtcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnREZXRhaWxzLnN0YXR1cyA9IGlzQWN0aXZhdGU7XHJcbiAgICAgICAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMudGVuYW50RGV0YWlscyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTbGlkZVRvZ2dsZVN0YXR1cyhpc0FjdGl2YXRlKTtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyBzbGlkZSB0b2dnbGUgY2hlY2tlZCBzdGF0dXMgYW5kIGxhYmVsLlxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBY3RpdmF0ZVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFNsaWRlVG9nZ2xlU3RhdHVzKGlzQWN0aXZhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2xpZGVUb2dnbGVPcHRpb24uY2hlY2tlZCA9ICFpc0FjdGl2YXRlO1xyXG4gICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5sYWJlbCA9ICFpc0FjdGl2YXRlXHJcbiAgICAgID8gdGhpcy50ZW5hbnRMYWJlbHM/LmFjdGl2ZVxyXG4gICAgICA6IHRoaXMudGVuYW50TGFiZWxzPy5pbmFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGFwcGxpY2F0aW9uL3RlbmFudCB0eXBlcy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRBcHBsaWNhdGlvblR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRBcHBsaWNhdGlvblR5cGVzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEdldEFwcFR5cGVzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwVHlwZU9wdGlvbnMgPVxyXG4gICAgICAgICAgICAgIHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRBcHBsaWNhdGlvblR5cGVPcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHkgYXMgQXBwVHlwZUNvbmZpZ1tdXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnNldEFwcGxpY2F0aW9uVHlwZShcclxuICAgICAgICAgICAgICB0aGlzLmFwcFR5cGVPcHRpb25zIGFzIFJhZGlvT3B0aW9uW11cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzPy5lcnJvcnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gICAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHBlcm1pc3Npb24gYmFzZWQgYWNjZXNzIGZvciBwcm92aWRlZCBmZWF0dXJlLlxyXG4gICAqIEBwYXJhbSB7UGVybWlzc2lvblR5cGV9IHBlcm1pc3Npb25UeXBlXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICAgIHZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIHBlcm1pc3Npb25UeXBlLFxyXG4gICAgICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQ/Lm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2Etdmlldy10ZW5hbnQtaW5mbyBweC00IHBiLTRcIlxyXG4gIFtuZ0NsYXNzXT1cIlxyXG4gICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgID8gJ2llZWVzYS12aWV3LXRlbmFudC1pbmZvLS1iZy13aGl0ZSdcclxuICAgICAgOiAnaWVlZXNhLXZpZXctdGVuYW50LWluZm8tLWJnLWJsdWUnXHJcbiAgXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC1sZy00IGdhcC1tZC0zIGdhcC1zbS0yIGdhcC0zXCJcclxuICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdmbGV4LWNvbHVtbiBnYXAtMiBwYi0zJyA6ICdhbGlnbi1pdGVtLWNlbnRlcidcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLWxnLTQgZ2FwLW1kLTMgZ2FwLXNtLTMgZ2FwLTMgcHMtMCBhbGlnbi1pdGVtcy1tZC1jZW50ZXIgYWxpZ24taXRlbXMteGwtY2VudGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2ZsZXgtY29sdW1uJyA6ICcnXCJcclxuICAgID5cclxuICAgICAgPHBcclxuICAgICAgICBjbGFzcz1cIm1iLTAgaWVlZXNhLWhlYWRsaW5lLWxnLTMyIHB5LTNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICcnIDogJ2llZWVzYS12aWV3LXRlbmFudC1pbmZvLS10aXRsZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdGVuYW50RGV0YWlscz8uYXBwVGl0bGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC1sZy0yIGdhcC1tZC0yIGdhcC1zbS0yIGdhcC0yXCI+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwibWItMCBpZWVlc2EtdGl0bGUtc20tMTQgbXQtMVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAncC0wJyA6ICdpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tYXBwLWlkJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgdGVuYW50TGFiZWxzPy5hcHBJZCB9fTpcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAge3sgdGVuYW50RGV0YWlscz8uYXBwSWQgfX1cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVuYW50RGV0YWlscz8uYXBwSWQgIT09IHRlbmFudExhYmVscz8uc2FBcHBJZFwiPlxyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyIFt2ZXJ0aWNhbF09XCJ0cnVlXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWItMCBtdC0xIGllZWVzYS10aXRsZS1zbS0xNCBpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tYXBwLXN0YXR1c1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdwLTAnIDogJydcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB0ZW5hbnRMYWJlbHM/LnN0YXR1cyB9fTpcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxpZWVlc2Etc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgICAgIFtzbGlkZVRvZ2dsZV09XCJzbGlkZVRvZ2dsZU9wdGlvblwiXHJcbiAgICAgICAgICAgIChzbGlkZVRvZ2dsZUNoYW5nZSk9XCJvblNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvaWVlZXNhLXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWJ0bi1sYWJlbC1sZy1ib2xkLTE2IHRleHQtZGVjb3JhdGlvbi1ub25lIG10LWxnLTMgbXQteGwtNiBwLXNtLTAgcC1tZC0wXCJcclxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxyXG4gICAgICBbcm91dGVyTGlua109XCJ2aWV3VGVuYW50c1JvdXRlVXJsXCJcclxuICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgICA/ICdpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tbGluay1tb2JpbGUnXHJcbiAgICAgICAgICA6ICdpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tbGluaydcclxuICAgICAgXCJcclxuICAgICAgPnt7IHRlbmFudExhYmVscz8udmlld0FsbEFwcHMgfX08L2FcclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImllZWVzYS12aWV3LXRlbmFudC1pbmZvX19hY2NvcmRpb24gaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjY29yZGlvbi0tYmx1ZS1iZ1wiXHJcbiAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjY29yZGlvbi0taW5mbycgOiAnJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdGb3I9XCJcclxuICAgICAgICBsZXQgYWNjb3JkaW9uSW5mbyBvZiBhY2NvcmRpb25JbmZvTGlzdDtcclxuICAgICAgICB0cmFja0J5OiB0cmFja0J5QWNjb3JkaW9uRm5cclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWNjb3JkaW9uSW5mby5pZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImFjY29yZGlvbkRldGFpbHMuQkFTSUNfREVUQUlMU1wiPlxyXG4gICAgICAgICAgPGllZWVzYS1hY2NvcmRpb25cclxuICAgICAgICAgICAgW2FjY29yZGlvbkluZm9dPVwiYWNjb3JkaW9uSW5mb1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjY29yZGlvbi1pbmZvXCJcclxuICAgICAgICAgICAgKGFjY29yZGlvbk9wZW5lZCk9XCJzaG93VGVuYW50RGV0YWlscyhhY2NvcmRpb25JbmZvLCAkZXZlbnQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBpc0Jhc2ljRGV0YWlsc0V4cGFuZGVkICYmXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZUFjY2VzcyhwZXJtaXNzaW9uVHlwZS5NQU5BR0VfVEVOQU5UKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgYWN0aW9uc1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgW2ljb25CdXR0b25dPVwiZWRpdEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvcGVuRWRpdFRlbmFudEZvcm0oKVwiXHJcbiAgICAgICAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjb21wb25lbnQgKm5nSWY9XCJpc0Jhc2ljRGV0YWlsc0V4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgPGllZWVzYS10ZW5hbnQtYmFzaWMtZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgW3RlbmFudERldGFpbHNdPVwidGVuYW50RGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgPjwvaWVlZXNhLXRlbmFudC1iYXNpYy1kZXRhaWxzPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvaWVlZXNhLWFjY29yZGlvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJhY2NvcmRpb25EZXRhaWxzLlJPTEVTX0FORF9QRVJNSVNTSU9OU1wiPlxyXG4gICAgICAgICAgPGllZWVzYS1hY2NvcmRpb25cclxuICAgICAgICAgICAgW2FjY29yZGlvbkluZm9dPVwiYWNjb3JkaW9uSW5mb1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX3JvbGVzLWFuZC1wZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgIChhY2NvcmRpb25PcGVuZWQpPVwic2hvd1RlbmFudERldGFpbHMoYWNjb3JkaW9uSW5mbywgJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBhY3Rpb25zXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1JvbGVzQW5kUGVybWlzc2lvbnNFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLTNcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgaXNNb2JpbGVWaWV3ID8gJ21iLTMgcHgtNCcgOiAnaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjdGlvbnMnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAncC0wJyA6ICdweC0yIHB5LTInXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICBjb25zdGFudHMudmlld1JvbGVzQW5kUGVybWlzc2lvbnMuYWN0aW9uQnV0dG9uTGFiZWxzLmFkZFJvbGVcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGVydGlhcnktYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdwLTAnIDogJ3B4LTIgcHktMidcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy52aWV3Um9sZXNBbmRQZXJtaXNzaW9ucy5hY3Rpb25CdXR0b25MYWJlbHNcclxuICAgICAgICAgICAgICAgICAgICAubWFwUGVybWlzc2lvbnNSb2xlc1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgY29tcG9uZW50ICpuZ0lmPVwiaXNSb2xlc0FuZFBlcm1pc3Npb25zRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICA8bWF0LWRpdmlkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX3JvbGVzLWFuZC1wZXJtaXNzaW9uc19fZGl2aWRlclwiXHJcbiAgICAgICAgICAgICAgPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtblNjaGVtYS5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlRGF0YUluZm9dPVwidGFibGVEYXRhXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCJyb2xlc0FuZFBlcm1pc3Npb25zVGFibGVDYXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtwYWdpbmF0b3JDb25maWddPVwicGFnaW5hdG9yQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgICAgICAgICAgIFtpc1Njcm9sbFN1cHBvcnRNZXNzYWdlTmVlZGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlQ29sdW1uQWN0aW9uTWVudVNpemVdPVwiaWNvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlQ29sdW1uQWN0aW9uc109XCJtZW51SXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlQ29sdW1uc0hlYWRlclRleHRdPVwicm9sZXNBbmRQZXJtaXNzaW9uc1RhYmxlSGVhZGVyTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbc2Nyb2xsYmFyU3VwcG9ydE1lc3NhZ2VdPVwiXHJcbiAgICAgICAgICAgICAgICAgIHJvbGVzQW5kUGVybWlzc2lvbnNUYWJsZVN1cHBvcnRNZXNzYWdlXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW3ZlcnRpY2FsQ29sdW1uSGVhZGVyTnVtYmVyXT1cInBlcm1pc3Npb25zQ29sdW1uQ2xhc3NOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25UYWJsZVBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9pZWVlc2EtYWNjb3JkaW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxpZWVlc2EtYWNjb3JkaW9uXHJcbiAgICAgICAgICAgIFthY2NvcmRpb25JbmZvXT1cImFjY29yZGlvbkluZm9cIlxyXG4gICAgICAgICAgICAoYWNjb3JkaW9uT3BlbmVkKT1cInNob3dUZW5hbnREZXRhaWxzKGFjY29yZGlvbkluZm8sICRldmVudClcIlxyXG4gICAgICAgICAgPjwvaWVlZXNhLWFjY29yZGlvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
464
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnQtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvY29tcG9uZW50cy92aWV3LXRlbmFudC1kZXRhaWxzL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnQtZGV0YWlscy92aWV3LXRlbmFudC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBRUwsY0FBYyxFQUdkLG9CQUFvQixFQUVwQixTQUFTLEVBQ1QsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUtuQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFVN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FB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O1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQXJkVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwwTEMxRnZDLG83TUFnS0EsdWlYRHBGSSxZQUFZLHltQkFDWixZQUFZLHdRQUNaLG9CQUFvQiwwSkFDcEIsa0JBQWtCLHFIQUNsQixnQkFBZ0IsbUlBQ2hCLDJCQUEyQixtR0FDM0IsbUJBQW1CLHFJQUNuQixlQUFlLDRRQUNmLGtCQUFrQjs7NEZBTVQsMEJBQTBCO2tCQW5CdEMsU0FBUzsrQkFFRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7b1BBSTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICBHbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBBY2NvcmRpb25JbmZvLFxyXG4gIE1vZGFsQ29tcG9uZW50LFxyXG4gIE1lbnUsXHJcbiAgUGFnaW5hdG9yQ29uZmlnLFxyXG4gIFNsaWRlVG9nZ2xlQ29tcG9uZW50LFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBBbGlnblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICBSYWRpb09wdGlvbixcclxuICBJY29uQnV0dG9uLFxyXG4gIFNsaWRlVG9nZ2xlT3B0aW9uLFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxuICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgQWNjb3JkaW9uQ29tcG9uZW50LFxyXG4gIEFjY29yZGlvbkRldGFpbHMsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHQgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVuYW50c1Blcm1pc3Npb25zLCBVc2VyUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgVGVuYW50c1JvdXRlc0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGZWF0dXJlcyB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlcy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50QmFzaWNJbmZvLFxyXG4gIFRlbmFudERldGFpbHNSZXNwb25zZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50RnVuY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgQ3JlYXRlVGVuYW50QXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jcmVhdGUtdGVuYW50LWFwcGxpY2F0aW9uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZCxcclxuICBVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdXBkYXRlLXRlbmFudC1zdGF0dXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGZWF0dXJlUGVybWlzc2lvbklkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZlYXR1cmUtcGVybWlzc2lvbi1pZC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgQXBwVHlwZUNvbmZpZyxcclxuICBHZXRBcHBUeXBlc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRCYXNpY0RldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi90ZW5hbnQtYmFzaWMtZGV0YWlscy90ZW5hbnQtYmFzaWMtZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkLFxyXG4gIEdldFJvbGVzQW5kUGVybWlzc2lvbnNSZXNwb25zZSxcclxuICBHZXRSb2xlc1Jlc3BvbnNlLFxyXG4gIFJvbGUsXHJcbiAgUm9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmcsXHJcbiAgUm9sZXNBbmRQZXJtaXNzaW9ucyxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGVybWlzc2lvbi10eXBlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2Etdmlldy10ZW5hbnQtZGV0YWlscycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIEFjY29yZGlvbkNvbXBvbmVudCxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBUZW5hbnRCYXNpY0RldGFpbHNDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld1RlbmFudERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXNlclBlcm1pc3Npb25zITogVXNlclBlcm1pc3Npb25bXTtcclxuICBASW5wdXQoKSByb3V0ZVBhdGhzITogVGVuYW50c1JvdXRlc0NvbmZpZztcclxuICBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dDtcclxuICB0ZW5hbnRMYWJlbHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmxhYmVsO1xyXG4gIHNsaWRlVG9nZ2xlT3B0aW9uID0ge1xyXG4gICAgaWQ6IDEsXHJcbiAgICBsYWJlbDogdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzPy5sYWJlbD8uYWN0aXZlLFxyXG4gICAgY2hlY2tlZDogdHJ1ZSxcclxuICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICB9O1xyXG4gIGVkaXRCdXR0b246IEljb25CdXR0b24gPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmJ1dHRvbnM7XHJcbiAgdGVuYW50RGV0YWlscyE6IFRlbmFudEJhc2ljSW5mbztcclxuICBhY2NvcmRpb25JbmZvTGlzdDogQWNjb3JkaW9uSW5mb1tdID0gSlNPTi5wYXJzZShcclxuICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuY29uc3RhbnRzPy52aWV3VGVuYW50cz8udGVuYW50QWNjb3JkaW9uSW5mbylcclxuICApO1xyXG4gIGFwcElkID0gJyc7XHJcbiAgaWNvblNpemUgPSB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LmNvbHVtbkFjdGlvbkljb25TaXplO1xyXG4gIHJvbGVzQW5kUGVybWlzc2lvbnNUYWJsZUNhcHRpb24gPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LnZpZXdSb2xlc0FuZFBlcm1pc3Npb25zPy50YWJsZUNhcHRpb247XHJcbiAgcm9sZXNBbmRQZXJtaXNzaW9uc1RhYmxlSGVhZGVyTmFtZSA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LnRhYmxlQ29sdW1uc0hlYWRlclRleHQ7XHJcbiAgcm9sZXNBbmRQZXJtaXNzaW9uc1RhYmxlU3VwcG9ydE1lc3NhZ2UgPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LnZpZXdSb2xlc0FuZFBlcm1pc3Npb25zPy5zY3JvbGxiYXJTdXBwb3J0TWVzc2FnZTtcclxuICBwZXJtaXNzaW9uc0NvbHVtbkNsYXNzTnVtYmVyID0gMTtcclxuICBtZW51SXRlbXM6IE1lbnVbXSA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LmNvbHVtbkFjdGlvbk1lbnVJdGVtcztcclxuICBjb2x1bW5TY2hlbWE6IFRhYmxlQ29sdW1uU2NoZW1hW10gPSBbXTtcclxuICB0YWJsZURhdGE6IFJvbGVzQW5kUGVybWlzc2lvbnNbXSA9IFtdO1xyXG4gIGlzUm9sZXNBbmRQZXJtaXNzaW9uc0V4cGFuZGVkID0gZmFsc2U7XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy5jb25zdGFudHM/LnZpZXdSb2xlc0FuZFBlcm1pc3Npb25zPy5wYWdlU2l6ZU9wdGlvbnNbMF0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMuY29uc3RhbnRzPy52aWV3Um9sZXNBbmRQZXJtaXNzaW9ucz8ucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgdGFibGVBY3Rpb25zOiBUYWJsZUFjdGlvbnMgPSB7XHJcbiAgICBpc1BhZ2luYXRpb25OZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICB2aWV3VGVuYW50c1JvdXRlVXJsITogc3RyaW5nO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZGlhbG9nUmVmOiBhbnk7XHJcbiAgYWNjb3JkaW9uRGV0YWlscyA9IEFjY29yZGlvbkRldGFpbHM7XHJcbiAgYXBwVHlwZU9wdGlvbnMhOiBSYWRpb09wdGlvbltdO1xyXG4gIGlzQmFzaWNEZXRhaWxzRXhwYW5kZWQgPSBmYWxzZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGVkaXRUZW5hbnRTY3JlZW5UZXh0czogYW55ID0gdGhpcy5jb25zdGFudHM/LmVkaXRUZW5hbnQ7XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICB1c2VyVGVuYW50c1Blcm1pc3Npb25zITogVGVuYW50c1Blcm1pc3Npb25zW107XHJcbiAgcGVybWlzc2lvblR5cGUgPSBQZXJtaXNzaW9uVHlwZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdGVuYW50QXBwU2VydmljZTogVGVuYW50QXBwbGljYXRpb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2U6IEdsb2JhbEVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHsgbWF0Y2hlczogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQ/Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdmlldyB0ZW5hbnQgZGV0YWlscyBjb21wb25lbnQuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlUGF0aHMgPSB0aGlzLnJvdXRlUGF0aHMgPz8gdGhpcy5jb25zdGFudHM/LnJvdXRlQ29uZmlnUGF0aDtcclxuICAgIHRoaXMudmlld1RlbmFudHNSb3V0ZVVybCA9IGAvJHt0aGlzLnJvdXRlUGF0aHM/LnZpZXdUZW5hbnRzfWA7XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2U/LnNldEFwcENvbmZpZyh0aGlzLmFwaUJhc2VVUkwsIHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9ucyA9XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2U/LmZpbHRlclBlcm1pc3Npb24odGhpcy51c2VyUGVybWlzc2lvbnMpO1xyXG4gICAgdGhpcy5hcHBJZCA9IHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKClcclxuICAgICAgPy5hcHBJZCBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmdldFRlbmFudERldGFpbHModGhpcy5hcHBJZCk7XHJcbiAgICB0aGlzLmdldEFwcGxpY2F0aW9uVHlwZXMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2VsZWN0ZWQgdGVuYW50IGRldGFpbHMgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0VGVuYW50RGV0YWlscyhhcHBJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2VcclxuICAgICAgLmdldFRlbmFudERldGFpbHMoYXBwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBUZW5hbnREZXRhaWxzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IHJlc3BvbnNlPy5ib2R5IGFzIFRlbmFudEJhc2ljSW5mbztcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnNldFNlbGVjdGVkVGVuYW50SW5mb3JtYXRpb24oXHJcbiAgICAgICAgICAgICAgdGhpcy50ZW5hbnREZXRhaWxzXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2xpZGVUb2dnbGVPcHRpb24uY2hlY2tlZCA9IHRoaXMudGVuYW50RGV0YWlsc1xyXG4gICAgICAgICAgICAgIC5zdGF0dXMgYXMgYm9vbGVhbjtcclxuICAgICAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5sYWJlbCA9IHRoaXMudGVuYW50RGV0YWlscy5zdGF0dXNcclxuICAgICAgICAgICAgICA/IHRoaXMudGVuYW50TGFiZWxzPy5hY3RpdmVcclxuICAgICAgICAgICAgICA6IHRoaXMudGVuYW50TGFiZWxzPy5pbmFjdGl2ZTtcclxuICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSB0aGlzLnRlbmFudERldGFpbHMuZmVhdHVyZXMgYXMgRmVhdHVyZXNbXTtcclxuICAgICAgICAgICAgZmVhdHVyZXMubWFwKChmZWF0dXJlOiBGZWF0dXJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGZlYXR1cmU/LmZlYXR1cmVJZCA9PT1cclxuICAgICAgICAgICAgICAgICAgRmVhdHVyZVBlcm1pc3Npb25JZC5NRUVUSU5HU19BTkRfRVZFTlRTIHx8XHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlPy5mZWF0dXJlSWQgPT09IEZlYXR1cmVQZXJtaXNzaW9uSWQuQkFMTE9UU1xyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIHRoaXMuYWNjb3JkaW9uSW5mb0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFjY29yZGlvbkluZm9MaXN0Lmxlbmd0aCArIDEsXHJcbiAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogZmVhdHVyZT8uZmVhdHVyZU5hbWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzLmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXkgdGhlIGNvcnJlc3BvbmRpbmcgdGVuYW50IGJhc2ljIG9yIGZlYXR1cmUgZGV0YWlscyBiYXNlZCBvbiBzZWxlY3RlZCBhY2NvcmRpb24uXHJcbiAgICogQHBhcmFtIHtBY2NvcmRpb25JbmZvfSBhY2NvcmRpb25JbmZvXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBleHBhbmRlZFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNob3dUZW5hbnREZXRhaWxzKGFjY29yZGlvbkluZm86IEFjY29yZGlvbkluZm8sIGV4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBhY2NvcmRpb25JZCA9IGFjY29yZGlvbkluZm8uaWQgYXMgbnVtYmVyO1xyXG4gICAgc3dpdGNoIChhY2NvcmRpb25JZCkge1xyXG4gICAgICBjYXNlIDE6IHtcclxuICAgICAgICB0aGlzLmlzQmFzaWNEZXRhaWxzRXhwYW5kZWQgPSBleHBhbmRlZDtcclxuICAgICAgICBpZiAoZXhwYW5kZWQpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0QXBwbGljYXRpb25UeXBlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIDI6IHtcclxuICAgICAgICB0aGlzLmlzUm9sZXNBbmRQZXJtaXNzaW9uc0V4cGFuZGVkID0gZXhwYW5kZWQ7XHJcbiAgICAgICAgaWYgKGV4cGFuZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcucmVjb3Jkc1BlclBhZ2UgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1JvbGVzQW5kUGVybWlzc2lvbnM/LnBhZ2VTaXplT3B0aW9uc1swXTtcclxuICAgICAgICAgIHRoaXMuZ2V0Um9sZXNBbmRJbml0aWFsaXplVGFibGVTY2hlbWEoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgY29uZmlndXJlZCByb2xlcyBvZiB0aGUgc2VsZWN0ZWQgdGVuYW50IGFuZCBjcmVhdGVzIHRoZSBjb2x1bW4gc2NoZW1hLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFJvbGVzQW5kSW5pdGlhbGl6ZVRhYmxlU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRSb2xlcyh0aGlzLmFwcElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogR2V0Um9sZXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRSb2xlc0FuZFBlcm1pc3Npb25zQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgcm9sZXNMaXN0ID0gcmVzcG9uc2UuYm9keSBhcyBSb2xlW107XHJcbiAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZSA9XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25zdGFudHMudmlld1JvbGVzQW5kUGVybWlzc2lvbnMudGFibGVDZWxsVmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW1uU2NoZW1hID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgY29sdW1uRGVmOiAncGVybWlzc2lvbnMnLFxyXG4gICAgICAgICAgICAgICAgaGVhZGluZzpcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdGFudHMudmlld1JvbGVzQW5kUGVybWlzc2lvbnMudGFibGVDb2x1bW5cclxuICAgICAgICAgICAgICAgICAgICAucGVybWlzc2lvbnMsXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAgICAgICAgIGNlbGxEYXRhOiAocm9sZXNBbmRQZXJtaXNzaW9uczogUm9sZXNBbmRQZXJtaXNzaW9ucykgPT5cclxuICAgICAgICAgICAgICAgICAgcm9sZXNBbmRQZXJtaXNzaW9ucy5wZXJtaXNzaW9uLFxyXG4gICAgICAgICAgICAgICAgaXNTdGlja3lDb2x1bW46IHRydWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgcm9sZXNMaXN0Lm1hcCgocm9sZTogUm9sZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbHVtblNjaGVtYS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBpbmRleCArIDEsXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5EZWY6IHJvbGUucm9sZUlkLFxyXG4gICAgICAgICAgICAgICAgaGVhZGluZzogcm9sZS5yb2xlTmFtZSxcclxuICAgICAgICAgICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgICAgICAgICAgaGFzQ29sdW1uQWN0aW9uczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNlbGxEYXRhOiAocm9sZXNBbmRQZXJtaXNzaW9uczogUm9sZXNBbmRQZXJtaXNzaW9ucykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gcm9sZXNBbmRQZXJtaXNzaW9ucy5yb2xlSWRzTGlzdC5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIChyb2xlSWQ6IHN0cmluZykgPT4gcm9sZS5yb2xlSWQgPT09IHJvbGVJZFxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgPyBjZWxsVmFsdWUueWVzXHJcbiAgICAgICAgICAgICAgICAgICAgOiBjZWxsVmFsdWUubm87XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgcm9sZXMgYW5kIHBlcm1pc3Npb25zIG1hcHBpbmdzIGZvciB0aGUgc2VsZWN0ZWQgdGVuYW50IGFuZCBhbmQgaW5pdGlhbGl6ZSB0YWJsZSB2aWV3LlxyXG4gICAqIEBwYXJhbSB7R2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRSb2xlc0FuZFBlcm1pc3Npb25zQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyhcclxuICAgIHBheWxvYWQ6IEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkXHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2VcclxuICAgICAgLmdldFJvbGVzQW5kUGVybWlzc2lvbnNNYXBwaW5ncyh0aGlzLmFwcElkLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZy50b3RhbFJlY29yZHMgPSByZXNwb25zZT8uYm9keVxyXG4gICAgICAgICAgICAgID8udG90YWxSZWNvcmRzIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgY29uc3Qgcm9sZXNBbmRQZXJtaXNzaW9uc0xpc3QgPSByZXNwb25zZT8uYm9keVxyXG4gICAgICAgICAgICAgID8ucm9sZVBlcm1pc3Npb25EZXRhaWxzIGFzIFJvbGVzQW5kUGVybWlzc2lvbnNNYXBwaW5nW107XHJcbiAgICAgICAgICAgIHJvbGVzQW5kUGVybWlzc2lvbnNMaXN0Lm1hcCgocGVybWlzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCByb2xlSWRzTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgICByb2xlSWRzTGlzdCA9IHBlcm1pc3Npb24ucm9sZUxpc3QubWFwKChyb2xlKSA9PiByb2xlLnJvbGVJZCk7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uOiBwZXJtaXNzaW9uLnBlcm1pc3Npb25OYW1lLFxyXG4gICAgICAgICAgICAgICAgcm9sZUlkc0xpc3Q6IHJvbGVJZHNMaXN0LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggdGhlIHJvbGVzIGFuZCBwZXJtaXNzaW9ucyByZWNvcmRzIGJhc2VkIG9uIG9mZnNldCBhbmQgcGFnZSBzaXplIHdoaWxlIHRoZSBwYWdpbmF0aW9uIGNoYW5nZXMuXHJcbiAgICogQHBhcmFtIHtQYWdlRXZlbnR9IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVGFibGVQYWdpbmF0aW9uQ2hhbmdlKHBhZ2VFdmVudDogUGFnZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFJvbGVzQW5kUGVybWlzc2lvbnNBbmRJbml0aWFsaXplVGFibGVWaWV3KHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG9mZnNldDogcGFnZUV2ZW50LnBhZ2VJbmRleCxcclxuICAgICAgICBwYWdlU2l6ZTogcGFnZUV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEtlZXBzIHRyYWNrIG9mIHRoZSBhY2NvcmRpb24gYmFzZWQgb24gdGhlIGVsZW1lbnQncyBJRCBpbiBET00gdHJlZS5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5QWNjb3JkaW9uRm4oaW5kZXg6IG51bWJlciwgaXRlbTogQWNjb3JkaW9uSW5mbyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaXRlbT8uaWQgYXMgbnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGVkaXQgdGVuYW50IG1vZGFsIGFuZCBjYWxscyBvcGVuTW9kYWwgbWV0aG9kLlxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5FZGl0VGVuYW50Rm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50QXBwU2VydmljZT8uc2V0VGVuYW50RnVuY3Rpb25UeXBlKFRlbmFudEZ1bmN0aW9uVHlwZT8uRURJVCk7XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLnRlbmFudERldGFpbHM/LmFwcFRpdGxlLFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZVRlbmFudEFwcGxpY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtZWRpdC10ZW5hbnQnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIG1vZGFsIGNvbXBvbmVudCB3aXRoIHJlY2VpdmVkIHBhcmFtcyBhbmQgaGFuZGxlcyBmb3JtIHN1Ym1pc3Npb24gc3VjY2VzcyBhbmQgZXJyb3JzLlxyXG4gICAqIEBwYXJhbSB7Kn0gZGlhbG9nT3B0aW9uc1xyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbY2xhc3NOYW1lXVxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0RldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBvcGVuTW9kYWwoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgZGlhbG9nT3B0aW9uczogYW55LFxyXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gJyc7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHdpZHRoOiAnJyxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtbW9kYWwtZGlhbG9nJywgY2xhc3NOYW1lXSxcclxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LnN1Ym1pdEZvcm1SZXNwb25zZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIG5vLXVudXNlZC12YXJzXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICBgJHt0aGlzLnRlbmFudERldGFpbHM/LmFwcFRpdGxlfSAke3RoaXMuZWRpdFRlbmFudFNjcmVlblRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9ufWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IHtcclxuICAgICAgICAgIC4uLih0aGlzLnRlbmFudEFwcFNlcnZpY2UuZ2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbigpIGFzIFRlbmFudEJhc2ljSW5mbyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2U/LmZvcm1DYW5jZWxcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENhbGxzIG9wZW5UZW5hbnRTdGF0dXNDb25maXJtYXRpb25Nb2RhbCB0byBjaGFuZ2UgdGhlIHN0YXR1cyBvZiB0ZW5hbnQgb24gc2xpZGUgdG9nZ2xlIGNoYW5nZS5cclxuICAgKiBAcGFyYW0ge1NsaWRlVG9nZ2xlT3B0aW9ufSBzbGlkZVRvZ2dsZU9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2xpZGVUb2dnbGVDaGFuZ2Uoc2xpZGVUb2dnbGVPcHRpb246IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5UZW5hbnRTdGF0dXNDb25maXJtYXRpb25Nb2RhbChzbGlkZVRvZ2dsZU9wdGlvbj8uY2hlY2tlZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBjb25maXJtYXRpb24gbW9kYWwgdG8gaW5hY3RpdmF0ZS9yZWFjdGl2YXRlIHRoZSB0ZW5hbnQuXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc0FjdGl2YXRlXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlblRlbmFudFN0YXR1c0NvbmZpcm1hdGlvbk1vZGFsKGlzQWN0aXZhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbmZpcm1hdGlvbkluZm8gPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmNvbmZpcm1hdGlvbkluZm87XHJcbiAgICBjb25zdCBzdGF0dXNUZXh0ID0gaXNBY3RpdmF0ZVxyXG4gICAgICA/IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2VBY3RpdmF0ZVxyXG4gICAgICA6IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2VJbmFjdGl2YXRlO1xyXG4gICAgY29uc3QgdXBkYXRlVGVuYW50U3RhdHVzTW9kYWxPcHRpb25zID0ge1xyXG4gICAgICBsZWZ0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LmxlZnRCdXR0b25MYWJlbCxcclxuICAgICAgcmlnaHRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ucmlnaHRCdXR0b25MYWJlbCxcclxuICAgICAgcHJvbXB0TWVzc2FnZTogYCR7Y29uZmlybWF0aW9uSW5mbz8ucHJvbXB0TWVzc2FnZX0gJHtzdGF0dXNUZXh0fSAke3RoaXMudGVuYW50RGV0YWlscz8uYXBwVGl0bGV9P2AsXHJcbiAgICAgIGFjdGlvbkJ1dHRvbkFsaWduOiB0aGlzLmFsaWdubWVudFR5cGU/Lk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHVwZGF0ZVRlbmFudFN0YXR1c01vZGFsT3B0aW9ucyxcclxuICAgICAgd2lkdGg6ICdhdXRvJyxcclxuICAgICAgYXV0b0ZvY3VzOiAnZGlhbG9nJyxcclxuICAgICAgYXJpYUxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5hcmlhTGFiZWw/LmFsZXJ0LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVGVuYW50U3RhdHVzKGlzQWN0aXZhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFNsaWRlVG9nZ2xlU3RhdHVzKGlzQWN0aXZhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHRlbmFudCBzdGF0dXMgdG8gdGhlIHNlcnZlciB1c2luZyBodHRwIHJlcXVlc3QgYW5kIGRpc3BsYXkgc3VjY2Vzcy9lcnJvciBtZXNzYWdlIGJhc2VkIG9uIHJlcXVlc3QgcmVzcG9uc2UgKHN1Y2Nlc3Mgb3IgZmFpbHVyZSkuXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpc0FjdGl2YXRlXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnREZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdXBkYXRlVGVuYW50U3RhdHVzKGlzQWN0aXZhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHVwZGF0ZVRlbmFudFN0YXR1c1JlcXVlc3RQYXlsb2FkOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGFwcElkOiB0aGlzLnRlbmFudERldGFpbHM/LmFwcElkLFxyXG4gICAgICAgIHN0YXR1czogaXNBY3RpdmF0ZSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLnRlbmFudEFwcFNlcnZpY2VcclxuICAgICAgLnVwZGF0ZVRlbmFudFN0YXR1cyh1cGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgICAgICBpZiAocmVzPy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5sYWJlbCA9IGlzQWN0aXZhdGVcclxuICAgICAgICAgICAgICA/IHRoaXMudGVuYW50TGFiZWxzPy5hY3RpdmVcclxuICAgICAgICAgICAgICA6IHRoaXMudGVuYW50TGFiZWxzPy5pbmFjdGl2ZTtcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnREZXRhaWxzLnN0YXR1cyA9IGlzQWN0aXZhdGU7XHJcbiAgICAgICAgICAgIHRoaXMudGVuYW50RGV0YWlscyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMudGVuYW50RGV0YWlscyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTbGlkZVRvZ2dsZVN0YXR1cyhpc0FjdGl2YXRlKTtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyBzbGlkZSB0b2dnbGUgY2hlY2tlZCBzdGF0dXMgYW5kIGxhYmVsLlxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBY3RpdmF0ZVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50RGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldFNsaWRlVG9nZ2xlU3RhdHVzKGlzQWN0aXZhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2xpZGVUb2dnbGVPcHRpb24uY2hlY2tlZCA9ICFpc0FjdGl2YXRlO1xyXG4gICAgdGhpcy5zbGlkZVRvZ2dsZU9wdGlvbi5sYWJlbCA9ICFpc0FjdGl2YXRlXHJcbiAgICAgID8gdGhpcy50ZW5hbnRMYWJlbHM/LmFjdGl2ZVxyXG4gICAgICA6IHRoaXMudGVuYW50TGFiZWxzPy5pbmFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGFwcGxpY2F0aW9uL3RlbmFudCB0eXBlcy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRBcHBsaWNhdGlvblR5cGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRBcHBsaWNhdGlvblR5cGVzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IEdldEFwcFR5cGVzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwVHlwZU9wdGlvbnMgPVxyXG4gICAgICAgICAgICAgIHRoaXMudGVuYW50QXBwU2VydmljZS5nZXRBcHBsaWNhdGlvblR5cGVPcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHkgYXMgQXBwVHlwZUNvbmZpZ1tdXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnNldEFwcGxpY2F0aW9uVHlwZShcclxuICAgICAgICAgICAgICB0aGlzLmFwcFR5cGVPcHRpb25zIGFzIFJhZGlvT3B0aW9uW11cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzPy5lcnJvcnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gICAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHBlcm1pc3Npb24gYmFzZWQgYWNjZXNzIGZvciBwcm92aWRlZCBmZWF0dXJlLlxyXG4gICAqIEBwYXJhbSB7UGVybWlzc2lvblR5cGV9IHBlcm1pc3Npb25UeXBlXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICAgIHZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIHBlcm1pc3Npb25UeXBlLFxyXG4gICAgICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQ/Lm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2Etdmlldy10ZW5hbnQtaW5mbyBweC00IHBiLTRcIlxyXG4gIFtuZ0NsYXNzXT1cIlxyXG4gICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgID8gJ2llZWVzYS12aWV3LXRlbmFudC1pbmZvLS1iZy13aGl0ZSdcclxuICAgICAgOiAnaWVlZXNhLXZpZXctdGVuYW50LWluZm8tLWJnLWJsdWUnXHJcbiAgXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC1sZy00IGdhcC1tZC0zIGdhcC1zbS0yIGdhcC0zXCJcclxuICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdmbGV4LWNvbHVtbiBnYXAtMiBwYi0zJyA6ICdhbGlnbi1pdGVtLWNlbnRlcidcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLWxnLTQgZ2FwLW1kLTMgZ2FwLXNtLTMgZ2FwLTMgcHMtMCBhbGlnbi1pdGVtcy1tZC1jZW50ZXIgYWxpZ24taXRlbXMteGwtY2VudGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2ZsZXgtY29sdW1uJyA6ICcnXCJcclxuICAgID5cclxuICAgICAgPHBcclxuICAgICAgICBjbGFzcz1cIm1iLTAgaWVlZXNhLWhlYWRsaW5lLWxnLTMyIHB5LTNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICcnIDogJ2llZWVzYS12aWV3LXRlbmFudC1pbmZvLS10aXRsZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdGVuYW50RGV0YWlscz8uYXBwVGl0bGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC1sZy0yIGdhcC1tZC0yIGdhcC1zbS0yIGdhcC0yXCI+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwibWItMCBpZWVlc2EtdGl0bGUtc20tMTQgbXQtMVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAncC0wJyA6ICdpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tYXBwLWlkJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgdGVuYW50TGFiZWxzPy5hcHBJZCB9fTpcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAge3sgdGVuYW50RGV0YWlscz8uYXBwSWQgfX1cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVuYW50RGV0YWlscz8uYXBwSWQgIT09IHRlbmFudExhYmVscz8uc2FBcHBJZFwiPlxyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyIFt2ZXJ0aWNhbF09XCJ0cnVlXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWItMCBtdC0xIGllZWVzYS10aXRsZS1zbS0xNCBpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tYXBwLXN0YXR1c1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdwLTAnIDogJydcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB0ZW5hbnRMYWJlbHM/LnN0YXR1cyB9fTpcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxpZWVlc2Etc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgICAgIFtzbGlkZVRvZ2dsZV09XCJzbGlkZVRvZ2dsZU9wdGlvblwiXHJcbiAgICAgICAgICAgIChzbGlkZVRvZ2dsZUNoYW5nZSk9XCJvblNsaWRlVG9nZ2xlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvaWVlZXNhLXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWJ0bi1sYWJlbC1sZy1ib2xkLTE2IHRleHQtZGVjb3JhdGlvbi1ub25lIG10LWxnLTMgbXQteGwtNiBwLXNtLTAgcC1tZC0wXCJcclxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxyXG4gICAgICBbcm91dGVyTGlua109XCJ2aWV3VGVuYW50c1JvdXRlVXJsXCJcclxuICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgICA/ICdpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tbGluay1tb2JpbGUnXHJcbiAgICAgICAgICA6ICdpZWVlc2Etdmlldy10ZW5hbnQtaW5mby0tbGluaydcclxuICAgICAgXCJcclxuICAgICAgPnt7IHRlbmFudExhYmVscz8udmlld0FsbEFwcHMgfX08L2FcclxuICAgID5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImllZWVzYS12aWV3LXRlbmFudC1pbmZvX19hY2NvcmRpb24gaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjY29yZGlvbi0tYmx1ZS1iZ1wiXHJcbiAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjY29yZGlvbi0taW5mbycgOiAnJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdGb3I9XCJcclxuICAgICAgICBsZXQgYWNjb3JkaW9uSW5mbyBvZiBhY2NvcmRpb25JbmZvTGlzdDtcclxuICAgICAgICB0cmFja0J5OiB0cmFja0J5QWNjb3JkaW9uRm5cclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWNjb3JkaW9uSW5mby5pZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImFjY29yZGlvbkRldGFpbHMuQkFTSUNfREVUQUlMU1wiPlxyXG4gICAgICAgICAgPGllZWVzYS1hY2NvcmRpb25cclxuICAgICAgICAgICAgW2FjY29yZGlvbkluZm9dPVwiYWNjb3JkaW9uSW5mb1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjY29yZGlvbi1pbmZvXCJcclxuICAgICAgICAgICAgKGFjY29yZGlvbk9wZW5lZCk9XCJzaG93VGVuYW50RGV0YWlscyhhY2NvcmRpb25JbmZvLCAkZXZlbnQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBpc0Jhc2ljRGV0YWlsc0V4cGFuZGVkICYmXHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZUFjY2VzcyhwZXJtaXNzaW9uVHlwZS5NQU5BR0VfVEVOQU5UKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgYWN0aW9uc1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgW2ljb25CdXR0b25dPVwiZWRpdEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvcGVuRWRpdFRlbmFudEZvcm0oKVwiXHJcbiAgICAgICAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjb21wb25lbnQgKm5nSWY9XCJpc0Jhc2ljRGV0YWlsc0V4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgPGllZWVzYS10ZW5hbnQtYmFzaWMtZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgW3RlbmFudERldGFpbHNdPVwidGVuYW50RGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgPjwvaWVlZXNhLXRlbmFudC1iYXNpYy1kZXRhaWxzPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvaWVlZXNhLWFjY29yZGlvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJhY2NvcmRpb25EZXRhaWxzLlJPTEVTX0FORF9QRVJNSVNTSU9OU1wiPlxyXG4gICAgICAgICAgPGllZWVzYS1hY2NvcmRpb25cclxuICAgICAgICAgICAgW2FjY29yZGlvbkluZm9dPVwiYWNjb3JkaW9uSW5mb1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX3JvbGVzLWFuZC1wZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgIChhY2NvcmRpb25PcGVuZWQpPVwic2hvd1RlbmFudERldGFpbHMoYWNjb3JkaW9uSW5mbywgJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBhY3Rpb25zXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1JvbGVzQW5kUGVybWlzc2lvbnNFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLTNcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICAgaXNNb2JpbGVWaWV3ID8gJ21iLTMgcHgtNCcgOiAnaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX2FjdGlvbnMnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAncC0wJyA6ICdweC0yIHB5LTInXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICBjb25zdGFudHMudmlld1JvbGVzQW5kUGVybWlzc2lvbnMuYWN0aW9uQnV0dG9uTGFiZWxzLmFkZFJvbGVcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdGVydGlhcnktYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdwLTAnIDogJ3B4LTIgcHktMidcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0YW50cy52aWV3Um9sZXNBbmRQZXJtaXNzaW9ucy5hY3Rpb25CdXR0b25MYWJlbHNcclxuICAgICAgICAgICAgICAgICAgICAubWFwUGVybWlzc2lvbnNSb2xlc1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgY29tcG9uZW50ICpuZ0lmPVwiaXNSb2xlc0FuZFBlcm1pc3Npb25zRXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICA8bWF0LWRpdmlkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50LWluZm9fX3JvbGVzLWFuZC1wZXJtaXNzaW9uc19fZGl2aWRlclwiXHJcbiAgICAgICAgICAgICAgPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtblNjaGVtYS5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlRGF0YUluZm9dPVwidGFibGVEYXRhXCJcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCJyb2xlc0FuZFBlcm1pc3Npb25zVGFibGVDYXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtwYWdpbmF0b3JDb25maWddPVwicGFnaW5hdG9yQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgICAgICAgICAgIFtpc1Njcm9sbFN1cHBvcnRNZXNzYWdlTmVlZGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlQ29sdW1uQWN0aW9uTWVudVNpemVdPVwiaWNvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlQ29sdW1uQWN0aW9uc109XCJtZW51SXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgW3RhYmxlQ29sdW1uc0hlYWRlclRleHRdPVwicm9sZXNBbmRQZXJtaXNzaW9uc1RhYmxlSGVhZGVyTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbc2Nyb2xsYmFyU3VwcG9ydE1lc3NhZ2VdPVwiXHJcbiAgICAgICAgICAgICAgICAgIHJvbGVzQW5kUGVybWlzc2lvbnNUYWJsZVN1cHBvcnRNZXNzYWdlXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW3ZlcnRpY2FsQ29sdW1uSGVhZGVyTnVtYmVyXT1cInBlcm1pc3Npb25zQ29sdW1uQ2xhc3NOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25UYWJsZVBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9pZWVlc2EtYWNjb3JkaW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxpZWVlc2EtYWNjb3JkaW9uXHJcbiAgICAgICAgICAgIFthY2NvcmRpb25JbmZvXT1cImFjY29yZGlvbkluZm9cIlxyXG4gICAgICAgICAgICAoYWNjb3JkaW9uT3BlbmVkKT1cInNob3dUZW5hbnREZXRhaWxzKGFjY29yZGlvbkluZm8sICRldmVudClcIlxyXG4gICAgICAgICAgPjwvaWVlZXNhLWFjY29yZGlvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==