@flogeez/angular-tiptap-editor 3.6.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +6 -2
  3. package/esm2022/lib/components/bubble-menus/base/ate-base-bubble-menu.mjs +3 -3
  4. package/esm2022/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.mjs +3 -3
  5. package/esm2022/lib/components/color-picker/ate-color-picker.component.mjs +3 -3
  6. package/esm2022/lib/components/editor/angular-tiptap-editor.component.mjs +52 -13
  7. package/esm2022/lib/components/editor/ate-block-controls.component.mjs +3 -3
  8. package/esm2022/lib/components/slash-commands/ate-slash-commands.component.mjs +3 -3
  9. package/esm2022/lib/components/table-of-contents/ate-table-of-contents.component.mjs +3 -3
  10. package/esm2022/lib/components/toolbar/ate-toolbar.component.mjs +3 -3
  11. package/esm2022/lib/config/ate-editor.config.mjs +7 -1
  12. package/esm2022/lib/config/ate-slash-commands.config.mjs +1 -1
  13. package/esm2022/lib/extensions/ate-paste.extension.mjs +125 -0
  14. package/esm2022/lib/extensions/ate-resizable-image.extension.mjs +44 -3
  15. package/esm2022/lib/models/ate-editor-config.model.mjs +1 -1
  16. package/esm2022/lib/models/ate-image.model.mjs +1 -1
  17. package/esm2022/lib/models/ate-paste.model.mjs +2 -0
  18. package/esm2022/lib/services/ate-editor-commands.service.mjs +7 -1
  19. package/esm2022/lib/services/ate-editor-i18n.service.mjs +36 -0
  20. package/esm2022/lib/services/ate-image.service.mjs +12 -5
  21. package/esm2022/lib/utils/ate-extensions.utils.mjs +3 -1
  22. package/esm2022/lib/utils/ate-image-src-resolver.utils.mjs +21 -0
  23. package/esm2022/public-api.mjs +2 -1
  24. package/fesm2022/flogeez-angular-tiptap-editor.mjs +297 -27
  25. package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
  26. package/lib/components/bubble-menus/base/ate-base-bubble-menu.d.ts +2 -2
  27. package/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.d.ts +2 -2
  28. package/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.d.ts +1 -1
  29. package/lib/components/editor/angular-tiptap-editor.component.d.ts +18 -2
  30. package/lib/components/editor/ate-block-controls.component.d.ts +2 -2
  31. package/lib/components/slash-commands/ate-slash-commands.component.d.ts +2 -2
  32. package/lib/config/ate-editor.config.d.ts +3 -0
  33. package/lib/config/ate-slash-commands.config.d.ts +2 -2
  34. package/lib/extensions/ate-paste.extension.d.ts +24 -0
  35. package/lib/extensions/ate-resizable-image.extension.d.ts +10 -1
  36. package/lib/models/ate-editor-config.model.d.ts +6 -1
  37. package/lib/models/ate-image.model.d.ts +12 -0
  38. package/lib/models/ate-paste.model.d.ts +36 -0
  39. package/lib/services/ate-editor-commands.service.d.ts +3 -1
  40. package/lib/services/ate-editor-i18n.service.d.ts +208 -0
  41. package/lib/services/ate-image.service.d.ts +3 -1
  42. package/lib/utils/ate-image-src-resolver.utils.d.ts +2 -0
  43. package/package.json +1 -1
  44. package/public-api.d.ts +1 -0
@@ -2,7 +2,7 @@ import { Component, input, inject, ChangeDetectionStrategy } from "@angular/core
2
2
  import { AteButtonComponent } from "../ui/ate-button.component";
3
3
  import { AteSeparatorComponent } from "../ui/ate-separator.component";
4
4
  import { AteEditorCommandsService } from "../../services/ate-editor-commands.service";
5
- import { AteI18nService } from "../../services/ate-i18n.service";
5
+ import { AteEditorI18n } from "../../services/ate-editor-i18n.service";
6
6
  import { AteColorPickerComponent } from "../color-picker/ate-color-picker.component";
7
7
  import * as i0 from "@angular/core";
8
8
  export class AteToolbarComponent {
@@ -11,7 +11,7 @@ export class AteToolbarComponent {
11
11
  this.config = input.required();
12
12
  this.imageUpload = input({});
13
13
  this.floating = input(false);
14
- this.i18nService = inject(AteI18nService);
14
+ this.i18nService = inject(AteEditorI18n);
15
15
  this.editorCommands = inject(AteEditorCommandsService);
16
16
  this.t = this.i18nService.toolbar;
17
17
  this.state = this.editorCommands.editorState;
@@ -528,4 +528,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
528
528
  </div>
529
529
  `, styles: [":host{display:block;transition:opacity .3s ease}:host-context(.floating-toolbar){position:sticky;top:3rem;left:0;right:0;z-index:100;display:flex;height:0;overflow:visible;pointer-events:none;opacity:0}:host-context(.floating-toolbar:focus-within),:host-context(.floating-toolbar:hover){opacity:1}.ate-toolbar{display:flex;align-items:center;gap:var(--ate-toolbar-gap);padding:var(--ate-toolbar-padding);background:var(--ate-toolbar-background);border-bottom:1px solid var(--ate-toolbar-border-color);flex-wrap:wrap;min-height:32px;position:relative;z-index:50;border-top-left-radius:calc(var(--ate-menu-border-radius, 12px) - var(--ate-border-width, 2px));border-top-right-radius:calc(var(--ate-menu-border-radius, 12px) - var(--ate-border-width, 2px))}.ate-toolbar.floating{pointer-events:auto;border-radius:var(--ate-menu-border-radius, 12px);border:1px solid var(--ate-menu-border)!important;box-shadow:var(--ate-menu-shadow)!important;background:var(--ate-menu-bg)!important;padding:var(--ate-menu-padding)!important;flex-wrap:nowrap;overflow-x:auto;max-width:95vw;scrollbar-width:none;transform:translateY(0);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ate-toolbar.floating::-webkit-scrollbar{display:none}:host-context(.floating-toolbar:focus-within) .ate-toolbar.floating,:host-context(.floating-toolbar:hover) .ate-toolbar.floating{transform:translateY(-2rem)}@keyframes toolbarSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ate-toolbar{animation:toolbarSlideIn .3s cubic-bezier(.4,0,.2,1)}\n"] }]
530
530
  }] });
531
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL2F0ZS10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQTBWckYsTUFBTSxPQUFPLG1CQUFtQjtJQXRWaEM7UUF1VkUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBb0IsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLEtBQUssQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRWpELE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7S0FTbEQ7SUFQQyxTQUFTLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FsQlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2xCQWpWcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlQVCxzbERBMVBTLGtCQUFrQiw2TEFBRSxxQkFBcUIsMERBQUUsdUJBQXVCOzs0RkFrVmpFLG1CQUFtQjtrQkF0Vi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLFlBQ25FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5UFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBpbmplY3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gXCJAdGlwdGFwL2NvcmVcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuLi9jb2xvci1waWNrZXIvYXRlLWNvbG9yLXBpY2tlci5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgQXRlVG9vbGJhckNvbmZpZyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS10b29sYmFyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXRlQnV0dG9uQ29tcG9uZW50LCBBdGVTZXBhcmF0b3JDb21wb25lbnQsIEF0ZUNvbG9yUGlja2VyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXRlLXRvb2xiYXJcIiBbY2xhc3MuZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiPlxuICAgICAgQGlmIChjb25maWcoKS5ib2xkKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJvbGRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYm9sZFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLmJvbGRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQm9sZFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlQm9sZCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaXRhbGljKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cIml0YWxpY1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5pdGFsaWNcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5pdGFsaWNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSXRhbGljXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVJdGFsaWMnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnVuZGVybGluZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ1bmRlcmxpbmVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkudW5kZXJsaW5lXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3MudW5kZXJsaW5lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZVVuZGVybGluZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlVW5kZXJsaW5lJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdHJpa2UpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3RyaWtlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN0cmlrZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN0cmlrZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdHJpa2VcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN0cmlrZScpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuY29kZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjb2RlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmNvZGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5jb2RlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUNvZGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUNvZGUnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmNvZGVCbG9jaykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjb2RlQmxvY2tcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY29kZUJsb2NrXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaXNDb2RlQmxvY2tcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQ29kZUJsb2NrXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVDb2RlQmxvY2snKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnN1cGVyc2NyaXB0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3Muc3VwZXJzY3JpcHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlU3VwZXJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1cGVyc2NyaXB0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdWJzY3JpcHQpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3Vic2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdWJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1YnNjcmlwdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaGlnaGxpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhpZ2hsaWdodFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5oaWdobGlnaHRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5oaWdobGlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGlnaGxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVIaWdobGlnaHQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhpZ2hsaWdodFBpY2tlcikge1xuICAgICAgICA8YXRlLWNvbG9yLXBpY2tlclxuICAgICAgICAgIG1vZGU9XCJoaWdobGlnaHRcIlxuICAgICAgICAgIFtlZGl0b3JdPVwiZWRpdG9yKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0SGlnaGxpZ2h0XCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkudGV4dENvbG9yKSB7XG4gICAgICAgIDxhdGUtY29sb3ItcGlja2VyIG1vZGU9XCJ0ZXh0XCIgW2VkaXRvcl09XCJlZGl0b3IoKVwiIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0Q29sb3JcIiAvPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkuaGVhZGluZzEgfHwgY29uZmlnKCkuaGVhZGluZzIgfHwgY29uZmlnKCkuaGVhZGluZzMpKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcxKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmcxXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmcxXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzFcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAxKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcyKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmcyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmcyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzJcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAyKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmczKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmczXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmczXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzNcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAzKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKFxuICAgICAgICBjb25maWcoKS5zZXBhcmF0b3IgJiYgKGNvbmZpZygpLmJ1bGxldExpc3QgfHwgY29uZmlnKCkub3JkZXJlZExpc3QgfHwgY29uZmlnKCkuYmxvY2txdW90ZSlcbiAgICAgICkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5idWxsZXRMaXN0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJ1bGxldExpc3RcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYnVsbGV0TGlzdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQnVsbGV0TGlzdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCdWxsZXRMaXN0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCdWxsZXRMaXN0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5vcmRlcmVkTGlzdCkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJvcmRlcmVkTGlzdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5vcmRlcmVkTGlzdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzT3JkZXJlZExpc3RcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlT3JkZXJlZExpc3RcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZU9yZGVyZWRMaXN0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5ibG9ja3F1b3RlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJsb2NrcXVvdGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYmxvY2txdW90ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQmxvY2txdW90ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCbG9ja3F1b3RlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCbG9ja3F1b3RlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChcbiAgICAgICAgY29uZmlnKCkuc2VwYXJhdG9yICYmXG4gICAgICAgIChjb25maWcoKS5hbGlnbkxlZnQgfHwgY29uZmlnKCkuYWxpZ25DZW50ZXIgfHwgY29uZmlnKCkuYWxpZ25SaWdodCB8fCBjb25maWcoKS5hbGlnbkp1c3RpZnkpXG4gICAgICApIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25MZWZ0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduTGVmdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkxlZnRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5hbGlnbkxlZnRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduTGVmdFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2xlZnQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmFsaWduQ2VudGVyKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuYWxpZ25DZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduQ2VudGVyXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdzZXRUZXh0QWxpZ24nLCAnY2VudGVyJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5hbGlnblJpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduUmlnaHRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYWxpZ25SaWdodFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduUmlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduUmlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3NldFRleHRBbGlnbicsICdyaWdodCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25KdXN0aWZ5KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkp1c3RpZnlcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5hbGlnbkp1c3RpZnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2p1c3RpZnknKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkubGluayB8fCBjb25maWcoKS5ob3Jpem9udGFsUnVsZSkpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkubGluaykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJsaW5rXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmxpbmtcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5saW5rXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUxpbmtcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUxpbmsnLCAkZXZlbnQpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaG9yaXpvbnRhbFJ1bGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uaW5zZXJ0SG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2luc2VydEhvcml6b250YWxSdWxlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS50YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ0YWJsZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS50YWJsZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5pbnNlcnRUYWJsZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnaW5zZXJ0VGFibGUnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiBjb25maWcoKS5pbWFnZSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5pbWFnZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJpbWFnZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5pbWFnZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5pbnNlcnRJbWFnZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnaW5zZXJ0SW1hZ2UnLCBpbWFnZVVwbG9hZCgpKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkudW5kbyB8fCBjb25maWcoKS5yZWRvKSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS51bmRvKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInVuZG9cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkudW5kb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi51bmRvXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd1bmRvJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5yZWRvKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInJlZG9cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkucmVkb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5yZWRvXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZWRvJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zZXBhcmF0b3IgJiYgY29uZmlnKCkuY2xlYXIpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuY2xlYXIpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiY2xlYXJDb250ZW50XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmNsZWFyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuaXNFZGl0YWJsZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnY2xlYXJDb250ZW50JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5jdXN0b20/Lmxlbmd0aCkge1xuICAgICAgICBAZm9yIChpdGVtIG9mIGNvbmZpZygpLmN1c3RvbTsgdHJhY2sgaXRlbS5rZXkpIHtcbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJpdGVtLmNvbW1hbmQoZWRpdG9yKCkpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyKSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogM3JlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIExldCBjbGlja3MgcGFzcyB0aHJvdWdoIHRvIGNvbnRlbnQgaWYgbm90IG9uIHRvb2xiYXIgKi9cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpmb2N1cy13aXRoaW4pLFxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpob3Zlcikge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvb2xiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWF0ZS10b29sYmFyLWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS10b29sYmFyLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9vbGJhci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWF0ZS10b29sYmFyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyhcbiAgICAgICAgICB2YXIoLS1hdGUtbWVudS1ib3JkZXItcmFkaXVzLCAxMnB4KSAtIHZhcigtLWF0ZS1ib3JkZXItd2lkdGgsIDJweClcbiAgICAgICAgKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGMoXG4gICAgICAgICAgdmFyKC0tYXRlLW1lbnUtYm9yZGVyLXJhZGl1cywgMTJweCkgLSB2YXIoLS1hdGUtYm9yZGVyLXdpZHRoLCAycHgpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8qIEZsb2F0aW5nIFRvb2xiYXIgTW9kZSAqL1xuICAgICAgLmF0ZS10b29sYmFyLmZsb2F0aW5nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1tZW51LWJvcmRlci1yYWRpdXMsIDEycHgpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hdGUtbWVudS1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWF0ZS1tZW51LXNoYWRvdykgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLW1lbnUtYmcpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS1tZW51LXBhZGRpbmcpICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9vbGJhci5mbG9hdGluZzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyOmZvY3VzLXdpdGhpbikgLmF0ZS10b29sYmFyLmZsb2F0aW5nLFxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpob3ZlcikgLmF0ZS10b29sYmFyLmZsb2F0aW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycmVtKTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyB0b29sYmFyU2xpZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF0ZS10b29sYmFyIHtcbiAgICAgICAgYW5pbWF0aW9uOiB0b29sYmFyU2xpZGVJbiAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXRlVG9vbGJhckNvbXBvbmVudCB7XG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcbiAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8QXRlVG9vbGJhckNvbmZpZz4oKTtcbiAgaW1hZ2VVcGxvYWQgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuICBmbG9hdGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIGkxOG5TZXJ2aWNlID0gaW5qZWN0KEF0ZUkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlZGl0b3JDb21tYW5kcyA9IGluamVjdChBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHQgPSB0aGlzLmkxOG5TZXJ2aWNlLnRvb2xiYXI7XG4gIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5lZGl0b3JDb21tYW5kcy5lZGl0b3JTdGF0ZTtcblxuICBvbkNvbW1hbmQoY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZWRpdG9yQ29tbWFuZHMuZXhlY3V0ZShlZGl0b3IsIGNvbW1hbmQsIC4uLmFyZ3MpO1xuICB9XG59XG4iXX0=
531
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL2F0ZS10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQTBWckYsTUFBTSxPQUFPLG1CQUFtQjtJQXRWaEM7UUF1VkUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBb0IsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLEtBQUssQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRWpELE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7S0FTbEQ7SUFQQyxTQUFTLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FsQlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2xCQWpWcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlQVCxzbERBMVBTLGtCQUFrQiw2TEFBRSxxQkFBcUIsMERBQUUsdUJBQXVCOzs0RkFrVmpFLG1CQUFtQjtrQkF0Vi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLFlBQ25FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5UFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBpbmplY3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gXCJAdGlwdGFwL2NvcmVcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JJMThuIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F0ZS1lZGl0b3ItaTE4bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuLi9jb2xvci1waWNrZXIvYXRlLWNvbG9yLXBpY2tlci5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgQXRlVG9vbGJhckNvbmZpZyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS10b29sYmFyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXRlQnV0dG9uQ29tcG9uZW50LCBBdGVTZXBhcmF0b3JDb21wb25lbnQsIEF0ZUNvbG9yUGlja2VyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXRlLXRvb2xiYXJcIiBbY2xhc3MuZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiPlxuICAgICAgQGlmIChjb25maWcoKS5ib2xkKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJvbGRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYm9sZFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLmJvbGRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQm9sZFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlQm9sZCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaXRhbGljKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cIml0YWxpY1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5pdGFsaWNcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5pdGFsaWNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSXRhbGljXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVJdGFsaWMnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnVuZGVybGluZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ1bmRlcmxpbmVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkudW5kZXJsaW5lXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3MudW5kZXJsaW5lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZVVuZGVybGluZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlVW5kZXJsaW5lJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdHJpa2UpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3RyaWtlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN0cmlrZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN0cmlrZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdHJpa2VcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN0cmlrZScpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuY29kZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjb2RlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmNvZGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5jb2RlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUNvZGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUNvZGUnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmNvZGVCbG9jaykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjb2RlQmxvY2tcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY29kZUJsb2NrXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaXNDb2RlQmxvY2tcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQ29kZUJsb2NrXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVDb2RlQmxvY2snKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnN1cGVyc2NyaXB0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3Muc3VwZXJzY3JpcHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlU3VwZXJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1cGVyc2NyaXB0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdWJzY3JpcHQpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3Vic2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdWJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1YnNjcmlwdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaGlnaGxpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhpZ2hsaWdodFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5oaWdobGlnaHRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5oaWdobGlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGlnaGxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVIaWdobGlnaHQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhpZ2hsaWdodFBpY2tlcikge1xuICAgICAgICA8YXRlLWNvbG9yLXBpY2tlclxuICAgICAgICAgIG1vZGU9XCJoaWdobGlnaHRcIlxuICAgICAgICAgIFtlZGl0b3JdPVwiZWRpdG9yKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0SGlnaGxpZ2h0XCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkudGV4dENvbG9yKSB7XG4gICAgICAgIDxhdGUtY29sb3ItcGlja2VyIG1vZGU9XCJ0ZXh0XCIgW2VkaXRvcl09XCJlZGl0b3IoKVwiIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0Q29sb3JcIiAvPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkuaGVhZGluZzEgfHwgY29uZmlnKCkuaGVhZGluZzIgfHwgY29uZmlnKCkuaGVhZGluZzMpKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcxKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmcxXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmcxXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzFcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAxKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcyKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmcyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmcyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzJcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAyKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmczKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmczXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmczXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzNcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAzKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKFxuICAgICAgICBjb25maWcoKS5zZXBhcmF0b3IgJiYgKGNvbmZpZygpLmJ1bGxldExpc3QgfHwgY29uZmlnKCkub3JkZXJlZExpc3QgfHwgY29uZmlnKCkuYmxvY2txdW90ZSlcbiAgICAgICkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5idWxsZXRMaXN0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJ1bGxldExpc3RcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYnVsbGV0TGlzdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQnVsbGV0TGlzdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCdWxsZXRMaXN0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCdWxsZXRMaXN0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5vcmRlcmVkTGlzdCkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJvcmRlcmVkTGlzdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5vcmRlcmVkTGlzdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzT3JkZXJlZExpc3RcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlT3JkZXJlZExpc3RcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZU9yZGVyZWRMaXN0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5ibG9ja3F1b3RlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJsb2NrcXVvdGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYmxvY2txdW90ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQmxvY2txdW90ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCbG9ja3F1b3RlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCbG9ja3F1b3RlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChcbiAgICAgICAgY29uZmlnKCkuc2VwYXJhdG9yICYmXG4gICAgICAgIChjb25maWcoKS5hbGlnbkxlZnQgfHwgY29uZmlnKCkuYWxpZ25DZW50ZXIgfHwgY29uZmlnKCkuYWxpZ25SaWdodCB8fCBjb25maWcoKS5hbGlnbkp1c3RpZnkpXG4gICAgICApIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25MZWZ0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduTGVmdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkxlZnRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5hbGlnbkxlZnRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduTGVmdFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2xlZnQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmFsaWduQ2VudGVyKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuYWxpZ25DZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduQ2VudGVyXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdzZXRUZXh0QWxpZ24nLCAnY2VudGVyJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5hbGlnblJpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduUmlnaHRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYWxpZ25SaWdodFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduUmlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduUmlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3NldFRleHRBbGlnbicsICdyaWdodCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25KdXN0aWZ5KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkp1c3RpZnlcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5hbGlnbkp1c3RpZnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2p1c3RpZnknKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkubGluayB8fCBjb25maWcoKS5ob3Jpem9udGFsUnVsZSkpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkubGluaykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJsaW5rXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmxpbmtcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5saW5rXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUxpbmtcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUxpbmsnLCAkZXZlbnQpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaG9yaXpvbnRhbFJ1bGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uaW5zZXJ0SG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2luc2VydEhvcml6b250YWxSdWxlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS50YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ0YWJsZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS50YWJsZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5pbnNlcnRUYWJsZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnaW5zZXJ0VGFibGUnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiBjb25maWcoKS5pbWFnZSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5pbWFnZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJpbWFnZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5pbWFnZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5pbnNlcnRJbWFnZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnaW5zZXJ0SW1hZ2UnLCBpbWFnZVVwbG9hZCgpKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkudW5kbyB8fCBjb25maWcoKS5yZWRvKSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS51bmRvKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInVuZG9cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkudW5kb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi51bmRvXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd1bmRvJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5yZWRvKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInJlZG9cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkucmVkb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5yZWRvXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZWRvJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zZXBhcmF0b3IgJiYgY29uZmlnKCkuY2xlYXIpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuY2xlYXIpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiY2xlYXJDb250ZW50XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmNsZWFyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuaXNFZGl0YWJsZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnY2xlYXJDb250ZW50JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5jdXN0b20/Lmxlbmd0aCkge1xuICAgICAgICBAZm9yIChpdGVtIG9mIGNvbmZpZygpLmN1c3RvbTsgdHJhY2sgaXRlbS5rZXkpIHtcbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJpdGVtLmNvbW1hbmQoZWRpdG9yKCkpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyKSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogM3JlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIExldCBjbGlja3MgcGFzcyB0aHJvdWdoIHRvIGNvbnRlbnQgaWYgbm90IG9uIHRvb2xiYXIgKi9cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpmb2N1cy13aXRoaW4pLFxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpob3Zlcikge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvb2xiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWF0ZS10b29sYmFyLWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS10b29sYmFyLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9vbGJhci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWF0ZS10b29sYmFyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyhcbiAgICAgICAgICB2YXIoLS1hdGUtbWVudS1ib3JkZXItcmFkaXVzLCAxMnB4KSAtIHZhcigtLWF0ZS1ib3JkZXItd2lkdGgsIDJweClcbiAgICAgICAgKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGMoXG4gICAgICAgICAgdmFyKC0tYXRlLW1lbnUtYm9yZGVyLXJhZGl1cywgMTJweCkgLSB2YXIoLS1hdGUtYm9yZGVyLXdpZHRoLCAycHgpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8qIEZsb2F0aW5nIFRvb2xiYXIgTW9kZSAqL1xuICAgICAgLmF0ZS10b29sYmFyLmZsb2F0aW5nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1tZW51LWJvcmRlci1yYWRpdXMsIDEycHgpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hdGUtbWVudS1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWF0ZS1tZW51LXNoYWRvdykgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLW1lbnUtYmcpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS1tZW51LXBhZGRpbmcpICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9vbGJhci5mbG9hdGluZzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyOmZvY3VzLXdpdGhpbikgLmF0ZS10b29sYmFyLmZsb2F0aW5nLFxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpob3ZlcikgLmF0ZS10b29sYmFyLmZsb2F0aW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycmVtKTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyB0b29sYmFyU2xpZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF0ZS10b29sYmFyIHtcbiAgICAgICAgYW5pbWF0aW9uOiB0b29sYmFyU2xpZGVJbiAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXRlVG9vbGJhckNvbXBvbmVudCB7XG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcbiAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8QXRlVG9vbGJhckNvbmZpZz4oKTtcbiAgaW1hZ2VVcGxvYWQgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuICBmbG9hdGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIGkxOG5TZXJ2aWNlID0gaW5qZWN0KEF0ZUVkaXRvckkxOG4pO1xuICBwcml2YXRlIGVkaXRvckNvbW1hbmRzID0gaW5qZWN0KEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdCA9IHRoaXMuaTE4blNlcnZpY2UudG9vbGJhcjtcbiAgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLmVkaXRvckNvbW1hbmRzLmVkaXRvclN0YXRlO1xuXG4gIG9uQ29tbWFuZChjb21tYW5kOiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5lZGl0b3JDb21tYW5kcy5leGVjdXRlKGVkaXRvciwgY29tbWFuZCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
@@ -85,6 +85,11 @@ export const ATE_DEFAULT_IMAGE_UPLOAD_CONFIG = {
85
85
  allowedTypes: ["image/jpeg", "image/png", "image/gif", "image/webp"],
86
86
  quality: 0.8,
87
87
  };
88
+ /** Default paste settings: everything pasted from other apps is kept */
89
+ export const ATE_DEFAULT_PASTE_CONFIG = {
90
+ colors: true,
91
+ highlights: true,
92
+ };
88
93
  /**
89
94
  * Ultimate default configuration for the Angular Tiptap Editor.
90
95
  * This serves as the 'Level 4' fallback in the configuration hierarchy:
@@ -123,6 +128,7 @@ export const ATE_DEFAULT_CONFIG = {
123
128
  bubbleMenu: ATE_DEFAULT_BUBBLE_MENU_CONFIG,
124
129
  imageBubbleMenu: ATE_DEFAULT_IMAGE_BUBBLE_MENU_CONFIG,
125
130
  imageUpload: ATE_DEFAULT_IMAGE_UPLOAD_CONFIG,
131
+ paste: ATE_DEFAULT_PASTE_CONFIG,
126
132
  tableBubbleMenu: ATE_DEFAULT_TABLE_MENU_CONFIG,
127
133
  cellBubbleMenu: ATE_DEFAULT_CELL_MENU_CONFIG,
128
134
  slashCommands: {},
@@ -132,4 +138,4 @@ export const ATE_DEFAULT_CONFIG = {
132
138
  stateCalculators: [],
133
139
  angularNodes: [],
134
140
  };
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWVkaXRvci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb25maWcvYXRlLWVkaXRvci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsZ0NBQWdDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFxQjtJQUMxRCxJQUFJLEVBQUUsSUFBSTtJQUNWLE1BQU0sRUFBRSxJQUFJO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNuRCxTQUFTLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNqRCxTQUFTLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNqRCxlQUFlLEVBQUUsSUFBSTtJQUNyQixRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNqRCxXQUFXLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNuRCxVQUFVLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNsRCxZQUFZLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNwRCxJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsY0FBYyxFQUFFLEtBQUssRUFBRSwrQkFBK0I7SUFDdEQsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsSUFBSTtJQUNWLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLEtBQUssRUFBRSwrQkFBK0I7SUFDN0MsU0FBUyxFQUFF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QTBCO0lBQ25DLFVBQVUsRUFBRSw4QkFBOEI7SUFDMUMsZUFBZSxFQUFFLG9DQUFvQztJQUNyRCxXQUFXLEVBQUUsK0JBQStCO0lBQzVDLGVBQWUsRUFBRSw2QkFBNkI7SUFDOUMsY0FBYyxFQUFFLDRCQUE0QjtJQUM1QyxhQUFhLEVBQUUsRUFBRTtJQUNqQixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLGlCQUFpQixFQUFFLEVBQUU7SUFDckIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixZQUFZLEVBQUUsRUFBRTtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRlVG9vbGJhckNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWxcIjtcbmltcG9ydCB7XG4gIEF0ZUJ1YmJsZU1lbnVDb25maWcsXG4gIEF0ZUltYWdlQnViYmxlTWVudUNvbmZpZyxcbiAgQXRlVGFibGVCdWJibGVNZW51Q29uZmlnLFxuICBBdGVDZWxsQnViYmxlTWVudUNvbmZpZyxcbn0gZnJvbSBcIi4uL21vZGVscy9hdGUtYnViYmxlLW1lbnUubW9kZWxcIjtcbmltcG9ydCB7IEF0ZUltYWdlVXBsb2FkQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9hdGUtaW1hZ2UubW9kZWxcIjtcblxuLy8gRGVmYXVsdCB0b29sYmFyIGNvbmZpZ3VyYXRpb25cbmV4cG9ydCBjb25zdCBBVEVfREVGQVVMVF9UT09MQkFSX0NPTkZJRzogQXRlVG9vbGJhckNvbmZpZyA9IHtcbiAgYm9sZDogdHJ1ZSxcbiAgaXRhbGljOiB0cnVlLFxuICB1bmRlcmxpbmU6IHRydWUsXG4gIHN0cmlrZTogdHJ1ZSxcbiAgY29kZTogdHJ1ZSxcbiAgY29kZUJsb2NrOiB0cnVlLFxuICBzdXBlcnNjcmlwdDogZmFsc2UsIC8vIERpc2FibGVkIGJ5IGRlZmF1bHQgKG9wdC1pbilcbiAgc3Vic2NyaXB0OiBmYWxzZSwgLy8gRGlzYWJsZWQgYnkgZGVmYXVsdCAob3B0LWluKVxuICBoaWdobGlnaHQ6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIGhpZ2hsaWdodFBpY2tlcjogdHJ1ZSxcbiAgaGVhZGluZzE6IHRydWUsXG4gIGhlYWRpbmcyOiB0cnVlLFxuICBoZWFkaW5nMzogdHJ1ZSxcbiAgYnVsbGV0TGlzdDogdHJ1ZSxcbiAgb3JkZXJlZExpc3Q6IHRydWUsXG4gIGJsb2NrcXVvdGU6IHRydWUsXG4gIGFsaWduTGVmdDogZmFsc2UsIC8vIERpc2FibGVkIGJ5IGRlZmF1bHQgKG9wdC1pbilcbiAgYWxpZ25DZW50ZXI6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIGFsaWduUmlnaHQ6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIGFsaWduSnVzdGlmeTogZmFsc2UsIC8vIERpc2FibGVkIGJ5IGRlZmF1bHQgKG9wdC1pbilcbiAgbGluazogdHJ1ZSxcbiAgaW1hZ2U6IHRydWUsXG4gIGhvcml6b250YWxSdWxlOiBmYWxzZSwgLy8gRGlzYWJsZWQgYnkgZGVmYXVsdCAob3B0LWluKVxuICB0YWJsZTogdHJ1ZSxcbiAgdW5kbzogdHJ1ZSxcbiAgcmVkbzogdHJ1ZSxcbiAgY2xlYXI6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIHRleHRDb2xvcjogdHJ1ZSxcbiAgc2VwYXJhdG9yOiB0cnVlLFxufTtcblxuLy8gRGVmYXVsdCBidWJibGUgbWVudSBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgQVRFX0RFRkFVTFRfQlVCQkxFX01FTlVfQ09ORklHOiBBdGVCdWJibGVNZW51Q29uZmlnID0ge1xuICBib2xkOiB0cnVlLFxuICBpdGFsaWM6IHRydWUsXG4gIHVuZGVybGluZTogdHJ1ZSxcbiAgc3RyaWtlOiB0cnVlLFxuICBjb2RlOiB0cnVlLFxuICBzdXBlcnNjcmlwdDogZmFsc2UsXG4gIHN1YnNjcmlwdDogZmFsc2UsXG4gIGhpZ2hsaWdodDogZmFsc2UsXG4gIGhpZ2hsaWdodFBpY2tlcjogdHJ1ZSxcbiAgdGV4dENvbG9yOiB0cnVlLFxuICBsaW5rOiB0cnVlLFxuICBzZXBhcmF0b3I6IHRydWUsXG59O1xuXG4vLyBEZWZhdWx0IGltYWdlIGJ1YmJsZSBtZW51IGNvbmZpZ3VyYXRpb25cbmV4cG9ydCBjb25zdCBBVEVfREVGQVVMVF9JTUFHRV9CVUJCTEVfTUVOVV9DT05GSUc6IEF0ZUltYWdlQnViYmxlTWVudUNvbmZpZyA9IHtcbiAgY2hhbmdlSW1hZ2U6IHRydWUsXG4gIGRvd25sb2FkSW1hZ2U6IHRydWUsXG4gIHJlc2l6ZVNtYWxsOiB0cnVlLFxuICByZXNpemVNZWRpdW06IHRydWUsXG4gIHJlc2l6ZUxhcmdlOiB0cnVlLFxuICByZXNpemVPcmlnaW5hbDogdHJ1ZSxcbiAgYWxpZ25MZWZ0OiB0cnVlLFxuICBhbGlnbkNlbnRlcjogdHJ1ZSxcbiAgYWxpZ25SaWdodDogdHJ1ZSxcbiAgZGVsZXRlSW1hZ2U6IHRydWUsXG4gIHNlcGFyYXRvcjogdHJ1ZSxcbn07XG5cbi8vIERlZmF1bHQgdGFibGUgYnViYmxlIG1lbnUgY29uZmlndXJhdGlvblxuZXhwb3J0IGNvbnN0IEFURV9ERUZBVUxUX1RBQkxFX01FTlVfQ09ORklHOiBBdGVUYWJsZUJ1YmJsZU1lbnVDb25maWcgPSB7XG4gIGFkZFJvd0JlZm9yZTogdHJ1ZSxcbiAgYWRkUm93QWZ0ZXI6IHRydWUsXG4gIGRlbGV0ZVJvdzogdHJ1ZSxcbiAgYWRkQ29sdW1uQmVmb3JlOiB0cnVlLFxuICBhZGRDb2x1bW5BZnRlcjogdHJ1ZSxcbiAgZGVsZXRlQ29sdW1uOiB0cnVlLFxuICB0b2dnbGVIZWFkZXJSb3c6IHRydWUsXG4gIHRvZ2dsZUhlYWRlckNvbHVtbjogdHJ1ZSxcbiAgZGVsZXRlVGFibGU6IHRydWUsXG4gIHNlcGFyYXRvcjogdHJ1ZSxcbn07XG5cbi8vIERlZmF1bHQgY2VsbCBidWJibGUgbWVudSBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgQVRFX0RFRkFVTFRfQ0VMTF9NRU5VX0NPTkZJRzogQXRlQ2VsbEJ1YmJsZU1lbnVDb25maWcgPSB7XG4gIG1lcmdlQ2VsbHM6IHRydWUsXG4gIHNwbGl0Q2VsbDogdHJ1ZSxcbn07XG5cbi8vIERlZmF1bHQgaW1hZ2UgdXBsb2FkIGNvbmZpZ3VyYXRpb25cbmV4cG9ydCBjb25zdCBBVEVfREVGQVVMVF9JTUFHRV9VUExPQURfQ09ORklHOiBBdGVJbWFnZVVwbG9hZENvbmZpZyA9IHtcbiAgbWF4U2l6ZTogNSwgLy8gNU1CXG4gIG1heFdpZHRoOiAxOTIwLFxuICBtYXhIZWlnaHQ6IDEwODAsXG4gIGFsbG93ZWRUeXBlczogW1wiaW1hZ2UvanBlZ1wiLCBcImltYWdlL3BuZ1wiLCBcImltYWdlL2dpZlwiLCBcImltYWdlL3dlYnBcIl0sXG4gIHF1YWxpdHk6IDAuOCxcbn07XG5cbmltcG9ydCB7IEF0ZUVkaXRvckNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvYXRlLWVkaXRvci1jb25maWcubW9kZWxcIjtcblxuLyoqXG4gKiBVbHRpbWF0ZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbmd1bGFyIFRpcHRhcCBFZGl0b3IuXG4gKiBUaGlzIHNlcnZlcyBhcyB0aGUgJ0xldmVsIDQnIGZhbGxiYWNrIGluIHRoZSBjb25maWd1cmF0aW9uIGhpZXJhcmNoeTpcbiAqIDEuIENvbXBvbmVudCBJbnB1dHMgKExlIFJvaSlcbiAqIDIuIENvbXBvbmVudCBbY29uZmlnXSAoTGUgUHJpbmNlKVxuICogMy4gR2xvYmFsIHByb3ZpZGVBdGVFZGl0b3IoKSAoTGUgRHVjKVxuICogNC4gQVRFX0RFRkFVTFRfQ09ORklHIChMZSBQZXVwbGUpXG4gKi9cbmV4cG9ydCBjb25zdCBBVEVfREVGQVVMVF9DT05GSUc6IEF0ZUVkaXRvckNvbmZpZyA9IHtcbiAgdGhlbWU6IFwiYXV0b1wiLFxuICBtb2RlOiBcImNsYXNzaWNcIixcbiAgaGVpZ2h0OiBcImF1dG9cIixcbiAgbWluSGVpZ2h0OiBcIjIwMHB4XCIsXG4gIG1heEhlaWdodDogXCJub25lXCIsXG4gIGZpbGxDb250YWluZXI6IGZhbHNlLFxuICBhdXRvZm9jdXM6IGZhbHNlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBzcGVsbGNoZWNrOiB0cnVlLFxuICBlbmFibGVPZmZpY2VQYXN0ZTogdHJ1ZSxcbiAgc2hvd1Rvb2xiYXI6IHRydWUsXG4gIHNob3dGb290ZXI6IHRydWUsXG4gIHNob3dDaGFyYWN0ZXJDb3VudDogdHJ1ZSxcbiAgc2hvd1dvcmRDb3VudDogdHJ1ZSxcbiAgc2hvd0VkaXRUb2dnbGU6IGZhbHNlLFxuICBzaG93QnViYmxlTWVudTogdHJ1ZSxcbiAgc2hvd0ltYWdlQnViYmxlTWVudTogdHJ1ZSxcbiAgZG93bmxvYWRJbWFnZTogdHJ1ZSxcbiAgc2hvd1RhYmxlTWVudTogdHJ1ZSxcbiAgc2hvd0NlbGxNZW51OiB0cnVlLFxuICBlbmFibGVTbGFzaENvbW1hbmRzOiB0cnVlLFxuICBlbmFibGVCbG9ja1Nob3J0Y3V0czogdHJ1ZSxcbiAgYmxvY2tDb250cm9sczogXCJub25lXCIsXG4gIGZsb2F0aW5nVG9vbGJhcjogZmFsc2UsXG4gIHRvb2xiYXI6IEFURV9ERUZBVUxUX1RPT0xCQVJfQ09ORklHLFxuICBidWJibGVNZW51OiBBVEVfREVGQVVMVF9CVUJCTEVfTUVOVV9DT05GSUcsXG4gIGltYWdlQnViYmxlTWVudTogQVRFX0RFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHLFxuICBpbWFnZVVwbG9hZDogQVRFX0RFRkFVTFRfSU1BR0VfVVBMT0FEX0NPTkZJRyxcbiAgdGFibGVCdWJibGVNZW51OiBBVEVfREVGQVVMVF9UQUJMRV9NRU5VX0NPTkZJRyxcbiAgY2VsbEJ1YmJsZU1lbnU6IEFURV9ERUZBVUxUX0NFTExfTUVOVV9DT05GSUcsXG4gIHNsYXNoQ29tbWFuZHM6IHt9LFxuICB0aXB0YXBFeHRlbnNpb25zOiBbXSxcbiAgdGlwdGFwT3B0aW9uczoge30sXG4gIHN0YXJ0ZXJLaXRPcHRpb25zOiB7fSxcbiAgc3RhdGVDYWxjdWxhdG9yczogW10sXG4gIGFuZ3VsYXJOb2RlczogW10sXG59O1xuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWVkaXRvci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb25maWcvYXRlLWVkaXRvci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsZ0NBQWdDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFxQjtJQUMxRCxJQUFJLEVBQUUsSUFBSTtJQUNWLE1BQU0sRUFBRSxJQUFJO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNuRCxTQUFTLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNqRCxTQUFTLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNqRCxlQUFlLEVBQUUsSUFBSTtJQUNyQixRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNqRCxXQUFXLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNuRCxVQUFVLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNsRCxZQUFZLEVBQUUsS0FBSyxFQUFFLCtCQUErQjtJQUNwRCxJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsY0FBYyxFQUFFLEtBQUssRUFBRSwrQkFBK0I7SUFDdEQsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsSUFBSTtJQUNWLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLEtBQUssRUFBRSwrQkFBK0I7SUFDN0MsU0FBUyxFQUFF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QW1CLEVBQUUsSUFBSTtJQUN6QixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsVUFBVSxFQUFFLDhCQUE4QjtJQUMxQyxlQUFlLEVBQUUsb0NBQW9DO0lBQ3JELFdBQVcsRUFBRSwrQkFBK0I7SUFDNUMsS0FBSyxFQUFFLHdCQUF3QjtJQUMvQixlQUFlLEVBQUUsNkJBQTZCO0lBQzlDLGNBQWMsRUFBRSw0QkFBNEI7SUFDNUMsYUFBYSxFQUFFLEVBQUU7SUFDakIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixhQUFhLEVBQUUsRUFBRTtJQUNqQixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLGdCQUFnQixFQUFFLEVBQUU7SUFDcEIsWUFBWSxFQUFFLEVBQUU7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0ZVRvb2xiYXJDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2F0ZS10b29sYmFyLm1vZGVsXCI7XG5pbXBvcnQge1xuICBBdGVCdWJibGVNZW51Q29uZmlnLFxuICBBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWcsXG4gIEF0ZVRhYmxlQnViYmxlTWVudUNvbmZpZyxcbiAgQXRlQ2VsbEJ1YmJsZU1lbnVDb25maWcsXG59IGZyb20gXCIuLi9tb2RlbHMvYXRlLWJ1YmJsZS1tZW51Lm1vZGVsXCI7XG5pbXBvcnQgeyBBdGVJbWFnZVVwbG9hZENvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvYXRlLWltYWdlLm1vZGVsXCI7XG5cbi8vIERlZmF1bHQgdG9vbGJhciBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgQVRFX0RFRkFVTFRfVE9PTEJBUl9DT05GSUc6IEF0ZVRvb2xiYXJDb25maWcgPSB7XG4gIGJvbGQ6IHRydWUsXG4gIGl0YWxpYzogdHJ1ZSxcbiAgdW5kZXJsaW5lOiB0cnVlLFxuICBzdHJpa2U6IHRydWUsXG4gIGNvZGU6IHRydWUsXG4gIGNvZGVCbG9jazogdHJ1ZSxcbiAgc3VwZXJzY3JpcHQ6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIHN1YnNjcmlwdDogZmFsc2UsIC8vIERpc2FibGVkIGJ5IGRlZmF1bHQgKG9wdC1pbilcbiAgaGlnaGxpZ2h0OiBmYWxzZSwgLy8gRGlzYWJsZWQgYnkgZGVmYXVsdCAob3B0LWluKVxuICBoaWdobGlnaHRQaWNrZXI6IHRydWUsXG4gIGhlYWRpbmcxOiB0cnVlLFxuICBoZWFkaW5nMjogdHJ1ZSxcbiAgaGVhZGluZzM6IHRydWUsXG4gIGJ1bGxldExpc3Q6IHRydWUsXG4gIG9yZGVyZWRMaXN0OiB0cnVlLFxuICBibG9ja3F1b3RlOiB0cnVlLFxuICBhbGlnbkxlZnQ6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIGFsaWduQ2VudGVyOiBmYWxzZSwgLy8gRGlzYWJsZWQgYnkgZGVmYXVsdCAob3B0LWluKVxuICBhbGlnblJpZ2h0OiBmYWxzZSwgLy8gRGlzYWJsZWQgYnkgZGVmYXVsdCAob3B0LWluKVxuICBhbGlnbkp1c3RpZnk6IGZhbHNlLCAvLyBEaXNhYmxlZCBieSBkZWZhdWx0IChvcHQtaW4pXG4gIGxpbms6IHRydWUsXG4gIGltYWdlOiB0cnVlLFxuICBob3Jpem9udGFsUnVsZTogZmFsc2UsIC8vIERpc2FibGVkIGJ5IGRlZmF1bHQgKG9wdC1pbilcbiAgdGFibGU6IHRydWUsXG4gIHVuZG86IHRydWUsXG4gIHJlZG86IHRydWUsXG4gIGNsZWFyOiBmYWxzZSwgLy8gRGlzYWJsZWQgYnkgZGVmYXVsdCAob3B0LWluKVxuICB0ZXh0Q29sb3I6IHRydWUsXG4gIHNlcGFyYXRvcjogdHJ1ZSxcbn07XG5cbi8vIERlZmF1bHQgYnViYmxlIG1lbnUgY29uZmlndXJhdGlvblxuZXhwb3J0IGNvbnN0IEFURV9ERUZBVUxUX0JVQkJMRV9NRU5VX0NPTkZJRzogQXRlQnViYmxlTWVudUNvbmZpZyA9IHtcbiAgYm9sZDogdHJ1ZSxcbiAgaXRhbGljOiB0cnVlLFxuICB1bmRlcmxpbmU6IHRydWUsXG4gIHN0cmlrZTogdHJ1ZSxcbiAgY29kZTogdHJ1ZSxcbiAgc3VwZXJzY3JpcHQ6IGZhbHNlLFxuICBzdWJzY3JpcHQ6IGZhbHNlLFxuICBoaWdobGlnaHQ6IGZhbHNlLFxuICBoaWdobGlnaHRQaWNrZXI6IHRydWUsXG4gIHRleHRDb2xvcjogdHJ1ZSxcbiAgbGluazogdHJ1ZSxcbiAgc2VwYXJhdG9yOiB0cnVlLFxufTtcblxuLy8gRGVmYXVsdCBpbWFnZSBidWJibGUgbWVudSBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgQVRFX0RFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHOiBBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWcgPSB7XG4gIGNoYW5nZUltYWdlOiB0cnVlLFxuICBkb3dubG9hZEltYWdlOiB0cnVlLFxuICByZXNpemVTbWFsbDogdHJ1ZSxcbiAgcmVzaXplTWVkaXVtOiB0cnVlLFxuICByZXNpemVMYXJnZTogdHJ1ZSxcbiAgcmVzaXplT3JpZ2luYWw6IHRydWUsXG4gIGFsaWduTGVmdDogdHJ1ZSxcbiAgYWxpZ25DZW50ZXI6IHRydWUsXG4gIGFsaWduUmlnaHQ6IHRydWUsXG4gIGRlbGV0ZUltYWdlOiB0cnVlLFxuICBzZXBhcmF0b3I6IHRydWUsXG59O1xuXG4vLyBEZWZhdWx0IHRhYmxlIGJ1YmJsZSBtZW51IGNvbmZpZ3VyYXRpb25cbmV4cG9ydCBjb25zdCBBVEVfREVGQVVMVF9UQUJMRV9NRU5VX0NPTkZJRzogQXRlVGFibGVCdWJibGVNZW51Q29uZmlnID0ge1xuICBhZGRSb3dCZWZvcmU6IHRydWUsXG4gIGFkZFJvd0FmdGVyOiB0cnVlLFxuICBkZWxldGVSb3c6IHRydWUsXG4gIGFkZENvbHVtbkJlZm9yZTogdHJ1ZSxcbiAgYWRkQ29sdW1uQWZ0ZXI6IHRydWUsXG4gIGRlbGV0ZUNvbHVtbjogdHJ1ZSxcbiAgdG9nZ2xlSGVhZGVyUm93OiB0cnVlLFxuICB0b2dnbGVIZWFkZXJDb2x1bW46IHRydWUsXG4gIGRlbGV0ZVRhYmxlOiB0cnVlLFxuICBzZXBhcmF0b3I6IHRydWUsXG59O1xuXG4vLyBEZWZhdWx0IGNlbGwgYnViYmxlIG1lbnUgY29uZmlndXJhdGlvblxuZXhwb3J0IGNvbnN0IEFURV9ERUZBVUxUX0NFTExfTUVOVV9DT05GSUc6IEF0ZUNlbGxCdWJibGVNZW51Q29uZmlnID0ge1xuICBtZXJnZUNlbGxzOiB0cnVlLFxuICBzcGxpdENlbGw6IHRydWUsXG59O1xuXG4vLyBEZWZhdWx0IGltYWdlIHVwbG9hZCBjb25maWd1cmF0aW9uXG5leHBvcnQgY29uc3QgQVRFX0RFRkFVTFRfSU1BR0VfVVBMT0FEX0NPTkZJRzogQXRlSW1hZ2VVcGxvYWRDb25maWcgPSB7XG4gIG1heFNpemU6IDUsIC8vIDVNQlxuICBtYXhXaWR0aDogMTkyMCxcbiAgbWF4SGVpZ2h0OiAxMDgwLFxuICBhbGxvd2VkVHlwZXM6IFtcImltYWdlL2pwZWdcIiwgXCJpbWFnZS9wbmdcIiwgXCJpbWFnZS9naWZcIiwgXCJpbWFnZS93ZWJwXCJdLFxuICBxdWFsaXR5OiAwLjgsXG59O1xuXG5pbXBvcnQgeyBBdGVFZGl0b3JDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2F0ZS1lZGl0b3ItY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQgeyBBdGVQYXN0ZUNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvYXRlLXBhc3RlLm1vZGVsXCI7XG5cbi8qKiBEZWZhdWx0IHBhc3RlIHNldHRpbmdzOiBldmVyeXRoaW5nIHBhc3RlZCBmcm9tIG90aGVyIGFwcHMgaXMga2VwdCAqL1xuZXhwb3J0IGNvbnN0IEFURV9ERUZBVUxUX1BBU1RFX0NPTkZJRzogQXRlUGFzdGVDb25maWcgPSB7XG4gIGNvbG9yczogdHJ1ZSxcbiAgaGlnaGxpZ2h0czogdHJ1ZSxcbn07XG5cbi8qKlxuICogVWx0aW1hdGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgQW5ndWxhciBUaXB0YXAgRWRpdG9yLlxuICogVGhpcyBzZXJ2ZXMgYXMgdGhlICdMZXZlbCA0JyBmYWxsYmFjayBpbiB0aGUgY29uZmlndXJhdGlvbiBoaWVyYXJjaHk6XG4gKiAxLiBDb21wb25lbnQgSW5wdXRzIChMZSBSb2kpXG4gKiAyLiBDb21wb25lbnQgW2NvbmZpZ10gKExlIFByaW5jZSlcbiAqIDMuIEdsb2JhbCBwcm92aWRlQXRlRWRpdG9yKCkgKExlIER1YylcbiAqIDQuIEFURV9ERUZBVUxUX0NPTkZJRyAoTGUgUGV1cGxlKVxuICovXG5leHBvcnQgY29uc3QgQVRFX0RFRkFVTFRfQ09ORklHOiBBdGVFZGl0b3JDb25maWcgPSB7XG4gIHRoZW1lOiBcImF1dG9cIixcbiAgbW9kZTogXCJjbGFzc2ljXCIsXG4gIGhlaWdodDogXCJhdXRvXCIsXG4gIG1pbkhlaWdodDogXCIyMDBweFwiLFxuICBtYXhIZWlnaHQ6IFwibm9uZVwiLFxuICBmaWxsQ29udGFpbmVyOiBmYWxzZSxcbiAgYXV0b2ZvY3VzOiBmYWxzZSxcbiAgZWRpdGFibGU6IHRydWUsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgc3BlbGxjaGVjazogdHJ1ZSxcbiAgZW5hYmxlT2ZmaWNlUGFzdGU6IHRydWUsXG4gIHNob3dUb29sYmFyOiB0cnVlLFxuICBzaG93Rm9vdGVyOiB0cnVlLFxuICBzaG93Q2hhcmFjdGVyQ291bnQ6IHRydWUsXG4gIHNob3dXb3JkQ291bnQ6IHRydWUsXG4gIHNob3dFZGl0VG9nZ2xlOiBmYWxzZSxcbiAgc2hvd0J1YmJsZU1lbnU6IHRydWUsXG4gIHNob3dJbWFnZUJ1YmJsZU1lbnU6IHRydWUsXG4gIGRvd25sb2FkSW1hZ2U6IHRydWUsXG4gIHNob3dUYWJsZU1lbnU6IHRydWUsXG4gIHNob3dDZWxsTWVudTogdHJ1ZSxcbiAgZW5hYmxlU2xhc2hDb21tYW5kczogdHJ1ZSxcbiAgZW5hYmxlQmxvY2tTaG9ydGN1dHM6IHRydWUsXG4gIGJsb2NrQ29udHJvbHM6IFwibm9uZVwiLFxuICBmbG9hdGluZ1Rvb2xiYXI6IGZhbHNlLFxuICB0b29sYmFyOiBBVEVfREVGQVVMVF9UT09MQkFSX0NPTkZJRyxcbiAgYnViYmxlTWVudTogQVRFX0RFRkFVTFRfQlVCQkxFX01FTlVfQ09ORklHLFxuICBpbWFnZUJ1YmJsZU1lbnU6IEFURV9ERUZBVUxUX0lNQUdFX0JVQkJMRV9NRU5VX0NPTkZJRyxcbiAgaW1hZ2VVcGxvYWQ6IEFURV9ERUZBVUxUX0lNQUdFX1VQTE9BRF9DT05GSUcsXG4gIHBhc3RlOiBBVEVfREVGQVVMVF9QQVNURV9DT05GSUcsXG4gIHRhYmxlQnViYmxlTWVudTogQVRFX0RFRkFVTFRfVEFCTEVfTUVOVV9DT05GSUcsXG4gIGNlbGxCdWJibGVNZW51OiBBVEVfREVGQVVMVF9DRUxMX01FTlVfQ09ORklHLFxuICBzbGFzaENvbW1hbmRzOiB7fSxcbiAgdGlwdGFwRXh0ZW5zaW9uczogW10sXG4gIHRpcHRhcE9wdGlvbnM6IHt9LFxuICBzdGFydGVyS2l0T3B0aW9uczoge30sXG4gIHN0YXRlQ2FsY3VsYXRvcnM6IFtdLFxuICBhbmd1bGFyTm9kZXM6IFtdLFxufTtcbiJdfQ==
@@ -137,4 +137,4 @@ export function filterSlashCommands(config, i18n, commands, imageOptions) {
137
137
  }
138
138
  return filtered;
139
139
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXNsYXNoLWNvbW1hbmRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbmZpZy9hdGUtc2xhc2gtY29tbWFuZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsWUFBWTtJQUNaLGFBQWE7SUFDYixZQUFZO0lBQ1osTUFBTTtJQUNOLE9BQU87SUFDUCxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLGlCQUFpQjtDQUNULENBQUM7QUFlWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUEyQjtJQUN2RSxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsSUFBSTtJQUNoQixJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsY0FBYyxFQUFFLElBQUk7SUFDcEIsS0FBSyxFQUFFLElBQUk7SUFDWCxlQUFlLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxJQUFvQixFQUNwQixRQUFrQyxFQUNsQyxZQU1DO0lBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRS9CLE9BQU87UUFDTDtZQUNFLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDdkIsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVztZQUNuQyxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUUsQ0FBQyxDQUFD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OUIsSUFBb0IsRUFDcEIsUUFBa0MsRUFDbEMsWUFNQztJQUVELE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUUsTUFBTSxZQUFZLEdBQUcsRUFBRSxHQUFHLGlDQUFpQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFekUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEQsT0FBTyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuaW1wb3J0IHsgQXRlU2xhc2hDb21tYW5kSXRlbSB9IGZyb20gXCIuLi9tb2RlbHMvYXRlLXNsYXNoLWNvbW1hbmQubW9kZWxcIjtcbmltcG9ydCB7IEF0ZUkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2F0ZS1pMThuLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9hdGUtZWRpdG9yLWNvbW1hbmRzLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBDbMOpcyBkZXMgY29tbWFuZGVzIG5hdGl2ZXMgZGFucyBsJ29yZHJlIGQnYWZmaWNoYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBBVEVfU0xBU0hfQ09NTUFORF9LRVlTID0gW1xuICBcImhlYWRpbmcxXCIsXG4gIFwiaGVhZGluZzJcIixcbiAgXCJoZWFkaW5nM1wiLFxuICBcImJ1bGxldExpc3RcIixcbiAgXCJvcmRlcmVkTGlzdFwiLFxuICBcImJsb2NrcXVvdGVcIixcbiAgXCJjb2RlXCIsXG4gIFwiaW1hZ2VcIixcbiAgXCJob3Jpem9udGFsUnVsZVwiLFxuICBcInRhYmxlXCIsXG4gIFwidGFibGVPZkNvbnRlbnRzXCIsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBBdGVTbGFzaENvbW1hbmRLZXkgPSAodHlwZW9mIEFURV9TTEFTSF9DT01NQU5EX0tFWVMpW251bWJlcl07XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBzaW1wbGlmacOpZSBwb3VyIGFjdGl2ZXIvZMOpc2FjdGl2ZXIgbGVzIHNsYXNoIGNvbW1hbmRzIG5hdGl2ZXMuXG4gKiBQZXJtZXQgYXVzc2kgZCdham91dGVyIGRlcyBjb21tYW5kZXMgcGVyc29ubmFsaXPDqWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0ZVNsYXNoQ29tbWFuZHNDb25maWcgZXh0ZW5kcyBQYXJ0aWFsPFJlY29yZDxBdGVTbGFzaENvbW1hbmRLZXksIGJvb2xlYW4+PiB7XG4gIC8qKlxuICAgKiBMaXN0ZSBkZSBjb21tYW5kZXMgc3VwcGzDqW1lbnRhaXJlcyDDoCBham91dGVyIMOgIGxhIGZpbiBkdSBtZW51XG4gICAqL1xuICBjdXN0b20/OiBBdGVTbGFzaENvbW1hbmRJdGVtW107XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwYXIgZMOpZmF1dCA6IHRvdXRlcyBsZXMgY29tbWFuZGVzIG5hdGl2ZXMgc29udCBhY3RpdsOpZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEFURV9ERUZBVUxUX1NMQVNIX0NPTU1BTkRTX0NPTkZJRzogQXRlU2xhc2hDb21tYW5kc0NvbmZpZyA9IHtcbiAgaGVhZGluZzE6IHRydWUsXG4gIGhlYWRpbmcyOiB0cnVlLFxuICBoZWFkaW5nMzogdHJ1ZSxcbiAgYnVsbGV0TGlzdDogdHJ1ZSxcbiAgb3JkZXJlZExpc3Q6IHRydWUsXG4gIGJsb2NrcXVvdGU6IHRydWUsXG4gIGNvZGU6IHRydWUsXG4gIGltYWdlOiB0cnVlLFxuICBob3Jpem9udGFsUnVsZTogdHJ1ZSxcbiAgdGFibGU6IHRydWUsXG4gIHRhYmxlT2ZDb250ZW50czogZmFsc2UsXG59O1xuXG4vKipcbiAqIEZhY3RvcnkgcG91ciBjcsOpZXIgbGVzIGNvbW1hbmRlcyBuYXRpdmVzIGF2ZWMgbGV1cnMgdHJhZHVjdGlvbnMgZXQgbGV1ciBsb2dpcXVlIGQnZXjDqWN1dGlvbi5cbiAqIFV0aWxpc2UgbGVzIHNlcnZpY2VzIGRlIGwnw6lkaXRldXIgcG91ciBnYXJhbnRpciB1bmUgY29ow6lyZW5jZSBkZSBjb21wb3J0ZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0U2xhc2hDb21tYW5kcyhcbiAgaTE4bjogQXRlSTE4blNlcnZpY2UsXG4gIGNvbW1hbmRzOiBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UsXG4gIGltYWdlT3B0aW9ucz86IHtcbiAgICBxdWFsaXR5PzogbnVtYmVyO1xuICAgIG1heFdpZHRoPzogbnVtYmVyO1xuICAgIG1heEhlaWdodD86IG51bWJlcjtcbiAgICBtYXhTaXplPzogbnVtYmVyO1xuICAgIGFsbG93ZWRUeXBlcz86IHN0cmluZ1tdO1xuICB9XG4pOiBBdGVTbGFzaENvbW1hbmRJdGVtW10ge1xuICBjb25zdCB0ID0gaTE4bi5zbGFzaENvbW1hbmRzKCk7XG5cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB0aXRsZTogdC5oZWFkaW5nMS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0LmhlYWRpbmcxLmRlc2NyaXB0aW9uLFxuICAgICAgaWNvbjogXCJoZWFkaW5nMVwiLFxuICAgICAga2V5d29yZHM6IHQuaGVhZGluZzEua2V5d29yZHMsXG4gICAgICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IGNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoZWRpdG9yLCAxKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LmhlYWRpbmcyLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQuaGVhZGluZzIuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcImhlYWRpbmcyXCIsXG4gICAgICBrZXl3b3JkczogdC5oZWFkaW5nMi5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT4gY29tbWFuZHMudG9nZ2xlSGVhZGluZyhlZGl0b3IsIDIpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQuaGVhZGluZzMudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5oZWFkaW5nMy5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwiaGVhZGluZzNcIixcbiAgICAgIGtleXdvcmRzOiB0LmhlYWRpbmczLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy50b2dnbGVIZWFkaW5nKGVkaXRvciwgMyksXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogdC5idWxsZXRMaXN0LnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQuYnVsbGV0TGlzdC5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwiYnVsbGV0TGlzdFwiLFxuICAgICAga2V5d29yZHM6IHQuYnVsbGV0TGlzdC5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT4gY29tbWFuZHMudG9nZ2xlQnVsbGV0TGlzdChlZGl0b3IpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQub3JkZXJlZExpc3QudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5vcmRlcmVkTGlzdC5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwib3JkZXJlZExpc3RcIixcbiAgICAgIGtleXdvcmRzOiB0Lm9yZGVyZWRMaXN0LmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy50b2dnbGVPcmRlcmVkTGlzdChlZGl0b3IpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQuYmxvY2txdW90ZS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0LmJsb2NrcXVvdGUuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcImJsb2NrcXVvdGVcIixcbiAgICAgIGtleXdvcmRzOiB0LmJsb2NrcXVvdGUua2V5d29yZHMsXG4gICAgICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IGNvbW1hbmRzLnRvZ2dsZUJsb2NrcXVvdGUoZWRpdG9yKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LmNvZGUudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5jb2RlLmRlc2NyaXB0aW9uLFxuICAgICAgaWNvbjogXCJjb2RlQmxvY2tcIixcbiAgICAgIGtleXdvcmRzOiB0LmNvZGUua2V5d29yZHMsXG4gICAgICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IGNvbW1hbmRzLnRvZ2dsZUNvZGVCbG9jayhlZGl0b3IpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQuaW1hZ2UudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5pbWFnZS5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwiaW1hZ2VcIixcbiAgICAgIGtleXdvcmRzOiB0LmltYWdlLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PlxuICAgICAgICBjb21tYW5kcy5leGVjdXRlKGVkaXRvciwgXCJpbnNlcnRJbWFnZVwiLCB7XG4gICAgICAgICAgcXVhbGl0eTogaW1hZ2VPcHRpb25zPy5xdWFsaXR5LFxuICAgICAgICAgIG1heFdpZHRoOiBpbWFnZU9wdGlvbnM/Lm1heFdpZHRoLFxuICAgICAgICAgIG1heEhlaWdodDogaW1hZ2VPcHRpb25zPy5tYXhIZWlnaHQsXG4gICAgICAgICAgbWF4U2l6ZTogaW1hZ2VPcHRpb25zPy5tYXhTaXplLFxuICAgICAgICAgIGFsbG93ZWRUeXBlczogaW1hZ2VPcHRpb25zPy5hbGxvd2VkVHlwZXMsXG4gICAgICAgIH0pLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQuaG9yaXpvbnRhbFJ1bGUudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5ob3Jpem9udGFsUnVsZS5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwiaG9yaXpvbnRhbFJ1bGVcIixcbiAgICAgIGtleXdvcmRzOiB0Lmhvcml6b250YWxSdWxlLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy5pbnNlcnRIb3Jpem9udGFsUnVsZShlZGl0b3IpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQudGFibGUudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC50YWJsZS5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwidGFibGVcIixcbiAgICAgIGtleXdvcmRzOiB0LnRhYmxlLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy5pbnNlcnRUYWJsZShlZGl0b3IpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQudGFibGVPZkNvbnRlbnRzLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQudGFibGVPZkNvbnRlbnRzLmRlc2NyaXB0aW9uLFxuICAgICAgaWNvbjogXCJ0YWJsZU9mQ29udGVudHNcIixcbiAgICAgIGtleXdvcmRzOiB0LnRhYmxlT2ZDb250ZW50cy5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT5cbiAgICAgICAgZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5pbnNlcnRDb250ZW50KHsgdHlwZTogXCJ0YWJsZU9mQ29udGVudHNcIiB9KS5ydW4oKSxcbiAgICB9LFxuICBdO1xufVxuXG4vKipcbiAqIEZpbHRyZSBldCBhc3NlbWJsZSBsZXMgY29tbWFuZGVzIHNlbG9uIGxhIGNvbmZpZ3VyYXRpb24gZm91cm5pZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclNsYXNoQ29tbWFuZHMoXG4gIGNvbmZpZzogQXRlU2xhc2hDb21tYW5kc0NvbmZpZyxcbiAgaTE4bjogQXRlSTE4blNlcnZpY2UsXG4gIGNvbW1hbmRzOiBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UsXG4gIGltYWdlT3B0aW9ucz86IHtcbiAgICBxdWFsaXR5PzogbnVtYmVyO1xuICAgIG1heFdpZHRoPzogbnVtYmVyO1xuICAgIG1heEhlaWdodD86IG51bWJlcjtcbiAgICBtYXhTaXplPzogbnVtYmVyO1xuICAgIGFsbG93ZWRUeXBlcz86IHN0cmluZ1tdO1xuICB9XG4pOiBBdGVTbGFzaENvbW1hbmRJdGVtW10ge1xuICBjb25zdCBhbGxOYXRpdmVzID0gY3JlYXRlRGVmYXVsdFNsYXNoQ29tbWFuZHMoaTE4biwgY29tbWFuZHMsIGltYWdlT3B0aW9ucyk7XG4gIGNvbnN0IGFjdGl2ZUNvbmZpZyA9IHsgLi4uQVRFX0RFRkFVTFRfU0xBU0hfQ09NTUFORFNfQ09ORklHLCAuLi5jb25maWcgfTtcblxuICBjb25zdCBmaWx0ZXJlZCA9IGFsbE5hdGl2ZXMuZmlsdGVyKChfLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IEFURV9TTEFTSF9DT01NQU5EX0tFWVNbaW5kZXhdO1xuICAgIHJldHVybiBrZXkgJiYgYWN0aXZlQ29uZmlnW2tleV0gIT09IGZhbHNlO1xuICB9KTtcblxuICBpZiAoY29uZmlnLmN1c3RvbSAmJiBBcnJheS5pc0FycmF5KGNvbmZpZy5jdXN0b20pKSB7XG4gICAgcmV0dXJuIFsuLi5maWx0ZXJlZCwgLi4uY29uZmlnLmN1c3RvbV07XG4gIH1cblxuICByZXR1cm4gZmlsdGVyZWQ7XG59XG4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXNsYXNoLWNvbW1hbmRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbmZpZy9hdGUtc2xhc2gtY29tbWFuZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsWUFBWTtJQUNaLGFBQWE7SUFDYixZQUFZO0lBQ1osTUFBTTtJQUNOLE9BQU87SUFDUCxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLGlCQUFpQjtDQUNULENBQUM7QUFlWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUEyQjtJQUN2RSxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsSUFBSTtJQUNoQixJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsY0FBYyxFQUFFLElBQUk7SUFDcEIsS0FBSyxFQUFFLElBQUk7SUFDWCxlQUFlLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxJQUEyQyxFQUMzQyxRQUFrQyxFQUNsQyxZQU1DO0lBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRS9CLE9BQU87UUFDTDtZQUNFLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDdkIsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVztZQUNuQyxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUUsQ0FBQyxDQUFD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OUIsSUFBMkMsRUFDM0MsUUFBa0MsRUFDbEMsWUFNQztJQUVELE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDNUUsTUFBTSxZQUFZLEdBQUcsRUFBRSxHQUFHLGlDQUFpQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFekUsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEQsT0FBTyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuaW1wb3J0IHsgQXRlU2xhc2hDb21tYW5kSXRlbSB9IGZyb20gXCIuLi9tb2RlbHMvYXRlLXNsYXNoLWNvbW1hbmQubW9kZWxcIjtcbmltcG9ydCB7IEF0ZUkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2F0ZS1pMThuLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9hdGUtZWRpdG9yLWNvbW1hbmRzLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBDbMOpcyBkZXMgY29tbWFuZGVzIG5hdGl2ZXMgZGFucyBsJ29yZHJlIGQnYWZmaWNoYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBBVEVfU0xBU0hfQ09NTUFORF9LRVlTID0gW1xuICBcImhlYWRpbmcxXCIsXG4gIFwiaGVhZGluZzJcIixcbiAgXCJoZWFkaW5nM1wiLFxuICBcImJ1bGxldExpc3RcIixcbiAgXCJvcmRlcmVkTGlzdFwiLFxuICBcImJsb2NrcXVvdGVcIixcbiAgXCJjb2RlXCIsXG4gIFwiaW1hZ2VcIixcbiAgXCJob3Jpem9udGFsUnVsZVwiLFxuICBcInRhYmxlXCIsXG4gIFwidGFibGVPZkNvbnRlbnRzXCIsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBBdGVTbGFzaENvbW1hbmRLZXkgPSAodHlwZW9mIEFURV9TTEFTSF9DT01NQU5EX0tFWVMpW251bWJlcl07XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBzaW1wbGlmacOpZSBwb3VyIGFjdGl2ZXIvZMOpc2FjdGl2ZXIgbGVzIHNsYXNoIGNvbW1hbmRzIG5hdGl2ZXMuXG4gKiBQZXJtZXQgYXVzc2kgZCdham91dGVyIGRlcyBjb21tYW5kZXMgcGVyc29ubmFsaXPDqWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0ZVNsYXNoQ29tbWFuZHNDb25maWcgZXh0ZW5kcyBQYXJ0aWFsPFJlY29yZDxBdGVTbGFzaENvbW1hbmRLZXksIGJvb2xlYW4+PiB7XG4gIC8qKlxuICAgKiBMaXN0ZSBkZSBjb21tYW5kZXMgc3VwcGzDqW1lbnRhaXJlcyDDoCBham91dGVyIMOgIGxhIGZpbiBkdSBtZW51XG4gICAqL1xuICBjdXN0b20/OiBBdGVTbGFzaENvbW1hbmRJdGVtW107XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwYXIgZMOpZmF1dCA6IHRvdXRlcyBsZXMgY29tbWFuZGVzIG5hdGl2ZXMgc29udCBhY3RpdsOpZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEFURV9ERUZBVUxUX1NMQVNIX0NPTU1BTkRTX0NPTkZJRzogQXRlU2xhc2hDb21tYW5kc0NvbmZpZyA9IHtcbiAgaGVhZGluZzE6IHRydWUsXG4gIGhlYWRpbmcyOiB0cnVlLFxuICBoZWFkaW5nMzogdHJ1ZSxcbiAgYnVsbGV0TGlzdDogdHJ1ZSxcbiAgb3JkZXJlZExpc3Q6IHRydWUsXG4gIGJsb2NrcXVvdGU6IHRydWUsXG4gIGNvZGU6IHRydWUsXG4gIGltYWdlOiB0cnVlLFxuICBob3Jpem9udGFsUnVsZTogdHJ1ZSxcbiAgdGFibGU6IHRydWUsXG4gIHRhYmxlT2ZDb250ZW50czogZmFsc2UsXG59O1xuXG4vKipcbiAqIEZhY3RvcnkgcG91ciBjcsOpZXIgbGVzIGNvbW1hbmRlcyBuYXRpdmVzIGF2ZWMgbGV1cnMgdHJhZHVjdGlvbnMgZXQgbGV1ciBsb2dpcXVlIGQnZXjDqWN1dGlvbi5cbiAqIFV0aWxpc2UgbGVzIHNlcnZpY2VzIGRlIGwnw6lkaXRldXIgcG91ciBnYXJhbnRpciB1bmUgY29ow6lyZW5jZSBkZSBjb21wb3J0ZW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0U2xhc2hDb21tYW5kcyhcbiAgaTE4bjogUGljazxBdGVJMThuU2VydmljZSwgXCJzbGFzaENvbW1hbmRzXCI+LFxuICBjb21tYW5kczogQXRlRWRpdG9yQ29tbWFuZHNTZXJ2aWNlLFxuICBpbWFnZU9wdGlvbnM/OiB7XG4gICAgcXVhbGl0eT86IG51bWJlcjtcbiAgICBtYXhXaWR0aD86IG51bWJlcjtcbiAgICBtYXhIZWlnaHQ/OiBudW1iZXI7XG4gICAgbWF4U2l6ZT86IG51bWJlcjtcbiAgICBhbGxvd2VkVHlwZXM/OiBzdHJpbmdbXTtcbiAgfVxuKTogQXRlU2xhc2hDb21tYW5kSXRlbVtdIHtcbiAgY29uc3QgdCA9IGkxOG4uc2xhc2hDb21tYW5kcygpO1xuXG4gIHJldHVybiBbXG4gICAge1xuICAgICAgdGl0bGU6IHQuaGVhZGluZzEudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5oZWFkaW5nMS5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwiaGVhZGluZzFcIixcbiAgICAgIGtleXdvcmRzOiB0LmhlYWRpbmcxLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy50b2dnbGVIZWFkaW5nKGVkaXRvciwgMSksXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogdC5oZWFkaW5nMi50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0LmhlYWRpbmcyLmRlc2NyaXB0aW9uLFxuICAgICAgaWNvbjogXCJoZWFkaW5nMlwiLFxuICAgICAga2V5d29yZHM6IHQuaGVhZGluZzIua2V5d29yZHMsXG4gICAgICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IGNvbW1hbmRzLnRvZ2dsZUhlYWRpbmcoZWRpdG9yLCAyKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LmhlYWRpbmczLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQuaGVhZGluZzMuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcImhlYWRpbmczXCIsXG4gICAgICBrZXl3b3JkczogdC5oZWFkaW5nMy5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT4gY29tbWFuZHMudG9nZ2xlSGVhZGluZyhlZGl0b3IsIDMpLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6IHQuYnVsbGV0TGlzdC50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0LmJ1bGxldExpc3QuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcImJ1bGxldExpc3RcIixcbiAgICAgIGtleXdvcmRzOiB0LmJ1bGxldExpc3Qua2V5d29yZHMsXG4gICAgICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+IGNvbW1hbmRzLnRvZ2dsZUJ1bGxldExpc3QoZWRpdG9yKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0Lm9yZGVyZWRMaXN0LnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQub3JkZXJlZExpc3QuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcIm9yZGVyZWRMaXN0XCIsXG4gICAgICBrZXl3b3JkczogdC5vcmRlcmVkTGlzdC5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT4gY29tbWFuZHMudG9nZ2xlT3JkZXJlZExpc3QoZWRpdG9yKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LmJsb2NrcXVvdGUudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogdC5ibG9ja3F1b3RlLmRlc2NyaXB0aW9uLFxuICAgICAgaWNvbjogXCJibG9ja3F1b3RlXCIsXG4gICAgICBrZXl3b3JkczogdC5ibG9ja3F1b3RlLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy50b2dnbGVCbG9ja3F1b3RlKGVkaXRvciksXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogdC5jb2RlLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQuY29kZS5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwiY29kZUJsb2NrXCIsXG4gICAgICBrZXl3b3JkczogdC5jb2RlLmtleXdvcmRzLFxuICAgICAgY29tbWFuZDogKGVkaXRvcjogRWRpdG9yKSA9PiBjb21tYW5kcy50b2dnbGVDb2RlQmxvY2soZWRpdG9yKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LmltYWdlLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQuaW1hZ2UuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcImltYWdlXCIsXG4gICAgICBrZXl3b3JkczogdC5pbWFnZS5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT5cbiAgICAgICAgY29tbWFuZHMuZXhlY3V0ZShlZGl0b3IsIFwiaW5zZXJ0SW1hZ2VcIiwge1xuICAgICAgICAgIHF1YWxpdHk6IGltYWdlT3B0aW9ucz8ucXVhbGl0eSxcbiAgICAgICAgICBtYXhXaWR0aDogaW1hZ2VPcHRpb25zPy5tYXhXaWR0aCxcbiAgICAgICAgICBtYXhIZWlnaHQ6IGltYWdlT3B0aW9ucz8ubWF4SGVpZ2h0LFxuICAgICAgICAgIG1heFNpemU6IGltYWdlT3B0aW9ucz8ubWF4U2l6ZSxcbiAgICAgICAgICBhbGxvd2VkVHlwZXM6IGltYWdlT3B0aW9ucz8uYWxsb3dlZFR5cGVzLFxuICAgICAgICB9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0Lmhvcml6b250YWxSdWxlLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQuaG9yaXpvbnRhbFJ1bGUuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcImhvcml6b250YWxSdWxlXCIsXG4gICAgICBrZXl3b3JkczogdC5ob3Jpem9udGFsUnVsZS5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT4gY29tbWFuZHMuaW5zZXJ0SG9yaXpvbnRhbFJ1bGUoZWRpdG9yKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LnRhYmxlLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHQudGFibGUuZGVzY3JpcHRpb24sXG4gICAgICBpY29uOiBcInRhYmxlXCIsXG4gICAgICBrZXl3b3JkczogdC50YWJsZS5rZXl3b3JkcyxcbiAgICAgIGNvbW1hbmQ6IChlZGl0b3I6IEVkaXRvcikgPT4gY29tbWFuZHMuaW5zZXJ0VGFibGUoZWRpdG9yKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiB0LnRhYmxlT2ZDb250ZW50cy50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0LnRhYmxlT2ZDb250ZW50cy5kZXNjcmlwdGlvbixcbiAgICAgIGljb246IFwidGFibGVPZkNvbnRlbnRzXCIsXG4gICAgICBrZXl3b3JkczogdC50YWJsZU9mQ29udGVudHMua2V5d29yZHMsXG4gICAgICBjb21tYW5kOiAoZWRpdG9yOiBFZGl0b3IpID0+XG4gICAgICAgIGVkaXRvci5jaGFpbigpLmZvY3VzKCkuaW5zZXJ0Q29udGVudCh7IHR5cGU6IFwidGFibGVPZkNvbnRlbnRzXCIgfSkucnVuKCksXG4gICAgfSxcbiAgXTtcbn1cblxuLyoqXG4gKiBGaWx0cmUgZXQgYXNzZW1ibGUgbGVzIGNvbW1hbmRlcyBzZWxvbiBsYSBjb25maWd1cmF0aW9uIGZvdXJuaWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJTbGFzaENvbW1hbmRzKFxuICBjb25maWc6IEF0ZVNsYXNoQ29tbWFuZHNDb25maWcsXG4gIGkxOG46IFBpY2s8QXRlSTE4blNlcnZpY2UsIFwic2xhc2hDb21tYW5kc1wiPixcbiAgY29tbWFuZHM6IEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZSxcbiAgaW1hZ2VPcHRpb25zPzoge1xuICAgIHF1YWxpdHk/OiBudW1iZXI7XG4gICAgbWF4V2lkdGg/OiBudW1iZXI7XG4gICAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICAgIG1heFNpemU/OiBudW1iZXI7XG4gICAgYWxsb3dlZFR5cGVzPzogc3RyaW5nW107XG4gIH1cbik6IEF0ZVNsYXNoQ29tbWFuZEl0ZW1bXSB7XG4gIGNvbnN0IGFsbE5hdGl2ZXMgPSBjcmVhdGVEZWZhdWx0U2xhc2hDb21tYW5kcyhpMThuLCBjb21tYW5kcywgaW1hZ2VPcHRpb25zKTtcbiAgY29uc3QgYWN0aXZlQ29uZmlnID0geyAuLi5BVEVfREVGQVVMVF9TTEFTSF9DT01NQU5EU19DT05GSUcsIC4uLmNvbmZpZyB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkID0gYWxsTmF0aXZlcy5maWx0ZXIoKF8sIGluZGV4KSA9PiB7XG4gICAgY29uc3Qga2V5ID0gQVRFX1NMQVNIX0NPTU1BTkRfS0VZU1tpbmRleF07XG4gICAgcmV0dXJuIGtleSAmJiBhY3RpdmVDb25maWdba2V5XSAhPT0gZmFsc2U7XG4gIH0pO1xuXG4gIGlmIChjb25maWcuY3VzdG9tICYmIEFycmF5LmlzQXJyYXkoY29uZmlnLmN1c3RvbSkpIHtcbiAgICByZXR1cm4gWy4uLmZpbHRlcmVkLCAuLi5jb25maWcuY3VzdG9tXTtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJlZDtcbn1cbiJdfQ==
@@ -0,0 +1,125 @@
1
+ import { isDevMode } from "@angular/core";
2
+ import { Extension } from "@tiptap/core";
3
+ import { DOMSerializer } from "@tiptap/pm/model";
4
+ import { Plugin, PluginKey } from "@tiptap/pm/state";
5
+ /** Set on HTML copied from an editor, so a later paste knows it comes from an editor */
6
+ const EDITOR_CLIPBOARD_MARKER = "data-ate-copy";
7
+ const OFFICE_HTML = /urn:schemas-microsoft-com:office|class="?Mso|mso-/i;
8
+ /** Detects where clipboard HTML comes from. Must run on the HTML as copied, before any cleanup */
9
+ export function detectPasteSource(html) {
10
+ if (html.includes(EDITOR_CLIPBOARD_MARKER)) {
11
+ return "editor";
12
+ }
13
+ return OFFICE_HTML.test(html) ? "office" : "external";
14
+ }
15
+ /** Removes the formats turned off in `config` (`colors`, `highlights`) from pasted HTML */
16
+ export function stripPastedFormats(html, config) {
17
+ const keepColors = config.colors !== false;
18
+ const keepHighlights = config.highlights !== false;
19
+ if (keepColors && keepHighlights) {
20
+ return html;
21
+ }
22
+ const template = document.createElement("template");
23
+ template.innerHTML = html;
24
+ const content = template.content;
25
+ const styleProperties = [
26
+ ...(keepColors ? [] : ["color"]),
27
+ ...(keepHighlights ? [] : ["background-color", "background"]),
28
+ ];
29
+ content.querySelectorAll("[style]").forEach(element => {
30
+ styleProperties.forEach(property => element.style.removeProperty(property));
31
+ if (!element.getAttribute("style")?.trim()) {
32
+ element.removeAttribute("style");
33
+ }
34
+ });
35
+ if (!keepColors) {
36
+ content.querySelectorAll("font[color]").forEach(font => font.removeAttribute("color"));
37
+ }
38
+ if (!keepHighlights) {
39
+ content.querySelectorAll("[bgcolor]").forEach(element => element.removeAttribute("bgcolor"));
40
+ content
41
+ .querySelectorAll("mark")
42
+ .forEach(mark => mark.replaceWith(...Array.from(mark.childNodes)));
43
+ }
44
+ return template.innerHTML;
45
+ }
46
+ /**
47
+ * Runs before every other paste cleanup (the Office cleanup removes the markers it relies on):
48
+ * records the source of each paste, and marks HTML copied from the editor.
49
+ */
50
+ const AtePasteSourceTracker = Extension.create({
51
+ name: "atePasteSourceTracker",
52
+ priority: 100000,
53
+ addProseMirrorPlugins() {
54
+ const editor = this.editor;
55
+ const serializer = DOMSerializer.fromSchema(editor.schema);
56
+ return [
57
+ new Plugin({
58
+ key: new PluginKey("atePasteSourceTracker"),
59
+ props: {
60
+ transformPastedHTML: html => {
61
+ editor.storage.atePaste.source = detectPasteSource(html);
62
+ return html;
63
+ },
64
+ clipboardSerializer: {
65
+ serializeFragment: (fragment, options) => {
66
+ const dom = serializer.serializeFragment(fragment, options);
67
+ dom.firstElementChild?.setAttribute(EDITOR_CLIPBOARD_MARKER, "");
68
+ return dom;
69
+ },
70
+ },
71
+ },
72
+ }),
73
+ ];
74
+ },
75
+ });
76
+ /**
77
+ * Applies `AtePasteConfig` to pasted and dropped HTML, after the Office cleanup:
78
+ * removes the formats turned off for content from other apps, then calls `transformHTML`.
79
+ */
80
+ export const AtePaste = Extension.create({
81
+ name: "atePaste",
82
+ addOptions() {
83
+ return {
84
+ config: () => ({}),
85
+ };
86
+ },
87
+ addStorage() {
88
+ return {
89
+ source: "external",
90
+ };
91
+ },
92
+ addExtensions() {
93
+ return [AtePasteSourceTracker];
94
+ },
95
+ addProseMirrorPlugins() {
96
+ const options = this.options;
97
+ const storage = this.storage;
98
+ return [
99
+ new Plugin({
100
+ key: new PluginKey("atePaste"),
101
+ props: {
102
+ transformPastedHTML: html => {
103
+ const config = options.config();
104
+ const source = storage.source;
105
+ const stripped = source === "editor" ? html : stripPastedFormats(html, config);
106
+ if (!config.transformHTML) {
107
+ return stripped;
108
+ }
109
+ try {
110
+ const transformed = config.transformHTML(stripped, { source });
111
+ return typeof transformed === "string" ? transformed : stripped;
112
+ }
113
+ catch (error) {
114
+ if (isDevMode()) {
115
+ console.warn("[ATE] paste.transformHTML failed, inserting the HTML unchanged.", error);
116
+ }
117
+ return stripped;
118
+ }
119
+ },
120
+ },
121
+ }),
122
+ ];
123
+ },
124
+ });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXBhc3RlLmV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2V4dGVuc2lvbnMvYXRlLXBhc3RlLmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHckQsd0ZBQXdGO0FBQ3hGLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDO0FBQ2hELE1BQU0sV0FBVyxHQUFHLG9EQUFvRCxDQUFDO0FBa0J6RSxrR0FBa0c7QUFDbEcsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVk7SUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztBQUN4RCxDQUFDO0FBRUQsMkZBQTJGO0FBQzNGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsTUFBc0I7SUFDckUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUM7SUFDM0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUM7SUFDbkQsSUFBSSxVQUFVLElBQUksY0FBYyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUMxQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ2pDLE1BQU0sZUFBZSxHQUFHO1FBQ3RCLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDOUQsQ0FBQztJQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBYyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDakUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM3RixPQUFPO2FBQ0osZ0JBQWdCLENBQUMsTUFBTSxDQUFDO2FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQztBQUM1QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzdDLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsUUFBUSxFQUFFLE1BQU07SUFFaEIscUJBQXFCO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsT0FBTztZQUNMLElBQUksTUFBTSxDQUFDO2dCQUNULEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDM0MsS0FBSyxFQUFFO29CQUNMLG1CQUFtQixFQUFFLElBQUksQ0FBQyxFQUFFO3dCQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3pELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7b0JBQ0QsbUJBQW1CLEVBQUU7d0JBQ25CLGlCQUFpQixFQUFFLENBQUMsUUFBa0IsRUFBRSxPQUFpQyxFQUFFLEVBQUU7NEJBQzNFLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7NEJBQzVELEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7NEJBQ2pFLE9BQU8sR0FBRyxDQUFDO3dCQUNiLENBQUM7cUJBQ2U7aUJBQ25CO2FBQ0YsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQW1DO0lBQ3pFLElBQUksRUFBRSxVQUFVO0lBRWhCLFVBQVU7UUFDUixPQUFPO1lBQ0wsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU87WUFDTCxNQUFNLEVBQUUsVUFBVTtTQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixPQUFPO1lBQ0wsSUFBSSxNQUFNLENBQUM7Z0JBQ1QsR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztnQkFDOUIsS0FBSyxFQUFFO29CQUNMLG1CQUFtQixFQUFFLElBQUksQ0FBQyxFQUFFO3dCQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDOzRCQUMxQixPQUFPLFFBQVEsQ0FBQzt3QkFDbEIsQ0FBQzt3QkFDRCxJQUFJLENBQUM7NEJBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDOzRCQUMvRCxPQUFPLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7d0JBQ2xFLENBQUM7d0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQzs0QkFDZixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0NBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsaUVBQWlFLEVBQ2pFLEtBQUssQ0FDTixDQUFDOzRCQUNKLENBQUM7NEJBQ0QsT0FBTyxRQUFRLENBQUM7d0JBQ2xCLENBQUM7b0JBQ0gsQ0FBQztpQkFDRjthQUNGLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBET01TZXJpYWxpemVyLCBGcmFnbWVudCB9IGZyb20gXCJAdGlwdGFwL3BtL21vZGVsXCI7XG5pbXBvcnQgeyBQbHVnaW4sIFBsdWdpbktleSB9IGZyb20gXCJAdGlwdGFwL3BtL3N0YXRlXCI7XG5pbXBvcnQgeyBBdGVQYXN0ZUNvbmZpZywgQXRlUGFzdGVTb3VyY2UgfSBmcm9tIFwiLi4vbW9kZWxzL2F0ZS1wYXN0ZS5tb2RlbFwiO1xuXG4vKiogU2V0IG9uIEhUTUwgY29waWVkIGZyb20gYW4gZWRpdG9yLCBzbyBhIGxhdGVyIHBhc3RlIGtub3dzIGl0IGNvbWVzIGZyb20gYW4gZWRpdG9yICovXG5jb25zdCBFRElUT1JfQ0xJUEJPQVJEX01BUktFUiA9IFwiZGF0YS1hdGUtY29weVwiO1xuY29uc3QgT0ZGSUNFX0hUTUwgPSAvdXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2V8Y2xhc3M9XCI/TXNvfG1zby0vaTtcblxuZXhwb3J0IGludGVyZmFjZSBBdGVQYXN0ZU9wdGlvbnMge1xuICAvKiogUGFzdGUgc2V0dGluZ3MsIHJlYWQgb24gZXZlcnkgcGFzdGUgc28gdGhleSBjYW4gY2hhbmdlIGF0IHJ1bnRpbWUgKi9cbiAgY29uZmlnOiAoKSA9PiBBdGVQYXN0ZUNvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdGVQYXN0ZVN0b3JhZ2Uge1xuICAvKiogU291cmNlIG9mIHRoZSBwYXN0ZSBiZWluZyBwcm9jZXNzZWQsIGRldGVjdGVkIGJlZm9yZSBhbnkgY2xlYW51cCAqL1xuICBzb3VyY2U6IEF0ZVBhc3RlU291cmNlO1xufVxuXG5kZWNsYXJlIG1vZHVsZSBcIkB0aXB0YXAvY29yZVwiIHtcbiAgaW50ZXJmYWNlIFN0b3JhZ2Uge1xuICAgIGF0ZVBhc3RlOiBBdGVQYXN0ZVN0b3JhZ2U7XG4gIH1cbn1cblxuLyoqIERldGVjdHMgd2hlcmUgY2xpcGJvYXJkIEhUTUwgY29tZXMgZnJvbS4gTXVzdCBydW4gb24gdGhlIEhUTUwgYXMgY29waWVkLCBiZWZvcmUgYW55IGNsZWFudXAgKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RQYXN0ZVNvdXJjZShodG1sOiBzdHJpbmcpOiBBdGVQYXN0ZVNvdXJjZSB7XG4gIGlmIChodG1sLmluY2x1ZGVzKEVESVRPUl9DTElQQk9BUkRfTUFSS0VSKSkge1xuICAgIHJldHVybiBcImVkaXRvclwiO1xuICB9XG4gIHJldHVybiBPRkZJQ0VfSFRNTC50ZXN0KGh0bWwpID8gXCJvZmZpY2VcIiA6IFwiZXh0ZXJuYWxcIjtcbn1cblxuLyoqIFJlbW92ZXMgdGhlIGZvcm1hdHMgdHVybmVkIG9mZiBpbiBgY29uZmlnYCAoYGNvbG9yc2AsIGBoaWdobGlnaHRzYCkgZnJvbSBwYXN0ZWQgSFRNTCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwUGFzdGVkRm9ybWF0cyhodG1sOiBzdHJpbmcsIGNvbmZpZzogQXRlUGFzdGVDb25maWcpOiBzdHJpbmcge1xuICBjb25zdCBrZWVwQ29sb3JzID0gY29uZmlnLmNvbG9ycyAhPT0gZmFsc2U7XG4gIGNvbnN0IGtlZXBIaWdobGlnaHRzID0gY29uZmlnLmhpZ2hsaWdodHMgIT09IGZhbHNlO1xuICBpZiAoa2VlcENvbG9ycyAmJiBrZWVwSGlnaGxpZ2h0cykge1xuICAgIHJldHVybiBodG1sO1xuICB9XG4gIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpO1xuICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSBodG1sO1xuICBjb25zdCBjb250ZW50ID0gdGVtcGxhdGUuY29udGVudDtcbiAgY29uc3Qgc3R5bGVQcm9wZXJ0aWVzID0gW1xuICAgIC4uLihrZWVwQ29sb3JzID8gW10gOiBbXCJjb2xvclwiXSksXG4gICAgLi4uKGtlZXBIaWdobGlnaHRzID8gW10gOiBbXCJiYWNrZ3JvdW5kLWNvbG9yXCIsIFwiYmFja2dyb3VuZFwiXSksXG4gIF07XG4gIGNvbnRlbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXCJbc3R5bGVdXCIpLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgc3R5bGVQcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4gZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eSkpO1xuICAgIGlmICghZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKT8udHJpbSgpKSB7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpO1xuICAgIH1cbiAgfSk7XG4gIGlmICgha2VlcENvbG9ycykge1xuICAgIGNvbnRlbnQucXVlcnlTZWxlY3RvckFsbChcImZvbnRbY29sb3JdXCIpLmZvckVhY2goZm9udCA9PiBmb250LnJlbW92ZUF0dHJpYnV0ZShcImNvbG9yXCIpKTtcbiAgfVxuICBpZiAoIWtlZXBIaWdobGlnaHRzKSB7XG4gICAgY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2JnY29sb3JdXCIpLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImJnY29sb3JcIikpO1xuICAgIGNvbnRlbnRcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwibWFya1wiKVxuICAgICAgLmZvckVhY2gobWFyayA9PiBtYXJrLnJlcGxhY2VXaXRoKC4uLkFycmF5LmZyb20obWFyay5jaGlsZE5vZGVzKSkpO1xuICB9XG4gIHJldHVybiB0ZW1wbGF0ZS5pbm5lckhUTUw7XG59XG5cbi8qKlxuICogUnVucyBiZWZvcmUgZXZlcnkgb3RoZXIgcGFzdGUgY2xlYW51cCAodGhlIE9mZmljZSBjbGVhbnVwIHJlbW92ZXMgdGhlIG1hcmtlcnMgaXQgcmVsaWVzIG9uKTpcbiAqIHJlY29yZHMgdGhlIHNvdXJjZSBvZiBlYWNoIHBhc3RlLCBhbmQgbWFya3MgSFRNTCBjb3BpZWQgZnJvbSB0aGUgZWRpdG9yLlxuICovXG5jb25zdCBBdGVQYXN0ZVNvdXJjZVRyYWNrZXIgPSBFeHRlbnNpb24uY3JlYXRlKHtcbiAgbmFtZTogXCJhdGVQYXN0ZVNvdXJjZVRyYWNrZXJcIixcbiAgcHJpb3JpdHk6IDEwMDAwMCxcblxuICBhZGRQcm9zZU1pcnJvclBsdWdpbnMoKSB7XG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgY29uc3Qgc2VyaWFsaXplciA9IERPTVNlcmlhbGl6ZXIuZnJvbVNjaGVtYShlZGl0b3Iuc2NoZW1hKTtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IFBsdWdpbih7XG4gICAgICAgIGtleTogbmV3IFBsdWdpbktleShcImF0ZVBhc3RlU291cmNlVHJhY2tlclwiKSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0cmFuc2Zvcm1QYXN0ZWRIVE1MOiBodG1sID0+IHtcbiAgICAgICAgICAgIGVkaXRvci5zdG9yYWdlLmF0ZVBhc3RlLnNvdXJjZSA9IGRldGVjdFBhc3RlU291cmNlKGh0bWwpO1xuICAgICAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGlwYm9hcmRTZXJpYWxpemVyOiB7XG4gICAgICAgICAgICBzZXJpYWxpemVGcmFnbWVudDogKGZyYWdtZW50OiBGcmFnbWVudCwgb3B0aW9ucz86IHsgZG9jdW1lbnQ/OiBEb2N1bWVudCB9KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRvbSA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplRnJhZ21lbnQoZnJhZ21lbnQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICBkb20uZmlyc3RFbGVtZW50Q2hpbGQ/LnNldEF0dHJpYnV0ZShFRElUT1JfQ0xJUEJPQVJEX01BUktFUiwgXCJcIik7XG4gICAgICAgICAgICAgIHJldHVybiBkb207XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0gYXMgRE9NU2VyaWFsaXplcixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIF07XG4gIH0sXG59KTtcblxuLyoqXG4gKiBBcHBsaWVzIGBBdGVQYXN0ZUNvbmZpZ2AgdG8gcGFzdGVkIGFuZCBkcm9wcGVkIEhUTUwsIGFmdGVyIHRoZSBPZmZpY2UgY2xlYW51cDpcbiAqIHJlbW92ZXMgdGhlIGZvcm1hdHMgdHVybmVkIG9mZiBmb3IgY29udGVudCBmcm9tIG90aGVyIGFwcHMsIHRoZW4gY2FsbHMgYHRyYW5zZm9ybUhUTUxgLlxuICovXG5leHBvcnQgY29uc3QgQXRlUGFzdGUgPSBFeHRlbnNpb24uY3JlYXRlPEF0ZVBhc3RlT3B0aW9ucywgQXRlUGFzdGVTdG9yYWdlPih7XG4gIG5hbWU6IFwiYXRlUGFzdGVcIixcblxuICBhZGRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjb25maWc6ICgpID0+ICh7fSksXG4gICAgfTtcbiAgfSxcblxuICBhZGRTdG9yYWdlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6IFwiZXh0ZXJuYWxcIixcbiAgICB9O1xuICB9LFxuXG4gIGFkZEV4dGVuc2lvbnMoKSB7XG4gICAgcmV0dXJuIFtBdGVQYXN0ZVNvdXJjZVRyYWNrZXJdO1xuICB9LFxuXG4gIGFkZFByb3NlTWlycm9yUGx1Z2lucygpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIGNvbnN0IHN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2U7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBQbHVnaW4oe1xuICAgICAgICBrZXk6IG5ldyBQbHVnaW5LZXkoXCJhdGVQYXN0ZVwiKSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0cmFuc2Zvcm1QYXN0ZWRIVE1MOiBodG1sID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IG9wdGlvbnMuY29uZmlnKCk7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBzdG9yYWdlLnNvdXJjZTtcbiAgICAgICAgICAgIGNvbnN0IHN0cmlwcGVkID0gc291cmNlID09PSBcImVkaXRvclwiID8gaHRtbCA6IHN0cmlwUGFzdGVkRm9ybWF0cyhodG1sLCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKCFjb25maWcudHJhbnNmb3JtSFRNTCkge1xuICAgICAgICAgICAgICByZXR1cm4gc3RyaXBwZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IGNvbmZpZy50cmFuc2Zvcm1IVE1MKHN0cmlwcGVkLCB7IHNvdXJjZSB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB0cmFuc2Zvcm1lZCA9PT0gXCJzdHJpbmdcIiA/IHRyYW5zZm9ybWVkIDogc3RyaXBwZWQ7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBcIltBVEVdIHBhc3RlLnRyYW5zZm9ybUhUTUwgZmFpbGVkLCBpbnNlcnRpbmcgdGhlIEhUTUwgdW5jaGFuZ2VkLlwiLFxuICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBzdHJpcHBlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXTtcbiAgfSxcbn0pO1xuIl19