UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

135 lines 16.6 kB
export const APP_MODULE = (filenamePrefix, context, imports, mainComponentName, componentNames, customRoutes, chartsImport, dashboardsImport) => `import { BrowserModule } from "@angular/platform-browser";\n` + "import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n" + "import { FormsModule, ReactiveFormsModule } from '@angular/forms';\n" + "import { HttpClientModule } from '@angular/common/http';\n" + `import { NgModule, TRANSLATIONS, TRANSLATIONS_FORMAT } from "@angular/core";\n` + `import { RouterModule } from "@angular/router";\n` + `import { AppComponent } from "./app.component";\n` + `${customRoutes ? `import { ROUTES } from "./routes";` : ""}\n` + "import {\n" + " NuiButtonModule,\n" + " NuiCheckboxModule,\n" + " NuiCommonModule,\n" + " NuiDividerModule,\n" + " NuiIconModule,\n" + " NuiMessageModule,\n" + " NuiImageModule,\n" + " NuiMenuModule,\n" + " NuiPopupModule,\n" + " NuiSwitchModule,\n" + " NuiSelectModule,\n" + " NuiSelectV2Module,\n" + " NuiSpinnerModule,\n" + " NuiTabsModule,\n" + " NuiTextboxModule,\n" + " NuiTooltipModule,\n" + " NuiLayoutModule,\n" + " NuiOverlayModule,\n" + " NuiOverlayAdditionsModule,\n" + " NuiBreadcrumbModule,\n" + " NuiBusyModule,\n" + " NuiChipsModule,\n" + " NuiContentModule,\n" + " NuiDatePickerModule,\n" + " NuiDateTimePickerModule,\n" + " NuiDialogModule,\n" + " NuiExpanderModule,\n" + " NuiFormFieldModule,\n" + " NuiPaginatorModule,\n" + " NuiPanelModule,\n" + " NuiPopoverModule,\n" + " NuiProgressModule,\n" + " NuiRadioModule,\n" + " NuiRepeatModule,\n" + " NuiSearchModule,\n" + " NuiSelectorModule,\n" + " NuiSorterModule,\n" + " NuiTableModule,\n" + " NuiTimeFrameBarModule,\n" + " NuiTimeFramePickerModule,\n" + " NuiTimePickerModule,\n" + " NuiToastModule,\n" + " NuiToolbarModule,\n" + " NuiValidationMessageModule,\n" + " NuiWizardModule,\n" + " NuiWizardV2Module,\n" + "} from '@nova-ui/bits';\n" + `${chartsImport ? `import { NuiChartsModule } from "@nova-ui/charts";\n` : ""}` + "\n" + `${dashboardsImport ? `import { NuiDashboardsModule } from "@nova-ui/dashboards";\n` : ""}` + "\n" + `${imports}\n` + "\n" + "@NgModule({\n" + ` declarations: [AppComponent, ${componentNames}],\n` + " imports: [\n" + " BrowserModule,\n" + " BrowserModule,\n" + " BrowserAnimationsModule,\n" + " FormsModule,\n" + " ReactiveFormsModule,\n" + " HttpClientModule,\n" + " NuiButtonModule,\n" + " NuiCheckboxModule,\n" + " NuiCommonModule,\n" + " NuiDividerModule,\n" + " NuiIconModule,\n" + " NuiMessageModule,\n" + " NuiImageModule,\n" + " NuiMenuModule,\n" + " NuiPopupModule,\n" + " NuiSwitchModule,\n" + " NuiSelectModule,\n" + " NuiSelectV2Module,\n" + " NuiSpinnerModule,\n" + " NuiTabsModule,\n" + " NuiTextboxModule,\n" + " NuiTooltipModule,\n" + " NuiLayoutModule,\n" + " NuiOverlayModule,\n" + " NuiOverlayAdditionsModule,\n" + " NuiBreadcrumbModule,\n" + " NuiBusyModule,\n" + " NuiChipsModule,\n" + " NuiContentModule,\n" + " NuiDatePickerModule,\n" + " NuiDateTimePickerModule,\n" + " NuiDialogModule,\n" + " NuiExpanderModule,\n" + " NuiFormFieldModule,\n" + " NuiPaginatorModule,\n" + " NuiPanelModule,\n" + " NuiPopoverModule,\n" + " NuiProgressModule,\n" + " NuiRadioModule,\n" + " NuiRepeatModule,\n" + " NuiSearchModule,\n" + " NuiSelectorModule,\n" + " NuiSorterModule,\n" + " NuiTableModule,\n" + " NuiTimeFrameBarModule,\n" + " NuiTimeFramePickerModule,\n" + " NuiTimePickerModule,\n" + " NuiToastModule,\n" + " NuiToolbarModule,\n" + " NuiValidationMessageModule,\n" + " NuiWizardModule,\n" + " NuiWizardV2Module,\n" + `${chartsImport ? " NuiChartsModule," : ""}` + `${dashboardsImport ? " NuiDashboardsModule," : ""}` + ` RouterModule.forRoot(${customRoutes ? getCustomRoute(context) : getDefaultRoute(context, mainComponentName)})\n` + " ],\n" + " bootstrap: [AppComponent]\n" + "})\n" + "export class AppModule {}\n"; const getDefaultRoute = (context, mainComponentName) => `[{path: "", redirectTo: "${context}",pathMatch: "full"},\n` + `{path: "${context}", component: ${mainComponentName} }]`; const getCustomRoute = (context) => `[{path: "", redirectTo: "${context}",pathMatch: "full"},\n` + `{path: "${context}", children: ROUTES }]`; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZG9jcy9saXZlLWV4YW1wbGUtZmlsZXMvYXBwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDdEIsY0FBc0IsRUFDdEIsT0FBZSxFQUNmLE9BQWUsRUFDZixpQkFBeUIsRUFDekIsY0FBc0IsRUFDdEIsWUFBcUIsRUFDckIsWUFBc0IsRUFDdEIsZ0JBQTBCLEVBQ3BCLEVBQUUsQ0FDUiw4REFBOEQ7SUFDOUQsbUZBQW1GO0lBQ25GLHNFQUFzRTtJQUN0RSw0REFBNEQ7SUFDNUQsZ0ZBQWdGO0lBQ2hGLG1EQUFtRDtJQUNuRCxtREFBbUQ7SUFDbkQsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7SUFDL0QsWUFBWTtJQUNaLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2QixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLHlCQUF5QjtJQUN6QixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLGtDQUFrQztJQUNsQyw0QkFBNEI7SUFDNUIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsNEJBQTRCO0lBQzVCLGdDQUFnQztJQUNoQyx3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLGlDQUFpQztJQUNqQyw0QkFBNEI7SUFDNUIsdUJBQXVCO0lBQ3ZCLHlCQUF5QjtJQUN6QixtQ0FBbUM7SUFDbkMsd0JBQXdCO0lBQ3hCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsR0FDSSxZQUFZO1FBQ1IsQ0FBQyxDQUFDLHNEQUFzRDtRQUN4RCxDQUFDLENBQUMsRUFDVixFQUFFO0lBQ0YsSUFBSTtJQUNKLEdBQ0ksZ0JBQWdCO1FBQ1osQ0FBQyxDQUFDLDhEQUE4RDtRQUNoRSxDQUFDLENBQUMsRUFDVixFQUFFO0lBQ0YsSUFBSTtJQUNKLEdBQUcsT0FBTyxJQUFJO0lBQ2QsSUFBSTtJQUNKLGVBQWU7SUFDZixvQ0FBb0MsY0FBYyxNQUFNO0lBQ3hELGtCQUFrQjtJQUNsQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLG9DQUFvQztJQUNwQyx3QkFBd0I7SUFDeEIsZ0NBQWdDO0lBQ2hDLDZCQUE2QjtJQUM3Qiw0QkFBNEI7SUFDNUIsOEJBQThCO0lBQzlCLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFDN0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3Qiw2QkFBNkI7SUFDN0IsNEJBQTRCO0lBQzVCLDZCQUE2QjtJQUM3QixzQ0FBc0M7SUFDdEMsZ0NBQWdDO0lBQ2hDLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5QiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLDJCQUEyQjtJQUMzQiw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5Qiw0QkFBNEI7SUFDNUIsMkJBQTJCO0lBQzNCLGtDQUFrQztJQUNsQyxxQ0FBcUM7SUFDckMsZ0NBQWdDO0lBQ2hDLDJCQUEyQjtJQUMzQiw2QkFBNkI7SUFDN0IsdUNBQXVDO0lBQ3ZDLDRCQUE0QjtJQUM1Qiw4QkFBOEI7SUFDOUIsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDbkQsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUMzRCxnQ0FDSSxZQUFZO1FBQ1IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDekIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQ3BELEtBQUs7SUFDTCxVQUFVO0lBQ1YsaUNBQWlDO0lBQ2pDLE1BQU07SUFDTiw2QkFBNkIsQ0FBQztBQUVsQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBRSxpQkFBeUIsRUFBVSxFQUFFLENBQzNFLDRCQUE0QixPQUFPLHlCQUF5QjtJQUM1RCxXQUFXLE9BQU8saUJBQWlCLGlCQUFpQixLQUFLLENBQUM7QUFFOUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUMvQyw0QkFBNEIsT0FBTyx5QkFBeUI7SUFDNUQsV0FBVyxPQUFPLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQUF9NT0RVTEUgPSAoXG4gICAgZmlsZW5hbWVQcmVmaXg6IHN0cmluZyxcbiAgICBjb250ZXh0OiBzdHJpbmcsXG4gICAgaW1wb3J0czogc3RyaW5nLFxuICAgIG1haW5Db21wb25lbnROYW1lOiBzdHJpbmcsXG4gICAgY29tcG9uZW50TmFtZXM6IHN0cmluZyxcbiAgICBjdXN0b21Sb3V0ZXM6IGJvb2xlYW4sXG4gICAgY2hhcnRzSW1wb3J0PzogYm9vbGVhbixcbiAgICBkYXNoYm9hcmRzSW1wb3J0PzogYm9vbGVhblxuKTogc3RyaW5nID0+XG4gICAgYGltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xcbmAgK1xuICAgIFwiaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xcblwiICtcbiAgICBcImltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xcblwiICtcbiAgICBcImltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XFxuXCIgK1xuICAgIGBpbXBvcnQgeyBOZ01vZHVsZSwgVFJBTlNMQVRJT05TLCBUUkFOU0xBVElPTlNfRk9STUFUIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcXG5gICtcbiAgICBgaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xcbmAgK1xuICAgIGBpbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tIFwiLi9hcHAuY29tcG9uZW50XCI7XFxuYCArXG4gICAgYCR7Y3VzdG9tUm91dGVzID8gYGltcG9ydCB7IFJPVVRFUyB9IGZyb20gXCIuL3JvdXRlc1wiO2AgOiBcIlwifVxcbmAgK1xuICAgIFwiaW1wb3J0IHtcXG5cIiArXG4gICAgXCIgICAgTnVpQnV0dG9uTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlDaGVja2JveE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpQ29tbW9uTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlEaXZpZGVyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlJY29uTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlNZXNzYWdlTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlJbWFnZU1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpTWVudU1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpUG9wdXBNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aVN3aXRjaE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpU2VsZWN0TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlTZWxlY3RWMk1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpU3Bpbm5lck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVGFic01vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVGV4dGJveE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVG9vbHRpcE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpTGF5b3V0TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlPdmVybGF5TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlPdmVybGF5QWRkaXRpb25zTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlCcmVhZGNydW1iTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlCdXN5TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlDaGlwc01vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpQ29udGVudE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpRGF0ZVBpY2tlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpRGF0ZVRpbWVQaWNrZXJNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aURpYWxvZ01vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpRXhwYW5kZXJNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aUZvcm1GaWVsZE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpUGFnaW5hdG9yTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlQYW5lbE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpUG9wb3Zlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpUHJvZ3Jlc3NNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aVJhZGlvTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlSZXBlYXRNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aVNlYXJjaE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpU2VsZWN0b3JNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aVNvcnRlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVGFibGVNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aVRpbWVGcmFtZUJhck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVGltZUZyYW1lUGlja2VyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlUaW1lUGlja2VyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICBOdWlUb2FzdE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVG9vbGJhck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpVmFsaWRhdGlvbk1lc3NhZ2VNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgIE51aVdpemFyZE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgTnVpV2l6YXJkVjJNb2R1bGUsXFxuXCIgK1xuICAgIFwifSBmcm9tICdAbm92YS11aS9iaXRzJztcXG5cIiArXG4gICAgYCR7XG4gICAgICAgIGNoYXJ0c0ltcG9ydFxuICAgICAgICAgICAgPyBgaW1wb3J0IHsgTnVpQ2hhcnRzTW9kdWxlIH0gZnJvbSBcIkBub3ZhLXVpL2NoYXJ0c1wiO1xcbmBcbiAgICAgICAgICAgIDogXCJcIlxuICAgIH1gICtcbiAgICBcIlxcblwiICtcbiAgICBgJHtcbiAgICAgICAgZGFzaGJvYXJkc0ltcG9ydFxuICAgICAgICAgICAgPyBgaW1wb3J0IHsgTnVpRGFzaGJvYXJkc01vZHVsZSB9IGZyb20gXCJAbm92YS11aS9kYXNoYm9hcmRzXCI7XFxuYFxuICAgICAgICAgICAgOiBcIlwiXG4gICAgfWAgK1xuICAgIFwiXFxuXCIgK1xuICAgIGAke2ltcG9ydHN9XFxuYCArXG4gICAgXCJcXG5cIiArXG4gICAgXCJATmdNb2R1bGUoe1xcblwiICtcbiAgICBgICAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudCwgJHtjb21wb25lbnROYW1lc31dLFxcbmAgK1xuICAgIFwiICAgIGltcG9ydHM6IFtcXG5cIiArXG4gICAgXCIgICAgICAgIEJyb3dzZXJNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBCcm93c2VyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBGb3Jtc01vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpQnV0dG9uTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpQ2hlY2tib3hNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlDb21tb25Nb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlEaXZpZGVyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpSWNvbk1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aU1lc3NhZ2VNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlJbWFnZU1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aU1lbnVNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlQb3B1cE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVN3aXRjaE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVNlbGVjdE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVNlbGVjdFYyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpU3Bpbm5lck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVRhYnNNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlUZXh0Ym94TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpVG9vbHRpcE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aUxheW91dE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aU92ZXJsYXlNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlPdmVybGF5QWRkaXRpb25zTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpQnJlYWRjcnVtYk1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aUJ1c3lNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlDaGlwc01vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aUNvbnRlbnRNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlEYXRlUGlja2VyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpRGF0ZVRpbWVQaWNrZXJNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlEaWFsb2dNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlFeHBhbmRlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aUZvcm1GaWVsZE1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVBhZ2luYXRvck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVBhbmVsTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpUG9wb3Zlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVByb2dyZXNzTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpUmFkaW9Nb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlSZXBlYXRNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlTZWFyY2hNb2R1bGUsXFxuXCIgK1xuICAgIFwiICAgICAgICBOdWlTZWxlY3Rvck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVNvcnRlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVRhYmxlTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpVGltZUZyYW1lQmFyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpVGltZUZyYW1lUGlja2VyTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpVGltZVBpY2tlck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVRvYXN0TW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpVG9vbGJhck1vZHVsZSxcXG5cIiArXG4gICAgXCIgICAgICAgIE51aVZhbGlkYXRpb25NZXNzYWdlTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpV2l6YXJkTW9kdWxlLFxcblwiICtcbiAgICBcIiAgICAgICAgTnVpV2l6YXJkVjJNb2R1bGUsXFxuXCIgK1xuICAgIGAke2NoYXJ0c0ltcG9ydCA/IFwiICAgICAgICBOdWlDaGFydHNNb2R1bGUsXCIgOiBcIlwifWAgK1xuICAgIGAke2Rhc2hib2FyZHNJbXBvcnQgPyBcIiAgICAgICAgTnVpRGFzaGJvYXJkc01vZHVsZSxcIiA6IFwiXCJ9YCArXG4gICAgYCAgICAgICAgUm91dGVyTW9kdWxlLmZvclJvb3QoJHtcbiAgICAgICAgY3VzdG9tUm91dGVzXG4gICAgICAgICAgICA/IGdldEN1c3RvbVJvdXRlKGNvbnRleHQpXG4gICAgICAgICAgICA6IGdldERlZmF1bHRSb3V0ZShjb250ZXh0LCBtYWluQ29tcG9uZW50TmFtZSlcbiAgICB9KVxcbmAgK1xuICAgIFwiICAgIF0sXFxuXCIgK1xuICAgIFwiICAgIGJvb3RzdHJhcDogW0FwcENvbXBvbmVudF1cXG5cIiArXG4gICAgXCJ9KVxcblwiICtcbiAgICBcImV4cG9ydCBjbGFzcyBBcHBNb2R1bGUge31cXG5cIjtcblxuY29uc3QgZ2V0RGVmYXVsdFJvdXRlID0gKGNvbnRleHQ6IHN0cmluZywgbWFpbkNvbXBvbmVudE5hbWU6IHN0cmluZyk6IHN0cmluZyA9PlxuICAgIGBbe3BhdGg6IFwiXCIsIHJlZGlyZWN0VG86IFwiJHtjb250ZXh0fVwiLHBhdGhNYXRjaDogXCJmdWxsXCJ9LFxcbmAgK1xuICAgIGB7cGF0aDogXCIke2NvbnRleHR9XCIsIGNvbXBvbmVudDogJHttYWluQ29tcG9uZW50TmFtZX0gfV1gO1xuXG5jb25zdCBnZXRDdXN0b21Sb3V0ZSA9IChjb250ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgICBgW3twYXRoOiBcIlwiLCByZWRpcmVjdFRvOiBcIiR7Y29udGV4dH1cIixwYXRoTWF0Y2g6IFwiZnVsbFwifSxcXG5gICtcbiAgICBge3BhdGg6IFwiJHtjb250ZXh0fVwiLCBjaGlsZHJlbjogUk9VVEVTIH1dYDtcbiJdfQ==