@smartbit4all/ng-client 4.3.4 → 4.3.6

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 (49) hide show
  1. package/esm2022/lib/smart-client/smart-component-api-client.mjs +7 -2
  2. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +2 -1
  3. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +18 -1
  4. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +48 -15
  5. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +2 -1
  6. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +19 -1
  7. package/esm2022/lib/smart-form/services/smartform.service.mjs +6 -1
  8. package/esm2022/lib/smart-form/smartform.component.mjs +3 -1
  9. package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
  10. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +8 -6
  11. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +19 -5
  12. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +46 -1
  13. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
  14. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  15. package/esm2022/lib/smart-grid/smart-grid.component.mjs +12 -8
  16. package/esm2022/lib/smart-grid/smart-grid.service.mjs +5 -1
  17. package/esm2022/lib/view-context/api/model/view.mjs +1 -1
  18. package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
  19. package/esm2022/lib/view-context/projects.mjs +2 -1
  20. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +55 -0
  21. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +33 -0
  22. package/esm2022/lib/view-context/smart-view-context.model.mjs +1 -1
  23. package/esm2022/lib/view-context/smart-view-context.module.mjs +11 -3
  24. package/esm2022/lib/view-context/smart-view-context.service.mjs +94 -8
  25. package/fesm2022/smartbit4all-ng-client.mjs +499 -181
  26. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  27. package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +2 -1
  28. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +6 -1
  29. package/lib/smart-component-layout/smart-component-layout.component.d.ts +10 -2
  30. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +2 -1
  31. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +1 -0
  32. package/lib/smart-form/smartform.form-model.d.ts +18 -1
  33. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +3 -1
  34. package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +19 -0
  35. package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +4 -0
  36. package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +1 -0
  37. package/lib/smart-grid/smart-grid.component.d.ts +1 -0
  38. package/lib/smart-grid/smart-grid.service.d.ts +1 -0
  39. package/lib/view-context/api/model/view.d.ts +1 -0
  40. package/lib/view-context/api/model/viewData.d.ts +1 -0
  41. package/lib/view-context/projects.d.ts +1 -0
  42. package/lib/view-context/smart-embedded-slot.directive.d.ts +20 -0
  43. package/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.d.ts +13 -0
  44. package/lib/view-context/smart-view-context.model.d.ts +7 -1
  45. package/lib/view-context/smart-view-context.module.d.ts +70 -68
  46. package/lib/view-context/smart-view-context.service.d.ts +9 -2
  47. package/package.json +1 -1
  48. package/smartbit4all-ng-client-4.3.6.tgz +0 -0
  49. package/smartbit4all-ng-client-4.3.4.tgz +0 -0
@@ -1,4 +1,4 @@
1
- import { Component, Input, ViewChildren, } from '@angular/core';
1
+ import { Component, Input, ViewChild, ViewChildren, ViewContainerRef, } from '@angular/core';
2
2
  import { ComponentType, ComponentWidgetType, LayoutDirection, } from './api';
3
3
  import { SmartFormWidgetDirection, } from '../smart-form/projects';
4
4
  import { GridUiActionType, SmartLayoutDef, } from '../smart-grid/projects';
@@ -8,20 +8,29 @@ import { deepEqual } from 'fast-equals';
8
8
  import { SmartStyleUtility } from '../view-context/utility/smart-style-utility';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../smart-form/projects";
11
- import * as i2 from "@angular/common";
12
- import * as i3 from "../smart-grid/smart-grid.component";
13
- import * as i4 from "../smart-expandable-section/expandable-section.component";
14
- import * as i5 from "../smart-tree/smarttree.component";
15
- import * as i6 from "../view-context/smart-ui-action/ui-action-toolbar.component";
16
- import * as i7 from "../smart-form/smartform.component";
17
- import * as i8 from "../smart-map/smart-map.component";
18
- import * as i9 from "../smart-diagram/component/smart-diagram.component";
11
+ import * as i2 from "../view-context/smart-view-context.service";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "../smart-grid/smart-grid.component";
14
+ import * as i5 from "../smart-expandable-section/expandable-section.component";
15
+ import * as i6 from "../smart-tree/smarttree.component";
16
+ import * as i7 from "../view-context/smart-ui-action/ui-action-toolbar.component";
17
+ import * as i8 from "../smart-form/smartform.component";
18
+ import * as i9 from "../smart-map/smart-map.component";
19
+ import * as i10 from "../smart-diagram/component/smart-diagram.component";
19
20
  export class SmartComponentLayoutComponent {
20
- constructor(layoutService, element, renderer) {
21
+ set embeddedSlotVcRefSetter(vcRef) {
22
+ this._embeddedSlotVcRef = vcRef;
23
+ if (vcRef) {
24
+ this.tryRegisterEmbeddedSlot();
25
+ }
26
+ }
27
+ constructor(layoutService, viewContext, element, renderer) {
21
28
  this.layoutService = layoutService;
29
+ this.viewContext = viewContext;
22
30
  this.element = element;
23
31
  this.renderer = renderer;
24
32
  this._destroy$ = new Subject();
33
+ this.embeddedSlotActive = false;
25
34
  }
26
35
  ngAfterViewInit() {
27
36
  if (this.smartFormList?.first) {
@@ -71,6 +80,9 @@ export class SmartComponentLayoutComponent {
71
80
  this.setUp();
72
81
  }
73
82
  ngOnDestroy() {
83
+ if (this.embeddedSlotContainerId && this.uuid) {
84
+ this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
85
+ }
74
86
  this._destroy$.next();
75
87
  this._destroy$.complete();
76
88
  }
@@ -107,6 +119,11 @@ export class SmartComponentLayoutComponent {
107
119
  // null out toolbar?
108
120
  this.mapId = undefined;
109
121
  this.smartDiagramId = undefined;
122
+ if (this.embeddedSlotContainerId && this.uuid) {
123
+ this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
124
+ }
125
+ this.embeddedSlotActive = false;
126
+ this.embeddedSlotContainerId = undefined;
110
127
  if (this.smartComponentLayout?.expandable) {
111
128
  this.constructExpandableSection();
112
129
  }
@@ -133,6 +150,9 @@ export class SmartComponentLayoutComponent {
133
150
  else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.DIAGRAM) {
134
151
  this.construcDiagram();
135
152
  }
153
+ else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.EMBEDDED_SLOT) {
154
+ this.constructEmbeddedSlot();
155
+ }
136
156
  if (!this.parentLayoutComponent) {
137
157
  // only top level component should call init actions
138
158
  this.parentSmartComponent.initActions();
@@ -299,13 +319,23 @@ export class SmartComponentLayoutComponent {
299
319
  this.toolbarPropertes = properties['toolbar_properties'];
300
320
  }
301
321
  }
302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, deps: [{ token: i1.SmartformLayoutDefinitionService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: { smartComponentLayout: "smartComponentLayout", parentLayoutComponent: "parentLayoutComponent", parentSmartComponent: "parentSmartComponent", gridRow: "gridRow" }, viewQueries: [{ propertyName: "smartFormList", predicate: ["form"], descendants: true }, { propertyName: "smartGridList", predicate: ["grid"], descendants: true }, { propertyName: "smartMapList", predicate: ["map"], descendants: true }, { propertyName: "smartDiagramList", predicate: ["diagram"], descendants: true }, { propertyName: "smartFilterList", predicate: ["filter"], descendants: true }, { propertyName: "toolbarList", predicate: ["toolbar"], descendants: true }, { propertyName: "expandableComponents", predicate: ExpandableSectionComponent, descendants: true }, { propertyName: "components", predicate: SmartComponentLayoutComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <smart-map\r\n *ngIf=\"!!uuid && !!mapId\"\r\n #map\r\n [uuid]=\"uuid\"\r\n [identifier]=\"mapId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-map>\r\n <smart-diagram\r\n *ngIf=\"!!uuid && !!smartDiagramId\"\r\n #diagram\r\n [uuid]=\"uuid\"\r\n [identifier]=\"smartDiagramId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-diagram>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar\r\n *ngIf=\"!!toolbarId\"\r\n #toolbar\r\n [id]=\"toolbarId\"\r\n [toolbarPropertes]=\"toolbarPropertes\"\r\n ></smart-ui-action-toolbar>\r\n</ng-template>\r\n", styles: [".horizontal{display:flex;flex-direction:row}.vertical{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "dev"] }, { kind: "component", type: i4.ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { kind: "component", type: i5.SmartTreeComponent, selector: "smart-tree", inputs: ["treeStyle", "treeService"] }, { kind: "component", type: i6.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i7.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: i8.SmartMapComponent, selector: "smart-map", inputs: ["uuid", "identifier", "parent"] }, { kind: "component", type: i9.SmartDiagramComponent, selector: "smart-diagram", inputs: ["uuid", "identifier", "parent", "diagramModel", "options", "plugins"], outputs: ["elementSelect", "canvasClick", "dataClick"] }, { kind: "component", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }] }); }
322
+ constructEmbeddedSlot() {
323
+ this.embeddedSlotContainerId = this.smartComponentLayout?.widget?.identifier;
324
+ this.embeddedSlotActive = true;
325
+ this.tryRegisterEmbeddedSlot();
326
+ }
327
+ tryRegisterEmbeddedSlot() {
328
+ if (this.embeddedSlotContainerId && this.uuid && this._embeddedSlotVcRef) {
329
+ this.viewContext.registerEmbeddedSlot(this.uuid, this.embeddedSlotContainerId, this._embeddedSlotVcRef);
330
+ }
331
+ }
332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, deps: [{ token: i1.SmartformLayoutDefinitionService }, { token: i2.SmartViewContextService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
333
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: { smartComponentLayout: "smartComponentLayout", parentLayoutComponent: "parentLayoutComponent", parentSmartComponent: "parentSmartComponent", gridRow: "gridRow" }, viewQueries: [{ propertyName: "embeddedSlotVcRefSetter", first: true, predicate: ["embeddedSlot"], descendants: true, read: ViewContainerRef }, { propertyName: "smartFormList", predicate: ["form"], descendants: true }, { propertyName: "smartGridList", predicate: ["grid"], descendants: true }, { propertyName: "smartMapList", predicate: ["map"], descendants: true }, { propertyName: "smartDiagramList", predicate: ["diagram"], descendants: true }, { propertyName: "smartFilterList", predicate: ["filter"], descendants: true }, { propertyName: "toolbarList", predicate: ["toolbar"], descendants: true }, { propertyName: "expandableComponents", predicate: ExpandableSectionComponent, descendants: true }, { propertyName: "components", predicate: SmartComponentLayoutComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <smart-map\r\n *ngIf=\"!!uuid && !!mapId\"\r\n #map\r\n [uuid]=\"uuid\"\r\n [identifier]=\"mapId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-map>\r\n <smart-diagram\r\n *ngIf=\"!!uuid && !!smartDiagramId\"\r\n #diagram\r\n [uuid]=\"uuid\"\r\n [identifier]=\"smartDiagramId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-diagram>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar\r\n *ngIf=\"!!toolbarId\"\r\n #toolbar\r\n [id]=\"toolbarId\"\r\n [toolbarPropertes]=\"toolbarPropertes\"\r\n ></smart-ui-action-toolbar>\r\n <ng-container *ngIf=\"embeddedSlotActive\" #embeddedSlot></ng-container>\r\n</ng-template>\r\n", styles: [".horizontal{display:flex;flex-direction:row}.vertical{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "dev"] }, { kind: "component", type: i5.ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { kind: "component", type: i6.SmartTreeComponent, selector: "smart-tree", inputs: ["treeStyle", "treeService"] }, { kind: "component", type: i7.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i8.SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: i9.SmartMapComponent, selector: "smart-map", inputs: ["uuid", "identifier", "parent"] }, { kind: "component", type: i10.SmartDiagramComponent, selector: "smart-diagram", inputs: ["uuid", "identifier", "parent", "diagramModel", "options", "plugins"], outputs: ["elementSelect", "canvasClick", "dataClick"] }, { kind: "component", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }] }); }
304
334
  }
305
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, decorators: [{
306
336
  type: Component,
307
- args: [{ selector: 'smart-component-layout', template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <smart-map\r\n *ngIf=\"!!uuid && !!mapId\"\r\n #map\r\n [uuid]=\"uuid\"\r\n [identifier]=\"mapId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-map>\r\n <smart-diagram\r\n *ngIf=\"!!uuid && !!smartDiagramId\"\r\n #diagram\r\n [uuid]=\"uuid\"\r\n [identifier]=\"smartDiagramId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-diagram>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar\r\n *ngIf=\"!!toolbarId\"\r\n #toolbar\r\n [id]=\"toolbarId\"\r\n [toolbarPropertes]=\"toolbarPropertes\"\r\n ></smart-ui-action-toolbar>\r\n</ng-template>\r\n", styles: [".horizontal{display:flex;flex-direction:row}.vertical{display:flex;flex-direction:column}\n"] }]
308
- }], ctorParameters: () => [{ type: i1.SmartformLayoutDefinitionService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { smartComponentLayout: [{
337
+ args: [{ selector: 'smart-component-layout', template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\r\n\r\n<ng-template #expandable>\r\n <smart-expandable-section\r\n *ngIf=\"expandableSection\"\r\n [data]=\"expandableSection\"\r\n ></smart-expandable-section>\r\n</ng-template>\r\n\r\n<ng-template #normal>\r\n <div\r\n *ngIf=\"smartComponentLayout?.type === type().CONTAINER\"\r\n [ngClass]=\"smartComponentLayout?.direction ?? 'vertical'\"\r\n >\r\n <smart-component-layout\r\n *ngFor=\"let layout of smartComponentLayout?.components\"\r\n [parentSmartComponent]=\"parentSmartComponent\"\r\n [parentLayoutComponent]=\"this\"\r\n [smartComponentLayout]=\"layout\"\r\n [gridRow]=\"gridRow\"\r\n ></smart-component-layout>\r\n </div>\r\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\r\n <smart-grid *ngIf=\"smartGrid\" #grid [smartGrid]=\"smartGrid\" [uuid]=\"uuid!\"></smart-grid>\r\n <smart-map\r\n *ngIf=\"!!uuid && !!mapId\"\r\n #map\r\n [uuid]=\"uuid\"\r\n [identifier]=\"mapId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-map>\r\n <smart-diagram\r\n *ngIf=\"!!uuid && !!smartDiagramId\"\r\n #diagram\r\n [uuid]=\"uuid\"\r\n [identifier]=\"smartDiagramId\"\r\n [parent]=\"parentSmartComponent\"\r\n ></smart-diagram>\r\n <!-- <smart-filter #filter [filter]=\"smartFilter\"></smart-filter> -->\r\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\r\n <smart-ui-action-toolbar\r\n *ngIf=\"!!toolbarId\"\r\n #toolbar\r\n [id]=\"toolbarId\"\r\n [toolbarPropertes]=\"toolbarPropertes\"\r\n ></smart-ui-action-toolbar>\r\n <ng-container *ngIf=\"embeddedSlotActive\" #embeddedSlot></ng-container>\r\n</ng-template>\r\n", styles: [".horizontal{display:flex;flex-direction:row}.vertical{display:flex;flex-direction:column}\n"] }]
338
+ }], ctorParameters: () => [{ type: i1.SmartformLayoutDefinitionService }, { type: i2.SmartViewContextService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { smartComponentLayout: [{
309
339
  type: Input
310
340
  }], parentLayoutComponent: [{
311
341
  type: Input
@@ -331,6 +361,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
331
361
  }], toolbarList: [{
332
362
  type: ViewChildren,
333
363
  args: ['toolbar']
364
+ }], embeddedSlotVcRefSetter: [{
365
+ type: ViewChild,
366
+ args: ['embeddedSlot', { read: ViewContainerRef, static: false }]
334
367
  }], expandableComponents: [{
335
368
  type: ViewChildren,
336
369
  args: [ExpandableSectionComponent]
@@ -338,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
338
371
  type: ViewChildren,
339
372
  args: [SmartComponentLayoutComponent]
340
373
  }] } });
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29tcG9uZW50LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jb21wb25lbnQtbGF5b3V0L3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY29tcG9uZW50LWxheW91dC9zbWFydC1jb21wb25lbnQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQVFMLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixlQUFlLEdBR2hCLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUVMLHdCQUF3QixHQUd6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxnQkFBZ0IsRUFHaEIsY0FBYyxHQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFHaEMsT0FBTyxFQUVMLDBCQUEwQixHQUMzQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7Ozs7O0FBU2hGLE1BQU0sT0FBTyw2QkFBNkI7SUFxRHhDLFlBQ1UsYUFBK0MsRUFDL0MsT0FBb0IsRUFDcEIsUUFBb0I7UUFGcEIsa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQXZEcEIs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QUs7Z0JBTW5CLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLFNBQVM7Z0JBTXZCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxRQUFRO2dCQU10QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsU0FBUztnQkFXdkIsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLDBCQUEwQjtnQkFJeEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBRdWVyeUxpc3QsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnRUeXBlLFxyXG4gIENvbXBvbmVudFdpZGdldFR5cGUsXHJcbiAgTGF5b3V0RGlyZWN0aW9uLFxyXG4gIFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbixcclxuICBUb29sYmFyUHJvcGVydGllcyxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbiAgU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7XHJcbiAgR3JpZFVpQWN0aW9uVHlwZSxcclxuICBTbWFydEdyaWQsXHJcbiAgU21hcnRHcmlkQ29tcG9uZW50LFxyXG4gIFNtYXJ0TGF5b3V0RGVmLFxyXG59IGZyb20gJy4uL3NtYXJ0LWdyaWQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEZpbHRlciwgU21hcnRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC1maWx0ZXIvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydHRyZWVHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXRyZWUvcHJvamVjdHMnO1xyXG5pbXBvcnQge1xyXG4gIEV4cGFuZGFibGVTZWN0aW9uLFxyXG4gIEV4cGFuZGFibGVTZWN0aW9uQ29tcG9uZW50LFxyXG59IGZyb20gJy4uL3NtYXJ0LWV4cGFuZGFibGUtc2VjdGlvbi9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICdmYXN0LWVxdWFscyc7XHJcbmltcG9ydCB7IFNtYXJ0U3R5bGVVdGlsaXR5IH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3V0aWxpdHkvc21hcnQtc3R5bGUtdXRpbGl0eSc7XHJcbmltcG9ydCB7IFNtYXJ0TWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vc21hcnQtbWFwL3NtYXJ0LW1hcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydERpYWdyYW1Db21wb25lbnQgfSBmcm9tICcuLi9zbWFydC1kaWFncmFtL3Byb2plY3RzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtY29tcG9uZW50LWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRDb21wb25lbnRMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgcHJvdGVjdGVkIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNtYXJ0Q29tcG9uZW50TGF5b3V0PzogU21hcnRDb21wb25lbnRMYXlvdXREZWZpbml0aW9uO1xyXG4gIEBJbnB1dCgpIHBhcmVudExheW91dENvbXBvbmVudD86IFNtYXJ0Q29tcG9uZW50TGF5b3V0Q29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIHBhcmVudFNtYXJ0Q29tcG9uZW50OiBhbnk7XHJcbiAgQElucHV0KCkgZ3JpZFJvdzogYW55O1xyXG5cclxuICBjdXJyZW50TGF5b3V0PzogU21hcnRDb21wb25lbnRMYXlvdXREZWZpbml0aW9uO1xyXG5cclxuICB1dWlkPzogc3RyaW5nO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCdmb3JtJylcclxuICBzbWFydEZvcm1MaXN0ITogUXVlcnlMaXN0PFNtYXJ0Zm9ybUNvbXBvbmVudD47XHJcbiAgc21hcnRGb3JtQ29tcG9uZW50PzogU21hcnRmb3JtQ29tcG9uZW50O1xyXG4gIHNtYXJ0Rm9ybT86IFNtYXJ0Rm9ybTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignZ3JpZCcpXHJcbiAgc21hcnRHcmlkTGlzdCE6IFF1ZXJ5TGlzdDxTbWFydEdyaWRDb21wb25lbnQ+O1xyXG4gIHNtYXJ0R3JpZENvbXBvbmVudD86IFNtYXJ0R3JpZENvbXBvbmVudDtcclxuICBzbWFydEdyaWQ/OiBTbWFydEdyaWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ21hcCcpXHJcbiAgc21hcnRNYXBMaXN0ITogUXVlcnlMaXN0PFNtYXJ0TWFwQ29tcG9uZW50PjtcclxuICBzbWFydE1hcENvbXBvbmVudD86IFNtYXJ0TWFwQ29tcG9uZW50O1xyXG4gIG1hcElkPzogc3RyaW5nO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCdkaWFncmFtJylcclxuICBzbWFydERpYWdyYW1MaXN0ITogUXVlcnlMaXN0PFNtYXJ0RGlhZ3JhbUNvbXBvbmVudD47XHJcbiAgc21hcnREaWFncmFtQ29tcG9uZW50PzogU21hcnREaWFncmFtQ29tcG9uZW50O1xyXG4gIHNtYXJ0RGlhZ3JhbUlkPzogc3RyaW5nO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCdmaWx0ZXInKVxyXG4gIHNtYXJ0RmlsdGVyTGlzdCE6IFF1ZXJ5TGlzdDxTbWFydEZpbHRlckNvbXBvbmVudD47XHJcbiAgc21hcnRGaWx0ZXJDb21wb25lbnQ/OiBTbWFydEZpbHRlckNvbXBvbmVudDtcclxuICBzbWFydEZpbHRlcj86IFNtYXJ0RmlsdGVyO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCd0b29sYmFyJylcclxuICB0b29sYmFyTGlzdCE6IFF1ZXJ5TGlzdDxVaUFjdGlvblRvb2xiYXJDb21wb25lbnQ+O1xyXG4gIHRvb2xiYXI/OiBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQ7XHJcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xyXG4gIHRvb2xiYXJQcm9wZXJ0ZXM/OiBUb29sYmFyUHJvcGVydGllcztcclxuXHJcbiAgdHJlZVNlcnZpY2U/OiBTbWFydHRyZWVHZW5lcmljU2VydmljZTtcclxuXHJcbiAgZXhwYW5kYWJsZVNlY3Rpb24/OiBFeHBhbmRhYmxlU2VjdGlvbjxTbWFydENvbXBvbmVudExheW91dERlZmluaXRpb24+O1xyXG5cclxuICBAVmlld0NoaWxkcmVuKEV4cGFuZGFibGVTZWN0aW9uQ29tcG9uZW50KVxyXG4gIGV4cGFuZGFibGVDb21wb25lbnRzITogUXVlcnlMaXN0PEV4cGFuZGFibGVTZWN0aW9uQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihTbWFydENvbXBvbmVudExheW91dENvbXBvbmVudClcclxuICBjb21wb25lbnRzITogUXVlcnlMaXN0PFNtYXJ0Q29tcG9uZW50TGF5b3V0Q29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFNtYXJ0Zm9ybUxheW91dERlZmluaXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50PzogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI/OiBSZW5kZXJlcjJcclxuICApIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0Rm9ybUxpc3Q/LmZpcnN0KSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybUNvbXBvbmVudCh0aGlzLnNtYXJ0Rm9ybUxpc3Q/LmZpcnN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuc21hcnRGb3JtTGlzdC5jaGFuZ2VzXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IFF1ZXJ5TGlzdDxTbWFydGZvcm1Db21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29tcG9uZW50KGxpc3QuZmlyc3QpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zbWFydEdyaWRMaXN0Py5maXJzdCkge1xyXG4gICAgICB0aGlzLnNldEdyaWRDb21wb25lbnQodGhpcy5zbWFydEdyaWRMaXN0Py5maXJzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNtYXJ0R3JpZExpc3QuY2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsaXN0OiBRdWVyeUxpc3Q8U21hcnRHcmlkQ29tcG9uZW50PikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0R3JpZENvbXBvbmVudChsaXN0LmZpcnN0KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRNYXBMaXN0Py5maXJzdCkge1xyXG4gICAgICB0aGlzLnNldE1hcENvbXBvbmVudCh0aGlzLnNtYXJ0TWFwTGlzdD8uZmlyc3QpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zbWFydE1hcExpc3QuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgobWFwcykgPT4ge1xyXG4gICAgICB0aGlzLnNldE1hcENvbXBvbmVudChtYXBzLmZpcnN0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnNtYXJ0RGlhZ3JhbUxpc3Q/LmZpcnN0KSB7XHJcbiAgICAgIHRoaXMuc2V0RGlhZ3JhbUNvbXBvbmVudCh0aGlzLnNtYXJ0RGlhZ3JhbUxpc3Q/LmZpcnN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuc21hcnREaWFncmFtTGlzdC5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKChkaWFncmFtcykgPT4ge1xyXG4gICAgICB0aGlzLnNldERpYWdyYW1Db21wb25lbnQoZGlhZ3JhbXMuZmlyc3QpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zbWFydEZpbHRlckxpc3QuY2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsaXN0OiBRdWVyeUxpc3Q8U21hcnRGaWx0ZXJDb21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNtYXJ0RmlsdGVyQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNtYXJ0RmlsdGVyQ29tcG9uZW50ID0gbGlzdC5maXJzdDtcclxuICAgICAgICAgIHRoaXMuYmluZEZpbHRlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMudG9vbGJhckxpc3Q/LmZpcnN0KSB7XHJcbiAgICAgIHRoaXMuc2V0VG9vbGJhckNvbXBvbmVudCh0aGlzLnRvb2xiYXJMaXN0Py5maXJzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvb2xiYXJMaXN0LmNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgobGlzdDogUXVlcnlMaXN0PFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudD4pID0+IHtcclxuICAgICAgICB0aGlzLnNldFRvb2xiYXJDb21wb25lbnQobGlzdC5maXJzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRVcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRVcCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudCB8fCAhdGhpcy5zbWFydENvbXBvbmVudExheW91dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZGVlcEVxdWFsKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQsIHRoaXMuY3VycmVudExheW91dCkpIHtcclxuICAgICAgLy8gbm8gbGF5b3V0IGNoYW5nZSwga2VlcCBjdXJyZW50IHN0YXRlXHJcbiAgICAgIHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQgPSB0aGlzLmN1cnJlbnRMYXlvdXQ7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIGxheW91dCBjaGFuZ2VkLCByZW5kZXIsIGJ1dCBzYXZlIGN1cnJlbnRcclxuICAgIC8vIHRoaXMuY3VycmVudExheW91dCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zbWFydENvbXBvbmVudExheW91dCkpO1xyXG4gICAgdGhpcy5jdXJyZW50TGF5b3V0ID0gdGhpcy5zbWFydENvbXBvbmVudExheW91dDtcclxuXHJcbiAgICB0aGlzLnV1aWQgPSB0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50LnV1aWQ7XHJcbiAgICB0aGlzLnRyZWVTZXJ2aWNlID0gdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudC5zbWFydFRyZWVTZXJ2aWNlO1xyXG5cclxuICAgIHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LmRpcmVjdGlvbjtcclxuXHJcbiAgICAvLyB0aGUgbmF0dXJlIG9mIHRoZSBsYXlvdXQgbWlnaHQgaGF2ZSBjaGFuZ2VkIChlLmcuIGZyb20gR1JJRCB0byBGT1JNKSwgd2UgbnVsbCBvdXQgZXZlcnlcclxuICAgIC8vIHRlbXBsYXRlLXJlbGF0ZWQgZWxlbWVudCwgc28gbm8gc3RhbGUgZGF0YSBpcyBsZWZ0IG9uIHNjcmVlbjpcclxuICAgIHRoaXMuZXhwYW5kYWJsZVNlY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtYXJ0Rm9ybSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc21hcnRGb3JtQ29tcG9uZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zbWFydEdyaWQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtYXJ0R3JpZENvbXBvbmVudCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc21hcnRGaWx0ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtYXJ0RmlsdGVyQ29tcG9uZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zbWFydEdyaWQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRvb2xiYXJJZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudG9vbGJhciA9IHVuZGVmaW5lZDtcclxuICAgIC8vIG51bGwgb3V0IHRvb2xiYXI/XHJcbiAgICB0aGlzLm1hcElkID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zbWFydERpYWdyYW1JZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dD8uZXhwYW5kYWJsZSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdEV4cGFuZGFibGVTZWN0aW9uKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LnR5cGUgPT09IENvbXBvbmVudFR5cGUuRk9STSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdEZvcm0oKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dD8udHlwZSA9PT0gQ29tcG9uZW50VHlwZS5XSURHRVQpIHtcclxuICAgICAgaWYgKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQud2lkZ2V0Py50eXBlID09PSBDb21wb25lbnRXaWRnZXRUeXBlLkdSSUQpIHtcclxuICAgICAgICB0aGlzLmNvbnN0cnVjdEdyaWQoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0LndpZGdldD8udHlwZSA9PT0gQ29tcG9uZW50V2lkZ2V0VHlwZS5GSUxURVIpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ0NvbXBvbmVudFdpZGdldFR5cGUuRklMVEVSIGlzIG5vdCBzdXBwb3J0ZWQnKTtcclxuICAgICAgICAvLyB0aGlzLmNvbnN0cnVjdEZpbHRlcigpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQud2lkZ2V0Py50eXBlID09PSBDb21wb25lbnRXaWRnZXRUeXBlLlRSRUUpIHtcclxuICAgICAgICB0aGlzLmNvbnN0cnVjdFRyZWUoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0LndpZGdldD8udHlwZSA9PT0gQ29tcG9uZW50V2lkZ2V0VHlwZS5UT09MQkFSKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdHJ1Y3RUb29sYmFyKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dC53aWRnZXQ/LnR5cGUgPT09IENvbXBvbmVudFdpZGdldFR5cGUuTUFQKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdHJ1Y3RNYXAoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0LndpZGdldD8udHlwZSA9PT0gQ29tcG9uZW50V2lkZ2V0VHlwZS5ESUFHUkFNKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdHJ1Y0RpYWdyYW0oKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLnBhcmVudExheW91dENvbXBvbmVudCkge1xyXG4gICAgICAgIC8vIG9ubHkgdG9wIGxldmVsIGNvbXBvbmVudCBzaG91bGQgY2FsbCBpbml0IGFjdGlvbnNcclxuICAgICAgICB0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50LmluaXRBY3Rpb25zKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBTbWFydFN0eWxlVXRpbGl0eS5hcHBseVN0eWxlKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQuc3R5bGUsIHRoaXMuZWxlbWVudCwgdGhpcy5yZW5kZXJlcik7XHJcbiAgfVxyXG5cclxuICB0eXBlKCk6IHR5cGVvZiBDb21wb25lbnRUeXBlIHtcclxuICAgIHJldHVybiBDb21wb25lbnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0RXhwYW5kYWJsZVNlY3Rpb24oKTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YTogU21hcnRDb21wb25lbnRMYXlvdXREZWZpbml0aW9uID0geyAuLi50aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0ISB9O1xyXG4gICAgZGF0YS5leHBhbmRhYmxlID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5leHBhbmRhYmxlU2VjdGlvbiA9IHtcclxuICAgICAgdGl0bGU6IHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LmV4cGFuZGFibGVTZWN0aW9uTGFiZWwgPz8gJycsXHJcbiAgICAgIGlucHV0czogbmV3IE1hcDxzdHJpbmcsIGFueT4oW1xyXG4gICAgICAgIFsnc21hcnRDb21wb25lbnRMYXlvdXQnLCBkYXRhXSxcclxuICAgICAgICBbJ3BhcmVudFNtYXJ0Q29tcG9uZW50JywgdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudF0sXHJcbiAgICAgICAgWydwYXJlbnRMYXlvdXRDb21wb25lbnQnLCB0aGlzLnBhcmVudExheW91dENvbXBvbmVudF0sXHJcbiAgICAgIF0pLFxyXG4gICAgICBjdXN0b21Db21wb25lbnQ6IFNtYXJ0Q29tcG9uZW50TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdEZvcm0oKTogdm9pZCB7XHJcbiAgICBjb25zdCB3aWRnZXRzID0gdGhpcy5sYXlvdXRTZXJ2aWNlLnJlbmRlcih7XHJcbiAgICAgIGxheW91dERlZmluaXRpb25zOiB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py5mb3JtLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZ3JpZFJvdyAmJiAhdGhpcy5ncmlkUm93LnZhbHVlU2V0KSB7XHJcbiAgICAgIHRoaXMuZ3JpZFJvdy52YWx1ZVNldHMgPSB0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50Lm1vZGVsLnZhbHVlU2V0cztcclxuICAgIH1cclxuICAgIHRoaXMuc21hcnRGb3JtID0ge1xyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuZ2V0Rm9ybUxheW91dCgpLFxyXG4gICAgICBjb21wb25lbnRNb2RlbDogdGhpcy5ncmlkUm93ID8gdGhpcy5ncmlkUm93IDogdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudD8ubW9kZWwsXHJcbiAgICAgIHdpZGdldHMsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYmluZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1MYXlvdXQoKTogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py5kaXJlY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LmRpcmVjdGlvbiA9PT0gTGF5b3V0RGlyZWN0aW9uLkhPUklaT05UQUxcclxuICAgICAgICA/IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5ST1dcclxuICAgICAgICA6IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0w7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLkNPTDtcclxuICB9XHJcblxyXG4gIHNldEZvcm1Db21wb25lbnQoY29tcDogU21hcnRmb3JtQ29tcG9uZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuc21hcnRGb3JtQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuc21hcnRGb3JtQ29tcG9uZW50ID0gY29tcDtcclxuICAgICAgdGhpcy5iaW5kRm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmluZEZvcm0oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wYXJlbnRTbWFydENvbXBvbmVudD8udXNlUXVlcnlMaXN0cykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zbWFydEZvcm0gJiYgdGhpcy5zbWFydEZvcm1Db21wb25lbnQpIHtcclxuICAgICAgdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudD8uYWRkRm9ybShcclxuICAgICAgICAvLyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZvcm1cclxuICAgICAgICBgZm9ybV8ke3RoaXMubWFrZWlkKDUpfWAsXHJcbiAgICAgICAgdGhpcy5zbWFydEZvcm0sXHJcbiAgICAgICAgdGhpcy5zbWFydEZvcm1Db21wb25lbnRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1ha2VpZChsZW5ndGg6IG51bWJlcikge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XHJcbiAgICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVycy5sZW5ndGg7XHJcbiAgICBsZXQgY291bnRlciA9IDA7XHJcbiAgICB3aGlsZSAoY291bnRlciA8IGxlbmd0aCkge1xyXG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xyXG4gICAgICBjb3VudGVyICs9IDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0R3JpZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc21hcnRHcmlkID0ge1xyXG4gICAgICBncmlkSWRlbnRpZmllcjogdGhpcy5zbWFydENvbXBvbmVudExheW91dD8ud2lkZ2V0Py5pZGVudGlmaWVyISxcclxuICAgICAgZ3JpZE1vZGVsOiB7XHJcbiAgICAgICAgcGFnZToge30sXHJcbiAgICAgIH0sXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByb3dVaUFjdGlvblR5cGU6IEdyaWRVaUFjdGlvblR5cGUuUE9QVVBfTUVOVSxcclxuICAgICAgfSxcclxuICAgICAgbGF5b3V0RGVmOiBTbWFydExheW91dERlZi5UQUJMRSxcclxuICAgICAgcGFnaW5hdG9yOiB0cnVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmJpbmRHcmlkKCk7XHJcbiAgfVxyXG5cclxuICBzZXRHcmlkQ29tcG9uZW50KGNvbXA6IFNtYXJ0R3JpZENvbXBvbmVudCkge1xyXG4gICAgaWYgKCF0aGlzLnNtYXJ0R3JpZENvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLnNtYXJ0R3JpZENvbXBvbmVudCA9IGNvbXA7XHJcbiAgICAgIHRoaXMuYmluZEdyaWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJpbmRHcmlkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50U21hcnRDb21wb25lbnQ/LnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc21hcnRHcmlkICYmIHRoaXMuc21hcnRHcmlkQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuc21hcnRHcmlkID0gdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudD8uYWRkR3JpZChcclxuICAgICAgICB0aGlzLnNtYXJ0R3JpZCxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dVaUFjdGlvblR5cGU6IEdyaWRVaUFjdGlvblR5cGUuUE9QVVBfTUVOVSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhbHNlLFxyXG4gICAgICAgIHRoaXMuc21hcnRHcmlkQ29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RNYXAoKSB7XHJcbiAgICB0aGlzLm1hcElkID0gdGhpcy5zbWFydENvbXBvbmVudExheW91dD8ud2lkZ2V0Py5pZGVudGlmaWVyO1xyXG4gICAgdGhpcy5iaW5kTWFwKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y0RpYWdyYW0oKSB7XHJcbiAgICB0aGlzLnNtYXJ0RGlhZ3JhbUlkID0gdGhpcy5zbWFydENvbXBvbmVudExheW91dD8ud2lkZ2V0Py5pZGVudGlmaWVyO1xyXG4gICAgdGhpcy5iaW5kRGlhZ3JhbSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TWFwQ29tcG9uZW50KGNvbXA6IFNtYXJ0TWFwQ29tcG9uZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuc21hcnRNYXBDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5zbWFydE1hcENvbXBvbmVudCA9IGNvbXA7XHJcbiAgICAgIHRoaXMuYmluZE1hcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGlhZ3JhbUNvbXBvbmVudChjb21wOiBTbWFydERpYWdyYW1Db21wb25lbnQpIHtcclxuICAgIGlmICghdGhpcy5zbWFydERpYWdyYW1Db21wb25lbnQpIHtcclxuICAgICAgdGhpcy5zbWFydERpYWdyYW1Db21wb25lbnQgPSBjb21wO1xyXG4gICAgICB0aGlzLmJpbmREaWFncmFtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiaW5kTWFwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50U21hcnRDb21wb25lbnQudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS53YXJuKCdNYXAgY29tcG9uZW50cyBhcmUgb25seSBzdXBwb3J0ZWQgdGhyb3VnaCBRdWVyeUxpc3RzIScpO1xyXG4gIH1cclxuXHJcbiAgYmluZERpYWdyYW0oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wYXJlbnRTbWFydENvbXBvbmVudC51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLndhcm4oJ0RpYWdyYW0gY29tcG9uZW50cyBhcmUgb25seSBzdXBwb3J0ZWQgdGhyb3VnaCBRdWVyeUxpc3RzIScpO1xyXG4gIH1cclxuXHJcbiAgc2V0VG9vbGJhckNvbXBvbmVudChjb21wOiBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQpIHtcclxuICAgIHRoaXMudG9vbGJhciA9IGNvbXA7XHJcbiAgfVxyXG5cclxuICAvLyBOT1QgVVNFRCwgRE9FU04nVCBXT1JLXHJcbiAgLy8gY29uc3RydWN0RmlsdGVyKCk6IHZvaWQge1xyXG4gIC8vICAgdGhpcy5zbWFydEZpbHRlciA9ICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0IS5wYXJlbnRDb21wb25lbnQgYXMgYW55KS5hZGRGaWx0ZXIoXHJcbiAgLy8gICAgIGBmaWx0ZXJfJHt0aGlzLm1ha2VpZCg1KX1gLFxyXG4gIC8vICAgICB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py53aWRnZXQ/LmZpbHRlckV4cHJlc3Npb25GaWVsZExpc3QsXHJcbiAgLy8gICAgIHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LndpZGdldD8uZmlsdGVyVHlwZSxcclxuICAvLyAgICAgdGhpcy5zbWFydEZpbHRlckNvbXBvbmVudFxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcblxyXG4gIGJpbmRGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICAvLyBUT0RPXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RUcmVlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50U21hcnRDb21wb25lbnQ/LnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudC5zZXRVcERlZmF1bHRUcmVlKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LndpZGdldD8uaWRlbnRpZmllcik7XHJcbiAgICB0aGlzLnRyZWVTZXJ2aWNlPy5pbml0aWFsaXplKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RUb29sYmFyKCk6IHZvaWQge1xyXG4gICAgbGV0IHRvb2xiYXJJZCA9IHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LndpZGdldD8uaWRlbnRpZmllcjtcclxuICAgIGlmICh0aGlzLnRvb2xiYXJJZCAhPT0gdG9vbGJhcklkKSB7XHJcbiAgICAgIHRoaXMudG9vbGJhcklkID0gdG9vbGJhcklkO1xyXG4gICAgfVxyXG4gICAgbGV0IHByb3BlcnRpZXMgPSB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py53aWRnZXQ/LnByb3BlcnRpZXM7XHJcbiAgICBpZiAocHJvcGVydGllcyAmJiBwcm9wZXJ0aWVzWyd0b29sYmFyX3Byb3BlcnRpZXMnXSkge1xyXG4gICAgICB0aGlzLnRvb2xiYXJQcm9wZXJ0ZXMgPSBwcm9wZXJ0aWVzWyd0b29sYmFyX3Byb3BlcnRpZXMnXTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInNtYXJ0Q29tcG9uZW50TGF5b3V0Py5leHBhbmRhYmxlOyB0aGVuIGV4cGFuZGFibGU7IGVsc2Ugbm9ybWFsXCI+IDwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNleHBhbmRhYmxlPlxyXG4gIDxzbWFydC1leHBhbmRhYmxlLXNlY3Rpb25cclxuICAgICpuZ0lmPVwiZXhwYW5kYWJsZVNlY3Rpb25cIlxyXG4gICAgW2RhdGFdPVwiZXhwYW5kYWJsZVNlY3Rpb25cIlxyXG4gID48L3NtYXJ0LWV4cGFuZGFibGUtc2VjdGlvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbm9ybWFsPlxyXG4gIDxkaXZcclxuICAgICpuZ0lmPVwic21hcnRDb21wb25lbnRMYXlvdXQ/LnR5cGUgPT09IHR5cGUoKS5DT05UQUlORVJcIlxyXG4gICAgW25nQ2xhc3NdPVwic21hcnRDb21wb25lbnRMYXlvdXQ/LmRpcmVjdGlvbiA/PyAndmVydGljYWwnXCJcclxuICA+XHJcbiAgICA8c21hcnQtY29tcG9uZW50LWxheW91dFxyXG4gICAgICAqbmdGb3I9XCJsZXQgbGF5b3V0IG9mIHNtYXJ0Q29tcG9uZW50TGF5b3V0Py5jb21wb25lbnRzXCJcclxuICAgICAgW3BhcmVudFNtYXJ0Q29tcG9uZW50XT1cInBhcmVudFNtYXJ0Q29tcG9uZW50XCJcclxuICAgICAgW3BhcmVudExheW91dENvbXBvbmVudF09XCJ0aGlzXCJcclxuICAgICAgW3NtYXJ0Q29tcG9uZW50TGF5b3V0XT1cImxheW91dFwiXHJcbiAgICAgIFtncmlkUm93XT1cImdyaWRSb3dcIlxyXG4gICAgPjwvc21hcnQtY29tcG9uZW50LWxheW91dD5cclxuICA8L2Rpdj5cclxuICA8c21hcnRmb3JtICpuZ0lmPVwic21hcnRGb3JtXCIgI2Zvcm0gW3NtYXJ0Rm9ybV09XCJzbWFydEZvcm1cIj48L3NtYXJ0Zm9ybT5cclxuICA8c21hcnQtZ3JpZCAqbmdJZj1cInNtYXJ0R3JpZFwiICNncmlkIFtzbWFydEdyaWRdPVwic21hcnRHcmlkXCIgW3V1aWRdPVwidXVpZCFcIj48L3NtYXJ0LWdyaWQ+XHJcbiAgPHNtYXJ0LW1hcFxyXG4gICAgKm5nSWY9XCIhIXV1aWQgJiYgISFtYXBJZFwiXHJcbiAgICAjbWFwXHJcbiAgICBbdXVpZF09XCJ1dWlkXCJcclxuICAgIFtpZGVudGlmaWVyXT1cIm1hcElkXCJcclxuICAgIFtwYXJlbnRdPVwicGFyZW50U21hcnRDb21wb25lbnRcIlxyXG4gID48L3NtYXJ0LW1hcD5cclxuICA8c21hcnQtZGlhZ3JhbVxyXG4gICAgKm5nSWY9XCIhIXV1aWQgJiYgISFzbWFydERpYWdyYW1JZFwiXHJcbiAgICAjZGlhZ3JhbVxyXG4gICAgW3V1aWRdPVwidXVpZFwiXHJcbiAgICBbaWRlbnRpZmllcl09XCJzbWFydERpYWdyYW1JZFwiXHJcbiAgICBbcGFyZW50XT1cInBhcmVudFNtYXJ0Q29tcG9uZW50XCJcclxuICA+PC9zbWFydC1kaWFncmFtPlxyXG4gIDwhLS0gPHNtYXJ0LWZpbHRlciAjZmlsdGVyIFtmaWx0ZXJdPVwic21hcnRGaWx0ZXJcIj48L3NtYXJ0LWZpbHRlcj4gLS0+XHJcbiAgPHNtYXJ0LXRyZWUgKm5nSWY9XCJ0cmVlU2VydmljZVwiIFt0cmVlU2VydmljZV09XCJ0cmVlU2VydmljZSFcIj48L3NtYXJ0LXRyZWU+XHJcbiAgPHNtYXJ0LXVpLWFjdGlvbi10b29sYmFyXHJcbiAgICAqbmdJZj1cIiEhdG9vbGJhcklkXCJcclxuICAgICN0b29sYmFyXHJcbiAgICBbaWRdPVwidG9vbGJhcklkXCJcclxuICAgIFt0b29sYmFyUHJvcGVydGVzXT1cInRvb2xiYXJQcm9wZXJ0ZXNcIlxyXG4gID48L3NtYXJ0LXVpLWFjdGlvbi10b29sYmFyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29tcG9uZW50LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jb21wb25lbnQtbGF5b3V0L3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtY29tcG9uZW50LWxheW91dC9zbWFydC1jb21wb25lbnQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQU9MLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGVBQWUsR0FHaEIsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBRUwsd0JBQXdCLEdBR3pCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUNMLGdCQUFnQixFQUdoQixjQUFjLEdBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxPQUFPLEVBRUwsMEJBQTBCLEdBQzNCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVWhGLE1BQU0sT0FBTyw2QkFBNkI7SUFtRHhDLElBQ0ksdUJBQXVCLENBQUMsS0FBbUM7UUFDN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxD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QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0Usd0JBQXdCOzRMQU96QixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixZQUFZO3VCQUFDLE1BQU07Z0JBTXBCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxNQUFNO2dCQU1wQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsS0FBSztnQkFNbkIsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsU0FBUztnQkFNdkIsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLFFBQVE7Z0JBTXRCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxTQUFTO2dCQWVuQix1QkFBdUI7c0JBRDFCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBU3BFLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQywwQkFBMEI7Z0JBSXhDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnRUeXBlLFxyXG4gIENvbXBvbmVudFdpZGdldFR5cGUsXHJcbiAgTGF5b3V0RGlyZWN0aW9uLFxyXG4gIFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbixcclxuICBUb29sYmFyUHJvcGVydGllcyxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbiAgU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7XHJcbiAgR3JpZFVpQWN0aW9uVHlwZSxcclxuICBTbWFydEdyaWQsXHJcbiAgU21hcnRHcmlkQ29tcG9uZW50LFxyXG4gIFNtYXJ0TGF5b3V0RGVmLFxyXG59IGZyb20gJy4uL3NtYXJ0LWdyaWQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEZpbHRlciwgU21hcnRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC1maWx0ZXIvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydHRyZWVHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXRyZWUvcHJvamVjdHMnO1xyXG5pbXBvcnQge1xyXG4gIEV4cGFuZGFibGVTZWN0aW9uLFxyXG4gIEV4cGFuZGFibGVTZWN0aW9uQ29tcG9uZW50LFxyXG59IGZyb20gJy4uL3NtYXJ0LWV4cGFuZGFibGUtc2VjdGlvbi9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICdmYXN0LWVxdWFscyc7XHJcbmltcG9ydCB7IFNtYXJ0U3R5bGVVdGlsaXR5IH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3V0aWxpdHkvc21hcnQtc3R5bGUtdXRpbGl0eSc7XHJcbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRNYXBDb21wb25lbnQgfSBmcm9tICcuLi9zbWFydC1tYXAvc21hcnQtbWFwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtYXJ0RGlhZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4uL3NtYXJ0LWRpYWdyYW0vcHJvamVjdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzbWFydC1jb21wb25lbnQtbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtY29tcG9uZW50LWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtY29tcG9uZW50LWxheW91dC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydENvbXBvbmVudExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBwcm90ZWN0ZWQgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgQElucHV0KCkgc21hcnRDb21wb25lbnRMYXlvdXQ/OiBTbWFydENvbXBvbmVudExheW91dERlZmluaXRpb247XHJcbiAgQElucHV0KCkgcGFyZW50TGF5b3V0Q29tcG9uZW50PzogU21hcnRDb21wb25lbnRMYXlvdXRDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgcGFyZW50U21hcnRDb21wb25lbnQ6IGFueTtcclxuICBASW5wdXQoKSBncmlkUm93OiBhbnk7XHJcblxyXG4gIGN1cnJlbnRMYXlvdXQ/OiBTbWFydENvbXBvbmVudExheW91dERlZmluaXRpb247XHJcblxyXG4gIHV1aWQ/OiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2Zvcm0nKVxyXG4gIHNtYXJ0Rm9ybUxpc3QhOiBRdWVyeUxpc3Q8U21hcnRmb3JtQ29tcG9uZW50PjtcclxuICBzbWFydEZvcm1Db21wb25lbnQ/OiBTbWFydGZvcm1Db21wb25lbnQ7XHJcbiAgc21hcnRGb3JtPzogU21hcnRGb3JtO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCdncmlkJylcclxuICBzbWFydEdyaWRMaXN0ITogUXVlcnlMaXN0PFNtYXJ0R3JpZENvbXBvbmVudD47XHJcbiAgc21hcnRHcmlkQ29tcG9uZW50PzogU21hcnRHcmlkQ29tcG9uZW50O1xyXG4gIHNtYXJ0R3JpZD86IFNtYXJ0R3JpZDtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignbWFwJylcclxuICBzbWFydE1hcExpc3QhOiBRdWVyeUxpc3Q8U21hcnRNYXBDb21wb25lbnQ+O1xyXG4gIHNtYXJ0TWFwQ29tcG9uZW50PzogU21hcnRNYXBDb21wb25lbnQ7XHJcbiAgbWFwSWQ/OiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2RpYWdyYW0nKVxyXG4gIHNtYXJ0RGlhZ3JhbUxpc3QhOiBRdWVyeUxpc3Q8U21hcnREaWFncmFtQ29tcG9uZW50PjtcclxuICBzbWFydERpYWdyYW1Db21wb25lbnQ/OiBTbWFydERpYWdyYW1Db21wb25lbnQ7XHJcbiAgc21hcnREaWFncmFtSWQ/OiBzdHJpbmc7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2ZpbHRlcicpXHJcbiAgc21hcnRGaWx0ZXJMaXN0ITogUXVlcnlMaXN0PFNtYXJ0RmlsdGVyQ29tcG9uZW50PjtcclxuICBzbWFydEZpbHRlckNvbXBvbmVudD86IFNtYXJ0RmlsdGVyQ29tcG9uZW50O1xyXG4gIHNtYXJ0RmlsdGVyPzogU21hcnRGaWx0ZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ3Rvb2xiYXInKVxyXG4gIHRvb2xiYXJMaXN0ITogUXVlcnlMaXN0PFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudD47XHJcbiAgdG9vbGJhcj86IFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudDtcclxuICB0b29sYmFySWQ/OiBzdHJpbmc7XHJcbiAgdG9vbGJhclByb3BlcnRlcz86IFRvb2xiYXJQcm9wZXJ0aWVzO1xyXG5cclxuICB0cmVlU2VydmljZT86IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlO1xyXG5cclxuICBleHBhbmRhYmxlU2VjdGlvbj86IEV4cGFuZGFibGVTZWN0aW9uPFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbj47XHJcblxyXG4gIGVtYmVkZGVkU2xvdEFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVtYmVkZGVkU2xvdENvbnRhaW5lcklkPzogc3RyaW5nO1xyXG4gIF9lbWJlZGRlZFNsb3RWY1JlZj86IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VtYmVkZGVkU2xvdCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHNldCBlbWJlZGRlZFNsb3RWY1JlZlNldHRlcih2Y1JlZjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fZW1iZWRkZWRTbG90VmNSZWYgPSB2Y1JlZjtcclxuICAgIGlmICh2Y1JlZikge1xyXG4gICAgICB0aGlzLnRyeVJlZ2lzdGVyRW1iZWRkZWRTbG90KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKEV4cGFuZGFibGVTZWN0aW9uQ29tcG9uZW50KVxyXG4gIGV4cGFuZGFibGVDb21wb25lbnRzITogUXVlcnlMaXN0PEV4cGFuZGFibGVTZWN0aW9uQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihTbWFydENvbXBvbmVudExheW91dENvbXBvbmVudClcclxuICBjb21wb25lbnRzITogUXVlcnlMaXN0PFNtYXJ0Q29tcG9uZW50TGF5b3V0Q29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFNtYXJ0Zm9ybUxheW91dERlZmluaXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGV4dDogU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ/OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcj86IFJlbmRlcmVyMlxyXG4gICkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtTGlzdD8uZmlyc3QpIHtcclxuICAgICAgdGhpcy5zZXRGb3JtQ29tcG9uZW50KHRoaXMuc21hcnRGb3JtTGlzdD8uZmlyc3QpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zbWFydEZvcm1MaXN0LmNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgobGlzdDogUXVlcnlMaXN0PFNtYXJ0Zm9ybUNvbXBvbmVudD4pID0+IHtcclxuICAgICAgICB0aGlzLnNldEZvcm1Db21wb25lbnQobGlzdC5maXJzdCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnNtYXJ0R3JpZExpc3Q/LmZpcnN0KSB7XHJcbiAgICAgIHRoaXMuc2V0R3JpZENvbXBvbmVudCh0aGlzLnNtYXJ0R3JpZExpc3Q/LmZpcnN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuc21hcnRHcmlkTGlzdC5jaGFuZ2VzXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IFF1ZXJ5TGlzdDxTbWFydEdyaWRDb21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRHcmlkQ29tcG9uZW50KGxpc3QuZmlyc3QpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zbWFydE1hcExpc3Q/LmZpcnN0KSB7XHJcbiAgICAgIHRoaXMuc2V0TWFwQ29tcG9uZW50KHRoaXMuc21hcnRNYXBMaXN0Py5maXJzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNtYXJ0TWFwTGlzdC5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKChtYXBzKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0TWFwQ29tcG9uZW50KG1hcHMuZmlyc3QpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnREaWFncmFtTGlzdD8uZmlyc3QpIHtcclxuICAgICAgdGhpcy5zZXREaWFncmFtQ29tcG9uZW50KHRoaXMuc21hcnREaWFncmFtTGlzdD8uZmlyc3QpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zbWFydERpYWdyYW1MaXN0LmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKGRpYWdyYW1zKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RGlhZ3JhbUNvbXBvbmVudChkaWFncmFtcy5maXJzdCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNtYXJ0RmlsdGVyTGlzdC5jaGFuZ2VzXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IFF1ZXJ5TGlzdDxTbWFydEZpbHRlckNvbXBvbmVudD4pID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuc21hcnRGaWx0ZXJDb21wb25lbnQpIHtcclxuICAgICAgICAgIHRoaXMuc21hcnRGaWx0ZXJDb21wb25lbnQgPSBsaXN0LmZpcnN0O1xyXG4gICAgICAgICAgdGhpcy5iaW5kRmlsdGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy50b29sYmFyTGlzdD8uZmlyc3QpIHtcclxuICAgICAgdGhpcy5zZXRUb29sYmFyQ29tcG9uZW50KHRoaXMudG9vbGJhckxpc3Q/LmZpcnN0KTtcclxuICAgIH1cclxuICAgIHRoaXMudG9vbGJhckxpc3QuY2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsaXN0OiBRdWVyeUxpc3Q8VWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50PikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0VG9vbGJhckNvbXBvbmVudChsaXN0LmZpcnN0KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNldFVwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVtYmVkZGVkU2xvdENvbnRhaW5lcklkICYmIHRoaXMudXVpZCkge1xyXG4gICAgICB0aGlzLnZpZXdDb250ZXh0LnVucmVnaXN0ZXJFbWJlZGRlZFNsb3QodGhpcy51dWlkLCB0aGlzLmVtYmVkZGVkU2xvdENvbnRhaW5lcklkKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFVwKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50IHx8ICF0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChkZWVwRXF1YWwodGhpcy5zbWFydENvbXBvbmVudExheW91dCwgdGhpcy5jdXJyZW50TGF5b3V0KSkge1xyXG4gICAgICAvLyBubyBsYXlvdXQgY2hhbmdlLCBrZWVwIGN1cnJlbnQgc3RhdGVcclxuICAgICAgdGhpcy5zbWFydENvbXBvbmVudExheW91dCA9IHRoaXMuY3VycmVudExheW91dDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gbGF5b3V0IGNoYW5nZWQsIHJlbmRlciwgYnV0IHNhdmUgY3VycmVudFxyXG4gICAgLy8gdGhpcy5jdXJyZW50TGF5b3V0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0KSk7XHJcbiAgICB0aGlzLmN1cnJlbnRMYXlvdXQgPSB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0O1xyXG5cclxuICAgIHRoaXMudXVpZCA9IHRoaXMucGFyZW50U21hcnRDb21wb25lbnQudXVpZDtcclxuICAgIHRoaXMudHJlZVNlcnZpY2UgPSB0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50LnNtYXJ0VHJlZVNlcnZpY2U7XHJcblxyXG4gICAgdGhpcy5zbWFydENvbXBvbmVudExheW91dD8uZGlyZWN0aW9uO1xyXG5cclxuICAgIC8vIHRoZSBuYXR1cmUgb2YgdGhlIGxheW91dCBtaWdodCBoYXZlIGNoYW5nZWQgKGUuZy4gZnJvbSBHUklEIHRvIEZPUk0pLCB3ZSBudWxsIG91dCBldmVyeVxyXG4gICAgLy8gdGVtcGxhdGUtcmVsYXRlZCBlbGVtZW50LCBzbyBubyBzdGFsZSBkYXRhIGlzIGxlZnQgb24gc2NyZWVuOlxyXG4gICAgdGhpcy5leHBhbmRhYmxlU2VjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc21hcnRGb3JtID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zbWFydEZvcm1Db21wb25lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtYXJ0R3JpZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc21hcnRHcmlkQ29tcG9uZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zbWFydEZpbHRlciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc21hcnRGaWx0ZXJDb21wb25lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtYXJ0R3JpZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudG9vbGJhcklkID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50b29sYmFyID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gbnVsbCBvdXQgdG9vbGJhcj9cclxuICAgIHRoaXMubWFwSWQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtYXJ0RGlhZ3JhbUlkID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuZW1iZWRkZWRTbG90Q29udGFpbmVySWQgJiYgdGhpcy51dWlkKSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRleHQudW5yZWdpc3RlckVtYmVkZGVkU2xvdCh0aGlzLnV1aWQsIHRoaXMuZW1iZWRkZWRTbG90Q29udGFpbmVySWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbWJlZGRlZFNsb3RBY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuZW1iZWRkZWRTbG90Q29udGFpbmVySWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LmV4cGFuZGFibGUpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RFeHBhbmRhYmxlU2VjdGlvbigpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py50eXBlID09PSBDb21wb25lbnRUeXBlLkZPUk0pIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LnR5cGUgPT09IENvbXBvbmVudFR5cGUuV0lER0VUKSB7XHJcbiAgICAgIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0LndpZGdldD8udHlwZSA9PT0gQ29tcG9uZW50V2lkZ2V0VHlwZS5HUklEKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdHJ1Y3RHcmlkKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dC53aWRnZXQ/LnR5cGUgPT09IENvbXBvbmVudFdpZGdldFR5cGUuRklMVEVSKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdDb21wb25lbnRXaWRnZXRUeXBlLkZJTFRFUiBpcyBub3Qgc3VwcG9ydGVkJyk7XHJcbiAgICAgICAgLy8gdGhpcy5jb25zdHJ1Y3RGaWx0ZXIoKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0LndpZGdldD8udHlwZSA9PT0gQ29tcG9uZW50V2lkZ2V0VHlwZS5UUkVFKSB7XHJcbiAgICAgICAgdGhpcy5jb25zdHJ1Y3RUcmVlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dC53aWRnZXQ/LnR5cGUgPT09IENvbXBvbmVudFdpZGdldFR5cGUuVE9PTEJBUikge1xyXG4gICAgICAgIHRoaXMuY29uc3RydWN0VG9vbGJhcigpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQud2lkZ2V0Py50eXBlID09PSBDb21wb25lbnRXaWRnZXRUeXBlLk1BUCkge1xyXG4gICAgICAgIHRoaXMuY29uc3RydWN0TWFwKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dC53aWRnZXQ/LnR5cGUgPT09IENvbXBvbmVudFdpZGdldFR5cGUuRElBR1JBTSkge1xyXG4gICAgICAgIHRoaXMuY29uc3RydWNEaWFncmFtKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dC53aWRnZXQ/LnR5cGUgPT09IENvbXBvbmVudFdpZGdldFR5cGUuRU1CRURERURfU0xPVCkge1xyXG4gICAgICAgIHRoaXMuY29uc3RydWN0RW1iZWRkZWRTbG90KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5wYXJlbnRMYXlvdXRDb21wb25lbnQpIHtcclxuICAgICAgICAvLyBvbmx5IHRvcCBsZXZlbCBjb21wb25lbnQgc2hvdWxkIGNhbGwgaW5pdCBhY3Rpb25zXHJcbiAgICAgICAgdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudC5pbml0QWN0aW9ucygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgU21hcnRTdHlsZVV0aWxpdHkuYXBwbHlTdHlsZSh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0LnN0eWxlLCB0aGlzLmVsZW1lbnQsIHRoaXMucmVuZGVyZXIpO1xyXG4gIH1cclxuXHJcbiAgdHlwZSgpOiB0eXBlb2YgQ29tcG9uZW50VHlwZSB7XHJcbiAgICByZXR1cm4gQ29tcG9uZW50VHlwZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdEV4cGFuZGFibGVTZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgbGV0IGRhdGE6IFNtYXJ0Q29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbiA9IHsgLi4udGhpcy5zbWFydENvbXBvbmVudExheW91dCEgfTtcclxuICAgIGRhdGEuZXhwYW5kYWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuZXhwYW5kYWJsZVNlY3Rpb24gPSB7XHJcbiAgICAgIHRpdGxlOiB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py5leHBhbmRhYmxlU2VjdGlvbkxhYmVsID8/ICcnLFxyXG4gICAgICBpbnB1dHM6IG5ldyBNYXA8c3RyaW5nLCBhbnk+KFtcclxuICAgICAgICBbJ3NtYXJ0Q29tcG9uZW50TGF5b3V0JywgZGF0YV0sXHJcbiAgICAgICAgWydwYXJlbnRTbWFydENvbXBvbmVudCcsIHRoaXMucGFyZW50U21hcnRDb21wb25lbnRdLFxyXG4gICAgICAgIFsncGFyZW50TGF5b3V0Q29tcG9uZW50JywgdGhpcy5wYXJlbnRMYXlvdXRDb21wb25lbnRdLFxyXG4gICAgICBdKSxcclxuICAgICAgY3VzdG9tQ29tcG9uZW50OiBTbWFydENvbXBvbmVudExheW91dENvbXBvbmVudCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgd2lkZ2V0cyA9IHRoaXMubGF5b3V0U2VydmljZS5yZW5kZXIoe1xyXG4gICAgICBsYXlvdXREZWZpbml0aW9uczogdGhpcy5zbWFydENvbXBvbmVudExheW91dD8uZm9ybSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmdyaWRSb3cgJiYgIXRoaXMuZ3JpZFJvdy52YWx1ZVNldCkge1xyXG4gICAgICB0aGlzLmdyaWRSb3cudmFsdWVTZXRzID0gdGhpcy5wYXJlbnRTbWFydENvbXBvbmVudC5tb2RlbC52YWx1ZVNldHM7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNtYXJ0Rm9ybSA9IHtcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLmdldEZvcm1MYXlvdXQoKSxcclxuICAgICAgY29tcG9uZW50TW9kZWw6IHRoaXMuZ3JpZFJvdyA/IHRoaXMuZ3JpZFJvdyA6IHRoaXMucGFyZW50U21hcnRDb21wb25lbnQ/Lm1vZGVsLFxyXG4gICAgICB3aWRnZXRzLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmJpbmRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtTGF5b3V0KCk6IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiB7XHJcbiAgICBpZiAodGhpcy5zbWFydENvbXBvbmVudExheW91dD8uZGlyZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py5kaXJlY3Rpb24gPT09IExheW91dERpcmVjdGlvbi5IT1JJWk9OVEFMXHJcbiAgICAgICAgPyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uUk9XXHJcbiAgICAgICAgOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0w7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtQ29tcG9uZW50KGNvbXA6IFNtYXJ0Zm9ybUNvbXBvbmVudCkge1xyXG4gICAgaWYgKCF0aGlzLnNtYXJ0Rm9ybUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLnNtYXJ0Rm9ybUNvbXBvbmVudCA9IGNvbXA7XHJcbiAgICAgIHRoaXMuYmluZEZvcm0oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJpbmRGb3JtKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50U21hcnRDb21wb25lbnQ/LnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtICYmIHRoaXMuc21hcnRGb3JtQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMucGFyZW50U21hcnRDb21wb25lbnQ/LmFkZEZvcm0oXHJcbiAgICAgICAgLy8gdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBmb3JtXHJcbiAgICAgICAgYGZvcm1fJHt0aGlzLm1ha2VpZCg1KX1gLFxyXG4gICAgICAgIHRoaXMuc21hcnRGb3JtLFxyXG4gICAgICAgIHRoaXMuc21hcnRGb3JtQ29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYWtlaWQobGVuZ3RoOiBudW1iZXIpIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xyXG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xyXG4gICAgbGV0IGNvdW50ZXIgPSAwO1xyXG4gICAgd2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcclxuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcclxuICAgICAgY291bnRlciArPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdEdyaWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNtYXJ0R3JpZCA9IHtcclxuICAgICAgZ3JpZElkZW50aWZpZXI6IHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LndpZGdldD8uaWRlbnRpZmllciEsXHJcbiAgICAgIGdyaWRNb2RlbDoge1xyXG4gICAgICAgIHBhZ2U6IHt9LFxyXG4gICAgICB9LFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcm93VWlBY3Rpb25UeXBlOiBHcmlkVWlBY3Rpb25UeXBlLlBPUFVQX01FTlUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxheW91dERlZjogU21hcnRMYXlvdXREZWYuVEFCTEUsXHJcbiAgICAgIHBhZ2luYXRvcjogdHJ1ZSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5iaW5kR3JpZCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0R3JpZENvbXBvbmVudChjb21wOiBTbWFydEdyaWRDb21wb25lbnQpIHtcclxuICAgIGlmICghdGhpcy5zbWFydEdyaWRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5zbWFydEdyaWRDb21wb25lbnQgPSBjb21wO1xyXG4gICAgICB0aGlzLmJpbmRHcmlkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiaW5kR3JpZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50Py51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNtYXJ0R3JpZCAmJiB0aGlzLnNtYXJ0R3JpZENvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLnNtYXJ0R3JpZCA9IHRoaXMucGFyZW50U21hcnRDb21wb25lbnQ/LmFkZEdyaWQoXHJcbiAgICAgICAgdGhpcy5zbWFydEdyaWQsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcm93VWlBY3Rpb25UeXBlOiBHcmlkVWlBY3Rpb25UeXBlLlBPUFVQX01FTlUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBmYWxzZSxcclxuICAgICAgICB0aGlzLnNtYXJ0R3JpZENvbXBvbmVudFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0TWFwKCkge1xyXG4gICAgdGhpcy5tYXBJZCA9IHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LndpZGdldD8uaWRlbnRpZmllcjtcclxuICAgIHRoaXMuYmluZE1hcCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWNEaWFncmFtKCkge1xyXG4gICAgdGhpcy5zbWFydERpYWdyYW1JZCA9IHRoaXMuc21hcnRDb21wb25lbnRMYXlvdXQ/LndpZGdldD8uaWRlbnRpZmllcjtcclxuICAgIHRoaXMuYmluZERpYWdyYW0oKTtcclxuICB9XHJcblxyXG4gIHNldE1hcENvbXBvbmVudChjb21wOiBTbWFydE1hcENvbXBvbmVudCkge1xyXG4gICAgaWYgKCF0aGlzLnNtYXJ0TWFwQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuc21hcnRNYXBDb21wb25lbnQgPSBjb21wO1xyXG4gICAgICB0aGlzLmJpbmRNYXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpYWdyYW1Db21wb25lbnQoY29tcDogU21hcnREaWFncmFtQ29tcG9uZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuc21hcnREaWFncmFtQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuc21hcnREaWFncmFtQ29tcG9uZW50ID0gY29tcDtcclxuICAgICAgdGhpcy5iaW5kRGlhZ3JhbSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmluZE1hcCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50LnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUud2FybignTWFwIGNvbXBvbmVudHMgYXJlIG9ubHkgc3VwcG9ydGVkIHRocm91Z2ggUXVlcnlMaXN0cyEnKTtcclxuICB9XHJcblxyXG4gIGJpbmREaWFncmFtKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50U21hcnRDb21wb25lbnQudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS53YXJuKCdEaWFncmFtIGNvbXBvbmVudHMgYXJlIG9ubHkgc3VwcG9ydGVkIHRocm91Z2ggUXVlcnlMaXN0cyEnKTtcclxuICB9XHJcblxyXG4gIHNldFRvb2xiYXJDb21wb25lbnQoY29tcDogVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLnRvb2xiYXIgPSBjb21wO1xyXG4gIH1cclxuXHJcbiAgLy8gTk9UIFVTRUQsIERPRVNOJ1QgV09SS1xyXG4gIC8vIGNvbnN0cnVjdEZpbHRlcigpOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuc21hcnRGaWx0ZXIgPSAodGhpcy5zbWFydENvbXBvbmVudExheW91dCEucGFyZW50Q29tcG9uZW50IGFzIGFueSkuYWRkRmlsdGVyKFxyXG4gIC8vICAgICBgZmlsdGVyXyR7dGhpcy5tYWtlaWQoNSl9YCxcclxuICAvLyAgICAgdGhpcy5zbWFydENvbXBvbmVudExheW91dD8ud2lkZ2V0Py5maWx0ZXJFeHByZXNzaW9uRmllbGRMaXN0LFxyXG4gIC8vICAgICB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py53aWRnZXQ/LmZpbHRlclR5cGUsXHJcbiAgLy8gICAgIHRoaXMuc21hcnRGaWx0ZXJDb21wb25lbnRcclxuICAvLyAgICk7XHJcbiAgLy8gfVxyXG5cclxuICBiaW5kRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgLy8gVE9ET1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0VHJlZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBhcmVudFNtYXJ0Q29tcG9uZW50Py51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucGFyZW50U21hcnRDb21wb25lbnQuc2V0VXBEZWZhdWx0VHJlZSh0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py53aWRnZXQ/LmlkZW50aWZpZXIpO1xyXG4gICAgdGhpcy50cmVlU2VydmljZT8uaW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0VG9vbGJhcigpOiB2b2lkIHtcclxuICAgIGxldCB0b29sYmFySWQgPSB0aGlzLnNtYXJ0Q29tcG9uZW50TGF5b3V0Py53aWRnZXQ/LmlkZW50aWZpZXI7XHJcbiAgICBpZiAodGhpcy50b29sYmFySWQgIT09IHRvb2xiYXJJZCkge1xyXG4gICAgICB0aGlzLnRvb2xiYXJJZCA9IHRvb2xiYXJJZDtcclxuICAgIH1cclxuICAgIGxldCBwcm9wZXJ0aWVzID0gdGhpcy5zbWFydENvbXBvbmVudExheW91dD8ud2lkZ2V0Py5wcm9wZXJ0aWVzO1xyXG4gICAgaWYgKHByb3BlcnRpZXMgJiYgcHJvcGVydGllc1sndG9vbGJhcl9wcm9wZXJ0aWVzJ10pIHtcclxuICAgICAgdGhpcy50b29sYmFyUHJvcGVydGVzID0gcHJvcGVydGllc1sndG9vbGJhcl9wcm9wZXJ0aWVzJ107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RFbWJlZGRlZFNsb3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtYmVkZGVkU2xvdENvbnRhaW5lcklkID0gdGhpcy5zbWFydENvbXBvbmVudExheW91dD8ud2lkZ2V0Py5pZGVudGlmaWVyO1xyXG4gICAgdGhpcy5lbWJlZGRlZFNsb3RBY3RpdmUgPSB0cnVlO1xyXG4gICAgdGhpcy50cnlSZWdpc3RlckVtYmVkZGVkU2xvdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cnlSZWdpc3RlckVtYmVkZGVkU2xvdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVtYmVkZGVkU2xvdENvbnRhaW5lcklkICYmIHRoaXMudXVpZCAmJiB0aGlzLl9lbWJlZGRlZFNsb3RWY1JlZikge1xyXG4gICAgICB0aGlzLnZpZXdDb250ZXh0LnJlZ2lzdGVyRW1iZWRkZWRTbG90KHRoaXMudXVpZCwgdGhpcy5lbWJlZGRlZFNsb3RDb250YWluZXJJZCwgdGhpcy5fZW1iZWRkZWRTbG90VmNSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic21hcnRDb21wb25lbnRMYXlvdXQ/LmV4cGFuZGFibGU7IHRoZW4gZXhwYW5kYWJsZTsgZWxzZSBub3JtYWxcIj4gPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2V4cGFuZGFibGU+XHJcbiAgPHNtYXJ0LWV4cGFuZGFibGUtc2VjdGlvblxyXG4gICAgKm5nSWY9XCJleHBhbmRhYmxlU2VjdGlvblwiXHJcbiAgICBbZGF0YV09XCJleHBhbmRhYmxlU2VjdGlvblwiXHJcbiAgPjwvc21hcnQtZXhwYW5kYWJsZS1zZWN0aW9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNub3JtYWw+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJzbWFydENvbXBvbmVudExheW91dD8udHlwZSA9PT0gdHlwZSgpLkNPTlRBSU5FUlwiXHJcbiAgICBbbmdDbGFzc109XCJzbWFydENvbXBvbmVudExheW91dD8uZGlyZWN0aW9uID8/ICd2ZXJ0aWNhbCdcIlxyXG4gID5cclxuICAgIDxzbWFydC1jb21wb25lbnQtbGF5b3V0XHJcbiAgICAgICpuZ0Zvcj1cImxldCBsYXlvdXQgb2Ygc21hcnRDb21wb25lbnRMYXlvdXQ/LmNvbXBvbmVudHNcIlxyXG4gICAgICBbcGFyZW50U21hcnRDb21wb25lbnRdPVwicGFyZW50U21hcnRDb21wb25lbnRcIlxyXG4gICAgICBbcGFyZW50TGF5b3V0Q29tcG9uZW50XT1cInRoaXNcIlxyXG4gICAgICBbc21hcnRDb21wb25lbnRMYXlvdXRdPVwibGF5b3V0XCJcclxuICAgICAgW2dyaWRSb3ddPVwiZ3JpZFJvd1wiXHJcbiAgICA+PC9zbWFydC1jb21wb25lbnQtbGF5b3V0PlxyXG4gIDwvZGl2PlxyXG4gIDxzbWFydGZvcm0gKm5nSWY9XCJzbWFydEZvcm1cIiAjZm9ybSBbc21hcnRGb3JtXT1cInNtYXJ0Rm9ybVwiPjwvc21hcnRmb3JtPlxyXG4gIDxzbWFydC1ncmlkICpuZ0lmPVwic21hcnRHcmlkXCIgI2dyaWQgW3NtYXJ0R3JpZF09XCJzbWFydEdyaWRcIiBbdXVpZF09XCJ1dWlkIVwiPjwvc21hcnQtZ3JpZD5cclxuICA8c21hcnQtbWFwXHJcbiAgICAqbmdJZj1cIiEhdXVpZCAmJiAhIW1hcElkXCJcclxuICAgICNtYXBcclxuICAgIFt1dWlkXT1cInV1aWRcIlxyXG4gICAgW2lkZW50aWZpZXJdPVwibWFwSWRcIlxyXG4gICAgW3BhcmVudF09XCJwYXJlbnRTbWFydENvbXBvbmVudFwiXHJcbiAgPjwvc21hcnQtbWFwPlxyXG4gIDxzbWFydC1kaWFncmFtXHJcbiAgICAqbmdJZj1cIiEhdXVpZCAmJiAhIXNtYXJ0RGlhZ3JhbUlkXCJcclxuICAgICNkaWFncmFtXHJcbiAgICBbdXVpZF09XCJ1dWlkXCJcclxuICAgIFtpZGVudGlmaWVyXT1cInNtYXJ0RGlhZ3JhbUlkXCJcclxuICAgIFtwYXJlbnRdPVwicGFyZW50U21hcnRDb21wb25lbnRcIlxyXG4gID48L3NtYXJ0LWRpYWdyYW0+XHJcbiAgPCEtLSA8c21hcnQtZmlsdGVyICNmaWx0ZXIgW2ZpbHRlcl09XCJzbWFydEZpbHRlclwiPjwvc21hcnQtZmlsdGVyPiAtLT5cclxuICA8c21hcnQtdHJlZSAqbmdJZj1cInRyZWVTZXJ2aWNlXCIgW3RyZWVTZXJ2aWNlXT1cInRyZWVTZXJ2aWNlIVwiPjwvc21hcnQtdHJlZT5cclxuICA8c21hcnQtdWktYWN0aW9uLXRvb2xiYXJcclxuICAgICpuZ0lmPVwiISF0b29sYmFySWRcIlxyXG4gICAgI3Rvb2xiYXJcclxuICAgIFtpZF09XCJ0b29sYmFySWRcIlxyXG4gICAgW3Rvb2xiYXJQcm9wZXJ0ZXNdPVwidG9vbGJhclByb3BlcnRlc1wiXHJcbiAgPjwvc21hcnQtdWktYWN0aW9uLXRvb2xiYXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVtYmVkZGVkU2xvdEFjdGl2ZVwiICNlbWJlZGRlZFNsb3Q+PC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -43,5 +43,6 @@ export var SmartFormWidgetType;
43
43
  SmartFormWidgetType["MONTH_PICKER"] = "MONTH_PICKER";
44
44
  SmartFormWidgetType["YOUTUBE_PLAYER"] = "YOUTUBE_PLAYER";
45
45
  SmartFormWidgetType["SVG"] = "SVG";
46
+ SmartFormWidgetType["DIV"] = "DIV";
46
47
  })(SmartFormWidgetType || (SmartFormWidgetType = {}));
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRGb3JtV2lkZ2V0VHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vYXBpL21vZGVsL3NtYXJ0Rm9ybVdpZGdldFR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUdILE1BQU0sQ0FBTixJQUFZLG1CQWlDWDtBQWpDRCxXQUFZLG1CQUFtQjtJQUMzQiw4Q0FBdUIsQ0FBQTtJQUN2QixrREFBMkIsQ0FBQTtJQUMzQiw4Q0FBdUIsQ0FBQTtJQUN2QixrREFBMkIsQ0FBQTtJQUMzQiw0REFBcUMsQ0FBQTtJQUNyQyw4Q0FBdUIsQ0FBQTtJQUN2QixvQ0FBYSxDQUFBO0lBQ2IsZ0RBQXlCLENBQUE7SUFDekIsc0NBQWUsQ0FBQTtJQUNmLG9EQUE2QixDQUFBO0lBQzdCLHdDQUFpQixDQUFBO0lBQ2pCLDBEQUFtQyxDQUFBO0lBQ25DLDRDQUFxQixDQUFBO0lBQ3JCLGdEQUF5QixDQUFBO0lBQ3pCLDREQUFxQyxDQUFBO0lBQ3JDLDhEQUF1QyxDQUFBO0lBQ3ZDLDhEQUF1QyxDQUFBO0lBQ3ZDLG9DQUFhLENBQUE7SUFDYix3Q0FBaUIsQ0FBQTtJQUNqQixzQ0FBZSxDQUFBO0lBQ2Ysc0RBQStCLENBQUE7SUFDL0Isa0VBQTJDLENBQUE7SUFDM0Msc0NBQWUsQ0FBQTtJQUNmLHdDQUFpQixDQUFBO0lBQ2pCLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLDhDQUF1QixDQUFBO0lBQ3ZCLDRDQUFxQixDQUFBO0lBQ3JCLHdDQUFpQixDQUFBO0lBQ2pCLG9EQUE2QixDQUFBO0lBQzdCLHdEQUFpQyxDQUFBO0lBQ2pDLGtDQUFXLENBQUE7QUFDZixDQUFDLEVBakNXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFpQzlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIGxheW91dCBkZWZpbml0aW9uXG4gKiBDb250YWlucyBmb3JtIGxheW91dCBkZWZpbml0aW9uIG9iamVjdHMuXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5cbmV4cG9ydCBlbnVtIFNtYXJ0Rm9ybVdpZGdldFR5cGUge1xuICAgIENIRUNLX0JPWCA9ICdDSEVDS19CT1gnLFxuICAgIENIRUNLX0JPWF8yID0gJ0NIRUNLX0JPWF8yJyxcbiAgICBDT05UQUlORVIgPSAnQ09OVEFJTkVSJyxcbiAgICBEQVRFX1BJQ0tFUiA9ICdEQVRFX1BJQ0tFUicsXG4gICAgREFURV9USU1FX1BJQ0tFUiA9ICdEQVRFX1RJTUVfUElDS0VSJyxcbiAgICBJTkRJQ0FUT1IgPSAnSU5ESUNBVE9SJyxcbiAgICBJVEVNID0gJ0lURU0nLFxuICAgIElURU1fR1JPVVAgPSAnSVRFTV9HUk9VUCcsXG4gICAgTEFCRUwgPSAnTEFCRUwnLFxuICAgIFJBRElPX0JVVFRPTiA9ICdSQURJT19CVVRUT04nLFxuICAgIFNFTEVDVCA9ICdTRUxFQ1QnLFxuICAgIFNFTEVDVF9NVUxUSVBMRSA9ICdTRUxFQ1RfTVVMVElQTEUnLFxuICAgIFRFWFRfQk9YID0gJ1RFWFRfQk9YJyxcbiAgICBURVhUX0ZJRUxEID0gJ1RFWFRfRklFTEQnLFxuICAgIFRFWFRfRklFTERfQ0hJUFMgPSAnVEVYVF9GSUVMRF9DSElQUycsXG4gICAgVEVYVF9GSUVMRF9OVU1CRVIgPSAnVEVYVF9GSUVMRF9OVU1CRVInLFxuICAgIFRFWFRfRklFTERfTE9PS1VQID0gJ1RFWFRfRklFTERfTE9PS1VQJyxcbiAgICBUSU1FID0gJ1RJTUUnLFxuICAgIFRPR0dMRSA9ICdUT0dHTEUnLFxuICAgIElNQUdFID0gJ0lNQUdFJyxcbiAgICBGSUxFX1VQTE9BREVSID0gJ0ZJTEVfVVBMT0FERVInLFxuICAgIE1VTFRJX0ZJTEVfVVBMT0FERVIgPSAnTVVMVElfRklMRV9VUExPQURFUicsXG4gICAgTUVESUEgPSAnTUVESUEnLFxuICAgIEJVVFRPTiA9ICdCVVRUT04nLFxuICAgIERJVklERVIgPSAnRElWSURFUicsXG4gICAgQ09NUE9ORU5UID0gJ0NPTVBPTkVOVCcsXG4gICAgUklDSF9URVhUID0gJ1JJQ0hfVEVYVCcsXG4gICAgU09SVEFCTEUgPSAnU09SVEFCTEUnLFxuICAgIE1BVFJJWCA9ICdNQVRSSVgnLFxuICAgIE1PTlRIX1BJQ0tFUiA9ICdNT05USF9QSUNLRVInLFxuICAgIFlPVVRVQkVfUExBWUVSID0gJ1lPVVRVQkVfUExBWUVSJyxcbiAgICBTVkcgPSAnU1ZHJ1xufVxuXG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRGb3JtV2lkZ2V0VHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vYXBpL21vZGVsL3NtYXJ0Rm9ybVdpZGdldFR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUdILE1BQU0sQ0FBTixJQUFZLG1CQWtDWDtBQWxDRCxXQUFZLG1CQUFtQjtJQUMzQiw4Q0FBdUIsQ0FBQTtJQUN2QixrREFBMkIsQ0FBQTtJQUMzQiw4Q0FBdUIsQ0FBQTtJQUN2QixrREFBMkIsQ0FBQTtJQUMzQiw0REFBcUMsQ0FBQTtJQUNyQyw4Q0FBdUIsQ0FBQTtJQUN2QixvQ0FBYSxDQUFBO0lBQ2IsZ0RBQXlCLENBQUE7SUFDekIsc0NBQWUsQ0FBQTtJQUNmLG9EQUE2QixDQUFBO0lBQzdCLHdDQUFpQixDQUFBO0lBQ2pCLDBEQUFtQyxDQUFBO0lBQ25DLDRDQUFxQixDQUFBO0lBQ3JCLGdEQUF5QixDQUFBO0lBQ3pCLDREQUFxQyxDQUFBO0lBQ3JDLDhEQUF1QyxDQUFBO0lBQ3ZDLDhEQUF1QyxDQUFBO0lBQ3ZDLG9DQUFhLENBQUE7SUFDYix3Q0FBaUIsQ0FBQTtJQUNqQixzQ0FBZSxDQUFBO0lBQ2Ysc0RBQStCLENBQUE7SUFDL0Isa0VBQTJDLENBQUE7SUFDM0Msc0NBQWUsQ0FBQTtJQUNmLHdDQUFpQixDQUFBO0lBQ2pCLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLDhDQUF1QixDQUFBO0lBQ3ZCLDRDQUFxQixDQUFBO0lBQ3JCLHdDQUFpQixDQUFBO0lBQ2pCLG9EQUE2QixDQUFBO0lBQzdCLHdEQUFpQyxDQUFBO0lBQ2pDLGtDQUFXLENBQUE7SUFDWCxrQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQWxDVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBa0M5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9ybSBsYXlvdXQgZGVmaW5pdGlvblxuICogQ29udGFpbnMgZm9ybSBsYXlvdXQgZGVmaW5pdGlvbiBvYmplY3RzLlxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cblxuXG5leHBvcnQgZW51bSBTbWFydEZvcm1XaWRnZXRUeXBlIHtcbiAgICBDSEVDS19CT1ggPSAnQ0hFQ0tfQk9YJyxcbiAgICBDSEVDS19CT1hfMiA9ICdDSEVDS19CT1hfMicsXG4gICAgQ09OVEFJTkVSID0gJ0NPTlRBSU5FUicsXG4gICAgREFURV9QSUNLRVIgPSAnREFURV9QSUNLRVInLFxuICAgIERBVEVfVElNRV9QSUNLRVIgPSAnREFURV9USU1FX1BJQ0tFUicsXG4gICAgSU5ESUNBVE9SID0gJ0lORElDQVRPUicsXG4gICAgSVRFTSA9ICdJVEVNJyxcbiAgICBJVEVNX0dST1VQID0gJ0lURU1fR1JPVVAnLFxuICAgIExBQkVMID0gJ0xBQkVMJyxcbiAgICBSQURJT19CVVRUT04gPSAnUkFESU9fQlVUVE9OJyxcbiAgICBTRUxFQ1QgPSAnU0VMRUNUJyxcbiAgICBTRUxFQ1RfTVVMVElQTEUgPSAnU0VMRUNUX01VTFRJUExFJyxcbiAgICBURVhUX0JPWCA9ICdURVhUX0JPWCcsXG4gICAgVEVYVF9GSUVMRCA9ICdURVhUX0ZJRUxEJyxcbiAgICBURVhUX0ZJRUxEX0NISVBTID0gJ1RFWFRfRklFTERfQ0hJUFMnLFxuICAgIFRFWFRfRklFTERfTlVNQkVSID0gJ1RFWFRfRklFTERfTlVNQkVSJyxcbiAgICBURVhUX0ZJRUxEX0xPT0tVUCA9ICdURVhUX0ZJRUxEX0xPT0tVUCcsXG4gICAgVElNRSA9ICdUSU1FJyxcbiAgICBUT0dHTEUgPSAnVE9HR0xFJyxcbiAgICBJTUFHRSA9ICdJTUFHRScsXG4gICAgRklMRV9VUExPQURFUiA9ICdGSUxFX1VQTE9BREVSJyxcbiAgICBNVUxUSV9GSUxFX1VQTE9BREVSID0gJ01VTFRJX0ZJTEVfVVBMT0FERVInLFxuICAgIE1FRElBID0gJ01FRElBJyxcbiAgICBCVVRUT04gPSAnQlVUVE9OJyxcbiAgICBESVZJREVSID0gJ0RJVklERVInLFxuICAgIENPTVBPTkVOVCA9ICdDT01QT05FTlQnLFxuICAgIFJJQ0hfVEVYVCA9ICdSSUNIX1RFWFQnLFxuICAgIFNPUlRBQkxFID0gJ1NPUlRBQkxFJyxcbiAgICBNQVRSSVggPSAnTUFUUklYJyxcbiAgICBNT05USF9QSUNLRVIgPSAnTU9OVEhfUElDS0VSJyxcbiAgICBZT1VUVUJFX1BMQVlFUiA9ICdZT1VUVUJFX1BMQVlFUicsXG4gICAgU1ZHID0gJ1NWRycsXG4gICAgRElWID0gJ0RJVidcbn1cblxuIl19