UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

280 lines 41.3 kB
/** * @packageDocumentation * @module help-menu */ import { DialogService, DialogSize } from '@alauda/ui'; import { ChangeDetectionStrategy, Component, Inject, Input, } from '@angular/core'; import { forkJoin, finalize } from 'rxjs'; import { K8sApiService } from '../../../../api/public-api'; import { K8sUtilService, TOKEN_BASE_HREF, } from '../../../../core/public-api'; import { PUBLIC_NAMESPACE, parseVersion, PACKAGE_RUNTIME_VALUE, } from '../../../../public-api'; import * as i0 from "@angular/core"; import * as i1 from "@alauda/ui"; import * as i2 from "../../../../api/public-api"; import * as i3 from "../../../../core/public-api"; const _c0 = ["*"]; const _c1 = a0 => ({ version: a0 }); function HelpMenuComponent_ng_template_2_aui_menu_item_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "aui-menu-item", 10); i0.ɵɵelement(1, "aui-icon", 11); i0.ɵɵelementStart(2, "span", 12); i0.ɵɵtext(3); i0.ɵɵpipe(4, "translate"); i0.ɵɵelementEnd()(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵproperty("aclHelpDoc", ctx_r1.helpDocPath); i0.ɵɵadvance(3); i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 2, "help_doc")); } } function HelpMenuComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { const _r1 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "aui-menu"); i0.ɵɵtemplate(1, HelpMenuComponent_ng_template_2_aui_menu_item_1_Template, 5, 4, "aui-menu-item", 7); i0.ɵɵelementStart(2, "aui-menu-item", 8); i0.ɵɵlistener("click", function HelpMenuComponent_ng_template_2_Template_aui_menu_item_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const platformInfo_r3 = i0.ɵɵreference(5); return i0.ɵɵresetView(ctx_r1.viewPlatformInfo(platformInfo_r3)); }); i0.ɵɵelement(3, "aui-icon", 9); i0.ɵɵelementStart(4, "span"); i0.ɵɵtext(5); i0.ɵɵpipe(6, "translate"); i0.ɵɵelementEnd()(); i0.ɵɵprojection(7); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", ctx_r1.helpDocPath); i0.ɵɵadvance(); i0.ɵɵproperty("divide", true); i0.ɵɵadvance(3); i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 3, "about_platform")); } } function HelpMenuComponent_ng_template_4_span_9_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 28); i0.ɵɵtext(1); i0.ɵɵpipe(2, "translate"); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵadvance(); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "runtime_edition"), " "); } } function HelpMenuComponent_ng_template_4_ng_container_19_div_1_div_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 32); i0.ɵɵelement(1, "img", 33); i0.ɵɵelementStart(2, "div", 34)(3, "div", 35); i0.ɵɵtext(4); i0.ɵɵelementEnd(); i0.ɵɵelementStart(5, "div", 36); i0.ɵɵtext(6); i0.ɵɵelementEnd()()(); } if (rf & 2) { const componentVersion_r5 = ctx.$implicit; i0.ɵɵadvance(); i0.ɵɵproperty("src", "icons/" + componentVersion_r5.name + ".svg", i0.ɵɵsanitizeUrl); i0.ɵɵadvance(2); i0.ɵɵproperty("title", componentVersion_r5.name); i0.ɵɵadvance(); i0.ɵɵtextInterpolate1(" ", componentVersion_r5.name, " "); i0.ɵɵadvance(); i0.ɵɵproperty("title", componentVersion_r5.version); i0.ɵɵadvance(); i0.ɵɵtextInterpolate1(" ", componentVersion_r5.version, " "); } } function HelpMenuComponent_ng_template_4_ng_container_19_div_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 30); i0.ɵɵtemplate(1, HelpMenuComponent_ng_template_4_ng_container_19_div_1_div_1_Template, 7, 5, "div", 31); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵadvance(); i0.ɵɵproperty("ngForOf", ctx_r1.componentVersionList); } } function HelpMenuComponent_ng_template_4_ng_container_19_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, HelpMenuComponent_ng_template_4_ng_container_19_div_1_Template, 2, 1, "div", 29); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(2); const noComponent_r6 = i0.ɵɵreference(7); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", ctx_r1.componentVersionList == null ? null : ctx_r1.componentVersionList.length)("ngIfElse", noComponent_r6); } } function HelpMenuComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) { const _r4 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "aui-dialog-content", 13)(1, "div", 14)(2, "div", 15); i0.ɵɵelement(3, "img", 16)(4, "span", 17); i0.ɵɵelementStart(5, "div", 18)(6, "span", 19); i0.ɵɵtext(7); i0.ɵɵpipe(8, "translate"); i0.ɵɵelementEnd(); i0.ɵɵtemplate(9, HelpMenuComponent_ng_template_4_span_9_Template, 3, 3, "span", 20); i0.ɵɵelementStart(10, "span", 21); i0.ɵɵtext(11); i0.ɵɵelementEnd()()(); i0.ɵɵelementStart(12, "div", 22); i0.ɵɵtext(13); i0.ɵɵpipe(14, "translate"); i0.ɵɵelementEnd()(); i0.ɵɵelementStart(15, "div", 23)(16, "div", 24); i0.ɵɵtext(17); i0.ɵɵpipe(18, "translate"); i0.ɵɵelementEnd(); i0.ɵɵtemplate(19, HelpMenuComponent_ng_template_4_ng_container_19_Template, 2, 2, "ng-container", 25); i0.ɵɵelementEnd(); i0.ɵɵelementStart(20, "div", 26)(21, "button", 27); i0.ɵɵlistener("click", function HelpMenuComponent_ng_template_4_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.close()); }); i0.ɵɵtext(22); i0.ɵɵpipe(23, "translate"); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(); const loadingTmp_r7 = i0.ɵɵreference(9); const platformStageVersion_r8 = i0.ɵɵreference(11); i0.ɵɵadvance(7); i0.ɵɵtextInterpolate(ctx_r1.platformName ? i0.ɵɵpipeBind1(8, 10, ctx_r1.platformName) : "ACP"); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", ctx_r1.isRuntime); i0.ɵɵadvance(); i0.ɵɵproperty("auiTooltip", platformStageVersion_r8)("auiTooltipContext", i0.ɵɵpureFunction1(18, _c1, ctx_r1.platformVersion == null ? null : ctx_r1.platformVersion.all)); i0.ɵɵadvance(); i0.ɵɵtextInterpolate1(" ", ctx_r1.platformVersion == null ? null : ctx_r1.platformVersion.main, ""); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 12, ctx_r1.platformTip)); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 14, "platform_related_open_source_component_info"), " "); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !ctx_r1.loading)("ngIfElse", loadingTmp_r7); i0.ɵɵadvance(3); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 16, "close"), " "); } } function HelpMenuComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 37); i0.ɵɵtext(1); i0.ɵɵpipe(2, "translate"); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵadvance(); i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "no_open_source_components")); } } function HelpMenuComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 38); i0.ɵɵelement(1, "acl-loading-mask", 39); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵadvance(); i0.ɵɵproperty("loading", ctx_r1.loading); } } function HelpMenuComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 40); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const version_r9 = ctx.version; i0.ɵɵadvance(); i0.ɵɵtextInterpolate(version_r9); } } const CONFIG = { type: 'configmaps', apiVersion: 'v1', }; export class HelpMenuComponent { constructor(baseHref, dialogService, k8sApi, k8sUtil) { this.baseHref = baseHref; this.dialogService = dialogService; this.k8sApi = k8sApi; this.k8sUtil = k8sUtil; this.loading = false; this.isRuntime = false; } openHealthCheckLink() { window.open('/console-platform/health-check', '_blank', 'noopener=yes,noreferrer=yes'); } viewPlatformInfo(templateRef) { this.componentVersionList = []; this.loading = true; forkJoin([ this.k8sApi.getGlobalResourceList({ definition: CONFIG, namespace: PUBLIC_NAMESPACE, queryParams: { labelSelector: this.k8sUtil.normalizeType('component-version'), }, }), this.k8sApi.getGlobalResource({ definition: CONFIG, name: 'platform', namespace: PUBLIC_NAMESPACE, }), this.k8sApi.getGlobalResource({ definition: CONFIG, name: 'platform-info', namespaced: true, }), ]) .pipe(finalize(() => (this.loading = false))) .subscribe(([cms, config, platformInfo]) => { for (const cm of cms.items) { try { const components = JSON.parse(cm.data.component); this.componentVersionList = [ ...this.componentVersionList, ...components, ]; } catch { } } this.componentVersionList.sort((a, b) => a.index - b.index); this.platformVersion = this.formatPlatformVersion(config.data.version); this.platformName = { en: platformInfo.data.platformNameEN, zh: platformInfo.data.platformNameZH, }; this.isRuntime = config.data.packageEdition === PACKAGE_RUNTIME_VALUE; this.platformTip = { zh: platformInfo.data.portalSubTitleZH, en: platformInfo.data.portalSubTitleEN, }; }); this.dialogRef = this.dialogService.open(templateRef, { size: DialogSize.Big, fitViewport: true, }); } close() { this.dialogRef?.close(); } formatPlatformVersion(version) { if (!version) { return { main: '', all: '', }; } const { major, minor } = parseVersion(version); const main = `v${major}.${minor}`; return { main, all: version }; } static { this.ɵfac = function HelpMenuComponent_Factory(t) { return new (t || HelpMenuComponent)(i0.ɵɵdirectiveInject(TOKEN_BASE_HREF), i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.K8sApiService), i0.ɵɵdirectiveInject(i3.K8sUtilService)); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HelpMenuComponent, selectors: [["acl-help-menu"]], inputs: { helpDocPath: "helpDocPath" }, ngContentSelectors: _c0, decls: 12, vars: 1, consts: [["menu", ""], ["platformInfo", ""], ["noComponent", ""], ["loadingTmp", ""], ["platformStageVersion", ""], ["auiDropdownClass", "acl-page-header__tooltip--small", 1, "menu", 3, "auiDropdown"], ["icon", "question_circle", 1, "menu__icon"], ["class", "acl-help-menu-item", "aclHelpDocTarget", "blank", 3, "aclHelpDoc", 4, "ngIf"], [1, "acl-help-menu-item", 3, "click", "divide"], ["icon", "info_circle"], ["aclHelpDocTarget", "blank", 1, "acl-help-menu-item", 3, "aclHelpDoc"], ["icon", "help_doc"], [1, "tw-ml-[4px]"], [1, "platform-about-dialog"], [1, "platform__version"], [1, "platform__version-title"], ["src", "/console/api/v1/cm/ui-logos/logo"], [1, "line"], [1, "platform__version-title__name-version"], [1, "platform__version-title__name"], ["style", "margin-right: 8px", 4, "ngIf"], ["auiTooltipPosition", "end", "auiTooltipType", "empty", 3, "auiTooltip", "auiTooltipContext"], [1, "platform__version-desc"], [1, "platform__component-info"], [1, "label"], [4, "ngIf", "ngIfElse"], [1, "platform__action"], ["aui-button", "", 3, "click"], [2, "margin-right", "8px"], ["class", "component-container", 4, "ngIf", "ngIfElse"], [1, "component-container"], ["class", "component-item", 4, "ngFor", "ngForOf"], [1, "component-item"], [3, "src"], [1, "component-item-info"], [1, "component-item-info__name", 3, "title"], [1, "component-item-info__version", 3, "title"], [1, "no-component"], [1, "loading"], [3, "loading"], [1, "platform__version-title__toolTip"]], template: function HelpMenuComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵprojectionDef(); i0.ɵɵelementStart(0, "div", 5); i0.ɵɵelement(1, "aui-icon", 6); i0.ɵɵelementEnd(); i0.ɵɵtemplate(2, HelpMenuComponent_ng_template_2_Template, 8, 5, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, HelpMenuComponent_ng_template_4_Template, 24, 20, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, HelpMenuComponent_ng_template_6_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(8, HelpMenuComponent_ng_template_8_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(10, HelpMenuComponent_ng_template_10_Template, 2, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor); } if (rf & 2) { const menu_r10 = i0.ɵɵreference(3); i0.ɵɵproperty("auiDropdown", menu_r10); } }, styles: [".menu[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:2px;color:var(--acl-page-header-text-color);cursor:pointer}.menu[_ngcontent-%COMP%]:hover, .menu.isActive[_ngcontent-%COMP%]{color:#fff;background-color:rgb(var(--aui-color-primary))}.menu__icon[_ngcontent-%COMP%]{font-size:16px}.menu__pointer[_ngcontent-%COMP%]{font-size:12px;margin-left:-2px}.platform__version[_ngcontent-%COMP%]{color:#fff;font-size:18px;padding:32px 24px;background-image:url(^images/platform_version_bg.svg)}.platform__version-title[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:14px}.platform__version-title__name[_ngcontent-%COMP%]{margin-right:8px;line-height:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.platform__version-title__name-version[_ngcontent-%COMP%]{font-size:24px;display:flex;flex-wrap:wrap;flex:1;overflow:hidden;align-items:baseline;line-height:1}.platform__version-title__toolTip[_ngcontent-%COMP%]{height:16px;color:rgb(var(--aui-color-primary));margin-bottom:10px;font-size:12px;line-height:14px;padding:1px 8px;background-color:#ffffffd9;border-radius:99px 95px 95px 99px}.platform__version-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:240px;width:42px;height:42px}.platform__version-title[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:32px;width:1px;opacity:.66;background-color:rgb(var(--aui-color-n-10));margin:0 12px}.platform__component-info[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4));padding:20px 20px 0}.platform__component-info[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:14px;margin-bottom:12px}.platform__component-info[_ngcontent-%COMP%] .component-container[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,calc((100% - 34px) / 3));grid-gap:16px;max-height:312px;overflow-y:auto}.platform__component-info[_ngcontent-%COMP%] .component-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:16px;border-radius:2px;background-color:rgb(var(--aui-color-n-9))}.platform__component-info[_ngcontent-%COMP%] .component-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:36px;height:36px}.platform__component-info[_ngcontent-%COMP%] .component-item-info[_ngcontent-%COMP%]{margin-left:12px;color:rgb(var(--aui-color-n-1));overflow:hidden}.platform__component-info[_ngcontent-%COMP%] .component-item-info__name[_ngcontent-%COMP%], .platform__component-info[_ngcontent-%COMP%] .component-item-info__version[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform__component-info[_ngcontent-%COMP%] .component-item-info__name[_ngcontent-%COMP%]{font-size:var(--aui-font-size-xl);font-weight:var(--aui-font-weight-bolder);line-height:var(--aui-line-height-xl);margin-bottom:2px}.platform__component-info[_ngcontent-%COMP%] .component-item-info__version[_ngcontent-%COMP%]{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.platform__action[_ngcontent-%COMP%]{padding:20px;display:flex;justify-content:flex-end}.no-component[_ngcontent-%COMP%]{height:60px;border:dashed 1px rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));display:flex;align-items:center;justify-content:center}.loading[_ngcontent-%COMP%]{height:312px;display:flex;justify-content:center;align-items:center} .acl-page-header__tooltip--small .aui-menu-item:hover{color:rgb(var(--aui-color-primary))} .acl-help-menu-item:not(:hover) .aui-icon{color:rgb(var(--aui-color-n-2))}"], changeDetection: 0 }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HelpMenuComponent, [{ type: Component, args: [{ selector: 'acl-help-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"menu\"\n [auiDropdown]=\"menu\"\n auiDropdownClass=\"acl-page-header__tooltip--small\"\n>\n <aui-icon\n icon=\"question_circle\"\n class=\"menu__icon\"\n ></aui-icon>\n</div>\n\n<ng-template #menu>\n <aui-menu>\n <aui-menu-item\n *ngIf=\"helpDocPath\"\n class=\"acl-help-menu-item\"\n [aclHelpDoc]=\"helpDocPath\"\n aclHelpDocTarget=\"blank\"\n >\n <aui-icon icon=\"help_doc\"></aui-icon>\n <span class=\"tw-ml-[4px]\">{{ 'help_doc' | translate }}</span>\n </aui-menu-item>\n\n <aui-menu-item\n class=\"acl-help-menu-item\"\n [divide]=\"true\"\n (click)=\"viewPlatformInfo(platformInfo)\"\n >\n <aui-icon icon=\"info_circle\"></aui-icon>\n <span>{{ 'about_platform' | translate }}</span>\n </aui-menu-item>\n\n <ng-content></ng-content>\n </aui-menu>\n</ng-template>\n\n<ng-template #platformInfo>\n <aui-dialog-content class=\"platform-about-dialog\">\n <div class=\"platform__version\">\n <div class=\"platform__version-title\">\n <img src=\"/console/api/v1/cm/ui-logos/logo\" />\n <span class=\"line\"></span>\n <div class=\"platform__version-title__name-version\">\n <span class=\"platform__version-title__name\">{{\n platformName ? (platformName | translate) : 'ACP'\n }}</span>\n <span\n style=\"margin-right: 8px\"\n *ngIf=\"isRuntime\"\n >\n {{ 'runtime_edition' | translate }}\n </span>\n <span\n [auiTooltip]=\"platformStageVersion\"\n [auiTooltipContext]=\"{ version: platformVersion?.all }\"\n auiTooltipPosition=\"end\"\n auiTooltipType=\"empty\"\n >\n {{ platformVersion?.main }}</span\n >\n </div>\n </div>\n <div class=\"platform__version-desc\">{{ platformTip | translate }}</div>\n </div>\n <div class=\"platform__component-info\">\n <div class=\"label\">\n {{ 'platform_related_open_source_component_info' | translate }}\n </div>\n <ng-container *ngIf=\"!loading; else loadingTmp\">\n <div\n class=\"component-container\"\n *ngIf=\"componentVersionList?.length; else noComponent\"\n >\n <div\n class=\"component-item\"\n *ngFor=\"let componentVersion of componentVersionList\"\n >\n <img [src]=\"'icons/' + componentVersion.name + '.svg'\" />\n <div class=\"component-item-info\">\n <div\n class=\"component-item-info__name\"\n [title]=\"componentVersion.name\"\n >\n {{ componentVersion.name }}\n </div>\n <div\n class=\"component-item-info__version\"\n [title]=\"componentVersion.version\"\n >\n {{ componentVersion.version }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"platform__action\">\n <button\n aui-button\n (click)=\"close()\"\n >\n {{ 'close' | translate }}\n </button>\n </div>\n </aui-dialog-content>\n</ng-template>\n\n<ng-template #noComponent>\n <div class=\"no-component\">{{ 'no_open_source_components' | translate }}</div>\n</ng-template>\n\n<ng-template #loadingTmp>\n <div class=\"loading\">\n <acl-loading-mask [loading]=\"loading\"></acl-loading-mask>\n </div>\n</ng-template>\n\n<ng-template\n #platformStageVersion\n let-version=\"version\"\n>\n <div class=\"platform__version-title__toolTip\">{{ version }}</div>\n</ng-template>\n", styles: [".menu{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:2px;color:var(--acl-page-header-text-color);cursor:pointer}.menu:hover,.menu.isActive{color:#fff;background-color:rgb(var(--aui-color-primary))}.menu__icon{font-size:16px}.menu__pointer{font-size:12px;margin-left:-2px}.platform__version{color:#fff;font-size:18px;padding:32px 24px;background-image:url(^images/platform_version_bg.svg)}.platform__version-title{display:flex;align-items:center;margin-bottom:14px}.platform__version-title__name{margin-right:8px;line-height:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.platform__version-title__name-version{font-size:24px;display:flex;flex-wrap:wrap;flex:1;overflow:hidden;align-items:baseline;line-height:1}.platform__version-title__toolTip{height:16px;color:rgb(var(--aui-color-primary));margin-bottom:10px;font-size:12px;line-height:14px;padding:1px 8px;background-color:#ffffffd9;border-radius:99px 95px 95px 99px}.platform__version-title img{max-width:240px;width:42px;height:42px}.platform__version-title .line{height:32px;width:1px;opacity:.66;background-color:rgb(var(--aui-color-n-10));margin:0 12px}.platform__component-info{color:rgb(var(--aui-color-n-4));padding:20px 20px 0}.platform__component-info .label{font-size:14px;margin-bottom:12px}.platform__component-info .component-container{display:grid;grid-template-columns:repeat(3,calc((100% - 34px) / 3));grid-gap:16px;max-height:312px;overflow-y:auto}.platform__component-info .component-item{display:flex;align-items:center;padding:16px;border-radius:2px;background-color:rgb(var(--aui-color-n-9))}.platform__component-info .component-item img{width:36px;height:36px}.platform__component-info .component-item-info{margin-left:12px;color:rgb(var(--aui-color-n-1));overflow:hidden}.platform__component-info .component-item-info__name,.platform__component-info .component-item-info__version{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform__component-info .component-item-info__name{font-size:var(--aui-font-size-xl);font-weight:var(--aui-font-weight-bolder);line-height:var(--aui-line-height-xl);margin-bottom:2px}.platform__component-info .component-item-info__version{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.platform__action{padding:20px;display:flex;justify-content:flex-end}.no-component{height:60px;border:dashed 1px rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));display:flex;align-items:center;justify-content:center}.loading{height:312px;display:flex;justify-content:center;align-items:center}::ng-deep .acl-page-header__tooltip--small .aui-menu-item:hover{color:rgb(var(--aui-color-primary))}::ng-deep .acl-help-menu-item:not(:hover) .aui-icon{color:rgb(var(--aui-color-n-2))}\n"] }] }], () => [{ type: undefined, decorators: [{ type: Inject, args: [TOKEN_BASE_HREF] }] }, { type: i1.DialogService }, { type: i2.K8sApiService }, { type: i3.K8sUtilService }], { helpDocPath: [{ type: Input }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HelpMenuComponent, { className: "HelpMenuComponent" }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvcGFnZS1oZWFkZXIvaGVscC1tZW51L2NvbXBvbmVudC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9wYWdlLWhlYWRlci9oZWxwLW1lbnUvY29tcG9uZW50L3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFhLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGNBQWMsRUFFZCxlQUFlLEdBQ2hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1oscUJBQXFCLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0lDYjVCLHlDQUtDO0lBQ0MsK0JBQXFDO0lBQ3JDLGdDQUEwQjtJQUFBLFlBQTRCOztJQUN4RCxBQUR3RCxpQkFBTyxFQUMvQzs7O0lBTGQsK0NBQTBCO0lBSUEsZUFBNEI7SUFBNUIsc0RBQTRCOzs7O0lBUjFELGdDQUFVO0lBQ1Isb0dBS0M7SUFLRCx3Q0FJQztJQURDLHVPQUFTLHdDQUE4QixLQUFDO0lBRXhDLDhCQUF3QztJQUN4Qyw0QkFBTTtJQUFBLFlBQWtDOztJQUMxQyxBQUQwQyxpQkFBTyxFQUNqQztJQUVoQixrQkFBeUI7SUFDM0Is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QU0sSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7a0ZBL0ZVLGlCQUFpQix1QkFhbEIsZUFBZTtvRUFiZCxpQkFBaUI7O1lDdEU5Qiw4QkFJQztZQUNDLDhCQUdZO1lBQ2QsaUJBQU07WUE0R04sQUFOQSxBQUpBLEFBdkVBLEFBekJBLG1IQUFtQix3R0F5QlEsc0dBdUVELHNHQUlELHdHQVN4Qjs7O1lBdEhDLHNDQUFvQjs7O2lGRG9FVCxpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07O3NCQWU1QyxNQUFNO3VCQUFDLGVBQWU7MEdBWHpCLFdBQVc7a0JBRFYsS0FBSzs7a0ZBREssaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgaGVscC1tZW51XG4gKi9cblxuaW1wb3J0IHsgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlLCBEaWFsb2dTaXplIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIFRPS0VOX0JBU0VfSFJFRixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZUtleSxcbiAgUFVCTElDX05BTUVTUEFDRSxcbiAgcGFyc2VWZXJzaW9uLFxuICBQQUNLQUdFX1JVTlRJTUVfVkFMVUUsXG59IGZyb20gJy4uLy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuXG5pbnRlcmZhY2UgQ29tcG9uZW50VmVyc2lvbiB7XG4gIGluZGV4OiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ29tcG9uZW50Q29uZmlnTWFwIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgZGF0YT86IHtcbiAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtQ29uZmlnTWFwIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgZGF0YT86IHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcGFja2FnZUVkaXRpb246IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtSW5mbyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGRhdGE/OiB7XG4gICAgcGxhdGZvcm1OYW1lOiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUGxhdGZvcm1WZXJzaW9uIHtcbiAgbWFpbjogc3RyaW5nO1xuICBhbGw6IHN0cmluZztcbn1cblxuY29uc3QgQ09ORklHID0ge1xuICB0eXBlOiAnY29uZmlnbWFwcycsXG4gIGFwaVZlcnNpb246ICd2MScsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtaGVscC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlbHBNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgaGVscERvY1BhdGg6IHN0cmluZztcblxuICBkaWFsb2dSZWY6IERpYWxvZ1JlZjtcbiAgY29tcG9uZW50VmVyc2lvbkxpc3Q6IENvbXBvbmVudFZlcnNpb25bXTtcbiAgcGxhdGZvcm1WZXJzaW9uOiBQbGF0Zm9ybVZlcnNpb247XG4gIHBsYXRmb3JtVGlwOiBUcmFuc2xhdGVLZXk7XG4gIHBsYXRmb3JtTmFtZTogVHJhbnNsYXRlS2V5O1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGlzUnVudGltZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHJlYWRvbmx5IGJhc2VIcmVmOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICkge31cblxuICBvcGVuSGVhbHRoQ2hlY2tMaW5rKCkge1xuICAgIHdpbmRvdy5vcGVuKFxuICAgICAgJy9jb25zb2xlLXBsYXRmb3JtL2hlYWx0aC1jaGVjaycsXG4gICAgICAnX2JsYW5rJyxcbiAgICAgICdub29wZW5lcj15ZXMsbm9yZWZlcnJlcj15ZXMnLFxuICAgICk7XG4gIH1cblxuICB2aWV3UGxhdGZvcm1JbmZvKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jb21wb25lbnRWZXJzaW9uTGlzdCA9IFtdO1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy5rOHNBcGkuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PENvbXBvbmVudENvbmZpZ01hcD4oe1xuICAgICAgICBkZWZpbml0aW9uOiBDT05GSUcsXG4gICAgICAgIG5hbWVzcGFjZTogUFVCTElDX05BTUVTUEFDRSxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICBsYWJlbFNlbGVjdG9yOiB0aGlzLms4c1V0aWwubm9ybWFsaXplVHlwZSgnY29tcG9uZW50LXZlcnNpb24nKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgdGhpcy5rOHNBcGkuZ2V0R2xvYmFsUmVzb3VyY2U8UGxhdGZvcm1Db25maWdNYXA+KHtcbiAgICAgICAgZGVmaW5pdGlvbjogQ09ORklHLFxuICAgICAgICBuYW1lOiAncGxhdGZvcm0nLFxuICAgICAgICBuYW1lc3BhY2U6IFBVQkxJQ19OQU1FU1BBQ0UsXG4gICAgICB9KSxcbiAgICAgIHRoaXMuazhzQXBpLmdldEdsb2JhbFJlc291cmNlPFBsYXRmb3JtSW5mbz4oe1xuICAgICAgICBkZWZpbml0aW9uOiBDT05GSUcsXG4gICAgICAgIG5hbWU6ICdwbGF0Zm9ybS1pbmZvJyxcbiAgICAgICAgbmFtZXNwYWNlZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIF0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtjbXMsIGNvbmZpZywgcGxhdGZvcm1JbmZvXSkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGNtIG9mIGNtcy5pdGVtcykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRzOiBDb21wb25lbnRWZXJzaW9uW10gPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgICBjbS5kYXRhLmNvbXBvbmVudCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFZlcnNpb25MaXN0ID0gW1xuICAgICAgICAgICAgICAuLi50aGlzLmNvbXBvbmVudFZlcnNpb25MaXN0LFxuICAgICAgICAgICAgICAuLi5jb21wb25lbnRzLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9IGNhdGNoIHt9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRWZXJzaW9uTGlzdC5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleCk7XG4gICAgICAgIHRoaXMucGxhdGZvcm1WZXJzaW9uID0gdGhpcy5mb3JtYXRQbGF0Zm9ybVZlcnNpb24oY29uZmlnLmRhdGEudmVyc2lvbik7XG4gICAgICAgIHRoaXMucGxhdGZvcm1OYW1lID0ge1xuICAgICAgICAgIGVuOiBwbGF0Zm9ybUluZm8uZGF0YS5wbGF0Zm9ybU5hbWVFTixcbiAgICAgICAgICB6aDogcGxhdGZvcm1JbmZvLmRhdGEucGxhdGZvcm1OYW1lWkgsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaXNSdW50aW1lID0gY29uZmlnLmRhdGEucGFja2FnZUVkaXRpb24gPT09IFBBQ0tBR0VfUlVOVElNRV9WQUxVRTtcbiAgICAgICAgdGhpcy5wbGF0Zm9ybVRpcCA9IHtcbiAgICAgICAgICB6aDogcGxhdGZvcm1JbmZvLmRhdGEucG9ydGFsU3ViVGl0bGVaSCxcbiAgICAgICAgICBlbjogcGxhdGZvcm1JbmZvLmRhdGEucG9ydGFsU3ViVGl0bGVFTixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4odGVtcGxhdGVSZWYsIHtcbiAgICAgIHNpemU6IERpYWxvZ1NpemUuQmlnLFxuICAgICAgZml0Vmlld3BvcnQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxuXG4gIGZvcm1hdFBsYXRmb3JtVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1haW46ICcnLFxuICAgICAgICBhbGw6ICcnLFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgeyBtYWpvciwgbWlub3IgfSA9IHBhcnNlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICBjb25zdCBtYWluID0gYHYke21ham9yfS4ke21pbm9yfWA7XG4gICAgcmV0dXJuIHsgbWFpbiwgYWxsOiB2ZXJzaW9uIH07XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJtZW51XCJcbiAgW2F1aURyb3Bkb3duXT1cIm1lbnVcIlxuICBhdWlEcm9wZG93bkNsYXNzPVwiYWNsLXBhZ2UtaGVhZGVyX190b29sdGlwLS1zbWFsbFwiXG4+XG4gIDxhdWktaWNvblxuICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgIGNsYXNzPVwibWVudV9faWNvblwiXG4gID48L2F1aS1pY29uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbWVudT5cbiAgPGF1aS1tZW51PlxuICAgIDxhdWktbWVudS1pdGVtXG4gICAgICAqbmdJZj1cImhlbHBEb2NQYXRoXCJcbiAgICAgIGNsYXNzPVwiYWNsLWhlbHAtbWVudS1pdGVtXCJcbiAgICAgIFthY2xIZWxwRG9jXT1cImhlbHBEb2NQYXRoXCJcbiAgICAgIGFjbEhlbHBEb2NUYXJnZXQ9XCJibGFua1wiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJoZWxwX2RvY1wiPjwvYXVpLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInR3LW1sLVs0cHhdXCI+e3sgJ2hlbHBfZG9jJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2F1aS1tZW51LWl0ZW0+XG5cbiAgICA8YXVpLW1lbnUtaXRlbVxuICAgICAgY2xhc3M9XCJhY2wtaGVscC1tZW51LWl0ZW1cIlxuICAgICAgW2RpdmlkZV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJ2aWV3UGxhdGZvcm1JbmZvKHBsYXRmb3JtSW5mbylcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwiaW5mb19jaXJjbGVcIj48L2F1aS1pY29uPlxuICAgICAgPHNwYW4+e3sgJ2Fib3V0X3BsYXRmb3JtJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2F1aS1tZW51LWl0ZW0+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYXVpLW1lbnU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BsYXRmb3JtSW5mbz5cbiAgPGF1aS1kaWFsb2ctY29udGVudCBjbGFzcz1cInBsYXRmb3JtLWFib3V0LWRpYWxvZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBsYXRmb3JtX192ZXJzaW9uLXRpdGxlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiL2NvbnNvbGUvYXBpL3YxL2NtL3VpLWxvZ29zL2xvZ29cIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmVcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvbi10aXRsZV9fbmFtZS12ZXJzaW9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvbi10aXRsZV9fbmFtZVwiPnt7XG4gICAgICAgICAgICBwbGF0Zm9ybU5hbWUgPyAocGxhdGZvcm1OYW1lIHwgdHJhbnNsYXRlKSA6ICdBQ1AnXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA4cHhcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc1J1bnRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdydW50aW1lX2VkaXRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbYXVpVG9vbHRpcF09XCJwbGF0Zm9ybVN0YWdlVmVyc2lvblwiXG4gICAgICAgICAgICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyB2ZXJzaW9uOiBwbGF0Zm9ybVZlcnNpb24/LmFsbCB9XCJcbiAgICAgICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImVuZFwiXG4gICAgICAgICAgICBhdWlUb29sdGlwVHlwZT1cImVtcHR5XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBwbGF0Zm9ybVZlcnNpb24/Lm1haW4gfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhdGZvcm1fX3ZlcnNpb24tZGVzY1wiPnt7IHBsYXRmb3JtVGlwIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBsYXRmb3JtX19jb21wb25lbnQtaW5mb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgIHt7ICdwbGF0Zm9ybV9yZWxhdGVkX29wZW5fc291cmNlX2NvbXBvbmVudF9pbmZvJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ1RtcFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtY29udGFpbmVyXCJcbiAgICAgICAgICAqbmdJZj1cImNvbXBvbmVudFZlcnNpb25MaXN0Py5sZW5ndGg7IGVsc2Ugbm9Db21wb25lbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtaXRlbVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcG9uZW50VmVyc2lvbiBvZiBjb21wb25lbnRWZXJzaW9uTGlzdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIidpY29ucy8nICsgY29tcG9uZW50VmVyc2lvbi5uYW1lICsgJy5zdmcnXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb25lbnQtaXRlbS1pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBvbmVudC1pdGVtLWluZm9fX25hbWVcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb21wb25lbnRWZXJzaW9uLm5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY29tcG9uZW50VmVyc2lvbi5uYW1lIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtaXRlbS1pbmZvX192ZXJzaW9uXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29tcG9uZW50VmVyc2lvbi52ZXJzaW9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNvbXBvbmVudFZlcnNpb24udmVyc2lvbiB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fYWN0aW9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnY2xvc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9hdWktZGlhbG9nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vQ29tcG9uZW50PlxuICA8ZGl2IGNsYXNzPVwibm8tY29tcG9uZW50XCI+e3sgJ25vX29wZW5fc291cmNlX2NvbXBvbmVudHMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdUbXA+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCI+XG4gICAgPGFjbC1sb2FkaW5nLW1hc2sgW2xvYWRpbmddPVwibG9hZGluZ1wiPjwvYWNsLWxvYWRpbmctbWFzaz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3BsYXRmb3JtU3RhZ2VWZXJzaW9uXG4gIGxldC12ZXJzaW9uPVwidmVyc2lvblwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvbi10aXRsZV9fdG9vbFRpcFwiPnt7IHZlcnNpb24gfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=