@alauda-fe/common 1.4.29-beta.2 → 1.4.30-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 (31) hide show
  1. package/array-form-table/form/component.d.ts +1 -1
  2. package/code/managed-fields-folder.util.d.ts +2 -3
  3. package/code/resource-yaml-display/component.d.ts +3 -8
  4. package/code/resource-yaml-editor/component.d.ts +2 -3
  5. package/code/yaml-sidebar/component.d.ts +6 -15
  6. package/core/abstract/base-nested-form-control.d.ts +1 -1
  7. package/core/services/kubernetes-schema.service.d.ts +1 -0
  8. package/core/services/plugin-util.service.d.ts +1 -1
  9. package/core/services/workspace-helper.service.d.ts +1 -1
  10. package/core/services/yaml-util.service.d.ts +1 -1
  11. package/core/types/schema.d.ts +9 -0
  12. package/core/utils/version.d.ts +1 -1
  13. package/esm2022/code/managed-fields-folder.util.mjs +1 -1
  14. package/esm2022/code/resource-yaml-display/component.mjs +24 -28
  15. package/esm2022/code/resource-yaml-editor/component.mjs +12 -15
  16. package/esm2022/code/yaml-examples.mjs +14 -6
  17. package/esm2022/code/yaml-sidebar/component.mjs +92 -118
  18. package/esm2022/core/services/kubernetes-schema.service.mjs +27 -21
  19. package/esm2022/core/services/plugin-util.service.mjs +3 -3
  20. package/esm2022/core/services/workspace-helper.service.mjs +1 -1
  21. package/esm2022/core/services/yaml-util.service.mjs +3 -2
  22. package/esm2022/core/types/schema.mjs +1 -1
  23. package/esm2022/permission/k8s-permission.service.mjs +5 -2
  24. package/esm2022/permission/types.mjs +1 -1
  25. package/esm2022/translate/i18n-assets-loader.mjs +7 -2
  26. package/esm2022/translate/translate.service.mjs +93 -171
  27. package/package.json +1 -1
  28. package/permission/types.d.ts +17 -8
  29. package/table/component.d.ts +1 -1
  30. package/table/helper.d.ts +1 -1
  31. package/translate/translate.service.d.ts +10 -50
@@ -83,7 +83,7 @@ export declare class ArrayFormTableComponent implements OnDestroy {
83
83
  addDisabled: boolean | '';
84
84
  actionColumnDivider: boolean | '';
85
85
  showZeroState: boolean;
86
- get formDirective(): FormGroupDirective | NgForm;
86
+ get formDirective(): NgForm | FormGroupDirective;
87
87
  /**
88
88
  * 自定义是否展示错误内容
89
89
  * 例如 control 是 FormGroup,只有在内部子 control 错误时才需要展示错误内容
@@ -1,14 +1,13 @@
1
- import { editor } from 'monaco-editor/esm/vs/editor/editor.api';
2
1
  /**
3
2
  * 自动折叠 managedFields 字段
4
3
  * @param monacoEditor Monaco 编辑器实例
5
4
  */
6
- export declare function foldManagedFields(monacoEditor: editor.IStandaloneCodeEditor): void;
5
+ export declare function foldManagedFields(monacoEditor: import('monaco-editor/esm/vs/editor/editor.api').editor.IStandaloneCodeEditor): void;
7
6
  /**
8
7
  * 编辑器实例获取器接口
9
8
  */
10
9
  export interface EditorInstanceProvider {
11
- getEditorInstance(): editor.IStandaloneCodeEditor | null;
10
+ getEditorInstance(): import('monaco-editor/esm/vs/editor/editor.api').editor.IStandaloneCodeEditor | null;
12
11
  }
13
12
  /**
14
13
  * ManagedFields 自动折叠器
@@ -1,12 +1,7 @@
1
1
  import { MonacoLanguageService } from '@alauda/code-editor';
2
2
  import { OnDestroy, AfterViewInit } from '@angular/core';
3
- import { editor } from 'monaco-editor/esm/vs/editor/editor.api';
4
3
  import { BehaviorSubject, Observable } from 'rxjs';
5
- import { KubernetesSchemaService } from '../../core/services/kubernetes-schema.service';
6
- import { YamlUtilService } from '../../core/services/yaml-util.service';
7
- import { Arrayable } from '../../core/types/helpers';
8
- import { KubernetesResource } from '../../core/types/k8s/core';
9
- import { OpenAPIV3SchemaObject } from '../../core/types/schema';
4
+ import { KubernetesSchemaService, YamlUtilService, Arrayable, KubernetesResource, OpenAPIV3SchemaObject } from '../../core/public-api';
10
5
  import { EditorInstanceProvider } from '../managed-fields-folder.util';
11
6
  import * as i0 from "@angular/core";
12
7
  export declare class ResourceYamlDisplayComponent<T extends KubernetesResource> implements OnDestroy, AfterViewInit, EditorInstanceProvider {
@@ -23,7 +18,7 @@ export declare class ResourceYamlDisplayComponent<T extends KubernetesResource>
23
18
  private monacoEditor;
24
19
  private registeredSchemas;
25
20
  codeEditorRef: {
26
- editor: editor.IStandaloneCodeEditor;
21
+ editor: import('monaco-editor/esm/vs/editor/editor.api').editor.IStandaloneCodeEditor;
27
22
  };
28
23
  hasWrapper: boolean;
29
24
  showDebugInfo: boolean;
@@ -67,7 +62,7 @@ export declare class ResourceYamlDisplayComponent<T extends KubernetesResource>
67
62
  /**
68
63
  * 获取 Monaco Editor 实例
69
64
  */
70
- getEditorInstance(): editor.IStandaloneCodeEditor | null;
65
+ getEditorInstance(): import('monaco-editor/esm/vs/editor/editor.api').editor.IStandaloneCodeEditor | null;
71
66
  /**
72
67
  * 自动折叠 managedFields 字段
73
68
  */
@@ -5,8 +5,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
5
5
  import { KubernetesSchemaService } from '../../core/services/kubernetes-schema.service';
6
6
  import { YamlUtilService } from '../../core/services/yaml-util.service';
7
7
  import { Arrayable } from '../../core/types/helpers';
8
- import { KubernetesResource } from '../../core/types/k8s/core';
9
- import { OpenAPIV3SchemaObject } from '../../core/types/schema';
8
+ import { KubernetesResource, OpenAPIV3SchemaObject } from '../../core/types/public-api';
10
9
  import { EditorInstanceProvider } from '../managed-fields-folder.util';
11
10
  import { YamlExample } from '../yaml-sidebar/types';
12
11
  import * as i0 from "@angular/core";
@@ -84,7 +83,7 @@ export declare class ResourceYamlEditorComponent<T extends KubernetesResource> i
84
83
  /**
85
84
  * 获取 Monaco 编辑器实例
86
85
  */
87
- getEditorInstance(): import('monaco-editor').editor.IStandaloneCodeEditor | null;
86
+ getEditorInstance(): import('monaco-editor/esm/vs/editor/editor.api').editor.IStandaloneCodeEditor | null;
88
87
  /**
89
88
  * 手动折叠 managedFields
90
89
  */
@@ -1,14 +1,14 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { OnInit, OnChanges, SimpleChanges, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
+ import { OnInit, OnChanges, SimpleChanges, EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
3
3
  import { KubernetesSchemaService } from '../../core/services/kubernetes-schema.service';
4
- import { KubernetesResource } from '../../core/types/k8s/core';
5
- import { OpenAPIV3SchemaObject } from '../../core/types/schema';
4
+ import { KubernetesResource, OpenAPIV3SchemaObject } from '../../core/types/public-api';
6
5
  import { YamlExample } from './types';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class ResourceYamlSidebarComponent implements OnInit, OnChanges {
9
8
  private schemaService;
10
9
  private http;
11
10
  private cdr;
11
+ private host;
12
12
  resource: KubernetesResource;
13
13
  schema: OpenAPIV3SchemaObject;
14
14
  close: EventEmitter<void>;
@@ -18,6 +18,7 @@ export declare class ResourceYamlSidebarComponent implements OnInit, OnChanges {
18
18
  extraExamples: YamlExample[];
19
19
  private readonly DEFINITIONS_PREFIX;
20
20
  currentSchema: OpenAPIV3SchemaObject;
21
+ currentSchemaDescription: string;
21
22
  properties: {
22
23
  [key: string]: OpenAPIV3SchemaObject;
23
24
  };
@@ -26,7 +27,7 @@ export declare class ResourceYamlSidebarComponent implements OnInit, OnChanges {
26
27
  examples: YamlExample[];
27
28
  hasSchema: boolean;
28
29
  hasExamples: boolean;
29
- constructor(schemaService: KubernetesSchemaService, http: HttpClient, cdr: ChangeDetectorRef);
30
+ constructor(schemaService: KubernetesSchemaService, http: HttpClient, cdr: ChangeDetectorRef, host: ElementRef<HTMLElement>);
30
31
  ngOnInit(): void;
31
32
  ngOnChanges(changes: SimpleChanges): void;
32
33
  refresh(): void;
@@ -34,24 +35,14 @@ export declare class ResourceYamlSidebarComponent implements OnInit, OnChanges {
34
35
  private loadConsoleYAMLSamples;
35
36
  drillDownToProperty(name: string): void;
36
37
  navigateToPath(index: number): void;
37
- hasNestedProperties(property: OpenAPIV3SchemaObject): boolean;
38
- getPropertyType(property: OpenAPIV3SchemaObject): string;
39
- isRequired(propertyName: string): boolean;
40
38
  /**
41
39
  * 检查属性是否有 $ref 引用或嵌套属性
42
40
  */
43
41
  hasViewableContent(property: OpenAPIV3SchemaObject): boolean;
44
- /**
45
- * 检查属性是否有 $ref 引用
46
- */
47
- hasRefProperty(property: OpenAPIV3SchemaObject): boolean;
48
- /**
49
- * 获取 $ref 引用的定义名称
50
- */
51
- getRefDefinitionName(property: OpenAPIV3SchemaObject): string;
52
42
  tryExample(example: YamlExample): void;
53
43
  downloadYaml(example: YamlExample): void;
54
44
  processDescription(description: string): string;
45
+ private scrollTop;
55
46
  static ɵfac: i0.ɵɵFactoryDeclaration<ResourceYamlSidebarComponent, never>;
56
47
  static ɵcmp: i0.ɵɵComponentDeclaration<ResourceYamlSidebarComponent, "acl-resource-yaml-sidebar", never, { "resource": { "alias": "resource"; "required": false; }; "schema": { "alias": "schema"; "required": false; }; "schemaEnable": { "alias": "schemaEnable"; "required": false; }; "exampleEnable": { "alias": "exampleEnable"; "required": false; }; "extraExamples": { "alias": "extraExamples"; "required": false; }; }, { "close": "close"; "tryYaml": "tryYaml"; }, never, never, true, never>;
57
48
  }
@@ -21,7 +21,7 @@ export declare class BaseNestedFormControl<V, M = V> implements AfterViewInit, O
21
21
  protected asyncValidator: boolean;
22
22
  protected cdr: ChangeDetectorRef;
23
23
  protected destroy$$: Subject<void>;
24
- protected hostForm: FormGroupDirective | NgForm;
24
+ protected hostForm: NgForm | FormGroupDirective;
25
25
  constructor();
26
26
  ngAfterViewInit(): void;
27
27
  ngOnDestroy(): void;
@@ -39,6 +39,7 @@ export declare class KubernetesSchemaService {
39
39
  * 从 Kubernetes API 获取 OpenAPI schema
40
40
  */
41
41
  private fetchOpenAPISchema;
42
+ private getDefinitionKey;
42
43
  static ɵfac: i0.ɵɵFactoryDeclaration<KubernetesSchemaService, never>;
43
44
  static ɵprov: i0.ɵɵInjectableDeclaration<KubernetesSchemaService>;
44
45
  }
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { HttpClient } from '@angular/common/http';
6
6
  import { Observable } from 'rxjs';
7
- import { KubernetesResource } from '../types/k8s/core';
7
+ import { KubernetesResource } from '../types/public-api';
8
8
  import * as i0 from "@angular/core";
9
9
  export type ModulePluginPhase = 'Running' | 'Processing' | 'Deleting' | 'Failed' | 'Upgrading' | 'Unknown';
10
10
  export interface ModulePluginInstallStatus {
@@ -1,5 +1,5 @@
1
1
  import { ActivatedRoute } from '@angular/router';
2
- import { Workspace } from '../utils/workspace';
2
+ import { Workspace } from '../utils/public-api';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class WorkspaceHelperService {
5
5
  private readonly baseParams$$;
@@ -1,4 +1,4 @@
1
- import { Arrayable, KubernetesResource } from '../public-api';
1
+ import { Arrayable, KubernetesResource } from '../types/public-api';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class YamlUtilService {
4
4
  private readonly baseDomain;
@@ -2,6 +2,7 @@ export interface OpenAPIV3SchemaObject {
2
2
  type: JSONSchema6TypeName;
3
3
  description?: string;
4
4
  enum?: string[];
5
+ $ref?: string;
5
6
  properties?: {
6
7
  [key: string]: OpenAPIV3SchemaObject;
7
8
  };
@@ -10,5 +11,13 @@ export interface OpenAPIV3SchemaObject {
10
11
  title?: string;
11
12
  default?: any;
12
13
  additionalProperties?: OpenAPIV3SchemaObject;
14
+ ['x-kubernetes-group-version-kind']?: Array<{
15
+ group: string;
16
+ version: string;
17
+ kind: string;
18
+ }>;
19
+ }
20
+ export interface OpenAPIV3SchemaObjects {
21
+ [name: string]: OpenAPIV3SchemaObject;
13
22
  }
14
23
  export type JSONSchema6TypeName = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null' | 'any';
@@ -36,4 +36,4 @@ export declare const compareVersion: {
36
36
  gte: (v1: string, v2: string) => boolean;
37
37
  cmp: (v1: string, v2: string, operator: CompareOperator) => boolean;
38
38
  };
39
- export declare const compareMinorVersion: (v1: string, v2: string) => 1 | 0 | -1;
39
+ export declare const compareMinorVersion: (v1: string, v2: string) => 0 | 1 | -1;
@@ -144,4 +144,4 @@ export class ManagedFieldsAutoFolder {
144
144
  }
145
145
  }
146
146
  }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1maWVsZHMtZm9sZGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29kZS9tYW5hZ2VkLWZpZWxkcy1mb2xkZXIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFlBQTBDO0lBRTFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILHdDQUF3QztRQUN4QyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQzVDLHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxNQUFNLGFBQWEsR0FBVSxFQUFFLENBQUM7WUFFaEMsS0FBSyxNQUFNLEtBQUssSUFBSSxvQkFBb0IsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztnQkFFOUMsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUUzRCxJQUFJLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FBQzt3QkFDakIsZUFBZSxFQUFFLFNBQVM7d0JBQzFCLFdBQVcsRUFBRSxDQUFDO3dCQUNkLGFBQWEsRUFBRSxPQUFPO3dCQUN0QixTQUFTLEVBQUUsS0FBSyxD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QUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZGl0b3IgfSBmcm9tICdtb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvZWRpdG9yLmFwaSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDoh6rliqjmipjlj6AgbWFuYWdlZEZpZWxkcyDlrZfmrrVcbiAqIEBwYXJhbSBtb25hY29FZGl0b3IgTW9uYWNvIOe8lui+keWZqOWunuS+i1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9sZE1hbmFnZWRGaWVsZHMoXG4gIG1vbmFjb0VkaXRvcjogZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcixcbik6IHZvaWQge1xuICBpZiAoIW1vbmFjb0VkaXRvcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1vZGVsID0gbW9uYWNvRWRpdG9yLmdldE1vZGVsKCk7XG4gIGlmICghbW9kZWwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIC8vIOafpeaJvuaJgOaciSBtYW5hZ2VkRmllbGRzIOWtl+aute+8iOWPquWcqCBtZXRhZGF0YSDkuIvnmoTvvIlcbiAgICBjb25zdCBtYW5hZ2VkRmllbGRzTWF0Y2hlcyA9IG1vZGVsLmZpbmRNYXRjaGVzKFxuICAgICAgJ14oXFxcXHMrKW1hbmFnZWRGaWVsZHM6JyxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZSxcbiAgICAgIGZhbHNlLFxuICAgICAgbnVsbCxcbiAgICAgIHRydWUsXG4gICAgKTtcblxuICAgIGlmIChtYW5hZ2VkRmllbGRzTWF0Y2hlcyAmJiBtYW5hZ2VkRmllbGRzTWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmb2xkaW5nUmFuZ2VzOiBhbnlbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hbmFnZWRGaWVsZHNNYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0TGluZSA9IG1hdGNoLnJhbmdlLnN0YXJ0TGluZU51bWJlcjtcblxuICAgICAgICBjb25zdCBlbmRMaW5lID0gZmluZE1hbmFnZWRGaWVsZHNFbmRMaW5lKG1vZGVsLCBzdGFydExpbmUpO1xuXG4gICAgICAgIGlmIChlbmRMaW5lID4gc3RhcnRMaW5lKSB7XG4gICAgICAgICAgZm9sZGluZ1Jhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgIHN0YXJ0TGluZU51bWJlcjogc3RhcnRMaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2x1bW46IDEsXG4gICAgICAgICAgICBlbmRMaW5lTnVtYmVyOiBlbmRMaW5lLFxuICAgICAgICAgICAgZW5kQ29sdW1uOiBtb2RlbC5nZXRMaW5lTWF4Q29sdW1uKGVuZExpbmUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZm9sZGluZ1Jhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIOmAkuW9kuaKmOWPoOavj+S4qiBtYW5hZ2VkRmllbGRzIOWMuuWfn++8jOehruS/neavj+asoeaKmOWPoOWujOaIkOWQjuWGjei/m+ihjOS4i+S4gOasoVxuICAgICAgICBmb2xkUmFuZ2VzU2VxdWVudGlhbGx5KG1vbmFjb0VkaXRvciwgZm9sZGluZ1Jhbmdlcz8ucmV2ZXJzZSgpLCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZm9sZCBtYW5hZ2VkRmllbGRzOicsIGVycm9yKTtcbiAgfVxufVxuXG4vKipcbiAqIOmAkuW9kuaKmOWPoOWkmuS4quWMuuWfn++8jOehruS/neavj+asoeaKmOWPoOWujOaIkOWQjuWGjei/m+ihjOS4i+S4gOasoVxuICogQHBhcmFtIG1vbmFjb0VkaXRvciBNb25hY28g57yW6L6R5Zmo5a6e5L6LXG4gKiBAcGFyYW0gZm9sZGluZ1JhbmdlcyDmipjlj6DljLrln5/mlbDnu4RcbiAqIEBwYXJhbSBpbmRleCDlvZPliY3mipjlj6DnmoTntKLlvJVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZm9sZFJhbmdlc1NlcXVlbnRpYWxseShcbiAgbW9uYWNvRWRpdG9yOiBlZGl0b3IuSVN0YW5kYWxvbmVDb2RlRWRpdG9yLFxuICBmb2xkaW5nUmFuZ2VzOiBhbnlbXSxcbiAgaW5kZXg6IG51bWJlcixcbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoaW5kZXggPj0gZm9sZGluZ1Jhbmdlcy5sZW5ndGgpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByYW5nZSA9IGZvbGRpbmdSYW5nZXNbaW5kZXhdO1xuICBtb25hY29FZGl0b3Iuc2V0U2VsZWN0aW9uKHJhbmdlKTtcbiAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKG1vbmFjb0VkaXRvci5nZXRBY3Rpb24oJ2VkaXRvci5mb2xkJyk/LnJ1bigpKTtcblxuICByZXR1cm4gZm9sZFJhbmdlc1NlcXVlbnRpYWxseShtb25hY29FZGl0b3IsIGZvbGRpbmdSYW5nZXMsIGluZGV4ICsgMSk7XG59XG5cbi8qKlxuICog5p+l5om+IG1hbmFnZWRGaWVsZHMg5a2X5q6155qE57uT5p2f6KGMXG4gKiBAcGFyYW0gbW9kZWwgTW9uYWNvIOe8lui+keWZqOaooeWei1xuICogQHBhcmFtIHN0YXJ0TGluZSDotbflp4vooYzlj7dcbiAqIEByZXR1cm5zIOe7k+adn+ihjOWPt1xuICovXG5mdW5jdGlvbiBmaW5kTWFuYWdlZEZpZWxkc0VuZExpbmUoXG4gIG1vZGVsOiBlZGl0b3IuSVRleHRNb2RlbCxcbiAgc3RhcnRMaW5lOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBjb25zdCB0b3RhbExpbmVzID0gbW9kZWwuZ2V0TGluZUNvdW50KCk7XG4gIGNvbnN0IHN0YXJ0SW5kZW50ID0gZ2V0TGluZUluZGVudGF0aW9uKG1vZGVsLCBzdGFydExpbmUpO1xuXG4gIC8vIOS7juS4i+S4gOihjOW8gOWni+afpeaJvlxuICBmb3IgKGxldCBsaW5lID0gc3RhcnRMaW5lICsgMTsgbGluZSA8PSB0b3RhbExpbmVzOyBsaW5lKyspIHtcbiAgICBjb25zdCBsaW5lQ29udGVudCA9IG1vZGVsLmdldExpbmVDb250ZW50KGxpbmUpLnRyaW0oKTtcblxuICAgIC8vIOi3s+i/h+epuuihjFxuICAgIGlmICghbGluZUNvbnRlbnQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJbmRlbnQgPSBnZXRMaW5lSW5kZW50YXRpb24obW9kZWwsIGxpbmUpO1xuXG4gICAgLy8g5aaC5p6c57yp6L+b5bCP5LqO562J5LqO6LW35aeL6KGM77yM6K+05piOIG1hbmFnZWRGaWVsZHMg5a2X5q6157uT5p2fXG4gICAgaWYgKGN1cnJlbnRJbmRlbnQgPD0gc3RhcnRJbmRlbnQpIHtcbiAgICAgIHJldHVybiBsaW5lIC0gMTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG90YWxMaW5lcztcbn1cblxuLyoqXG4gKiDojrflj5booYznmoTnvKnov5vnuqfliKtcbiAqIEBwYXJhbSBtb2RlbCBNb25hY28g57yW6L6R5Zmo5qih5Z6LXG4gKiBAcGFyYW0gbGluZU51bWJlciDooYzlj7dcbiAqIEByZXR1cm5zIOe8qei/m+e6p+WIq++8iOepuuagvOaVsO+8iVxuICovXG5mdW5jdGlvbiBnZXRMaW5lSW5kZW50YXRpb24oXG4gIG1vZGVsOiBlZGl0b3IuSVRleHRNb2RlbCxcbiAgbGluZU51bWJlcjogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgY29uc3QgbGluZUNvbnRlbnQgPSBtb2RlbC5nZXRMaW5lQ29udGVudChsaW5lTnVtYmVyKTtcbiAgY29uc3QgbWF0Y2ggPSBsaW5lQ29udGVudC5tYXRjaCgvXihcXHMqKS8pO1xuICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXS5sZW5ndGggOiAwO1xufVxuXG4vKipcbiAqIOe8lui+keWZqOWunuS+i+iOt+WPluWZqOaOpeWPo1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvckluc3RhbmNlUHJvdmlkZXIge1xuICBnZXRFZGl0b3JJbnN0YW5jZSgpOiBlZGl0b3IuSVN0YW5kYWxvbmVDb2RlRWRpdG9yIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkRmllbGRzIOiHquWKqOaKmOWPoOWZqFxuICog55So5LqO5Zyo5YaF5a655Y+Y5YyW5pe26Ieq5Yqo5oqY5Y+gIG1hbmFnZWRGaWVsZHMg5a2X5q61XG4gKi9cbmV4cG9ydCBjbGFzcyBNYW5hZ2VkRmllbGRzQXV0b0ZvbGRlciB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxhc3RGb2xkZWRDb250ZW50ID0gJyc7XG5cbiAgLyoqXG4gICAqIOW8gOWni+ebkeWQrOWGheWuueWPmOWMluW5tuiHquWKqOaKmOWPoFxuICAgKiBAcGFyYW0gZWRpdG9yUHJvdmlkZXIg57yW6L6R5Zmo5a6e5L6L5o+Q5L6b6ICFXG4gICAqIEBwYXJhbSBjb250ZW50T2JzZXJ2YWJsZSDlhoXlrrnlj5jljJbnmoQgT2JzZXJ2YWJsZVxuICAgKi9cbiAgc3RhcnRBdXRvRm9sZChcbiAgICBlZGl0b3JQcm92aWRlcjogRWRpdG9ySW5zdGFuY2VQcm92aWRlcixcbiAgICBjb250ZW50T2JzZXJ2YWJsZTogYW55LFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BBdXRvRm9sZCgpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBjb250ZW50T2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclByb3ZpZGVyLmdldEVkaXRvckluc3RhbmNlKCk7XG4gICAgICAgIGlmIChlZGl0b3IpIHtcbiAgICAgICAgICBjb25zdCBtb2RlbCA9IGVkaXRvci5nZXRNb2RlbCgpO1xuICAgICAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudENvbnRlbnQgPSBtb2RlbC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgLy8g5Y+q5pyJ5b2T5YaF5a6555yf5q2j5Y+R55Sf5Y+Y5YyW5pe25omN5omn6KGM5oqY5Y+gXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGN1cnJlbnRDb250ZW50LmluY2x1ZGVzKCdtYW5hZ2VkRmllbGRzOicpICYmXG4gICAgICAgICAgICAgIGN1cnJlbnRDb250ZW50ICE9PSB0aGlzLmxhc3RGb2xkZWRDb250ZW50XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgZm9sZE1hbmFnZWRGaWVsZHMoZWRpdG9yKTtcbiAgICAgICAgICAgICAgdGhpcy5sYXN0Rm9sZGVkQ29udGVudCA9IGN1cnJlbnRDb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlgZzmraLoh6rliqjmipjlj6BcbiAgICovXG4gIHN0b3BBdXRvRm9sZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog5omL5Yqo5omn6KGM5LiA5qyh5oqY5Y+gXG4gICAqIEBwYXJhbSBlZGl0b3JQcm92aWRlciDnvJbovpHlmajlrp7kvovmj5DkvpvogIVcbiAgICovXG4gIGZvbGRPbmNlKGVkaXRvclByb3ZpZGVyOiBFZGl0b3JJbnN0YW5jZVByb3ZpZGVyKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUHJvdmlkZXIuZ2V0RWRpdG9ySW5zdGFuY2UoKTtcbiAgICBpZiAoZWRpdG9yKSB7XG4gICAgICBmb2xkTWFuYWdlZEZpZWxkcyhlZGl0b3IpO1xuICAgICAgY29uc3QgbW9kZWwgPSBlZGl0b3IuZ2V0TW9kZWwoKTtcbiAgICAgIGlmIChtb2RlbCkge1xuICAgICAgICB0aGlzLmxhc3RGb2xkZWRDb250ZW50ID0gbW9kZWwuZ2V0VmFsdWUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1maWVsZHMtZm9sZGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29kZS9tYW5hZ2VkLWZpZWxkcy1mb2xkZXIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFlBQTJGO0lBRTNGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILHdDQUF3QztRQUN4QyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQzVDLHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxNQUFNLGFBQWEsR0FBVSxFQUFFLENBQUM7WUFFaEMsS0FBSyxNQUFNLEtBQUssSUFBSSxvQkFBb0IsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztnQkFFOUMsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUUzRCxJQUFJLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FBQzt3QkFDakIsZUFBZSxFQUFFLFNBQVM7d0JBQzFCLFdBQVcsRUFBRSxDQUFDO3dCQUNkLGFBQWEsRUFBRSxPQUFPO3dCQUN0QixTQUFTLEVBQUUsS0FBSyxD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QUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDoh6rliqjmipjlj6AgbWFuYWdlZEZpZWxkcyDlrZfmrrVcbiAqIEBwYXJhbSBtb25hY29FZGl0b3IgTW9uYWNvIOe8lui+keWZqOWunuS+i1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9sZE1hbmFnZWRGaWVsZHMoXG4gIG1vbmFjb0VkaXRvcjogaW1wb3J0KCdtb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvZWRpdG9yLmFwaScpLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3IsXG4pOiB2b2lkIHtcbiAgaWYgKCFtb25hY29FZGl0b3IpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtb2RlbCA9IG1vbmFjb0VkaXRvci5nZXRNb2RlbCgpO1xuICBpZiAoIW1vZGVsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyDmn6Xmib7miYDmnIkgbWFuYWdlZEZpZWxkcyDlrZfmrrXvvIjlj6rlnKggbWV0YWRhdGEg5LiL55qE77yJXG4gICAgY29uc3QgbWFuYWdlZEZpZWxkc01hdGNoZXMgPSBtb2RlbC5maW5kTWF0Y2hlcyhcbiAgICAgICdeKFxcXFxzKyltYW5hZ2VkRmllbGRzOicsXG4gICAgICBmYWxzZSxcbiAgICAgIHRydWUsXG4gICAgICBmYWxzZSxcbiAgICAgIG51bGwsXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBpZiAobWFuYWdlZEZpZWxkc01hdGNoZXMgJiYgbWFuYWdlZEZpZWxkc01hdGNoZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZm9sZGluZ1JhbmdlczogYW55W10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYW5hZ2VkRmllbGRzTWF0Y2hlcykge1xuICAgICAgICBjb25zdCBzdGFydExpbmUgPSBtYXRjaC5yYW5nZS5zdGFydExpbmVOdW1iZXI7XG5cbiAgICAgICAgY29uc3QgZW5kTGluZSA9IGZpbmRNYW5hZ2VkRmllbGRzRW5kTGluZShtb2RlbCwgc3RhcnRMaW5lKTtcblxuICAgICAgICBpZiAoZW5kTGluZSA+IHN0YXJ0TGluZSkge1xuICAgICAgICAgIGZvbGRpbmdSYW5nZXMucHVzaCh7XG4gICAgICAgICAgICBzdGFydExpbmVOdW1iZXI6IHN0YXJ0TGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sdW1uOiAxLFxuICAgICAgICAgICAgZW5kTGluZU51bWJlcjogZW5kTGluZSxcbiAgICAgICAgICAgIGVuZENvbHVtbjogbW9kZWwuZ2V0TGluZU1heENvbHVtbihlbmRMaW5lKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvbGRpbmdSYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyDpgJLlvZLmipjlj6Dmr4/kuKogbWFuYWdlZEZpZWxkcyDljLrln5/vvIznoa7kv53mr4/mrKHmipjlj6DlrozmiJDlkI7lho3ov5vooYzkuIvkuIDmrKFcbiAgICAgICAgZm9sZFJhbmdlc1NlcXVlbnRpYWxseShtb25hY29FZGl0b3IsIGZvbGRpbmdSYW5nZXM/LnJldmVyc2UoKSwgMCk7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGZvbGQgbWFuYWdlZEZpZWxkczonLCBlcnJvcik7XG4gIH1cbn1cblxuLyoqXG4gKiDpgJLlvZLmipjlj6DlpJrkuKrljLrln5/vvIznoa7kv53mr4/mrKHmipjlj6DlrozmiJDlkI7lho3ov5vooYzkuIvkuIDmrKFcbiAqIEBwYXJhbSBtb25hY29FZGl0b3IgTW9uYWNvIOe8lui+keWZqOWunuS+i1xuICogQHBhcmFtIGZvbGRpbmdSYW5nZXMg5oqY5Y+g5Yy65Z+f5pWw57uEXG4gKiBAcGFyYW0gaW5kZXgg5b2T5YmN5oqY5Y+g55qE57Si5byVXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZvbGRSYW5nZXNTZXF1ZW50aWFsbHkoXG4gIG1vbmFjb0VkaXRvcjogaW1wb3J0KCdtb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvZWRpdG9yLmFwaScpLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3IsXG4gIGZvbGRpbmdSYW5nZXM6IGFueVtdLFxuICBpbmRleDogbnVtYmVyLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChpbmRleCA+PSBmb2xkaW5nUmFuZ2VzLmxlbmd0aCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJhbmdlID0gZm9sZGluZ1Jhbmdlc1tpbmRleF07XG4gIG1vbmFjb0VkaXRvci5zZXRTZWxlY3Rpb24ocmFuZ2UpO1xuICBhd2FpdCBQcm9taXNlLnJlc29sdmUobW9uYWNvRWRpdG9yLmdldEFjdGlvbignZWRpdG9yLmZvbGQnKT8ucnVuKCkpO1xuXG4gIHJldHVybiBmb2xkUmFuZ2VzU2VxdWVudGlhbGx5KG1vbmFjb0VkaXRvciwgZm9sZGluZ1JhbmdlcywgaW5kZXggKyAxKTtcbn1cblxuLyoqXG4gKiDmn6Xmib4gbWFuYWdlZEZpZWxkcyDlrZfmrrXnmoTnu5PmnZ/ooYxcbiAqIEBwYXJhbSBtb2RlbCBNb25hY28g57yW6L6R5Zmo5qih5Z6LXG4gKiBAcGFyYW0gc3RhcnRMaW5lIOi1t+Wni+ihjOWPt1xuICogQHJldHVybnMg57uT5p2f6KGM5Y+3XG4gKi9cbmZ1bmN0aW9uIGZpbmRNYW5hZ2VkRmllbGRzRW5kTGluZShcbiAgbW9kZWw6IGltcG9ydCgnbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2VkaXRvci5hcGknKS5lZGl0b3IuSVRleHRNb2RlbCxcbiAgc3RhcnRMaW5lOiBudW1iZXIsXG4pOiBudW1iZXIge1xuICBjb25zdCB0b3RhbExpbmVzID0gbW9kZWwuZ2V0TGluZUNvdW50KCk7XG4gIGNvbnN0IHN0YXJ0SW5kZW50ID0gZ2V0TGluZUluZGVudGF0aW9uKG1vZGVsLCBzdGFydExpbmUpO1xuXG4gIC8vIOS7juS4i+S4gOihjOW8gOWni+afpeaJvlxuICBmb3IgKGxldCBsaW5lID0gc3RhcnRMaW5lICsgMTsgbGluZSA8PSB0b3RhbExpbmVzOyBsaW5lKyspIHtcbiAgICBjb25zdCBsaW5lQ29udGVudCA9IG1vZGVsLmdldExpbmVDb250ZW50KGxpbmUpLnRyaW0oKTtcblxuICAgIC8vIOi3s+i/h+epuuihjFxuICAgIGlmICghbGluZUNvbnRlbnQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJbmRlbnQgPSBnZXRMaW5lSW5kZW50YXRpb24obW9kZWwsIGxpbmUpO1xuXG4gICAgLy8g5aaC5p6c57yp6L+b5bCP5LqO562J5LqO6LW35aeL6KGM77yM6K+05piOIG1hbmFnZWRGaWVsZHMg5a2X5q6157uT5p2fXG4gICAgaWYgKGN1cnJlbnRJbmRlbnQgPD0gc3RhcnRJbmRlbnQpIHtcbiAgICAgIHJldHVybiBsaW5lIC0gMTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG90YWxMaW5lcztcbn1cblxuLyoqXG4gKiDojrflj5booYznmoTnvKnov5vnuqfliKtcbiAqIEBwYXJhbSBtb2RlbCBNb25hY28g57yW6L6R5Zmo5qih5Z6LXG4gKiBAcGFyYW0gbGluZU51bWJlciDooYzlj7dcbiAqIEByZXR1cm5zIOe8qei/m+e6p+WIq++8iOepuuagvOaVsO+8iVxuICovXG5mdW5jdGlvbiBnZXRMaW5lSW5kZW50YXRpb24oXG4gIG1vZGVsOiBpbXBvcnQoJ21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9lZGl0b3IuYXBpJykuZWRpdG9yLklUZXh0TW9kZWwsXG4gIGxpbmVOdW1iZXI6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGNvbnN0IGxpbmVDb250ZW50ID0gbW9kZWwuZ2V0TGluZUNvbnRlbnQobGluZU51bWJlcik7XG4gIGNvbnN0IG1hdGNoID0gbGluZUNvbnRlbnQubWF0Y2goL14oXFxzKikvKTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0ubGVuZ3RoIDogMDtcbn1cblxuLyoqXG4gKiDnvJbovpHlmajlrp7kvovojrflj5blmajmjqXlj6NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JJbnN0YW5jZVByb3ZpZGVyIHtcbiAgZ2V0RWRpdG9ySW5zdGFuY2UoKTpcbiAgICB8IGltcG9ydCgnbW9uYWNvLWVkaXRvci9lc20vdnMvZWRpdG9yL2VkaXRvci5hcGknKS5lZGl0b3IuSVN0YW5kYWxvbmVDb2RlRWRpdG9yXG4gICAgfCBudWxsO1xufVxuXG4vKipcbiAqIE1hbmFnZWRGaWVsZHMg6Ieq5Yqo5oqY5Y+g5ZmoXG4gKiDnlKjkuo7lnKjlhoXlrrnlj5jljJbml7boh6rliqjmipjlj6AgbWFuYWdlZEZpZWxkcyDlrZfmrrVcbiAqL1xuZXhwb3J0IGNsYXNzIE1hbmFnZWRGaWVsZHNBdXRvRm9sZGVyIHtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbGFzdEZvbGRlZENvbnRlbnQgPSAnJztcblxuICAvKipcbiAgICog5byA5aeL55uR5ZCs5YaF5a655Y+Y5YyW5bm26Ieq5Yqo5oqY5Y+gXG4gICAqIEBwYXJhbSBlZGl0b3JQcm92aWRlciDnvJbovpHlmajlrp7kvovmj5DkvpvogIVcbiAgICogQHBhcmFtIGNvbnRlbnRPYnNlcnZhYmxlIOWGheWuueWPmOWMlueahCBPYnNlcnZhYmxlXG4gICAqL1xuICBzdGFydEF1dG9Gb2xkKFxuICAgIGVkaXRvclByb3ZpZGVyOiBFZGl0b3JJbnN0YW5jZVByb3ZpZGVyLFxuICAgIGNvbnRlbnRPYnNlcnZhYmxlOiBhbnksXG4gICk6IHZvaWQge1xuICAgIHRoaXMuc3RvcEF1dG9Gb2xkKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbnRlbnRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUHJvdmlkZXIuZ2V0RWRpdG9ySW5zdGFuY2UoKTtcbiAgICAgICAgaWYgKGVkaXRvcikge1xuICAgICAgICAgIGNvbnN0IG1vZGVsID0gZWRpdG9yLmdldE1vZGVsKCk7XG4gICAgICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29udGVudCA9IG1vZGVsLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAvLyDlj6rmnInlvZPlhoXlrrnnnJ/mraPlj5HnlJ/lj5jljJbml7bmiY3miafooYzmipjlj6BcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY3VycmVudENvbnRlbnQuaW5jbHVkZXMoJ21hbmFnZWRGaWVsZHM6JykgJiZcbiAgICAgICAgICAgICAgY3VycmVudENvbnRlbnQgIT09IHRoaXMubGFzdEZvbGRlZENvbnRlbnRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBmb2xkTWFuYWdlZEZpZWxkcyhlZGl0b3IpO1xuICAgICAgICAgICAgICB0aGlzLmxhc3RGb2xkZWRDb250ZW50ID0gY3VycmVudENvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOWBnOatouiHquWKqOaKmOWPoFxuICAgKi9cbiAgc3RvcEF1dG9Gb2xkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDmiYvliqjmiafooYzkuIDmrKHmipjlj6BcbiAgICogQHBhcmFtIGVkaXRvclByb3ZpZGVyIOe8lui+keWZqOWunuS+i+aPkOS+m+iAhVxuICAgKi9cbiAgZm9sZE9uY2UoZWRpdG9yUHJvdmlkZXI6IEVkaXRvckluc3RhbmNlUHJvdmlkZXIpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JQcm92aWRlci5nZXRFZGl0b3JJbnN0YW5jZSgpO1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIGZvbGRNYW5hZ2VkRmllbGRzKGVkaXRvcik7XG4gICAgICBjb25zdCBtb2RlbCA9IGVkaXRvci5nZXRNb2RlbCgpO1xuICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgIHRoaXMubGFzdEZvbGRlZENvbnRlbnQgPSBtb2RlbC5nZXRWYWx1ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -6,20 +6,17 @@ import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import { yamlDefaults, setDiagnosticsOptions } from 'monaco-yaml';
8
8
  import { BehaviorSubject, combineLatest, Observable, map, distinctUntilChanged, of, switchMap, shareReplay, takeUntil, Subject, } from 'rxjs';
9
- import { KubernetesSchemaService } from '../../core/services/kubernetes-schema.service';
10
- import { YamlUtilService } from '../../core/services/yaml-util.service';
11
- import { ObservableInput } from '../../core/utils/decorators';
12
- import { TranslateModule } from '../../translate/translate.module';
9
+ import { KubernetesSchemaService, YamlUtilService, ObservableInput, } from '../../core/public-api';
10
+ import { TRANSLATE_MODULE } from '../../translate/public-api';
13
11
  import { viewActions, yamlReadMinimapOptions, yamlReadOptions, } from '../code-editor-configs';
14
12
  import { foldManagedFields, } from '../managed-fields-folder.util';
15
13
  import { ResourceYamlSidebarComponent } from '../yaml-sidebar/component';
16
14
  import * as i0 from "@angular/core";
17
- import * as i1 from "../../core/services/yaml-util.service";
18
- import * as i2 from "../../core/services/kubernetes-schema.service";
19
- import * as i3 from "@alauda/code-editor";
20
- import * as i4 from "@alauda/ui";
21
- import * as i5 from "@angular/forms";
22
- import * as i6 from "../../translate/translate.pipe";
15
+ import * as i1 from "../../core/public-api";
16
+ import * as i2 from "@alauda/code-editor";
17
+ import * as i3 from "@alauda/ui";
18
+ import * as i4 from "@angular/forms";
19
+ import * as i5 from "../../translate/translate.pipe";
23
20
  const _c0 = ["codeEditorRef"];
24
21
  function ResourceYamlDisplayComponent_aui_card_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
25
22
  i0.ɵɵelementContainer(0);
@@ -53,19 +50,18 @@ function ResourceYamlDisplayComponent_ng_template_1_button_9_Template(rf, ctx) {
53
50
  i0.ɵɵelementStart(0, "button", 13);
54
51
  i0.ɵɵpipe(1, "async");
55
52
  i0.ɵɵpipe(2, "async");
56
- i0.ɵɵpipe(3, "async");
57
- i0.ɵɵpipe(4, "translate");
53
+ i0.ɵɵpipe(3, "translate");
58
54
  i0.ɵɵlistener("click", function ResourceYamlDisplayComponent_ng_template_1_button_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleSidebar()); });
59
- i0.ɵɵelement(5, "aui-icon", 14);
60
- i0.ɵɵpipe(6, "async");
55
+ i0.ɵɵelement(4, "aui-icon", 14);
56
+ i0.ɵɵpipe(5, "async");
61
57
  i0.ɵɵelementEnd();
62
58
  } if (rf & 2) {
63
59
  i0.ɵɵnextContext();
64
60
  const codeEditorRef_r5 = i0.ɵɵreference(4);
65
61
  const ctx_r2 = i0.ɵɵnextContext();
66
- i0.ɵɵproperty("hidden", !!codeEditorRef_r5.fullscreenDialog)("type", i0.ɵɵpipeBind1(1, 5, ctx_r2.showSidebar$$) ? "primary" : "text")("disabled", !i0.ɵɵpipeBind1(2, 7, ctx_r2.finalSchema$))("auiTooltip", i0.ɵɵpipeBind1(4, 11, i0.ɵɵpipeBind1(3, 9, ctx_r2.showSidebar$$) ? "hide_sidebar" : "view_sidebar"));
67
- i0.ɵɵadvance(5);
68
- i0.ɵɵproperty("icon", i0.ɵɵpipeBind1(6, 13, ctx_r2.showSidebar$$) ? "prod:expand_sidebar" : "prod:collapse_sidebar");
62
+ i0.ɵɵproperty("hidden", !!codeEditorRef_r5.fullscreenDialog)("disabled", !i0.ɵɵpipeBind1(1, 4, ctx_r2.finalSchema$))("auiTooltip", i0.ɵɵpipeBind1(3, 8, i0.ɵɵpipeBind1(2, 6, ctx_r2.showSidebar$$) ? "hide_sidebar" : "view_sidebar"));
63
+ i0.ɵɵadvance(4);
64
+ i0.ɵɵproperty("icon", i0.ɵɵpipeBind1(5, 10, ctx_r2.showSidebar$$) ? "prod:expand_sidebar" : "prod:collapse_sidebar");
69
65
  } }
70
66
  function ResourceYamlDisplayComponent_ng_template_1_div_10_Template(rf, ctx) { if (rf & 1) {
71
67
  const _r6 = i0.ɵɵgetCurrentView();
@@ -87,7 +83,7 @@ function ResourceYamlDisplayComponent_ng_template_1_Template(rf, ctx) { if (rf &
87
83
  i0.ɵɵtemplate(7, ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_7_Template, 4, 6, "aui-checkbox", 8);
88
84
  i0.ɵɵelementContainerEnd();
89
85
  i0.ɵɵelementContainerStart(8, 9);
90
- i0.ɵɵtemplate(9, ResourceYamlDisplayComponent_ng_template_1_button_9_Template, 7, 15, "button", 10);
86
+ i0.ɵɵtemplate(9, ResourceYamlDisplayComponent_ng_template_1_button_9_Template, 6, 12, "button", 10);
91
87
  i0.ɵɵelementContainerEnd();
92
88
  i0.ɵɵelementEnd()();
93
89
  i0.ɵɵtemplate(10, ResourceYamlDisplayComponent_ng_template_1_div_10_Template, 3, 6, "div", 11);
@@ -274,23 +270,23 @@ export class ResourceYamlDisplayComponent {
274
270
  this.destroy$.complete();
275
271
  this.monacoEditor = null;
276
272
  }
277
- static { this.ɵfac = function ResourceYamlDisplayComponent_Factory(t) { return new (t || ResourceYamlDisplayComponent)(i0.ɵɵdirectiveInject(i1.YamlUtilService), i0.ɵɵdirectiveInject(i2.KubernetesSchemaService), i0.ɵɵdirectiveInject(i3.MonacoLanguageService)); }; }
273
+ static { this.ɵfac = function ResourceYamlDisplayComponent_Factory(t) { return new (t || ResourceYamlDisplayComponent)(i0.ɵɵdirectiveInject(i1.YamlUtilService), i0.ɵɵdirectiveInject(i1.KubernetesSchemaService), i0.ɵɵdirectiveInject(i2.MonacoLanguageService)); }; }
278
274
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceYamlDisplayComponent, selectors: [["acl-resource-yaml-display"]], viewQuery: function ResourceYamlDisplayComponent_Query(rf, ctx) { if (rf & 1) {
279
275
  i0.ɵɵviewQuery(_c0, 5);
280
276
  } if (rf & 2) {
281
277
  let _t;
282
278
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.codeEditorRef = _t.first);
283
- } }, inputs: { hasWrapper: "hasWrapper", showDebugInfo: "showDebugInfo", conciseEnable: "conciseEnable", manageFieldActionEnable: "manageFieldActionEnable", sidebarEnable: "sidebarEnable", schemaEnable: "schemaEnable", exampleEnable: "exampleEnable", autoFoldManagedFields: "autoFoldManagedFields", schema: "schema", resource: "resource", minimap: "minimap" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 3, vars: 2, consts: [["content", ""], ["codeEditorRef", ""], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet"], [1, "yaml-display-container"], [1, "yaml-editor-section"], ["name", "yaml", 3, "ngModel", "options", "actionsConfig", "modelUri"], ["auiCodeEditorToolbarLeft", ""], ["class", "aui-code-editor-toolbar__control-button", 3, "ngModel", "ngModelChange", 4, "ngIf"], ["auiCodeEditorToolbarRightSide", ""], ["auiButton", "", "class", "aui-code-editor-toolbar__control-button", "size", "small", 3, "hidden", "type", "disabled", "auiTooltip", "click", 4, "ngIf"], ["class", "yaml-sidebar-section", 4, "ngIf"], [1, "aui-code-editor-toolbar__control-button", 3, "ngModelChange", "ngModel"], ["auiButton", "", "size", "small", 1, "aui-code-editor-toolbar__control-button", 3, "click", "hidden", "type", "disabled", "auiTooltip"], [3, "icon"], [1, "yaml-sidebar-section"], [3, "close", "resource", "schema", "schemaEnable", "exampleEnable"]], template: function ResourceYamlDisplayComponent_Template(rf, ctx) { if (rf & 1) {
279
+ } }, inputs: { hasWrapper: "hasWrapper", showDebugInfo: "showDebugInfo", conciseEnable: "conciseEnable", manageFieldActionEnable: "manageFieldActionEnable", sidebarEnable: "sidebarEnable", schemaEnable: "schemaEnable", exampleEnable: "exampleEnable", autoFoldManagedFields: "autoFoldManagedFields", schema: "schema", resource: "resource", minimap: "minimap" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 3, vars: 2, consts: [["content", ""], ["codeEditorRef", ""], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet"], [1, "yaml-display-container"], [1, "yaml-editor-section"], ["name", "yaml", 3, "ngModel", "options", "actionsConfig", "modelUri"], ["auiCodeEditorToolbarLeft", ""], ["class", "aui-code-editor-toolbar__control-button", 3, "ngModel", "ngModelChange", 4, "ngIf"], ["auiCodeEditorToolbarRightSide", ""], ["type", "button", "class", "aui-code-editor-toolbar__control-button", "size", "small", 3, "hidden", "disabled", "auiTooltip", "click", 4, "ngIf"], ["class", "yaml-sidebar-section", 4, "ngIf"], [1, "aui-code-editor-toolbar__control-button", 3, "ngModelChange", "ngModel"], ["type", "button", "size", "small", 1, "aui-code-editor-toolbar__control-button", 3, "click", "hidden", "disabled", "auiTooltip"], [3, "icon"], [1, "yaml-sidebar-section"], [3, "close", "resource", "schema", "schemaEnable", "exampleEnable"]], template: function ResourceYamlDisplayComponent_Template(rf, ctx) { if (rf & 1) {
284
280
  i0.ɵɵtemplate(0, ResourceYamlDisplayComponent_aui_card_0_Template, 2, 1, "aui-card", 2)(1, ResourceYamlDisplayComponent_ng_template_1_Template, 12, 15, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
285
281
  } if (rf & 2) {
286
282
  const content_r1 = i0.ɵɵreference(2);
287
283
  i0.ɵɵproperty("ngIf", ctx.hasWrapper)("ngIfElse", content_r1);
288
- } }, dependencies: [i4.CardComponent, NgIf,
289
- FormsModule, i5.NgControlStatus, i5.NgModel, i4.CheckboxComponent, ButtonModule,
290
- CodeEditorModule, i3.CodeEditorComponent, TranslateModule, i6.TranslatePipe, AsyncPipe,
284
+ } }, dependencies: [i3.CardComponent, NgIf,
285
+ FormsModule, i4.NgControlStatus, i4.NgModel, i3.CheckboxComponent, ButtonModule,
286
+ CodeEditorModule, i2.CodeEditorComponent, i5.TranslatePipe, AsyncPipe,
291
287
  NgTemplateOutlet,
292
288
  ResourceYamlSidebarComponent,
293
- IconModule, i4.IconComponent, TooltipModule, i4.TooltipDirective], styles: ["[_nghost-%COMP%]:not(.dialog-content){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}[_nghost-%COMP%]:not(.dialog-content) .aui-code-editor{min-height:100%}[_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%]{height:100%}[_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] .aui-card__content[_ngcontent-%COMP%], [_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] aui-code-editor[_ngcontent-%COMP%], [_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] .aui-code-editor[_ngcontent-%COMP%]{height:100%;min-height:100%}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] aui-card, [_nghost-%COMP%] .aui-card, [_nghost-%COMP%] .aui-card__content{height:100%}[_nghost-%COMP%] .aui-checkbox{margin-right:0}[_nghost-%COMP%] aui-code-editor[_ngcontent-%COMP%]{height:100%}.yaml-display-container[_ngcontent-%COMP%]{display:flex;height:100%}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-editor-section[_ngcontent-%COMP%]{flex:1;min-width:0}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-sidebar-section[_ngcontent-%COMP%]{width:400px;flex-shrink:0}.yaml-display-container[_ngcontent-%COMP%]:not(.with-sidebar) .yaml-editor-section[_ngcontent-%COMP%]{flex:1}.yaml-editor-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.yaml-editor-section[_ngcontent-%COMP%] aui-code-editor[_ngcontent-%COMP%]{flex:1;height:100%}.yaml-sidebar-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.yaml-sidebar-section[_ngcontent-%COMP%] acl-resource-yaml-sidebar[_ngcontent-%COMP%]{flex:1;height:100%}.yaml-debug-section[_ngcontent-%COMP%]{position:absolute;top:0;right:0;width:350px;height:100%;background:var(--aui-color-bg-container);border-left:1px solid var(--aui-color-border-default);z-index:1000;overflow-y:auto}.debug-panel[_ngcontent-%COMP%]{padding:16px;font-size:12px}.debug-panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0 0 12px;font-size:14px;color:var(--aui-color-text-primary)}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%]{margin-bottom:16px}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--aui-color-text-primary);display:block;margin-bottom:4px}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin:0;padding-left:16px}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-bottom:2px;color:var(--aui-color-text-secondary)}.debug-panel[_ngcontent-%COMP%] .debug-actions[_ngcontent-%COMP%]{border-top:1px solid var(--aui-color-border-default);padding-top:12px;text-align:right}@media (max-width: 1200px){.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-sidebar-section[_ngcontent-%COMP%]{width:350px}}@media (max-width: 992px){.yaml-display-container.with-sidebar[_ngcontent-%COMP%]{flex-direction:column}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-editor-section[_ngcontent-%COMP%]{flex:1;min-height:50%}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-sidebar-section[_ngcontent-%COMP%]{width:100%;height:50%;border-top:1px solid var(--aui-color-border, #e0e0e0);border-left:none}}"], changeDetection: 0 }); }
289
+ IconModule, i3.IconComponent, TooltipModule, i3.TooltipDirective], styles: ["[_nghost-%COMP%]:not(.dialog-content){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}[_nghost-%COMP%]:not(.dialog-content) .aui-code-editor{min-height:100%}[_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%]{height:100%}[_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] .aui-card__content[_ngcontent-%COMP%], [_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] aui-code-editor[_ngcontent-%COMP%], [_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] .aui-code-editor[_ngcontent-%COMP%]{height:100%;min-height:100%}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] aui-card, [_nghost-%COMP%] .aui-card, [_nghost-%COMP%] .aui-card__content{height:100%}[_nghost-%COMP%] .aui-checkbox{margin-right:0}[_nghost-%COMP%] aui-code-editor[_ngcontent-%COMP%]{height:100%}.yaml-display-container[_ngcontent-%COMP%]{display:flex;height:100%}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-editor-section[_ngcontent-%COMP%]{flex:2;min-width:0}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-sidebar-section[_ngcontent-%COMP%]{flex:1 0 0%}.yaml-display-container[_ngcontent-%COMP%]:not(.with-sidebar) .yaml-editor-section[_ngcontent-%COMP%]{flex:1}.yaml-editor-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.yaml-editor-section[_ngcontent-%COMP%] aui-code-editor[_ngcontent-%COMP%]{flex:1;height:100%}.yaml-sidebar-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.yaml-sidebar-section[_ngcontent-%COMP%] acl-resource-yaml-sidebar[_ngcontent-%COMP%]{flex:1;height:100%}.yaml-debug-section[_ngcontent-%COMP%]{position:absolute;top:0;right:0;width:350px;height:100%;background:var(--aui-color-bg-container);border-left:1px solid var(--aui-color-border-default);z-index:1000;overflow-y:auto}.debug-panel[_ngcontent-%COMP%]{padding:16px;font-size:12px}.debug-panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0 0 12px;font-size:14px;color:var(--aui-color-text-primary)}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%]{margin-bottom:16px}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--aui-color-text-primary);display:block;margin-bottom:4px}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin:0;padding-left:16px}.debug-panel[_ngcontent-%COMP%] .debug-item[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-bottom:2px;color:var(--aui-color-text-secondary)}.debug-panel[_ngcontent-%COMP%] .debug-actions[_ngcontent-%COMP%]{border-top:1px solid var(--aui-color-border-default);padding-top:12px;text-align:right}@media (width <= 1200px){.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-sidebar-section[_ngcontent-%COMP%]{width:350px}}@media (width <= 992px){.yaml-display-container.with-sidebar[_ngcontent-%COMP%]{flex-direction:column}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-editor-section[_ngcontent-%COMP%]{flex:1;min-height:50%}.yaml-display-container.with-sidebar[_ngcontent-%COMP%] .yaml-sidebar-section[_ngcontent-%COMP%]{width:100%;height:50%;border-top:1px solid var(--aui-color-border, #e0e0e0);border-left:none}}"], changeDetection: 0 }); }
294
290
  }
295
291
  __decorate([
296
292
  ObservableInput(),
@@ -309,14 +305,14 @@ __decorate([
309
305
  CHECKBOX_MODULE,
310
306
  ButtonModule,
311
307
  CodeEditorModule,
312
- TranslateModule,
308
+ TRANSLATE_MODULE,
313
309
  AsyncPipe,
314
310
  NgTemplateOutlet,
315
311
  ResourceYamlSidebarComponent,
316
312
  IconModule,
317
313
  TooltipModule,
318
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-card *ngIf=\"hasWrapper; else content\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</aui-card>\n<ng-template #content>\n <div\n class=\"yaml-display-container\"\n [class.with-sidebar]=\"showSidebar$$ | async\"\n >\n <div class=\"yaml-editor-section\">\n <aui-code-editor\n #codeEditorRef\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n [modelUri]=\"modelUri\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n <aui-checkbox\n *ngIf=\"conciseEnable\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n </ng-container>\n <ng-container auiCodeEditorToolbarRightSide>\n <!-- Schema \u6309\u94AE\uFF1A\u5F53\u542F\u7528\u4FA7\u8FB9\u680F\u65F6\u663E\u793A -->\n <button\n auiButton\n *ngIf=\"sidebarEnable\"\n [hidden]=\"!!codeEditorRef.fullscreenDialog\"\n class=\"aui-code-editor-toolbar__control-button\"\n [type]=\"(showSidebar$$ | async) ? 'primary' : 'text'\"\n [disabled]=\"!(finalSchema$ | async)\"\n size=\"small\"\n (click)=\"toggleSidebar()\"\n [auiTooltip]=\"\n ((showSidebar$$ | async) ? 'hide_sidebar' : 'view_sidebar')\n | translate\n \"\n >\n <aui-icon\n [icon]=\"\n (showSidebar$$ | async)\n ? 'prod:expand_sidebar'\n : 'prod:collapse_sidebar'\n \"\n ></aui-icon>\n </button>\n </ng-container>\n </aui-code-editor>\n </div>\n\n <div\n class=\"yaml-sidebar-section\"\n *ngIf=\"showSidebar$$ | async\"\n >\n <acl-resource-yaml-sidebar\n [resource]=\"getCurrentResource()\"\n [schema]=\"finalSchema$ | async\"\n (close)=\"toggleSidebar()\"\n [schemaEnable]=\"schemaEnable\"\n [exampleEnable]=\"false\"\n ></acl-resource-yaml-sidebar>\n </div>\n </div>\n</ng-template>\n", styles: [":host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}.yaml-display-container{display:flex;height:100%}.yaml-display-container.with-sidebar .yaml-editor-section{flex:1;min-width:0}.yaml-display-container.with-sidebar .yaml-sidebar-section{width:400px;flex-shrink:0}.yaml-display-container:not(.with-sidebar) .yaml-editor-section{flex:1}.yaml-editor-section{display:flex;flex-direction:column;height:100%}.yaml-editor-section aui-code-editor{flex:1;height:100%}.yaml-sidebar-section{display:flex;flex-direction:column;height:100%}.yaml-sidebar-section acl-resource-yaml-sidebar{flex:1;height:100%}.yaml-debug-section{position:absolute;top:0;right:0;width:350px;height:100%;background:var(--aui-color-bg-container);border-left:1px solid var(--aui-color-border-default);z-index:1000;overflow-y:auto}.debug-panel{padding:16px;font-size:12px}.debug-panel h4{margin:0 0 12px;font-size:14px;color:var(--aui-color-text-primary)}.debug-panel .debug-item{margin-bottom:16px}.debug-panel .debug-item strong{color:var(--aui-color-text-primary);display:block;margin-bottom:4px}.debug-panel .debug-item ul{margin:0;padding-left:16px}.debug-panel .debug-item ul li{margin-bottom:2px;color:var(--aui-color-text-secondary)}.debug-panel .debug-actions{border-top:1px solid var(--aui-color-border-default);padding-top:12px;text-align:right}@media (max-width: 1200px){.yaml-display-container.with-sidebar .yaml-sidebar-section{width:350px}}@media (max-width: 992px){.yaml-display-container.with-sidebar{flex-direction:column}.yaml-display-container.with-sidebar .yaml-editor-section{flex:1;min-height:50%}.yaml-display-container.with-sidebar .yaml-sidebar-section{width:100%;height:50%;border-top:1px solid var(--aui-color-border, #e0e0e0);border-left:none}}\n"] }]
319
- }], () => [{ type: i1.YamlUtilService }, { type: i2.KubernetesSchemaService }, { type: i3.MonacoLanguageService }], { codeEditorRef: [{
314
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-card *ngIf=\"hasWrapper; else content\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</aui-card>\n<ng-template #content>\n <div\n class=\"yaml-display-container\"\n [class.with-sidebar]=\"showSidebar$$ | async\"\n >\n <div class=\"yaml-editor-section\">\n <aui-code-editor\n #codeEditorRef\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n [modelUri]=\"modelUri\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n <aui-checkbox\n *ngIf=\"conciseEnable\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n </ng-container>\n <ng-container auiCodeEditorToolbarRightSide>\n <!-- Schema \u6309\u94AE\uFF1A\u5F53\u542F\u7528\u4FA7\u8FB9\u680F\u65F6\u663E\u793A -->\n <button\n type=\"button\"\n *ngIf=\"sidebarEnable\"\n [hidden]=\"!!codeEditorRef.fullscreenDialog\"\n class=\"aui-code-editor-toolbar__control-button\"\n [disabled]=\"!(finalSchema$ | async)\"\n size=\"small\"\n (click)=\"toggleSidebar()\"\n [auiTooltip]=\"\n ((showSidebar$$ | async) ? 'hide_sidebar' : 'view_sidebar')\n | translate\n \"\n >\n <aui-icon\n [icon]=\"\n (showSidebar$$ | async)\n ? 'prod:expand_sidebar'\n : 'prod:collapse_sidebar'\n \"\n ></aui-icon>\n </button>\n </ng-container>\n </aui-code-editor>\n </div>\n\n <div\n class=\"yaml-sidebar-section\"\n *ngIf=\"showSidebar$$ | async\"\n >\n <acl-resource-yaml-sidebar\n [resource]=\"getCurrentResource()\"\n [schema]=\"finalSchema$ | async\"\n (close)=\"toggleSidebar()\"\n [schemaEnable]=\"schemaEnable\"\n [exampleEnable]=\"false\"\n ></acl-resource-yaml-sidebar>\n </div>\n </div>\n</ng-template>\n", styles: [":host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}.yaml-display-container{display:flex;height:100%}.yaml-display-container.with-sidebar .yaml-editor-section{flex:2;min-width:0}.yaml-display-container.with-sidebar .yaml-sidebar-section{flex:1 0 0%}.yaml-display-container:not(.with-sidebar) .yaml-editor-section{flex:1}.yaml-editor-section{display:flex;flex-direction:column;height:100%}.yaml-editor-section aui-code-editor{flex:1;height:100%}.yaml-sidebar-section{display:flex;flex-direction:column;height:100%}.yaml-sidebar-section acl-resource-yaml-sidebar{flex:1;height:100%}.yaml-debug-section{position:absolute;top:0;right:0;width:350px;height:100%;background:var(--aui-color-bg-container);border-left:1px solid var(--aui-color-border-default);z-index:1000;overflow-y:auto}.debug-panel{padding:16px;font-size:12px}.debug-panel h4{margin:0 0 12px;font-size:14px;color:var(--aui-color-text-primary)}.debug-panel .debug-item{margin-bottom:16px}.debug-panel .debug-item strong{color:var(--aui-color-text-primary);display:block;margin-bottom:4px}.debug-panel .debug-item ul{margin:0;padding-left:16px}.debug-panel .debug-item ul li{margin-bottom:2px;color:var(--aui-color-text-secondary)}.debug-panel .debug-actions{border-top:1px solid var(--aui-color-border-default);padding-top:12px;text-align:right}@media (width <= 1200px){.yaml-display-container.with-sidebar .yaml-sidebar-section{width:350px}}@media (width <= 992px){.yaml-display-container.with-sidebar{flex-direction:column}.yaml-display-container.with-sidebar .yaml-editor-section{flex:1;min-height:50%}.yaml-display-container.with-sidebar .yaml-sidebar-section{width:100%;height:50%;border-top:1px solid var(--aui-color-border, #e0e0e0);border-left:none}}\n"] }]
315
+ }], () => [{ type: i1.YamlUtilService }, { type: i1.KubernetesSchemaService }, { type: i2.MonacoLanguageService }], { codeEditorRef: [{
320
316
  type: ViewChild,
321
317
  args: ['codeEditorRef']
322
318
  }], hasWrapper: [{
@@ -343,4 +339,4 @@ __decorate([
343
339
  type: Input
344
340
  }] }); })();
345
341
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceYamlDisplayComponent, { className: "ResourceYamlDisplayComponent" }); })();
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUvcmVzb3VyY2UteWFtbC1kaXNwbGF5L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3Jlc291cmNlLXlhbWwtZGlzcGxheS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLHFCQUFxQixHQUN0QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsR0FBRyxFQUNILG9CQUFvQixFQUNwQixFQUFFLEVBQ0YsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxF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QUFlLEVBQUU7OEJBQ0csVUFBVTsrREFBZTtBQUdyQztJQURSLGVBQWUsRUFBRTs4QkFDQyxVQUFVOzZEQUF3QjtpRkF0RDFDLDRCQUE0QjtjQXRCeEMsU0FBUzsyQkFDRSwyQkFBMkIsdUJBR2hCLEtBQUssY0FDZCxJQUFJLFdBQ1A7b0JBQ1AsV0FBVztvQkFDWCxJQUFJO29CQUNKLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixTQUFTO29CQUNULGdCQUFnQjtvQkFDaEIsNEJBQTRCO29CQUM1QixVQUFVO29CQUNWLGFBQWE7aUJBQ2QsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07MEhBb0IvQyxhQUFhO2tCQURaLFNBQVM7bUJBQUMsZUFBZTtZQUkxQixVQUFVO2tCQURULEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTix1QkFBdUI7a0JBRHRCLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTixZQUFZO2tCQURYLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTixxQkFBcUI7a0JBRHBCLEtBQUs7WUFJTixNQUFNO2tCQURMLEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJRyxTQUFTLE1BR1QsT0FBTyxNQUdoQixPQUFPO2tCQUROLEtBQUs7O2tGQXhESyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2RlRWRpdG9yTW9kdWxlLFxuICBMYW5ndWFnZVNjaGVtYVNlcnZpY2UsXG4gIE1vbmFjb0xhbmd1YWdlU2VydmljZSxcbn0gZnJvbSAnQGFsYXVkYS9jb2RlLWVkaXRvcic7XG5pbXBvcnQge1xuICBDQVJEX01PRFVMRSxcbiAgQ0hFQ0tCT1hfTU9EVUxFLFxuICBCdXR0b25Nb2R1bGUsXG4gIEljb25Nb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGVkaXRvciB9IGZyb20gJ21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9lZGl0b3IuYXBpJztcbmltcG9ydCB7IHlhbWxEZWZhdWx0cywgc2V0RGlhZ25vc3RpY3NPcHRpb25zIH0gZnJvbSAnbW9uYWNvLXlhbWwnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxuICBtYXAsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICBzaGFyZVJlcGxheSxcbiAgdGFrZVVudGlsLFxuICBTdWJqZWN0LFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgS3ViZXJuZXRlc1NjaGVtYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2t1YmVybmV0ZXMtc2NoZW1hLnNlcnZpY2UnO1xuaW1wb3J0IHsgWWFtbFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy95YW1sLXV0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBBcnJheWFibGUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2hlbHBlcnMnO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1Jlc291cmNlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9rOHMvY29yZSc7XG5pbXBvcnQgeyBPcGVuQVBJVjNTY2hlbWFPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3NjaGVtYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3RyYW5zbGF0ZS5tb2R1bGUnO1xuaW1wb3J0IHtcbiAgdmlld0FjdGlvbnMsXG4gIHlhbWxSZWFkTWluaW1hcE9wdGlvbnMsXG4gIHlhbWxSZWFkT3B0aW9ucyxcbn0gZnJvbSAnLi4vY29kZS1lZGl0b3ItY29uZmlncyc7XG5pbXBvcnQge1xuICBmb2xkTWFuYWdlZEZpZWxkcyxcbiAgRWRpdG9ySW5zdGFuY2VQcm92aWRlcixcbn0gZnJvbSAnLi4vbWFuYWdlZC1maWVsZHMtZm9sZGVyLnV0aWwnO1xuaW1wb3J0IHsgUmVzb3VyY2VZYW1sU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3lhbWwtc2lkZWJhci9jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcmVzb3VyY2UteWFtbC1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlcy5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ0FSRF9NT0RVTEUsXG4gICAgTmdJZixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDSEVDS0JPWF9NT0RVTEUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENvZGVFZGl0b3JNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFJlc291cmNlWWFtbFNpZGViYXJDb21wb25lbnQsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VZYW1sRGlzcGxheUNvbXBvbmVudDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgRWRpdG9ySW5zdGFuY2VQcm92aWRlclxue1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgY29uY2lzZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVkdWNlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBzaG93U2lkZWJhciQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgc2hvd0RlYnVnUGFuZWwkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIG1vZGVsVXJpOiBzdHJpbmc7XG4gIHByaXZhdGUgeWFtbFNjaGVtYVNlcnZpY2U6IExhbmd1YWdlU2NoZW1hU2VydmljZTtcbiAgcHJpdmF0ZSBtb25hY29FZGl0b3I6IGVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWdpc3RlcmVkU2NoZW1hcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvZGVFZGl0b3JSZWYnKVxuICBjb2RlRWRpdG9yUmVmITogeyBlZGl0b3I6IGVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3IgfTtcblxuICBASW5wdXQoKVxuICBoYXNXcmFwcGVyID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzaG93RGVidWdJbmZvID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgY29uY2lzZUVuYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgbWFuYWdlRmllbGRBY3Rpb25FbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNpZGViYXJFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHNjaGVtYUVuYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZXhhbXBsZUVuYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgYXV0b0ZvbGRNYW5hZ2VkRmllbGRzID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdDtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZTogQXJyYXlhYmxlPFQ+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByZWFkb25seSByZXNvdXJjZSQhOiBPYnNlcnZhYmxlPEFycmF5YWJsZTxUPj47XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHJlYWRvbmx5IHNjaGVtYSQhOiBPYnNlcnZhYmxlPE9wZW5BUElWM1NjaGVtYU9iamVjdD47XG5cbiAgQElucHV0KClcbiAgbWluaW1hcCA9IHRydWU7XG5cbiAgeWFtbFJlYWRNaW5pbWFwT3B0aW9ucyA9IHlhbWxSZWFkTWluaW1hcE9wdGlvbnM7XG4gIHlhbWxSZWFkT3B0aW9ucyA9IHlhbWxSZWFkT3B0aW9ucztcblxuICBoYXNGb2xkZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICog6Ieq5Yqo6I635Y+W55qEIHNjaGVtYe+8jOW9k+ayoeacieaJi+WKqOaPkOS+myBzY2hlbWEg5pe25L2/55SoXG4gICAqL1xuICBhdXRvU2NoZW1hJCA9IHRoaXMucmVzb3VyY2UkLnBpcGUoXG4gICAgc3dpdGNoTWFwKHJlc291cmNlID0+IHtcbiAgICAgIGlmICghcmVzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdFJlc291cmNlID0gKFxuICAgICAgICBBcnJheS5pc0FycmF5KHJlc291cmNlKSA/IHJlc291cmNlWzBdIDogcmVzb3VyY2VcbiAgICAgICkgYXMgVDtcbiAgICAgIGlmICghZmlyc3RSZXNvdXJjZT8uYXBpVmVyc2lvbiB8fCAhZmlyc3RSZXNvdXJjZT8ua2luZCkge1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnNjaGVtYVNlcnZpY2UuZ2V0UmVzb3VyY2VTY2hlbWEoXG4gICAgICAgIGZpcnN0UmVzb3VyY2UuYXBpVmVyc2lvbixcbiAgICAgICAgZmlyc3RSZXNvdXJjZS5raW5kLFxuICAgICAgKTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKTtcblxuICAvKipcbiAgICog5pyA57uI5L2/55So55qEIHNjaGVtYe+8jOS8mOWFiOS9v+eUqOaJi+WKqOaPkOS+m+eahO+8jOWQpuWImeS9v+eUqOiHquWKqOiOt+WPlueahFxuICAgKi9cbiAgZmluYWxTY2hlbWEkID0gY29tYmluZUxhdGVzdChbdGhpcy5zY2hlbWEkLCB0aGlzLmF1dG9TY2hlbWEkXSkucGlwZShcbiAgICBtYXAoKFttYW51YWxTY2hlbWEsIGF1dG9TY2hlbWFdKSA9PiBtYW51YWxTY2hlbWEgfHwgYXV0b1NjaGVtYSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgeWFtbFV0aWw6IFlhbWxVdGlsU2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2NoZW1hU2VydmljZTogS3ViZXJuZXRlc1NjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb25hY29MYW5ndWFnZVNlcnZpY2U6IE1vbmFjb0xhbmd1YWdlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy55YW1sU2NoZW1hU2VydmljZSA9XG4gICAgICB0aGlzLm1vbmFjb0xhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZVNjaGVtYVNlcnZpY2UoXG4gICAgICAgIFsneWFtbCcsICd5YW1sRGVmYXVsdHMnXSxcbiAgICAgICAgeWFtbERlZmF1bHRzLFxuICAgICAgKTtcblxuICAgIC8vIOWQr+eUqCBZQU1MIOivreazleaPkOekuuWKn+iDvVxuICAgIHNldERpYWdub3N0aWNzT3B0aW9ucyh7XG4gICAgICB2YWxpZGF0ZTogdHJ1ZSxcbiAgICAgIGZvcm1hdDogdHJ1ZSxcbiAgICAgIGNvbXBsZXRpb246IHRydWUsXG4gICAgICBob3ZlcjogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIOiHquWKqOiuvue9riBzY2hlbWFcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlc291cmNlJCwgdGhpcy5maW5hbFNjaGVtYSRdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoW3Jlc291cmNlLCBzY2hlbWFdKSA9PiB7XG4gICAgICAgIGlmIChyZXNvdXJjZSAmJiBzY2hlbWEpIHtcbiAgICAgICAgICBjb25zdCBmaXJzdFJlc291cmNlID0gQXJyYXkuaXNBcnJheShyZXNvdXJjZSlcbiAgICAgICAgICAgID8gcmVzb3VyY2VbMF1cbiAgICAgICAgICAgIDogcmVzb3VyY2U7XG4gICAgICAgICAgaWYgKGZpcnN0UmVzb3VyY2UgJiYgIUFycmF5LmlzQXJyYXkoZmlyc3RSZXNvdXJjZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0WWFtbFNjaGVtYShmaXJzdFJlc291cmNlIGFzIFQsIHNjaGVtYSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZmluYWxTY2hlbWEkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHlhbWwkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5yZXNvdXJjZSQsXG4gICAgdGhpcy5jb25jaXNlJCQsXG4gICAgdGhpcy5yZWR1Y2UkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3Jlc291cmNlLCBjb25jaXNlLCByZWR1Y2VdKSA9PlxuICAgICAgdGhpcy55YW1sVXRpbC5nZW5lcmF0ZUZpbHRlcmVkWWFtbFJlc291cmNlKHJlc291cmNlLCBjb25jaXNlLCByZWR1Y2UpLFxuICAgICksXG4gICk7XG5cbiAgZ2V0IGVkaXRvck9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWluaW1hcCA/IHlhbWxSZWFkTWluaW1hcE9wdGlvbnMgOiB5YW1sUmVhZE9wdGlvbnM7XG4gIH1cblxuICB2aWV3QWN0aW9ucyA9IHZpZXdBY3Rpb25zO1xuXG4gIGNvbmNpc2VDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmNpc2UkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGViYXIoKSB7XG4gICAgdGhpcy5zaG93U2lkZWJhciQkLm5leHQoIXRoaXMuc2hvd1NpZGViYXIkJC52YWx1ZSk7XG4gIH1cblxuICB0b2dnbGVEZWJ1Z0luZm8oKSB7XG4gICAgdGhpcy5zaG93RGVidWdQYW5lbCQkLm5leHQoIXRoaXMuc2hvd0RlYnVnUGFuZWwkJC52YWx1ZSk7XG4gIH1cblxuICBnZXRDdXJyZW50UmVzb3VyY2UoKTogVCB8IG51bGwge1xuICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5yZXNvdXJjZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNvdXJjZSkpIHtcbiAgICAgIHJldHVybiByZXNvdXJjZS5sZW5ndGggPiAwID8gcmVzb3VyY2VbMF0gOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gKHJlc291cmNlIGFzIFQpIHx8IG51bGw7XG4gIH1cblxuICBnZXRDdXJyZW50U2NoZW1hKCk6IE9wZW5BUElWM1NjaGVtYU9iamVjdCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYSB8fCBudWxsO1xuICB9XG5cbiAgc2VsZkZvbGRNYW5hZ2VkRmllbGRzKCkge1xuICAgIGlmICh0aGlzLmhhc0ZvbGRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhhc0ZvbGRlZCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmdldEVkaXRvckluc3RhbmNlKCk7XG4gICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgIGZvbGRNYW5hZ2VkRmllbGRzKGVkaXRvcik7XG4gICAgICB9XG4gICAgfSwgNTApO1xuICB9XG5cbiAgLyoqXG4gICAqIOiuvue9riBZQU1MIHNjaGVtYSDku6Xmj5DkvpsgaG92ZXIg5o+Q56S65ZKM6Ieq5Yqo5a6M5oiQXG4gICAqL1xuICBzZXRZYW1sU2NoZW1hKHJlc291cmNlOiBULCBzY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdCkge1xuICAgIGlmICghc2NoZW1hKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8g5L2/55SoIGFwaVZlcnNpb24gKyBraW5kIOe7hOWQiOS9nOS4uuagh+ivhlxuICAgIGNvbnN0IGFwaVZlcnNpb24gPSByZXNvdXJjZT8uYXBpVmVyc2lvbiB8fCAndW5rbm93bic7XG4gICAgY29uc3Qga2luZCA9IHJlc291cmNlPy5raW5kIHx8ICd1bmtub3duJztcbiAgICBjb25zdCBzY2hlbWFLZXkgPSBgJHthcGlWZXJzaW9ufS8ke2tpbmR9YDtcblxuICAgIHRoaXMubW9kZWxVcmkgPSBgJHtzY2hlbWFLZXl9LnlhbWxgO1xuXG4gICAgdGhpcy5zZWxmRm9sZE1hbmFnZWRGaWVsZHMoKTtcblxuICAgIC8vIOajgOafpeaYr+WQpuW3sue7j+azqOWGjOi/h+ebuOWQjOeahCBzY2hlbWHvvIzpgb/lhY3ph43lpI3ms6jlhoxcbiAgICBpZiAodGhpcy5yZWdpc3RlcmVkU2NoZW1hcy5oYXMoc2NoZW1hS2V5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIOiOt+WPluWujOaVtOeahCBkZWZpbml0aW9ucyDku6XmlK/mjIEgJHJlZiDlvJXnlKhcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IHRoaXMuc2NoZW1hU2VydmljZS5kZWZpbml0aW9ucyB8fCB7fTtcblxuICAgIC8vIOWIm+W7uuWMheWQq+WujOaVtCBkZWZpbml0aW9ucyDnmoQgc2NoZW1hIOWvueixoVxuICAgIGNvbnN0IGZ1bGxTY2hlbWEgPSB7XG4gICAgICAuLi5zY2hlbWEsXG4gICAgICBkZWZpbml0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8g56Gu5L+dc2NoZW1h6KKr5q2j56Gu5rOo5YaM77yM5bm25ZCv55So6Ieq5Yqo5a6M5oiQ5Yqf6IO9XG4gICAgdGhpcy55YW1sU2NoZW1hU2VydmljZS5hZGRTY2hlbWEoe1xuICAgICAgdXJpOiBgazhzOi8vJHtzY2hlbWFLZXl9LnNjaGVtYS5qc29uYCxcbiAgICAgIGZpbGVNYXRjaDogW3RoaXMubW9kZWxVcmldLFxuICAgICAgc2NoZW1hOiBmdWxsU2NoZW1hLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlcmVkU2NoZW1hcy5hZGQoc2NoZW1hS2V5KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvRm9sZE1hbmFnZWRGaWVsZHMgJiYgdGhpcy5zY2hlbWFTZXJ2aWNlLmRlZmluaXRpb25zKSB7XG4gICAgICB0aGlzLnNlbGZGb2xkTWFuYWdlZEZpZWxkcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5YgTW9uYWNvIEVkaXRvciDlrp7kvotcbiAgICovXG4gIGdldEVkaXRvckluc3RhbmNlKCk6IGVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3IgfCBudWxsIHtcbiAgICBpZiAodGhpcy5jb2RlRWRpdG9yUmVmICYmICF0aGlzLm1vbmFjb0VkaXRvcikge1xuICAgICAgLy8g5bCd6K+V5LuOIFZpZXdDaGlsZCDojrflj5bnvJbovpHlmajlrp7kvotcbiAgICAgIGNvbnN0IGVkaXRvckNvbXBvbmVudCA9IHRoaXMuY29kZUVkaXRvclJlZjtcbiAgICAgIGlmIChlZGl0b3JDb21wb25lbnQuZWRpdG9yKSB7XG4gICAgICAgIHRoaXMubW9uYWNvRWRpdG9yID0gZWRpdG9yQ29tcG9uZW50LmVkaXRvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubW9uYWNvRWRpdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIOiHquWKqOaKmOWPoCBtYW5hZ2VkRmllbGRzIOWtl+autVxuICAgKi9cbiAgZm9sZE1hbmFnZWRGaWVsZHMoKTogdm9pZCB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5nZXRFZGl0b3JJbnN0YW5jZSgpO1xuICAgIGlmIChlZGl0b3IpIHtcbiAgICAgIGZvbGRNYW5hZ2VkRmllbGRzKGVkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMubW9uYWNvRWRpdG9yID0gbnVsbDtcbiAgfVxufVxuIiwiPGF1aS1jYXJkICpuZ0lmPVwiaGFzV3JhcHBlcjsgZWxzZSBjb250ZW50XCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCIgLz5cbjwvYXVpLWNhcmQ+XG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXZcbiAgICBjbGFzcz1cInlhbWwtZGlzcGxheS1jb250YWluZXJcIlxuICAgIFtjbGFzcy53aXRoLXNpZGViYXJdPVwic2hvd1NpZGViYXIkJCB8IGFzeW5jXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ5YW1sLWVkaXRvci1zZWN0aW9uXCI+XG4gICAgICA8YXVpLWNvZGUtZWRpdG9yXG4gICAgICAgICNjb2RlRWRpdG9yUmVmXG4gICAgICAgIG5hbWU9XCJ5YW1sXCJcbiAgICAgICAgW25nTW9kZWxdPVwieWFtbCQgfCBhc3luY1wiXG4gICAgICAgIFtvcHRpb25zXT1cImVkaXRvck9wdGlvbnNcIlxuICAgICAgICBbYWN0aW9uc0NvbmZpZ109XCJ2aWV3QWN0aW9uc1wiXG4gICAgICAgIFttb2RlbFVyaV09XCJtb2RlbFVyaVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgYXVpQ29kZUVkaXRvclRvb2xiYXJMZWZ0PlxuICAgICAgICAgIDxhdWktY2hlY2tib3hcbiAgICAgICAgICAgICpuZ0lmPVwiY29uY2lzZUVuYWJsZVwiXG4gICAgICAgICAgICBjbGFzcz1cImF1aS1jb2RlLWVkaXRvci10b29sYmFyX19jb250cm9sLWJ1dHRvblwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJjb25jaXNlJCQgfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjb25jaXNlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdwcmV2aWV3X2NvbmNpc2VfeWFtbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2F1aS1jaGVja2JveD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgYXVpQ29kZUVkaXRvclRvb2xiYXJSaWdodFNpZGU+XG4gICAgICAgICAgPCEtLSBTY2hlbWEg5oyJ6ZKu77ya5b2T5ZCv55So5L6n6L655qCP5pe25pi+56S6IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGF1aUJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJzaWRlYmFyRW5hYmxlXCJcbiAgICAgICAgICAgIFtoaWRkZW5dPVwiISFjb2RlRWRpdG9yUmVmLmZ1bGxzY3JlZW5EaWFsb2dcIlxuICAgICAgICAgICAgY2xhc3M9XCJhdWktY29kZS1lZGl0b3ItdG9vbGJhcl9fY29udHJvbC1idXR0b25cIlxuICAgICAgICAgICAgW3R5cGVdPVwiKHNob3dTaWRlYmFyJCQgfCBhc3luYykgPyAncHJpbWFyeScgOiAndGV4dCdcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEoZmluYWxTY2hlbWEkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2lkZWJhcigpXCJcbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAoKHNob3dTaWRlYmFyJCQgfCBhc3luYykgPyAnaGlkZV9zaWRlYmFyJyA6ICd2aWV3X3NpZGViYXInKVxuICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICBbaWNvbl09XCJcbiAgICAgICAgICAgICAgICAoc2hvd1NpZGViYXIkJCB8IGFzeW5jKVxuICAgICAgICAgICAgICAgICAgPyAncHJvZDpleHBhbmRfc2lkZWJhcidcbiAgICAgICAgICAgICAgICAgIDogJ3Byb2Q6Y29sbGFwc2Vfc2lkZWJhcidcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXVpLWNvZGUtZWRpdG9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ5YW1sLXNpZGViYXItc2VjdGlvblwiXG4gICAgICAqbmdJZj1cInNob3dTaWRlYmFyJCQgfCBhc3luY1wiXG4gICAgPlxuICAgICAgPGFjbC1yZXNvdXJjZS15YW1sLXNpZGViYXJcbiAgICAgICAgW3Jlc291cmNlXT1cImdldEN1cnJlbnRSZXNvdXJjZSgpXCJcbiAgICAgICAgW3NjaGVtYV09XCJmaW5hbFNjaGVtYSQgfCBhc3luY1wiXG4gICAgICAgIChjbG9zZSk9XCJ0b2dnbGVTaWRlYmFyKClcIlxuICAgICAgICBbc2NoZW1hRW5hYmxlXT1cInNjaGVtYUVuYWJsZVwiXG4gICAgICAgIFtleGFtcGxlRW5hYmxlXT1cImZhbHNlXCJcbiAgICAgID48L2FjbC1yZXNvdXJjZS15YW1sLXNpZGViYXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUvcmVzb3VyY2UteWFtbC1kaXNwbGF5L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3Jlc291cmNlLXlhbWwtZGlzcGxheS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLHFCQUFxQixHQUN0QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFlBQVksRUFDWixVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsR0FBRyxFQUNILG9CQUFvQixFQUNwQixFQUFFLEVBQ0YsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixlQUFlLEVBSWYsZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFDTCxXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLGVB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QVM7MkJBQ0UsMkJBQTJCLHVCQUdoQixLQUFLLGNBQ2QsSUFBSSxXQUNQO29CQUNQLFdBQVc7b0JBQ1gsSUFBSTtvQkFDSixXQUFXO29CQUNYLGVBQWU7b0JBQ2YsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLGdCQUFnQjtvQkFDaEIsU0FBUztvQkFDVCxnQkFBZ0I7b0JBQ2hCLDRCQUE0QjtvQkFDNUIsVUFBVTtvQkFDVixhQUFhO2lCQUNkLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzBIQXVCL0MsYUFBYTtrQkFEWixTQUFTO21CQUFDLGVBQWU7WUFNMUIsVUFBVTtrQkFEVCxLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4sdUJBQXVCO2tCQUR0QixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4scUJBQXFCO2tCQURwQixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sUUFBUTtrQkFEUCxLQUFLO1lBSUcsU0FBUyxNQUdULE9BQU8sTUFHaEIsT0FBTztrQkFETixLQUFLOztrRkE3REssNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29kZUVkaXRvck1vZHVsZSxcbiAgTGFuZ3VhZ2VTY2hlbWFTZXJ2aWNlLFxuICBNb25hY29MYW5ndWFnZVNlcnZpY2UsXG59IGZyb20gJ0BhbGF1ZGEvY29kZS1lZGl0b3InO1xuaW1wb3J0IHtcbiAgQ0FSRF9NT0RVTEUsXG4gIENIRUNLQk9YX01PRFVMRSxcbiAgQnV0dG9uTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBUb29sdGlwTW9kdWxlLFxufSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBBZnRlclZpZXdJbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB5YW1sRGVmYXVsdHMsIHNldERpYWdub3N0aWNzT3B0aW9ucyB9IGZyb20gJ21vbmFjby15YW1sJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgT2JzZXJ2YWJsZSxcbiAgbWFwLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2VVbnRpbCxcbiAgU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIEt1YmVybmV0ZXNTY2hlbWFTZXJ2aWNlLFxuICBZYW1sVXRpbFNlcnZpY2UsXG4gIEFycmF5YWJsZSxcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBPcGVuQVBJVjNTY2hlbWFPYmplY3QsXG4gIE9ic2VydmFibGVJbnB1dCxcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRSQU5TTEFURV9NT0RVTEUgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICB2aWV3QWN0aW9ucyxcbiAgeWFtbFJlYWRNaW5pbWFwT3B0aW9ucyxcbiAgeWFtbFJlYWRPcHRpb25zLFxufSBmcm9tICcuLi9jb2RlLWVkaXRvci1jb25maWdzJztcbmltcG9ydCB7XG4gIGZvbGRNYW5hZ2VkRmllbGRzLFxuICBFZGl0b3JJbnN0YW5jZVByb3ZpZGVyLFxufSBmcm9tICcuLi9tYW5hZ2VkLWZpZWxkcy1mb2xkZXIudXRpbCc7XG5pbXBvcnQgeyBSZXNvdXJjZVlhbWxTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4veWFtbC1zaWRlYmFyL2NvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1yZXNvdXJjZS15YW1sLWRpc3BsYXknLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGVzLnNjc3MnXSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDQVJEX01PRFVMRSxcbiAgICBOZ0lmLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENIRUNLQk9YX01PRFVMRSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgQ29kZUVkaXRvck1vZHVsZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICAgIEFzeW5jUGlwZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFJlc291cmNlWWFtbFNpZGViYXJDb21wb25lbnQsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VZYW1sRGlzcGxheUNvbXBvbmVudDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgRWRpdG9ySW5zdGFuY2VQcm92aWRlclxue1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgY29uY2lzZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVkdWNlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBzaG93U2lkZWJhciQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgc2hvd0RlYnVnUGFuZWwkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIG1vZGVsVXJpOiBzdHJpbmc7XG4gIHByaXZhdGUgeWFtbFNjaGVtYVNlcnZpY2U6IExhbmd1YWdlU2NoZW1hU2VydmljZTtcbiAgcHJpdmF0ZSBtb25hY29FZGl0b3I6XG4gICAgfCBpbXBvcnQoJ21vbmFjby1lZGl0b3IvZXNtL3ZzL2VkaXRvci9lZGl0b3IuYXBpJykuZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvclxuICAgIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWdpc3RlcmVkU2NoZW1hcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvZGVFZGl0b3JSZWYnKVxuICBjb2RlRWRpdG9yUmVmIToge1xuICAgIGVkaXRvcjogaW1wb3J0KCdtb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvZWRpdG9yLmFwaScpLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3I7XG4gIH07XG5cbiAgQElucHV0KClcbiAgaGFzV3JhcHBlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2hvd0RlYnVnSW5mbyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmNpc2VFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIG1hbmFnZUZpZWxkQWN0aW9uRW5hYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzaWRlYmFyRW5hYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBzY2hlbWFFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGV4YW1wbGVFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9Gb2xkTWFuYWdlZEZpZWxkcyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2NoZW1hOiBPcGVuQVBJVjNTY2hlbWFPYmplY3Q7XG5cbiAgQElucHV0KClcbiAgcmVzb3VyY2U6IEFycmF5YWJsZTxUPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmVhZG9ubHkgcmVzb3VyY2UkITogT2JzZXJ2YWJsZTxBcnJheWFibGU8VD4+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByZWFkb25seSBzY2hlbWEkITogT2JzZXJ2YWJsZTxPcGVuQVBJVjNTY2hlbWFPYmplY3Q+O1xuXG4gIEBJbnB1dCgpXG4gIG1pbmltYXAgPSB0cnVlO1xuXG4gIHlhbWxSZWFkTWluaW1hcE9wdGlvbnMgPSB5YW1sUmVhZE1pbmltYXBPcHRpb25zO1xuICB5YW1sUmVhZE9wdGlvbnMgPSB5YW1sUmVhZE9wdGlvbnM7XG5cbiAgaGFzRm9sZGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIOiHquWKqOiOt+WPlueahCBzY2hlbWHvvIzlvZPmsqHmnInmiYvliqjmj5Dkvpsgc2NoZW1hIOaXtuS9v+eUqFxuICAgKi9cbiAgYXV0b1NjaGVtYSQgPSB0aGlzLnJlc291cmNlJC5waXBlKFxuICAgIHN3aXRjaE1hcChyZXNvdXJjZSA9PiB7XG4gICAgICBpZiAoIXJlc291cmNlKSB7XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyc3RSZXNvdXJjZSA9IChcbiAgICAgICAgQXJyYXkuaXNBcnJheShyZXNvdXJjZSkgPyByZXNvdXJjZVswXSA6IHJlc291cmNlXG4gICAgICApIGFzIFQ7XG4gICAgICBpZiAoIWZpcnN0UmVzb3VyY2U/LmFwaVZlcnNpb24gfHwgIWZpcnN0UmVzb3VyY2U/LmtpbmQpIHtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5zY2hlbWFTZXJ2aWNlLmdldFJlc291cmNlU2NoZW1hKFxuICAgICAgICBmaXJzdFJlc291cmNlLmFwaVZlcnNpb24sXG4gICAgICAgIGZpcnN0UmVzb3VyY2Uua2luZCxcbiAgICAgICk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG5cbiAgLyoqXG4gICAqIOacgOe7iOS9v+eUqOeahCBzY2hlbWHvvIzkvJjlhYjkvb/nlKjmiYvliqjmj5DkvpvnmoTvvIzlkKbliJnkvb/nlKjoh6rliqjojrflj5bnmoRcbiAgICovXG4gIGZpbmFsU2NoZW1hJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2NoZW1hJCwgdGhpcy5hdXRvU2NoZW1hJF0pLnBpcGUoXG4gICAgbWFwKChbbWFudWFsU2NoZW1hLCBhdXRvU2NoZW1hXSkgPT4gbWFudWFsU2NoZW1hIHx8IGF1dG9TY2hlbWEpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHlhbWxVdGlsOiBZYW1sVXRpbFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHNjaGVtYVNlcnZpY2U6IEt1YmVybmV0ZXNTY2hlbWFTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9uYWNvTGFuZ3VhZ2VTZXJ2aWNlOiBNb25hY29MYW5ndWFnZVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMueWFtbFNjaGVtYVNlcnZpY2UgPVxuICAgICAgdGhpcy5tb25hY29MYW5ndWFnZVNlcnZpY2UuZ2V0TGFuZ3VhZ2VTY2hlbWFTZXJ2aWNlKFxuICAgICAgICBbJ3lhbWwnLCAneWFtbERlZmF1bHRzJ10sXG4gICAgICAgIHlhbWxEZWZhdWx0cyxcbiAgICAgICk7XG5cbiAgICAvLyDlkK/nlKggWUFNTCDor63ms5Xmj5DnpLrlip/og71cbiAgICBzZXREaWFnbm9zdGljc09wdGlvbnMoe1xuICAgICAgdmFsaWRhdGU6IHRydWUsXG4gICAgICBmb3JtYXQ6IHRydWUsXG4gICAgICBjb21wbGV0aW9uOiB0cnVlLFxuICAgICAgaG92ZXI6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyDoh6rliqjorr7nva4gc2NoZW1hXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZXNvdXJjZSQsIHRoaXMuZmluYWxTY2hlbWEkXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtyZXNvdXJjZSwgc2NoZW1hXSkgPT4ge1xuICAgICAgICBpZiAocmVzb3VyY2UgJiYgc2NoZW1hKSB7XG4gICAgICAgICAgY29uc3QgZmlyc3RSZXNvdXJjZSA9IEFycmF5LmlzQXJyYXkocmVzb3VyY2UpXG4gICAgICAgICAgICA/IHJlc291cmNlWzBdXG4gICAgICAgICAgICA6IHJlc291cmNlO1xuICAgICAgICAgIGlmIChmaXJzdFJlc291cmNlICYmICFBcnJheS5pc0FycmF5KGZpcnN0UmVzb3VyY2UpKSB7XG4gICAgICAgICAgICB0aGlzLnNldFlhbWxTY2hlbWEoZmlyc3RSZXNvdXJjZSBhcyBULCBzY2hlbWEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmZpbmFsU2NoZW1hJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB5YW1sJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMucmVzb3VyY2UkLFxuICAgIHRoaXMuY29uY2lzZSQkLFxuICAgIHRoaXMucmVkdWNlJCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtyZXNvdXJjZSwgY29uY2lzZSwgcmVkdWNlXSkgPT5cbiAgICAgIHRoaXMueWFtbFV0aWwuZ2VuZXJhdGVGaWx0ZXJlZFlhbWxSZXNvdXJjZShyZXNvdXJjZSwgY29uY2lzZSwgcmVkdWNlKSxcbiAgICApLFxuICApO1xuXG4gIGdldCBlZGl0b3JPcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLm1pbmltYXAgPyB5YW1sUmVhZE1pbmltYXBPcHRpb25zIDogeWFtbFJlYWRPcHRpb25zO1xuICB9XG5cbiAgdmlld0FjdGlvbnMgPSB2aWV3QWN0aW9ucztcblxuICBjb25jaXNlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb25jaXNlJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICB0b2dnbGVTaWRlYmFyKCkge1xuICAgIHRoaXMuc2hvd1NpZGViYXIkJC5uZXh0KCF0aGlzLnNob3dTaWRlYmFyJCQudmFsdWUpO1xuICB9XG5cbiAgdG9nZ2xlRGVidWdJbmZvKCkge1xuICAgIHRoaXMuc2hvd0RlYnVnUGFuZWwkJC5uZXh0KCF0aGlzLnNob3dEZWJ1Z1BhbmVsJCQudmFsdWUpO1xuICB9XG5cbiAgZ2V0Q3VycmVudFJlc291cmNlKCk6IFQgfCBudWxsIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMucmVzb3VyY2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gcmVzb3VyY2UubGVuZ3RoID4gMCA/IHJlc291cmNlWzBdIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIChyZXNvdXJjZSBhcyBUKSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0Q3VycmVudFNjaGVtYSgpOiBPcGVuQVBJVjNTY2hlbWFPYmplY3QgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWEgfHwgbnVsbDtcbiAgfVxuXG4gIHNlbGZGb2xkTWFuYWdlZEZpZWxkcygpIHtcbiAgICBpZiAodGhpcy5oYXNGb2xkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNGb2xkZWQgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWRpdG9yID0gdGhpcy5nZXRFZGl0b3JJbnN0YW5jZSgpO1xuICAgICAgaWYgKGVkaXRvcikge1xuICAgICAgICBmb2xkTWFuYWdlZEZpZWxkcyhlZGl0b3IpO1xuICAgICAgfVxuICAgIH0sIDUwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDorr7nva4gWUFNTCBzY2hlbWEg5Lul5o+Q5L6bIGhvdmVyIOaPkOekuuWSjOiHquWKqOWujOaIkFxuICAgKi9cbiAgc2V0WWFtbFNjaGVtYShyZXNvdXJjZTogVCwgc2NoZW1hOiBPcGVuQVBJVjNTY2hlbWFPYmplY3QpIHtcbiAgICBpZiAoIXNjaGVtYSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIOS9v+eUqCBhcGlWZXJzaW9uICsga2luZCDnu4TlkIjkvZzkuLrmoIfor4ZcbiAgICBjb25zdCBhcGlWZXJzaW9uID0gcmVzb3VyY2U/LmFwaVZlcnNpb24gfHwgJ3Vua25vd24nO1xuICAgIGNvbnN0IGtpbmQgPSByZXNvdXJjZT8ua2luZCB8fCAndW5rbm93bic7XG4gICAgY29uc3Qgc2NoZW1hS2V5ID0gYCR7YXBpVmVyc2lvbn0vJHtraW5kfWA7XG5cbiAgICB0aGlzLm1vZGVsVXJpID0gYCR7c2NoZW1hS2V5fS55YW1sYDtcblxuICAgIHRoaXMuc2VsZkZvbGRNYW5hZ2VkRmllbGRzKCk7XG5cbiAgICAvLyDmo4Dmn6XmmK/lkKblt7Lnu4/ms6jlhozov4fnm7jlkIznmoQgc2NoZW1h77yM6YG/5YWN6YeN5aSN5rOo5YaMXG4gICAgaWYgKHRoaXMucmVnaXN0ZXJlZFNjaGVtYXMuaGFzKHNjaGVtYUtleSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyDojrflj5blrozmlbTnmoQgZGVmaW5pdGlvbnMg5Lul5pSv5oyBICRyZWYg5byV55SoXG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPSB0aGlzLnNjaGVtYVNlcnZpY2UuZGVmaW5pdGlvbnMgfHwge307XG5cbiAgICAvLyDliJvlu7rljIXlkKvlrozmlbQgZGVmaW5pdGlvbnMg55qEIHNjaGVtYSDlr7nosaFcbiAgICBjb25zdCBmdWxsU2NoZW1hID0ge1xuICAgICAgLi4uc2NoZW1hLFxuICAgICAgZGVmaW5pdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIOehruS/nXNjaGVtYeiiq+ato+ehruazqOWGjO+8jOW5tuWQr+eUqOiHquWKqOWujOaIkOWKn+iDvVxuICAgIHRoaXMueWFtbFNjaGVtYVNlcnZpY2UuYWRkU2NoZW1hKHtcbiAgICAgIHVyaTogYGs4czovLyR7c2NoZW1hS2V5fS5zY2hlbWEuanNvbmAsXG4gICAgICBmaWxlTWF0Y2g6IFt0aGlzLm1vZGVsVXJpXSxcbiAgICAgIHNjaGVtYTogZnVsbFNjaGVtYSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVnaXN0ZXJlZFNjaGVtYXMuYWRkKHNjaGVtYUtleSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuYXV0b0ZvbGRNYW5hZ2VkRmllbGRzICYmIHRoaXMuc2NoZW1hU2VydmljZS5kZWZpbml0aW9ucykge1xuICAgICAgdGhpcy5zZWxmRm9sZE1hbmFnZWRGaWVsZHMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog6I635Y+WIE1vbmFjbyBFZGl0b3Ig5a6e5L6LXG4gICAqL1xuICBnZXRFZGl0b3JJbnN0YW5jZSgpOlxuICAgIHwgaW1wb3J0KCdtb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvZWRpdG9yLmFwaScpLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3JcbiAgICB8IG51bGwge1xuICAgIGlmICh0aGlzLmNvZGVFZGl0b3JSZWYgJiYgIXRoaXMubW9uYWNvRWRpdG9yKSB7XG4gICAgICAvLyDlsJ3or5Xku44gVmlld0NoaWxkIOiOt+WPlue8lui+keWZqOWunuS+i1xuICAgICAgY29uc3QgZWRpdG9yQ29tcG9uZW50ID0gdGhpcy5jb2RlRWRpdG9yUmVmO1xuICAgICAgaWYgKGVkaXRvckNvbXBvbmVudC5lZGl0b3IpIHtcbiAgICAgICAgdGhpcy5tb25hY29FZGl0b3IgPSBlZGl0b3JDb21wb25lbnQuZWRpdG9yO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tb25hY29FZGl0b3I7XG4gIH1cblxuICAvKipcbiAgICog6Ieq5Yqo5oqY5Y+gIG1hbmFnZWRGaWVsZHMg5a2X5q61XG4gICAqL1xuICBmb2xkTWFuYWdlZEZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmdldEVkaXRvckluc3RhbmNlKCk7XG4gICAgaWYgKGVkaXRvcikge1xuICAgICAgZm9sZE1hbmFnZWRGaWVsZHMoZWRpdG9yKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5tb25hY29FZGl0b3IgPSBudWxsO1xuICB9XG59XG4iLCI8YXVpLWNhcmQgKm5nSWY9XCJoYXNXcmFwcGVyOyBlbHNlIGNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuPC9hdWktY2FyZD5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPGRpdlxuICAgIGNsYXNzPVwieWFtbC1kaXNwbGF5LWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLndpdGgtc2lkZWJhcl09XCJzaG93U2lkZWJhciQkIHwgYXN5bmNcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInlhbWwtZWRpdG9yLXNlY3Rpb25cIj5cbiAgICAgIDxhdWktY29kZS1lZGl0b3JcbiAgICAgICAgI2NvZGVFZGl0b3JSZWZcbiAgICAgICAgbmFtZT1cInlhbWxcIlxuICAgICAgICBbbmdNb2RlbF09XCJ5YW1sJCB8IGFzeW5jXCJcbiAgICAgICAgW29wdGlvbnNdPVwiZWRpdG9yT3B0aW9uc1wiXG4gICAgICAgIFthY3Rpb25zQ29uZmlnXT1cInZpZXdBY3Rpb25zXCJcbiAgICAgICAgW21vZGVsVXJpXT1cIm1vZGVsVXJpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBhdWlDb2RlRWRpdG9yVG9vbGJhckxlZnQ+XG4gICAgICAgICAgPGF1aS1jaGVja2JveFxuICAgICAgICAgICAgKm5nSWY9XCJjb25jaXNlRW5hYmxlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXVpLWNvZGUtZWRpdG9yLXRvb2xiYXJfX2NvbnRyb2wtYnV0dG9uXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImNvbmNpc2UkJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbmNpc2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3ByZXZpZXdfY29uY2lzZV95YW1sJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYXVpLWNoZWNrYm94PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBhdWlDb2RlRWRpdG9yVG9vbGJhclJpZ2h0U2lkZT5cbiAgICAgICAgICA8IS0tIFNjaGVtYSDmjInpkq7vvJrlvZPlkK/nlKjkvqfovrnmoI/ml7bmmL7npLogLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cInNpZGViYXJFbmFibGVcIlxuICAgICAgICAgICAgW2hpZGRlbl09XCIhIWNvZGVFZGl0b3JSZWYuZnVsbHNjcmVlbkRpYWxvZ1wiXG4gICAgICAgICAgICBjbGFzcz1cImF1aS1jb2RlLWVkaXRvci10b29sYmFyX19jb250cm9sLWJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIShmaW5hbFNjaGVtYSQgfCBhc3luYylcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlYmFyKClcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICgoc2hvd1NpZGViYXIkJCB8IGFzeW5jKSA/ICdoaWRlX3NpZGViYXInIDogJ3ZpZXdfc2lkZWJhcicpXG4gICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgICAgIFtpY29uXT1cIlxuICAgICAgICAgICAgICAgIChzaG93U2lkZWJhciQkIHwgYXN5bmMpXG4gICAgICAgICAgICAgICAgICA/ICdwcm9kOmV4cGFuZF9zaWRlYmFyJ1xuICAgICAgICAgICAgICAgICAgOiAncHJvZDpjb2xsYXBzZV9zaWRlYmFyJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9hdWktY29kZS1lZGl0b3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInlhbWwtc2lkZWJhci1zZWN0aW9uXCJcbiAgICAgICpuZ0lmPVwic2hvd1NpZGViYXIkJCB8IGFzeW5jXCJcbiAgICA+XG4gICAgICA8YWNsLXJlc291cmNlLXlhbWwtc2lkZWJhclxuICAgICAgICBbcmVzb3VyY2VdPVwiZ2V0Q3VycmVudFJlc291cmNlKClcIlxuICAgICAgICBbc2NoZW1hXT1cImZpbmFsU2NoZW1hJCB8IGFzeW5jXCJcbiAgICAgICAgKGNsb3NlKT1cInRvZ2dsZVNpZGViYXIoKVwiXG4gICAgICAgIFtzY2hlbWFFbmFibGVdPVwic2NoZW1hRW5hYmxlXCJcbiAgICAgICAgW2V4YW1wbGVFbmFibGVdPVwiZmFsc2VcIlxuICAgICAgPjwvYWNsLXJlc291cmNlLXlhbWwtc2lkZWJhcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19