ngx-rs-ant 1.5.7 → 1.5.9

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.
@@ -1,15 +1,17 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class CamundaBpmnEditorComponent {
4
- container?: ElementRef;
5
- config?: ElementRef;
6
- modeler: any;
7
- canvas: any;
8
4
  xml: any;
9
- isShowXml: boolean;
10
- initialDiagram: string;
5
+ bpmnContainer?: ElementRef;
6
+ bpmnConfig?: ElementRef;
7
+ private modeler;
8
+ private canvas;
9
+ protected isShowXml: boolean;
10
+ private initialDiagram;
11
+ ngOnInit(): void;
11
12
  ngAfterViewInit(): void;
12
13
  showXml(): void;
14
+ saveXml(callback?: any): void;
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<CamundaBpmnEditorComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<CamundaBpmnEditorComponent, "rs-camunda-bpmn-editor", never, {}, {}, never, never, false, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<CamundaBpmnEditorComponent, "rs-camunda-bpmn-editor", never, { "xml": "xml"; }, {}, never, never, false, never>;
15
17
  }
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class DataDetailService {
4
4
  private http;
5
5
  constructor(http: HttpClient);
6
- getSectionList(tenant: any, className: any, oid: any): import("rxjs").Observable<any>;
6
+ getInstanceSections(tenant: any, className: any, oid: any): import("rxjs").Observable<any>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<DataDetailService, never>;
8
8
  static ɵprov: i0.ɵɵInjectableDeclaration<DataDetailService>;
9
9
  }
@@ -10,7 +10,7 @@ export declare class DataGridComponent implements OnInit {
10
10
  tenant?: any;
11
11
  className: any;
12
12
  view?: any;
13
- filter?: any;
13
+ filter?: Array<any> | string;
14
14
  customColumnFn?: (columns: any[]) => void;
15
15
  keyExpr: string;
16
16
  dataGridName?: string;
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class DynamicParamsComponent {
4
4
  label: any;
5
5
  showHelp: boolean;
6
+ multipleRow: boolean;
6
7
  keyPlaceholder: any;
7
8
  valuePlaceholder: any;
8
9
  params: {
@@ -15,5 +16,5 @@ export declare class DynamicParamsComponent {
15
16
  add(): void;
16
17
  delete(index: number): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicParamsComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicParamsComponent, "rs-dynamic-params", never, { "label": "label"; "showHelp": "showHelp"; "keyPlaceholder": "keyPlaceholder"; "valuePlaceholder": "valuePlaceholder"; "params": "params"; "required": "required"; "readonly": "readonly"; }, {}, ["tooltipContentTemplate"], never, false, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicParamsComponent, "rs-dynamic-params", never, { "label": "label"; "showHelp": "showHelp"; "multipleRow": "multipleRow"; "keyPlaceholder": "keyPlaceholder"; "valuePlaceholder": "valuePlaceholder"; "params": "params"; "required": "required"; "readonly": "readonly"; }, {}, ["tooltipContentTemplate"], never, false, never>;
19
20
  }
@@ -1,4 +1,4 @@
1
- import { Component, ViewChild } from '@angular/core';
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
2
  import BpmnModeler from 'camunda-bpmn-js/lib/camunda-platform/Modeler';
3
3
  import customTranslateModule from './custom/translate';
4
4
  import customUserTaskModule from './custom/user-task';
@@ -31,11 +31,16 @@ export class CamundaBpmnEditorComponent {
31
31
  '</bpmndi:BPMNDiagram>' +
32
32
  '</bpmn:definitions>';
33
33
  }
34
+ ngOnInit() {
35
+ if (!this.xml) {
36
+ this.xml = this.initialDiagram;
37
+ }
38
+ }
34
39
  ngAfterViewInit() {
35
40
  this.modeler = new BpmnModeler({
36
- container: this.container?.nativeElement,
41
+ container: this.bpmnContainer?.nativeElement,
37
42
  propertiesPanel: {
38
- parent: this.config?.nativeElement,
43
+ parent: this.bpmnConfig?.nativeElement,
39
44
  },
40
45
  keyboard: {
41
46
  bindTo: document,
@@ -53,29 +58,38 @@ export class CamundaBpmnEditorComponent {
53
58
  this.modeler._container.removeChild(logo);
54
59
  }
55
60
  this.canvas = this.modeler.get('canvas');
56
- this.modeler.importXML(this.initialDiagram).then(() => {
61
+ this.modeler.importXML(this.xml).then(() => {
57
62
  this.canvas.zoom('fit-viewport');
58
63
  });
59
64
  }
60
65
  showXml() {
61
66
  if (!this.isShowXml) {
62
- this.modeler.saveXML({ format: true }).then((response) => {
63
- this.xml = response.xml;
67
+ this.saveXml((xml) => {
68
+ this.xml = xml;
64
69
  });
65
70
  }
66
71
  this.isShowXml = !this.isShowXml;
67
72
  }
73
+ saveXml(callback) {
74
+ this.modeler.saveXML({ format: true }).then((response) => {
75
+ if (callback) {
76
+ callback(response.xml);
77
+ }
78
+ });
79
+ }
68
80
  }
69
81
  CamundaBpmnEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
- CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "config", first: true, predicate: ["config"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\n <div class=\"container\" #container></div>\n <div class=\"config\" #config></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 1040)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.CodeEditorComponent, selector: "rs-code-editor", inputs: ["code", "language", "readonly", "enableMinimap", "consoleMessage"], outputs: ["codeChange", "onContentReady"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }] });
82
+ CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", inputs: { xml: "xml" }, viewQueries: [{ propertyName: "bpmnContainer", first: true, predicate: ["bpmnContainer"], descendants: true }, { propertyName: "bpmnConfig", first: true, predicate: ["bpmnConfig"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\n <div class=\"container\" #bpmnContainer></div>\n <div class=\"config\" #bpmnConfig></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 1040)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.CodeEditorComponent, selector: "rs-code-editor", inputs: ["code", "language", "readonly", "enableMinimap", "consoleMessage"], outputs: ["codeChange", "onContentReady"] }, { kind: "component", type: i3.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }] });
71
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, decorators: [{
72
84
  type: Component,
73
- args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\n <div class=\"container\" #container></div>\n <div class=\"config\" #config></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 1040)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"] }]
74
- }], propDecorators: { container: [{
85
+ args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\n <div class=\"container\" #bpmnContainer></div>\n <div class=\"config\" #bpmnConfig></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 1040)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"] }]
86
+ }], propDecorators: { xml: [{
87
+ type: Input
88
+ }], bpmnContainer: [{
75
89
  type: ViewChild,
76
- args: ['container']
77
- }], config: [{
90
+ args: ['bpmnContainer']
91
+ }], bpmnConfig: [{
78
92
  type: ViewChild,
79
- args: ['config']
93
+ args: ['bpmnConfig']
80
94
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2NhbXVuZGEtYnBtbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sV0FBVyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZFLE9BQU8scUJBQXFCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxvQkFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLHVCQUF1QixNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8scUJBQXFCLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTywyQkFBMkIsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFPMUQsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQVdFLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsbUJBQWMsR0FDWix3Q0FBd0M7WUFDeEMsMEVBQTBFO1lBQzFFLDJEQUEyRDtZQUMzRCwwREFBMEQ7WUFDMUQsb0RBQW9EO1lBQ3BELCtDQUErQztZQUMvQyxxQkFBcUI7WUFDckIsbURBQW1EO1lBQ25ELHNDQUFzQztZQUN0QyxpQkFBaUI7WUFDakIseUNBQXlDO1lBQ3pDLDZEQUE2RDtZQUM3RCw0RUFBNEU7WUFDNUUsNkRBQTZEO1lBQzdELHFCQUFxQjtZQUNyQixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLHFCQUFxQixDQUFDO0tBcUN6QjtJQW5DQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhO1lBQ3hDLGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhO2FBQ25DO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxRQUFRO2FBQ2pCO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLHFCQUFxQjtnQkFDckIsb0JBQW9CO2dCQUNwQix1QkFBdUI7Z0JBQ3ZCLHFCQUFxQjtnQkFDckIsMkJBQTJCO2FBQzVCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDMUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7O3VIQTdEVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5UENidkMsK2ZBV0E7MkZERWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFLVixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0QsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCcG1uTW9kZWxlciBmcm9tICdjYW11bmRhLWJwbW4tanMvbGliL2NhbXVuZGEtcGxhdGZvcm0vTW9kZWxlcic7XHJcbmltcG9ydCBjdXN0b21UcmFuc2xhdGVNb2R1bGUgZnJvbSAnLi9jdXN0b20vdHJhbnNsYXRlJztcclxuaW1wb3J0IGN1c3RvbVVzZXJUYXNrTW9kdWxlIGZyb20gJy4vY3VzdG9tL3VzZXItdGFzayc7XHJcbmltcG9ydCBjdXN0b21TZXJ2aWNlVGFza01vZHVsZSBmcm9tICcuL2N1c3RvbS9zZXJ2aWNlLXRhc2snO1xyXG5pbXBvcnQgY3VzdG9tSGlkZU90aGVyTW9kdWxlIGZyb20gJy4vY3VzdG9tL2hpZGUtb3RoZXInO1xyXG5pbXBvcnQgY3VzdG9tUHJvcGVydGllc1BhbmVsTW9kdWxlIGZyb20gJy4vY3VzdG9tL2NvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLWNhbXVuZGEtYnBtbi1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENhbXVuZGFCcG1uRWRpdG9yQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI/OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpZycpIGNvbmZpZz86IEVsZW1lbnRSZWY7XHJcbiAgbW9kZWxlcjogYW55O1xyXG4gIGNhbnZhczogYW55O1xyXG4gIHhtbDogYW55O1xyXG4gIGlzU2hvd1htbCA9IGZhbHNlO1xyXG4gIGluaXRpYWxEaWFncmFtID1cclxuICAgICc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiPz4nICtcclxuICAgICc8YnBtbjpkZWZpbml0aW9ucyB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiICcgK1xyXG4gICAgJ3htbG5zOmJwbW49XCJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L01PREVMXCIgJyArXHJcbiAgICAneG1sbnM6YnBtbmRpPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESVwiICcgK1xyXG4gICAgJ3htbG5zOmRjPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvRENcIiAnICtcclxuICAgICd0YXJnZXROYW1lc3BhY2U9XCJodHRwOi8vYnBtbi5pby9zY2hlbWEvYnBtblwiICcgK1xyXG4gICAgJ2lkPVwiRGVmaW5pdGlvbnNfMVwiPicgK1xyXG4gICAgJzxicG1uOnByb2Nlc3MgaWQ9XCJQcm9jZXNzXzFcIiBpc0V4ZWN1dGFibGU9XCJ0cnVlXCI+JyArXHJcbiAgICAnPGJwbW46c3RhcnRFdmVudCBpZD1cIlN0YXJ0RXZlbnRfMVwiLz4nICtcclxuICAgICc8L2JwbW46cHJvY2Vzcz4nICtcclxuICAgICc8YnBtbmRpOkJQTU5EaWFncmFtIGlkPVwiQlBNTkRpYWdyYW1fMVwiPicgK1xyXG4gICAgJzxicG1uZGk6QlBNTlBsYW5lIGlkPVwiQlBNTlBsYW5lXzFcIiBicG1uRWxlbWVudD1cIlByb2Nlc3NfMVwiPicgK1xyXG4gICAgJzxicG1uZGk6QlBNTlNoYXBlIGlkPVwiX0JQTU5TaGFwZV9TdGFydEV2ZW50XzJcIiBicG1uRWxlbWVudD1cIlN0YXJ0RXZlbnRfMVwiPicgK1xyXG4gICAgJzxkYzpCb3VuZHMgaGVpZ2h0PVwiMzYuMFwiIHdpZHRoPVwiMzYuMFwiIHg9XCIxNzMuMFwiIHk9XCIxMDIuMFwiLz4nICtcclxuICAgICc8L2JwbW5kaTpCUE1OU2hhcGU+JyArXHJcbiAgICAnPC9icG1uZGk6QlBNTlBsYW5lPicgK1xyXG4gICAgJzwvYnBtbmRpOkJQTU5EaWFncmFtPicgK1xyXG4gICAgJzwvYnBtbjpkZWZpbml0aW9ucz4nO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLm1vZGVsZXIgPSBuZXcgQnBtbk1vZGVsZXIoe1xyXG4gICAgICBjb250YWluZXI6IHRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBwcm9wZXJ0aWVzUGFuZWw6IHtcclxuICAgICAgICBwYXJlbnQ6IHRoaXMuY29uZmlnPy5uYXRpdmVFbGVtZW50LFxyXG4gICAgICB9LFxyXG4gICAgICBrZXlib2FyZDoge1xyXG4gICAgICAgIGJpbmRUbzogZG9jdW1lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGFkZGl0aW9uYWxNb2R1bGVzOiBbXHJcbiAgICAgICAgY3VzdG9tVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbVVzZXJUYXNrTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbVNlcnZpY2VUYXNrTW9kdWxlLFxyXG4gICAgICAgIGN1c3RvbUhpZGVPdGhlck1vZHVsZSxcclxuICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzUGFuZWxNb2R1bGVcclxuICAgICAgXVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb2dvID0gdGhpcy5tb2RlbGVyLl9jb250YWluZXIucXVlcnlTZWxlY3RvcignLmJqcy1wb3dlcmVkLWJ5Jyk7XHJcbiAgICBpZiAobG9nbykge1xyXG4gICAgICB0aGlzLm1vZGVsZXIuX2NvbnRhaW5lci5yZW1vdmVDaGlsZChsb2dvKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jYW52YXMgPSB0aGlzLm1vZGVsZXIuZ2V0KCdjYW52YXMnKTtcclxuICAgIHRoaXMubW9kZWxlci5pbXBvcnRYTUwodGhpcy5pbml0aWFsRGlhZ3JhbSkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2FudmFzLnpvb20oJ2ZpdC12aWV3cG9ydCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93WG1sKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzU2hvd1htbCkge1xyXG4gICAgICB0aGlzLm1vZGVsZXIuc2F2ZVhNTCh7Zm9ybWF0OiB0cnVlfSkudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMueG1sID0gcmVzcG9uc2UueG1sO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNTaG93WG1sID0gIXRoaXMuaXNTaG93WG1sO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgI2NvbnRhaW5lcj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbmZpZ1wiICNjb25maWc+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ4bWwtdmlld2VyXCIgW25nU3R5bGVdPVwie2Rpc3BsYXk6IGlzU2hvd1htbCA/ICdmbGV4JyA6ICdub25lJ31cIj5cbiAgICA8cnMtY29kZS1lZGl0b3IgbGFuZ3VhZ2U9XCJ4bWxcIiBbY29kZV09XCJ4bWxcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtlbmFibGVNaW5pbWFwXT1cInRydWVcIj48L3JzLWNvZGUtZWRpdG9yPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICA8ZHgtYnV0dG9uIFt0eXBlXT1cImlzU2hvd1htbCA/ICdkZWZhdWx0JyA6ICdub3JtYWwnXCIgdGV4dD1cIlhNTFwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgKG9uQ2xpY2spPVwic2hvd1htbCgpXCI+PC9keC1idXR0b24+XG48L2Rpdj5cbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2NhbXVuZGEtYnBtbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLHFCQUFxQixNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sb0JBQW9CLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyx1QkFBdUIsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLHFCQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sMkJBQTJCLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBTzFELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFZWSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQ3BCLHdDQUF3QztZQUN4QywwRUFBMEU7WUFDMUUsMkRBQTJEO1lBQzNELDBEQUEwRDtZQUMxRCxvREFBb0Q7WUFDcEQsK0NBQStDO1lBQy9DLHFCQUFxQjtZQUNyQixtREFBbUQ7WUFDbkQsc0NBQXNDO1lBQ3RDLGlCQUFpQjtZQUNqQix5Q0FBeUM7WUFDekMsNkRBQTZEO1lBQzdELDRFQUE0RTtZQUM1RSw2REFBNkQ7WUFDN0QscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIscUJBQXFCLENBQUM7S0FtRHpCO0lBakRDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhO1lBQzVDLGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhO2FBQ3ZDO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxRQUFRO2FBQ2pCO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLHFCQUFxQjtnQkFDckIsb0JBQW9CO2dCQUNwQix1QkFBdUI7Z0JBQ3ZCLHFCQUFxQjtnQkFDckIsMkJBQTJCO2FBQzVCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUMxRCxJQUFJLFFBQVEsRUFBRTtnQkFDWixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt1SEE1RVUsMEJBQTBCOzJHQUExQiwwQkFBMEIsaVNDYnZDLHVnQkFXQTsyRkRFYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU1sQyxHQUFHO3NCQURGLEtBQUs7Z0JBRXNCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDRCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCcG1uTW9kZWxlciBmcm9tICdjYW11bmRhLWJwbW4tanMvbGliL2NhbXVuZGEtcGxhdGZvcm0vTW9kZWxlcic7XHJcbmltcG9ydCBjdXN0b21UcmFuc2xhdGVNb2R1bGUgZnJvbSAnLi9jdXN0b20vdHJhbnNsYXRlJztcclxuaW1wb3J0IGN1c3RvbVVzZXJUYXNrTW9kdWxlIGZyb20gJy4vY3VzdG9tL3VzZXItdGFzayc7XHJcbmltcG9ydCBjdXN0b21TZXJ2aWNlVGFza01vZHVsZSBmcm9tICcuL2N1c3RvbS9zZXJ2aWNlLXRhc2snO1xyXG5pbXBvcnQgY3VzdG9tSGlkZU90aGVyTW9kdWxlIGZyb20gJy4vY3VzdG9tL2hpZGUtb3RoZXInO1xyXG5pbXBvcnQgY3VzdG9tUHJvcGVydGllc1BhbmVsTW9kdWxlIGZyb20gJy4vY3VzdG9tL2NvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLWNhbXVuZGEtYnBtbi1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENhbXVuZGFCcG1uRWRpdG9yQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHhtbDogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2JwbW5Db250YWluZXInKSBicG1uQ29udGFpbmVyPzogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdicG1uQ29uZmlnJykgYnBtbkNvbmZpZz86IEVsZW1lbnRSZWY7XHJcbiAgcHJpdmF0ZSBtb2RlbGVyOiBhbnk7XHJcbiAgcHJpdmF0ZSBjYW52YXM6IGFueTtcclxuICBwcm90ZWN0ZWQgaXNTaG93WG1sID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpbml0aWFsRGlhZ3JhbSA9XHJcbiAgICAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+JyArXHJcbiAgICAnPGJwbW46ZGVmaW5pdGlvbnMgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIiAnICtcclxuICAgICd4bWxuczpicG1uPVwiaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTFwiICcgK1xyXG4gICAgJ3htbG5zOmJwbW5kaT1cImh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvRElcIiAnICtcclxuICAgICd4bWxuczpkYz1cImh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDXCIgJyArXHJcbiAgICAndGFyZ2V0TmFtZXNwYWNlPVwiaHR0cDovL2JwbW4uaW8vc2NoZW1hL2JwbW5cIiAnICtcclxuICAgICdpZD1cIkRlZmluaXRpb25zXzFcIj4nICtcclxuICAgICc8YnBtbjpwcm9jZXNzIGlkPVwiUHJvY2Vzc18xXCIgaXNFeGVjdXRhYmxlPVwidHJ1ZVwiPicgK1xyXG4gICAgJzxicG1uOnN0YXJ0RXZlbnQgaWQ9XCJTdGFydEV2ZW50XzFcIi8+JyArXHJcbiAgICAnPC9icG1uOnByb2Nlc3M+JyArXHJcbiAgICAnPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD1cIkJQTU5EaWFncmFtXzFcIj4nICtcclxuICAgICc8YnBtbmRpOkJQTU5QbGFuZSBpZD1cIkJQTU5QbGFuZV8xXCIgYnBtbkVsZW1lbnQ9XCJQcm9jZXNzXzFcIj4nICtcclxuICAgICc8YnBtbmRpOkJQTU5TaGFwZSBpZD1cIl9CUE1OU2hhcGVfU3RhcnRFdmVudF8yXCIgYnBtbkVsZW1lbnQ9XCJTdGFydEV2ZW50XzFcIj4nICtcclxuICAgICc8ZGM6Qm91bmRzIGhlaWdodD1cIjM2LjBcIiB3aWR0aD1cIjM2LjBcIiB4PVwiMTczLjBcIiB5PVwiMTAyLjBcIi8+JyArXHJcbiAgICAnPC9icG1uZGk6QlBNTlNoYXBlPicgK1xyXG4gICAgJzwvYnBtbmRpOkJQTU5QbGFuZT4nICtcclxuICAgICc8L2JwbW5kaTpCUE1ORGlhZ3JhbT4nICtcclxuICAgICc8L2JwbW46ZGVmaW5pdGlvbnM+JztcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMueG1sKSB7XHJcbiAgICAgIHRoaXMueG1sID0gdGhpcy5pbml0aWFsRGlhZ3JhbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubW9kZWxlciA9IG5ldyBCcG1uTW9kZWxlcih7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5icG1uQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBwcm9wZXJ0aWVzUGFuZWw6IHtcclxuICAgICAgICBwYXJlbnQ6IHRoaXMuYnBtbkNvbmZpZz8ubmF0aXZlRWxlbWVudCxcclxuICAgICAgfSxcclxuICAgICAga2V5Ym9hcmQ6IHtcclxuICAgICAgICBiaW5kVG86IGRvY3VtZW50LFxyXG4gICAgICB9LFxyXG4gICAgICBhZGRpdGlvbmFsTW9kdWxlczogW1xyXG4gICAgICAgIGN1c3RvbVRyYW5zbGF0ZU1vZHVsZSxcclxuICAgICAgICBjdXN0b21Vc2VyVGFza01vZHVsZSxcclxuICAgICAgICBjdXN0b21TZXJ2aWNlVGFza01vZHVsZSxcclxuICAgICAgICBjdXN0b21IaWRlT3RoZXJNb2R1bGUsXHJcbiAgICAgICAgY3VzdG9tUHJvcGVydGllc1BhbmVsTW9kdWxlXHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG9nbyA9IHRoaXMubW9kZWxlci5fY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5ianMtcG93ZXJlZC1ieScpO1xyXG4gICAgaWYgKGxvZ28pIHtcclxuICAgICAgdGhpcy5tb2RlbGVyLl9jb250YWluZXIucmVtb3ZlQ2hpbGQobG9nbyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbnZhcyA9IHRoaXMubW9kZWxlci5nZXQoJ2NhbnZhcycpO1xyXG4gICAgdGhpcy5tb2RlbGVyLmltcG9ydFhNTCh0aGlzLnhtbCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2FudmFzLnpvb20oJ2ZpdC12aWV3cG9ydCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93WG1sKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzU2hvd1htbCkge1xyXG4gICAgICB0aGlzLnNhdmVYbWwoKHhtbDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy54bWwgPSB4bWw7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU2hvd1htbCA9ICF0aGlzLmlzU2hvd1htbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlWG1sKGNhbGxiYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLm1vZGVsZXIuc2F2ZVhNTCh7Zm9ybWF0OiB0cnVlfSkudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICBjYWxsYmFjayhyZXNwb25zZS54bWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICNicG1uQ29udGFpbmVyPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29uZmlnXCIgI2JwbW5Db25maWc+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ4bWwtdmlld2VyXCIgW25nU3R5bGVdPVwie2Rpc3BsYXk6IGlzU2hvd1htbCA/ICdmbGV4JyA6ICdub25lJ31cIj5cbiAgICA8cnMtY29kZS1lZGl0b3IgbGFuZ3VhZ2U9XCJ4bWxcIiBbY29kZV09XCJ4bWxcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtlbmFibGVNaW5pbWFwXT1cInRydWVcIj48L3JzLWNvZGUtZWRpdG9yPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICA8ZHgtYnV0dG9uIFt0eXBlXT1cImlzU2hvd1htbCA/ICdkZWZhdWx0JyA6ICdub3JtYWwnXCIgdGV4dD1cIlhNTFwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgKG9uQ2xpY2spPVwic2hvd1htbCgpXCI+PC9keC1idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -17,7 +17,7 @@ export class DataDetailComponent {
17
17
  }
18
18
  ngOnInit() {
19
19
  this.loading = true;
20
- this.service.getSectionList(this.tenant, this.className, this.oid).subscribe(response => {
20
+ this.service.getInstanceSections(this.tenant, this.className, this.oid).subscribe(response => {
21
21
  window.coast.tabManager.setTitle.next({
22
22
  id: 'detail:' + this.tenant + '_' + this.className + '_' + this.oid,
23
23
  title: response.data.title
@@ -28,9 +28,9 @@ export class DataDetailComponent {
28
28
  }
29
29
  }
30
30
  DataDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.DataDetailService }], target: i0.ɵɵFactoryTarget.Component });
31
- DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", providers: [DataDetailService], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{ section.name }}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\" [params]=\"params\"\n [tabViewContainerRef]=\"tabViewContainerRef\" [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DxAccordionComponent, selector: "dx-accordion", inputs: ["accessKey", "activeStateEnabled", "animationDuration", "collapsible", "dataSource", "deferRendering", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "itemTitleTemplate", "keyExpr", "multiple", "noDataText", "repaintChangesOnly", "rtlEnabled", "selectedIndex", "selectedItem", "selectedItemKeys", "selectedItems", "tabIndex", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onItemTitleClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationDurationChange", "collapsibleChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "itemTitleTemplateChange", "keyExprChange", "multipleChange", "noDataTextChange", "repaintChangesOnlyChange", "rtlEnabledChange", "selectedIndexChange", "selectedItemChange", "selectedItemKeysChange", "selectedItemsChange", "tabIndexChange", "visibleChange", "widthChange"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.FormComponent, selector: "rs-form", inputs: ["tenant", "className", "oid", "copyOid", "template", "extraAttrMap", "opener", "params", "tabViewContainerRef", "onlyFrontEnd", "model", "readonly"], outputs: ["onDataLoaded", "submitCallback"] }] });
31
+ DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", providers: [DataDetailService], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\" [focusStateEnabled]=\"false\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{ section.name }}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\" [params]=\"params\"\n [tabViewContainerRef]=\"tabViewContainerRef\" [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DxAccordionComponent, selector: "dx-accordion", inputs: ["accessKey", "activeStateEnabled", "animationDuration", "collapsible", "dataSource", "deferRendering", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "itemTitleTemplate", "keyExpr", "multiple", "noDataText", "repaintChangesOnly", "rtlEnabled", "selectedIndex", "selectedItem", "selectedItemKeys", "selectedItems", "tabIndex", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onItemTitleClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationDurationChange", "collapsibleChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "itemTitleTemplateChange", "keyExprChange", "multipleChange", "noDataTextChange", "repaintChangesOnlyChange", "rtlEnabledChange", "selectedIndexChange", "selectedItemChange", "selectedItemKeysChange", "selectedItemsChange", "tabIndexChange", "visibleChange", "widthChange"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.FormComponent, selector: "rs-form", inputs: ["tenant", "className", "oid", "copyOid", "template", "extraAttrMap", "opener", "params", "tabViewContainerRef", "onlyFrontEnd", "model", "readonly"], outputs: ["onDataLoaded", "submitCallback"] }] });
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'coast-data-detail', providers: [DataDetailService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{ section.name }}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\" [params]=\"params\"\n [tabViewContainerRef]=\"tabViewContainerRef\" [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"] }]
34
+ args: [{ selector: 'coast-data-detail', providers: [DataDetailService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\" [focusStateEnabled]=\"false\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{ section.name }}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\" [params]=\"params\"\n [tabViewContainerRef]=\"tabViewContainerRef\" [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"] }]
35
35
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.DataDetailService }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1kZXRhaWwvZGF0YS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1kZXRhaWwvZGF0YS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVF4RCxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCLFlBQXNCLGdCQUFrQyxFQUFVLE9BQTBCO1FBQXRFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUg1RixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFHaEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyRixNQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUM3QyxFQUFFLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHO2dCQUNuRSxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQzNCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEF0QlUsbUJBQW1CO29HQUFuQixtQkFBbUIsNENBRm5CLENBQUMsaUJBQWlCLENBQUMsMEJDUGhDLGdrQ0FtQkE7MkZEVmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLG1CQUFtQixhQUdsQixDQUFDLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRhRGV0YWlsU2VydmljZX0gZnJvbSBcIi4vZGF0YS1kZXRhaWwuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb2FzdC1kYXRhLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0RhdGFEZXRhaWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhRGV0YWlsQ29tcG9uZW50IHtcbiAgdGVuYW50OiBhbnk7XG4gIGNsYXNzTmFtZTogYW55O1xuICBvaWQ6IGFueTtcbiAgcGFyYW1zPzogYW55O1xuICB0YWJWaWV3Q29udGFpbmVyUmVmITogVmlld0NvbnRhaW5lclJlZjtcbiAgc2VjdGlvbnM6IGFueVtdID0gW107XG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBzZXJ2aWNlOiBEYXRhRGV0YWlsU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U2VjdGlvbkxpc3QodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICh3aW5kb3cgYXMgYW55KS5jb2FzdC50YWJNYW5hZ2VyLnNldFRpdGxlLm5leHQoe1xuICAgICAgICBpZDogJ2RldGFpbDonICsgdGhpcy50ZW5hbnQgKyAnXycgKyB0aGlzLmNsYXNzTmFtZSArICdfJyArIHRoaXMub2lkLFxuICAgICAgICB0aXRsZTogcmVzcG9uc2UuZGF0YS50aXRsZVxuICAgICAgfSk7XG4gICAgICB0aGlzLnNlY3Rpb25zID0gcmVzcG9uc2UuZGF0YS5saXN0O1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwibG9hZGluZ1wiPlxuICA8ZHhvLXBvc2l0aW9uIFtvZl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiPjwvZHhvLXBvc2l0aW9uPlxuPC9keC1sb2FkLXBhbmVsPlxuPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmIHNlY3Rpb25zLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiZW1wdHlcIj5cbiAgPHNwYW4+5oKo5peg5p2D5p+l55yL6K+l5pWw5o2u5a6e5L6L5Lu75L2V5L+h5oGvPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID4gMFwiPlxuICA8ZHgtYWNjb3JkaW9uIFtjb2xsYXBzaWJsZV09XCJ0cnVlXCIgW211bHRpcGxlXT1cInRydWVcIiBbZGVmZXJSZW5kZXJpbmddPVwiZmFsc2VcIiBbZGF0YVNvdXJjZV09XCJzZWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkSXRlbXNdPVwic2VjdGlvbnNcIj5cbiAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHNlY3Rpb24gb2YgJ3RpdGxlJ1wiIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGUtbmFtZVwiPnt7IHNlY3Rpb24ubmFtZSB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgc2VjdGlvbiBvZiAnaXRlbSdcIj5cbiAgICAgIDxycy1mb3JtIFt0ZW5hbnRdPVwidGVuYW50XCIgW2NsYXNzTmFtZV09XCJjbGFzc05hbWVcIiBbb2lkXT1cIm9pZFwiIFt0ZW1wbGF0ZV09XCJzZWN0aW9uLmZvcm1UZW1wbGF0ZVwiIFtwYXJhbXNdPVwicGFyYW1zXCJcbiAgICAgICAgICAgICAgIFt0YWJWaWV3Q29udGFpbmVyUmVmXT1cInRhYlZpZXdDb250YWluZXJSZWZcIiBbcmVhZG9ubHldPVwidHJ1ZVwiPjwvcnMtZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9keC1hY2NvcmRpb24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1kZXRhaWwvZGF0YS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1kZXRhaWwvZGF0YS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVF4RCxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCLFlBQXNCLGdCQUFrQyxFQUFVLE9BQTBCO1FBQXRFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUg1RixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFHaEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFGLE1BQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQzdDLEVBQUUsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUc7Z0JBQ25FLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUs7YUFDM0IsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQXRCVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw0Q0FGbkIsQ0FBQyxpQkFBaUIsQ0FBQywwQkNQaEMsOGxDQW1CQTsyRkRWYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGFEZXRhaWxTZXJ2aWNlfSBmcm9tIFwiLi9kYXRhLWRldGFpbC5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvYXN0LWRhdGEtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRGF0YURldGFpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFEZXRhaWxDb21wb25lbnQge1xuICB0ZW5hbnQ6IGFueTtcbiAgY2xhc3NOYW1lOiBhbnk7XG4gIG9pZDogYW55O1xuICBwYXJhbXM/OiBhbnk7XG4gIHRhYlZpZXdDb250YWluZXJSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBzZWN0aW9uczogYW55W10gPSBbXTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHNlcnZpY2U6IERhdGFEZXRhaWxTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc2VydmljZS5nZXRJbnN0YW5jZVNlY3Rpb25zKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAod2luZG93IGFzIGFueSkuY29hc3QudGFiTWFuYWdlci5zZXRUaXRsZS5uZXh0KHtcbiAgICAgICAgaWQ6ICdkZXRhaWw6JyArIHRoaXMudGVuYW50ICsgJ18nICsgdGhpcy5jbGFzc05hbWUgKyAnXycgKyB0aGlzLm9pZCxcbiAgICAgICAgdGl0bGU6IHJlc3BvbnNlLmRhdGEudGl0bGVcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLmRhdGEubGlzdDtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZHgtbG9hZC1wYW5lbCBbY29udGFpbmVyXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCIgW3Nob3dQYW5lXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cbiAgPGR4by1wb3NpdGlvbiBbb2ZdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIj48L2R4by1wb3NpdGlvbj5cbjwvZHgtbG9hZC1wYW5lbD5cbjxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiBzZWN0aW9ucy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImVtcHR5XCI+XG4gIDxzcGFuPuaCqOaXoOadg+afpeeci+ivpeaVsOaNruWunuS+i+S7u+S9leS/oeaBrzwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb25zLmxlbmd0aCA+IDBcIj5cbiAgPGR4LWFjY29yZGlvbiBbY29sbGFwc2libGVdPVwidHJ1ZVwiIFttdWx0aXBsZV09XCJ0cnVlXCIgW2RlZmVyUmVuZGVyaW5nXT1cImZhbHNlXCIgW2RhdGFTb3VyY2VdPVwic2VjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1zXT1cInNlY3Rpb25zXCIgW2ZvY3VzU3RhdGVFbmFibGVkXT1cImZhbHNlXCI+XG4gICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBzZWN0aW9uIG9mICd0aXRsZSdcIiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlLW5hbWVcIj57eyBzZWN0aW9uLm5hbWUgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHNlY3Rpb24gb2YgJ2l0ZW0nXCI+XG4gICAgICA8cnMtZm9ybSBbdGVuYW50XT1cInRlbmFudFwiIFtjbGFzc05hbWVdPVwiY2xhc3NOYW1lXCIgW29pZF09XCJvaWRcIiBbdGVtcGxhdGVdPVwic2VjdGlvbi5mb3JtVGVtcGxhdGVcIiBbcGFyYW1zXT1cInBhcmFtc1wiXG4gICAgICAgICAgICAgICBbdGFiVmlld0NvbnRhaW5lclJlZl09XCJ0YWJWaWV3Q29udGFpbmVyUmVmXCIgW3JlYWRvbmx5XT1cInRydWVcIj48L3JzLWZvcm0+XG4gICAgPC9kaXY+XG4gIDwvZHgtYWNjb3JkaW9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -5,13 +5,13 @@ export class DataDetailService {
5
5
  constructor(http) {
6
6
  this.http = http;
7
7
  }
8
- getSectionList(tenant, className, oid) {
8
+ getInstanceSections(tenant, className, oid) {
9
9
  return this.http.get('api/data/custom', {
10
10
  params: {
11
11
  tenant,
12
12
  className,
13
13
  oid,
14
- executor: 'com.cs.system.section.LoadSections'
14
+ executor: 'com.cs.system.section.GetInstanceSections'
15
15
  }
16
16
  });
17
17
  }
@@ -21,4 +21,4 @@ DataDetailService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailService, decorators: [{
22
22
  type: Injectable
23
23
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZGV0YWlsL2RhdGEtZGV0YWlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSXpDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsR0FBUTtRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLGlCQUFpQixFQUFFO1lBQzNDLE1BQU0sRUFBRTtnQkFDTixNQUFNO2dCQUNOLFNBQVM7Z0JBQ1QsR0FBRztnQkFDSCxRQUFRLEVBQUUsb0NBQW9DO2FBQy9DO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7OEdBYlUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0YURldGFpbFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIGdldFNlY3Rpb25MaXN0KHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KCdhcGkvZGF0YS9jdXN0b20nLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIG9pZCxcbiAgICAgICAgZXhlY3V0b3I6ICdjb20uY3Muc3lzdGVtLnNlY3Rpb24uTG9hZFNlY3Rpb25zJ1xuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZGV0YWlsL2RhdGEtZGV0YWlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSXpDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBVyxFQUFFLFNBQWMsRUFBRSxHQUFRO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0saUJBQWlCLEVBQUU7WUFDM0MsTUFBTSxFQUFFO2dCQUNOLE1BQU07Z0JBQ04sU0FBUztnQkFDVCxHQUFHO2dCQUNILFFBQVEsRUFBRSwyQ0FBMkM7YUFDdEQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzs4R0FiVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhRGV0YWlsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICB9XG5cbiAgZ2V0SW5zdGFuY2VTZWN0aW9ucyh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG9pZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXBpL2RhdGEvY3VzdG9tJywge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRlbmFudCxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBvaWQsXG4gICAgICAgIGV4ZWN1dG9yOiAnY29tLmNzLnN5c3RlbS5zZWN0aW9uLkdldEluc3RhbmNlU2VjdGlvbnMnXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -42,7 +42,7 @@ export class DataGridComponent {
42
42
  }
43
43
  ngOnInit() {
44
44
  this.reload();
45
- this.service.cellTemplateLoaded$.pipe(debounceTime(200)).subscribe(() => {
45
+ this.service.cellTemplateLoaded$.pipe(debounceTime(300)).subscribe(() => {
46
46
  this.dxDataGrid.instance.resize();
47
47
  });
48
48
  }
@@ -194,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
194
194
  type: ContentChild,
195
195
  args: [RowButtonsTemplateDirective]
196
196
  }] } });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU3RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLGlCQUFpQjtJQXFENUIsWUFBb0IsT0FBd0IsRUFBWSxPQUF3QixFQUFVLGdCQUFrQztRQUF4RyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUFZLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQW5ENUgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQVVuQixZQUFPLEdBQVcsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBTXhELGlCQUFZLEdBQVksS0FBSyxDQUFDLENBQUMsZ0JBQWdCO1FBRS9DLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFFckIsa0JBQWEsR0FBbUMsTUFBTSxDQUFDO1FBRXZELG9C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YztzQkFEYixLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUs7Z0JBR04scUJBQXFCO3NCQURwQixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixrQ0FBa0M7c0JBRGpDLEtBQUs7Z0JBR04sOEJBQThCO3NCQUQ3QixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU07Z0JBR1AsaUJBQWlCO3NCQURoQixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsTUFBTTtnQkFHUCxhQUFhO3NCQURaLE1BQU07Z0JBR1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQUVpRCxVQUFVO3NCQUFqRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDTyxrQkFBa0I7c0JBQXRFLFlBQVk7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RHhEYXRhR3JpZENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge0RhdGFHcmlkU2VydmljZX0gZnJvbSBcIi4vZGF0YS1ncmlkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL3Jvdy1idXR0b25zLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0RhdGFHcmlkRmFjdG9yeX0gZnJvbSBcIi4vZGF0YS1ncmlkLmZhY3RvcnlcIjtcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7bm90aWZ5X2Vycm9yfSBmcm9tIFwiLi4vdXRpbC91dGlsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1kYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0RhdGFHcmlkU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIHRlbmFudD86IGFueSA9ICdUJztcclxuICBASW5wdXQoKVxyXG4gIGNsYXNzTmFtZSE6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHZpZXc/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXI/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21Db2x1bW5Gbj86IChjb2x1bW5zOiBhbnlbXSkgPT4gdm9pZDtcclxuICBASW5wdXQoKVxyXG4gIGtleUV4cHI6IHN0cmluZyA9ICcnOyAvLyDnlKjkuo7lrp7kvovlsZ7mgKfpgInmi6nlmajvvIzliqDovb3nu4Tku7blgLzml7bku6XpgInkuK3lrZfmrrXkuLrkuLvplK7ojrflj5bpgInkuK3ooYzmlbDmja5cclxuICBASW5wdXQoKVxyXG4gIGRhdGFHcmlkTmFtZT86IHN0cmluZzsgLy8g55So5LqO5Zyo6I635Y+W5pWw5o2u5pe25ZCM5pe26I635Y+W5Y+w6LSm6YWN572u55qE6KGM5YaF5oyJ6ZKuXHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9ubHlGcm9udEVuZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDku4XliY3nq6/vvIzkuI3pgJrov4fojrflj5booajmoLzmlbDmja5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVQYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBkYXRhU291cmNlOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbk1vZGU6ICdub25lJyB8ICdtdWx0aXBsZScgfCAnc2luZ2xlJyA9ICdub25lJztcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkUm93S2V5czogYW55W10gPSBbXTtcclxuICBAT3V0cHV0KClcclxuICBzZWxlY3RlZFJvd0tleXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1Jvd051bTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBpbnN0YW5jZUxpbmtUeXBlOiAndGFiJyB8ICdkcmF3ZXInIHwgJ25vbmUnID0gJ3RhYic7XHJcbiAgQElucHV0KClcclxuICBkcmF3ZXJJbnN0YW5jZUxpbmtWaWV3Q29udGFpbmVyUmVmOiBhbnkgPSB0aGlzLnZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KClcclxuICBkcmF3ZXJJbnN0YW5jZUxpbmtGb3JtVGVtcGxhdGU6IGFueTtcclxuICBAT3V0cHV0KClcclxuICBvbkNlbGxQcmVwYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ29udGVudFJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25FZGl0b3JQcmVwYXJpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvblJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25Sb3dEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoRHhEYXRhR3JpZENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZX0pIHByaXZhdGUgZHhEYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZChSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmUpIHByb3RlY3RlZCByb3dCdXR0b25zVGVtcGxhdGUhOiBSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBEYXRhR3JpZEZhY3RvcnksIHByb3RlY3RlZCBzZXJ2aWNlOiBEYXRhR3JpZFNlcnZpY2UsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNlbGxUZW1wbGF0ZUxvYWRlZCQucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgKDxhbnk+dGhpcy5keERhdGFHcmlkLmluc3RhbmNlKS5yZXNpemUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVsb2FkKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLmZhY3RvcnkubWFrZURhdGFHcmlkQ29sdW1ucyh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMudmlldykuc3Vic2NyaWJlKGNvbHVtbnMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jdXN0b21Db2x1bW5Gbikge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tQ29sdW1uRm4oY29sdW1ucyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5zdGFuY2VMaW5rVHlwZSA9PT0gJ3RhYicgfHwgdGhpcy5pbnN0YW5jZUxpbmtUeXBlID09PSAnZHJhd2VyJykge1xyXG4gICAgICAgIGNvbHVtbnMudW5zaGlmdCh7XHJcbiAgICAgICAgICBmaXhlZDogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiA0OCxcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJ2luc3RhbmNlTGlua1RlbXBsYXRlJyxcclxuICAgICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXHJcbiAgICAgICAgICBjc3NDbGFzczogJ2NlbGwtdmVydGljYWwtbWlkZGxlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNob3dSb3dOdW0pIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgZml4ZWQ6IHRydWUsXHJcbiAgICAgICAgICBjYXB0aW9uOiAn6KGM5Y+3JyxcclxuICAgICAgICAgIHdpZHRoOiA0OCxcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJ3Jvd0luZGV4VGVtcGxhdGUnLFxyXG4gICAgICAgICAgYWxpZ25tZW50OiAnY2VudGVyJyxcclxuICAgICAgICAgIGNzc0NsYXNzOiAnY2VsbC12ZXJ0aWNhbC1taWRkbGUnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMub25seUZyb250RW5kKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhU291cmNlKSkge1xyXG4gICAgICAgIG5vdGlmeV9lcnJvcignaWYgb25seUZyb250RW5kIHNldCB0cnVlLCB5b3UgaGF2ZSB0byBzZXQgZGF0YVNvdXJjZSBhcyBhbiBBcnJheScpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSB0aGlzLmZhY3RvcnkubWFrZURhdGFHcmlkRGF0YVNvdXJjZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMudmlldywgdGhpcy5maWx0ZXIsIHRoaXMua2V5RXhwciwgdGhpcy5kYXRhR3JpZE5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNvbnZlcnRNdWx0aXBsZVZhbHVlQ2VsbFRleHQoY2VsbEluZm86IGFueSkge1xyXG4gICAgaWYgKCFjZWxsSW5mby52YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjZWxsSW5mby52YWx1ZSkpIHtcclxuICAgICAgaWYgKGNlbGxJbmZvLmNvbHVtbi5sb29rdXApIHtcclxuICAgICAgICByZXR1cm4gY2VsbEluZm8udmFsdWUubWFwKChpdGVtOiBhbnkpID0+IGNlbGxJbmZvLmNvbHVtbi5sb29rdXAuY2FsY3VsYXRlQ2VsbFZhbHVlKGl0ZW0pKS5qb2luKCc8YnIgLz4nKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY2VsbEluZm8udmFsdWUuam9pbignPGJyIC8+Jyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2VsbEluZm8uY29sdW1uLmxvb2t1cCkge1xyXG4gICAgICByZXR1cm4gY2VsbEluZm8uY29sdW1uLmxvb2t1cC5jYWxjdWxhdGVDZWxsVmFsdWUoY2VsbEluZm8udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNlbGxJbmZvLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldE9yaWdpbmFsVmFsdWUoY2VsbEluZm86IGFueSwga2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNlbGxJbmZvLmNvbHVtbltrZXldO1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGNlbGxJbmZvLmRhdGFbY29uZmlnLmZpZWxkXTtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbdmFsdWVdO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIHJldHVybiBjZWxsSW5mby5kYXRhW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5keERhdGFHcmlkLmluc3RhbmNlLmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRSb3dzRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dzRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaChjYWxsYmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5keERhdGFHcmlkLmluc3RhbmNlLnJlZnJlc2goKS50aGVuKCgpID0+IHtcclxuICAgICAgaWYgKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkR4RGF0YUdyaWRFZGl0b3JQcmVwYXJpbmcoJGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICgkZXZlbnQucGFyZW50VHlwZSA9PT0gJ2ZpbHRlclJvdycgJiYgJGV2ZW50LmVkaXRvck5hbWUgPT09ICdkeFRleHRCb3gnKSB7XHJcbiAgICAgICRldmVudC5lZGl0b3JPcHRpb25zLnZhbHVlQ2hhbmdlRXZlbnQgPSAnYmx1cic7XHJcbiAgICAgICRldmVudC5lZGl0b3JPcHRpb25zLm9uRW50ZXJLZXkgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgZS5jb21wb25lbnQuYmx1cigpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkVkaXRvclByZXBhcmluZy5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkeC1kYXRhLWdyaWQgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxyXG4gICAgICAgICAgICAgIGRhdGVTZXJpYWxpemF0aW9uRm9ybWF0PVwieXl5eS9NTS9kZCBISDptbTpzc1wiXHJcbiAgICAgICAgICAgICAgW3N5bmNMb29rdXBGaWx0ZXJWYWx1ZXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgICAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICAgICAgICBba2V5RXhwcl09XCJrZXlFeHByXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRSb3dLZXlzXT1cInNlbGVjdGVkUm93S2V5c1wiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdGVkUm93S2V5c0NoYW5nZSk9XCJzZWxlY3RlZFJvd0tleXNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25DZWxsUHJlcGFyZWQpPVwib25DZWxsUHJlcGFyZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Db250ZW50UmVhZHkpPVwib25Db250ZW50UmVhZHkuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25FZGl0b3JQcmVwYXJpbmcpPVwib25EeERhdGFHcmlkRWRpdG9yUHJlcGFyaW5nKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvblJvd0NsaWNrKT1cIm9uUm93Q2xpY2suZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Sb3dEYmxDbGljayk9XCJvblJvd0RibENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XHJcbiAgPGR4by1zb3J0aW5nIG1vZGU9XCJtdWx0aXBsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgPGR4by1zZWxlY3Rpb24gW21vZGVdPVwic2VsZWN0aW9uTW9kZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCIhb25seUZyb250RW5kXCI+XHJcbiAgICA8ZHhvLXNlYXJjaCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tc2VhcmNoPlxyXG4gICAgPGR4by10ZXh0cyBbb2tdPVwiJ+ehruWumidcIj48L2R4by10ZXh0cz5cclxuICA8L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICA8ZHhvLXJlbW90ZS1vcGVyYXRpb25zIFtmaWx0ZXJpbmddPVwiIW9ubHlGcm9udEVuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGluZ109XCIhb25seUZyb250RW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmddPVwiIW9ubHlGcm9udEVuZFwiPlxyXG4gIDwvZHhvLXJlbW90ZS1vcGVyYXRpb25zPlxyXG4gIDxkeG8tcGFnaW5nIFtlbmFibGVkXT1cIiFkaXNhYmxlUGFnZVwiIFtwYWdlU2l6ZV09XCIxNVwiPjwvZHhvLXBhZ2luZz5cclxuICA8ZHhvLXBhZ2VyIFt2aXNpYmxlXT1cIiFkaXNhYmxlUGFnZVwiXHJcbiAgICAgICAgICAgICBbc2hvd0luZm9dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBpbmZvVGV4dD1cIuesrHswfemhte+8jOWFsXsxfemhte+8iOWFsXsyfeS4qumhueebru+8iVwiXHJcbiAgICAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbYWxsb3dlZFBhZ2VTaXplc109XCJbMTUsIDMwLCA1MF1cIlxyXG4gID48L2R4by1wYWdlcj5cclxuICA8ZHhvLXNjcm9sbGluZyBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3Jvd0luZGV4VGVtcGxhdGUnXCI+XHJcbiAgICB7eyBjZWxsSW5mby5yb3dJbmRleCArIDEgfX1cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdpbnN0YW5jZUxpbmtUZW1wbGF0ZSdcIj5cclxuICAgIDxycy1pbnN0YW5jZS1saW5rLXRlbXBsYXRlIFt0ZW5hbnRdPVwidGVuYW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiY2xhc3NOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvaWRdPVwiY2VsbEluZm8uZGF0YS5vaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luc3RhbmNlTGlua1R5cGVdPVwiaW5zdGFuY2VMaW5rVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhd2VyVmlld0NvbnRhaW5lclJlZl09XCJkcmF3ZXJJbnN0YW5jZUxpbmtWaWV3Q29udGFpbmVyUmVmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmF3ZXJGb3JtVGVtcGxhdGVdPVwiZHJhd2VySW5zdGFuY2VMaW5rRm9ybVRlbXBsYXRlXCI+XHJcbiAgICA8L3JzLWluc3RhbmNlLWxpbmstdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAncm93QnV0dG9uc1RlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyb3dCdXR0b25zVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdtdWx0aXBsZVZhbHVlQ2VsbFRlbXBsYXRlJ1wiPlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cImNvbnZlcnRNdWx0aXBsZVZhbHVlQ2VsbFRleHQoY2VsbEluZm8pXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAndGV4dENlbGxUZW1wbGF0ZSdcIj5cclxuICAgIDxkaXYgI3RleHREaXYgc3R5bGU9XCJ0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgb3ZlcmZsb3c6IGhpZGRlbjsgY3Vyc29yOiBwb2ludGVyO1wiPnt7IGNlbGxJbmZvLnZhbHVlIH19PC9kaXY+XHJcbiAgICA8ZHgtdG9vbHRpcCBbdGFyZ2V0XT1cInRleHREaXZcIlxyXG4gICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIid0b3AnXCJcclxuICAgICAgICAgICAgICAgIFtzaG93RXZlbnRdPVwiJ2NsaWNrJ1wiPlxyXG4gICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XHJcbiAgICAgICAgPHAgc3R5bGU9XCJtYXgtd2lkdGg6IDMyMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB3aGl0ZS1zcGFjZTogbm9ybWFsO1wiIFtpbm5lclRleHRdPVwiY2VsbEluZm8udmFsdWVcIj48L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9keC10b29sdGlwPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ2ZpbGVDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGNlbGxJbmZvLnZhbHVlXCI+XHJcbiAgICAgIDxycy1maWxlLWNlbGwtdGVtcGxhdGUgW2ZpbGVdPVwiZmlsZVwiPjwvcnMtZmlsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAndXNlckNlbGxUZW1wbGF0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVzZXIgb2YgZ2V0T3JpZ2luYWxWYWx1ZShjZWxsSW5mbywgJ3VzZXJJbmZvJylcIj5cclxuICAgICAgPHJzLXVzZXItaW5mby10ZW1wbGF0ZSBbdWlkXT1cInVzZXJcIiBbY2VsbEluZm9dPVwiY2VsbEluZm9cIj48L3JzLXVzZXItaW5mby10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3VuaXRDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1bml0IG9mIGdldE9yaWdpbmFsVmFsdWUoY2VsbEluZm8sICd1bml0SW5mbycpXCI+XHJcbiAgICAgIDxycy11bml0LWluZm8tdGVtcGxhdGUgW3VpZF09XCJ1bml0XCIgW2NlbGxJbmZvXT1cImNlbGxJbmZvXCI+PC9ycy11bml0LWluZm8tdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9keC1kYXRhLWdyaWQ+XHJcbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU3RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLGlCQUFpQjtJQXFENUIsWUFBb0IsT0FBd0IsRUFBWSxPQUF3QixFQUFVLGdCQUFrQztRQUF4RyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUFZLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQW5ENUgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQVVuQixZQUFPLEdBQVcsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBTXhELGlCQUFZLEdBQVksS0FBSyxDQUFDLENBQUMsZ0JBQWdCO1FBRS9DLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFFckIsa0JBQWEsR0FBbUMsTUFBTSxDQUFDO1FBRXZELG9C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YztzQkFEYixLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUs7Z0JBR04scUJBQXFCO3NCQURwQixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixrQ0FBa0M7c0JBRGpDLEtBQUs7Z0JBR04sOEJBQThCO3NCQUQ3QixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU07Z0JBR1AsaUJBQWlCO3NCQURoQixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsTUFBTTtnQkFHUCxhQUFhO3NCQURaLE1BQU07Z0JBR1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQUVpRCxVQUFVO3NCQUFqRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDTyxrQkFBa0I7c0JBQXRFLFlBQVk7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RHhEYXRhR3JpZENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge0RhdGFHcmlkU2VydmljZX0gZnJvbSBcIi4vZGF0YS1ncmlkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL3Jvdy1idXR0b25zLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0RhdGFHcmlkRmFjdG9yeX0gZnJvbSBcIi4vZGF0YS1ncmlkLmZhY3RvcnlcIjtcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7bm90aWZ5X2Vycm9yfSBmcm9tIFwiLi4vdXRpbC91dGlsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1kYXRhLWdyaWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtZ3JpZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0RhdGFHcmlkU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIHRlbmFudD86IGFueSA9ICdUJztcclxuICBASW5wdXQoKVxyXG4gIGNsYXNzTmFtZSE6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHZpZXc/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXI/OiBBcnJheTxhbnk+IHwgc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3VzdG9tQ29sdW1uRm4/OiAoY29sdW1uczogYW55W10pID0+IHZvaWQ7XHJcbiAgQElucHV0KClcclxuICBrZXlFeHByOiBzdHJpbmcgPSAnJzsgLy8g55So5LqO5a6e5L6L5bGe5oCn6YCJ5oup5Zmo77yM5Yqg6L2957uE5Lu25YC85pe25Lul6YCJ5Lit5a2X5q615Li65Li76ZSu6I635Y+W6YCJ5Lit6KGM5pWw5o2uXHJcbiAgQElucHV0KClcclxuICBkYXRhR3JpZE5hbWU/OiBzdHJpbmc7IC8vIOeUqOS6juWcqOiOt+WPluaVsOaNruaXtuWQjOaXtuiOt+WPluWPsOi0pumFjee9rueahOihjOWGheaMiemSrlxyXG4gIEBJbnB1dCgpXHJcbiAgaGVpZ2h0OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBvbmx5RnJvbnRFbmQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8g5LuF5YmN56uv77yM5LiN6YCa6L+H6I635Y+W6KGo5qC85pWw5o2uXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlUGFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGF0YVNvdXJjZTogYW55ID0ge307XHJcbiAgQElucHV0KClcclxuICBzZWxlY3Rpb25Nb2RlOiAnbm9uZScgfCAnbXVsdGlwbGUnIHwgJ3NpbmdsZScgPSAnbm9uZSc7XHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZFJvd0tleXM6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRSb3dLZXlzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dSb3dOdW06IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5zdGFuY2VMaW5rVHlwZTogJ3RhYicgfCAnZHJhd2VyJyB8ICdub25lJyA9ICd0YWInO1xyXG4gIEBJbnB1dCgpXHJcbiAgZHJhd2VySW5zdGFuY2VMaW5rVmlld0NvbnRhaW5lclJlZjogYW55ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmO1xyXG4gIEBJbnB1dCgpXHJcbiAgZHJhd2VySW5zdGFuY2VMaW5rRm9ybVRlbXBsYXRlOiBhbnk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25DZWxsUHJlcGFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkNvbnRlbnRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uRWRpdG9yUHJlcGFyaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25Sb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uUm93RGJsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKER4RGF0YUdyaWRDb21wb25lbnQsIHtzdGF0aWM6IHRydWV9KSBwcml2YXRlIGR4RGF0YUdyaWQhOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoUm93QnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlKSBwcm90ZWN0ZWQgcm93QnV0dG9uc1RlbXBsYXRlITogUm93QnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlO1xyXG4gIGNvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogRGF0YUdyaWRGYWN0b3J5LCBwcm90ZWN0ZWQgc2VydmljZTogRGF0YUdyaWRTZXJ2aWNlLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5yZWxvYWQoKTtcclxuICAgIHRoaXMuc2VydmljZS5jZWxsVGVtcGxhdGVMb2FkZWQkLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICg8YW55PnRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZSkucmVzaXplKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbG9hZCgpIHtcclxuICAgIHRoaXMuY29sdW1ucy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5mYWN0b3J5Lm1ha2VEYXRhR3JpZENvbHVtbnModGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnZpZXcpLnN1YnNjcmliZShjb2x1bW5zID0+IHtcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tQ29sdW1uRm4pIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUNvbHVtbkZuKGNvbHVtbnMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlTGlua1R5cGUgPT09ICd0YWInIHx8IHRoaXMuaW5zdGFuY2VMaW5rVHlwZSA9PT0gJ2RyYXdlcicpIHtcclxuICAgICAgICBjb2x1bW5zLnVuc2hpZnQoe1xyXG4gICAgICAgICAgZml4ZWQ6IHRydWUsXHJcbiAgICAgICAgICB3aWR0aDogNDgsXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICdpbnN0YW5jZUxpbmtUZW1wbGF0ZScsXHJcbiAgICAgICAgICBhbGlnbm1lbnQ6ICdjZW50ZXInLFxyXG4gICAgICAgICAgY3NzQ2xhc3M6ICdjZWxsLXZlcnRpY2FsLW1pZGRsZSdcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zaG93Um93TnVtKSB7XHJcbiAgICAgICAgY29sdW1ucy51bnNoaWZ0KHtcclxuICAgICAgICAgIGZpeGVkOiB0cnVlLFxyXG4gICAgICAgICAgY2FwdGlvbjogJ+ihjOWPtycsXHJcbiAgICAgICAgICB3aWR0aDogNDgsXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICdyb3dJbmRleFRlbXBsYXRlJyxcclxuICAgICAgICAgIGFsaWdubWVudDogJ2NlbnRlcicsXHJcbiAgICAgICAgICBjc3NDbGFzczogJ2NlbGwtdmVydGljYWwtbWlkZGxlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLm9ubHlGcm9udEVuZCkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlICYmICFBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkpIHtcclxuICAgICAgICBub3RpZnlfZXJyb3IoJ2lmIG9ubHlGcm9udEVuZCBzZXQgdHJ1ZSwgeW91IGhhdmUgdG8gc2V0IGRhdGFTb3VyY2UgYXMgYW4gQXJyYXknKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5mYWN0b3J5Lm1ha2VEYXRhR3JpZERhdGFTb3VyY2UodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnZpZXcsIHRoaXMuZmlsdGVyLCB0aGlzLmtleUV4cHIsIHRoaXMuZGF0YUdyaWROYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb252ZXJ0TXVsdGlwbGVWYWx1ZUNlbGxUZXh0KGNlbGxJbmZvOiBhbnkpIHtcclxuICAgIGlmICghY2VsbEluZm8udmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2VsbEluZm8udmFsdWUpKSB7XHJcbiAgICAgIGlmIChjZWxsSW5mby5jb2x1bW4ubG9va3VwKSB7XHJcbiAgICAgICAgcmV0dXJuIGNlbGxJbmZvLnZhbHVlLm1hcCgoaXRlbTogYW55KSA9PiBjZWxsSW5mby5jb2x1bW4ubG9va3VwLmNhbGN1bGF0ZUNlbGxWYWx1ZShpdGVtKSkuam9pbignPGJyIC8+Jyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNlbGxJbmZvLnZhbHVlLmpvaW4oJzxiciAvPicpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNlbGxJbmZvLmNvbHVtbi5sb29rdXApIHtcclxuICAgICAgcmV0dXJuIGNlbGxJbmZvLmNvbHVtbi5sb29rdXAuY2FsY3VsYXRlQ2VsbFZhbHVlKGNlbGxJbmZvLnZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjZWxsSW5mby52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRPcmlnaW5hbFZhbHVlKGNlbGxJbmZvOiBhbnksIGtleTogYW55KSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjZWxsSW5mby5jb2x1bW5ba2V5XTtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjZWxsSW5mby5kYXRhW2NvbmZpZy5maWVsZF07XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW3ZhbHVlXTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2VsbEluZm8uZGF0YVtrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkUm93c0RhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5keERhdGFHcmlkLmluc3RhbmNlLmdldFNlbGVjdGVkUm93c0RhdGEoKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goY2FsbGJhY2s/OiBhbnkpIHtcclxuICAgIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5yZWZyZXNoKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25EeERhdGFHcmlkRWRpdG9yUHJlcGFyaW5nKCRldmVudDogYW55KSB7XHJcbiAgICBpZiAoJGV2ZW50LnBhcmVudFR5cGUgPT09ICdmaWx0ZXJSb3cnICYmICRldmVudC5lZGl0b3JOYW1lID09PSAnZHhUZXh0Qm94Jykge1xyXG4gICAgICAkZXZlbnQuZWRpdG9yT3B0aW9ucy52YWx1ZUNoYW5nZUV2ZW50ID0gJ2JsdXInO1xyXG4gICAgICAkZXZlbnQuZWRpdG9yT3B0aW9ucy5vbkVudGVyS2V5ID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGUuY29tcG9uZW50LmJsdXIoKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMub25FZGl0b3JQcmVwYXJpbmcuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZHgtZGF0YS1ncmlkIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbcm93QWx0ZXJuYXRpb25FbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcclxuICAgICAgICAgICAgICBkYXRlU2VyaWFsaXphdGlvbkZvcm1hdD1cInl5eXkvTU0vZGQgSEg6bW06c3NcIlxyXG4gICAgICAgICAgICAgIFtzeW5jTG9va3VwRmlsdGVyVmFsdWVzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgICAgICAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgICAgICAgICAgW2tleUV4cHJdPVwia2V5RXhwclwiXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkUm93S2V5c109XCJzZWxlY3RlZFJvd0tleXNcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3RlZFJvd0tleXNDaGFuZ2UpPVwic2VsZWN0ZWRSb3dLZXlzQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uQ2VsbFByZXBhcmVkKT1cIm9uQ2VsbFByZXBhcmVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uQ29udGVudFJlYWR5KT1cIm9uQ29udGVudFJlYWR5LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uRWRpdG9yUHJlcGFyaW5nKT1cIm9uRHhEYXRhR3JpZEVkaXRvclByZXBhcmluZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Sb3dDbGljayk9XCJvblJvd0NsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uUm93RGJsQ2xpY2spPVwib25Sb3dEYmxDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50KVwiPlxyXG4gIDxkeG8tc29ydGluZyBtb2RlPVwibXVsdGlwbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gIDxkeG8tc2VsZWN0aW9uIFttb2RlXT1cInNlbGVjdGlvbk1vZGVcIiBzZWxlY3RBbGxNb2RlPVwicGFnZVwiIHNob3dDaGVja0JveGVzTW9kZT1cImFsd2F5c1wiPjwvZHhvLXNlbGVjdGlvbj5cclxuICA8ZHhvLWhlYWRlci1maWx0ZXIgW3Zpc2libGVdPVwiIW9ubHlGcm9udEVuZFwiPlxyXG4gICAgPGR4by1zZWFyY2ggW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLXNlYXJjaD5cclxuICAgIDxkeG8tdGV4dHMgW29rXT1cIifnoa7lrponXCI+PC9keG8tdGV4dHM+XHJcbiAgPC9keG8taGVhZGVyLWZpbHRlcj5cclxuICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgPGR4by1yZW1vdGUtb3BlcmF0aW9ucyBbZmlsdGVyaW5nXT1cIiFvbmx5RnJvbnRFbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRpbmddPVwiIW9ubHlGcm9udEVuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnaW5nXT1cIiFvbmx5RnJvbnRFbmRcIj5cclxuICA8L2R4by1yZW1vdGUtb3BlcmF0aW9ucz5cclxuICA8ZHhvLXBhZ2luZyBbZW5hYmxlZF09XCIhZGlzYWJsZVBhZ2VcIiBbcGFnZVNpemVdPVwiMTVcIj48L2R4by1wYWdpbmc+XHJcbiAgPGR4by1wYWdlciBbdmlzaWJsZV09XCIhZGlzYWJsZVBhZ2VcIlxyXG4gICAgICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgaW5mb1RleHQ9XCLnrKx7MH3pobXvvIzlhbF7MX3pobXvvIjlhbF7Mn3kuKrpobnnm67vvIlcIlxyXG4gICAgICAgICAgICAgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzE1LCAzMCwgNTBdXCJcclxuICA+PC9keG8tcGFnZXI+XHJcbiAgPGR4by1zY3JvbGxpbmcgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdyb3dJbmRleFRlbXBsYXRlJ1wiPlxyXG4gICAge3sgY2VsbEluZm8ucm93SW5kZXggKyAxIH19XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAnaW5zdGFuY2VMaW5rVGVtcGxhdGUnXCI+XHJcbiAgICA8cnMtaW5zdGFuY2UtbGluay10ZW1wbGF0ZSBbdGVuYW50XT1cInRlbmFudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cImNsYXNzTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2lkXT1cImNlbGxJbmZvLmRhdGEub2lkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnN0YW5jZUxpbmtUeXBlXT1cImluc3RhbmNlTGlua1R5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYXdlclZpZXdDb250YWluZXJSZWZdPVwiZHJhd2VySW5zdGFuY2VMaW5rVmlld0NvbnRhaW5lclJlZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhd2VyRm9ybVRlbXBsYXRlXT1cImRyYXdlckluc3RhbmNlTGlua0Zvcm1UZW1wbGF0ZVwiPlxyXG4gICAgPC9ycy1pbnN0YW5jZS1saW5rLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3Jvd0J1dHRvbnNUZW1wbGF0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicm93QnV0dG9uc1RlbXBsYXRlLnRlbXBsYXRlUmVmXCJcclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNlbGxJbmZvLCBjZWxsVGVtcGxhdGVMb2FkZWQkOiBzZXJ2aWNlLmNlbGxUZW1wbGF0ZUxvYWRlZCR9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAnbXVsdGlwbGVWYWx1ZUNlbGxUZW1wbGF0ZSdcIj5cclxuICAgIDxkaXYgW2lubmVySFRNTF09XCJjb252ZXJ0TXVsdGlwbGVWYWx1ZUNlbGxUZXh0KGNlbGxJbmZvKVwiPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3RleHRDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICA8ZGl2ICN0ZXh0RGl2IHN0eWxlPVwidGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IG92ZXJmbG93OiBoaWRkZW47IGN1cnNvcjogcG9pbnRlcjtcIj57eyBjZWxsSW5mby52YWx1ZSB9fTwvZGl2PlxyXG4gICAgPGR4LXRvb2x0aXAgW3RhcmdldF09XCJ0ZXh0RGl2XCJcclxuICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCIndG9wJ1wiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0V2ZW50XT1cIidjbGljaydcIj5cclxuICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiPlxyXG4gICAgICAgIDxwIHN0eWxlPVwibWF4LXdpZHRoOiAzMjBweDsgdGV4dC1hbGlnbjogbGVmdDsgd2hpdGUtc3BhY2U6IG5vcm1hbDtcIiBbaW5uZXJUZXh0XT1cImNlbGxJbmZvLnZhbHVlXCI+PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZHgtdG9vbHRpcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdmaWxlQ2VsbFRlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsZSBvZiBjZWxsSW5mby52YWx1ZVwiPlxyXG4gICAgICA8cnMtZmlsZS1jZWxsLXRlbXBsYXRlIFtmaWxlXT1cImZpbGVcIj48L3JzLWZpbGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3VzZXJDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1c2VyIG9mIGdldE9yaWdpbmFsVmFsdWUoY2VsbEluZm8sICd1c2VySW5mbycpXCI+XHJcbiAgICAgIDxycy11c2VyLWluZm8tdGVtcGxhdGUgW3VpZF09XCJ1c2VyXCIgW2NlbGxJbmZvXT1cImNlbGxJbmZvXCI+PC9ycy11c2VyLWluZm8tdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICd1bml0Q2VsbFRlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdW5pdCBvZiBnZXRPcmlnaW5hbFZhbHVlKGNlbGxJbmZvLCAndW5pdEluZm8nKVwiPlxyXG4gICAgICA8cnMtdW5pdC1pbmZvLXRlbXBsYXRlIFt1aWRdPVwidW5pdFwiIFtjZWxsSW5mb109XCJjZWxsSW5mb1wiPjwvcnMtdW5pdC1pbmZvLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvZHgtZGF0YS1ncmlkPlxyXG4iXX0=