@cuby-ui/core 0.0.394 → 0.0.396

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 (57) hide show
  1. package/components/file-icon/file-icon.component.d.ts +8 -0
  2. package/components/file-icon/file-icon.options.d.ts +12 -0
  3. package/components/file-icon/index.d.ts +1 -0
  4. package/components/index.d.ts +1 -0
  5. package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
  6. package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
  7. package/editor/components/editor-attaches-tool/editor-attaches-tool.component.d.ts +6 -34
  8. package/editor/config/index.d.ts +0 -1
  9. package/editor/index.d.ts +0 -1
  10. package/editor/interfaces/combined-block-adding-event.d.ts +3 -3
  11. package/editor/interfaces/combined-part-block-data.d.ts +2 -2
  12. package/editor/interfaces/full-block-data.d.ts +2 -2
  13. package/editor/interfaces/index.d.ts +1 -1
  14. package/editor/interfaces/main-editor-config.d.ts +2 -5
  15. package/editor/providers/editor-resource-url.provider.d.ts +2 -0
  16. package/editor/providers/editor.provider.d.ts +1 -1
  17. package/editor/providers/index.d.ts +2 -1
  18. package/editor/services/editor.service.d.ts +4 -4
  19. package/editor/services/index.d.ts +0 -2
  20. package/editor/tools/attaches.tool.d.ts +1 -0
  21. package/editor/widgets/editor-readonly/editor-readonly.component.d.ts +1 -1
  22. package/esm2022/components/file-icon/file-icon.component.mjs +21 -0
  23. package/esm2022/components/file-icon/file-icon.options.mjs +119 -0
  24. package/esm2022/components/file-icon/index.mjs +2 -0
  25. package/esm2022/components/index.mjs +2 -1
  26. package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.component.mjs +18 -40
  27. package/esm2022/editor/components/editor-image-tool/editor-image-tool.component.mjs +3 -3
  28. package/esm2022/editor/components/editor-video-tool/editor-video-tool.component.mjs +3 -3
  29. package/esm2022/editor/config/index.mjs +1 -2
  30. package/esm2022/editor/editor.component.mjs +5 -4
  31. package/esm2022/editor/index.mjs +1 -2
  32. package/esm2022/editor/interfaces/combined-block-adding-event.mjs +1 -1
  33. package/esm2022/editor/interfaces/combined-part-block-data.mjs +1 -1
  34. package/esm2022/editor/interfaces/full-block-data.mjs +1 -1
  35. package/esm2022/editor/interfaces/index.mjs +1 -1
  36. package/esm2022/editor/interfaces/main-editor-config.mjs +1 -1
  37. package/esm2022/editor/providers/editor-resource-url.provider.mjs +5 -0
  38. package/esm2022/editor/providers/editor.provider.mjs +18 -4
  39. package/esm2022/editor/providers/index.mjs +3 -2
  40. package/esm2022/editor/services/editor.service.mjs +2 -2
  41. package/esm2022/editor/services/index.mjs +1 -3
  42. package/esm2022/editor/tools/attaches.tool.mjs +4 -1
  43. package/fesm2022/cuby-ui-core.mjs +233 -164
  44. package/fesm2022/cuby-ui-core.mjs.map +1 -1
  45. package/package.json +4 -4
  46. package/styles/fonts.scss +1 -1
  47. package/styles/theme.scss +1 -1
  48. package/styles/variables/fonts.scss +1 -1
  49. package/widgets/categories/components/category-item/category-item.component.d.ts +2 -2
  50. package/widgets/storage-list/components/storage-list-item/storage-list-item.component.d.ts +1 -1
  51. package/widgets/user-action-context-menu/activity-item/activity-item.component.d.ts +1 -1
  52. package/editor/config/editor.provider.d.ts +0 -2
  53. package/editor/services/jtext-api.options.d.ts +0 -20
  54. package/editor/services/jtext-api.service.d.ts +0 -23
  55. package/esm2022/editor/config/editor.provider.mjs +0 -19
  56. package/esm2022/editor/services/jtext-api.options.mjs +0 -2
  57. package/esm2022/editor/services/jtext-api.service.mjs +0 -50
@@ -3,10 +3,11 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { CuiIdService } from '@cuby-ui/cdk';
4
4
  import EditorJS from '@editorjs/editorjs';
5
5
  import { concatMap, delay, finalize, fromEvent, map, Subject, takeWhile, tap, throttleTime, timer, toArray } from 'rxjs';
6
+ import { CuiJTextApiService } from '@cuby-ui/api';
6
7
  import { getEditorConfig } from './config';
7
8
  import { COMBINED_TEXT_BLOCK_NAME, COMBINED_TEXT_BLOCK_PART, DEFAULT_CONFIG } from './constants/editor.constants';
8
9
  import { setEditorEvents } from './events/set-editor-events';
9
- import { CuiEditorService, CuiJTextApiService } from './services';
10
+ import { CuiEditorService } from './services';
10
11
  import { recalculateIndexes } from './utils/recalculate-indexes';
11
12
  import * as i0 from "@angular/core";
12
13
  export class CuiEditorComponent {
@@ -370,11 +371,11 @@ export class CuiEditorComponent {
370
371
  this.abortController = new AbortController();
371
372
  }
372
373
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
373
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiEditorComponent, isStandalone: true, selector: "cui-editor", inputs: { editorApiId: "editorApiId", config: "config", requestSize: "requestSize" }, outputs: { editorEmpty: "editorEmpty" }, providers: [CuiEditorService, CuiJTextApiService], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #editor\n [id]=\"editorId\"\n data-editor\n [class._readonly]=\"config.readOnly\"\n></div>\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-0);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}@media (max-width: 650px){:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{border-color:var(--menuBorder);background-color:var(--menuBackground)}:host ::ng-deep .ce-toolbar__actions{inset:0 auto auto 0}}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}@media (max-width: 650px){:host ::ng-deep [data-editor] .codex-editor{margin-left:0}}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:#e97c00}:host ::ng-deep .role-marker{color:#8803f1}.form{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CuiEditorComponent, isStandalone: true, selector: "cui-editor", inputs: { editorApiId: "editorApiId", config: "config", requestSize: "requestSize" }, outputs: { editorEmpty: "editorEmpty" }, providers: [CuiEditorService, CuiJTextApiService], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #editor\n [id]=\"editorId\"\n data-editor\n [class._readonly]=\"config.readOnly\"\n></div>\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border-radius:8px;border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-10);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}@media (max-width: 650px){:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{border-color:var(--menuBorder);background-color:var(--menuBackground)}:host ::ng-deep .ce-toolbar__actions{inset:0 auto auto 0}}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}@media (max-width: 650px){:host ::ng-deep [data-editor] .codex-editor{margin-left:0}}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:#e97c00}:host ::ng-deep .role-marker{color:#8803f1}.form{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
374
375
  }
375
376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorComponent, decorators: [{
376
377
  type: Component,
377
- args: [{ selector: 'cui-editor', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiEditorService, CuiJTextApiService], template: "<div\n #editor\n [id]=\"editorId\"\n data-editor\n [class._readonly]=\"config.readOnly\"\n></div>\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-0);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}@media (max-width: 650px){:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{border-color:var(--menuBorder);background-color:var(--menuBackground)}:host ::ng-deep .ce-toolbar__actions{inset:0 auto auto 0}}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}@media (max-width: 650px){:host ::ng-deep [data-editor] .codex-editor{margin-left:0}}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:#e97c00}:host ::ng-deep .role-marker{color:#8803f1}.form{height:100%}\n"] }]
378
+ args: [{ selector: 'cui-editor', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiEditorService, CuiJTextApiService], template: "<div\n #editor\n [id]=\"editorId\"\n data-editor\n [class._readonly]=\"config.readOnly\"\n></div>\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border-radius:8px;border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-10);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}@media (max-width: 650px){:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{border-color:var(--menuBorder);background-color:var(--menuBackground)}:host ::ng-deep .ce-toolbar__actions{inset:0 auto auto 0}}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}@media (max-width: 650px){:host ::ng-deep [data-editor] .codex-editor{margin-left:0}}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:#e97c00}:host ::ng-deep .role-marker{color:#8803f1}.form{height:100%}\n"] }]
378
379
  }], propDecorators: { editorRef: [{
379
380
  type: ViewChild,
380
381
  args: ['editor']
@@ -388,4 +389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
388
389
  }], requestSize: [{
389
390
  type: Input
390
391
  }] } });
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxRQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEVBQ0gsWUFBWSxFQUNaLEtBQUssRUFDTCxPQUFPLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFXN0QsT0FBTyxFQUFTLGdCQUFnQixFQUFFLGtCQUFrQixFQUFnQixNQUFNLFlBQVksQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFVakUsTUFBTSxPQUFPLGtCQUFrQjtJQVIvQjtRQVNxQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUs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QVM7c0JBRDNCLFNBQVM7dUJBQUMsUUFBUTtnQkFJSCxXQUFXO3NCQUQxQixNQUFNO2dCQUlBLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixNQUFNO3NCQURaLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRWxlbWVudFJlZiwgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB0eXBlIHsgQVBJLCBCbG9ja011dGF0aW9uRXZlbnQsIE91dHB1dERhdGEgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IEVkaXRvckpTIGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBjb25jYXRNYXAsXG4gICAgZGVsYXksXG4gICAgZmluYWxpemUsXG4gICAgZnJvbUV2ZW50LFxuICAgIG1hcCxcbiAgICBTdWJqZWN0LFxuICAgIHRha2VXaGlsZSxcbiAgICB0YXAsXG4gICAgdGhyb3R0bGVUaW1lLFxuICAgIHRpbWVyLFxuICAgIHRvQXJyYXlcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGdldEVkaXRvckNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRSwgQ09NQklORURfVEVYVF9CTE9DS19QQVJULCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vY29uc3RhbnRzL2VkaXRvci5jb25zdGFudHMnO1xuaW1wb3J0IHsgc2V0RWRpdG9yRXZlbnRzIH0gZnJvbSAnLi9ldmVudHMvc2V0LWVkaXRvci1ldmVudHMnO1xuaW1wb3J0IHR5cGUge1xuICAgIEN1aUJsb2NrRGF0YSxcbiAgICBDdWlCbG9ja3NSZXF1ZXN0RGF0YSxcbiAgICBDdWlDb21iaW5lZEJsb2NrQWRkaW5nRXZlbnQsXG4gICAgQ3VpQ29tYmluZWRCbG9ja1Rvb2xEYXRhLFxuICAgIEN1aUNvbWJpbmVkUGFydEJsb2NrLFxuICAgIEN1aUVkaXRvckNvbmZpZyxcbiAgICBDdWlFdmVudEFjdGlvbkRhdGEsXG4gICAgQ3VpRnVsbEJsb2NrRGF0YVxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQmxvY2ssIEN1aUVkaXRvclNlcnZpY2UsIEN1aUpUZXh0QXBpU2VydmljZSwgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZUluZGV4ZXMgfSBmcm9tICcuL3V0aWxzL3JlY2FsY3VsYXRlLWluZGV4ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1lZGl0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbQ3VpRWRpdG9yU2VydmljZSwgQ3VpSlRleHRBcGlTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUlkU2VydmljZSA9IGluamVjdChDdWlJZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWRpdG9yU2VydmljZSA9IGluamVjdChDdWlFZGl0b3JTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpUZXh0U2VydmljZSA9IGluamVjdChDdWlKVGV4dEFwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBQT09MSU5HX0RFTEFZID0gMTAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgRUxFTUVOVF9TUEFDRV9UT19CT1RUT00gPSAxNTA7XG4gICAgcHJpdmF0ZSByZWFkb25seSBTQ1JPTExfVEhST1RUTEVfVElNRSA9IDIwMDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNSZWFkb25seSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnPy5yZWFkT25seSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbXB0eVF1ZXVlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByaXZhdGUgcG9vbGluZ1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGlzU2tpcENvbWJpbmVkQmxvY2tPbkNoYW5nZTogYm9vbGVhbltdID0gW107XG4gICAgcHJpdmF0ZSBpc0ZpcnN0ID0gdHJ1ZTtcbiAgICBwcml2YXRlIGlzQ2hhbmdpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzU2tpcCA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNSZXF1ZXN0ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRGVzdHJveWVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBibG9ja0lkc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBjb21iaW5lZEJsb2NrcyA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIGluZGV4ID0gMDtcbiAgICBwcml2YXRlIHBhZ2UgPSAwO1xuICAgIHByaXZhdGUgYWRkZWRCbG9ja3M6IEN1aUJsb2NrRGF0YVtdID0gW107XG4gICAgcHJpdmF0ZSB1cGRhdGVkQmxvY2tzOiBCbG9ja1tdID0gW107XG4gICAgcHJpdmF0ZSByZW1vdmVkQmxvY2tzSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgY2hhbmdlc1F1ZXVlOiBCbG9ja011dGF0aW9uRXZlbnRbXVtdID0gW107XG4gICAgcHJpdmF0ZSBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9ySWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xuXG4gICAgQFZpZXdDaGlsZCgnZWRpdG9yJylcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yUmVmITogRWxlbWVudFJlZjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0b3JFbXB0eSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIGVkaXRvckFwaUlkITogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29uZmlnOiBDdWlFZGl0b3JDb25maWcgPSBERUZBVUxUX0NPTkZJRztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlcXVlc3RTaXplID0gNDA7XG5cbiAgICBwdWJsaWMgZWRpdG9yITogRWRpdG9ySlM7XG4gICAgcHVibGljIGVkaXRvckVsZW1lbnQhOiBIVE1MRWxlbWVudDtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydlZGl0b3JBcGlJZCddIHx8IGNoYW5nZXNbJ2NvbmZpZyddKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRFZGl0b3JDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRlc3Ryb3lFZGl0b3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2Nyb2xsRXZlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3ZlcmFsbEhlaWdodCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gdGhpcy5FTEVNRU5UX1NQQUNFX1RPX0JPVFRPTTtcbiAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRIZWlnaHQgPCBvdmVyYWxsSGVpZ2h0IHx8IHRoaXMuaXNSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNSZXF1ZXN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnJlcXVlc3RTaXplO1xuICAgICAgICBsZXQgYmxvY2tzQ291bnQgPSAwO1xuXG4gICAgICAgIHRoaXMuZ2V0QmxvY2tzKHRoaXMucGFnZSwgc2l6ZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoYmxvY2tzKSA9PiAoYmxvY2tzQ291bnQgPSBibG9ja3MubGVuZ3RoKSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVxdWVzdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nrc0NvdW50ID49IHNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRWRpdG9yQ2hhbmdlKF86IEFQSSwgZXZlbnQ6IEJsb2NrTXV0YXRpb25FdmVudCB8IEJsb2NrTXV0YXRpb25FdmVudFtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkoKSB8fCB0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudCA9IFtldmVudF07XG4gICAgICAgIH1cblxuICAgICAgICByZWNhbGN1bGF0ZUluZGV4ZXModGhpcy5lZGl0b3IuYmxvY2tzKTtcblxuICAgICAgICBpZiAodGhpcy5pc0NoYW5naW5nKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNRdWV1ZS51bnNoaWZ0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhcnRDaGFuZ2VzKGV2ZW50KTtcbiAgICAgICAgdGhpcy5lZGl0b3JFbXB0eS5lbWl0KHRoaXMuY2hlY2tJc0VtcHR5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25BZGRlZENvbWJpbmVkQmxvY2soZGF0YTogQ3VpQ29tYmluZWRCbG9ja0FkZGluZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2tpcENvbWJpbmVkQmxvY2tPbkNoYW5nZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlLnBvcCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBibG9ja3NXaXRob3V0SWQgPSBkYXRhLmJsb2Nrcy5tYXAoKGJsb2NrKSA9PiAoe1xuICAgICAgICAgICAgYmxvY2s6IHsgLi4uYmxvY2ssIGlkOiB1bmRlZmluZWQgfSxcbiAgICAgICAgICAgIGlkOiBibG9jay5pZCFcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuYWRkZWRCbG9ja3MucHVzaCguLi5ibG9ja3NXaXRob3V0SWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGRhdGVkQ29tYmluZWRCbG9jayh1cGRhdGVkQmxvY2tzOiBCbG9ja1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghdXBkYXRlZEJsb2Nrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlZEJsb2Nrcy5wdXNoKC4uLnVwZGF0ZWRCbG9ja3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25SZW1vdmVkQ29tYmluZWRCbG9jayhibG9ja0lkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFibG9ja0lkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcy5wdXNoKC4uLmJsb2NrSWRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFZGl0b3JDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmpUZXh0U2VydmljZS5hZGRPcHRpb25zKHRoaXMuY29uZmlnLnJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgICB0aGlzLmVkaXRvciA9IHRoaXMuaW5pdEVkaXRvcih0aGlzLmVkaXRvcklkKTtcbiAgICAgICAgdGhpcy5lZGl0b3IuaXNSZWFkeS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmVkaXRvckVsZW1lbnQgPSB0aGlzLmVkaXRvclJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICB0aGlzLmluaXRFZGl0b3JFdmVudHModGhpcy5lZGl0b3JFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNjcm9sbE9ic2VydmVyKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0UG9vbGluZyh0aGlzLnJlcXVlc3RTaXplKTtcbiAgICAgICAgICAgIHRoaXMuc2V0TGlzdGVuZXJzT25DdXN0b21CbG9ja0NoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RWRpdG9yKGlkOiBzdHJpbmcpOiBFZGl0b3JKUyB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuXG4gICAgICAgIHRoaXMuZGVzdHJveUVkaXRvcigpO1xuICAgICAgICB0aGlzLmVkaXRvciA9IG5ldyBFZGl0b3JKUyh7XG4gICAgICAgICAgICAuLi5nZXRFZGl0b3JDb25maWcoaWQsIGNvbmZpZyksXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkVkaXRvckNoYW5nZS5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTY3JvbGxPYnNlcnZlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY29uZmlnPy5lbGVtZW50ID8/IHRoaXMuZWRpdG9yRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsT2JzZXJ2ZXIgPSBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gc2Nyb2xsT2JzZXJ2ZXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kpLFxuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSh0aGlzLlNDUk9MTF9USFJPVFRMRV9USU1FLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgICAgICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmc6IHRydWVcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5vblNjcm9sbEV2ZW50KGVsZW1lbnQpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEVkaXRvckV2ZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWFkT25seSA9IHRoaXMuaXNSZWFkb25seSgpO1xuXG4gICAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0RWRpdG9yRXZlbnRzKGVsZW1lbnQsIHRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydFBvb2xpbmcoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLmNvbmZpZz8uZWxlbWVudCA/PyB0aGlzLmVkaXRvckVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRQcmVsb2FkID0gdGhpcy5jb25maWc/LndpdGhvdXRQcmVsb2FkO1xuXG4gICAgICAgIHRoaXMucG9vbGluZ1N1YnNjcmlwdGlvbiA9IHRpbWVyKDAsIHRoaXMuUE9PTElOR19ERUxBWSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLmdldEJsb2Nrcyh0aGlzLnBhZ2UsIHNpemUpLnBpcGUoZGVsYXkodGhpcy5QT09MSU5HX0RFTEFZKSkpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnBhZ2UrKyksXG4gICAgICAgICAgICAgICAgdGFrZVdoaWxlKFxuICAgICAgICAgICAgICAgICAgICAoYmxvY2tzKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIXdpdGhvdXRQcmVsb2FkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodCA8PSBzY3JvbGxFbGVtZW50LmNsaWVudEhlaWdodCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tzLmxlbmd0aCA+PSBzaXplXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXJ0QmxvY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveUVkaXRvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgICAgdGhpcy5yZXNldERhdGEoKTtcbiAgICAgICAgLy8gVE9ETzog0LIg0YDQsNC90LTQvtC8INC60LXQudGB0LDRhSDQv9Cw0LTQsNC10YIg0L7RiNC40LHQutCwINC10YHQu9C4INGD0LHRgNCw0YLRjCDQv9GA0L7QstC10YDQutGDINC90LAg0LLRi9C30L7QsiBkZXN0cm95XG4gICAgICAgIHRoaXMuZWRpdG9yPy5kZXN0cm95Py4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExpc3RlbmVyc09uQ3VzdG9tQmxvY2tDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2V0TGlzdGVuZXJzT25DdXN0b21CbG9ja0NoYW5nZXModGhpcy5lZGl0b3IsIHtcbiAgICAgICAgICAgIHJlbW92ZWRDYWxsYmFjazogdGhpcy5vblJlbW92ZWRDb21iaW5lZEJsb2NrLmJpbmQodGhpcyksXG4gICAgICAgICAgICB1cGRhdGVkQ2FsbGJhY2s6IHRoaXMub25VcGRhdGVkQ29tYmluZWRCbG9jay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgYWRkZWRDYWxsYmFjazogdGhpcy5vbkFkZGVkQ29tYmluZWRCbG9jay5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgc3RhcnRDaGFuZ2VzKGV2ZW50OiBCbG9ja011dGF0aW9uRXZlbnRbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1NraXAgfHwgdGhpcy5pc0NoYW5naW5nKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2tpcCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQ2hhbmdpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JPdXRwdXQgPSBhd2FpdCB0aGlzLmVkaXRvci5zYXZlKCk7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBldmVudC5maWx0ZXIoKGRhdGEpID0+IGRhdGEuZGV0YWlsLnRhcmdldC5uYW1lICE9PSBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tzID0gdGhpcy5lZGl0b3JTZXJ2aWNlLnNvcnRFdmVudHNCeVR5cGVzKGV2ZW50cyk7XG4gICAgICAgICAgICBjb25zdCB7IGFkZEJsb2NrcyQsIGFkZGVkQmxvY2tzIH0gPSB0aGlzLmNvbGxlY3RBZGRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzLCBlZGl0b3JPdXRwdXQpO1xuXG4gICAgICAgICAgICB0aGlzLmFkZGVkQmxvY2tzID0gW107XG5cbiAgICAgICAgICAgIGFkZEJsb2NrcyRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKChibG9ja0lkcykgPT4gdGhpcy5zZXRCbG9ja0lkc1RvTWFwKGJsb2NrSWRzLCBhZGRlZEJsb2NrcykpLFxuICAgICAgICAgICAgICAgICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5jb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzLCBlZGl0b3JPdXRwdXQpKSxcbiAgICAgICAgICAgICAgICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuY29sbGVjdFJlbW92ZWRCbG9ja3NSZXF1ZXN0KGJsb2NrcykpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5zdGFydE5leHRDaGFuZ2UoKSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuc3RhcnROZXh0Q2hhbmdlKClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydE5leHRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDaGFuZ2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG5leHRFdmVudHMgPSB0aGlzLmNoYW5nZXNRdWV1ZS5wb3AoKTtcblxuICAgICAgICBpZiAobmV4dEV2ZW50cykge1xuICAgICAgICAgICAgdGhpcy5zdGFydENoYW5nZXMobmV4dEV2ZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtcHR5UXVldWUubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbGxlY3RBZGRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzOiBDdWlFdmVudEFjdGlvbkRhdGEsIGVkaXRvck91dHB1dDogT3V0cHV0RGF0YSk6IEN1aUJsb2Nrc1JlcXVlc3REYXRhIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEJsb2Nrc1dpdGhJbmRleCA9IGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXS5tYXAoKGFkZGVkQmxvY2spID0+XG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0RnVsbEJsb2NrRGF0YShhZGRlZEJsb2NrLCBlZGl0b3JPdXRwdXQpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkQmxvY2tzV2l0aEluZGV4ID0gdGhpcy5hZGRlZEJsb2Nrcy5tYXAoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lZGl0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWlkPVwiJHtibG9jay5pZH1cIl1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGVsZW1lbnQ/LmRhdGFzZXRbJ2luZGV4J10pO1xuXG4gICAgICAgICAgICByZXR1cm4geyAuLi5ibG9jaywgaW5kZXggfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYWRkZWRCbG9ja3MgPSBbLi4uZGVmYXVsdEJsb2Nrc1dpdGhJbmRleCwgLi4uY29tYmluZWRCbG9ja3NXaXRoSW5kZXhdLnNvcnQoXG4gICAgICAgICAgICAoZmlyc3QsIHNlY29uZCkgPT4gZmlyc3QuaW5kZXggLSBzZWNvbmQuaW5kZXhcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYWRkQmxvY2tzJCA9IHRoaXMuZWRpdG9yU2VydmljZS5jb2xsZWN0QWRkZWRCbG9ja3NSZXF1ZXN0KHRoaXMuZWRpdG9yQXBpSWQsIGFkZGVkQmxvY2tzKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWRkZWRCbG9ja3MsXG4gICAgICAgICAgICBhZGRCbG9ja3MkXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzOiBDdWlFdmVudEFjdGlvbkRhdGEsIGVkaXRvck91dHB1dDogT3V0cHV0RGF0YSk6IE9ic2VydmFibGU8QmxvY2tbXT4ge1xuICAgICAgICBibG9ja3NbRXZlbnRBY3Rpb25zLnVwZGF0ZV0uZm9yRWFjaCgodXBkYXRlQmxvY2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgaWQsIGJsb2NrIH0gPSB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0RnVsbEJsb2NrRGF0YSh1cGRhdGVCbG9jaywgZWRpdG9yT3V0cHV0KTtcbiAgICAgICAgICAgIGJsb2NrLmlkID0gaWQ7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlZEJsb2Nrcy5wdXNoKGJsb2NrKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlQmxvY2tzJCA9IHRoaXMuZWRpdG9yU2VydmljZS5jb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QodGhpcy51cGRhdGVkQmxvY2tzLCB0aGlzLmJsb2NrSWRzTWFwKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZWRCbG9ja3MgPSBbXTtcblxuICAgICAgICByZXR1cm4gdXBkYXRlQmxvY2tzJDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbGxlY3RSZW1vdmVkQmxvY2tzUmVxdWVzdChibG9ja3M6IEN1aUV2ZW50QWN0aW9uRGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBibG9ja3NbRXZlbnRBY3Rpb25zLnJlbW92ZV0uZm9yRWFjaCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gYmxvY2suZGV0YWlsLnRhcmdldC5pZDtcblxuICAgICAgICAgICAgdGhpcy5yZW1vdmVkQmxvY2tzSWRzLnB1c2goaWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZW1vdmVCbG9ja3MkID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmNvbGxlY3RSZW1vdmVkQmxvY2tzUmVxdWVzdChcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yQXBpSWQsXG4gICAgICAgICAgICB0aGlzLnJlbW92ZWRCbG9ja3NJZHMsXG4gICAgICAgICAgICB0aGlzLmJsb2NrSWRzTWFwXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcyA9IFtdO1xuXG4gICAgICAgIHJldHVybiByZW1vdmVCbG9ja3MkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmxvY2tzKHBhZ2UgPSAwLCBzaXplID0gNDApOiBPYnNlcnZhYmxlPEJsb2NrW10+IHtcbiAgICAgICAgbGV0IGNvbWJpbmVkQmxvY2s6IEN1aU51bGxhYmxlPEJsb2NrPjtcblxuICAgICAgICByZXR1cm4gdGhpcy5qVGV4dFNlcnZpY2UuZ2V0QmxvY2tzKHRoaXMuZWRpdG9yQXBpSWQsIHBhZ2UsIHNpemUpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29tYmluZWRCbG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlY2FsY3VsYXRlSW5kZXhlcyh0aGlzLmVkaXRvci5ibG9ja3MpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja0RhdGEgPSBibG9jay5kYXRhIGFzIHsgcGFyZW50SWQ6IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21iaW5lZEJsb2NrICYmIGJsb2NrRGF0YS5wYXJlbnRJZCEgIT09IGNvbWJpbmVkQmxvY2s/LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZEJsb2NrID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSB0aGlzLnNldENvbWJpbmVkQmxvY2soYmxvY2spO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tYmluZWRCbG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuYWRkQmxvY2soYmxvY2spO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0b0FycmF5KClcbiAgICAgICAgKSBhcyB1bmtub3duIGFzIE9ic2VydmFibGU8QmxvY2tbXT47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRCbG9jayhibG9jazogQmxvY2spOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBibG9jay50eXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibG9ja0lkc01hcC5zZXQoYmxvY2suaWQhLCBibG9jay5pZCEpO1xuICAgICAgICB0aGlzLmluc2VydChibG9jayk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDb21iaW5lZEJsb2NrKGNvbWJpbmVkQmxvY2s6IEJsb2NrKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlLnB1c2godHJ1ZSk7XG4gICAgICAgIGNvbnN0IGJsb2NrID0gdGhpcy5lZGl0b3IuYmxvY2tzLmdldEJ5SWQoY29tYmluZWRCbG9jay5pZCB8fCAnJyk7XG5cbiAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5ibG9ja3MudXBkYXRlKGJsb2NrLmlkLCBjb21iaW5lZEJsb2NrLmRhdGEgYXMgQ3VpQ29tYmluZWRQYXJ0QmxvY2spO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc2VydChjb21iaW5lZEJsb2NrKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydChibG9jazogQmxvY2spOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja0ZpcnN0KGJsb2NrKTtcbiAgICAgICAgdGhpcy5pbmRleCsrO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGaXJzdChibG9jazogQmxvY2spOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmlyc3QpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTa2lwID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yLmJsb2Nrcy5pbnNlcnQoYmxvY2sudHlwZSwgYmxvY2suZGF0YSwge30sIHRoaXMuaW5kZXgsIGZhbHNlLCBmYWxzZSwgYmxvY2suaWQpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPOiDQtdGB0YLRjCDQstCw0YDQuNC6INGH0YLQviDRh9GC0L4g0YLQviDQv9C+0LnQtNC10YIg0L3QtSDRgtCw0LpcbiAgICAgICAgdGhpcy5lZGl0b3IuYmxvY2tzLnJlbmRlcih7IGJsb2NrczogW2Jsb2NrXSB9KS50aGVuKCgpID0+ICh0aGlzLmlzU2tpcCA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaXNGaXJzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29tYmluZWRCbG9jayhibG9jazogQmxvY2spOiBCbG9jayB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkQmxvY2tEYXRhID0gYmxvY2suZGF0YSBhcyB7IHBhcmVudElkOiBzdHJpbmcgfTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5jb21iaW5lZEJsb2Nrcy5nZXQoY29tYmluZWRCbG9ja0RhdGEucGFyZW50SWQpO1xuXG4gICAgICAgIHRoaXMuYmxvY2tJZHNNYXAuc2V0KGJsb2NrLmlkISwgYmxvY2suaWQhKTtcblxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnREYXRhID0gcGFyZW50LmRhdGEgYXMgeyB0ZXh0QmxvY2tzOiBCbG9ja1tdIH07XG4gICAgICAgICAgICBwYXJlbnREYXRhLnRleHRCbG9ja3MucHVzaChibG9jayk7XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnRPYmplY3Q6IEJsb2NrID0ge1xuICAgICAgICAgICAgaWQ6IGNvbWJpbmVkQmxvY2tEYXRhLnBhcmVudElkLFxuICAgICAgICAgICAgdHlwZTogQ09NQklORURfVEVYVF9CTE9DS19OQU1FLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGlkOiBjb21iaW5lZEJsb2NrRGF0YS5wYXJlbnRJZCxcbiAgICAgICAgICAgICAgICB0ZXh0QmxvY2tzOiBbYmxvY2tdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5jb21iaW5lZEJsb2Nrcy5zZXQoY29tYmluZWRCbG9ja0RhdGEucGFyZW50SWQsIHBhcmVudE9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudE9iamVjdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEJsb2NrSWRzVG9NYXAoYmxvY2tJZHM6IHN0cmluZ1tdLCBhZGRlZEJsb2NrczogQ3VpRnVsbEJsb2NrRGF0YVtdKTogdm9pZCB7XG4gICAgICAgIGlmICghYmxvY2tJZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhZGRlZEJsb2Nrcy5mb3JFYWNoKChibG9ja0RhdGEsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJsb2NrSWRzTWFwLnNldChibG9ja0RhdGEuaWQsIGJsb2NrSWRzW2luZGV4XSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhcnRCbG9jaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tJZHNNYXAuc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JFbXB0eS5lbWl0KHRoaXMuY2hlY2tJc0VtcHR5KCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yLnJlbmRlcih7IGJsb2NrczogW10gfSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZXRTdGFydEJsb2NrKFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JBcGlJZCxcbiAgICAgICAgICAgIGFzeW5jIChibG9jazogQmxvY2s8Q3VpQ29tYmluZWRCbG9ja1Rvb2xEYXRhPiwgaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tJZHNNYXAuc2V0KGlkLCBpZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1NraXBDb21iaW5lZEJsb2NrT25DaGFuZ2UucHVzaCh0cnVlKTtcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZWRpdG9yLnJlbmRlcih7IGJsb2NrczogW2Jsb2NrXSB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICByZWNhbGN1bGF0ZUluZGV4ZXModGhpcy5lZGl0b3IuYmxvY2tzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnPy5hdXRvZm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yLmNhcmV0LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0lzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IE1JTl9CTE9DS1NfQ09VTlQgPSAxO1xuICAgICAgICBjb25zdCBSRURBQ1RPUl9TRUxFQ1RPUiA9ICcuY29kZXgtZWRpdG9yX19yZWRhY3Rvcic7XG4gICAgICAgIGNvbnN0IHJlZGFjdG9yID0gdGhpcy5lZGl0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoUkVEQUNUT1JfU0VMRUNUT1IpO1xuICAgICAgICBjb25zdCBibG9ja3NDb3VudCA9IHJlZGFjdG9yPy5jaGlsZEVsZW1lbnRDb3VudCA/PyAwO1xuXG4gICAgICAgIHJldHVybiBibG9ja3NDb3VudCA8PSBNSU5fQkxPQ0tTX0NPVU5UICYmICFyZWRhY3Rvcj8udGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnBvb2xpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlID0gW107XG4gICAgICAgIHRoaXMuaXNGaXJzdCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNDaGFuZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2tpcCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUmVxdWVzdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmxvY2tJZHNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICB0aGlzLmNvbWJpbmVkQmxvY2tzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgdGhpcy5hZGRlZEJsb2NrcyA9IFtdO1xuICAgICAgICB0aGlzLnVwZGF0ZWRCbG9ja3MgPSBbXTtcbiAgICAgICAgdGhpcy5yZW1vdmVkQmxvY2tzSWRzID0gW107XG4gICAgICAgIHRoaXMuY2hhbmdlc1F1ZXVlID0gW107XG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAjZWRpdG9yXG4gICAgW2lkXT1cImVkaXRvcklkXCJcbiAgICBkYXRhLWVkaXRvclxuICAgIFtjbGFzcy5fcmVhZG9ubHldPVwiY29uZmlnLnJlYWRPbmx5XCJcbj48L2Rpdj5cbiJdfQ==
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxRQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEVBQ0gsWUFBWSxFQUNaLEtBQUssRUFDTCxPQUFPLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQVksa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBVzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBVWpFLE1BQU0sT0FBTyxrQkFBa0I7SUFSL0I7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QWdCLEVBQUUsa0JBQWtCLENBQUM7OEJBb0M5QixTQUFTO3NCQUQzQixTQUFTO3VCQUFDLFFBQVE7Z0JBSUgsV0FBVztzQkFEMUIsTUFBTTtnQkFJQSxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsTUFBTTtzQkFEWixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7IEN1aUlkU2VydmljZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgdHlwZSB7IEFQSSwgQmxvY2tNdXRhdGlvbkV2ZW50LCBPdXRwdXREYXRhIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcbmltcG9ydCBFZGl0b3JKUyBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgY29uY2F0TWFwLFxuICAgIGRlbGF5LFxuICAgIGZpbmFsaXplLFxuICAgIGZyb21FdmVudCxcbiAgICBtYXAsXG4gICAgU3ViamVjdCxcbiAgICB0YWtlV2hpbGUsXG4gICAgdGFwLFxuICAgIHRocm90dGxlVGltZSxcbiAgICB0aW1lcixcbiAgICB0b0FycmF5XG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3VpQmxvY2ssIEN1aUpUZXh0QXBpU2VydmljZSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5cbmltcG9ydCB7IGdldEVkaXRvckNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRSwgQ09NQklORURfVEVYVF9CTE9DS19QQVJULCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vY29uc3RhbnRzL2VkaXRvci5jb25zdGFudHMnO1xuaW1wb3J0IHsgc2V0RWRpdG9yRXZlbnRzIH0gZnJvbSAnLi9ldmVudHMvc2V0LWVkaXRvci1ldmVudHMnO1xuaW1wb3J0IHR5cGUge1xuICAgIEN1aUJsb2NrRGF0YSxcbiAgICBDdWlCbG9ja3NSZXF1ZXN0RGF0YSxcbiAgICBDdWlDb21iaW5lZEJsb2NrQWRkaW5nRXZlbnQsXG4gICAgQ3VpQ29tYmluZWRCbG9ja1Rvb2xEYXRhLFxuICAgIEN1aUNvbWJpbmVkUGFydEJsb2NrLFxuICAgIEN1aUVkaXRvckNvbmZpZyxcbiAgICBDdWlFdmVudEFjdGlvbkRhdGEsXG4gICAgQ3VpRnVsbEJsb2NrRGF0YVxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VpRWRpdG9yU2VydmljZSwgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZUluZGV4ZXMgfSBmcm9tICcuL3V0aWxzL3JlY2FsY3VsYXRlLWluZGV4ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1lZGl0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbQ3VpRWRpdG9yU2VydmljZSwgQ3VpSlRleHRBcGlTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUlkU2VydmljZSA9IGluamVjdChDdWlJZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWRpdG9yU2VydmljZSA9IGluamVjdChDdWlFZGl0b3JTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpUZXh0U2VydmljZSA9IGluamVjdChDdWlKVGV4dEFwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBQT09MSU5HX0RFTEFZID0gMTAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgRUxFTUVOVF9TUEFDRV9UT19CT1RUT00gPSAxNTA7XG4gICAgcHJpdmF0ZSByZWFkb25seSBTQ1JPTExfVEhST1RUTEVfVElNRSA9IDIwMDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNSZWFkb25seSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnPy5yZWFkT25seSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbXB0eVF1ZXVlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByaXZhdGUgcG9vbGluZ1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGlzU2tpcENvbWJpbmVkQmxvY2tPbkNoYW5nZTogYm9vbGVhbltdID0gW107XG4gICAgcHJpdmF0ZSBpc0ZpcnN0ID0gdHJ1ZTtcbiAgICBwcml2YXRlIGlzQ2hhbmdpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzU2tpcCA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNSZXF1ZXN0ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRGVzdHJveWVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBibG9ja0lkc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBjb21iaW5lZEJsb2NrcyA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIGluZGV4ID0gMDtcbiAgICBwcml2YXRlIHBhZ2UgPSAwO1xuICAgIHByaXZhdGUgYWRkZWRCbG9ja3M6IEN1aUJsb2NrRGF0YVtdID0gW107XG4gICAgcHJpdmF0ZSB1cGRhdGVkQmxvY2tzOiBDdWlCbG9ja1tdID0gW107XG4gICAgcHJpdmF0ZSByZW1vdmVkQmxvY2tzSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgY2hhbmdlc1F1ZXVlOiBCbG9ja011dGF0aW9uRXZlbnRbXVtdID0gW107XG4gICAgcHJpdmF0ZSBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9ySWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xuXG4gICAgQFZpZXdDaGlsZCgnZWRpdG9yJylcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yUmVmITogRWxlbWVudFJlZjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0b3JFbXB0eSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIGVkaXRvckFwaUlkITogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29uZmlnOiBDdWlFZGl0b3JDb25maWcgPSBERUZBVUxUX0NPTkZJRztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlcXVlc3RTaXplID0gNDA7XG5cbiAgICBwdWJsaWMgZWRpdG9yITogRWRpdG9ySlM7XG4gICAgcHVibGljIGVkaXRvckVsZW1lbnQhOiBIVE1MRWxlbWVudDtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydlZGl0b3JBcGlJZCddIHx8IGNoYW5nZXNbJ2NvbmZpZyddKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRFZGl0b3JDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmRlc3Ryb3lFZGl0b3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2Nyb2xsRXZlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3ZlcmFsbEhlaWdodCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gdGhpcy5FTEVNRU5UX1NQQUNFX1RPX0JPVFRPTTtcbiAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRIZWlnaHQgPCBvdmVyYWxsSGVpZ2h0IHx8IHRoaXMuaXNSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNSZXF1ZXN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnJlcXVlc3RTaXplO1xuICAgICAgICBsZXQgYmxvY2tzQ291bnQgPSAwO1xuXG4gICAgICAgIHRoaXMuZ2V0QmxvY2tzKHRoaXMucGFnZSwgc2l6ZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoYmxvY2tzKSA9PiAoYmxvY2tzQ291bnQgPSBibG9ja3MubGVuZ3RoKSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVxdWVzdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nrc0NvdW50ID49IHNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRWRpdG9yQ2hhbmdlKF86IEFQSSwgZXZlbnQ6IEJsb2NrTXV0YXRpb25FdmVudCB8IEJsb2NrTXV0YXRpb25FdmVudFtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkoKSB8fCB0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudCA9IFtldmVudF07XG4gICAgICAgIH1cblxuICAgICAgICByZWNhbGN1bGF0ZUluZGV4ZXModGhpcy5lZGl0b3IuYmxvY2tzKTtcblxuICAgICAgICBpZiAodGhpcy5pc0NoYW5naW5nKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNRdWV1ZS51bnNoaWZ0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhcnRDaGFuZ2VzKGV2ZW50KTtcbiAgICAgICAgdGhpcy5lZGl0b3JFbXB0eS5lbWl0KHRoaXMuY2hlY2tJc0VtcHR5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25BZGRlZENvbWJpbmVkQmxvY2soZGF0YTogQ3VpQ29tYmluZWRCbG9ja0FkZGluZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2tpcENvbWJpbmVkQmxvY2tPbkNoYW5nZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlLnBvcCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBibG9ja3NXaXRob3V0SWQgPSBkYXRhLmJsb2Nrcy5tYXAoKGJsb2NrKSA9PiAoe1xuICAgICAgICAgICAgYmxvY2s6IHsgLi4uYmxvY2ssIGlkOiB1bmRlZmluZWQgfSxcbiAgICAgICAgICAgIGlkOiBibG9jay5pZCFcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHRoaXMuYWRkZWRCbG9ja3MucHVzaCguLi5ibG9ja3NXaXRob3V0SWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25VcGRhdGVkQ29tYmluZWRCbG9jayh1cGRhdGVkQmxvY2tzOiBDdWlCbG9ja1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghdXBkYXRlZEJsb2Nrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlZEJsb2Nrcy5wdXNoKC4uLnVwZGF0ZWRCbG9ja3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25SZW1vdmVkQ29tYmluZWRCbG9jayhibG9ja0lkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFibG9ja0lkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcy5wdXNoKC4uLmJsb2NrSWRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFZGl0b3JDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmpUZXh0U2VydmljZS5hZGRPcHRpb25zKHRoaXMuY29uZmlnLnJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgICB0aGlzLmVkaXRvciA9IHRoaXMuaW5pdEVkaXRvcih0aGlzLmVkaXRvcklkKTtcbiAgICAgICAgdGhpcy5lZGl0b3IuaXNSZWFkeS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmVkaXRvckVsZW1lbnQgPSB0aGlzLmVkaXRvclJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICB0aGlzLmluaXRFZGl0b3JFdmVudHModGhpcy5lZGl0b3JFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNjcm9sbE9ic2VydmVyKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0UG9vbGluZyh0aGlzLnJlcXVlc3RTaXplKTtcbiAgICAgICAgICAgIHRoaXMuc2V0TGlzdGVuZXJzT25DdXN0b21CbG9ja0NoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RWRpdG9yKGlkOiBzdHJpbmcpOiBFZGl0b3JKUyB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuXG4gICAgICAgIHRoaXMuZGVzdHJveUVkaXRvcigpO1xuICAgICAgICB0aGlzLmVkaXRvciA9IG5ldyBFZGl0b3JKUyh7XG4gICAgICAgICAgICAuLi5nZXRFZGl0b3JDb25maWcoaWQsIGNvbmZpZyksXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkVkaXRvckNoYW5nZS5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTY3JvbGxPYnNlcnZlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY29uZmlnPy5lbGVtZW50ID8/IHRoaXMuZWRpdG9yRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsT2JzZXJ2ZXIgPSBmcm9tRXZlbnQoZWxlbWVudCwgJ3Njcm9sbCcpO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gc2Nyb2xsT2JzZXJ2ZXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kpLFxuICAgICAgICAgICAgICAgIHRocm90dGxlVGltZSh0aGlzLlNDUk9MTF9USFJPVFRMRV9USU1FLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgICAgICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmc6IHRydWVcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5vblNjcm9sbEV2ZW50KGVsZW1lbnQpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEVkaXRvckV2ZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWFkT25seSA9IHRoaXMuaXNSZWFkb25seSgpO1xuXG4gICAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0RWRpdG9yRXZlbnRzKGVsZW1lbnQsIHRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydFBvb2xpbmcoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLmNvbmZpZz8uZWxlbWVudCA/PyB0aGlzLmVkaXRvckVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRQcmVsb2FkID0gdGhpcy5jb25maWc/LndpdGhvdXRQcmVsb2FkO1xuXG4gICAgICAgIHRoaXMucG9vbGluZ1N1YnNjcmlwdGlvbiA9IHRpbWVyKDAsIHRoaXMuUE9PTElOR19ERUxBWSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGNvbmNhdE1hcCgoKSA9PiB0aGlzLmdldEJsb2Nrcyh0aGlzLnBhZ2UsIHNpemUpLnBpcGUoZGVsYXkodGhpcy5QT09MSU5HX0RFTEFZKSkpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnBhZ2UrKyksXG4gICAgICAgICAgICAgICAgdGFrZVdoaWxlKFxuICAgICAgICAgICAgICAgICAgICAoYmxvY2tzKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgIXdpdGhvdXRQcmVsb2FkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodCA8PSBzY3JvbGxFbGVtZW50LmNsaWVudEhlaWdodCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tzLmxlbmd0aCA+PSBzaXplXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXJ0QmxvY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveUVkaXRvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgICAgdGhpcy5yZXNldERhdGEoKTtcbiAgICAgICAgLy8gVE9ETzog0LIg0YDQsNC90LTQvtC8INC60LXQudGB0LDRhSDQv9Cw0LTQsNC10YIg0L7RiNC40LHQutCwINC10YHQu9C4INGD0LHRgNCw0YLRjCDQv9GA0L7QstC10YDQutGDINC90LAg0LLRi9C30L7QsiBkZXN0cm95XG4gICAgICAgIHRoaXMuZWRpdG9yPy5kZXN0cm95Py4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExpc3RlbmVyc09uQ3VzdG9tQmxvY2tDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2V0TGlzdGVuZXJzT25DdXN0b21CbG9ja0NoYW5nZXModGhpcy5lZGl0b3IsIHtcbiAgICAgICAgICAgIHJlbW92ZWRDYWxsYmFjazogdGhpcy5vblJlbW92ZWRDb21iaW5lZEJsb2NrLmJpbmQodGhpcyksXG4gICAgICAgICAgICB1cGRhdGVkQ2FsbGJhY2s6IHRoaXMub25VcGRhdGVkQ29tYmluZWRCbG9jay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgYWRkZWRDYWxsYmFjazogdGhpcy5vbkFkZGVkQ29tYmluZWRCbG9jay5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgc3RhcnRDaGFuZ2VzKGV2ZW50OiBCbG9ja011dGF0aW9uRXZlbnRbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1NraXAgfHwgdGhpcy5pc0NoYW5naW5nKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2tpcCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQ2hhbmdpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0b3JPdXRwdXQgPSBhd2FpdCB0aGlzLmVkaXRvci5zYXZlKCk7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBldmVudC5maWx0ZXIoKGRhdGEpID0+IGRhdGEuZGV0YWlsLnRhcmdldC5uYW1lICE9PSBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tzID0gdGhpcy5lZGl0b3JTZXJ2aWNlLnNvcnRFdmVudHNCeVR5cGVzKGV2ZW50cyk7XG4gICAgICAgICAgICBjb25zdCB7IGFkZEJsb2NrcyQsIGFkZGVkQmxvY2tzIH0gPSB0aGlzLmNvbGxlY3RBZGRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzLCBlZGl0b3JPdXRwdXQpO1xuXG4gICAgICAgICAgICB0aGlzLmFkZGVkQmxvY2tzID0gW107XG5cbiAgICAgICAgICAgIGFkZEJsb2NrcyRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKChibG9ja0lkcykgPT4gdGhpcy5zZXRCbG9ja0lkc1RvTWFwKGJsb2NrSWRzLCBhZGRlZEJsb2NrcykpLFxuICAgICAgICAgICAgICAgICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5jb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzLCBlZGl0b3JPdXRwdXQpKSxcbiAgICAgICAgICAgICAgICAgICAgY29uY2F0TWFwKCgpID0+IHRoaXMuY29sbGVjdFJlbW92ZWRCbG9ja3NSZXF1ZXN0KGJsb2NrcykpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5zdGFydE5leHRDaGFuZ2UoKSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuc3RhcnROZXh0Q2hhbmdlKClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydE5leHRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDaGFuZ2luZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG5leHRFdmVudHMgPSB0aGlzLmNoYW5nZXNRdWV1ZS5wb3AoKTtcblxuICAgICAgICBpZiAobmV4dEV2ZW50cykge1xuICAgICAgICAgICAgdGhpcy5zdGFydENoYW5nZXMobmV4dEV2ZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtcHR5UXVldWUubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbGxlY3RBZGRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzOiBDdWlFdmVudEFjdGlvbkRhdGEsIGVkaXRvck91dHB1dDogT3V0cHV0RGF0YSk6IEN1aUJsb2Nrc1JlcXVlc3REYXRhIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEJsb2Nrc1dpdGhJbmRleCA9IGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXS5tYXAoKGFkZGVkQmxvY2spID0+XG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0RnVsbEJsb2NrRGF0YShhZGRlZEJsb2NrLCBlZGl0b3JPdXRwdXQpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkQmxvY2tzV2l0aEluZGV4ID0gdGhpcy5hZGRlZEJsb2Nrcy5tYXAoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lZGl0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWlkPVwiJHtibG9jay5pZH1cIl1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGVsZW1lbnQ/LmRhdGFzZXRbJ2luZGV4J10pO1xuXG4gICAgICAgICAgICByZXR1cm4geyAuLi5ibG9jaywgaW5kZXggfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYWRkZWRCbG9ja3MgPSBbLi4uZGVmYXVsdEJsb2Nrc1dpdGhJbmRleCwgLi4uY29tYmluZWRCbG9ja3NXaXRoSW5kZXhdLnNvcnQoXG4gICAgICAgICAgICAoZmlyc3QsIHNlY29uZCkgPT4gZmlyc3QuaW5kZXggLSBzZWNvbmQuaW5kZXhcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYWRkQmxvY2tzJCA9IHRoaXMuZWRpdG9yU2VydmljZS5jb2xsZWN0QWRkZWRCbG9ja3NSZXF1ZXN0KHRoaXMuZWRpdG9yQXBpSWQsIGFkZGVkQmxvY2tzKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWRkZWRCbG9ja3MsXG4gICAgICAgICAgICBhZGRCbG9ja3MkXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzOiBDdWlFdmVudEFjdGlvbkRhdGEsIGVkaXRvck91dHB1dDogT3V0cHV0RGF0YSk6IE9ic2VydmFibGU8Q3VpQmxvY2tbXT4ge1xuICAgICAgICBibG9ja3NbRXZlbnRBY3Rpb25zLnVwZGF0ZV0uZm9yRWFjaCgodXBkYXRlQmxvY2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgaWQsIGJsb2NrIH0gPSB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0RnVsbEJsb2NrRGF0YSh1cGRhdGVCbG9jaywgZWRpdG9yT3V0cHV0KTtcbiAgICAgICAgICAgIGJsb2NrLmlkID0gaWQ7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlZEJsb2Nrcy5wdXNoKGJsb2NrKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlQmxvY2tzJCA9IHRoaXMuZWRpdG9yU2VydmljZS5jb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QodGhpcy51cGRhdGVkQmxvY2tzLCB0aGlzLmJsb2NrSWRzTWFwKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZWRCbG9ja3MgPSBbXTtcblxuICAgICAgICByZXR1cm4gdXBkYXRlQmxvY2tzJDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbGxlY3RSZW1vdmVkQmxvY2tzUmVxdWVzdChibG9ja3M6IEN1aUV2ZW50QWN0aW9uRGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBibG9ja3NbRXZlbnRBY3Rpb25zLnJlbW92ZV0uZm9yRWFjaCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gYmxvY2suZGV0YWlsLnRhcmdldC5pZDtcblxuICAgICAgICAgICAgdGhpcy5yZW1vdmVkQmxvY2tzSWRzLnB1c2goaWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZW1vdmVCbG9ja3MkID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmNvbGxlY3RSZW1vdmVkQmxvY2tzUmVxdWVzdChcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yQXBpSWQsXG4gICAgICAgICAgICB0aGlzLnJlbW92ZWRCbG9ja3NJZHMsXG4gICAgICAgICAgICB0aGlzLmJsb2NrSWRzTWFwXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcyA9IFtdO1xuXG4gICAgICAgIHJldHVybiByZW1vdmVCbG9ja3MkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmxvY2tzKHBhZ2UgPSAwLCBzaXplID0gNDApOiBPYnNlcnZhYmxlPEN1aUJsb2NrW10+IHtcbiAgICAgICAgbGV0IGNvbWJpbmVkQmxvY2s6IEN1aU51bGxhYmxlPEN1aUJsb2NrPjtcblxuICAgICAgICByZXR1cm4gdGhpcy5qVGV4dFNlcnZpY2UuZ2V0QmxvY2tzKHRoaXMuZWRpdG9yQXBpSWQsIHBhZ2UsIHNpemUpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29tYmluZWRCbG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlY2FsY3VsYXRlSW5kZXhlcyh0aGlzLmVkaXRvci5ibG9ja3MpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja0RhdGEgPSBibG9jay5kYXRhIGFzIHsgcGFyZW50SWQ6IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21iaW5lZEJsb2NrICYmIGJsb2NrRGF0YS5wYXJlbnRJZCEgIT09IGNvbWJpbmVkQmxvY2s/LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZEJsb2NrID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSB0aGlzLnNldENvbWJpbmVkQmxvY2soYmxvY2spO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tYmluZWRCbG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuYWRkQmxvY2soYmxvY2spO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0b0FycmF5KClcbiAgICAgICAgKSBhcyB1bmtub3duIGFzIE9ic2VydmFibGU8Q3VpQmxvY2tbXT47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRCbG9jayhibG9jazogQ3VpQmxvY2spOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBibG9jay50eXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibG9ja0lkc01hcC5zZXQoYmxvY2suaWQhLCBibG9jay5pZCEpO1xuICAgICAgICB0aGlzLmluc2VydChibG9jayk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDb21iaW5lZEJsb2NrKGNvbWJpbmVkQmxvY2s6IEN1aUJsb2NrKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlLnB1c2godHJ1ZSk7XG4gICAgICAgIGNvbnN0IGJsb2NrID0gdGhpcy5lZGl0b3IuYmxvY2tzLmdldEJ5SWQoY29tYmluZWRCbG9jay5pZCB8fCAnJyk7XG5cbiAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5ibG9ja3MudXBkYXRlKGJsb2NrLmlkLCBjb21iaW5lZEJsb2NrLmRhdGEgYXMgQ3VpQ29tYmluZWRQYXJ0QmxvY2spO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc2VydChjb21iaW5lZEJsb2NrKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydChibG9jazogQ3VpQmxvY2spOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja0ZpcnN0KGJsb2NrKTtcbiAgICAgICAgdGhpcy5pbmRleCsrO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGaXJzdChibG9jazogQ3VpQmxvY2spOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmlyc3QpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTa2lwID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yLmJsb2Nrcy5pbnNlcnQoYmxvY2sudHlwZSwgYmxvY2suZGF0YSwge30sIHRoaXMuaW5kZXgsIGZhbHNlLCBmYWxzZSwgYmxvY2suaWQpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPOiDQtdGB0YLRjCDQstCw0YDQuNC6INGH0YLQviDRh9GC0L4g0YLQviDQv9C+0LnQtNC10YIg0L3QtSDRgtCw0LpcbiAgICAgICAgdGhpcy5lZGl0b3IuYmxvY2tzLnJlbmRlcih7IGJsb2NrczogW2Jsb2NrXSB9KS50aGVuKCgpID0+ICh0aGlzLmlzU2tpcCA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaXNGaXJzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29tYmluZWRCbG9jayhibG9jazogQ3VpQmxvY2spOiBDdWlCbG9jayB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkQmxvY2tEYXRhID0gYmxvY2suZGF0YSBhcyB7IHBhcmVudElkOiBzdHJpbmcgfTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5jb21iaW5lZEJsb2Nrcy5nZXQoY29tYmluZWRCbG9ja0RhdGEucGFyZW50SWQpO1xuXG4gICAgICAgIHRoaXMuYmxvY2tJZHNNYXAuc2V0KGJsb2NrLmlkISwgYmxvY2suaWQhKTtcblxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnREYXRhID0gcGFyZW50LmRhdGEgYXMgeyB0ZXh0QmxvY2tzOiBDdWlCbG9ja1tdIH07XG4gICAgICAgICAgICBwYXJlbnREYXRhLnRleHRCbG9ja3MucHVzaChibG9jayk7XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnRPYmplY3Q6IEN1aUJsb2NrID0ge1xuICAgICAgICAgICAgaWQ6IGNvbWJpbmVkQmxvY2tEYXRhLnBhcmVudElkLFxuICAgICAgICAgICAgdHlwZTogQ09NQklORURfVEVYVF9CTE9DS19OQU1FLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGlkOiBjb21iaW5lZEJsb2NrRGF0YS5wYXJlbnRJZCxcbiAgICAgICAgICAgICAgICB0ZXh0QmxvY2tzOiBbYmxvY2tdXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5jb21iaW5lZEJsb2Nrcy5zZXQoY29tYmluZWRCbG9ja0RhdGEucGFyZW50SWQsIHBhcmVudE9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudE9iamVjdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEJsb2NrSWRzVG9NYXAoYmxvY2tJZHM6IHN0cmluZ1tdLCBhZGRlZEJsb2NrczogQ3VpRnVsbEJsb2NrRGF0YVtdKTogdm9pZCB7XG4gICAgICAgIGlmICghYmxvY2tJZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhZGRlZEJsb2Nrcy5mb3JFYWNoKChibG9ja0RhdGEsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJsb2NrSWRzTWFwLnNldChibG9ja0RhdGEuaWQsIGJsb2NrSWRzW2luZGV4XSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3RhcnRCbG9jaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tJZHNNYXAuc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRGb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JFbXB0eS5lbWl0KHRoaXMuY2hlY2tJc0VtcHR5KCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yLnJlbmRlcih7IGJsb2NrczogW10gfSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zZXRTdGFydEJsb2NrKFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JBcGlJZCxcbiAgICAgICAgICAgIGFzeW5jIChibG9jazogQ3VpQmxvY2s8Q3VpQ29tYmluZWRCbG9ja1Rvb2xEYXRhPiwgaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tJZHNNYXAuc2V0KGlkLCBpZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1NraXBDb21iaW5lZEJsb2NrT25DaGFuZ2UucHVzaCh0cnVlKTtcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZWRpdG9yLnJlbmRlcih7IGJsb2NrczogW2Jsb2NrXSB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICByZWNhbGN1bGF0ZUluZGV4ZXModGhpcy5lZGl0b3IuYmxvY2tzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnPy5hdXRvZm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yLmNhcmV0LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0lzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IE1JTl9CTE9DS1NfQ09VTlQgPSAxO1xuICAgICAgICBjb25zdCBSRURBQ1RPUl9TRUxFQ1RPUiA9ICcuY29kZXgtZWRpdG9yX19yZWRhY3Rvcic7XG4gICAgICAgIGNvbnN0IHJlZGFjdG9yID0gdGhpcy5lZGl0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoUkVEQUNUT1JfU0VMRUNUT1IpO1xuICAgICAgICBjb25zdCBibG9ja3NDb3VudCA9IHJlZGFjdG9yPy5jaGlsZEVsZW1lbnRDb3VudCA/PyAwO1xuXG4gICAgICAgIHJldHVybiBibG9ja3NDb3VudCA8PSBNSU5fQkxPQ0tTX0NPVU5UICYmICFyZWRhY3Rvcj8udGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnBvb2xpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlID0gW107XG4gICAgICAgIHRoaXMuaXNGaXJzdCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNDaGFuZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2tpcCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUmVxdWVzdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmxvY2tJZHNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICB0aGlzLmNvbWJpbmVkQmxvY2tzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgdGhpcy5hZGRlZEJsb2NrcyA9IFtdO1xuICAgICAgICB0aGlzLnVwZGF0ZWRCbG9ja3MgPSBbXTtcbiAgICAgICAgdGhpcy5yZW1vdmVkQmxvY2tzSWRzID0gW107XG4gICAgICAgIHRoaXMuY2hhbmdlc1F1ZXVlID0gW107XG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAjZWRpdG9yXG4gICAgW2lkXT1cImVkaXRvcklkXCJcbiAgICBkYXRhLWVkaXRvclxuICAgIFtjbGFzcy5fcmVhZG9ubHldPVwiY29uZmlnLnJlYWRPbmx5XCJcbj48L2Rpdj5cbiJdfQ==
@@ -1,10 +1,9 @@
1
1
  export * from './interfaces';
2
2
  export { CuiEditorComponent } from './editor.component';
3
- export { cuiProvideEditor } from './config';
4
3
  export { CuiFileUploaderStatus } from './utils';
5
4
  export { CuiEditorTranslations } from './constants';
6
5
  export { CuiAttachesTool, CuiHeaderTool, CuiImageTool, CuiVideoTool, CuiListTool, CuiLinkMarker, CuiToolMarker, CuiRoleMarker } from './tools';
7
6
  export { CuiEditorReadonlyComponent, CuiEditorBlockComponent, CuiEditorModalComponent } from './widgets';
8
7
  export * from './providers';
9
8
  export { CuiEditorToolsService } from './services';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsRUFDaEIsTUFBTSxTQUFTLENBQUM7QUFHakIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pHLGNBQWMsYUFBYSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmV4cG9ydCB7IEN1aUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IGN1aVByb3ZpZGVFZGl0b3IgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmV4cG9ydCB7IEN1aUZpbGVVcGxvYWRlclN0YXR1cyB9IGZyb20gJy4vdXRpbHMnO1xyXG5leHBvcnQgeyBDdWlFZGl0b3JUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XHJcbmV4cG9ydCB7XHJcbiAgICBDdWlBdHRhY2hlc1Rvb2wsXHJcbiAgICBDdWlIZWFkZXJUb29sLFxyXG4gICAgQ3VpSW1hZ2VUb29sLFxyXG4gICAgQ3VpVmlkZW9Ub29sLFxyXG4gICAgQ3VpTGlzdFRvb2wsXHJcbiAgICBDdWlMaW5rTWFya2VyLFxyXG4gICAgQ3VpVG9vbE1hcmtlcixcclxuICAgIEN1aVJvbGVNYXJrZXJcclxufSBmcm9tICcuL3Rvb2xzJztcclxuZXhwb3J0IHR5cGUgeyBDdWlFZGl0b3JSZWFkb25seUNvbmZpZyB9IGZyb20gJy4vd2lkZ2V0cyc7XHJcbmV4cG9ydCB7IEN1aVZpZGVvVG9vbENvbmZpZywgQ3VpQXR0YWNoZXNUb29sQ29uZmlnLCBDdWlJbWFnZVRvb2xDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgeyBDdWlFZGl0b3JSZWFkb25seUNvbXBvbmVudCwgQ3VpRWRpdG9yQmxvY2tDb21wb25lbnQsIEN1aUVkaXRvck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5leHBvcnQgeyBDdWlFZGl0b3JUb29sc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFDSCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxFQUNoQixNQUFNLFNBQVMsQ0FBQztBQUdqQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekcsY0FBYyxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuZXhwb3J0IHsgQ3VpRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3IuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ3VpRmlsZVVwbG9hZGVyU3RhdHVzIH0gZnJvbSAnLi91dGlscyc7XHJcbmV4cG9ydCB7IEN1aUVkaXRvclRyYW5zbGF0aW9ucyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuZXhwb3J0IHtcclxuICAgIEN1aUF0dGFjaGVzVG9vbCxcclxuICAgIEN1aUhlYWRlclRvb2wsXHJcbiAgICBDdWlJbWFnZVRvb2wsXHJcbiAgICBDdWlWaWRlb1Rvb2wsXHJcbiAgICBDdWlMaXN0VG9vbCxcclxuICAgIEN1aUxpbmtNYXJrZXIsXHJcbiAgICBDdWlUb29sTWFya2VyLFxyXG4gICAgQ3VpUm9sZU1hcmtlclxyXG59IGZyb20gJy4vdG9vbHMnO1xyXG5leHBvcnQgdHlwZSB7IEN1aUVkaXRvclJlYWRvbmx5Q29uZmlnIH0gZnJvbSAnLi93aWRnZXRzJztcclxuZXhwb3J0IHsgQ3VpVmlkZW9Ub29sQ29uZmlnLCBDdWlBdHRhY2hlc1Rvb2xDb25maWcsIEN1aUltYWdlVG9vbENvbmZpZyB9IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmV4cG9ydCB7IEN1aUVkaXRvclJlYWRvbmx5Q29tcG9uZW50LCBDdWlFZGl0b3JCbG9ja0NvbXBvbmVudCwgQ3VpRWRpdG9yTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmV4cG9ydCB7IEN1aUVkaXRvclRvb2xzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtYmxvY2stYWRkaW5nLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9jb21iaW5lZC1ibG9jay1hZGRpbmctZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmxvY2sgfSBmcm9tICcuLi9zZXJ2aWNlcy9qdGV4dC1hcGkub3B0aW9ucyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1aUNvbWJpbmVkQmxvY2tBZGRpbmdFdmVudCB7XHJcbiAgICByZWFkb25seSBpbmRleDogbnVtYmVyO1xyXG4gICAgcmVhZG9ubHkgYmxvY2tJbmRleDogbnVtYmVyO1xyXG4gICAgcmVhZG9ubHkgYmxvY2tzOiBCbG9ja1tdO1xyXG4gICAgcmVhZG9ubHkgZGF0YTogQmxvY2tbXTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtYmxvY2stYWRkaW5nLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9jb21iaW5lZC1ibG9jay1hZGRpbmctZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1aUJsb2NrIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQ29tYmluZWRCbG9ja0FkZGluZ0V2ZW50IHtcclxuICAgIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XHJcbiAgICByZWFkb25seSBibG9ja0luZGV4OiBudW1iZXI7XHJcbiAgICByZWFkb25seSBibG9ja3M6IEN1aUJsb2NrW107XHJcbiAgICByZWFkb25seSBkYXRhOiBDdWlCbG9ja1tdO1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtcGFydC1ibG9jay1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9jb21iaW5lZC1wYXJ0LWJsb2NrLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmxvY2sgfSBmcm9tICcuLi9zZXJ2aWNlcy9qdGV4dC1hcGkub3B0aW9ucyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1aUNvbWJpbmVkUGFydEJsb2NrRGF0YSB7XHJcbiAgICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XHJcbiAgICByZWFkb25seSBwYXJlbnRJZDogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHkgcGFyZW50VHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDdWlDb21iaW5lZFBhcnRCbG9jayA9IEJsb2NrPEN1aUNvbWJpbmVkUGFydEJsb2NrRGF0YT47XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtcGFydC1ibG9jay1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9jb21iaW5lZC1wYXJ0LWJsb2NrLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1aUJsb2NrIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQ29tYmluZWRQYXJ0QmxvY2tEYXRhIHtcclxuICAgIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IHBhcmVudElkOiBzdHJpbmc7XHJcbiAgICByZWFkb25seSBwYXJlbnRUeXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEN1aUNvbWJpbmVkUGFydEJsb2NrID0gQ3VpQmxvY2s8Q3VpQ29tYmluZWRQYXJ0QmxvY2tEYXRhPjtcclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbC1ibG9jay1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9mdWxsLWJsb2NrLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmxvY2sgfSBmcm9tICcuLi9zZXJ2aWNlcy9qdGV4dC1hcGkub3B0aW9ucyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1aUZ1bGxCbG9ja0RhdGEgZXh0ZW5kcyBDdWlCbG9ja0RhdGEge1xyXG4gICAgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWlCbG9ja0RhdGEge1xyXG4gICAgcmVhZG9ubHkgaWQ6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IGJsb2NrOiBCbG9jaztcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbC1ibG9jay1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9mdWxsLWJsb2NrLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1aUJsb2NrIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpRnVsbEJsb2NrRGF0YSBleHRlbmRzIEN1aUJsb2NrRGF0YSB7XHJcbiAgICByZWFkb25seSBpbmRleDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1aUJsb2NrRGF0YSB7XHJcbiAgICByZWFkb25seSBpZDogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHkgYmxvY2s6IEN1aUJsb2NrO1xyXG59XHJcbiJdfQ==
@@ -12,4 +12,4 @@ export * from './parent';
12
12
  export * from './tools';
13
13
  export * from './tune';
14
14
  export * from './editor-service';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmxvY2tzLXJlcXVlc3QtZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tYmluZWQtYmxvY2stYWRkaW5nLWV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lZC1ibG9jay1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lZC1wYXJ0LWJsb2NrLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LWFjdGlvbi1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLXJlc3BvbnNlLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Z1bGwtYmxvY2stZGF0YSc7XHJcbmV4cG9ydCB7IEN1aUVkaXRvckNvbmZpZywgQ3VpUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL21haW4tZWRpdG9yLWNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLWVsZW1lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FuZ3VsYXItZWxlbWVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbXV0YXRpb24tYWN0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFyZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90b29scyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHVuZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLXNlcnZpY2UnO1xyXG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmxvY2tzLXJlcXVlc3QtZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tYmluZWQtYmxvY2stYWRkaW5nLWV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lZC1ibG9jay1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lZC1wYXJ0LWJsb2NrLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LWFjdGlvbi1kYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLXJlc3BvbnNlLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Z1bGwtYmxvY2stZGF0YSc7XHJcbmV4cG9ydCB7IEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4vbWFpbi1lZGl0b3ItY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tZWxlbWVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYW5ndWxhci1lbGVtZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tdXRhdGlvbi1hY3Rpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXJlbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Rvb2xzJztcclxuZXhwb3J0ICogZnJvbSAnLi90dW5lJztcclxuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3Itc2VydmljZSc7XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1lZGl0b3ItY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9tYWluLWVkaXRvci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgdHlwZSB7IEN1aVRvb2xzIH0gZnJvbSAnLi90b29scyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1aUVkaXRvckNvbmZpZyB7XHJcbiAgICByZWFkb25seSB0b29scz86IEN1aVRvb2xzO1xyXG4gICAgcmVhZG9ubHkgcmVhZE9ubHk/OiBib29sZWFuO1xyXG4gICAgcmVhZG9ubHkgYXV0b2ZvY3VzPzogYm9vbGVhbjtcclxuICAgIHJlYWRvbmx5IGVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcclxuICAgIHJlYWRvbmx5IHdpdGhvdXRQcmVsb2FkPzogYm9vbGVhbjtcclxuICAgIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHkgcmVhZG9ubHlQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIHJlYWRvbmx5IHJlcXVlc3RPcHRpb25zPzogQ3VpUmVxdWVzdE9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpUmVxdWVzdE9wdGlvbnMge1xyXG4gICAgcmVhZG9ubHkgY29udGV4dD86IEh0dHBDb250ZXh0O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1lZGl0b3ItY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvaW50ZXJmYWNlcy9tYWluLWVkaXRvci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1aUFwaUNvbnRleHQgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlUb29scyB9IGZyb20gJy4vdG9vbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWlFZGl0b3JDb25maWcge1xyXG4gICAgcmVhZG9ubHkgdG9vbHM/OiBDdWlUb29scztcclxuICAgIHJlYWRvbmx5IHJlYWRPbmx5PzogYm9vbGVhbjtcclxuICAgIHJlYWRvbmx5IGF1dG9mb2N1cz86IGJvb2xlYW47XHJcbiAgICByZWFkb25seSBlbGVtZW50PzogSFRNTEVsZW1lbnQ7XHJcbiAgICByZWFkb25seSB3aXRob3V0UHJlbG9hZD86IGJvb2xlYW47XHJcbiAgICByZWFkb25seSBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIHJlYWRvbmx5IHJlYWRvbmx5UGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICByZWFkb25seSByZXF1ZXN0T3B0aW9ucz86IEN1aUFwaUNvbnRleHQ7XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ import { CUI_RESOURCE_URL } from './editor-provider.options';
2
+ export function provideCuiEditorResourceUrl(resourceUrl) {
3
+ return { provide: CUI_RESOURCE_URL, useValue: resourceUrl };
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXJlc291cmNlLXVybC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Byb3ZpZGVycy9lZGl0b3ItcmVzb3VyY2UtdXJsLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxXQUFtQjtJQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENVSV9SRVNPVVJDRV9VUkwgfSBmcm9tICcuL2VkaXRvci1wcm92aWRlci5vcHRpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDdWlFZGl0b3JSZXNvdXJjZVVybChyZXNvdXJjZVVybDogc3RyaW5nKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7IHByb3ZpZGU6IENVSV9SRVNPVVJDRV9VUkwsIHVzZVZhbHVlOiByZXNvdXJjZVVybCB9O1xufVxuIl19
@@ -1,5 +1,19 @@
1
- import { CUI_RESOURCE_URL } from './editor-provider.options';
2
- export function provideCuiEditorResourceUrl(resourceUrl) {
3
- return { provide: CUI_RESOURCE_URL, useValue: resourceUrl };
1
+ import { APP_INITIALIZER, Injector } from '@angular/core';
2
+ import { createCustomElement } from '@angular/elements';
3
+ import { EDITOR_CUSTOM_ELEMENTS } from '../config/custom-elements';
4
+ export function cuiProvideEditor() {
5
+ return [
6
+ {
7
+ provide: APP_INITIALIZER,
8
+ useFactory: (injector) => () => {
9
+ EDITOR_CUSTOM_ELEMENTS.forEach(({ component, selector }) => {
10
+ const element = createCustomElement(component, { injector });
11
+ window.customElements.define(selector, element);
12
+ });
13
+ },
14
+ deps: [Injector],
15
+ multi: true
16
+ }
17
+ ];
4
18
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvcHJvdmlkZXJzL2VkaXRvci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsV0FBbUI7SUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDVUlfUkVTT1VSQ0VfVVJMIH0gZnJvbSAnLi9lZGl0b3ItcHJvdmlkZXIub3B0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ3VpRWRpdG9yUmVzb3VyY2VVcmwocmVzb3VyY2VVcmw6IHN0cmluZyk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4geyBwcm92aWRlOiBDVUlfUkVTT1VSQ0VfVVJMLCB1c2VWYWx1ZTogcmVzb3VyY2VVcmwgfTtcbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvcHJvdmlkZXJzL2VkaXRvci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSxNQUFNLFVBQVUsZ0JBQWdCO0lBQzVCLE9BQU87UUFDSDtZQUNJLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtvQkFDdkQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFFN0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcclxuXHJcbmltcG9ydCB7IEVESVRPUl9DVVNUT01fRUxFTUVOVFMgfSBmcm9tICcuLi9jb25maWcvY3VzdG9tLWVsZW1lbnRzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjdWlQcm92aWRlRWRpdG9yKCk6IFByb3ZpZGVyIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpbmplY3RvcjogSW5qZWN0b3IpID0+ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIEVESVRPUl9DVVNUT01fRUxFTUVOVFMuZm9yRWFjaCgoeyBjb21wb25lbnQsIHNlbGVjdG9yIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gY3JlYXRlQ3VzdG9tRWxlbWVudChjb21wb25lbnQsIHsgaW5qZWN0b3IgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoc2VsZWN0b3IsIGVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxufVxyXG4iXX0=
@@ -1,3 +1,4 @@
1
- export * from './editor.provider';
1
+ export * from './editor-resource-url.provider';
2
2
  export * from './editor-provider.options';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3ItcHJvdmlkZXIub3B0aW9ucyc7XG4iXX0=
3
+ export * from './editor.provider';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci1yZXNvdXJjZS11cmwucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3ItcHJvdmlkZXIub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci5wcm92aWRlcic7XG4iXX0=
@@ -1,9 +1,9 @@
1
1
  import { DestroyRef, Injectable, inject } from '@angular/core';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { forkJoin, of } from 'rxjs';
4
+ import { CuiJTextApiService } from '@cuby-ui/api';
4
5
  import { COMBINED_TEXT_BLOCK_ADDED, COMBINED_TEXT_BLOCK_NAME, COMBINED_TEXT_BLOCK_PART, COMBINED_TEXT_BLOCK_REMOVED, COMBINED_TEXT_BLOCK_UPDATED } from '../constants';
5
6
  import { generateId } from '../utils/generate-id';
6
- import { CuiJTextApiService } from './jtext-api.service';
7
7
  import * as i0 from "@angular/core";
8
8
  export class CuiEditorService {
9
9
  constructor() {
@@ -135,4 +135,4 @@ export class CuiEditorService {
135
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiEditorService, decorators: [{
136
136
  type: Injectable
137
137
  }] });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9zZXJ2aWNlcy9lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUNILHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDOUIsTUFBTSxjQUFjLENBQUM7QUFRdEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUl6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRXFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQXdLOUQ7SUF0S1UsaUJBQWlCLENBQUMsTUFBNEI7UUFDakQsTUFBTSxNQUFNLEdBQXVCO1lBQy9CLGVBQWUsRUFBRSxFQUFFO1lBQ25CLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLGVBQWUsRUFBRSxFQUFFO1NBQ3RCLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssd0JBQXdCLEVBQUUsQ0FBQztnQkFDOUQsT0FBTztZQUNYLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBRW5DLElBQUksU0FBUyw4Q0FBd0IsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLFlBQVksR0FBRyxNQUFNLHNDQUFrQixDQUFDLElBQUksQ0FDOUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ3JFLENBQUM7Z0JBRUYsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDZixPQUFPO2dCQUNYLENBQUM7WUFDTCxDQUFDO1lBRUQsSUFBSSxTQUFTLDhDQUF3QixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sR0FBRyxHQUFHLE1BQU0sc0NBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUU1QyxNQUFNLHNDQUFrQixHQUFHLE1BQU0sc0NBQWtCLENBQUMsTUFBTSxDQUN0RCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDckUsQ0FBQztnQkFFRixJQUFJLEdBQUcsR0FBRyxNQUFNLHNDQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4QyxPQUFPO2dCQUNYLENBQUM7WUFDTCxDQUFDO1lBRUQsTUFBTSxDQUFDLFNBQXlCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0seUJBQXlCLENBQUMsUUFBZ0IsRUFBRSxXQUErQjtRQUM5RSxNQUFNLGFBQWEsR0FBRztZQUNsQixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSztZQUMvQixLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN6QyxDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUvRixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRU0sMkJBQTJCLENBQUMsYUFBc0IsRUFBRSxXQUFnQztRQUN2RixNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDNUQsTUFBTSxXQUFXLEdBQUc7Z0JBQ2hCLEdBQUcsS0FBSztnQkFDUixFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRyxDQUFDO2FBQ2pDLENBQUM7WUFFRixJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBYSxDQUFDLENBQUM7UUFFbEIsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkcsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFTSwyQkFBMkIsQ0FDOUIsUUFBZ0IsRUFDaEIsZ0JBQTBCLEVBQzFCLFdBQWdDO1FBRWhDLE1BQU0sYUFBYSxHQUFhLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMxRSxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBVyxDQUFDO1lBRXJELElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEVBQWMsQ0FBQyxDQUFDO1FBRW5CLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFNUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ25DLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBeUIsRUFBRSxVQUFzQjtRQUNyRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBSSxLQUFLLENBQUMsTUFBdUMsQ0FBQyxLQUFLLENBQUM7UUFDeEUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsRUFBRSxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFMUcsT0FBTztZQUNILEtBQUs7WUFDTCxFQUFFLEVBQUUsT0FBTztZQUNYLEtBQUssRUFBRTtnQkFDSCxJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNsQjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sZ0NBQWdDLENBQ25DLE1BQWdCLEVBQ2hCLElBSUM7UUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3RCxNQUFNLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sYUFBYSxDQUNoQixRQUFnQixFQUNoQixRQUFzRTtRQUV0RSxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixNQUFNLFVBQVUsR0FBeUI7WUFDckMsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixJQUFJLEVBQUU7Z0JBQ0YsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFVBQVUsRUFBRSx3QkFBd0I7YUFDdkM7U0FDSixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUc7WUFDVCxRQUFRLEVBQUUsQ0FBQztZQUNYLEtBQUssRUFBRSxVQUFVO1lBQ2pCLGdCQUFnQixFQUFFLFFBQVE7U0FDN0IsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZO2FBQ1osV0FBVyxDQUFDLElBQUksQ0FBQzthQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ2QsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFbkIsTUFBTSxLQUFLLEdBQW9DO2dCQUMzQyxFQUFFLEVBQUUsT0FBTztnQkFDWCxJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixJQUFJLEVBQUU7b0JBQ0YsRUFBRSxFQUFFLE9BQU87b0JBQ1gsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUMzQjthQUNKLENBQUM7WUFFRixRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0F6S1EsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgdHlwZSBFZGl0b3JKUyBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xyXG5pbXBvcnQgdHlwZSB7IEJsb2NrTXV0YXRpb25FdmVudCwgT3V0cHV0RGF0YSB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XHJcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX0FEREVELFxyXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19OQU1FLFxyXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19QQVJULFxyXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19SRU1PVkVELFxyXG4gICAgQ09NQklORURfVEVYVF9CTE9DS19VUERBVEVEXHJcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHR5cGUge1xyXG4gICAgQ3VpQ29tYmluZWRCbG9ja0FkZGluZ0V2ZW50LFxyXG4gICAgQ3VpQ29tYmluZWRCbG9ja1Rvb2xEYXRhLFxyXG4gICAgQ3VpQ29tYmluZWRQYXJ0QmxvY2ssXHJcbiAgICBDdWlFdmVudEFjdGlvbkRhdGEsXHJcbiAgICBDdWlGdWxsQmxvY2tEYXRhXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGdlbmVyYXRlSWQgfSBmcm9tICcuLi91dGlscy9nZW5lcmF0ZS1pZCc7XHJcbmltcG9ydCB0eXBlIHsgQmxvY2sgfSBmcm9tICcuL2p0ZXh0LWFwaS5vcHRpb25zJztcclxuaW1wb3J0IHsgQ3VpSlRleHRBcGlTZXJ2aWNlIH0gZnJvbSAnLi9qdGV4dC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEV2ZW50QWN0aW9ucyB9IGZyb20gJy4vZWRpdG9yLXNlcnZpY2Uub3B0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkganRleHRTZXJ2aWNlID0gaW5qZWN0KEN1aUpUZXh0QXBpU2VydmljZSk7XHJcblxyXG4gICAgcHVibGljIHNvcnRFdmVudHNCeVR5cGVzKGV2ZW50czogQmxvY2tNdXRhdGlvbkV2ZW50W10pOiBDdWlFdmVudEFjdGlvbkRhdGEge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrczogQ3VpRXZlbnRBY3Rpb25EYXRhID0ge1xyXG4gICAgICAgICAgICAnYmxvY2stcmVtb3ZlZCc6IFtdLFxyXG4gICAgICAgICAgICAnYmxvY2stYWRkZWQnOiBbXSxcclxuICAgICAgICAgICAgJ2Jsb2NrLWNoYW5nZWQnOiBbXVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGV2ZW50cy5mb3JFYWNoKChlZGl0b3JFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZWRpdG9yRXZlbnQuZGV0YWlsLnRhcmdldC5uYW1lID09PSBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgZXZlbnRUeXBlID0gZWRpdG9yRXZlbnQudHlwZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT09IEV2ZW50QWN0aW9ucy51cGRhdGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRCbG9jayA9IGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXS5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIChibG9jaykgPT4gYmxvY2suZGV0YWlsLnRhcmdldC5pZCA9PT0gZWRpdG9yRXZlbnQuZGV0YWlsLnRhcmdldC5pZFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoY2hhbmdlZEJsb2NrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09PSBFdmVudEFjdGlvbnMucmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZW4gPSBibG9ja3NbRXZlbnRBY3Rpb25zLmFkZF0ubGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgICAgIGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXSA9IGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKGJsb2NrKSA9PiBibG9jay5kZXRhaWwudGFyZ2V0LmlkICE9PSBlZGl0b3JFdmVudC5kZXRhaWwudGFyZ2V0LmlkXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsZW4gPiBibG9ja3NbRXZlbnRBY3Rpb25zLmFkZF0ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBibG9ja3NbZXZlbnRUeXBlIGFzIEV2ZW50QWN0aW9uc10ucHVzaChlZGl0b3JFdmVudCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBibG9ja3M7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RBZGRlZEJsb2Nrc1JlcXVlc3QoZWRpdG9ySWQ6IHN0cmluZywgYWRkZWRCbG9ja3M6IEN1aUZ1bGxCbG9ja0RhdGFbXSk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgICAgICBjb25zdCBhZGRCbG9ja3NCb2R5ID0ge1xyXG4gICAgICAgICAgICBqdGV4dENvbnRhaW5lcklkOiBlZGl0b3JJZCxcclxuICAgICAgICAgICAgcG9zaXRpb246IGFkZGVkQmxvY2tzWzBdPy5pbmRleCxcclxuICAgICAgICAgICAgYmxvY2s6IGFkZGVkQmxvY2tzLm1hcCgoZSkgPT4gZS5ibG9jaylcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGFkZEJsb2NrcyQgPSBhZGRlZEJsb2Nrcy5sZW5ndGggPyB0aGlzLmp0ZXh0U2VydmljZS5jcmVhdGVCbG9ja3MoYWRkQmxvY2tzQm9keSkgOiBvZihbXSk7XHJcblxyXG4gICAgICAgIHJldHVybiBhZGRCbG9ja3MkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QodXBkYXRlZEJsb2NrczogQmxvY2tbXSwgYmxvY2tJZHNNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4pOiBPYnNlcnZhYmxlPEJsb2NrW10+IHtcclxuICAgICAgICBjb25zdCB1cGRhdGVkQmxvY2tzV2l0aElkID0gdXBkYXRlZEJsb2Nrcy5yZWR1Y2UoKGFjYywgYmxvY2spID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYmxvY2tXaXRoSWQgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5ibG9jayxcclxuICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkc01hcC5nZXQoYmxvY2suaWQhKVxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGJsb2NrV2l0aElkLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBhY2MucHVzaChibG9ja1dpdGhJZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSwgW10gYXMgQmxvY2tbXSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHVwZGF0ZUJsb2Nrc0FycmF5ID0gdXBkYXRlZEJsb2Nrc1dpdGhJZC5tYXAoKGJsb2NrKSA9PiB0aGlzLmp0ZXh0U2VydmljZS51cGRhdGVCbG9jayhibG9jaykpO1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZUJsb2NrcyQgPSB1cGRhdGVkQmxvY2tzV2l0aElkLmxlbmd0aCA/IGZvcmtKb2luKHVwZGF0ZUJsb2Nrc0FycmF5KSA6IG9mKFtdKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUJsb2NrcyQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RSZW1vdmVkQmxvY2tzUmVxdWVzdChcclxuICAgICAgICBlZGl0b3JJZDogc3RyaW5nLFxyXG4gICAgICAgIHJlbW92ZWRCbG9ja3NJZHM6IHN0cmluZ1tdLFxyXG4gICAgICAgIGJsb2NrSWRzTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+XHJcbiAgICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCByZW1vdmVkQmxvY2tzOiBzdHJpbmdbXSA9IHJlbW92ZWRCbG9ja3NJZHMucmVkdWNlKChibG9ja0lkcywgYmxvY2tJZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBiYWNrZW5kSUQgPSBibG9ja0lkc01hcC5nZXQoYmxvY2tJZCkgYXMgc3RyaW5nO1xyXG5cclxuICAgICAgICAgICAgaWYgKGJhY2tlbmRJRCkge1xyXG4gICAgICAgICAgICAgICAgYmxvY2tJZHMucHVzaChiYWNrZW5kSUQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYmxvY2tJZHM7XHJcbiAgICAgICAgfSwgW10gYXMgc3RyaW5nW10pO1xyXG5cclxuICAgICAgICBjb25zdCByZW1vdmVCbG9ja3MkID0gcmVtb3ZlZEJsb2Nrcy5sZW5ndGggPyB0aGlzLmp0ZXh0U2VydmljZS5kZWxldGVCbG9ja3MoZWRpdG9ySWQsIHJlbW92ZWRCbG9ja3MpIDogb2YoKTtcclxuXHJcbiAgICAgICAgcmVtb3ZlZEJsb2Nrcy5mb3JFYWNoKChyZW1vdmVkQmxvY2spID0+IHtcclxuICAgICAgICAgICAgYmxvY2tJZHNNYXAuZGVsZXRlKHJlbW92ZWRCbG9jayk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZW1vdmVCbG9ja3MkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGdWxsQmxvY2tEYXRhKGV2ZW50OiBCbG9ja011dGF0aW9uRXZlbnQsIGVkaXRvckRhdGE6IE91dHB1dERhdGEpOiBDdWlGdWxsQmxvY2tEYXRhIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5kZXRhaWwudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKHRhcmdldC5ob2xkZXIuZGF0YXNldFsnaW5kZXgnXSk7XHJcbiAgICAgICAgY29uc3QgYmxvY2tJbmRleCA9IChldmVudC5kZXRhaWwgYXMgdW5rbm93biBhcyB7IGluZGV4OiBudW1iZXIgfSkuaW5kZXg7XHJcbiAgICAgICAgY29uc3QgYmxvY2tUeXBlID0gdGFyZ2V0Lm5hbWU7XHJcbiAgICAgICAgY29uc3QgYmxvY2tJZCA9IHRhcmdldC5pZDtcclxuICAgICAgICBjb25zdCBjdXJyZW50QmxvY2tCeUluZGV4ID0gZWRpdG9yRGF0YS5ibG9ja3NbYmxvY2tJbmRleF07XHJcbiAgICAgICAgY29uc3QgYmxvY2tEYXRhID0gY3VycmVudEJsb2NrQnlJbmRleD8uaWQgPT09IGJsb2NrSWQgPyBlZGl0b3JEYXRhLmJsb2Nrc1tibG9ja0luZGV4XS5kYXRhIDogeyB0ZXh0OiAnJyB9O1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgaWQ6IGJsb2NrSWQsXHJcbiAgICAgICAgICAgIGJsb2NrOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1R5cGUsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBibG9ja0RhdGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RlbmVyc09uQ3VzdG9tQmxvY2tDaGFuZ2VzKFxyXG4gICAgICAgIGVkaXRvcjogRWRpdG9ySlMsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICByZW1vdmVkQ2FsbGJhY2s6IChibG9ja0lkczogc3RyaW5nW10pID0+IHZvaWQ7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRDYWxsYmFjazogKHVwZGF0ZWRCbG9ja3M6IEJsb2NrW10pID0+IHZvaWQ7XHJcbiAgICAgICAgICAgIGFkZGVkQ2FsbGJhY2s6IChkYXRhOiBDdWlDb21iaW5lZEJsb2NrQWRkaW5nRXZlbnQpID0+IHZvaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgZWRpdG9yLm9uKENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsIGRhdGEuYWRkZWRDYWxsYmFjayk7XHJcbiAgICAgICAgZWRpdG9yLm9uKENPTUJJTkVEX1RFWFRfQkxPQ0tfVVBEQVRFRCwgZGF0YS51cGRhdGVkQ2FsbGJhY2spO1xyXG4gICAgICAgIGVkaXRvci5vbihDT01CSU5FRF9URVhUX0JMT0NLX1JFTU9WRUQsIGRhdGEucmVtb3ZlZENhbGxiYWNrKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U3RhcnRCbG9jayhcclxuICAgICAgICBlZGl0b3JJZDogc3RyaW5nLFxyXG4gICAgICAgIGNhbGxiYWNrOiAoYmxvY2s6IEJsb2NrPEN1aUNvbWJpbmVkQmxvY2tUb29sRGF0YT4sIGlkOiBzdHJpbmcpID0+IHZvaWRcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrSWQgPSBnZW5lcmF0ZUlkKCk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlCbG9jazogQ3VpQ29tYmluZWRQYXJ0QmxvY2sgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgdGV4dDogJycsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogYmxvY2tJZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudFR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogMCxcclxuICAgICAgICAgICAgYmxvY2s6IGVtcHR5QmxvY2ssXHJcbiAgICAgICAgICAgIGp0ZXh0Q29udGFpbmVySWQ6IGVkaXRvcklkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5qdGV4dFNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZUJsb2NrKGJvZHkpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZW1wdHlCbG9jay5pZCA9IGlkO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrOiBCbG9jazxDdWlDb21iaW5lZEJsb2NrVG9vbERhdGE+ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QmxvY2tzOiBbZW1wdHlCbG9ja11cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGJsb2NrLCBpZCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9zZXJ2aWNlcy9lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFZLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzlCLE1BQU0sY0FBYyxDQUFDO0FBUXRCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJbEQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVxQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0EySzlEO0lBektVLGlCQUFpQixDQUFDLE1BQTRCO1FBQ2pELE1BQU0sTUFBTSxHQUF1QjtZQUMvQixlQUFlLEVBQUUsRUFBRTtZQUNuQixhQUFhLEVBQUUsRUFBRTtZQUNqQixlQUFlLEVBQUUsRUFBRTtTQUN0QixDQUFDO1FBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHdCQUF3QixFQUFFLENBQUM7Z0JBQzlELE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFD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LEdBQUcsRUFBRSxDQUFDO1lBRW5CLE1BQU0sS0FBSyxHQUF1QztnQkFDOUMsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsSUFBSSxFQUFFO29CQUNGLEVBQUUsRUFBRSxPQUFPO29CQUNYLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDM0I7YUFDSixDQUFDO1lBRUYsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBNUtRLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHR5cGUgRWRpdG9ySlMgZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcclxuaW1wb3J0IHR5cGUgeyBCbG9ja011dGF0aW9uRXZlbnQsIE91dHB1dERhdGEgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xyXG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1aUJsb2NrLCBDdWlKVGV4dEFwaVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsXHJcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUsXHJcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQsXHJcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX1JFTU9WRUQsXHJcbiAgICBDT01CSU5FRF9URVhUX0JMT0NLX1VQREFURURcclxufSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgICBDdWlDb21iaW5lZEJsb2NrQWRkaW5nRXZlbnQsXHJcbiAgICBDdWlDb21iaW5lZEJsb2NrVG9vbERhdGEsXHJcbiAgICBDdWlDb21iaW5lZFBhcnRCbG9jayxcclxuICAgIEN1aUV2ZW50QWN0aW9uRGF0YSxcclxuICAgIEN1aUZ1bGxCbG9ja0RhdGFcclxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVJZCB9IGZyb20gJy4uL3V0aWxzL2dlbmVyYXRlLWlkJztcclxuaW1wb3J0IHsgRXZlbnRBY3Rpb25zIH0gZnJvbSAnLi9lZGl0b3Itc2VydmljZS5vcHRpb25zJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEN1aUVkaXRvclNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBqdGV4dFNlcnZpY2UgPSBpbmplY3QoQ3VpSlRleHRBcGlTZXJ2aWNlKTtcclxuXHJcbiAgICBwdWJsaWMgc29ydEV2ZW50c0J5VHlwZXMoZXZlbnRzOiBCbG9ja011dGF0aW9uRXZlbnRbXSk6IEN1aUV2ZW50QWN0aW9uRGF0YSB7XHJcbiAgICAgICAgY29uc3QgYmxvY2tzOiBDdWlFdmVudEFjdGlvbkRhdGEgPSB7XHJcbiAgICAgICAgICAgICdibG9jay1yZW1vdmVkJzogW10sXHJcbiAgICAgICAgICAgICdibG9jay1hZGRlZCc6IFtdLFxyXG4gICAgICAgICAgICAnYmxvY2stY2hhbmdlZCc6IFtdXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZXZlbnRzLmZvckVhY2goKGVkaXRvckV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlZGl0b3JFdmVudC5kZXRhaWwudGFyZ2V0Lm5hbWUgPT09IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBldmVudFR5cGUgPSBlZGl0b3JFdmVudC50eXBlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PT0gRXZlbnRBY3Rpb25zLnVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlZEJsb2NrID0gYmxvY2tzW0V2ZW50QWN0aW9ucy5hZGRdLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKGJsb2NrKSA9PiBibG9jay5kZXRhaWwudGFyZ2V0LmlkID09PSBlZGl0b3JFdmVudC5kZXRhaWwudGFyZ2V0LmlkXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VkQmxvY2spIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT09IEV2ZW50QWN0aW9ucy5yZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbiA9IGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgICAgICAgYmxvY2tzW0V2ZW50QWN0aW9ucy5hZGRdID0gYmxvY2tzW0V2ZW50QWN0aW9ucy5hZGRdLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoYmxvY2spID0+IGJsb2NrLmRldGFpbC50YXJnZXQuaWQgIT09IGVkaXRvckV2ZW50LmRldGFpbC50YXJnZXQuaWRcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxlbiA+IGJsb2Nrc1tFdmVudEFjdGlvbnMuYWRkXS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGJsb2Nrc1tldmVudFR5cGUgYXMgRXZlbnRBY3Rpb25zXS5wdXNoKGVkaXRvckV2ZW50KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGJsb2NrcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdEFkZGVkQmxvY2tzUmVxdWVzdChlZGl0b3JJZDogc3RyaW5nLCBhZGRlZEJsb2NrczogQ3VpRnVsbEJsb2NrRGF0YVtdKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xyXG4gICAgICAgIGNvbnN0IGFkZEJsb2Nrc0JvZHkgPSB7XHJcbiAgICAgICAgICAgIGp0ZXh0Q29udGFpbmVySWQ6IGVkaXRvcklkLFxyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWRkZWRCbG9ja3NbMF0/LmluZGV4LFxyXG4gICAgICAgICAgICBibG9jazogYWRkZWRCbG9ja3MubWFwKChlKSA9PiBlLmJsb2NrKVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgYWRkQmxvY2tzJCA9IGFkZGVkQmxvY2tzLmxlbmd0aCA/IHRoaXMuanRleHRTZXJ2aWNlLmNyZWF0ZUJsb2NrcyhhZGRCbG9ja3NCb2R5KSA6IG9mKFtdKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGFkZEJsb2NrcyQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RVcGRhdGVkQmxvY2tzUmVxdWVzdChcclxuICAgICAgICB1cGRhdGVkQmxvY2tzOiBDdWlCbG9ja1tdLFxyXG4gICAgICAgIGJsb2NrSWRzTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+XHJcbiAgICApOiBPYnNlcnZhYmxlPEN1aUJsb2NrW10+IHtcclxuICAgICAgICBjb25zdCB1cGRhdGVkQmxvY2tzV2l0aElkID0gdXBkYXRlZEJsb2Nrcy5yZWR1Y2UoKGFjYywgYmxvY2spID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYmxvY2tXaXRoSWQgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5ibG9jayxcclxuICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkc01hcC5nZXQoYmxvY2suaWQhKVxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGJsb2NrV2l0aElkLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBhY2MucHVzaChibG9ja1dpdGhJZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSwgW10gYXMgQ3VpQmxvY2tbXSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHVwZGF0ZUJsb2Nrc0FycmF5ID0gdXBkYXRlZEJsb2Nrc1dpdGhJZC5tYXAoKGJsb2NrKSA9PiB0aGlzLmp0ZXh0U2VydmljZS51cGRhdGVCbG9jayhibG9jaykpO1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZUJsb2NrcyQgPSB1cGRhdGVkQmxvY2tzV2l0aElkLmxlbmd0aCA/IGZvcmtKb2luKHVwZGF0ZUJsb2Nrc0FycmF5KSA6IG9mKFtdKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUJsb2NrcyQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RSZW1vdmVkQmxvY2tzUmVxdWVzdChcclxuICAgICAgICBlZGl0b3JJZDogc3RyaW5nLFxyXG4gICAgICAgIHJlbW92ZWRCbG9ja3NJZHM6IHN0cmluZ1tdLFxyXG4gICAgICAgIGJsb2NrSWRzTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+XHJcbiAgICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCByZW1vdmVkQmxvY2tzOiBzdHJpbmdbXSA9IHJlbW92ZWRCbG9ja3NJZHMucmVkdWNlKChibG9ja0lkcywgYmxvY2tJZCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBiYWNrZW5kSUQgPSBibG9ja0lkc01hcC5nZXQoYmxvY2tJZCkgYXMgc3RyaW5nO1xyXG5cclxuICAgICAgICAgICAgaWYgKGJhY2tlbmRJRCkge1xyXG4gICAgICAgICAgICAgICAgYmxvY2tJZHMucHVzaChiYWNrZW5kSUQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYmxvY2tJZHM7XHJcbiAgICAgICAgfSwgW10gYXMgc3RyaW5nW10pO1xyXG5cclxuICAgICAgICBjb25zdCByZW1vdmVCbG9ja3MkID0gcmVtb3ZlZEJsb2Nrcy5sZW5ndGggPyB0aGlzLmp0ZXh0U2VydmljZS5kZWxldGVCbG9ja3MoZWRpdG9ySWQsIHJlbW92ZWRCbG9ja3MpIDogb2YoKTtcclxuXHJcbiAgICAgICAgcmVtb3ZlZEJsb2Nrcy5mb3JFYWNoKChyZW1vdmVkQmxvY2spID0+IHtcclxuICAgICAgICAgICAgYmxvY2tJZHNNYXAuZGVsZXRlKHJlbW92ZWRCbG9jayk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiByZW1vdmVCbG9ja3MkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGdWxsQmxvY2tEYXRhKGV2ZW50OiBCbG9ja011dGF0aW9uRXZlbnQsIGVkaXRvckRhdGE6IE91dHB1dERhdGEpOiBDdWlGdWxsQmxvY2tEYXRhIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5kZXRhaWwudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKHRhcmdldC5ob2xkZXIuZGF0YXNldFsnaW5kZXgnXSk7XHJcbiAgICAgICAgY29uc3QgYmxvY2tJbmRleCA9IChldmVudC5kZXRhaWwgYXMgdW5rbm93biBhcyB7IGluZGV4OiBudW1iZXIgfSkuaW5kZXg7XHJcbiAgICAgICAgY29uc3QgYmxvY2tUeXBlID0gdGFyZ2V0Lm5hbWU7XHJcbiAgICAgICAgY29uc3QgYmxvY2tJZCA9IHRhcmdldC5pZDtcclxuICAgICAgICBjb25zdCBjdXJyZW50QmxvY2tCeUluZGV4ID0gZWRpdG9yRGF0YS5ibG9ja3NbYmxvY2tJbmRleF07XHJcbiAgICAgICAgY29uc3QgYmxvY2tEYXRhID0gY3VycmVudEJsb2NrQnlJbmRleD8uaWQgPT09IGJsb2NrSWQgPyBlZGl0b3JEYXRhLmJsb2Nrc1tibG9ja0luZGV4XS5kYXRhIDogeyB0ZXh0OiAnJyB9O1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgaWQ6IGJsb2NrSWQsXHJcbiAgICAgICAgICAgIGJsb2NrOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1R5cGUsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBibG9ja0RhdGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RlbmVyc09uQ3VzdG9tQmxvY2tDaGFuZ2VzKFxyXG4gICAgICAgIGVkaXRvcjogRWRpdG9ySlMsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICByZW1vdmVkQ2FsbGJhY2s6IChibG9ja0lkczogc3RyaW5nW10pID0+IHZvaWQ7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRDYWxsYmFjazogKHVwZGF0ZWRCbG9ja3M6IEN1aUJsb2NrW10pID0+IHZvaWQ7XHJcbiAgICAgICAgICAgIGFkZGVkQ2FsbGJhY2s6IChkYXRhOiBDdWlDb21iaW5lZEJsb2NrQWRkaW5nRXZlbnQpID0+IHZvaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgZWRpdG9yLm9uKENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQsIGRhdGEuYWRkZWRDYWxsYmFjayk7XHJcbiAgICAgICAgZWRpdG9yLm9uKENPTUJJTkVEX1RFWFRfQkxPQ0tfVVBEQVRFRCwgZGF0YS51cGRhdGVkQ2FsbGJhY2spO1xyXG4gICAgICAgIGVkaXRvci5vbihDT01CSU5FRF9URVhUX0JMT0NLX1JFTU9WRUQsIGRhdGEucmVtb3ZlZENhbGxiYWNrKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0U3RhcnRCbG9jayhcclxuICAgICAgICBlZGl0b3JJZDogc3RyaW5nLFxyXG4gICAgICAgIGNhbGxiYWNrOiAoYmxvY2s6IEN1aUJsb2NrPEN1aUNvbWJpbmVkQmxvY2tUb29sRGF0YT4sIGlkOiBzdHJpbmcpID0+IHZvaWRcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrSWQgPSBnZW5lcmF0ZUlkKCk7XHJcbiAgICAgICAgY29uc3QgZW1wdHlCbG9jazogQ3VpQ29tYmluZWRQYXJ0QmxvY2sgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgdGV4dDogJycsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogYmxvY2tJZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudFR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogMCxcclxuICAgICAgICAgICAgYmxvY2s6IGVtcHR5QmxvY2ssXHJcbiAgICAgICAgICAgIGp0ZXh0Q29udGFpbmVySWQ6IGVkaXRvcklkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5qdGV4dFNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZUJsb2NrKGJvZHkpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZW1wdHlCbG9jay5pZCA9IGlkO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrOiBDdWlCbG9jazxDdWlDb21iaW5lZEJsb2NrVG9vbERhdGE+ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IENPTUJJTkVEX1RFWFRfQkxPQ0tfTkFNRSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QmxvY2tzOiBbZW1wdHlCbG9ja11cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGJsb2NrLCBpZCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -2,8 +2,6 @@ export * from './editor-service.options';
2
2
  export * from './editor.service';
3
3
  export * from './markers-service.options';
4
4
  export * from './markers.service';
5
- export * from './jtext-api.options';
6
- export * from './jtext-api.service';
7
5
  export * from './editor-base.service';
8
6
  export * from './editor-tools.service';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci1zZXJ2aWNlLm9wdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tYXJrZXJzLXNlcnZpY2Uub3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWFya2Vycy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9qdGV4dC1hcGkub3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vanRleHQtYXBpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci1iYXNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci10b29scy5zZXJ2aWNlJztcclxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLXNlcnZpY2Uub3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21hcmtlcnMtc2VydmljZS5vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9tYXJrZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci1iYXNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci10b29scy5zZXJ2aWNlJztcclxuIl19
@@ -49,6 +49,9 @@ export class CuiAttachesTool {
49
49
  this.uploader = new CuiFileUploader(this.config, this.onUpload.bind(this), this.uploadingFailed.bind(this));
50
50
  this.data = data;
51
51
  }
52
+ appendCallback() {
53
+ this.selectFile();
54
+ }
52
55
  render() {
53
56
  this.attachesTool = document.createElement(EDITOR_ATTACHES_TOOL_SELECTOR);
54
57
  this.attachesTool.api = this.api;
@@ -96,4 +99,4 @@ export class CuiAttachesTool {
96
99
  this.attachesTool.isLoading = false;
97
100
  }
98
101
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoZXMudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL2F0dGFjaGVzLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVTNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sZUFBZTtJQWNqQixNQUFNLEtBQUssbUJBQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLEtBQUssT0FBTztRQUNyQixPQUFPO1lBQ0gsSUFBSSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0I7WUFDbEMsS0FBSyxFQUFFLE1BQU07U0FDaEIsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLE9BQXFCO1FBeEJoQixvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUduRCxpQkFBWSxHQUFzQixJQUFJLENBQUM7UUFxRXhDLGtCQUFhLEdBQUcsQ0FBQyxLQUFZLEVBQVEsRUFBRTtZQUMxQyxNQUFNLFdBQVcsR0FBRyxLQUFvQixDQUFDO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBRXhCLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBRUssZUFBVSxHQUFHLEdBQVMsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUM1QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVB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QyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUM1QixHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHO1NBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgQ1VJX0lDT05TIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xyXG5pbXBvcnQgdHlwZSB7IEFQSSwgQmxvY2tBUEksIEJsb2NrVG9vbENvbnN0cnVjdG9yT3B0aW9ucywgVG9vbGJveENvbmZpZyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XHJcblxyXG5pbXBvcnQgdHlwZSB7IEN1aUFuZ3VsYXJFbGVtZW50LCBDdWlGaWxlRGF0YSwgQ3VpRmlsZVJlc3BvbnNlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBFZGl0b3JBdHRhY2hlc1Rvb2xDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkaXRvci1hdHRhY2hlcy10b29sL2VkaXRvci1hdHRhY2hlcy10b29sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB0eXBlIHtcclxuICAgIEN1aUF0dGFjaGVzVG9vbENvbmZpZyxcclxuICAgIEN1aUF0dGFjaGVzVG9vbERhdGFcclxufSBmcm9tICcuLi9jb21wb25lbnRzL2VkaXRvci1hdHRhY2hlcy10b29sL2VkaXRvci1hdHRhY2hlcy10b29sLm9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFRElUT1JfQVRUQUNIRVNfVE9PTF9TRUxFQ1RPUiB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRpdG9yLWF0dGFjaGVzLXRvb2wvZWRpdG9yLWF0dGFjaGVzLXRvb2wub3B0aW9ucyc7XHJcbmltcG9ydCB7IEN1aUZpbGVVcGxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2ZpbGUtdXBsb2FkZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEN1aUF0dGFjaGVzVG9vbCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWJvcnRTaWduYWwgPSB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWw7XHJcblxyXG4gICAgcHJpdmF0ZSBhdHRhY2hlc1Rvb2whOiBDdWlBbmd1bGFyRWxlbWVudDxFZGl0b3JBdHRhY2hlc1Rvb2xDb21wb25lbnQ+O1xyXG4gICAgcHJpdmF0ZSBzZWxlY3RlZEZpbGU6IEN1aU51bGxhYmxlPEZpbGU+ID0gbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgYXBpOiBBUEk7XHJcbiAgICBwdWJsaWMgY29uZmlnOiBDdWlBdHRhY2hlc1Rvb2xDb25maWc7XHJcbiAgICBwdWJsaWMgYmxvY2tBcGk/OiBCbG9ja0FQSTtcclxuICAgIHB1YmxpYyByZWFkT25seTogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBkYXRhOiBDdWlBdHRhY2hlc1Rvb2xEYXRhO1xyXG4gICAgcHVibGljIHVwbG9hZGVyOiBDdWlGaWxlVXBsb2FkZXI7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgaXNSZWFkT25seVN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldCB0b29sYm94KCk6IFRvb2xib3hDb25maWcge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGljb246IENVSV9JQ09OUy5jdWlJY29uUGFwZXJjbGlwU20sXHJcbiAgICAgICAgICAgIHRpdGxlOiAnRmlsZSdcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHsgYXBpOiBBUEkgfSkge1xyXG4gICAgICAgIGNvbnN0IHsgYXBpLCByZWFkT25seSwgY29uZmlnLCBkYXRhLCBibG9jayB9ID0gb3B0aW9ucyBhcyBCbG9ja1Rvb2xDb25zdHJ1Y3Rvck9wdGlvbnM8XHJcbiAgICAgICAgICAgIEN1aUF0dGFjaGVzVG9vbERhdGEsXHJcbiAgICAgICAgICAgIEN1aUF0dGFjaGVzVG9vbENvbmZpZ1xyXG4gICAgICAgID47XHJcblxyXG4gICAgICAgIHRoaXMuYmxvY2tBcGkgPSBibG9jaztcclxuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcclxuICAgICAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XHJcbiAgICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBjb25maWc/LmZpZWxkID8/ICdmaWxlJyxcclxuICAgICAgICAgICAgdHlwZXM6IGNvbmZpZz8udHlwZXMgPz8gJyonLFxyXG4gICAgICAgICAgICBlbmRwb2ludDogY29uZmlnPy5lbmRwb2ludCA/PyAnJyxcclxuICAgICAgICAgICAgYnV0dG9uQ29udGVudDogY29uZmlnPy5idXR0b25Db250ZW50ID8/IHRoaXMuYXBpLmkxOG4udCgnU2VsZWN0IGEgRmlsZScpLFxyXG4gICAgICAgICAgICBhZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnM6IGNvbmZpZz8uYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzID8/IHt9LFxyXG4gICAgICAgICAgICBsb2FkOiBjb25maWc/LmxvYWQgPz8gKCgpID0+IHt9KSxcclxuICAgICAgICAgICAgZmlsZUNsaWNrZWQ6IGNvbmZpZz8uZmlsZUNsaWNrZWQgPz8gKCgpID0+IHt9KVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMudXBsb2FkZXIgPSBuZXcgQ3VpRmlsZVVwbG9hZGVyKHRoaXMuY29uZmlnLCB0aGlzLm9uVXBsb2FkLmJpbmQodGhpcyksIHRoaXMudXBsb2FkaW5nRmFpbGVkLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbmRlcigpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBFRElUT1JfQVRUQUNIRVNfVE9PTF9TRUxFQ1RPUlxyXG4gICAgICAgICkgYXMgQ3VpQW5ndWxhckVsZW1lbnQ8RWRpdG9yQXR0YWNoZXNUb29sQ29tcG9uZW50PjtcclxuXHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wuYXBpID0gdGhpcy5hcGk7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wuZmlsZSA9IHRoaXMuZGF0YS5maWxlID8/ICcnO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLnRpdGxlID0gdGhpcy5kYXRhLnRpdGxlID8/ICcnO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLnJlYWRPbmx5ID0gdGhpcy5yZWFkT25seTtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5idXR0b25Db250ZW50ID0gdGhpcy5jb25maWcuYnV0dG9uQ29udGVudDtcclxuXHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wuYWRkRXZlbnRMaXN0ZW5lcignZmlsZVNlbGVjdGVkJywgdGhpcy5zZWxlY3RGaWxlLCB7IHNpZ25hbDogdGhpcy5hYm9ydFNpZ25hbCB9KTtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5hZGRFdmVudExpc3RlbmVyKCdmaWxlQ2xpY2tlZCcsIHRoaXMuY2xpY2tGaWxlLCB7IHNpZ25hbDogdGhpcy5hYm9ydFNpZ25hbCB9KTtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5hZGRFdmVudExpc3RlbmVyKCdjYXB0aW9uQ2hhbmdlZCcsIHRoaXMuY2hhbmdlQ2FwdGlvbiwgeyBzaWduYWw6IHRoaXMuYWJvcnRTaWduYWwgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmF0dGFjaGVzVG9vbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZSgpOiBDdWlBdHRhY2hlc1Rvb2xEYXRhIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZUNhcHRpb24gPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBldmVudCBhcyBDdXN0b21FdmVudDtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGN1c3RvbUV2ZW50LmRldGFpbDtcclxuICAgICAgICB0aGlzLmRhdGEudGl0bGUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja0FwaT8uZGlzcGF0Y2hDaGFuZ2UoKTtcclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHNlbGVjdEZpbGUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZXIuc2VsZWN0RmlsZSh7XHJcbiAgICAgICAgICAgIGZpbGVTZWxlY3RlZDogKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlci51cGxvYWRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBjbGlja0ZpbGUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25maWcuZmlsZUNsaWNrZWQodGhpcy5kYXRhLmZpbGUpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgc2V0IGZpbGUoZmlsZTogQ3VpRmlsZURhdGEpIHtcclxuICAgICAgICB0aGlzLmRhdGEudGl0bGUgPSBmaWxlLm5hbWUhO1xyXG4gICAgICAgIHRoaXMuZGF0YS5maWxlID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICAgIGV4dGVuc2lvbjogZmlsZS5uYW1lPy5zcGxpdCgnLicpLnBvcCgpLFxyXG4gICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXHJcbiAgICAgICAgICAgIHVybDogZmlsZS51cmxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmZpbGUgPSB7IC4uLnRoaXMuZGF0YS5maWxlIH07XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wudGl0bGUgPSBmaWxlLm5hbWUhO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25VcGxvYWQocmVzcG9uc2U6IEN1aUZpbGVSZXNwb25zZURhdGEpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLnN1Y2Nlc3MgfHwgIXJlc3BvbnNlLmZpbGUgfHwgIXRoaXMuc2VsZWN0ZWRGaWxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nRmFpbGVkKCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpbGUgPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRGaWxlLm5hbWUsXHJcbiAgICAgICAgICAgIGV4dGVuc2lvbjogdGhpcy5zZWxlY3RlZEZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpLFxyXG4gICAgICAgICAgICBzaXplOiB0aGlzLnNlbGVjdGVkRmlsZS5zaXplLFxyXG4gICAgICAgICAgICB1cmw6IHJlc3BvbnNlLmZpbGUudXJsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwbG9hZGluZ0ZhaWxlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5maWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoZXMudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL2F0dGFjaGVzLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVTNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sZUFBZTtJQWNqQixNQUFNLEtBQUssbUJBQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLEtBQUssT0FBTztRQUNyQixPQUFPO1lBQ0gsSUFBSSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0I7WUFDbEMsS0FBSyxFQUFFLE1BQU07U0FDaEIsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLE9BQXFCO1FBeEJoQixvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUduRCxpQkFBWSxHQUFzQixJQUFJLENBQUM7UUF5RXhDLGtCQUFhLEdBQUcsQ0FBQyxLQUFZLEVBQVEsRUFBRTtZQUMxQyxNQUFNLFdBQVcsR0FBRyxLQUFvQixDQUFDO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBRXhCLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBRUssZUFBVSxHQUFHLEdBQVMsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUM1QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVB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QUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJO1lBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUk7WUFDNUIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRztTQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7IENVSV9JQ09OUyB9IGZyb20gJ0BjdWJ5LXVpL2ljb25zJztcclxuaW1wb3J0IHR5cGUgeyBBUEksIEJsb2NrQVBJLCBCbG9ja1Rvb2xDb25zdHJ1Y3Rvck9wdGlvbnMsIFRvb2xib3hDb25maWcgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlBbmd1bGFyRWxlbWVudCwgQ3VpRmlsZURhdGEsIEN1aUZpbGVSZXNwb25zZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmltcG9ydCB0eXBlIHsgRWRpdG9yQXR0YWNoZXNUb29sQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGl0b3ItYXR0YWNoZXMtdG9vbC9lZGl0b3ItYXR0YWNoZXMtdG9vbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgICBDdWlBdHRhY2hlc1Rvb2xDb25maWcsXHJcbiAgICBDdWlBdHRhY2hlc1Rvb2xEYXRhXHJcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGl0b3ItYXR0YWNoZXMtdG9vbC9lZGl0b3ItYXR0YWNoZXMtdG9vbC5vcHRpb25zJztcclxuaW1wb3J0IHsgRURJVE9SX0FUVEFDSEVTX1RPT0xfU0VMRUNUT1IgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkaXRvci1hdHRhY2hlcy10b29sL2VkaXRvci1hdHRhY2hlcy10b29sLm9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWlGaWxlVXBsb2FkZXIgfSBmcm9tICcuLi91dGlscy9maWxlLXVwbG9hZGVyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDdWlBdHRhY2hlc1Rvb2wge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFib3J0U2lnbmFsID0gdGhpcy5hYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xyXG5cclxuICAgIHByaXZhdGUgYXR0YWNoZXNUb29sITogQ3VpQW5ndWxhckVsZW1lbnQ8RWRpdG9yQXR0YWNoZXNUb29sQ29tcG9uZW50PjtcclxuICAgIHByaXZhdGUgc2VsZWN0ZWRGaWxlOiBDdWlOdWxsYWJsZTxGaWxlPiA9IG51bGw7XHJcblxyXG4gICAgcHVibGljIGFwaTogQVBJO1xyXG4gICAgcHVibGljIGNvbmZpZzogQ3VpQXR0YWNoZXNUb29sQ29uZmlnO1xyXG4gICAgcHVibGljIGJsb2NrQXBpPzogQmxvY2tBUEk7XHJcbiAgICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgZGF0YTogQ3VpQXR0YWNoZXNUb29sRGF0YTtcclxuICAgIHB1YmxpYyB1cGxvYWRlcjogQ3VpRmlsZVVwbG9hZGVyO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGlzUmVhZE9ubHlTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXQgdG9vbGJveCgpOiBUb29sYm94Q29uZmlnIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpY29uOiBDVUlfSUNPTlMuY3VpSWNvblBhcGVyY2xpcFNtLFxyXG4gICAgICAgICAgICB0aXRsZTogJ0ZpbGUnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7IGFwaTogQVBJIH0pIHtcclxuICAgICAgICBjb25zdCB7IGFwaSwgcmVhZE9ubHksIGNvbmZpZywgZGF0YSwgYmxvY2sgfSA9IG9wdGlvbnMgYXMgQmxvY2tUb29sQ29uc3RydWN0b3JPcHRpb25zPFxyXG4gICAgICAgICAgICBDdWlBdHRhY2hlc1Rvb2xEYXRhLFxyXG4gICAgICAgICAgICBDdWlBdHRhY2hlc1Rvb2xDb25maWdcclxuICAgICAgICA+O1xyXG5cclxuICAgICAgICB0aGlzLmJsb2NrQXBpID0gYmxvY2s7XHJcbiAgICAgICAgdGhpcy5hcGkgPSBhcGk7XHJcbiAgICAgICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0ge1xyXG4gICAgICAgICAgICBmaWVsZDogY29uZmlnPy5maWVsZCA/PyAnZmlsZScsXHJcbiAgICAgICAgICAgIHR5cGVzOiBjb25maWc/LnR5cGVzID8/ICcqJyxcclxuICAgICAgICAgICAgZW5kcG9pbnQ6IGNvbmZpZz8uZW5kcG9pbnQgPz8gJycsXHJcbiAgICAgICAgICAgIGJ1dHRvbkNvbnRlbnQ6IGNvbmZpZz8uYnV0dG9uQ29udGVudCA/PyB0aGlzLmFwaS5pMThuLnQoJ1NlbGVjdCBhIEZpbGUnKSxcclxuICAgICAgICAgICAgYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzOiBjb25maWc/LmFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyA/PyB7fSxcclxuICAgICAgICAgICAgbG9hZDogY29uZmlnPy5sb2FkID8/ICgoKSA9PiB7fSksXHJcbiAgICAgICAgICAgIGZpbGVDbGlja2VkOiBjb25maWc/LmZpbGVDbGlja2VkID8/ICgoKSA9PiB7fSlcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnVwbG9hZGVyID0gbmV3IEN1aUZpbGVVcGxvYWRlcih0aGlzLmNvbmZpZywgdGhpcy5vblVwbG9hZC5iaW5kKHRoaXMpLCB0aGlzLnVwbG9hZGluZ0ZhaWxlZC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhcHBlbmRDYWxsYmFjaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdEZpbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVuZGVyKCk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIEVESVRPUl9BVFRBQ0hFU19UT09MX1NFTEVDVE9SXHJcbiAgICAgICAgKSBhcyBDdWlBbmd1bGFyRWxlbWVudDxFZGl0b3JBdHRhY2hlc1Rvb2xDb21wb25lbnQ+O1xyXG5cclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5hcGkgPSB0aGlzLmFwaTtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5maWxlID0gdGhpcy5kYXRhLmZpbGUgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wudGl0bGUgPSB0aGlzLmRhdGEudGl0bGUgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wucmVhZE9ubHkgPSB0aGlzLnJlYWRPbmx5O1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmJ1dHRvbkNvbnRlbnQgPSB0aGlzLmNvbmZpZy5idXR0b25Db250ZW50O1xyXG5cclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC5hZGRFdmVudExpc3RlbmVyKCdmaWxlU2VsZWN0ZWQnLCB0aGlzLnNlbGVjdEZpbGUsIHsgc2lnbmFsOiB0aGlzLmFib3J0U2lnbmFsIH0pO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmFkZEV2ZW50TGlzdGVuZXIoJ2ZpbGVDbGlja2VkJywgdGhpcy5jbGlja0ZpbGUsIHsgc2lnbmFsOiB0aGlzLmFib3J0U2lnbmFsIH0pO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmFkZEV2ZW50TGlzdGVuZXIoJ2NhcHRpb25DaGFuZ2VkJywgdGhpcy5jaGFuZ2VDYXB0aW9uLCB7IHNpZ25hbDogdGhpcy5hYm9ydFNpZ25hbCB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNoZXNUb29sO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlKCk6IEN1aUF0dGFjaGVzVG9vbERhdGEge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2hhbmdlQ2FwdGlvbiA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcclxuICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IGV2ZW50IGFzIEN1c3RvbUV2ZW50O1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gY3VzdG9tRXZlbnQuZGV0YWlsO1xyXG4gICAgICAgIHRoaXMuZGF0YS50aXRsZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLmJsb2NrQXBpPy5kaXNwYXRjaENoYW5nZSgpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0RmlsZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlci5zZWxlY3RGaWxlKHtcclxuICAgICAgICAgICAgZmlsZVNlbGVjdGVkOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVyLnVwbG9hZEZpbGUoZmlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGNsaWNrRmlsZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpZy5maWxlQ2xpY2tlZCh0aGlzLmRhdGEuZmlsZSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBzZXQgZmlsZShmaWxlOiBDdWlGaWxlRGF0YSkge1xyXG4gICAgICAgIHRoaXMuZGF0YS50aXRsZSA9IGZpbGUubmFtZSE7XHJcbiAgICAgICAgdGhpcy5kYXRhLmZpbGUgPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgICAgZXh0ZW5zaW9uOiBmaWxlLm5hbWU/LnNwbGl0KCcuJykucG9wKCksXHJcbiAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcclxuICAgICAgICAgICAgdXJsOiBmaWxlLnVybFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wuZmlsZSA9IHsgLi4udGhpcy5kYXRhLmZpbGUgfTtcclxuICAgICAgICB0aGlzLmF0dGFjaGVzVG9vbC50aXRsZSA9IGZpbGUubmFtZSE7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvblVwbG9hZChyZXNwb25zZTogQ3VpRmlsZVJlc3BvbnNlRGF0YSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghcmVzcG9uc2Uuc3VjY2VzcyB8fCAhcmVzcG9uc2UuZmlsZSB8fCAhdGhpcy5zZWxlY3RlZEZpbGUpIHtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmdGYWlsZWQoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmlsZSA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5zZWxlY3RlZEZpbGUubmFtZSxcclxuICAgICAgICAgICAgZXh0ZW5zaW9uOiB0aGlzLnNlbGVjdGVkRmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCksXHJcbiAgICAgICAgICAgIHNpemU6IHRoaXMuc2VsZWN0ZWRGaWxlLnNpemUsXHJcbiAgICAgICAgICAgIHVybDogcmVzcG9uc2UuZmlsZS51cmxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBsb2FkaW5nRmFpbGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZXNUb29sLmZpbGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlc1Rvb2wuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19