@worktile/theia 2.3.0-next.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bundles/worktile-theia.umd.js +144 -471
  2. package/bundles/worktile-theia.umd.js.map +1 -1
  3. package/constants/default.d.ts +0 -2
  4. package/editor.component.d.ts +0 -2
  5. package/editor.module.d.ts +24 -26
  6. package/esm2015/constants/default.js +1 -2
  7. package/esm2015/editor.component.js +17 -14
  8. package/esm2015/editor.module.js +3 -6
  9. package/esm2015/interfaces/editor.js +1 -1
  10. package/esm2015/plugins/align/align.editor.js +6 -2
  11. package/esm2015/plugins/image/image.component.js +13 -8
  12. package/esm2015/utils/dom.js +5 -3
  13. package/esm2015/utils/index.js +3 -1
  14. package/fesm2015/worktile-theia.js +137 -462
  15. package/fesm2015/worktile-theia.js.map +1 -1
  16. package/interfaces/editor.d.ts +1 -6
  17. package/package.json +1 -1
  18. package/plugins/image/image.component.scss +0 -7
  19. package/plugins/table/components/table.component.scss +2 -2
  20. package/styles/editor.scss +160 -133
  21. package/styles/index.scss +1 -2
  22. package/styles/typo.scss +12 -1
  23. package/utils/index.d.ts +2 -0
  24. package/esm2015/plugins/dnd/component/dnd.component.js +0 -254
  25. package/esm2015/plugins/dnd/utils/get-current-target.js +0 -19
  26. package/esm2015/plugins/dnd/utils/get-hover-direction.js +0 -13
  27. package/esm2015/plugins/dnd/utils/is-valid-drag.js +0 -38
  28. package/esm2015/plugins/dnd/utils/move-drag-node.js +0 -30
  29. package/esm2015/plugins/dnd/utils/remove-drop-thumb-line.js +0 -10
  30. package/plugins/dnd/component/dnd.component.d.ts +0 -42
  31. package/plugins/dnd/component/dnd.component.scss +0 -60
  32. package/plugins/dnd/utils/get-current-target.d.ts +0 -2
  33. package/plugins/dnd/utils/get-hover-direction.d.ts +0 -3
  34. package/plugins/dnd/utils/is-valid-drag.d.ts +0 -3
  35. package/plugins/dnd/utils/move-drag-node.d.ts +0 -2
  36. package/plugins/dnd/utils/remove-drop-thumb-line.d.ts +0 -2
@@ -7,10 +7,8 @@ export declare const CLIPBOARD_FORMAT_KEY = "x-theia-fragment";
7
7
  export declare const DEFAULT_SCROLL_CONTAINER = ".the-editable-container";
8
8
  export declare const ELEMENT_UNIQUE_ID = "key";
9
9
  export declare const ZERO_WIDTH_CHAR = "\u200B";
10
- export declare const DROP_THUMB_LINE = "drop-thumb-line";
11
10
  export declare enum TheMode {
12
11
  fullMode = "full",
13
12
  liteMode = "lite"
14
13
  }
15
- export declare type DropDirection = 'top' | 'bottom' | undefined;
16
14
  export declare type NodeLevel = 'highest' | undefined;
@@ -37,7 +37,6 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
37
37
  editor: TheEditor;
38
38
  editorValue: Descendant[];
39
39
  globalToolbarClass: string[];
40
- isDraging: boolean;
41
40
  decorate: (nodeEntry: NodeEntry) => Range[];
42
41
  get theGlobalToolbarInstance(): TheToolbarComponent;
43
42
  get maxHeight(): string;
@@ -84,7 +83,6 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
84
83
  onSlaDragStart: (event: DragEvent) => void;
85
84
  onSlaDragOver: (event: DragEvent) => void;
86
85
  onDrop: (event: DragEvent) => void;
87
- onDragChange: (isDraging: any) => void;
88
86
  getTextAndJSON(data: DataTransfer): {
89
87
  json: any[];
90
88
  text: string;
@@ -27,7 +27,6 @@ import { TheInlineToolbarComponent } from './components/inline-toolbar/inline-to
27
27
  import { TheQuickToolbarComponent } from './plugins/quick-insert/components/quick-toolbar/quick-toolbar.component';
28
28
  import { TheQuickInsertComponent } from './plugins/quick-insert/components/quick-insert.component';
29
29
  import { TheIndentToolbarComponent } from './plugins/indent/toolbar-item.component';
30
- import { TheDndComponent } from './plugins/dnd/component/dnd.component';
31
30
  import * as i0 from "@angular/core";
32
31
  import * as i1 from "./editor.component";
33
32
  import * as i2 from "./pipes";
@@ -67,33 +66,32 @@ import * as i35 from "./plugins/table/components/table.component";
67
66
  import * as i36 from "./plugins/table/components/row/row.component";
68
67
  import * as i37 from "./plugins/table/components/td/td.component";
69
68
  import * as i38 from "./plugins/inline-code/inline-code.component";
70
- import * as i39 from "./plugins/dnd/component/dnd.component";
71
- import * as i40 from "@angular/common";
72
- import * as i41 from "slate-angular";
73
- import * as i42 from "@angular/forms";
74
- import * as i43 from "ngx-tethys/icon";
75
- import * as i44 from "ngx-tethys/avatar";
76
- import * as i45 from "ngx-tethys/nav";
77
- import * as i46 from "ngx-tethys/form";
78
- import * as i47 from "ngx-tethys/shared";
79
- import * as i48 from "ngx-tethys/list";
80
- import * as i49 from "ngx-tethys/tooltip";
81
- import * as i50 from "ngx-tethys/progress";
82
- import * as i51 from "ngx-tethys/autocomplete";
83
- import * as i52 from "ngx-tethys/action-menu";
84
- import * as i53 from "ngx-tethys/input";
85
- import * as i54 from "ngx-tethys/select";
86
- import * as i55 from "ngx-tethys/button";
87
- import * as i56 from "ngx-tethys/notify";
88
- import * as i57 from "ngx-tethys/alert";
89
- import * as i58 from "ngx-tethys/resizable";
90
- import * as i59 from "ngx-tethys/switch";
91
- import * as i60 from "ng-codemirror";
92
- import * as i61 from "./components/column-resize/column-resize.module";
69
+ import * as i39 from "@angular/common";
70
+ import * as i40 from "slate-angular";
71
+ import * as i41 from "@angular/forms";
72
+ import * as i42 from "ngx-tethys/icon";
73
+ import * as i43 from "ngx-tethys/avatar";
74
+ import * as i44 from "ngx-tethys/nav";
75
+ import * as i45 from "ngx-tethys/form";
76
+ import * as i46 from "ngx-tethys/shared";
77
+ import * as i47 from "ngx-tethys/list";
78
+ import * as i48 from "ngx-tethys/tooltip";
79
+ import * as i49 from "ngx-tethys/progress";
80
+ import * as i50 from "ngx-tethys/autocomplete";
81
+ import * as i51 from "ngx-tethys/action-menu";
82
+ import * as i52 from "ngx-tethys/input";
83
+ import * as i53 from "ngx-tethys/select";
84
+ import * as i54 from "ngx-tethys/button";
85
+ import * as i55 from "ngx-tethys/notify";
86
+ import * as i56 from "ngx-tethys/alert";
87
+ import * as i57 from "ngx-tethys/resizable";
88
+ import * as i58 from "ngx-tethys/switch";
89
+ import * as i59 from "ng-codemirror";
90
+ import * as i60 from "./components/column-resize/column-resize.module";
93
91
  export declare const COMPONENTS: (typeof TheColorSelectComponent | typeof TheContextMenuComponent | typeof TheToolbarGroupComponent | typeof TheTextComponent | typeof TheDefaultElementComponent | typeof TheConversionHintComponent | typeof TheColorToolbarItemComponent | typeof TheTableSelectComponent | typeof TheTableToolbarItemComponent | typeof TheVerticalToolbarItemComponent | typeof TheQuickToolbarComponent | typeof TheIndentToolbarComponent | typeof TheToolbarItemComponent | typeof NavSplitLineComponent | typeof TheToolbarDropdownComponent | typeof TheToolbarComponent | typeof TheQuickInsertComponent | typeof TheInsertMarkComponent | typeof TheInlineToolbarComponent)[];
94
- export declare const PLUGIN_COMPONENTS: (typeof TheTableToolbarComponent | typeof TheTableComponent | typeof TheImageComponent | typeof TheBlockquoteComponent | typeof TheCodeComponent | typeof TheLinkHoverComponent | typeof TheLinkEditComponent | typeof TheReadonlyLinkComponent | typeof TheTdComponent | typeof TheTemplateComponent | typeof TheDndComponent)[];
92
+ export declare const PLUGIN_COMPONENTS: (typeof TheTableToolbarComponent | typeof TheTableComponent | typeof TheImageComponent | typeof TheBlockquoteComponent | typeof TheCodeComponent | typeof TheLinkHoverComponent | typeof TheLinkEditComponent | typeof TheReadonlyLinkComponent | typeof TheTdComponent | typeof TheTemplateComponent)[];
95
93
  export declare class TheEditorModule {
96
94
  static ɵfac: i0.ɵɵFactoryDeclaration<TheEditorModule, never>;
97
- static ɵmod: i0.ɵɵNgModuleDeclaration<TheEditorModule, [typeof i1.TheEditorComponent, typeof i2.ElementStylePipe, typeof i2.ElementClassPipe, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i5.TheToolbarGroupComponent, typeof i6.TheToolbarItemComponent, typeof i7.TheInlineToolbarComponent, typeof i8.NavSplitLineComponent, typeof i9.TheTextComponent, typeof i10.TheDefaultElementComponent, typeof i11.TheQuickInsertComponent, typeof i12.TheQuickToolbarComponent, typeof i13.TheColorSelectComponent, typeof i14.TheColorToolbarItemComponent, typeof i15.TheContextMenuComponent, typeof i16.TheInsertMarkComponent, typeof i17.TheTableSelectComponent, typeof i18.TheTableToolbarItemComponent, typeof i19.TheConversionHintComponent, typeof i20.TheVerticalToolbarItemComponent, typeof i21.TheIndentToolbarComponent, typeof i22.TheImageComponent, typeof i23.TheTemplateComponent, typeof i24.TheHrComponent, typeof i25.TheBlockquoteComponent, typeof i26.TheTodoItemComponent, typeof i27.TheListItemComponent, typeof i28.TheBulletedListComponent, typeof i29.TheNumberedListComponent, typeof i30.TheCodeComponent, typeof i31.TheLinkComponent, typeof i31.TheReadonlyLinkComponent, typeof i32.TheLinkEditComponent, typeof i33.TheLinkHoverComponent, typeof i34.TheTableToolbarComponent, typeof i35.TheTableComponent, typeof i36.TheTableRowComponent, typeof i37.TheTdComponent, typeof i38.TheInlineCodeComponent, typeof i39.TheDndComponent], [typeof i40.CommonModule, typeof i41.SlateModule, typeof i42.FormsModule, typeof i43.ThyIconModule, typeof i44.ThyAvatarModule, typeof i45.ThyNavModule, typeof i46.ThyFormModule, typeof i47.ThySharedModule, typeof i48.ThyListModule, typeof i49.ThyTooltipModule, typeof i50.ThyProgressModule, typeof i51.ThyAutocompleteModule, typeof i52.ThyActionMenuModule, typeof i53.ThyInputModule, typeof i54.ThySelectModule, typeof i55.ThyButtonModule, typeof i56.ThyNotifyModule, typeof i57.ThyAlertModule, typeof i58.ThyResizableModule, typeof i59.ThySwitchModule, typeof i60.CodemirrorModule, typeof i61.TheColumnSizeModule], [typeof i1.TheEditorComponent, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i6.TheToolbarItemComponent, typeof i10.TheDefaultElementComponent]>;
95
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TheEditorModule, [typeof i1.TheEditorComponent, typeof i2.ElementStylePipe, typeof i2.ElementClassPipe, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i5.TheToolbarGroupComponent, typeof i6.TheToolbarItemComponent, typeof i7.TheInlineToolbarComponent, typeof i8.NavSplitLineComponent, typeof i9.TheTextComponent, typeof i10.TheDefaultElementComponent, typeof i11.TheQuickInsertComponent, typeof i12.TheQuickToolbarComponent, typeof i13.TheColorSelectComponent, typeof i14.TheColorToolbarItemComponent, typeof i15.TheContextMenuComponent, typeof i16.TheInsertMarkComponent, typeof i17.TheTableSelectComponent, typeof i18.TheTableToolbarItemComponent, typeof i19.TheConversionHintComponent, typeof i20.TheVerticalToolbarItemComponent, typeof i21.TheIndentToolbarComponent, typeof i22.TheImageComponent, typeof i23.TheTemplateComponent, typeof i24.TheHrComponent, typeof i25.TheBlockquoteComponent, typeof i26.TheTodoItemComponent, typeof i27.TheListItemComponent, typeof i28.TheBulletedListComponent, typeof i29.TheNumberedListComponent, typeof i30.TheCodeComponent, typeof i31.TheLinkComponent, typeof i31.TheReadonlyLinkComponent, typeof i32.TheLinkEditComponent, typeof i33.TheLinkHoverComponent, typeof i34.TheTableToolbarComponent, typeof i35.TheTableComponent, typeof i36.TheTableRowComponent, typeof i37.TheTdComponent, typeof i38.TheInlineCodeComponent], [typeof i39.CommonModule, typeof i40.SlateModule, typeof i41.FormsModule, typeof i42.ThyIconModule, typeof i43.ThyAvatarModule, typeof i44.ThyNavModule, typeof i45.ThyFormModule, typeof i46.ThySharedModule, typeof i47.ThyListModule, typeof i48.ThyTooltipModule, typeof i49.ThyProgressModule, typeof i50.ThyAutocompleteModule, typeof i51.ThyActionMenuModule, typeof i52.ThyInputModule, typeof i53.ThySelectModule, typeof i54.ThyButtonModule, typeof i55.ThyNotifyModule, typeof i56.ThyAlertModule, typeof i57.ThyResizableModule, typeof i58.ThySwitchModule, typeof i59.CodemirrorModule, typeof i60.TheColumnSizeModule], [typeof i1.TheEditorComponent, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i6.TheToolbarItemComponent, typeof i10.TheDefaultElementComponent]>;
98
96
  static ɵinj: i0.ɵɵInjectorDeclaration<TheEditorModule>;
99
97
  }
@@ -7,10 +7,9 @@ export const CLIPBOARD_FORMAT_KEY = 'x-theia-fragment';
7
7
  export const DEFAULT_SCROLL_CONTAINER = '.the-editable-container';
8
8
  export const ELEMENT_UNIQUE_ID = 'key';
9
9
  export const ZERO_WIDTH_CHAR = '\u200B';
10
- export const DROP_THUMB_LINE = 'drop-thumb-line';
11
10
  export var TheMode;
12
11
  (function (TheMode) {
13
12
  TheMode["fullMode"] = "full";
14
13
  TheMode["liteMode"] = "lite";
15
14
  })(TheMode || (TheMode = {}));
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb25zdGFudHMvZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xHLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsMkNBQTJDLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQUM7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDO0FBRWpELE1BQU0sQ0FBTixJQUFZLE9BR1g7QUFIRCxXQUFZLE9BQU87SUFDZiw0QkFBaUIsQ0FBQTtJQUNqQiw0QkFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsT0FBTyxLQUFQLE9BQU8sUUFHbEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfTUlNRSA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL2JtcCddO1xuZXhwb3J0IGNvbnN0IFBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX1NJWkUgPSAyMDtcbmV4cG9ydCBjb25zdCBBX1RBR19SRUxfQVRUUiA9ICdub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93IGV4dGVybmFsIHVnYyc7XG5leHBvcnQgY29uc3QgTElOS19ERUZBVUxUX1RFWFQgPSAn6ZO+5o6lJztcbmV4cG9ydCBjb25zdCBUQUJfU1BBQ0UgPSAnICAgICc7XG5leHBvcnQgY29uc3QgQ0xJUEJPQVJEX0ZPUk1BVF9LRVkgPSAneC10aGVpYS1mcmFnbWVudCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExfQ09OVEFJTkVSID0gJy50aGUtZWRpdGFibGUtY29udGFpbmVyJztcbmV4cG9ydCBjb25zdCBFTEVNRU5UX1VOSVFVRV9JRCA9ICdrZXknO1xuZXhwb3J0IGNvbnN0IFpFUk9fV0lEVEhfQ0hBUiA9ICdcXHUyMDBCJztcbmV4cG9ydCBjb25zdCBEUk9QX1RIVU1CX0xJTkUgPSAnZHJvcC10aHVtYi1saW5lJztcblxuZXhwb3J0IGVudW0gVGhlTW9kZSB7XG4gICAgZnVsbE1vZGUgPSAnZnVsbCcsXG4gICAgbGl0ZU1vZGUgPSAnbGl0ZSdcbn1cblxuZXhwb3J0IHR5cGUgRHJvcERpcmVjdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIE5vZGVMZXZlbCA9ICdoaWdoZXN0JyB8IHVuZGVmaW5lZDtcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb25zdGFudHMvZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xHLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsMkNBQTJDLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQUM7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUM7QUFFeEMsTUFBTSxDQUFOLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNmLDRCQUFpQixDQUFBO0lBQ2pCLDRCQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxPQUFPLEtBQVAsT0FBTyxRQUdsQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBQSUNUVVJFX0FDQ0VQVEVEX1VQTE9BRF9NSU1FID0gWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9naWYnLCAnaW1hZ2UvYm1wJ107XG5leHBvcnQgY29uc3QgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRSA9IDIwO1xuZXhwb3J0IGNvbnN0IEFfVEFHX1JFTF9BVFRSID0gJ25vb3BlbmVyIG5vcmVmZXJyZXIgbm9mb2xsb3cgZXh0ZXJuYWwgdWdjJztcbmV4cG9ydCBjb25zdCBMSU5LX0RFRkFVTFRfVEVYVCA9ICfpk77mjqUnO1xuZXhwb3J0IGNvbnN0IFRBQl9TUEFDRSA9ICcgICAgJztcbmV4cG9ydCBjb25zdCBDTElQQk9BUkRfRk9STUFUX0tFWSA9ICd4LXRoZWlhLWZyYWdtZW50JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDUk9MTF9DT05UQUlORVIgPSAnLnRoZS1lZGl0YWJsZS1jb250YWluZXInO1xuZXhwb3J0IGNvbnN0IEVMRU1FTlRfVU5JUVVFX0lEID0gJ2tleSc7XG5leHBvcnQgY29uc3QgWkVST19XSURUSF9DSEFSID0gJ1xcdTIwMEInO1xuXG5leHBvcnQgZW51bSBUaGVNb2RlIHtcbiAgICBmdWxsTW9kZSA9ICdmdWxsJyxcbiAgICBsaXRlTW9kZSA9ICdsaXRlJ1xufVxuXG5leHBvcnQgdHlwZSBOb2RlTGV2ZWwgPSAnaGlnaGVzdCcgfCB1bmRlZmluZWQ7XG4iXX0=
@@ -23,6 +23,7 @@ import { dataDeserialize, dataSerializing } from './utils/data-transform';
23
23
  import { setEditorUUID } from './utils/editor-uuid';
24
24
  import { idCreator } from './utils/id-creator';
25
25
  import { getToolbarClass } from './utils/get-toolbar-class';
26
+ import { coercePixelsFromCssValue } from './utils/dom';
26
27
  import * as i0 from "@angular/core";
27
28
  import * as i1 from "./services/toolbar.service";
28
29
  import * as i2 from "./services/context.service";
@@ -30,10 +31,9 @@ import * as i3 from "./components/toolbar/toolbar.component";
30
31
  import * as i4 from "slate-angular";
31
32
  import * as i5 from "./components/inline-toolbar/inline-toolbar.component";
32
33
  import * as i6 from "./plugins/quick-insert/components/quick-insert.component";
33
- import * as i7 from "./plugins/dnd/component/dnd.component";
34
- import * as i8 from "./components/template/template.component";
35
- import * as i9 from "@angular/common";
36
- import * as i10 from "@angular/forms";
34
+ import * as i7 from "./components/template/template.component";
35
+ import * as i8 from "@angular/common";
36
+ import * as i9 from "@angular/forms";
37
37
  export class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
38
38
  constructor(toolbarService, theContextService, viewContainerRef, elementRef, ngZone, cdr) {
39
39
  super();
@@ -139,16 +139,10 @@ export class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
139
139
  this.onSlaDragStart = (event) => { };
140
140
  this.onSlaDragOver = (event) => { };
141
141
  this.onDrop = (event) => {
142
- if (this.isDraging) {
143
- event.preventDefault();
144
- }
145
142
  this.theOnDOMEvent.emit({
146
143
  nativeEvent: event
147
144
  });
148
145
  };
149
- this.onDragChange = isDraging => {
150
- this.isDraging = isDraging;
151
- };
152
146
  }
153
147
  get theGlobalToolbarInstance() {
154
148
  return this.theGlobalToolbar ? this.theGlobalToolbar : this.globalToolbarInstance;
@@ -322,8 +316,17 @@ export class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
322
316
  if (event.target === editableElement) {
323
317
  const rectEditable = editableElement.getBoundingClientRect();
324
318
  const centerX = rectEditable.x + rectEditable.width / 2;
325
- const relativeElement = document.elementFromPoint(centerX, event.y);
326
- const relativeBlockCardElement = relativeElement.closest('.slate-block-card');
319
+ let { paddingLeft, paddingRight } = window.getComputedStyle(editableElement, null);
320
+ const paddingLeftPixels = coercePixelsFromCssValue(paddingLeft);
321
+ const paddingRightPixels = coercePixelsFromCssValue(paddingRight);
322
+ const fakeLeftX = rectEditable.x + paddingLeftPixels + 50;
323
+ const fakeRightX = rectEditable.right - paddingRightPixels - 50;
324
+ let relativeElement = document.elementFromPoint(fakeLeftX, event.y);
325
+ let relativeBlockCardElement = relativeElement.closest('.slate-block-card');
326
+ if (!relativeBlockCardElement) {
327
+ relativeElement = document.elementFromPoint(fakeRightX, event.y);
328
+ relativeBlockCardElement = relativeElement.closest('.slate-block-card');
329
+ }
327
330
  if (relativeBlockCardElement) {
328
331
  const blockCardEntry = AngularEditor.toSlateCardEntry(this.editor, relativeBlockCardElement.firstElementChild);
329
332
  if (blockCardEntry && blockCardEntry[1]) {
@@ -390,7 +393,7 @@ TheEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
390
393
  useExisting: forwardRef(() => TheEditorComponent),
391
394
  multi: true
392
395
  }
393
- ], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }, { propertyName: "quickInsertInstance", first: true, predicate: ["quickInsert"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar\"\n [ngClass]=\"{\n 'the-toolbar-disabled': theOptions?.disabled\n }\"\n #globalToolbar\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.global\"\n [containerClass]=\"globalToolbarClass\"\n [align]=\"theOptions?.toolbar?.align\"\n></the-toolbar>\n\n<div\n class=\"the-editable-container\"\n [ngClass]=\"{\n 'the-editor-disabled': theOptions?.disabled,\n 'max-height': maxHeight\n }\"\n [ngStyle]=\"{ 'max-height': maxHeight }\"\n>\n <slate-editable\n class=\"the-editor-typo\"\n [editor]=\"editor\"\n [ngModel]=\"editorValue\"\n (ngModelChange)=\"valueChange($event)\"\n [decorate]=\"decorate\"\n [placeholder]=\"theOptions?.placeholder\"\n [placeholderDecorate]=\"theOptions?.placeholderDecorate ? theOptions?.placeholderDecorate : null\"\n [renderElement]=\"renderElement\"\n [renderText]=\"renderText\"\n [renderLeaf]=\"renderLeaf\"\n [readonly]=\"theOptions?.readonly || theOptions?.disabled\"\n [keydown]=\"onKeyDown\"\n [click]=\"onClick\"\n [paste]=\"onSlaPaste\"\n [beforeInput]=\"onSlaBeforeInput\"\n [blur]=\"onSlaBlur\"\n [focus]=\"onSlaFocus\"\n [copy]=\"onSlaCopy\"\n [cut]=\"onSlaCut\"\n [isStrictDecorate]=\"false\"\n [compositionStart]=\"onSlaCompositionStart\"\n [compositionEnd]=\"onSlaCompositionEnd\"\n [dragStart]=\"onSlaDragStart\"\n [dragOver]=\"onSlaDragOver\"\n [drop]=\"onDrop\"\n (mousedown)=\"mousedown($event)\"\n ></slate-editable>\n <the-inline-toolbar\n *ngIf=\"!theOptions?.readonly && theOptions?.inlineToobarVisible\"\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.inline\"\n ></the-inline-toolbar>\n <div\n #quickInsert\n theQuickInsert\n [editor]=\"editor\"\n [quickToolbarItems]=\"quickToolbarItems\"\n [isVisible]=\"theOptions?.quickInsertVisible\"\n ></div>\n <div class=\"drag-container\">\n <div #drag theDnd [editor]=\"editor\" (dragChange)=\"onDragChange($event)\"></div>\n <div class=\"drag-snapshot-container\"></div>\n </div>\n <the-template #templateInstance></the-template>\n</div>\n", components: [{ type: i3.TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }, { type: i4.SlateEditableComponent, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "isStrictDecorate", "trackBy", "readonly", "placeholder", "beforeInput", "blur", "click", "compositionEnd", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { type: i5.TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: ["editor", "toolbarItems"] }, { type: i6.TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: ["editor", "quickToolbarItems", "isVisible"] }, { type: i7.TheDndComponent, selector: "[theDnd]", inputs: ["editor"], outputs: ["dragChange"] }, { type: i8.TheTemplateComponent, selector: "the-template,[theTemplate]" }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
396
+ ], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }, { propertyName: "quickInsertInstance", first: true, predicate: ["quickInsert"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar\"\n [ngClass]=\"{\n 'the-toolbar-disabled': theOptions?.disabled\n }\"\n #globalToolbar\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.global\"\n [containerClass]=\"globalToolbarClass\"\n [align]=\"theOptions?.toolbar?.align\"\n></the-toolbar>\n\n<div\n class=\"the-editable-container\"\n [ngClass]=\"{\n 'the-editor-disabled': theOptions?.disabled,\n 'max-height': maxHeight\n }\"\n [ngStyle]=\"{ 'max-height': maxHeight }\"\n>\n <slate-editable\n class=\"the-editor-typo\"\n [editor]=\"editor\"\n [ngModel]=\"editorValue\"\n (ngModelChange)=\"valueChange($event)\"\n [decorate]=\"decorate\"\n [placeholder]=\"theOptions?.placeholder\"\n [placeholderDecorate]=\"theOptions?.placeholderDecorate ? theOptions?.placeholderDecorate : null\"\n [renderElement]=\"renderElement\"\n [renderText]=\"renderText\"\n [renderLeaf]=\"renderLeaf\"\n [readonly]=\"theOptions?.readonly || theOptions?.disabled\"\n [keydown]=\"onKeyDown\"\n [click]=\"onClick\"\n [paste]=\"onSlaPaste\"\n [beforeInput]=\"onSlaBeforeInput\"\n [blur]=\"onSlaBlur\"\n [focus]=\"onSlaFocus\"\n [copy]=\"onSlaCopy\"\n [cut]=\"onSlaCut\"\n [isStrictDecorate]=\"false\"\n [compositionStart]=\"onSlaCompositionStart\"\n [compositionEnd]=\"onSlaCompositionEnd\"\n [dragStart]=\"onSlaDragStart\"\n [dragOver]=\"onSlaDragOver\"\n [drop]=\"onDrop\"\n (mousedown)=\"mousedown($event)\"\n ></slate-editable>\n <the-inline-toolbar\n *ngIf=\"!theOptions?.readonly && theOptions?.inlineToobarVisible\"\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.inline\"\n ></the-inline-toolbar>\n <div\n #quickInsert\n theQuickInsert\n [editor]=\"editor\"\n [quickToolbarItems]=\"quickToolbarItems\"\n [isVisible]=\"theOptions?.quickInsertVisible\"\n ></div>\n <the-template #templateInstance></the-template>\n</div>\n", components: [{ type: i3.TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }, { type: i4.SlateEditableComponent, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "isStrictDecorate", "trackBy", "readonly", "placeholder", "beforeInput", "blur", "click", "compositionEnd", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { type: i5.TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: ["editor", "toolbarItems"] }, { type: i6.TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: ["editor", "quickToolbarItems", "isVisible"] }, { type: i7.TheTemplateComponent, selector: "the-template,[theTemplate]" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
394
397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheEditorComponent, decorators: [{
395
398
  type: Component,
396
399
  args: [{
@@ -438,4 +441,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
438
441
  type: ViewChild,
439
442
  args: ['quickInsert', { static: true }]
440
443
  }] } });
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBRVQsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBSVosdUJBQXVCLEVBRTFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBUSxVQUFVLEVBQUUsWUFBWSxFQUF1QixLQUFLLEVBQUUsSUFBSSxFQUFhLE1BQU0sT0FBTyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBYyxXQUFXLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFzRCxXQUFXLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxhQUFhLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBcUI1RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBOEQvRCxZQUNZLGNBQWlDLEVBQ2pDLGlCQUFvQyxFQUNwQyxnQkFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsTUFBYyxFQUNkLEdBQXNCO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBUEEsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpFekIsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFRNUIsY0FBUyxHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUV6RSxrQkFBYSxHQUFrRSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxHLHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBV3RFLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBMEIzQixtQkFBYyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxNQUFjLEVBQUUsZUFBdUI7WUFDekUsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekQsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsa0JBQWEsR0FBNkIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVoRCxxQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRTlDLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQThLakQsa0JBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1QyxDQUFDLENBQUM7UUFFRixlQUFVLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBRUYsZUFBVSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7WUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUU7Z0JBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUN0QixPQUFPLGdCQUFnQixDQUFDO2lCQUMzQjthQUNKO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU87YUFDVjtRQUNMLENBQUMsQ0FBQztRQWNGLGNBQVMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDcEIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLElBQUksRUFBRTtvQkFDRixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7aUJBQ2pCO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixPQUFPO2FBQ1Y7WUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQjtZQUNELGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUM7UUFzREYsWUFBTyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzVCLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDcEIsV0FBVyxFQUFFLEtBQUs7YUFDckIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBRUYsZUFBVSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLG9CQUNHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUM5QztnQkFDRCxXQUFXLEVBQUUsS0FBSzthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxDQUNmLEtBSUMsRUFDSCxFQUFFO1lBQ0EsSUFBSSxJQUFJLEdBQUc7Z0JBQ1AsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMxQixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQVc7YUFDckQsQ0FBQztZQUNGLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxpQkFBaUIsRUFBRTtnQkFDdkMsSUFBSSxtQ0FDRyxJQUFJLEdBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBaUIsQ0FBQyxDQUM3RSxDQUFDO2FBQ0w7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSTtnQkFDSixXQUFXLEVBQUUsS0FBSzthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixjQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLFdBQVcsRUFBRSxLQUFLO2FBQ3JCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLGVBQVUsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUNwQixXQUFXLEVBQUUsS0FBSzthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixhQUFRLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLFdBQVcsRUFBRSxLQUFLO2FBQ3JCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLGNBQVMsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUUxQywwQkFBcUIsR0FBRyxDQUFDLEtBQXVCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV4RCx3QkFBbUIsR0FBRyxDQUFDLEtBQXVCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV0RCxtQkFBYyxHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRTFDLGtCQUFhLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFekMsV0FBTSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLFdBQVcsRUFBRSxLQUFLO2FBQ3JCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsU0FBUyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDL0IsQ0FBQyxDQUFDO0lBNVZGLENBQUM7SUEvQkQsSUFBSSx3QkFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLFNBQVM7O1FBQ1QsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQyxHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7O1FBQ2pCLE9BQU8sTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxLQUFLLENBQUM7SUFDckMsQ0FBQztJQXVCRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCOztRQUM5QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRW5DLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7UUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFlBQVksMENBQUUsUUFBUSxPQUFLLE1BQUEsT0FBTyxDQUFDLGFBQWEsMENBQUUsUUFBUSxDQUFBLEVBQUU7WUFDL0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxTQUFTLEtBQUksQ0FBQyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksMENBQUUsUUFBUSxNQUFJLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksMENBQUUsUUFBUSxDQUFBLENBQUMsRUFBRTtZQUNoRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVOztRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFZLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixHQUFHLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsbUJBQW1CLENBQUM7UUFDdkUsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1lBQzlCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO1lBQzVDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLHdEQUF3RDtZQUN4RCw4REFBOEQ7WUFDOUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUc7Z0JBQ2QsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO2FBQ3pCLENBQUM7U0FDTDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxtQ0FDUixJQUFJLENBQUMsVUFBVSxLQUNsQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksR0FDekIsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELGNBQWM7O1FBQ1YsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxRQUFRLENBQUEsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxRQUFRLENBQUEsRUFBRTtZQUMxRCxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3REO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjs7UUFDWixNQUFNLE9BQU8sR0FBRyxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxVQUFVLDBDQUFFLE9BQU8sQ0FBQztRQUMxQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDckQsQ0FBQztJQUVELGlCQUFpQjs7UUFDYixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDbkQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN2RSxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUN2RSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxHQUFHLE1BQUEsTUFBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsVUFBVSwwQ0FBRSxPQUFPLDBDQUFFLEtBQUssQ0FBQztZQUN2RSxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQTRCOztRQUNuQyxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBbUI7O1FBQzNCLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQSxJQUFJLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQSxDQUFDO1FBRTVFLE1BQUEsSUFBSSxDQUFDLHdCQUF3QiwwQ0FBRSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpELHNCQUFzQjtRQUN0QixJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQUEsSUFBSSxDQUFDLG1CQUFtQiwwQ0FBRSxXQUFXLEVBQUUsQ0FBQztTQUMzQztRQUVELG1CQUFtQjtRQUNuQixNQUFNLGVBQWUsR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLGVBQWUsQ0FBQztRQUN6RCxNQUFNLFNBQVMsR0FBRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFNBQVMsQ0FBQztRQUM3QyxJQUFJLFVBQVUsSUFBSSxDQUFDLGVBQWUsSUFBSSxTQUFTLENBQUMsRUFBRTtZQUM5QyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7WUFDekUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRTtZQUM1QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixjQUFjO1FBQ2QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBbUI7O1FBQ2hDLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLElBQUksTUFBSyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQzVDLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFOztnQkFDL0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRTtvQkFDM0IsY0FBYztvQkFDZCxXQUFXLEdBQUcsZUFBZSxDQUFDLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQVcsQ0FBQztvQkFDMUUsU0FBUyxJQUFJLFdBQVcsQ0FBQztvQkFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUM3QyxPQUFPO2lCQUNWO2dCQUNELFNBQVMsSUFBSSxXQUFXLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxTQUFxQixFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQixPQUFPO2FBQ1Y7WUFDRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0wsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQXdCRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsU0FBb0IsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUV2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2xCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNqRTtZQUVELE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztJQUNOLENBQUM7SUF1QkQsU0FBUyxDQUFDLEtBQWlCO1FBQ3ZCLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLGVBQWUsRUFBRTtZQUNsQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3RCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sd0JBQXdCLEdBQWUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFGLElBQUksd0JBQXdCLEVBQUU7Z0JBQzFCLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQy9HLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDckMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25ELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDbkMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUN2QixhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7cUJBQzNHO2lCQUNKO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUM7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDeEIsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUM7UUFDRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdELE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEUsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxhQUFhLElBQUksV0FBVyxFQUFFO29CQUM5QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsRUFBRTt3QkFDMUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO3dCQUMxQyxNQUFNO3FCQUNUO29CQUNELElBQUksR0FBRyxJQUFJLENBQUM7aUJBQ2Y7YUFDSjtTQUNKO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN0QztRQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixPQUFPO0lBQ1gsQ0FBQztJQWtGRCxjQUFjLENBQUMsSUFBa0I7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxPQUFPO1lBQ0gsSUFBSTtZQUNKLElBQUk7U0FDUCxDQUFDO0lBQ04sQ0FBQzs7Z0hBaGJRLGtCQUFrQjtvR0FBbEIsa0JBQWtCLG9hQWZoQjtRQUNQLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixzYUMxREwsOHlFQWtFQTs0RkRGYSxrQkFBa0I7a0JBbkI5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckI7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO29CQUNELElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsWUFBWTt3QkFDbkIsNkJBQTZCLEVBQUUsc0JBQXNCO3FCQUN4RDtpQkFDSjtxUEFFWSxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0MscUJBQXFCO3NCQURwQixTQUFTO3VCQUFDLGVBQWU7Z0JBSTFCLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBOZ1pvbmUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1peGluVW5zdWJzY3JpYmUsIE1peGluQmFzZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgaXNIb3RrZXkgZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IEVkaXRvciwgVGV4dCwgVHJhbnNmb3JtcywgY3JlYXRlRWRpdG9yLCBFbGVtZW50LCBEZXNjZW5kYW50LCBSYW5nZSwgUGF0aCwgTm9kZUVudHJ5IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIFNsYXRlRXJyb3IsIHdpdGhBbmd1bGFyLCBET01FbGVtZW50IH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVQbHVnaW4sIFRoZU9wdGlvbnMsIERvbUV2ZW50RGF0YUluZm8sIFRoZUVkaXRvciwgVGhlRGF0YU1vZGUsIFRvb2xiYXJFbnRpdHkgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWFya1R5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2l0aFRoZUVkaXRvciwgdG9vbGJhckNvbXBvc2UgfSBmcm9tICcuL3BsdWdpbnMvaW5kZXgnO1xuaW1wb3J0IHsgVGhlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IHNob3J0Y3V0cyB9IGZyb20gJy4vc2hvcnRjdXRzJztcbmltcG9ydCB7IFRoZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdG9vbGJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBERUZBVUxUX1NDUk9MTF9DT05UQUlORVIgfSBmcm9tICcuL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IFRoZUNvbG9yU2VsZWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29sb3Itc2VsZWN0LnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuL3RyYW5zZm9ybXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuL3F1ZXJpZXMnO1xuaW1wb3J0IHsgYXV0b0ZvY3VzIH0gZnJvbSAnLi91dGlscy9hdXRvLWZvY3VzJztcbmltcG9ydCB7IGF1dG9TY3JvbGxWaWV3SGFuZGxlIH0gZnJvbSAnLi91dGlscy9hdXRvLXNjcm9sbC12aWV3JztcbmltcG9ydCB7IF8gfSBmcm9tICcuL3V0aWxzL2xvZGFzaCc7XG5pbXBvcnQgeyBkYXRhRGVzZXJpYWxpemUsIGRhdGFTZXJpYWxpemluZyB9IGZyb20gJy4vdXRpbHMvZGF0YS10cmFuc2Zvcm0nO1xuaW1wb3J0IHsgc2V0RWRpdG9yVVVJRCB9IGZyb20gJy4vdXRpbHMvZWRpdG9yLXV1aWQnO1xuaW1wb3J0IHsgaWRDcmVhdG9yIH0gZnJvbSAnLi91dGlscy9pZC1jcmVhdG9yJztcbmltcG9ydCB7IFRoZVF1aWNrSW5zZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2V0VG9vbGJhckNsYXNzIH0gZnJvbSAnLi91dGlscy9nZXQtdG9vbGJhci1jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWVkaXRvciwgdGhlRWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRoZVRvb2xiYXJTZXJ2aWNlLFxuICAgICAgICBUaGVDb250ZXh0U2VydmljZSxcbiAgICAgICAgVGhlQ29sb3JTZWxlY3RTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZUVkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWVkaXRvcicsXG4gICAgICAgICdbY2xhc3MudGhlLWVkaXRvci1yZWFkb25seV0nOiAndGhlT3B0aW9ucz8ucmVhZG9ubHknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaGVFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0aGVPcHRpb25zOiBUaGVPcHRpb25zO1xuXG4gICAgQElucHV0KCkgdGhlUGx1Z2luczogVGhlUGx1Z2luW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHRoZUdsb2JhbFRvb2xiYXI/OiBUaGVUb29sYmFyQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgdGhlRGVjb3JhdGU6IChlZGl0b3I6IFRoZUVkaXRvciwgbm9kZUVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG5cbiAgICBASW5wdXQoKSB0aGVPbkVycm9yPzogKGVycm9yOiBTbGF0ZUVycm9yKSA9PiB2b2lkO1xuXG4gICAgQE91dHB1dCgpIHRoZU9uU2F2ZTogRXZlbnRFbWl0dGVyPERlc2NlbmRhbnRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPERlc2NlbmRhbnRbXT4oKTtcblxuICAgIEBPdXRwdXQoKSB0aGVPbkRPTUV2ZW50OiBFdmVudEVtaXR0ZXI8eyBuYXRpdmVFdmVudDogRXZlbnQ7IGRhdGE/OiBEb21FdmVudERhdGFJbmZvIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIHRoZUVkaXRvckNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxFZGl0b3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVJbnN0YW5jZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgdGVtcGxhdGVJbnN0YW5jZTogVGhlVGVtcGxhdGVDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdnbG9iYWxUb29sYmFyJylcbiAgICBnbG9iYWxUb29sYmFySW5zdGFuY2U6IFRoZVRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdxdWlja0luc2VydCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcXVpY2tJbnNlcnRJbnN0YW5jZTogVGhlUXVpY2tJbnNlcnRDb21wb25lbnQ7XG5cbiAgICBfcGx1Z2luczogVGhlUGx1Z2luW10gPSBbXTtcblxuICAgIHRvb2xiYXJFbnRpdHk6IFRvb2xiYXJFbnRpdHk7XG5cbiAgICBlZGl0b3I6IFRoZUVkaXRvcjtcblxuICAgIGVkaXRvclZhbHVlOiBEZXNjZW5kYW50W107XG5cbiAgICBnbG9iYWxUb29sYmFyQ2xhc3M6IHN0cmluZ1tdO1xuXG4gICAgaXNEcmFnaW5nOiBib29sZWFuO1xuXG4gICAgZGVjb3JhdGU6IChub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4gUmFuZ2VbXTtcblxuICAgIGdldCB0aGVHbG9iYWxUb29sYmFySW5zdGFuY2UoKTogVGhlVG9vbGJhckNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZUdsb2JhbFRvb2xiYXIgPyB0aGlzLnRoZUdsb2JhbFRvb2xiYXIgOiB0aGlzLmdsb2JhbFRvb2xiYXJJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBnZXQgbWF4SGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aGVPcHRpb25zPy5tYXhIZWlnaHQgPyBgJHt0aGlzLnRoZU9wdGlvbnM/Lm1heEhlaWdodH1weGAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBxdWlja1Rvb2xiYXJJdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckVudGl0eT8ucXVpY2s7XG4gICAgfVxuXG4gICAgYXV0b1Njcm9sbFZpZXcgPSBfLmRlYm91bmNlKGZ1bmN0aW9uIChlZGl0b3I6IEVkaXRvciwgc2Nyb2xsQ29udGFpbmVyOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGF1dG9TY3JvbGxWaWV3SGFuZGxlKGVkaXRvciwgc2Nyb2xsQ29udGFpbmVyKTtcbiAgICB9LCA4MCk7XG5cbiAgICBlbGVtZW50VG9IdG1sOiBXZWFrTWFwPEVsZW1lbnQsIHN0cmluZz4gPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0b29sYmFyU2VydmljZTogVGhlVG9vbGJhclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLm9uRXJyb3JIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY2hhbmdlcy50aGVPcHRpb25zO1xuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5jdXJyZW50VmFsdWU/LnJlYWRvbmx5ICE9PSBvcHRpb25zLnByZXZpb3VzVmFsdWU/LnJlYWRvbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5QXV0b0ZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXNbJ3RoZURlY29yYXRlJ10pIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVEZWNvcmF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmVkaXRvcj8uc2VsZWN0aW9uICYmIChvcHRpb25zPy5jdXJyZW50VmFsdWU/LnJlYWRvbmx5IHx8IG9wdGlvbnM/LmN1cnJlbnRWYWx1ZT8uZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmRlc2VsZWN0KHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gd2l0aFRoZUVkaXRvcjxUaGVFZGl0b3I+KHRoaXMudGhlUGx1Z2lucywgd2l0aEhpc3Rvcnkod2l0aEFuZ3VsYXIoY3JlYXRlRWRpdG9yKCksIENMSVBCT0FSRF9GT1JNQVRfS0VZKSkpO1xuICAgICAgICB0aGlzLmdlbmVyYXRlRGVjb3JhdGUoKTtcbiAgICAgICAgdGhpcy5lZGl0b3IuZGlzYWJsZWQgPSB0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkO1xuICAgICAgICB0aGlzLmVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zID0gdGhpcy50aGVPcHRpb25zPy5leHRyYUVsZW1lbnRPcHRpb25zO1xuICAgICAgICBzZXRFZGl0b3JVVUlEKHRoaXMuZWRpdG9yLCBpZENyZWF0b3IoKSk7XG4gICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UuaW5pdGlhbGl6ZSh7XG4gICAgICAgICAgICB0aGVPcHRpb25zOiB0aGlzLnRoZU9wdGlvbnMsXG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZlxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50b29sYmFyQ2FsY3VsYXRlKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gWW91IG5lZWQgdG8gd2FpdCBmb3IgdGhlIGVkaXRvciByZW5kZXJpbmcgdG8gY29tcGxldGVcbiAgICAgICAgICAgIC8vIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBleHRlcm5hbCB0b29sYmFyIGFzc2lnbm1lbnQgZGV0ZWN0aW9uXG4gICAgICAgICAgICB0aGlzLmdsb2JhbFRvb2xiYXJJbml0KCk7XG4gICAgICAgICAgICB0aGlzLnRoZUVkaXRvckNyZWF0ZWQuZW1pdCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICB0aGlzLmFwcGx5QXV0b0ZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVPcHRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMudGhlT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50aGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIHJlYWRvbmx5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtb2RlOiBUaGVEYXRhTW9kZS5odG1sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50aGVPcHRpb25zLm1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudGhlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnRoZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgbW9kZTogVGhlRGF0YU1vZGUuaHRtbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5QXV0b0ZvY3VzKCkge1xuICAgICAgICBpZiAoIXRoaXMudGhlT3B0aW9ucz8uZGlzYWJsZWQgJiYgIXRoaXMudGhlT3B0aW9ucz8ucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGF1dG9Gb2N1cyh0aGlzLmVkaXRvciwgdGhpcy50aGVPcHRpb25zPy5hdXRvRm9jdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9vbGJhckNhbGN1bGF0ZSgpIHtcbiAgICAgICAgY29uc3QgdG9vbGJhciA9IHRoaXM/LnRoZU9wdGlvbnM/LnRvb2xiYXI7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IHRvb2xiYXJDb21wb3NlKHRvb2xiYXI/LnRvb2xiYXJJdGVtcyk7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJPcHRpb24gPSB0aGlzLnRvb2xiYXJTZXJ2aWNlLmluaXRpYWxpemUodG9vbGJhckl0ZW1zLCB0b29sYmFyPy5nbG9iYWwsIHRvb2xiYXI/LmlubGluZSwgdG9vbGJhcj8ucXVpY2spO1xuICAgICAgICB0aGlzLmdsb2JhbFRvb2xiYXJDbGFzcyA9IFsndGhlLWdsb2JhbC10b29sYmFyJywgZ2V0VG9vbGJhckNsYXNzKHRoaXMuZWRpdG9yKV07XG4gICAgICAgIHRoaXMudG9vbGJhckVudGl0eSA9IHRvb2xiYXJPcHRpb24udG9vbGJhckVudGl0eTtcbiAgICB9XG5cbiAgICBnbG9iYWxUb29sYmFySW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGhlR2xvYmFsVG9vbGJhcikge1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2UuZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS50b29sYmFySXRlbXMgPSB0aGlzLnRvb2xiYXJFbnRpdHkuZ2xvYmFsO1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2UuY29udGFpbmVyQ2xhc3MgPSB0aGlzLmdsb2JhbFRvb2xiYXJDbGFzcztcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLmFsaWduID0gdGhpcz8udGhlT3B0aW9ucz8udG9vbGJhcj8uYWxpZ247XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS5zZXRUb29sYmFyQ2xhc3MoKTtcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLnJlbmRlclRvb2xiYXJWaWV3KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBEZXNjZW5kYW50W10pIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGRhdGFEZXNlcmlhbGl6ZSh0aGlzLnRoZU9wdGlvbnM/Lm1vZGUsIHZhbHVlKTtcbiAgICAgICAgLy8gZGF0YS1kZXNlcmlhbGl6ZVxuICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gZGF0YTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHZhbHVlQ2hhbmdlKHZhbHVlOiBEZXNjZW5kYW50W10pIHtcbiAgICAgICAgY29uc3QgaXNFZGl0YWJsZSA9ICF0aGlzLnRoZU9wdGlvbnM/LnJlYWRvbmx5ICYmICF0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkO1xuXG4gICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlPy5zdGF0dXNDaGFuZ2UodGhpcy5lZGl0b3IpO1xuXG4gICAgICAgIC8vIHF1aWNrIGluc2VydCBidXR0b25cbiAgICAgICAgaWYgKGlzRWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMucXVpY2tJbnNlcnRJbnN0YW5jZT8uY2hlY2tTdGF0dXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGF1dG8gc2Nyb2xsIHZpZXdcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gdGhpcy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXI7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMudGhlT3B0aW9ucz8ubWF4SGVpZ2h0O1xuICAgICAgICBpZiAoaXNFZGl0YWJsZSAmJiAoc2Nyb2xsQ29udGFpbmVyIHx8IG1heEhlaWdodCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1heEhlaWdodCA/IERFRkFVTFRfU0NST0xMX0NPTlRBSU5FUiA6IHNjcm9sbENvbnRhaW5lcjtcbiAgICAgICAgICAgIHRoaXMuYXV0b1Njcm9sbFZpZXcodGhpcy5lZGl0b3IsIGNvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5lZGl0b3JWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgLy8gc2VyaWFsaXppbmdcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5zZXJpYWxpemluZ1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemluZ1ZhbHVlKHZhbHVlOiBEZXNjZW5kYW50W10pOiBzdHJpbmcgfCBEZXNjZW5kYW50W10ge1xuICAgICAgICBpZiAodGhpcy50aGVPcHRpb25zPy5tb2RlID09PSBUaGVEYXRhTW9kZS5odG1sKSB7XG4gICAgICAgICAgICBsZXQgaHRtbFZhbHVlID0gJyc7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRIdG1sID0gdGhpcy5lbGVtZW50VG9IdG1sLmdldChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudEh0bWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBzZXJpYWxpemluZ1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50SHRtbCA9IGRhdGFTZXJpYWxpemluZyh0aGlzLnRoZU9wdGlvbnM/Lm1vZGUsIFtlbGVtZW50XSkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBodG1sVmFsdWUgKz0gZWxlbWVudEh0bWw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFRvSHRtbC5zZXQoZWxlbWVudCwgZWxlbWVudEh0bWwpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGh0bWxWYWx1ZSArPSBlbGVtZW50SHRtbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgb25FcnJvckhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yLm9uRXJyb3IgPSAoZXJyb3JEYXRhOiBTbGF0ZUVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aGVPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVPbkVycm9yKGVycm9yRGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVycm9yRGF0YS5uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JEYXRhLm5hdGl2ZUVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlSW5zdGFuY2UucmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5lZGl0b3IucmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudCA/IGNvbXBvbmVudCA6IHRlbXBsYXRlO1xuICAgIH07XG5cbiAgICByZW5kZXJMZWFmID0gKHRleHQ6IFRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbGVhZiA9IHRoaXMuZWRpdG9yLnJlbmRlckxlYWYodGV4dCk7XG4gICAgICAgIHJldHVybiBsZWFmID8gbGVhZiA6IG51bGw7XG4gICAgfTtcblxuICAgIHJlbmRlclRleHQgPSAodGV4dDogVGV4dCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBNYXJrVHlwZXMpIHtcbiAgICAgICAgICAgIGlmICh0ZXh0W01hcmtUeXBlc1trZXldXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUaGVUZXh0Q29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0ZXh0LnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2VuZXJhdGVEZWNvcmF0ZSgpIHtcbiAgICAgICAgdGhpcy5kZWNvcmF0ZSA9IChub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVjb3JhdGlvbnMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudGhlRGVjb3JhdGUpIHtcbiAgICAgICAgICAgICAgICBkZWNvcmF0aW9ucy5wdXNoKC4uLnRoaXMudGhlRGVjb3JhdGUodGhpcy5lZGl0b3IsIG5vZGVFbnRyeSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGVjb3JhdGlvbnM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25LZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHNob3J0Y3V0cyh0aGlzLmVkaXRvciwgZXZlbnQpO1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnQsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAga2V5OiBldmVudC5rZXlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0hvdGtleSgnbW9kK3MnLCBldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVPblNhdmUuZW1pdCh0aGlzLmVkaXRvclZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNIb3RrZXkoJ21vZCthJywgZXZlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdEFsbCgpO1xuICAgICAgICB9XG4gICAgICAgIEFuZ3VsYXJFZGl0b3Iub25LZXlkb3duKHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgfTtcblxuICAgIG1vdXNlZG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZSh0aGlzLmVkaXRvciwgdGhpcy5lZGl0b3IpO1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBlZGl0YWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3RFZGl0YWJsZSA9IGVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclggPSByZWN0RWRpdGFibGUueCArIHJlY3RFZGl0YWJsZS53aWR0aCAvIDI7XG4gICAgICAgICAgICBjb25zdCByZWxhdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGNlbnRlclgsIGV2ZW50LnkpO1xuICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVCbG9ja0NhcmRFbGVtZW50OiBET01FbGVtZW50ID0gcmVsYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy5zbGF0ZS1ibG9jay1jYXJkJyk7XG4gICAgICAgICAgICBpZiAocmVsYXRpdmVCbG9ja0NhcmRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkRW50cnkgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVDYXJkRW50cnkodGhpcy5lZGl0b3IsIHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrQ2FyZEVudHJ5ICYmIGJsb2NrQ2FyZEVudHJ5WzFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvb3ROb2RlUGF0aCA9IGJsb2NrQ2FyZEVudHJ5WzFdLnNsaWNlKDAsIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb290Tm9kZSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZSh0aGlzLmVkaXRvciwgcm9vdE5vZGVQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWRpdG9yLmlzQmxvY2tDYXJkKHJvb3ROb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEFuZ3VsYXJFZGl0b3IubW92ZUJsb2NrQ2FyZCh0aGlzLmVkaXRvciwgcm9vdE5vZGUsIHsgZGlyZWN0aW9uOiBldmVudC54IDwgY2VudGVyWCA/ICdsZWZ0JyA6ICdyaWdodCcgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVTZWxlY3RBbGwoKSB7XG4gICAgICAgIGxldCBub2RlO1xuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRFbmRTZWxlY3Rpb24odGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IFJhbmdlLmVkZ2VzKHRoaXMuZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblJhbmdlID0gRWRpdG9yLnJhbmdlKHRoaXMuZWRpdG9yLCBzdGFydCwgZW5kKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyQmxvY2tzID0gVGhlUXVlcmllcy5nZXRDb250YWluZXJCbG9ja3ModGhpcy5lZGl0b3IpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRhaW5lckJsb2Nrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgW25vZGVdID0gVGhlUXVlcmllcy5nZXROb2Rlc0J5VHlwZSh0aGlzLmVkaXRvciwgY29udGFpbmVyQmxvY2tzW2ldKTtcbiAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgWywgcGF0aF0gPSBub2RlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RhcnRQYXJlbnQgPSBQYXRoLmVxdWFscyhwYXRoLCBzdGFydC5wYXRoLnNsaWNlKDAsIHBhdGgubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFbmRQYXJlbnQgPSBQYXRoLmVxdWFscyhwYXRoLCBlbmQucGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIGlmIChpc1N0YXJ0UGFyZW50ICYmIGlzRW5kUGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVSYW5nZSA9IEVkaXRvci5yYW5nZSh0aGlzLmVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghUmFuZ2UuZXF1YWxzKG5vZGVSYW5nZSwgc2VsZWN0aW9uUmFuZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdCh0aGlzLmVkaXRvciwgbm9kZVJhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5vZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBbXSk7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG9uQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgQW5ndWxhckVkaXRvci5vbkNsaWNrKHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFQYXN0ZSA9IChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0VGV4dEFuZEpTT04oZXZlbnQuY2xpcGJvYXJkRGF0YSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uU2xhQmVmb3JlSW5wdXQgPSAoXG4gICAgICAgIGV2ZW50OiBFdmVudCAmIHtcbiAgICAgICAgICAgIGlucHV0VHlwZTogc3RyaW5nO1xuICAgICAgICAgICAgZGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAgIGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyIHwgbnVsbDtcbiAgICAgICAgfVxuICAgICkgPT4ge1xuICAgICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgICAgIGlucHV0VHlwZTogZXZlbnQuaW5wdXRUeXBlLFxuICAgICAgICAgICAgdGV4dDogKGV2ZW50LmRhdGEgfHwgZXZlbnQuZGF0YVRyYW5zZmVyKSBhcyBzdHJpbmdcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGV2ZW50LmlucHV0VHlwZSA9PT0gJ2luc2VydEZyb21QYXN0ZScpIHtcbiAgICAgICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldFRleHRBbmRKU09OKChldmVudC5kYXRhIHx8IGV2ZW50LmRhdGFUcmFuc2ZlcikgYXMgRGF0YVRyYW5zZmVyKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUJsdXIgPSAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUZvY3VzID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uU2xhQ3V0ID0gKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uU2xhQ29weSA9IChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHt9O1xuXG4gICAgb25TbGFDb21wb3NpdGlvblN0YXJ0ID0gKGV2ZW50OiBDb21wb3NpdGlvbkV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhQ29tcG9zaXRpb25FbmQgPSAoZXZlbnQ6IENvbXBvc2l0aW9uRXZlbnQpID0+IHt9O1xuXG4gICAgb25TbGFEcmFnU3RhcnQgPSAoZXZlbnQ6IERyYWdFdmVudCkgPT4ge307XG5cbiAgICBvblNsYURyYWdPdmVyID0gKGV2ZW50OiBEcmFnRXZlbnQpID0+IHt9O1xuXG4gICAgb25Ecm9wID0gKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnaW5nKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25EcmFnQ2hhbmdlID0gaXNEcmFnaW5nID0+IHtcbiAgICAgICAgdGhpcy5pc0RyYWdpbmcgPSBpc0RyYWdpbmc7XG4gICAgfTtcblxuICAgIGdldFRleHRBbmRKU09OKGRhdGE6IERhdGFUcmFuc2Zlcikge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRhdGEuZ2V0RGF0YShgYXBwbGljYXRpb24vJHtDTElQQk9BUkRfRk9STUFUX0tFWX1gKTtcbiAgICAgICAgbGV0IGpzb24gPSBbXTtcbiAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQod2luZG93LmF0b2IoZnJhZ21lbnQpKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dCA9IGRhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAganNvbixcbiAgICAgICAgICAgIHRleHRcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8dGhlLXRvb2xiYXJcbiAgICAqbmdJZj1cIiF0aGVPcHRpb25zPy5yZWFkb25seSAmJiAhdGhlR2xvYmFsVG9vbGJhclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGhlLXRvb2xiYXItZGlzYWJsZWQnOiB0aGVPcHRpb25zPy5kaXNhYmxlZFxuICAgIH1cIlxuICAgICNnbG9iYWxUb29sYmFyXG4gICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgIFt0b29sYmFySXRlbXNdPVwidG9vbGJhckVudGl0eS5nbG9iYWxcIlxuICAgIFtjb250YWluZXJDbGFzc109XCJnbG9iYWxUb29sYmFyQ2xhc3NcIlxuICAgIFthbGlnbl09XCJ0aGVPcHRpb25zPy50b29sYmFyPy5hbGlnblwiXG4+PC90aGUtdG9vbGJhcj5cblxuPGRpdlxuICAgIGNsYXNzPVwidGhlLWVkaXRhYmxlLWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGhlLWVkaXRvci1kaXNhYmxlZCc6IHRoZU9wdGlvbnM/LmRpc2FibGVkLFxuICAgICAgICAnbWF4LWhlaWdodCc6IG1heEhlaWdodFxuICAgIH1cIlxuICAgIFtuZ1N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBtYXhIZWlnaHQgfVwiXG4+XG4gICAgPHNsYXRlLWVkaXRhYmxlXG4gICAgICAgIGNsYXNzPVwidGhlLWVkaXRvci10eXBvXCJcbiAgICAgICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0b3JWYWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZGVjb3JhdGVdPVwiZGVjb3JhdGVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGhlT3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxuICAgICAgICBbcGxhY2Vob2xkZXJEZWNvcmF0ZV09XCJ0aGVPcHRpb25zPy5wbGFjZWhvbGRlckRlY29yYXRlID8gdGhlT3B0aW9ucz8ucGxhY2Vob2xkZXJEZWNvcmF0ZSA6IG51bGxcIlxuICAgICAgICBbcmVuZGVyRWxlbWVudF09XCJyZW5kZXJFbGVtZW50XCJcbiAgICAgICAgW3JlbmRlclRleHRdPVwicmVuZGVyVGV4dFwiXG4gICAgICAgIFtyZW5kZXJMZWFmXT1cInJlbmRlckxlYWZcIlxuICAgICAgICBbcmVhZG9ubHldPVwidGhlT3B0aW9ucz8ucmVhZG9ubHkgfHwgdGhlT3B0aW9ucz8uZGlzYWJsZWRcIlxuICAgICAgICBba2V5ZG93bl09XCJvbktleURvd25cIlxuICAgICAgICBbY2xpY2tdPVwib25DbGlja1wiXG4gICAgICAgIFtwYXN0ZV09XCJvblNsYVBhc3RlXCJcbiAgICAgICAgW2JlZm9yZUlucHV0XT1cIm9uU2xhQmVmb3JlSW5wdXRcIlxuICAgICAgICBbYmx1cl09XCJvblNsYUJsdXJcIlxuICAgICAgICBbZm9jdXNdPVwib25TbGFGb2N1c1wiXG4gICAgICAgIFtjb3B5XT1cIm9uU2xhQ29weVwiXG4gICAgICAgIFtjdXRdPVwib25TbGFDdXRcIlxuICAgICAgICBbaXNTdHJpY3REZWNvcmF0ZV09XCJmYWxzZVwiXG4gICAgICAgIFtjb21wb3NpdGlvblN0YXJ0XT1cIm9uU2xhQ29tcG9zaXRpb25TdGFydFwiXG4gICAgICAgIFtjb21wb3NpdGlvbkVuZF09XCJvblNsYUNvbXBvc2l0aW9uRW5kXCJcbiAgICAgICAgW2RyYWdTdGFydF09XCJvblNsYURyYWdTdGFydFwiXG4gICAgICAgIFtkcmFnT3Zlcl09XCJvblNsYURyYWdPdmVyXCJcbiAgICAgICAgW2Ryb3BdPVwib25Ecm9wXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJtb3VzZWRvd24oJGV2ZW50KVwiXG4gICAgPjwvc2xhdGUtZWRpdGFibGU+XG4gICAgPHRoZS1pbmxpbmUtdG9vbGJhclxuICAgICAgICAqbmdJZj1cIiF0aGVPcHRpb25zPy5yZWFkb25seSAmJiB0aGVPcHRpb25zPy5pbmxpbmVUb29iYXJWaXNpYmxlXCJcbiAgICAgICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgICAgICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJFbnRpdHkuaW5saW5lXCJcbiAgICA+PC90aGUtaW5saW5lLXRvb2xiYXI+XG4gICAgPGRpdlxuICAgICAgICAjcXVpY2tJbnNlcnRcbiAgICAgICAgdGhlUXVpY2tJbnNlcnRcbiAgICAgICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgICAgICBbcXVpY2tUb29sYmFySXRlbXNdPVwicXVpY2tUb29sYmFySXRlbXNcIlxuICAgICAgICBbaXNWaXNpYmxlXT1cInRoZU9wdGlvbnM/LnF1aWNrSW5zZXJ0VmlzaWJsZVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkcmFnLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2ICNkcmFnIHRoZURuZCBbZWRpdG9yXT1cImVkaXRvclwiIChkcmFnQ2hhbmdlKT1cIm9uRHJhZ0NoYW5nZSgkZXZlbnQpXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLXNuYXBzaG90LWNvbnRhaW5lclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx0aGUtdGVtcGxhdGUgI3RlbXBsYXRlSW5zdGFuY2U+PC90aGUtdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
444
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBRVQsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBSVosdUJBQXVCLEVBRTFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBUSxVQUFVLEVBQUUsWUFBWSxFQUF1QixLQUFLLEVBQUUsSUFBSSxFQUFtQixNQUFNLE9BQU8sQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQWMsV0FBVyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBc0QsV0FBVyxFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUM5RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0Ms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Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0MscUJBQXFCO3NCQURwQixTQUFTO3VCQUFDLGVBQWU7Z0JBSTFCLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBOZ1pvbmUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1peGluVW5zdWJzY3JpYmUsIE1peGluQmFzZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgaXNIb3RrZXkgZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IEVkaXRvciwgVGV4dCwgVHJhbnNmb3JtcywgY3JlYXRlRWRpdG9yLCBFbGVtZW50LCBEZXNjZW5kYW50LCBSYW5nZSwgUGF0aCwgTm9kZUVudHJ5LCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIFNsYXRlRXJyb3IsIHdpdGhBbmd1bGFyLCBET01FbGVtZW50IH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVQbHVnaW4sIFRoZU9wdGlvbnMsIERvbUV2ZW50RGF0YUluZm8sIFRoZUVkaXRvciwgVGhlRGF0YU1vZGUsIFRvb2xiYXJFbnRpdHkgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWFya1R5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2l0aFRoZUVkaXRvciwgdG9vbGJhckNvbXBvc2UgfSBmcm9tICcuL3BsdWdpbnMvaW5kZXgnO1xuaW1wb3J0IHsgVGhlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IHNob3J0Y3V0cyB9IGZyb20gJy4vc2hvcnRjdXRzJztcbmltcG9ydCB7IFRoZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdG9vbGJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBERUZBVUxUX1NDUk9MTF9DT05UQUlORVIgfSBmcm9tICcuL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IFRoZUNvbG9yU2VsZWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29sb3Itc2VsZWN0LnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuL3RyYW5zZm9ybXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuL3F1ZXJpZXMnO1xuaW1wb3J0IHsgYXV0b0ZvY3VzIH0gZnJvbSAnLi91dGlscy9hdXRvLWZvY3VzJztcbmltcG9ydCB7IGF1dG9TY3JvbGxWaWV3SGFuZGxlIH0gZnJvbSAnLi91dGlscy9hdXRvLXNjcm9sbC12aWV3JztcbmltcG9ydCB7IF8gfSBmcm9tICcuL3V0aWxzL2xvZGFzaCc7XG5pbXBvcnQgeyBkYXRhRGVzZXJpYWxpemUsIGRhdGFTZXJpYWxpemluZyB9IGZyb20gJy4vdXRpbHMvZGF0YS10cmFuc2Zvcm0nO1xuaW1wb3J0IHsgc2V0RWRpdG9yVVVJRCB9IGZyb20gJy4vdXRpbHMvZWRpdG9yLXV1aWQnO1xuaW1wb3J0IHsgaWRDcmVhdG9yIH0gZnJvbSAnLi91dGlscy9pZC1jcmVhdG9yJztcbmltcG9ydCB7IFRoZVF1aWNrSW5zZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLWluc2VydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2V0VG9vbGJhckNsYXNzIH0gZnJvbSAnLi91dGlscy9nZXQtdG9vbGJhci1jbGFzcyc7XG5pbXBvcnQgeyBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUgfSBmcm9tICcuL3V0aWxzL2RvbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWVkaXRvciwgdGhlRWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRoZVRvb2xiYXJTZXJ2aWNlLFxuICAgICAgICBUaGVDb250ZXh0U2VydmljZSxcbiAgICAgICAgVGhlQ29sb3JTZWxlY3RTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZUVkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWVkaXRvcicsXG4gICAgICAgICdbY2xhc3MudGhlLWVkaXRvci1yZWFkb25seV0nOiAndGhlT3B0aW9ucz8ucmVhZG9ubHknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUaGVFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0aGVPcHRpb25zOiBUaGVPcHRpb25zO1xuXG4gICAgQElucHV0KCkgdGhlUGx1Z2luczogVGhlUGx1Z2luW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHRoZUdsb2JhbFRvb2xiYXI/OiBUaGVUb29sYmFyQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgdGhlRGVjb3JhdGU6IChlZGl0b3I6IFRoZUVkaXRvciwgbm9kZUVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG5cbiAgICBASW5wdXQoKSB0aGVPbkVycm9yPzogKGVycm9yOiBTbGF0ZUVycm9yKSA9PiB2b2lkO1xuXG4gICAgQE91dHB1dCgpIHRoZU9uU2F2ZTogRXZlbnRFbWl0dGVyPERlc2NlbmRhbnRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPERlc2NlbmRhbnRbXT4oKTtcblxuICAgIEBPdXRwdXQoKSB0aGVPbkRPTUV2ZW50OiBFdmVudEVtaXR0ZXI8eyBuYXRpdmVFdmVudDogRXZlbnQ7IGRhdGE/OiBEb21FdmVudERhdGFJbmZvIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIHRoZUVkaXRvckNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxFZGl0b3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVJbnN0YW5jZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgdGVtcGxhdGVJbnN0YW5jZTogVGhlVGVtcGxhdGVDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdnbG9iYWxUb29sYmFyJylcbiAgICBnbG9iYWxUb29sYmFySW5zdGFuY2U6IFRoZVRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdxdWlja0luc2VydCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcXVpY2tJbnNlcnRJbnN0YW5jZTogVGhlUXVpY2tJbnNlcnRDb21wb25lbnQ7XG5cbiAgICBfcGx1Z2luczogVGhlUGx1Z2luW10gPSBbXTtcblxuICAgIHRvb2xiYXJFbnRpdHk6IFRvb2xiYXJFbnRpdHk7XG5cbiAgICBlZGl0b3I6IFRoZUVkaXRvcjtcblxuICAgIGVkaXRvclZhbHVlOiBEZXNjZW5kYW50W107XG5cbiAgICBnbG9iYWxUb29sYmFyQ2xhc3M6IHN0cmluZ1tdO1xuXG4gICAgZGVjb3JhdGU6IChub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4gUmFuZ2VbXTtcblxuICAgIGdldCB0aGVHbG9iYWxUb29sYmFySW5zdGFuY2UoKTogVGhlVG9vbGJhckNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZUdsb2JhbFRvb2xiYXIgPyB0aGlzLnRoZUdsb2JhbFRvb2xiYXIgOiB0aGlzLmdsb2JhbFRvb2xiYXJJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBnZXQgbWF4SGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy50aGVPcHRpb25zPy5tYXhIZWlnaHQgPyBgJHt0aGlzLnRoZU9wdGlvbnM/Lm1heEhlaWdodH1weGAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBxdWlja1Rvb2xiYXJJdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckVudGl0eT8ucXVpY2s7XG4gICAgfVxuXG4gICAgYXV0b1Njcm9sbFZpZXcgPSBfLmRlYm91bmNlKGZ1bmN0aW9uIChlZGl0b3I6IEVkaXRvciwgc2Nyb2xsQ29udGFpbmVyOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGF1dG9TY3JvbGxWaWV3SGFuZGxlKGVkaXRvciwgc2Nyb2xsQ29udGFpbmVyKTtcbiAgICB9LCA4MCk7XG5cbiAgICBlbGVtZW50VG9IdG1sOiBXZWFrTWFwPEVsZW1lbnQsIHN0cmluZz4gPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0b29sYmFyU2VydmljZTogVGhlVG9vbGJhclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLm9uRXJyb3JIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY2hhbmdlcy50aGVPcHRpb25zO1xuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5jdXJyZW50VmFsdWU/LnJlYWRvbmx5ICE9PSBvcHRpb25zLnByZXZpb3VzVmFsdWU/LnJlYWRvbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5QXV0b0ZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXNbJ3RoZURlY29yYXRlJ10pIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVEZWNvcmF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmVkaXRvcj8uc2VsZWN0aW9uICYmIChvcHRpb25zPy5jdXJyZW50VmFsdWU/LnJlYWRvbmx5IHx8IG9wdGlvbnM/LmN1cnJlbnRWYWx1ZT8uZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmRlc2VsZWN0KHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gd2l0aFRoZUVkaXRvcjxUaGVFZGl0b3I+KHRoaXMudGhlUGx1Z2lucywgd2l0aEhpc3Rvcnkod2l0aEFuZ3VsYXIoY3JlYXRlRWRpdG9yKCksIENMSVBCT0FSRF9GT1JNQVRfS0VZKSkpO1xuICAgICAgICB0aGlzLmdlbmVyYXRlRGVjb3JhdGUoKTtcbiAgICAgICAgdGhpcy5lZGl0b3IuZGlzYWJsZWQgPSB0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkO1xuICAgICAgICB0aGlzLmVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zID0gdGhpcy50aGVPcHRpb25zPy5leHRyYUVsZW1lbnRPcHRpb25zO1xuICAgICAgICBzZXRFZGl0b3JVVUlEKHRoaXMuZWRpdG9yLCBpZENyZWF0b3IoKSk7XG4gICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UuaW5pdGlhbGl6ZSh7XG4gICAgICAgICAgICB0aGVPcHRpb25zOiB0aGlzLnRoZU9wdGlvbnMsXG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZlxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50b29sYmFyQ2FsY3VsYXRlKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gWW91IG5lZWQgdG8gd2FpdCBmb3IgdGhlIGVkaXRvciByZW5kZXJpbmcgdG8gY29tcGxldGVcbiAgICAgICAgICAgIC8vIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBleHRlcm5hbCB0b29sYmFyIGFzc2lnbm1lbnQgZGV0ZWN0aW9uXG4gICAgICAgICAgICB0aGlzLmdsb2JhbFRvb2xiYXJJbml0KCk7XG4gICAgICAgICAgICB0aGlzLnRoZUVkaXRvckNyZWF0ZWQuZW1pdCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICB0aGlzLmFwcGx5QXV0b0ZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVPcHRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMudGhlT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50aGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIHJlYWRvbmx5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtb2RlOiBUaGVEYXRhTW9kZS5odG1sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50aGVPcHRpb25zLm1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudGhlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnRoZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgbW9kZTogVGhlRGF0YU1vZGUuaHRtbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5QXV0b0ZvY3VzKCkge1xuICAgICAgICBpZiAoIXRoaXMudGhlT3B0aW9ucz8uZGlzYWJsZWQgJiYgIXRoaXMudGhlT3B0aW9ucz8ucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGF1dG9Gb2N1cyh0aGlzLmVkaXRvciwgdGhpcy50aGVPcHRpb25zPy5hdXRvRm9jdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9vbGJhckNhbGN1bGF0ZSgpIHtcbiAgICAgICAgY29uc3QgdG9vbGJhciA9IHRoaXM/LnRoZU9wdGlvbnM/LnRvb2xiYXI7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IHRvb2xiYXJDb21wb3NlKHRvb2xiYXI/LnRvb2xiYXJJdGVtcyk7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJPcHRpb24gPSB0aGlzLnRvb2xiYXJTZXJ2aWNlLmluaXRpYWxpemUodG9vbGJhckl0ZW1zLCB0b29sYmFyPy5nbG9iYWwsIHRvb2xiYXI/LmlubGluZSwgdG9vbGJhcj8ucXVpY2spO1xuICAgICAgICB0aGlzLmdsb2JhbFRvb2xiYXJDbGFzcyA9IFsndGhlLWdsb2JhbC10b29sYmFyJywgZ2V0VG9vbGJhckNsYXNzKHRoaXMuZWRpdG9yKV07XG4gICAgICAgIHRoaXMudG9vbGJhckVudGl0eSA9IHRvb2xiYXJPcHRpb24udG9vbGJhckVudGl0eTtcbiAgICB9XG5cbiAgICBnbG9iYWxUb29sYmFySW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGhlR2xvYmFsVG9vbGJhcikge1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2UuZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS50b29sYmFySXRlbXMgPSB0aGlzLnRvb2xiYXJFbnRpdHkuZ2xvYmFsO1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2UuY29udGFpbmVyQ2xhc3MgPSB0aGlzLmdsb2JhbFRvb2xiYXJDbGFzcztcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLmFsaWduID0gdGhpcz8udGhlT3B0aW9ucz8udG9vbGJhcj8uYWxpZ247XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS5zZXRUb29sYmFyQ2xhc3MoKTtcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLnJlbmRlclRvb2xiYXJWaWV3KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBEZXNjZW5kYW50W10pIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGRhdGFEZXNlcmlhbGl6ZSh0aGlzLnRoZU9wdGlvbnM/Lm1vZGUsIHZhbHVlKTtcbiAgICAgICAgLy8gZGF0YS1kZXNlcmlhbGl6ZVxuICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gZGF0YTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHZhbHVlQ2hhbmdlKHZhbHVlOiBEZXNjZW5kYW50W10pIHtcbiAgICAgICAgY29uc3QgaXNFZGl0YWJsZSA9ICF0aGlzLnRoZU9wdGlvbnM/LnJlYWRvbmx5ICYmICF0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkO1xuXG4gICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlPy5zdGF0dXNDaGFuZ2UodGhpcy5lZGl0b3IpO1xuXG4gICAgICAgIC8vIHF1aWNrIGluc2VydCBidXR0b25cbiAgICAgICAgaWYgKGlzRWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMucXVpY2tJbnNlcnRJbnN0YW5jZT8uY2hlY2tTdGF0dXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGF1dG8gc2Nyb2xsIHZpZXdcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gdGhpcy50aGVPcHRpb25zPy5zY3JvbGxDb250YWluZXI7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMudGhlT3B0aW9ucz8ubWF4SGVpZ2h0O1xuICAgICAgICBpZiAoaXNFZGl0YWJsZSAmJiAoc2Nyb2xsQ29udGFpbmVyIHx8IG1heEhlaWdodCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1heEhlaWdodCA/IERFRkFVTFRfU0NST0xMX0NPTlRBSU5FUiA6IHNjcm9sbENvbnRhaW5lcjtcbiAgICAgICAgICAgIHRoaXMuYXV0b1Njcm9sbFZpZXcodGhpcy5lZGl0b3IsIGNvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5lZGl0b3JWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgLy8gc2VyaWFsaXppbmdcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5zZXJpYWxpemluZ1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemluZ1ZhbHVlKHZhbHVlOiBEZXNjZW5kYW50W10pOiBzdHJpbmcgfCBEZXNjZW5kYW50W10ge1xuICAgICAgICBpZiAodGhpcy50aGVPcHRpb25zPy5tb2RlID09PSBUaGVEYXRhTW9kZS5odG1sKSB7XG4gICAgICAgICAgICBsZXQgaHRtbFZhbHVlID0gJyc7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRIdG1sID0gdGhpcy5lbGVtZW50VG9IdG1sLmdldChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudEh0bWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBzZXJpYWxpemluZ1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50SHRtbCA9IGRhdGFTZXJpYWxpemluZyh0aGlzLnRoZU9wdGlvbnM/Lm1vZGUsIFtlbGVtZW50XSkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBodG1sVmFsdWUgKz0gZWxlbWVudEh0bWw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFRvSHRtbC5zZXQoZWxlbWVudCwgZWxlbWVudEh0bWwpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGh0bWxWYWx1ZSArPSBlbGVtZW50SHRtbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgb25FcnJvckhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuZWRpdG9yLm9uRXJyb3IgPSAoZXJyb3JEYXRhOiBTbGF0ZUVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aGVPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVPbkVycm9yKGVycm9yRGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVycm9yRGF0YS5uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JEYXRhLm5hdGl2ZUVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlSW5zdGFuY2UucmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5lZGl0b3IucmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudCA/IGNvbXBvbmVudCA6IHRlbXBsYXRlO1xuICAgIH07XG5cbiAgICByZW5kZXJMZWFmID0gKHRleHQ6IFRleHQpID0+IHtcbiAgICAgICAgY29uc3QgbGVhZiA9IHRoaXMuZWRpdG9yLnJlbmRlckxlYWYodGV4dCk7XG4gICAgICAgIHJldHVybiBsZWFmID8gbGVhZiA6IG51bGw7XG4gICAgfTtcblxuICAgIHJlbmRlclRleHQgPSAodGV4dDogVGV4dCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBNYXJrVHlwZXMpIHtcbiAgICAgICAgICAgIGlmICh0ZXh0W01hcmtUeXBlc1trZXldXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUaGVUZXh0Q29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0ZXh0LnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2VuZXJhdGVEZWNvcmF0ZSgpIHtcbiAgICAgICAgdGhpcy5kZWNvcmF0ZSA9IChub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGVjb3JhdGlvbnMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudGhlRGVjb3JhdGUpIHtcbiAgICAgICAgICAgICAgICBkZWNvcmF0aW9ucy5wdXNoKC4uLnRoaXMudGhlRGVjb3JhdGUodGhpcy5lZGl0b3IsIG5vZGVFbnRyeSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGVjb3JhdGlvbnM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25LZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHNob3J0Y3V0cyh0aGlzLmVkaXRvciwgZXZlbnQpO1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnQsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAga2V5OiBldmVudC5rZXlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0hvdGtleSgnbW9kK3MnLCBldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVPblNhdmUuZW1pdCh0aGlzLmVkaXRvclZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNIb3RrZXkoJ21vZCthJywgZXZlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdEFsbCgpO1xuICAgICAgICB9XG4gICAgICAgIEFuZ3VsYXJFZGl0b3Iub25LZXlkb3duKHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgfTtcblxuICAgIG1vdXNlZG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZSh0aGlzLmVkaXRvciwgdGhpcy5lZGl0b3IpO1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBlZGl0YWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3RFZGl0YWJsZSA9IGVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclggPSByZWN0RWRpdGFibGUueCArIHJlY3RFZGl0YWJsZS53aWR0aCAvIDI7XG4gICAgICAgICAgICBsZXQgeyBwYWRkaW5nTGVmdCwgcGFkZGluZ1JpZ2h0IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0YWJsZUVsZW1lbnQsIG51bGwpO1xuICAgICAgICAgICAgY29uc3QgcGFkZGluZ0xlZnRQaXhlbHMgPSBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUocGFkZGluZ0xlZnQpO1xuICAgICAgICAgICAgY29uc3QgcGFkZGluZ1JpZ2h0UGl4ZWxzID0gY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlKHBhZGRpbmdSaWdodCk7XG4gICAgICAgICAgICBjb25zdCBmYWtlTGVmdFggPSByZWN0RWRpdGFibGUueCArIHBhZGRpbmdMZWZ0UGl4ZWxzICsgNTA7XG4gICAgICAgICAgICBjb25zdCBmYWtlUmlnaHRYID0gcmVjdEVkaXRhYmxlLnJpZ2h0IC0gcGFkZGluZ1JpZ2h0UGl4ZWxzIC0gNTA7XG4gICAgICAgICAgICBsZXQgcmVsYXRpdmVFbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChmYWtlTGVmdFgsIGV2ZW50LnkpO1xuICAgICAgICAgICAgbGV0IHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudDogRE9NRWxlbWVudCA9IHJlbGF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICAgICAgaWYgKCFyZWxhdGl2ZUJsb2NrQ2FyZEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZWxhdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGZha2VSaWdodFgsIGV2ZW50LnkpO1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudCA9IHJlbGF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrQ2FyZEVudHJ5ID0gQW5ndWxhckVkaXRvci50b1NsYXRlQ2FyZEVudHJ5KHRoaXMuZWRpdG9yLCByZWxhdGl2ZUJsb2NrQ2FyZEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQpO1xuICAgICAgICAgICAgICAgIGlmIChibG9ja0NhcmRFbnRyeSAmJiBibG9ja0NhcmRFbnRyeVsxXSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb290Tm9kZVBhdGggPSBibG9ja0NhcmRFbnRyeVsxXS5zbGljZSgwLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdE5vZGUgPSBUaGVRdWVyaWVzLmdldE5vZGUodGhpcy5lZGl0b3IsIHJvb3ROb2RlUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmVkaXRvci5pc0Jsb2NrQ2FyZChyb290Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLm1vdmVCbG9ja0NhcmQodGhpcy5lZGl0b3IsIHJvb3ROb2RlLCB7IGRpcmVjdGlvbjogZXZlbnQueCA8IGNlbnRlclggPyAnbGVmdCcgOiAncmlnaHQnIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgbm9kZTtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0RW5kU2VsZWN0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSBSYW5nZS5lZGdlcyh0aGlzLmVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25SYW5nZSA9IEVkaXRvci5yYW5nZSh0aGlzLmVkaXRvciwgc3RhcnQsIGVuZCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJsb2NrcyA9IFRoZVF1ZXJpZXMuZ2V0Q29udGFpbmVyQmxvY2tzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWluZXJCbG9ja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIFtub2RlXSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZXNCeVR5cGUodGhpcy5lZGl0b3IsIGNvbnRhaW5lckJsb2Nrc1tpXSk7XG4gICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbm9kZTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1N0YXJ0UGFyZW50ID0gUGF0aC5lcXVhbHMocGF0aCwgc3RhcnQucGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRW5kUGFyZW50ID0gUGF0aC5lcXVhbHMocGF0aCwgZW5kLnBhdGguc2xpY2UoMCwgcGF0aC5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdGFydFBhcmVudCAmJiBpc0VuZFBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlUmFuZ2UgPSBFZGl0b3IucmFuZ2UodGhpcy5lZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVJhbmdlLmVxdWFscyhub2RlUmFuZ2UsIHNlbGVjdGlvblJhbmdlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIG5vZGVSYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdCh0aGlzLmVkaXRvciwgW10pO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIEFuZ3VsYXJFZGl0b3Iub25DbGljayh0aGlzLmVkaXRvciwgZXZlbnQpO1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uU2xhUGFzdGUgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldFRleHRBbmRKU09OKGV2ZW50LmNsaXBib2FyZERhdGEpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUJlZm9yZUlucHV0ID0gKFxuICAgICAgICBldmVudDogRXZlbnQgJiB7XG4gICAgICAgICAgICBpbnB1dFR5cGU6IHN0cmluZztcbiAgICAgICAgICAgIGRhdGE6IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgICBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGw7XG4gICAgICAgIH1cbiAgICApID0+IHtcbiAgICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgICAgICBpbnB1dFR5cGU6IGV2ZW50LmlucHV0VHlwZSxcbiAgICAgICAgICAgIHRleHQ6IChldmVudC5kYXRhIHx8IGV2ZW50LmRhdGFUcmFuc2ZlcikgYXMgc3RyaW5nXG4gICAgICAgIH07XG4gICAgICAgIGlmIChldmVudC5pbnB1dFR5cGUgPT09ICdpbnNlcnRGcm9tUGFzdGUnKSB7XG4gICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXRUZXh0QW5kSlNPTigoZXZlbnQuZGF0YSB8fCBldmVudC5kYXRhVHJhbnNmZXIpIGFzIERhdGFUcmFuc2ZlcilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFCbHVyID0gKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFGb2N1cyA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUN1dCA9IChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUNvcHkgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhQ29tcG9zaXRpb25TdGFydCA9IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4ge307XG5cbiAgICBvblNsYUNvbXBvc2l0aW9uRW5kID0gKGV2ZW50OiBDb21wb3NpdGlvbkV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhRHJhZ1N0YXJ0ID0gKGV2ZW50OiBEcmFnRXZlbnQpID0+IHt9O1xuXG4gICAgb25TbGFEcmFnT3ZlciA9IChldmVudDogRHJhZ0V2ZW50KSA9PiB7fTtcblxuICAgIG9uRHJvcCA9IChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0VGV4dEFuZEpTT04oZGF0YTogRGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuICAgICAgICBsZXQganNvbiA9IFtdO1xuICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuYXRvYihmcmFnbWVudCkpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBqc29uLFxuICAgICAgICAgICAgdGV4dFxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjx0aGUtdG9vbGJhclxuICAgICpuZ0lmPVwiIXRoZU9wdGlvbnM/LnJlYWRvbmx5ICYmICF0aGVHbG9iYWxUb29sYmFyXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd0aGUtdG9vbGJhci1kaXNhYmxlZCc6IHRoZU9wdGlvbnM/LmRpc2FibGVkXG4gICAgfVwiXG4gICAgI2dsb2JhbFRvb2xiYXJcbiAgICBbZWRpdG9yXT1cImVkaXRvclwiXG4gICAgW3Rvb2xiYXJJdGVtc109XCJ0b29sYmFyRW50aXR5Lmdsb2JhbFwiXG4gICAgW2NvbnRhaW5lckNsYXNzXT1cImdsb2JhbFRvb2xiYXJDbGFzc1wiXG4gICAgW2FsaWduXT1cInRoZU9wdGlvbnM/LnRvb2xiYXI/LmFsaWduXCJcbj48L3RoZS10b29sYmFyPlxuXG48ZGl2XG4gICAgY2xhc3M9XCJ0aGUtZWRpdGFibGUtY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd0aGUtZWRpdG9yLWRpc2FibGVkJzogdGhlT3B0aW9ucz8uZGlzYWJsZWQsXG4gICAgICAgICdtYXgtaGVpZ2h0JzogbWF4SGVpZ2h0XG4gICAgfVwiXG4gICAgW25nU3R5bGVdPVwieyAnbWF4LWhlaWdodCc6IG1heEhlaWdodCB9XCJcbj5cbiAgICA8c2xhdGUtZWRpdGFibGVcbiAgICAgICAgY2xhc3M9XCJ0aGUtZWRpdG9yLXR5cG9cIlxuICAgICAgICBbZWRpdG9yXT1cImVkaXRvclwiXG4gICAgICAgIFtuZ01vZGVsXT1cImVkaXRvclZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtkZWNvcmF0ZV09XCJkZWNvcmF0ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0aGVPcHRpb25zPy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtwbGFjZWhvbGRlckRlY29yYXRlXT1cInRoZU9wdGlvbnM/LnBsYWNlaG9sZGVyRGVjb3JhdGUgPyB0aGVPcHRpb25zPy5wbGFjZWhvbGRlckRlY29yYXRlIDogbnVsbFwiXG4gICAgICAgIFtyZW5kZXJFbGVtZW50XT1cInJlbmRlckVsZW1lbnRcIlxuICAgICAgICBbcmVuZGVyVGV4dF09XCJyZW5kZXJUZXh0XCJcbiAgICAgICAgW3JlbmRlckxlYWZdPVwicmVuZGVyTGVhZlwiXG4gICAgICAgIFtyZWFkb25seV09XCJ0aGVPcHRpb25zPy5yZWFkb25seSB8fCB0aGVPcHRpb25zPy5kaXNhYmxlZFwiXG4gICAgICAgIFtrZXlkb3duXT1cIm9uS2V5RG93blwiXG4gICAgICAgIFtjbGlja109XCJvbkNsaWNrXCJcbiAgICAgICAgW3Bhc3RlXT1cIm9uU2xhUGFzdGVcIlxuICAgICAgICBbYmVmb3JlSW5wdXRdPVwib25TbGFCZWZvcmVJbnB1dFwiXG4gICAgICAgIFtibHVyXT1cIm9uU2xhQmx1clwiXG4gICAgICAgIFtmb2N1c109XCJvblNsYUZvY3VzXCJcbiAgICAgICAgW2NvcHldPVwib25TbGFDb3B5XCJcbiAgICAgICAgW2N1dF09XCJvblNsYUN1dFwiXG4gICAgICAgIFtpc1N0cmljdERlY29yYXRlXT1cImZhbHNlXCJcbiAgICAgICAgW2NvbXBvc2l0aW9uU3RhcnRdPVwib25TbGFDb21wb3NpdGlvblN0YXJ0XCJcbiAgICAgICAgW2NvbXBvc2l0aW9uRW5kXT1cIm9uU2xhQ29tcG9zaXRpb25FbmRcIlxuICAgICAgICBbZHJhZ1N0YXJ0XT1cIm9uU2xhRHJhZ1N0YXJ0XCJcbiAgICAgICAgW2RyYWdPdmVyXT1cIm9uU2xhRHJhZ092ZXJcIlxuICAgICAgICBbZHJvcF09XCJvbkRyb3BcIlxuICAgICAgICAobW91c2Vkb3duKT1cIm1vdXNlZG93bigkZXZlbnQpXCJcbiAgICA+PC9zbGF0ZS1lZGl0YWJsZT5cbiAgICA8dGhlLWlubGluZS10b29sYmFyXG4gICAgICAgICpuZ0lmPVwiIXRoZU9wdGlvbnM/LnJlYWRvbmx5ICYmIHRoZU9wdGlvbnM/LmlubGluZVRvb2JhclZpc2libGVcIlxuICAgICAgICBbZWRpdG9yXT1cImVkaXRvclwiXG4gICAgICAgIFt0b29sYmFySXRlbXNdPVwidG9vbGJhckVudGl0eS5pbmxpbmVcIlxuICAgID48L3RoZS1pbmxpbmUtdG9vbGJhcj5cbiAgICA8ZGl2XG4gICAgICAgICNxdWlja0luc2VydFxuICAgICAgICB0aGVRdWlja0luc2VydFxuICAgICAgICBbZWRpdG9yXT1cImVkaXRvclwiXG4gICAgICAgIFtxdWlja1Rvb2xiYXJJdGVtc109XCJxdWlja1Rvb2xiYXJJdGVtc1wiXG4gICAgICAgIFtpc1Zpc2libGVdPVwidGhlT3B0aW9ucz8ucXVpY2tJbnNlcnRWaXNpYmxlXCJcbiAgICA+PC9kaXY+XG4gICAgPHRoZS10ZW1wbGF0ZSAjdGVtcGxhdGVJbnN0YW5jZT48L3RoZS10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -61,7 +61,6 @@ import { ThyResizableModule } from 'ngx-tethys/resizable';
61
61
  import { ThySwitchModule } from 'ngx-tethys/switch';
62
62
  import { TheInlineCodeComponent } from './plugins/inline-code/inline-code.component';
63
63
  import { TheIndentToolbarComponent } from './plugins/indent/toolbar-item.component';
64
- import { TheDndComponent } from './plugins/dnd/component/dnd.component';
65
64
  import * as i0 from "@angular/core";
66
65
  const TETHYS = [
67
66
  ThyIconModule,
@@ -121,8 +120,7 @@ export const PLUGIN_COMPONENTS = [
121
120
  TheTableComponent,
122
121
  TheTableRowComponent,
123
122
  TheTdComponent,
124
- TheInlineCodeComponent,
125
- TheDndComponent
123
+ TheInlineCodeComponent
126
124
  ];
127
125
  const PIPES = [ElementStylePipe, ElementClassPipe];
128
126
  export class TheEditorModule {
@@ -163,8 +161,7 @@ TheEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
163
161
  TheTableComponent,
164
162
  TheTableRowComponent,
165
163
  TheTdComponent,
166
- TheInlineCodeComponent,
167
- TheDndComponent], imports: [CommonModule, SlateModule, FormsModule, ThyIconModule,
164
+ TheInlineCodeComponent], imports: [CommonModule, SlateModule, FormsModule, ThyIconModule,
168
165
  ThyAvatarModule,
169
166
  ThyNavModule,
170
167
  ThyFormModule,
@@ -204,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
204
201
  ]
205
202
  }]
206
203
  }] });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JB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O1FBQ2hCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZUFBZTtRQUNmLGVBQWU7UUFDZixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGVBQWUsRUFtRDhDLGdCQUFnQixFQUFFLG1CQUFtQixhQUN4RixrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEI7OEdBVTFILGVBQWUsYUFSYjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixRQUFRLEVBQUUsd0JBQXdCO1NBQ3JDO1FBQ0Qsc0JBQXNCO0tBQ3pCLFlBVFEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzs0RkFXMUYsZUFBZTtrQkFiM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLGlCQUFpQixDQUFDO29CQUNqRixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDbkcsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLENBQUM7b0JBQ3BJLGVBQWUsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsaUJBQWlCLENBQUM7b0JBQ3RELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixRQUFRLEVBQUUsd0JBQXdCO3lCQUNyQzt3QkFDRCxzQkFBc0I7cUJBQ3pCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNsYXRlTW9kdWxlIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci1kcm9wZG93bi90b29sYmFyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyLWl0ZW0vdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTcGxpdExpbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF2LXNwbGl0LWxpbmUvbmF2LXNwbGl0LWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbXBsYXRlL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVIckNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9oci9oci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQmxvY2txdW90ZUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvZG9JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2xpc3QvY29tcG9uZW50cy9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUJ1bGxldGVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9saXN0L2NvbXBvbmVudHMvYnVsbGV0ZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTnVtYmVyZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2xpc3QvY29tcG9uZW50cy9udW1iZXJlZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50U3R5bGVQaXBlLCBFbGVtZW50Q2xhc3NQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbmltcG9ydCB7IFRoeU5hdk1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvbmF2JztcbmltcG9ydCB7IFRoeUljb25Nb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5UHJvZ3Jlc3NNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Byb2dyZXNzJztcbmltcG9ydCB7IFRoeUZvcm1Nb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2Zvcm0nO1xuaW1wb3J0IHsgVGh5VG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBUaHlBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBUaHlBdmF0YXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2F2YXRhcic7XG5pbXBvcnQgeyBUaHlTaGFyZWRNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBUaHlMaXN0TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9saXN0JztcbmltcG9ydCB7IFRoeUFjdGlvbk1lbnVNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2FjdGlvbi1tZW51JztcbmltcG9ydCB7IFRoeUlucHV0TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlTZWxlY3RNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3NlbGVjdCc7XG5pbXBvcnQgeyBUaHlCdXR0b25Nb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyBUaHlOb3RpZnlNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL25vdGlmeSc7XG5pbXBvcnQgeyBUaHlBbGVydE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvYWxlcnQnO1xuaW1wb3J0IHsgVGhlQ29sb3JTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sb3Itc2VsZWN0L2NvbG9yLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQ29sb3JUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9jb2xvci90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvZGVDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvY29kZS9jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2RlbWlycm9yTW9kdWxlIH0gZnJvbSAnbmctY29kZW1pcnJvcic7XG5pbXBvcnQgeyBUaGVMaW5rQ29tcG9uZW50LCBUaGVSZWFkb25seUxpbmtDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVMaW5rRWRpdENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9saW5rL2VkaXQvbGluay1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVMaW5rSG92ZXJDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvbGluay9ob3Zlci9saW5rLWhvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUYWJsZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdGFibGUvY29tcG9uZW50cy90b29sYmFyL3RhYmxlLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL2NvbXBvbmVudHMvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL2NvbXBvbmVudHMvcm93L3Jvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGRDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdGFibGUvY29tcG9uZW50cy90ZC90ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvbHVtblNpemVNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLXJlc2l6ZS9jb2x1bW4tcmVzaXplLm1vZHVsZSc7XG5pbXBvcnQgeyBUaGVJbnNlcnRNYXJrQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL2NvbXBvbmVudHMvaW5zZXJ0LW1hcmsvaW5zZXJ0LW1hcmsuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyLWdyb3VwL3Rvb2xiYXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJHcm91cFRva2VuIH0gZnJvbSAnLi9jb25zdGFudHMvdG9vbGJhcic7XG5pbXBvcnQgeyBUaGVUYWJsZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1zZWxlY3QvdGFibGUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUYWJsZVRvb2xiYXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL3Rvb2xiYXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQ29udmVyc2lvbkhpbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udmVyc2lvbi1oaW50L2NvbnZlcnNpb24taGludC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVmVydGljYWxUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy92ZXJ0aWNhbC1hbGlnbi90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRIRV9DT0RFX01PREVfUFJPVklERVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVJbmxpbmVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lubGluZS10b29sYmFyL2lubGluZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVRdWlja1Rvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvcXVpY2staW5zZXJ0L2NvbXBvbmVudHMvcXVpY2stdG9vbGJhci9xdWljay10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVRdWlja0luc2VydENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZU1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVN3aXRjaE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvc3dpdGNoJztcbmltcG9ydCB7IFRoZUlubGluZUNvZGVDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUluZGVudFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvaW5kZW50L3Rvb2xiYXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlRG5kQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2RuZC9jb21wb25lbnQvZG5kLmNvbXBvbmVudCc7XG5cbmNvbnN0IFRFVEhZUyA9IFtcbiAgICBUaHlJY29uTW9kdWxlLFxuICAgIFRoeUF2YXRhck1vZHVsZSxcbiAgICBUaHlOYXZNb2R1bGUsXG4gICAgVGh5Rm9ybU1vZHVsZSxcbiAgICBUaHlTaGFyZWRNb2R1bGUsXG4gICAgVGh5TGlzdE1vZHVsZSxcbiAgICBUaHlUb29sdGlwTW9kdWxlLFxuICAgIFRoeVByb2dyZXNzTW9kdWxlLFxuICAgIFRoeUF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBUaHlBY3Rpb25NZW51TW9kdWxlLFxuICAgIFRoeUlucHV0TW9kdWxlLFxuICAgIFRoeVNlbGVjdE1vZHVsZSxcbiAgICBUaHlCdXR0b25Nb2R1bGUsXG4gICAgVGh5Tm90aWZ5TW9kdWxlLFxuICAgIFRoeUFsZXJ0TW9kdWxlLFxuICAgIFRoeVJlc2l6YWJsZU1vZHVsZSxcbiAgICBUaHlTd2l0Y2hNb2R1bGVcbl07XG5cbmV4cG9ydCBjb25zdCBDT01QT05FTlRTID0gW1xuICAgIFRoZVRvb2xiYXJDb21wb25lbnQsXG4gICAgVGhlVG9vbGJhckRyb3Bkb3duQ29tcG9uZW50LFxuICAgIFRoZVRvb2xiYXJHcm91cENvbXBvbmVudCxcbiAgICBUaGVUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICBUaGVJbmxpbmVUb29sYmFyQ29tcG9uZW50LFxuICAgIE5hdlNwbGl0TGluZUNvbXBvbmVudCxcbiAgICBUaGVUZXh0Q29tcG9uZW50LFxuICAgIFRoZURlZmF1bHRFbGVtZW50Q29tcG9uZW50LFxuICAgIFRoZVF1aWNrSW5zZXJ0Q29tcG9uZW50LFxuICAgIFRoZVF1aWNrVG9vbGJhckNvbXBvbmVudCxcbiAgICBUaGVDb2xvclNlbGVjdENvbXBvbmVudCxcbiAgICBUaGVDb2xvclRvb2xiYXJJdGVtQ29tcG9uZW50LFxuICAgIFRoZUNvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIFRoZUluc2VydE1hcmtDb21wb25lbnQsXG4gICAgVGhlVGFibGVTZWxlY3RDb21wb25lbnQsXG4gICAgVGhlVGFibGVUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICBUaGVDb252ZXJzaW9uSGludENvbXBvbmVudCxcbiAgICBUaGVWZXJ0aWNhbFRvb2xiYXJJdGVtQ29tcG9uZW50LFxuICAgIFRoZUluZGVudFRvb2xiYXJDb21wb25lbnRcbl07XG5cbmV4cG9ydCBjb25zdCBQTFVHSU5fQ09NUE9ORU5UUyA9IFtcbiAgICBUaGVJbWFnZUNvbXBvbmVudCxcbiAgICBUaGVUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBUaGVIckNvbXBvbmVudCxcbiAgICBUaGVCbG9ja3F1b3RlQ29tcG9uZW50LFxuICAgIFRoZVRvZG9JdGVtQ29tcG9uZW50LFxuICAgIFRoZUxpc3RJdGVtQ29tcG9uZW50LFxuICAgIFRoZUJ1bGxldGVkTGlzdENvbXBvbmVudCxcbiAgICBUaGVOdW1iZXJlZExpc3RDb21wb25lbnQsXG4gICAgVGhlQ29kZUNvbXBvbmVudCxcbiAgICBUaGVMaW5rQ29tcG9uZW50LFxuICAgIFRoZVJlYWRvbmx5TGlua0NvbXBvbmVudCxcbiAgICBUaGVMaW5rRWRpdENvbXBvbmVudCxcbiAgICBUaGVMaW5rSG92ZXJDb21wb25lbnQsXG4gICAgVGhlVGFibGVUb29sYmFyQ29tcG9uZW50LFxuICAgIFRoZVRhYmxlQ29tcG9uZW50LFxuICAgIFRoZVRhYmxlUm93Q29tcG9uZW50LFxuICAgIFRoZVRkQ29tcG9uZW50LFxuICAgIFRoZUlubGluZUNvZGVDb21wb25lbnQsXG4gICAgVGhlRG5kQ29tcG9uZW50XG5dO1xuXG5jb25zdCBQSVBFUyA9IFtFbGVtZW50U3R5bGVQaXBlLCBFbGVtZW50Q2xhc3NQaXBlXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtUaGVFZGl0b3JDb21wb25lbnQsIC4uLlBJUEVTLCAuLi5DT01QT05FTlRTLCAuLi5QTFVHSU5fQ09NUE9ORU5UU10sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2xhdGVNb2R1bGUsIEZvcm1zTW9kdWxlLCAuLi5URVRIWVMsIENvZGVtaXJyb3JNb2R1bGUsIFRoZUNvbHVtblNpemVNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtUaGVFZGl0b3JDb21wb25lbnQsIFRoZVRvb2xiYXJDb21wb25lbnQsIFRoZVRvb2xiYXJEcm9wZG93bkNvbXBvbmVudCwgVGhlVG9vbGJhckl0ZW1Db21wb25lbnQsIFRoZURlZmF1bHRFbGVtZW50Q29tcG9uZW50XSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFsuLi5DT01QT05FTlRTLCAuLi5QTFVHSU5fQ09NUE9ORU5UU10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRoZVRvb2xiYXJHcm91cFRva2VuLFxuICAgICAgICAgICAgdXNlVmFsdWU6IFRoZVRvb2xiYXJHcm91cENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBUSEVfQ09ERV9NT0RFX1BST1ZJREVSXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVFZGl0b3JNb2R1bGUge31cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBRXBGLE1BQU0sTUFBTSxHQUFHO0lBQ1gsYUFBYTtJQUNiLGVBQWU7SUFDZixZQUFZO0lBQ1osYUFBYTtJQUNiLGVBQWU7SUFDZixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGVBQWU7SUFDZixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLGVBQWU7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN0QixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsMEJBQTBCO0lBQzFCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUM1Qix1QkFBdUI7SUFDdkIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2Qiw0QkFBNEI7SUFDNUIsMEJBQTBCO0lBQzFCLCtCQUErQjtJQUMvQix5QkFBeUI7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsY0FBYztJQUNkLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQix3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixjQUFjO0lBQ2Qsc0JBQXNCO0NBQ3pCLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFlbkQsTUFBTSxPQUFPLGVBQWU7OzZHQUFmLGVBQWU7OEdBQWYsZUFBZSxpQkFaVCxrQkFBa0IsRUFIdEIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBMUM3QyxtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLHdCQUF3QjtRQUN4Qix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixnQkFBZ0I7UUFDaEIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLDRCQUE0QjtRQUM1Qix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLCtCQUErQjtRQUMvQix5QkFBeUIsRUFJekIsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2Qsc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLHdCQUF3QjtRQUN4QixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLHdCQUF3QjtRQUN4QixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxzQkFBc0IsYUFPWixZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFsRWhELGFBQWE7UUFDYixlQUFlO1FBQ2YsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2YsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixlQUFlLEVBa0Q4QyxnQkFBZ0IsRUFBRSxtQkFBbUIsYUFDeEYsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCOzhHQVUxSCxlQUFlLGFBUmI7UUFDUDtZQUNJLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLHdCQUF3QjtTQUNyQztRQUNELHNCQUFzQjtLQUN6QixZQVRRLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7NEZBVzFGLGVBQWU7a0JBYjNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztvQkFDakYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7b0JBQ25HLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO29CQUNwSSxlQUFlLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLGlCQUFpQixDQUFDO29CQUN0RCxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsUUFBUSxFQUFFLHdCQUF3Qjt5QkFDckM7d0JBQ0Qsc0JBQXNCO3FCQUN6QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTbGF0ZU1vZHVsZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZURlZmF1bHRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xiYXItZHJvcGRvd24vdG9vbGJhci1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci1pdGVtL3Rvb2xiYXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U3BsaXRMaW5lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdi1zcGxpdC1saW5lL25hdi1zcGxpdC1saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlSHJDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvaHIvaHIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUJsb2NrcXVvdGVDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvYmxvY2txdW90ZS9ibG9ja3F1b3RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb2RvSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90b2RvLWl0ZW0vdG9kby1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9saXN0L2NvbXBvbmVudHMvbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVCdWxsZXRlZExpc3RDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvbGlzdC9jb21wb25lbnRzL2J1bGxldGVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZU51bWJlcmVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9saXN0L2NvbXBvbmVudHMvbnVtYmVyZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxlbWVudFN0eWxlUGlwZSwgRWxlbWVudENsYXNzUGlwZSB9IGZyb20gJy4vcGlwZXMnO1xuXG5pbXBvcnQgeyBUaHlOYXZNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL25hdic7XG5pbXBvcnQgeyBUaHlJY29uTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVByb2dyZXNzTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9wcm9ncmVzcyc7XG5pbXBvcnQgeyBUaHlGb3JtTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9mb3JtJztcbmltcG9ydCB7IFRoeVRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVGh5QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgVGh5QXZhdGFyTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9hdmF0YXInO1xuaW1wb3J0IHsgVGh5U2hhcmVkTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5TGlzdE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvbGlzdCc7XG5pbXBvcnQgeyBUaHlBY3Rpb25NZW51TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24tbWVudSc7XG5pbXBvcnQgeyBUaHlJbnB1dE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgVGh5U2VsZWN0TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9zZWxlY3QnO1xuaW1wb3J0IHsgVGh5QnV0dG9uTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9idXR0b24nO1xuaW1wb3J0IHsgVGh5Tm90aWZ5TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9ub3RpZnknO1xuaW1wb3J0IHsgVGh5QWxlcnRNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2FsZXJ0JztcbmltcG9ydCB7IFRoZUNvbG9yU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbG9yLXNlbGVjdC9jb2xvci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvbG9yVG9vbGJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvY29sb3IvdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2NvZGUvY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29kZW1pcnJvck1vZHVsZSB9IGZyb20gJ25nLWNvZGVtaXJyb3InO1xuaW1wb3J0IHsgVGhlTGlua0NvbXBvbmVudCwgVGhlUmVhZG9ubHlMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2xpbmsvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTGlua0VkaXRDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvbGluay9lZGl0L2xpbmstZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTGlua0hvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2xpbmsvaG92ZXIvbGluay1ob3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGFibGVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL2NvbXBvbmVudHMvdG9vbGJhci90YWJsZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3Jvdy9yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRkQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3RhYmxlL2NvbXBvbmVudHMvdGQvdGQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnRleHRtZW51L2NvbnRleHRtZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVDb2x1bW5TaXplTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbi1yZXNpemUvY29sdW1uLXJlc2l6ZS5tb2R1bGUnO1xuaW1wb3J0IHsgVGhlSW5zZXJ0TWFya0NvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL2luc2VydC1tYXJrL2luc2VydC1tYXJrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci1ncm91cC90b29sYmFyLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb29sYmFyR3JvdXBUb2tlbiB9IGZyb20gJy4vY29uc3RhbnRzL3Rvb2xiYXInO1xuaW1wb3J0IHsgVGhlVGFibGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtc2VsZWN0L3RhYmxlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGFibGVUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvbnZlcnNpb25IaW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVZlcnRpY2FsVG9vbGJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdmVydGljYWwtYWxpZ24vdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUSEVfQ09ERV9NT0RFX1BST1ZJREVSIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlSW5saW5lVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbmxpbmUtdG9vbGJhci9pbmxpbmUtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlUXVpY2tUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL3F1aWNrLWluc2VydC9jb21wb25lbnRzL3F1aWNrLXRvb2xiYXIvcXVpY2stdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlUXVpY2tJbnNlcnRDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvcXVpY2staW5zZXJ0L2NvbXBvbmVudHMvcXVpY2staW5zZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlSZXNpemFibGVNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyBUaHlTd2l0Y2hNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3N3aXRjaCc7XG5pbXBvcnQgeyBUaGVJbmxpbmVDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2lubGluZS1jb2RlL2lubGluZS1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVJbmRlbnRUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2luZGVudC90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcblxuY29uc3QgVEVUSFlTID0gW1xuICAgIFRoeUljb25Nb2R1bGUsXG4gICAgVGh5QXZhdGFyTW9kdWxlLFxuICAgIFRoeU5hdk1vZHVsZSxcbiAgICBUaHlGb3JtTW9kdWxlLFxuICAgIFRoeVNoYXJlZE1vZHVsZSxcbiAgICBUaHlMaXN0TW9kdWxlLFxuICAgIFRoeVRvb2x0aXBNb2R1bGUsXG4gICAgVGh5UHJvZ3Jlc3NNb2R1bGUsXG4gICAgVGh5QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFRoeUFjdGlvbk1lbnVNb2R1bGUsXG4gICAgVGh5SW5wdXRNb2R1bGUsXG4gICAgVGh5U2VsZWN0TW9kdWxlLFxuICAgIFRoeUJ1dHRvbk1vZHVsZSxcbiAgICBUaHlOb3RpZnlNb2R1bGUsXG4gICAgVGh5QWxlcnRNb2R1bGUsXG4gICAgVGh5UmVzaXphYmxlTW9kdWxlLFxuICAgIFRoeVN3aXRjaE1vZHVsZVxuXTtcblxuZXhwb3J0IGNvbnN0IENPTVBPTkVOVFMgPSBbXG4gICAgVGhlVG9vbGJhckNvbXBvbmVudCxcbiAgICBUaGVUb29sYmFyRHJvcGRvd25Db21wb25lbnQsXG4gICAgVGhlVG9vbGJhckdyb3VwQ29tcG9uZW50LFxuICAgIFRoZVRvb2xiYXJJdGVtQ29tcG9uZW50LFxuICAgIFRoZUlubGluZVRvb2xiYXJDb21wb25lbnQsXG4gICAgTmF2U3BsaXRMaW5lQ29tcG9uZW50LFxuICAgIFRoZVRleHRDb21wb25lbnQsXG4gICAgVGhlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQsXG4gICAgVGhlUXVpY2tJbnNlcnRDb21wb25lbnQsXG4gICAgVGhlUXVpY2tUb29sYmFyQ29tcG9uZW50LFxuICAgIFRoZUNvbG9yU2VsZWN0Q29tcG9uZW50LFxuICAgIFRoZUNvbG9yVG9vbGJhckl0ZW1Db21wb25lbnQsXG4gICAgVGhlQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgVGhlSW5zZXJ0TWFya0NvbXBvbmVudCxcbiAgICBUaGVUYWJsZVNlbGVjdENvbXBvbmVudCxcbiAgICBUaGVUYWJsZVRvb2xiYXJJdGVtQ29tcG9uZW50LFxuICAgIFRoZUNvbnZlcnNpb25IaW50Q29tcG9uZW50LFxuICAgIFRoZVZlcnRpY2FsVG9vbGJhckl0ZW1Db21wb25lbnQsXG4gICAgVGhlSW5kZW50VG9vbGJhckNvbXBvbmVudFxuXTtcblxuZXhwb3J0IGNvbnN0IFBMVUdJTl9DT01QT05FTlRTID0gW1xuICAgIFRoZUltYWdlQ29tcG9uZW50LFxuICAgIFRoZVRlbXBsYXRlQ29tcG9uZW50LFxuICAgIFRoZUhyQ29tcG9uZW50LFxuICAgIFRoZUJsb2NrcXVvdGVDb21wb25lbnQsXG4gICAgVGhlVG9kb0l0ZW1Db21wb25lbnQsXG4gICAgVGhlTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgVGhlQnVsbGV0ZWRMaXN0Q29tcG9uZW50LFxuICAgIFRoZU51bWJlcmVkTGlzdENvbXBvbmVudCxcbiAgICBUaGVDb2RlQ29tcG9uZW50LFxuICAgIFRoZUxpbmtDb21wb25lbnQsXG4gICAgVGhlUmVhZG9ubHlMaW5rQ29tcG9uZW50LFxuICAgIFRoZUxpbmtFZGl0Q29tcG9uZW50LFxuICAgIFRoZUxpbmtIb3ZlckNvbXBvbmVudCxcbiAgICBUaGVUYWJsZVRvb2xiYXJDb21wb25lbnQsXG4gICAgVGhlVGFibGVDb21wb25lbnQsXG4gICAgVGhlVGFibGVSb3dDb21wb25lbnQsXG4gICAgVGhlVGRDb21wb25lbnQsXG4gICAgVGhlSW5saW5lQ29kZUNvbXBvbmVudFxuXTtcblxuY29uc3QgUElQRVMgPSBbRWxlbWVudFN0eWxlUGlwZSwgRWxlbWVudENsYXNzUGlwZV07XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbVGhlRWRpdG9yQ29tcG9uZW50LCAuLi5QSVBFUywgLi4uQ09NUE9ORU5UUywgLi4uUExVR0lOX0NPTVBPTkVOVFNdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNsYXRlTW9kdWxlLCBGb3Jtc01vZHVsZSwgLi4uVEVUSFlTLCBDb2RlbWlycm9yTW9kdWxlLCBUaGVDb2x1bW5TaXplTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbVGhlRWRpdG9yQ29tcG9uZW50LCBUaGVUb29sYmFyQ29tcG9uZW50LCBUaGVUb29sYmFyRHJvcGRvd25Db21wb25lbnQsIFRoZVRvb2xiYXJJdGVtQ29tcG9uZW50LCBUaGVEZWZhdWx0RWxlbWVudENvbXBvbmVudF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbLi4uQ09NUE9ORU5UUywgLi4uUExVR0lOX0NPTVBPTkVOVFNdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUaGVUb29sYmFyR3JvdXBUb2tlbixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBUaGVUb29sYmFyR3JvdXBDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgVEhFX0NPREVfTU9ERV9QUk9WSURFUlxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlRWRpdG9yTW9kdWxlIHt9XG4iXX0=
@@ -5,4 +5,4 @@ export var TheDataMode;
5
5
  TheDataMode["json"] = "json";
6
6
  TheDataMode["html"] = "html";
7
7
  })(TheDataMode || (TheDataMode = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2ludGVyZmFjZXMvZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBa0IxRSxNQUFNLENBQUMsTUFBTSxTQUFTLHFCQUNmLGFBQWEsQ0FDbkIsQ0FBQztBQU1GLE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDbkIsNEJBQWEsQ0FBQTtJQUNiLDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jZXN0b3IsIFJhbmdlLCBQYXRoLCBQb2ludCwgTm9kZSwgU3BhbiwgTm9kZUVudHJ5LCBFZGl0b3IsIEVsZW1lbnQsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBTbGF0ZVBsYWNlaG9sZGVyLCBWaWV3VHlwZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgSGlzdG9yeUVkaXRvciB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuaW1wb3J0IHsgRWxlbWVudE9wdGlvbnNJbmZvIH0gZnJvbSAnLi92YWxpZC1jaGlsZHJlbi10eXBlcyc7XG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICcuLi91dGlscy9tYXRjaCc7XG5pbXBvcnQgeyBUb29sYmFyT3B0aW9uIH0gZnJvbSAnLi90b29sYmFyJztcbmltcG9ydCB7IEZvbnRTaXplcyB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi9jdXN0b20tdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZUVkaXRvciBleHRlbmRzIEFuZ3VsYXJFZGl0b3IsIEhpc3RvcnlFZGl0b3Ige1xuICAgIHJlbmRlckVsZW1lbnQ6IChlbGVtZW50OiBFbGVtZW50KSA9PiBWaWV3VHlwZTtcbiAgICByZW5kZXJMZWFmOiAodGV4dDogVGV4dCkgPT4gVmlld1R5cGU7XG4gICAgaW5zZXJ0RWxlbWVudDogKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHZvaWQ7XG4gICAgaXNDb250YWluZXI6IChlbGVtZW50OiBFbGVtZW50KSA9PiBib29sZWFuO1xuICAgIGV4dHJhRWxlbWVudE9wdGlvbnM6IEVsZW1lbnRPcHRpb25zSW5mb1tdO1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IFRoZUVkaXRvciA9IHtcbiAgICAuLi5Bbmd1bGFyRWRpdG9yXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZVBsdWdpbiB7XG4gICAgKGVkaXRvcjogRWRpdG9yKTogRWRpdG9yO1xufVxuXG5leHBvcnQgZW51bSBUaGVEYXRhTW9kZSB7XG4gICAganNvbiA9ICdqc29uJyxcbiAgICBodG1sID0gJ2h0bWwnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlT3B0aW9ucyB7XG4gICAgbW9kZT86IFRoZURhdGFNb2RlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlckRlY29yYXRlPzogKGVkaXRvcjogRWRpdG9yKSA9PiBTbGF0ZVBsYWNlaG9sZGVyW107XG4gICAgaW5saW5lVG9vYmFyVmlzaWJsZT86IGJvb2xlYW47XG4gICAgcXVpY2tJbnNlcnRWaXNpYmxlPzogYm9vbGVhbjtcbiAgICBkcmFnQW5kRHJvcD86IGJvb2xlYW47XG4gICAgc2Nyb2xsQ29udGFpbmVyPzogc3RyaW5nO1xuICAgIG1heEhlaWdodD86IG51bWJlcjtcbiAgICBmb250U2l6ZT86IEZvbnRTaXplcztcbiAgICB0b29sYmFyPzogVG9vbGJhck9wdGlvbjtcbiAgICBkaXNhYmxlUGx1Z2lucz86IHN0cmluZ1tdO1xuICAgIGV4dHJhRWxlbWVudE9wdGlvbnM/OiBFbGVtZW50T3B0aW9uc0luZm9bXTtcbn1cblxuZXhwb3J0IHR5cGUgTm9kZU1hdGNoPFQgPSBOb2RlPiA9IFByZWRpY2F0ZTxUPjtcblxuZXhwb3J0IGludGVyZmFjZSBNYXRjaE9wdGlvbnM8VCA9IE5vZGU+IHtcbiAgICBtYXRjaD86IE5vZGVNYXRjaDxUPjtcbiAgICBibG9jaz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yQWJvdmVPcHRpb25zPFQgPSBBbmNlc3Rvcj4gZXh0ZW5kcyBNYXRjaE9wdGlvbnM8VD4ge1xuICAgIGF0PzogUmFuZ2UgfCBQYXRoIHwgUG9pbnQ7XG4gICAgbW9kZT86ICdoaWdoZXN0JyB8ICdsb3dlc3QnO1xuICAgIHZvaWRzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JOb2Rlc09wdGlvbnMge1xuICAgIGF0PzogUmFuZ2UgfCBQYXRoIHwgUG9pbnQgfCBTcGFuO1xuICAgIG1hdGNoPzogKG5vZGU6IE5vZGUpID0+IGJvb2xlYW47XG4gICAgbW9kZT86ICdoaWdoZXN0JyB8ICdsb3dlc3QnIHwgJ2FsbCc7XG4gICAgdW5pdmVyc2FsPzogYm9vbGVhbjtcbiAgICByZXZlcnNlPzogYm9vbGVhbjtcbiAgICB2b2lkcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV3JhcE9wdGlvbnMge1xuICAgIGF0PzogUGF0aCB8IFBvaW50IHwgUmFuZ2U7XG4gICAgbWF0Y2g/OiAobm9kZTogTm9kZSkgPT4gYm9vbGVhbjtcbiAgICBtb2RlPzogJ2hpZ2hlc3QnIHwgJ2xvd2VzdCcgfCAnYWxsJztcbiAgICBzcGxpdD86IGJvb2xlYW47XG4gICAgdm9pZHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvclBhcmVudE9wdGlvbnMge1xuICAgIGRlcHRoPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGVkZ2U/OiAnc3RhcnQnIHwgJ2VuZCcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPcHRpb25zIHtcbiAgICAvLyBDb25kaXRpb24gb24gdGhlIG5vZGUgdG8gYmUgdmFsaWQuXG4gICAgZmlsdGVyPzogKGVudHJ5OiBOb2RlRW50cnk8Tm9kZT4pID0+IGJvb2xlYW47XG4gICAgLy8gTGlzdCBvZiB0eXBlcyB0aGF0IGFyZSB2YWxpZC4gSWYgZW1wdHkgb3IgdW5kZWZpbmVkIC0gYWxsb3cgYWxsLlxuICAgIGFsbG93Pzogc3RyaW5nW107XG4gICAgLy8gTGlzdCBvZiB0eXBlcyB0aGF0IGFyZSBpbnZhbGlkLlxuICAgIGV4Y2x1ZGU/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb21FdmVudERhdGFJbmZvIHtcbiAgICBpbnB1dFR5cGU/OiBzdHJpbmc7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAganNvbj86IE5vZGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEcmFnTm9kZSB7XG4gICAgbm9kZTogQ3VzdG9tRWxlbWVudDtcbiAgICBwYXRoOiBQYXRoO1xufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2ludGVyZmFjZXMvZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBaUIxRSxNQUFNLENBQUMsTUFBTSxTQUFTLHFCQUNmLGFBQWEsQ0FDbkIsQ0FBQztBQU1GLE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDbkIsNEJBQWEsQ0FBQTtJQUNiLDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jZXN0b3IsIFJhbmdlLCBQYXRoLCBQb2ludCwgTm9kZSwgU3BhbiwgTm9kZUVudHJ5LCBFZGl0b3IsIEVsZW1lbnQsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBTbGF0ZVBsYWNlaG9sZGVyLCBWaWV3VHlwZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgSGlzdG9yeUVkaXRvciB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuaW1wb3J0IHsgRWxlbWVudE9wdGlvbnNJbmZvIH0gZnJvbSAnLi92YWxpZC1jaGlsZHJlbi10eXBlcyc7XG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICcuLi91dGlscy9tYXRjaCc7XG5pbXBvcnQgeyBUb29sYmFyT3B0aW9uIH0gZnJvbSAnLi90b29sYmFyJztcbmltcG9ydCB7IEZvbnRTaXplcyB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUaGVFZGl0b3IgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yLCBIaXN0b3J5RWRpdG9yIHtcbiAgICByZW5kZXJFbGVtZW50OiAoZWxlbWVudDogRWxlbWVudCkgPT4gVmlld1R5cGU7XG4gICAgcmVuZGVyTGVhZjogKHRleHQ6IFRleHQpID0+IFZpZXdUeXBlO1xuICAgIGluc2VydEVsZW1lbnQ6IChlbGVtZW50OiBFbGVtZW50KSA9PiB2b2lkO1xuICAgIGlzQ29udGFpbmVyOiAoZWxlbWVudDogRWxlbWVudCkgPT4gYm9vbGVhbjtcbiAgICBleHRyYUVsZW1lbnRPcHRpb25zOiBFbGVtZW50T3B0aW9uc0luZm9bXTtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBUaGVFZGl0b3IgPSB7XG4gICAgLi4uQW5ndWxhckVkaXRvclxufTtcblxuZXhwb3J0IGludGVyZmFjZSBUaGVQbHVnaW4ge1xuICAgIChlZGl0b3I6IEVkaXRvcik6IEVkaXRvcjtcbn1cblxuZXhwb3J0IGVudW0gVGhlRGF0YU1vZGUge1xuICAgIGpzb24gPSAnanNvbicsXG4gICAgaHRtbCA9ICdodG1sJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZU9wdGlvbnMge1xuICAgIG1vZGU/OiBUaGVEYXRhTW9kZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXJEZWNvcmF0ZT86IChlZGl0b3I6IEVkaXRvcikgPT4gU2xhdGVQbGFjZWhvbGRlcltdO1xuICAgIGlubGluZVRvb2JhclZpc2libGU/OiBib29sZWFuO1xuICAgIHF1aWNrSW5zZXJ0VmlzaWJsZT86IGJvb2xlYW47XG4gICAgc2Nyb2xsQ29udGFpbmVyPzogc3RyaW5nO1xuICAgIG1heEhlaWdodD86IG51bWJlcjtcbiAgICBmb250U2l6ZT86IEZvbnRTaXplcztcbiAgICByaWNoTWVkaWE/OiBib29sZWFuO1xuICAgIHRvb2xiYXI/OiBUb29sYmFyT3B0aW9uO1xuICAgIGRpc2FibGVQbHVnaW5zPzogc3RyaW5nW107XG4gICAgZXh0cmFFbGVtZW50T3B0aW9ucz86IEVsZW1lbnRPcHRpb25zSW5mb1tdO1xufVxuXG5leHBvcnQgdHlwZSBOb2RlTWF0Y2g8VCA9IE5vZGU+ID0gUHJlZGljYXRlPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGNoT3B0aW9uczxUID0gTm9kZT4ge1xuICAgIG1hdGNoPzogTm9kZU1hdGNoPFQ+O1xuICAgIGJsb2NrPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JBYm92ZU9wdGlvbnM8VCA9IEFuY2VzdG9yPiBleHRlbmRzIE1hdGNoT3B0aW9uczxUPiB7XG4gICAgYXQ/OiBSYW5nZSB8IFBhdGggfCBQb2ludDtcbiAgICBtb2RlPzogJ2hpZ2hlc3QnIHwgJ2xvd2VzdCc7XG4gICAgdm9pZHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvck5vZGVzT3B0aW9ucyB7XG4gICAgYXQ/OiBSYW5nZSB8IFBhdGggfCBQb2ludCB8IFNwYW47XG4gICAgbWF0Y2g/OiAobm9kZTogTm9kZSkgPT4gYm9vbGVhbjtcbiAgICBtb2RlPzogJ2hpZ2hlc3QnIHwgJ2xvd2VzdCcgfCAnYWxsJztcbiAgICB1bml2ZXJzYWw/OiBib29sZWFuO1xuICAgIHJldmVyc2U/OiBib29sZWFuO1xuICAgIHZvaWRzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXcmFwT3B0aW9ucyB7XG4gICAgYXQ/OiBQYXRoIHwgUG9pbnQgfCBSYW5nZTtcbiAgICBtYXRjaD86IChub2RlOiBOb2RlKSA9PiBib29sZWFuO1xuICAgIG1vZGU/OiAnaGlnaGVzdCcgfCAnbG93ZXN0JyB8ICdhbGwnO1xuICAgIHNwbGl0PzogYm9vbGVhbjtcbiAgICB2b2lkcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yUGFyZW50T3B0aW9ucyB7XG4gICAgZGVwdGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgZWRnZT86ICdzdGFydCcgfCAnZW5kJyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeU9wdGlvbnMge1xuICAgIC8vIENvbmRpdGlvbiBvbiB0aGUgbm9kZSB0byBiZSB2YWxpZC5cbiAgICBmaWx0ZXI/OiAoZW50cnk6IE5vZGVFbnRyeTxOb2RlPikgPT4gYm9vbGVhbjtcbiAgICAvLyBMaXN0IG9mIHR5cGVzIHRoYXQgYXJlIHZhbGlkLiBJZiBlbXB0eSBvciB1bmRlZmluZWQgLSBhbGxvdyBhbGwuXG4gICAgYWxsb3c/OiBzdHJpbmdbXTtcbiAgICAvLyBMaXN0IG9mIHR5cGVzIHRoYXQgYXJlIGludmFsaWQuXG4gICAgZXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbUV2ZW50RGF0YUluZm8ge1xuICAgIGlucHV0VHlwZT86IHN0cmluZztcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgdGV4dD86IHN0cmluZztcbiAgICBqc29uPzogTm9kZVtdO1xufVxuIl19