@alauda-fe/common 1.4.28-beta.6 → 1.4.29-beta.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.
Files changed (39) hide show
  1. package/array-form-table/form/component.d.ts +1 -1
  2. package/chart/common/series/bar-path.component.d.ts +1 -1
  3. package/chart/common/tooltip/tooltip.component.d.ts +1 -1
  4. package/code/code-editor-configs.d.ts +2 -0
  5. package/code/managed-fields-folder.util.d.ts +35 -0
  6. package/code/public-api.d.ts +4 -0
  7. package/code/resource-yaml-display/component.d.ts +64 -6
  8. package/code/resource-yaml-editor/component.d.ts +95 -0
  9. package/code/yaml-examples.d.ts +8 -0
  10. package/code/yaml-sidebar/component.d.ts +57 -0
  11. package/code/yaml-sidebar/types.d.ts +21 -0
  12. package/core/abstract/base-nested-form-control.d.ts +1 -1
  13. package/core/directives/scroll-to-first-invalid.directive.d.ts +1 -1
  14. package/core/services/feature-gate.service.d.ts +1 -1
  15. package/core/services/kubernetes-schema.service.d.ts +44 -0
  16. package/core/services/public-api.d.ts +1 -0
  17. package/core/types/openapi.d.ts +37 -0
  18. package/core/types/public-api.d.ts +1 -0
  19. package/core/utils/version.d.ts +1 -1
  20. package/esm2022/code/code-editor-configs.mjs +12 -2
  21. package/esm2022/code/managed-fields-folder.util.mjs +147 -0
  22. package/esm2022/code/public-api.mjs +5 -1
  23. package/esm2022/code/resource-yaml-display/component.mjs +256 -42
  24. package/esm2022/code/resource-yaml-editor/component.mjs +392 -0
  25. package/esm2022/code/yaml-examples.mjs +337 -0
  26. package/esm2022/code/yaml-sidebar/component.mjs +482 -0
  27. package/esm2022/code/yaml-sidebar/types.mjs +2 -0
  28. package/esm2022/core/services/kubernetes-schema.service.mjs +129 -0
  29. package/esm2022/core/services/public-api.mjs +2 -1
  30. package/esm2022/core/services/workspace-helper.service.mjs +4 -3
  31. package/esm2022/core/types/openapi.mjs +2 -0
  32. package/esm2022/core/types/public-api.mjs +2 -1
  33. package/esm2022/exec/terminal-group/component.mjs +2 -2
  34. package/esm2022/translate/translate.service.mjs +2 -2
  35. package/package.json +1 -1
  36. package/styles/global.scss +4 -0
  37. package/table/component.d.ts +1 -1
  38. package/table/helper.d.ts +1 -1
  39. package/view-chart/view-chart.component.d.ts +1 -1
@@ -0,0 +1,129 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { BehaviorSubject, switchMap, shareReplay, catchError, of, tap, debounceTime, } from 'rxjs';
4
+ import { API_GATEWAY } from '../constants/constants';
5
+ import { WorkspaceHelperService } from './workspace-helper.service';
6
+ import * as i0 from "@angular/core";
7
+ export class KubernetesSchemaService {
8
+ constructor() {
9
+ this.http = inject(HttpClient);
10
+ // 移除可选依赖注入,改为直接注入
11
+ this.workspaceHelper = inject(WorkspaceHelperService);
12
+ this.initialized = false;
13
+ this.schemaCache = new Map();
14
+ this.schemaCache$$ = new BehaviorSubject(new Map());
15
+ }
16
+ get definitions() {
17
+ return this.schemaCache?.get(this.workspaceHelper?.baseParamsSnapshot.cluster)?.definitions;
18
+ }
19
+ // 延迟初始化方法
20
+ ensureInitialized() {
21
+ if (!this.initialized && this.workspaceHelper) {
22
+ this.workspaceHelper.baseParams.subscribe(() => {
23
+ this.clearCache();
24
+ });
25
+ this.initialized = true;
26
+ }
27
+ }
28
+ /**
29
+ * 获取当前集群的 OpenAPI schema
30
+ */
31
+ getOpenAPISchema() {
32
+ this.ensureInitialized();
33
+ // 如果没有 WorkspaceHelperService,返回 null
34
+ if (!this.workspaceHelper) {
35
+ console.warn('WorkspaceHelperService not available, cannot fetch OpenAPI schema');
36
+ return of(null);
37
+ }
38
+ return this.workspaceHelper.baseParams.pipe(switchMap(workspace => {
39
+ const cluster = workspace.cluster || 'global';
40
+ const cached = this.schemaCache.get(cluster);
41
+ if (cached) {
42
+ return of(cached);
43
+ }
44
+ return this.fetchOpenAPISchema(cluster).pipe(tap(schema => {
45
+ if (schema) {
46
+ this.schemaCache.set(cluster, schema);
47
+ this.schemaCache$$.next(new Map(this.schemaCache));
48
+ }
49
+ }), catchError(error => {
50
+ console.error(`Failed to fetch OpenAPI schema for cluster ${cluster}:`, error);
51
+ return of(null);
52
+ }));
53
+ }), shareReplay(1));
54
+ }
55
+ /**
56
+ * 根据 Kubernetes 资源类型获取对应的 schema
57
+ */
58
+ getResourceSchema(apiVersion, kind) {
59
+ return this.getOpenAPISchema().pipe(switchMap(openApiDoc => {
60
+ if (!openApiDoc?.definitions) {
61
+ return of(null);
62
+ }
63
+ // 尝试多种可能的 schema key 格式
64
+ const possibleKeys = [
65
+ `${apiVersion}.${kind}`,
66
+ `${apiVersion}/${kind}`,
67
+ kind,
68
+ `io.k8s.api.${apiVersion.replace('/', '.')}.${kind}`,
69
+ `io.k8s.api.${apiVersion.split('/')[0]}.${apiVersion.split('/')[1] || 'v1'}.${kind}`,
70
+ ];
71
+ for (const key of possibleKeys) {
72
+ const schema = openApiDoc.definitions[key];
73
+ if (schema) {
74
+ return of(schema);
75
+ }
76
+ }
77
+ // 如果没有找到精确匹配,尝试模糊匹配
78
+ const fuzzyKey = Object.keys(openApiDoc.definitions).find(key => key.toLowerCase().includes(kind.toLowerCase()));
79
+ if (fuzzyKey) {
80
+ return of(openApiDoc.definitions[fuzzyKey]);
81
+ }
82
+ return of(null);
83
+ }));
84
+ }
85
+ /**
86
+ * 获取所有可用的资源定义
87
+ */
88
+ getAllResourceDefinitions() {
89
+ return this.getOpenAPISchema().pipe(switchMap(openApiDoc => {
90
+ return of(openApiDoc?.definitions || null);
91
+ }));
92
+ }
93
+ /**
94
+ * 清理缓存
95
+ */
96
+ clearCache() {
97
+ this.schemaCache.clear();
98
+ this.schemaCache$$.next(new Map());
99
+ }
100
+ /**
101
+ * 获取缓存状态
102
+ */
103
+ getCacheStatus() {
104
+ return this.schemaCache$$.asObservable();
105
+ }
106
+ /**
107
+ * 检查 WorkspaceHelperService 是否可用
108
+ */
109
+ isWorkspaceHelperAvailable() {
110
+ return !!this.workspaceHelper;
111
+ }
112
+ /**
113
+ * 从 Kubernetes API 获取 OpenAPI schema
114
+ */
115
+ fetchOpenAPISchema(cluster) {
116
+ const url = `${API_GATEWAY}/kubernetes/${cluster}/openapi/v2`;
117
+ return this.http.get(url).pipe(debounceTime(500), catchError(error => {
118
+ console.error(`Failed to fetch OpenAPI schema for cluster ${cluster}:`, error);
119
+ return of(null);
120
+ }));
121
+ }
122
+ static { this.ɵfac = function KubernetesSchemaService_Factory(t) { return new (t || KubernetesSchemaService)(); }; }
123
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: KubernetesSchemaService, factory: KubernetesSchemaService.ɵfac, providedIn: 'root' }); }
124
+ }
125
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KubernetesSchemaService, [{
126
+ type: Injectable,
127
+ args: [{ providedIn: 'root' }]
128
+ }], null, null); })();
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1zY2hlbWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL2t1YmVybmV0ZXMtc2NoZW1hLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFTCxlQUFlLEVBQ2YsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsRUFBRSxFQUNGLEdBQUcsRUFDSCxZQUFZLEdBQ2IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxrQkFBa0I7UUFDVCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUVsRCxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7S0E2SmQ7SUEzSkMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQ2pELEVBQUUsV0FBVyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxVQUFVO0lBQ0YsaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJ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QWtCLENBQUMsT0FBZTtRQUN4QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsZUFBZSxPQUFPLGFBQWEsQ0FBQztRQUU5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQy9DLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOENBQThDLE9BQU8sR0FBRyxFQUN4RCxLQUFLLENBQ04sQ0FBQztZQUNGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3dGQXJLVSx1QkFBdUI7dUVBQXZCLHVCQUF1QixXQUF2Qix1QkFBdUIsbUJBRFYsTUFBTTs7aUZBQ25CLHVCQUF1QjtjQURuQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBjYXRjaEVycm9yLFxuICBvZixcbiAgdGFwLFxuICBkZWJvdW5jZVRpbWUsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBUElfR0FURVdBWSB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3BlbkFQSVYyRG9jdW1lbnQgfSBmcm9tICcuLi90eXBlcy9vcGVuYXBpJztcbmltcG9ydCB7IE9wZW5BUElWM1NjaGVtYU9iamVjdCB9IGZyb20gJy4uL3R5cGVzL3NjaGVtYSc7XG5cbmltcG9ydCB7IFdvcmtzcGFjZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuL3dvcmtzcGFjZS1oZWxwZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgS3ViZXJuZXRlc1NjaGVtYVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIC8vIOenu+mZpOWPr+mAieS+nei1luazqOWFpe+8jOaUueS4uuebtOaOpeazqOWFpVxuICByZWFkb25seSB3b3Jrc3BhY2VIZWxwZXIgPSBpbmplY3QoV29ya3NwYWNlSGVscGVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIE9wZW5BUElWMkRvY3VtZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYUNhY2hlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIE1hcDxzdHJpbmcsIE9wZW5BUElWMkRvY3VtZW50PlxuICA+KG5ldyBNYXAoKSk7XG5cbiAgZ2V0IGRlZmluaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYUNhY2hlPy5nZXQoXG4gICAgICB0aGlzLndvcmtzcGFjZUhlbHBlcj8uYmFzZVBhcmFtc1NuYXBzaG90LmNsdXN0ZXIsXG4gICAgKT8uZGVmaW5pdGlvbnM7XG4gIH1cblxuICAvLyDlu7bov5/liJ3lp4vljJbmlrnms5VcbiAgcHJpdmF0ZSBlbnN1cmVJbml0aWFsaXplZCgpIHtcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQgJiYgdGhpcy53b3Jrc3BhY2VIZWxwZXIpIHtcbiAgICAgIHRoaXMud29ya3NwYWNlSGVscGVyLmJhc2VQYXJhbXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhckNhY2hlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blvZPliY3pm4bnvqTnmoQgT3BlbkFQSSBzY2hlbWFcbiAgICovXG4gIGdldE9wZW5BUElTY2hlbWEoKTogT2JzZXJ2YWJsZTxPcGVuQVBJVjJEb2N1bWVudCB8IG51bGw+IHtcbiAgICB0aGlzLmVuc3VyZUluaXRpYWxpemVkKCk7XG5cbiAgICAvLyDlpoLmnpzmsqHmnIkgV29ya3NwYWNlSGVscGVyU2VydmljZe+8jOi/lOWbniBudWxsXG4gICAgaWYgKCF0aGlzLndvcmtzcGFjZUhlbHBlcikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV29ya3NwYWNlSGVscGVyU2VydmljZSBub3QgYXZhaWxhYmxlLCBjYW5ub3QgZmV0Y2ggT3BlbkFQSSBzY2hlbWEnLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy53b3Jrc3BhY2VIZWxwZXIuYmFzZVBhcmFtcy5waXBlKFxuICAgICAgc3dpdGNoTWFwKHdvcmtzcGFjZSA9PiB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXIgPSB3b3Jrc3BhY2UuY2x1c3RlciB8fCAnZ2xvYmFsJztcbiAgICAgICAgY29uc3QgY2FjaGVkID0gdGhpcy5zY2hlbWFDYWNoZS5nZXQoY2x1c3Rlcik7XG5cbiAgICAgICAgaWYgKGNhY2hlZCkge1xuICAgICAgICAgIHJldHVybiBvZihjYWNoZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hPcGVuQVBJU2NoZW1hKGNsdXN0ZXIpLnBpcGUoXG4gICAgICAgICAgdGFwKHNjaGVtYSA9PiB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2NoZW1hQ2FjaGUuc2V0KGNsdXN0ZXIsIHNjaGVtYSk7XG4gICAgICAgICAgICAgIHRoaXMuc2NoZW1hQ2FjaGUkJC5uZXh0KG5ldyBNYXAodGhpcy5zY2hlbWFDYWNoZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCBPcGVuQVBJIHNjaGVtYSBmb3IgY2x1c3RlciAke2NsdXN0ZXJ9OmAsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gS3ViZXJuZXRlcyDotYTmupDnsbvlnovojrflj5blr7nlupTnmoQgc2NoZW1hXG4gICAqL1xuICBnZXRSZXNvdXJjZVNjaGVtYShcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmcsXG4gICAga2luZDogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPE9wZW5BUElWM1NjaGVtYU9iamVjdCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcGVuQVBJU2NoZW1hKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChvcGVuQXBpRG9jID0+IHtcbiAgICAgICAgaWYgKCFvcGVuQXBpRG9jPy5kZWZpbml0aW9ucykge1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOWwneivleWkmuenjeWPr+iDveeahCBzY2hlbWEga2V5IOagvOW8j1xuICAgICAgICBjb25zdCBwb3NzaWJsZUtleXMgPSBbXG4gICAgICAgICAgYCR7YXBpVmVyc2lvbn0uJHtraW5kfWAsXG4gICAgICAgICAgYCR7YXBpVmVyc2lvbn0vJHtraW5kfWAsXG4gICAgICAgICAga2luZCxcbiAgICAgICAgICBgaW8uazhzLmFwaS4ke2FwaVZlcnNpb24ucmVwbGFjZSgnLycsICcuJyl9LiR7a2luZH1gLFxuICAgICAgICAgIGBpby5rOHMuYXBpLiR7YXBpVmVyc2lvbi5zcGxpdCgnLycpWzBdfS4ke2FwaVZlcnNpb24uc3BsaXQoJy8nKVsxXSB8fCAndjEnfS4ke2tpbmR9YCxcbiAgICAgICAgXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBwb3NzaWJsZUtleXMpIHtcbiAgICAgICAgICBjb25zdCBzY2hlbWEgPSBvcGVuQXBpRG9jLmRlZmluaXRpb25zW2tleV07XG4gICAgICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHNjaGVtYSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8g5aaC5p6c5rKh5pyJ5om+5Yiw57K+56Gu5Yy56YWN77yM5bCd6K+V5qih57OK5Yy56YWNXG4gICAgICAgIGNvbnN0IGZ1enp5S2V5ID0gT2JqZWN0LmtleXMob3BlbkFwaURvYy5kZWZpbml0aW9ucykuZmluZChrZXkgPT5cbiAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhraW5kLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChmdXp6eUtleSkge1xuICAgICAgICAgIHJldHVybiBvZihvcGVuQXBpRG9jLmRlZmluaXRpb25zW2Z1enp5S2V5XSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluaJgOacieWPr+eUqOeahOi1hOa6kOWumuS5iVxuICAgKi9cbiAgZ2V0QWxsUmVzb3VyY2VEZWZpbml0aW9ucygpOiBPYnNlcnZhYmxlPFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgT3BlbkFQSVYzU2NoZW1hT2JqZWN0XG4gID4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlbkFQSVNjaGVtYSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAob3BlbkFwaURvYyA9PiB7XG4gICAgICAgIHJldHVybiBvZihvcGVuQXBpRG9jPy5kZWZpbml0aW9ucyB8fCBudWxsKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog5riF55CG57yT5a2YXG4gICAqL1xuICBjbGVhckNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuc2NoZW1hQ2FjaGUuY2xlYXIoKTtcbiAgICB0aGlzLnNjaGVtYUNhY2hlJCQubmV4dChuZXcgTWFwKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPlue8k+WtmOeKtuaAgVxuICAgKi9cbiAgZ2V0Q2FjaGVTdGF0dXMoKTogT2JzZXJ2YWJsZTxNYXA8c3RyaW5nLCBPcGVuQVBJVjJEb2N1bWVudD4+IHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFDYWNoZSQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOajgOafpSBXb3Jrc3BhY2VIZWxwZXJTZXJ2aWNlIOaYr+WQpuWPr+eUqFxuICAgKi9cbiAgaXNXb3Jrc3BhY2VIZWxwZXJBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy53b3Jrc3BhY2VIZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICog5LuOIEt1YmVybmV0ZXMgQVBJIOiOt+WPliBPcGVuQVBJIHNjaGVtYVxuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaE9wZW5BUElTY2hlbWEoY2x1c3Rlcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxPcGVuQVBJVjJEb2N1bWVudD4ge1xuICAgIGNvbnN0IHVybCA9IGAke0FQSV9HQVRFV0FZfS9rdWJlcm5ldGVzLyR7Y2x1c3Rlcn0vb3BlbmFwaS92MmA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPcGVuQVBJVjJEb2N1bWVudD4odXJsKS5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGZldGNoIE9wZW5BUEkgc2NoZW1hIGZvciBjbHVzdGVyICR7Y2x1c3Rlcn06YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -4,6 +4,7 @@ export * from './custom-code-editor-intl.service';
4
4
  export * from './feature-gate.service';
5
5
  export * from './intercept-deactivate.service';
6
6
  export * from './k8s-util.service';
7
+ export * from './kubernetes-schema.service';
7
8
  export * from './silently-navigate.service';
8
9
  export * from './time.service';
9
10
  export * from './ui-state.service';
@@ -15,4 +16,4 @@ export * from './context.service';
15
16
  export * from './disaster-recovery.service';
16
17
  export * from './plugin-util.service';
17
18
  export { EncodeUrlParamsSafelyInterceptor } from './encode-url-param.interceptor';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXVpLXBhZ2luYXRvci1pbnRsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWktdG9vbHRpcC1jb3B5LWludGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1jb2RlLWVkaXRvci1pbnRsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWdhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyY2VwdC1kZWFjdGl2YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rOHMtdXRpbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2lsZW50bHktbmF2aWdhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VpLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi93b3Jrc3BhY2UtaGVscGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vbi1yZXNpemUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3lhbWwtdXRpbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1yb3ctZHVwbGljYXRlL2Zvcm0tcm93LWR1cGxpY2F0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYXN0ZXItcmVjb3Zlcnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi11dGlsLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5jb2RlVXJsUGFyYW1zU2FmZWx5SW50ZXJjZXB0b3IgfSBmcm9tICcuL2VuY29kZS11cmwtcGFyYW0uaW50ZXJjZXB0b3InO1xuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdWktcGFnaW5hdG9yLWludGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1aS10b29sdGlwLWNvcHktaW50bC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLWNvZGUtZWRpdG9yLWludGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtZ2F0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0LWRlYWN0aXZhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2s4cy11dGlsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rdWJlcm5ldGVzLXNjaGVtYS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2lsZW50bHktbmF2aWdhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3VpLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi93b3Jrc3BhY2UtaGVscGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vbi1yZXNpemUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3lhbWwtdXRpbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1yb3ctZHVwbGljYXRlL2Zvcm0tcm93LWR1cGxpY2F0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzYXN0ZXItcmVjb3Zlcnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi11dGlsLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5jb2RlVXJsUGFyYW1zU2FmZWx5SW50ZXJjZXB0b3IgfSBmcm9tICcuL2VuY29kZS11cmwtcGFyYW0uaW50ZXJjZXB0b3InO1xuIl19
@@ -19,9 +19,10 @@ export class WorkspaceHelperService {
19
19
  this._baseActivatedRoute = route;
20
20
  }
21
21
  static { this.ɵfac = function WorkspaceHelperService_Factory(t) { return new (t || WorkspaceHelperService)(); }; }
22
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WorkspaceHelperService, factory: WorkspaceHelperService.ɵfac }); }
22
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WorkspaceHelperService, factory: WorkspaceHelperService.ɵfac, providedIn: 'root' }); }
23
23
  }
24
24
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkspaceHelperService, [{
25
- type: Injectable
25
+ type: Injectable,
26
+ args: [{ providedIn: 'root' }]
26
27
  }], null, null); })();
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvc2VydmljZXMvd29ya3NwYWNlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFbUIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztRQUc1RCxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FpQjlFO0lBZkMsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFpQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBcUI7UUFDekMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO3VGQXBCVSxzQkFBc0I7dUVBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7O2lGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFdvcmtzcGFjZSB9IGZyb20gJy4uL3V0aWxzL3dvcmtzcGFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VIZWxwZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlUGFyYW1zJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtzcGFjZT4obnVsbCk7XG4gIHByaXZhdGUgX2Jhc2VBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgcmVhZG9ubHkgYmFzZVBhcmFtcyA9IHRoaXMuYmFzZVBhcmFtcyQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKEJvb2xlYW4pKTtcblxuICBnZXQgYmFzZVBhcmFtc1NuYXBzaG90KCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VQYXJhbXMkJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBiYXNlQWN0aXZhdGVkUm91dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VBY3RpdmF0ZWRSb3V0ZTtcbiAgfVxuXG4gIHNldEJhc2VQYXJhbXMocGFyYW1zOiBXb3Jrc3BhY2UpIHtcbiAgICB0aGlzLmJhc2VQYXJhbXMkJC5uZXh0KHBhcmFtcyk7XG4gIH1cblxuICBzZXRCYXNlQWN0aXZhdGVkUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgdGhpcy5fYmFzZUFjdGl2YXRlZFJvdXRlID0gcm91dGU7XG4gIH1cbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvc2VydmljZXMvd29ya3NwYWNlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFbUIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztRQUc1RCxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FpQjlFO0lBZkMsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFpQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBcUI7UUFDekMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO3VGQXBCVSxzQkFBc0I7dUVBQXRCLHNCQUFzQixXQUF0QixzQkFBc0IsbUJBRFQsTUFBTTs7aUZBQ25CLHNCQUFzQjtjQURsQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSAnLi4vdXRpbHMvd29ya3NwYWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VIZWxwZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlUGFyYW1zJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtzcGFjZT4obnVsbCk7XG4gIHByaXZhdGUgX2Jhc2VBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgcmVhZG9ubHkgYmFzZVBhcmFtcyA9IHRoaXMuYmFzZVBhcmFtcyQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKEJvb2xlYW4pKTtcblxuICBnZXQgYmFzZVBhcmFtc1NuYXBzaG90KCkge1xuICAgIHJldHVybiB0aGlzLmJhc2VQYXJhbXMkJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBiYXNlQWN0aXZhdGVkUm91dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VBY3RpdmF0ZWRSb3V0ZTtcbiAgfVxuXG4gIHNldEJhc2VQYXJhbXMocGFyYW1zOiBXb3Jrc3BhY2UpIHtcbiAgICB0aGlzLmJhc2VQYXJhbXMkJC5uZXh0KHBhcmFtcyk7XG4gIH1cblxuICBzZXRCYXNlQWN0aXZhdGVkUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgdGhpcy5fYmFzZUFjdGl2YXRlZFJvdXRlID0gcm91dGU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3R5cGVzL29wZW5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZW5BUElWM1NjaGVtYU9iamVjdCB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQVBJVjJEb2N1bWVudCB7XG4gIHN3YWdnZXI6IHN0cmluZztcbiAgaW5mbzoge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB9O1xuICBob3N0Pzogc3RyaW5nO1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgc2NoZW1lcz86IHN0cmluZ1tdO1xuICBjb25zdW1lcz86IHN0cmluZ1tdO1xuICBwcm9kdWNlcz86IHN0cmluZ1tdO1xuICBwYXRoczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIE9wZW5BUElWM1NjaGVtYU9iamVjdD47XG4gIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICByZXNwb25zZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBzZWN1cml0eURlZmluaXRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc2VjdXJpdHk/OiBhbnlbXTtcbiAgdGFncz86IGFueVtdO1xuICBleHRlcm5hbERvY3M/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hUHJvcGVydHkge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBPcGVuQVBJVjNTY2hlbWFPYmplY3QgfTtcbiAgaXRlbXM/OiBPcGVuQVBJVjNTY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hQnJlYWRjcnVtYiB7XG4gIG5hbWU6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nW107XG4gIHNjaGVtYTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0O1xufVxuIl19
@@ -5,7 +5,8 @@
5
5
  */
6
6
  export * from './commons';
7
7
  export * from './helpers';
8
+ export * from './openapi';
8
9
  export * from './schema';
9
10
  export * from './resource-definitions';
10
11
  export * from './k8s/public-api';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3R5cGVzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHR5cGVzXG4gKiBAcHJlZmVycmVkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21tb25zJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc291cmNlLWRlZmluaXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vazhzL3B1YmxpYy1hcGknO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3R5cGVzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIHR5cGVzXG4gKiBAcHJlZmVycmVkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21tb25zJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL29wZW5hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1kZWZpbml0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2s4cy9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -175,7 +175,7 @@ __decorate([
175
175
  ], TerminalGroupComponent.prototype, "selectedIndex", void 0);
176
176
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TerminalGroupComponent, [{
177
177
  type: Component,
178
- args: [{ selector: 'acl-terminal-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-tab-group\n *ngIf=\"terminalOptions?.length\"\n type=\"card\"\n [lazy]=\"true\"\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndexChange.emit($event)\"\n>\n <aui-tab\n *ngFor=\"\n let option of terminalOptions;\n let i = index;\n trackBy: trackByOption\n \"\n [closeable]=\"true\"\n (close)=\"removeTerminal(i)\"\n >\n <div\n *auiTabLabel\n class=\"tw-flex\"\n >\n <aui-icon\n *ngIf=\"\n [ConnectionStatus.Connecting, ConnectionStatus.ReConnecting].includes(\n statusMap.get(option)\n )\n \"\n class=\"tw-mr-4 tw-icon-l tw-text-primary\"\n icon=\"spinner\"\n [auiTooltip]=\"'exec_connecting' | translate\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"\n [\n ConnectionStatus.Disconnected,\n ConnectionStatus.NoPermission\n ].includes(statusMap.get(option))\n \"\n class=\"tw-mr-4 tw-icon-l tw-text-red\"\n icon=\"exclamation_triangle_s\"\n background=\"triangle\"\n [auiTooltip]=\"disconnectedTip\"\n [auiTooltipContext]=\"{ index: i }\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"\n statusMap.get(option) === ConnectionStatus.Connected && option.icon\n \"\n [icon]=\"option.icon\"\n class=\"tw-mr-4 tw-icon-l\"\n ></aui-icon>\n <acl-text-ellipsis\n [text]=\"option.label || option.pod\"\n [tailLength]=\"6\"\n ></acl-text-ellipsis>\n </div>\n <acl-terminal\n [option]=\"option\"\n [index]=\"i\"\n [extraButton]=\"\n terminalExtraButton?.enable ? terminalExtraButtonRef : null\n \"\n [extraContent]=\"terminalExtraContentRef\"\n (connectionStatusChange)=\"handleConnectionStatusChange(option, $event)\"\n (socketReady)=\"\n socketReady.emit({\n option,\n socket: $event,\n index: i\n })\n \"\n (fallbackShell)=\"\n fallbackShell.emit({\n option,\n shell: $event\n })\n \"\n ></acl-terminal>\n </aui-tab>\n</aui-tab-group>\n\n<ng-template\n #disconnectedTip\n let-i=\"index\"\n>\n <span>{{ 'exec_disconnected_tip' | translate }}</span>\n <button\n aui-button=\"text\"\n size=\"mini\"\n (click)=\"reconnect(i)\"\n >\n {{ 'reconnect' | translate }}\n </button>\n</ng-template>\n", styles: [":host ::ng-deep aui-tab-body,:host ::ng-deep .aui-tab-body{display:block;width:100%;min-height:100%;height:100%}:host ::ng-deep>aui-tab-group>.aui-tab-group{height:100%}:host ::ng-deep>aui-tab-group>.aui-tab-group .aui-tab-group__body-wrapper{display:flex;flex:1 1 0;height:0}:host ::ng-deep .aui-tab-body{display:flex}:host ::ng-deep .aui-tab-body__content{display:flex;flex-direction:column;flex:1;width:100%}:host acl-terminal{flex:1;height:0}\n"] }]
178
+ args: [{ selector: 'acl-terminal-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-tab-group\n *ngIf=\"terminalOptions?.length\"\n type=\"card\"\n [lazy]=\"true\"\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndexChange.emit($event)\"\n>\n <aui-tab\n *ngFor=\"\n let option of terminalOptions;\n let i = index;\n trackBy: trackByOption\n \"\n [closeable]=\"true\"\n (close)=\"removeTerminal(i)\"\n >\n <div\n *auiTabLabel\n class=\"tw-flex\"\n >\n <aui-icon\n *ngIf=\"\n [ConnectionStatus.Connecting, ConnectionStatus.ReConnecting].includes(\n statusMap.get(option)\n )\n \"\n class=\"tw-mr-4 tw-icon-l tw-text-primary\"\n icon=\"spinner\"\n [auiTooltip]=\"'exec_connecting' | translate\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"\n [\n ConnectionStatus.Disconnected,\n ConnectionStatus.NoPermission,\n ].includes(statusMap.get(option))\n \"\n class=\"tw-mr-4 tw-icon-l tw-text-red\"\n icon=\"exclamation_triangle_s\"\n background=\"triangle\"\n [auiTooltip]=\"disconnectedTip\"\n [auiTooltipContext]=\"{ index: i }\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"\n statusMap.get(option) === ConnectionStatus.Connected && option.icon\n \"\n [icon]=\"option.icon\"\n class=\"tw-mr-4 tw-icon-l\"\n ></aui-icon>\n <acl-text-ellipsis\n [text]=\"option.label || option.pod\"\n [tailLength]=\"6\"\n ></acl-text-ellipsis>\n </div>\n <acl-terminal\n [option]=\"option\"\n [index]=\"i\"\n [extraButton]=\"\n terminalExtraButton?.enable ? terminalExtraButtonRef : null\n \"\n [extraContent]=\"terminalExtraContentRef\"\n (connectionStatusChange)=\"handleConnectionStatusChange(option, $event)\"\n (socketReady)=\"\n socketReady.emit({\n option,\n socket: $event,\n index: i,\n })\n \"\n (fallbackShell)=\"\n fallbackShell.emit({\n option,\n shell: $event,\n })\n \"\n ></acl-terminal>\n </aui-tab>\n</aui-tab-group>\n\n<ng-template\n #disconnectedTip\n let-i=\"index\"\n>\n <span>{{ 'exec_disconnected_tip' | translate }}</span>\n <button\n aui-button=\"text\"\n size=\"mini\"\n (click)=\"reconnect(i)\"\n >\n {{ 'reconnect' | translate }}\n </button>\n</ng-template>\n", styles: [":host ::ng-deep aui-tab-body,:host ::ng-deep .aui-tab-body{display:block;width:100%;min-height:100%;height:100%}:host ::ng-deep>aui-tab-group>.aui-tab-group{height:100%}:host ::ng-deep>aui-tab-group>.aui-tab-group .aui-tab-group__body-wrapper{display:flex;flex:1 1 0;height:0}:host ::ng-deep .aui-tab-body{display:flex}:host ::ng-deep .aui-tab-body__content{display:flex;flex-direction:column;flex:1;width:100%}:host acl-terminal{flex:1;height:0}\n"] }]
179
179
  }], null, { selectedIndex: [{
180
180
  type: Input
181
181
  }], terminalOptions: [{
@@ -206,4 +206,4 @@ __decorate([
206
206
  args: [TerminalComponent]
207
207
  }] }); })();
208
208
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TerminalGroupComponent, { className: "TerminalGroupComponent" }); })();
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztJQ0twRCwrQkFTWTs7O0lBRFYsb0VBQTRDOzs7SUFFOUMsK0JBWVk7Ozs7O0lBRFYsQUFEQSwrQ0FBOEIsdURBQ0k7OztJQUVwQywrQkFNWTs7O0lBRlYscUNBQW9COzs7SUEvQnhCLDhCQUdDO0lBd0JDLEFBYkEsQUFWQSxpSEFTQyxvR0FhQSxxR0FPQTtJQUNELHdDQUdxQjtJQUN2QixpQkFBTTs7OztJQWpDRCxjQUtUO0lBTFMscUtBS1Q7SUFLUyxjQU1UO0lBTlMsdUtBTVQ7SUFPUyxjQUdUO0lBSFMsOEdBR1Q7SUFJUSxjQUFtQztJQUNuQyxBQURBLHVEQUFtQyxpQkFDbkI7Ozs7SUE3Q3RCLGtDQVFDO0lBREMsMk5BQVMsMkJBQWlCLEtBQUM7SUFFM0Isa0dBR0M7SUFvQ0QsdUNBcUJDO0lBTkMsQUFQQSxBQURBLGlSQUEwQixzREFBNEMsS0FBQyxnU0FFNUQsd0JBQ1Ysa0RBSUEsQ0FDUCxLQURPLGtQQUVVLDBC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QyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDLENBQUM7OzZEQUVnQjtpRkFiUCxzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTtnQkFlL0MsYUFBYTtrQkFEWixLQUFLO1lBSU4sZUFBZTtrQkFEZCxLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLDRCQUE0QjtZQU0xQyxzQkFBc0I7a0JBSHJCLFlBQVk7bUJBQUMsNEJBQTRCLEVBQUU7b0JBQzFDLElBQUksRUFBRSxXQUFXO2lCQUNsQjtZQU1ELHVCQUF1QjtrQkFIdEIsWUFBWTttQkFBQyw2QkFBNkIsRUFBRTtvQkFDM0MsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCO1lBSVEsbUJBQW1CO2tCQUQzQixNQUFNO1lBSUUscUJBQXFCO2tCQUQ3QixNQUFNO1lBSUUsV0FBVztrQkFEbkIsTUFBTTtZQVFFLGFBQWE7a0JBRHJCLE1BQU07WUFPUCxTQUFTO2tCQURSLFlBQVk7bUJBQUMsaUJBQWlCOztrRkFsRHBCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRlcm1pbmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVybWluYWwvY29tcG9uZW50JztcbmltcG9ydCB7IFRlcm1pbmFsT3B0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUJ1dHRvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhY2xUZXJtaW5hbEV4dHJhQnV0dG9uJylcbiAgZW5hYmxlOiBib29sZWFuIHwgJycgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUNvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRlcm1pbmFsLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsR3JvdXBDb21wb25lbnQge1xuICBDb25uZWN0aW9uU3RhdHVzID0gQ29ubmVjdGlvblN0YXR1cztcblxuICBwcml2YXRlIGhhc0FjdGl2YXRlZE1hcCA9IG5ldyBNYXA8bnVtYmVyLCBib29sZWFuPigpO1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKHRoaXM6IFRlcm1pbmFsR3JvdXBDb21wb25lbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnRlcm1pbmFscz8uZ2V0KGluZGV4KT8uZm9jdXMoKTtcbiAgICBpZiAodGhpcy50ZXJtaW5hbHM/LmdldChpbmRleCkgJiYgIXRoaXMuaGFzQWN0aXZhdGVkTWFwLmdldChpbmRleCkpIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZhdGVkTWFwLnNldChpbmRleCwgdHJ1ZSk7XG4gICAgICB0aGlzLnRlcm1pbmFscy5nZXQoaW5kZXgpPy5hY3RpdmF0ZVRlcm1pbmFsKCk7XG4gICAgfVxuICB9KVxuICBASW5wdXQoKVxuICBzZWxlY3RlZEluZGV4ID0gMDtcblxuICBASW5wdXQoKVxuICB0ZXJtaW5hbE9wdGlvbnM6IFRlcm1pbmFsT3B0aW9uW10gPSBbXTtcblxuICBAQ29udGVudENoaWxkKFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmUpXG4gIHRlcm1pbmFsRXh0cmFCdXR0b246IFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIHRlcm1pbmFsRXh0cmFCdXR0b25SZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBDb250ZW50Q2hpbGQoVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgdGVybWluYWxFeHRyYUNvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHRlcm1pbmFsT3B0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGVybWluYWxPcHRpb25bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc29ja2V0UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNvY2tldDogV2ViU29ja2V0O1xuICAgIGluZGV4OiBudW1iZXI7XG4gIH0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGZhbGxiYWNrU2hlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNoZWxsOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihUZXJtaW5hbENvbXBvbmVudClcbiAgdGVybWluYWxzOiBRdWVyeUxpc3Q8VGVybWluYWxDb21wb25lbnQ+O1xuXG4gIHN0YXR1c01hcCA9IG5ldyBNYXA8VGVybWluYWxPcHRpb24sIENvbm5lY3Rpb25TdGF0dXM+KCk7XG5cbiAgcmVtb3ZlVGVybWluYWwoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudGVybWluYWxzLmdldChpbmRleCk/LmtpbGxQcm9jZXNzKCk7XG4gICAgdGhpcy50ZXJtaW5hbE9wdGlvbnNDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLnRlcm1pbmFsT3B0aW9ucy5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi50aGlzLnRlcm1pbmFsT3B0aW9ucy5zbGljZShpbmRleCArIDEpLFxuICAgIF0pO1xuICB9XG5cbiAgdHJhY2tCeU9wdGlvbihfOiBudW1iZXIsIG9wdGlvbjogVGVybWluYWxPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uO1xuICB9XG5cbiAgaGFuZGxlQ29ubmVjdGlvblN0YXR1c0NoYW5nZShcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uLFxuICAgIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cyxcbiAgKSB7XG4gICAgdGhpcy5zdGF0dXNNYXAuc2V0KG9wdGlvbiwgc3RhdHVzKTtcbiAgfVxuXG4gIHJlY29ubmVjdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy50ZXJtaW5hbHMuZ2V0KGluZGV4KS5yZWNvbm5lY3QoKTtcbiAgfVxufVxuIiwiPGF1aS10YWItZ3JvdXBcbiAgKm5nSWY9XCJ0ZXJtaW5hbE9wdGlvbnM/Lmxlbmd0aFwiXG4gIHR5cGU9XCJjYXJkXCJcbiAgW2xhenldPVwidHJ1ZVwiXG4gIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4+XG4gIDxhdWktdGFiXG4gICAgKm5nRm9yPVwiXG4gICAgICBsZXQgb3B0aW9uIG9mIHRlcm1pbmFsT3B0aW9ucztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICB0cmFja0J5OiB0cmFja0J5T3B0aW9uXG4gICAgXCJcbiAgICBbY2xvc2VhYmxlXT1cInRydWVcIlxuICAgIChjbG9zZSk9XCJyZW1vdmVUZXJtaW5hbChpKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqYXVpVGFiTGFiZWxcbiAgICAgIGNsYXNzPVwidHctZmxleFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgW0Nvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGluZywgQ29ubmVjdGlvblN0YXR1cy5SZUNvbm5lY3RpbmddLmluY2x1ZGVzKFxuICAgICAgICAgICAgc3RhdHVzTWFwLmdldChvcHRpb24pXG4gICAgICAgICAgKVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInR3LW1yLTQgdHctaWNvbi1sIHR3LXRleHQtcHJpbWFyeVwiXG4gICAgICAgIGljb249XCJzcGlubmVyXCJcbiAgICAgICAgW2F1aVRvb2x0aXBdPVwiJ2V4ZWNfY29ubmVjdGluZycgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBbXG4gICAgICAgICAgICBDb25uZWN0aW9uU3RhdHVzLkRpc2Nvbm5lY3RlZCxcbiAgICAgICAgICAgIENvbm5lY3Rpb25TdGF0dXMuTm9QZXJtaXNzaW9uXG4gICAgICAgICAgXS5pbmNsdWRlcyhzdGF0dXNNYXAuZ2V0KG9wdGlvbikpXG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwidHctbXItNCB0dy1pY29uLWwgdHctdGV4dC1yZWRcIlxuICAgICAgICBpY29uPVwiZXhjbGFtYXRpb25fdHJpYW5nbGVfc1wiXG4gICAgICAgIGJhY2tncm91bmQ9XCJ0cmlhbmdsZVwiXG4gICAgICAgIFthdWlUb29sdGlwXT1cImRpc2Nvbm5lY3RlZFRpcFwiXG4gICAgICAgIFthdWlUb29sdGlwQ29udGV4dF09XCJ7IGluZGV4OiBpIH1cIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzdGF0dXNNYXAuZ2V0KG9wdGlvbikgPT09IENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGVkICYmIG9wdGlvbi5pY29uXG4gICAgICAgIFwiXG4gICAgICAgIFtpY29uXT1cIm9wdGlvbi5pY29uXCJcbiAgICAgICAgY2xhc3M9XCJ0dy1tci00IHR3LWljb24tbFwiXG4gICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDxhY2wtdGV4dC1lbGxpcHNpc1xuICAgICAgICBbdGV4dF09XCJvcHRpb24ubGFiZWwgfHwgb3B0aW9uLnBvZFwiXG4gICAgICAgIFt0YWlsTGVuZ3RoXT1cIjZcIlxuICAgICAgPjwvYWNsLXRleHQtZWxsaXBzaXM+XG4gICAgPC9kaXY+XG4gICAgPGFjbC10ZXJtaW5hbFxuICAgICAgW29wdGlvbl09XCJvcHRpb25cIlxuICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgW2V4dHJhQnV0dG9uXT1cIlxuICAgICAgICB0ZXJtaW5hbEV4dHJhQnV0dG9uPy5lbmFibGUgPyB0ZXJtaW5hbEV4dHJhQnV0dG9uUmVmIDogbnVsbFxuICAgICAgXCJcbiAgICAgIFtleHRyYUNvbnRlbnRdPVwidGVybWluYWxFeHRyYUNvbnRlbnRSZWZcIlxuICAgICAgKGNvbm5lY3Rpb25TdGF0dXNDaGFuZ2UpPVwiaGFuZGxlQ29ubmVjdGlvblN0YXR1c0NoYW5nZShvcHRpb24sICRldmVudClcIlxuICAgICAgKHNvY2tldFJlYWR5KT1cIlxuICAgICAgICBzb2NrZXRSZWFkeS5lbWl0KHtcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgc29ja2V0OiAkZXZlbnQsXG4gICAgICAgICAgaW5kZXg6IGlcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgICAoZmFsbGJhY2tTaGVsbCk9XCJcbiAgICAgICAgZmFsbGJhY2tTaGVsbC5lbWl0KHtcbiAgICAgICAgICBvcHRpb24sXG4gICAgICAgICAgc2hlbGw6ICRldmVudFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICA+PC9hY2wtdGVybWluYWw+XG4gIDwvYXVpLXRhYj5cbjwvYXVpLXRhYi1ncm91cD5cblxuPG5nLXRlbXBsYXRlXG4gICNkaXNjb25uZWN0ZWRUaXBcbiAgbGV0LWk9XCJpbmRleFwiXG4+XG4gIDxzcGFuPnt7ICdleGVjX2Rpc2Nvbm5lY3RlZF90aXAnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIHNpemU9XCJtaW5pXCJcbiAgICAoY2xpY2spPVwicmVjb25uZWN0KGkpXCJcbiAgPlxuICAgIHt7ICdyZWNvbm5lY3QnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2V4ZWMvdGVybWluYWwtZ3JvdXAvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztJQ0twRCwrQkFTWTs7O0lBRFYsb0VBQTRDOzs7SUFFOUMsK0JBWVk7Ozs7O0lBRFYsQUFEQSwrQ0FBOEIsdURBQ0k7OztJQUVwQywrQkFNWTs7O0lBRlYscUNBQW9COzs7SUEvQnhCLDhCQUdDO0lBd0JDLEFBYkEsQUFWQSxpSEFTQyxvR0FhQSxxR0FPQTtJQUNELHdDQUdxQjtJQUN2QixpQkFBTTs7OztJQWpDRCxjQUtUO0lBTFMscUtBS1Q7SUFLUyxjQU1UO0lBTlMsdUtBTVQ7SUFPUyxjQUdUO0lBSFMsOEdBR1Q7SUFJUSxjQUFtQztJQUNuQyxBQURBLHVEQUFtQyxpQkFDbkI7Ozs7SUE3Q3RCLGtDQVFDO0lBREMsMk5BQVMsMkJBQWlCLEtBQUM7SUFFM0Isa0dBR0M7SUFvQ0QsdUNBcUJDO0lBTkMsQUFQQSxBQURBLGlSQUEwQixzREFBNEMsS0FBQyxnU0FFNUQsd0JBQ1Ysa0RBSUEsQ0FDUCxLQURPLGtQQUVVLDBC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QyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDLENBQUM7OzZEQUVnQjtpRkFiUCxzQkFBc0I7Y0FObEMsU0FBUzsyQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTtnQkFlL0MsYUFBYTtrQkFEWixLQUFLO1lBSU4sZUFBZTtrQkFEZCxLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLDRCQUE0QjtZQU0xQyxzQkFBc0I7a0JBSHJCLFlBQVk7bUJBQUMsNEJBQTRCLEVBQUU7b0JBQzFDLElBQUksRUFBRSxXQUFXO2lCQUNsQjtZQU1ELHVCQUF1QjtrQkFIdEIsWUFBWTttQkFBQyw2QkFBNkIsRUFBRTtvQkFDM0MsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCO1lBSVEsbUJBQW1CO2tCQUQzQixNQUFNO1lBSUUscUJBQXFCO2tCQUQ3QixNQUFNO1lBSUUsV0FBVztrQkFEbkIsTUFBTTtZQVFFLGFBQWE7a0JBRHJCLE1BQU07WUFPUCxTQUFTO2tCQURSLFlBQVk7bUJBQUMsaUJBQWlCOztrRkFsRHBCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRlcm1pbmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVybWluYWwvY29tcG9uZW50JztcbmltcG9ydCB7IFRlcm1pbmFsT3B0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUJ1dHRvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhY2xUZXJtaW5hbEV4dHJhQnV0dG9uJylcbiAgZW5hYmxlOiBib29sZWFuIHwgJycgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsVGVybWluYWxFeHRyYUNvbnRlbnRdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXRlcm1pbmFsLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsR3JvdXBDb21wb25lbnQge1xuICBDb25uZWN0aW9uU3RhdHVzID0gQ29ubmVjdGlvblN0YXR1cztcblxuICBwcml2YXRlIGhhc0FjdGl2YXRlZE1hcCA9IG5ldyBNYXA8bnVtYmVyLCBib29sZWFuPigpO1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKHRoaXM6IFRlcm1pbmFsR3JvdXBDb21wb25lbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnRlcm1pbmFscz8uZ2V0KGluZGV4KT8uZm9jdXMoKTtcbiAgICBpZiAodGhpcy50ZXJtaW5hbHM/LmdldChpbmRleCkgJiYgIXRoaXMuaGFzQWN0aXZhdGVkTWFwLmdldChpbmRleCkpIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZhdGVkTWFwLnNldChpbmRleCwgdHJ1ZSk7XG4gICAgICB0aGlzLnRlcm1pbmFscy5nZXQoaW5kZXgpPy5hY3RpdmF0ZVRlcm1pbmFsKCk7XG4gICAgfVxuICB9KVxuICBASW5wdXQoKVxuICBzZWxlY3RlZEluZGV4ID0gMDtcblxuICBASW5wdXQoKVxuICB0ZXJtaW5hbE9wdGlvbnM6IFRlcm1pbmFsT3B0aW9uW10gPSBbXTtcblxuICBAQ29udGVudENoaWxkKFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmUpXG4gIHRlcm1pbmFsRXh0cmFCdXR0b246IFRlcm1pbmFsRXh0cmFCdXR0b25EaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChUZXJtaW5hbEV4dHJhQnV0dG9uRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIHRlcm1pbmFsRXh0cmFCdXR0b25SZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBDb250ZW50Q2hpbGQoVGVybWluYWxFeHRyYUNvbnRlbnREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgdGVybWluYWxFeHRyYUNvbnRlbnRSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHRlcm1pbmFsT3B0aW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGVybWluYWxPcHRpb25bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc29ja2V0UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNvY2tldDogV2ViU29ja2V0O1xuICAgIGluZGV4OiBudW1iZXI7XG4gIH0+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGZhbGxiYWNrU2hlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uO1xuICAgIHNoZWxsOiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihUZXJtaW5hbENvbXBvbmVudClcbiAgdGVybWluYWxzOiBRdWVyeUxpc3Q8VGVybWluYWxDb21wb25lbnQ+O1xuXG4gIHN0YXR1c01hcCA9IG5ldyBNYXA8VGVybWluYWxPcHRpb24sIENvbm5lY3Rpb25TdGF0dXM+KCk7XG5cbiAgcmVtb3ZlVGVybWluYWwoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudGVybWluYWxzLmdldChpbmRleCk/LmtpbGxQcm9jZXNzKCk7XG4gICAgdGhpcy50ZXJtaW5hbE9wdGlvbnNDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLnRlcm1pbmFsT3B0aW9ucy5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi50aGlzLnRlcm1pbmFsT3B0aW9ucy5zbGljZShpbmRleCArIDEpLFxuICAgIF0pO1xuICB9XG5cbiAgdHJhY2tCeU9wdGlvbihfOiBudW1iZXIsIG9wdGlvbjogVGVybWluYWxPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uO1xuICB9XG5cbiAgaGFuZGxlQ29ubmVjdGlvblN0YXR1c0NoYW5nZShcbiAgICBvcHRpb246IFRlcm1pbmFsT3B0aW9uLFxuICAgIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cyxcbiAgKSB7XG4gICAgdGhpcy5zdGF0dXNNYXAuc2V0KG9wdGlvbiwgc3RhdHVzKTtcbiAgfVxuXG4gIHJlY29ubmVjdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy50ZXJtaW5hbHMuZ2V0KGluZGV4KS5yZWNvbm5lY3QoKTtcbiAgfVxufVxuIiwiPGF1aS10YWItZ3JvdXBcbiAgKm5nSWY9XCJ0ZXJtaW5hbE9wdGlvbnM/Lmxlbmd0aFwiXG4gIHR5cGU9XCJjYXJkXCJcbiAgW2xhenldPVwidHJ1ZVwiXG4gIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4+XG4gIDxhdWktdGFiXG4gICAgKm5nRm9yPVwiXG4gICAgICBsZXQgb3B0aW9uIG9mIHRlcm1pbmFsT3B0aW9ucztcbiAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICB0cmFja0J5OiB0cmFja0J5T3B0aW9uXG4gICAgXCJcbiAgICBbY2xvc2VhYmxlXT1cInRydWVcIlxuICAgIChjbG9zZSk9XCJyZW1vdmVUZXJtaW5hbChpKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqYXVpVGFiTGFiZWxcbiAgICAgIGNsYXNzPVwidHctZmxleFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgW0Nvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGluZywgQ29ubmVjdGlvblN0YXR1cy5SZUNvbm5lY3RpbmddLmluY2x1ZGVzKFxuICAgICAgICAgICAgc3RhdHVzTWFwLmdldChvcHRpb24pXG4gICAgICAgICAgKVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInR3LW1yLTQgdHctaWNvbi1sIHR3LXRleHQtcHJpbWFyeVwiXG4gICAgICAgIGljb249XCJzcGlubmVyXCJcbiAgICAgICAgW2F1aVRvb2x0aXBdPVwiJ2V4ZWNfY29ubmVjdGluZycgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBbXG4gICAgICAgICAgICBDb25uZWN0aW9uU3RhdHVzLkRpc2Nvbm5lY3RlZCxcbiAgICAgICAgICAgIENvbm5lY3Rpb25TdGF0dXMuTm9QZXJtaXNzaW9uLFxuICAgICAgICAgIF0uaW5jbHVkZXMoc3RhdHVzTWFwLmdldChvcHRpb24pKVxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInR3LW1yLTQgdHctaWNvbi1sIHR3LXRleHQtcmVkXCJcbiAgICAgICAgaWNvbj1cImV4Y2xhbWF0aW9uX3RyaWFuZ2xlX3NcIlxuICAgICAgICBiYWNrZ3JvdW5kPVwidHJpYW5nbGVcIlxuICAgICAgICBbYXVpVG9vbHRpcF09XCJkaXNjb25uZWN0ZWRUaXBcIlxuICAgICAgICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyBpbmRleDogaSB9XCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc3RhdHVzTWFwLmdldChvcHRpb24pID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3RlZCAmJiBvcHRpb24uaWNvblxuICAgICAgICBcIlxuICAgICAgICBbaWNvbl09XCJvcHRpb24uaWNvblwiXG4gICAgICAgIGNsYXNzPVwidHctbXItNCB0dy1pY29uLWxcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YWNsLXRleHQtZWxsaXBzaXNcbiAgICAgICAgW3RleHRdPVwib3B0aW9uLmxhYmVsIHx8IG9wdGlvbi5wb2RcIlxuICAgICAgICBbdGFpbExlbmd0aF09XCI2XCJcbiAgICAgID48L2FjbC10ZXh0LWVsbGlwc2lzPlxuICAgIDwvZGl2PlxuICAgIDxhY2wtdGVybWluYWxcbiAgICAgIFtvcHRpb25dPVwib3B0aW9uXCJcbiAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgIFtleHRyYUJ1dHRvbl09XCJcbiAgICAgICAgdGVybWluYWxFeHRyYUJ1dHRvbj8uZW5hYmxlID8gdGVybWluYWxFeHRyYUJ1dHRvblJlZiA6IG51bGxcbiAgICAgIFwiXG4gICAgICBbZXh0cmFDb250ZW50XT1cInRlcm1pbmFsRXh0cmFDb250ZW50UmVmXCJcbiAgICAgIChjb25uZWN0aW9uU3RhdHVzQ2hhbmdlKT1cImhhbmRsZUNvbm5lY3Rpb25TdGF0dXNDaGFuZ2Uob3B0aW9uLCAkZXZlbnQpXCJcbiAgICAgIChzb2NrZXRSZWFkeSk9XCJcbiAgICAgICAgc29ja2V0UmVhZHkuZW1pdCh7XG4gICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgIHNvY2tldDogJGV2ZW50LFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgIChmYWxsYmFja1NoZWxsKT1cIlxuICAgICAgICBmYWxsYmFja1NoZWxsLmVtaXQoe1xuICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICBzaGVsbDogJGV2ZW50LFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICA+PC9hY2wtdGVybWluYWw+XG4gIDwvYXVpLXRhYj5cbjwvYXVpLXRhYi1ncm91cD5cblxuPG5nLXRlbXBsYXRlXG4gICNkaXNjb25uZWN0ZWRUaXBcbiAgbGV0LWk9XCJpbmRleFwiXG4+XG4gIDxzcGFuPnt7ICdleGVjX2Rpc2Nvbm5lY3RlZF90aXAnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgIHNpemU9XCJtaW5pXCJcbiAgICAoY2xpY2spPVwicmVjb25uZWN0KGkpXCJcbiAgPlxuICAgIHt7ICdyZWNvbm5lY3QnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==