@worktile/theia 18.0.14 → 18.0.16

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 (89) hide show
  1. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +1 -2
  2. package/components/toolbar-item/toolbar-item.component.d.ts +1 -2
  3. package/constants/plugin-menu.d.ts +3 -1
  4. package/core/toolbar-item/base-toolbar-item.d.ts +3 -3
  5. package/editor.component.d.ts +1 -0
  6. package/esm2022/components/conversion-hint/conversion-hint.component.mjs +4 -4
  7. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +7 -7
  8. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +7 -8
  9. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +3 -3
  10. package/esm2022/components/toolbar-item/toolbar-item.component.mjs +7 -8
  11. package/esm2022/constants/plugin-menu.mjs +15 -13
  12. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +11 -11
  13. package/esm2022/editor.component.mjs +7 -5
  14. package/esm2022/i18n/i18n.mjs +1 -1
  15. package/esm2022/i18n/i18n.service.mjs +3 -6
  16. package/esm2022/i18n/locales/de-de.mjs +4 -2
  17. package/esm2022/i18n/locales/en-us.mjs +4 -2
  18. package/esm2022/i18n/locales/ja-jp.mjs +4 -2
  19. package/esm2022/i18n/locales/ru-ru.mjs +4 -2
  20. package/esm2022/i18n/locales/zh-hans.mjs +4 -2
  21. package/esm2022/i18n/locales/zh-hant.mjs +4 -2
  22. package/esm2022/interfaces/plugins/plugin-menu.mjs +1 -1
  23. package/esm2022/interfaces/toolbar.mjs +1 -1
  24. package/esm2022/plugins/align/align.plugin.mjs +7 -11
  25. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +7 -10
  26. package/esm2022/plugins/code/code.component.mjs +3 -3
  27. package/esm2022/plugins/code/code.plugin.mjs +7 -10
  28. package/esm2022/plugins/color/color.plugin.mjs +5 -7
  29. package/esm2022/plugins/color/toolbar-item.component.mjs +8 -9
  30. package/esm2022/plugins/common/common.plugin.mjs +4 -5
  31. package/esm2022/plugins/font-size/font-size.editor.mjs +4 -4
  32. package/esm2022/plugins/heading/heading.plugin.mjs +21 -35
  33. package/esm2022/plugins/hr/hr.plugin.mjs +7 -10
  34. package/esm2022/plugins/image/image.component.mjs +4 -4
  35. package/esm2022/plugins/image/image.plugin.mjs +7 -10
  36. package/esm2022/plugins/indent/indent.plugin.mjs +5 -7
  37. package/esm2022/plugins/index.mjs +20 -20
  38. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +4 -5
  39. package/esm2022/plugins/link/edit/link-edit.component.mjs +4 -4
  40. package/esm2022/plugins/link/link.plugin.mjs +7 -10
  41. package/esm2022/plugins/list/list.plugin.mjs +11 -17
  42. package/esm2022/plugins/mark/mark.plugin.mjs +7 -11
  43. package/esm2022/plugins/paint-format/paint-format.editor.mjs +7 -11
  44. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +4 -4
  45. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +4 -4
  46. package/esm2022/plugins/table/table.editor.mjs +2 -2
  47. package/esm2022/plugins/table/table.plugin.mjs +7 -10
  48. package/esm2022/plugins/table/toolbar-item.component.mjs +7 -8
  49. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +7 -10
  50. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +13 -8
  51. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +12 -12
  52. package/esm2022/services/table-contextmenu.service.mjs +4 -4
  53. package/esm2022/test/basic/basic.component.mjs +10 -8
  54. package/fesm2022/worktile-theia.mjs +237 -277
  55. package/fesm2022/worktile-theia.mjs.map +1 -1
  56. package/i18n/i18n.d.ts +2 -0
  57. package/i18n/i18n.service.d.ts +1 -2
  58. package/i18n/locales/de-de.d.ts +2 -0
  59. package/i18n/locales/en-us.d.ts +2 -0
  60. package/i18n/locales/ja-jp.d.ts +2 -0
  61. package/i18n/locales/ru-ru.d.ts +2 -0
  62. package/i18n/locales/zh-hans.d.ts +2 -0
  63. package/i18n/locales/zh-hant.d.ts +2 -0
  64. package/interfaces/plugins/plugin-menu.d.ts +0 -3
  65. package/interfaces/toolbar.d.ts +0 -1
  66. package/package.json +1 -1
  67. package/plugins/align/align.plugin.d.ts +3 -1
  68. package/plugins/blockquote/blockquote.plugin.d.ts +3 -1
  69. package/plugins/code/code.plugin.d.ts +3 -1
  70. package/plugins/color/color.plugin.d.ts +3 -1
  71. package/plugins/color/toolbar-item.component.d.ts +1 -2
  72. package/plugins/common/common.plugin.d.ts +3 -1
  73. package/plugins/font-size/font-size.editor.d.ts +3 -1
  74. package/plugins/heading/heading.plugin.d.ts +3 -1
  75. package/plugins/hr/hr.plugin.d.ts +3 -1
  76. package/plugins/image/image.plugin.d.ts +3 -1
  77. package/plugins/indent/indent.plugin.d.ts +3 -1
  78. package/plugins/index.d.ts +3 -1
  79. package/plugins/inline-code/inline-code.plugin.d.ts +3 -1
  80. package/plugins/link/link.plugin.d.ts +3 -1
  81. package/plugins/list/list.plugin.d.ts +3 -1
  82. package/plugins/mark/mark.plugin.d.ts +3 -1
  83. package/plugins/paint-format/paint-format.editor.d.ts +3 -1
  84. package/plugins/table/table.plugin.d.ts +3 -1
  85. package/plugins/table/toolbar-item.component.d.ts +1 -2
  86. package/plugins/todo-item/todo-item.plugin.d.ts +3 -1
  87. package/plugins/vertical-align/toolbar-item.component.d.ts +4 -4
  88. package/plugins/vertical-align/vertical-align.editor.d.ts +3 -1
  89. package/test/basic/basic.component.d.ts +4 -0
@@ -1,5 +1,5 @@
1
1
  import { NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
2
- import { Component, Inject, ViewChild } from '@angular/core';
2
+ import { Component, inject, Inject, ViewChild } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { ThyAction, ThyActions } from 'ngx-tethys/action';
5
5
  import { ThyDivider } from 'ngx-tethys/divider';
@@ -19,7 +19,7 @@ import { PluginKeys, THE_IMAGE_SERVICE_TOKEN, TheBaseElement } from '../../inter
19
19
  import * as TheQueries from '../../queries';
20
20
  import { isMobileMode } from '../../utils/get-mode';
21
21
  import { ImageEditor } from './image.editor';
22
- import { injectTranslations } from '../../i18n';
22
+ import { injectTranslations, TheI18nService } from '../../i18n';
23
23
  import * as i0 from "@angular/core";
24
24
  import * as i1 from "ngx-tethys/image";
25
25
  import * as i2 from "../../services/context.service";
@@ -44,7 +44,7 @@ export class TheImage extends TheBaseElement {
44
44
  this.thyPopover = thyPopover;
45
45
  this.overlay = overlay;
46
46
  this.destroyRef = destroyRef;
47
- this.locale = injectTranslations();
47
+ this.locale = injectTranslations(inject(TheI18nService));
48
48
  this.naturalWidth = 0;
49
49
  this.naturalHeight = 0;
50
50
  this.imageEntry = {};
@@ -471,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
471
471
  type: ViewChild,
472
472
  args: [ThyImageDirective]
473
473
  }] } });
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUdILFNBQVMsRUFHVCxNQUFNLEVBS04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUN4RixP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Y0FBYztnQkFJekIsR0FBRztzQkFERixTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSW5DLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdkLGNBQWM7c0JBQTNDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVGh5QWN0aW9uLCBUaHlBY3Rpb25zIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgVGh5RGl2aWRlciB9IGZyb20gJ25neC10ZXRoeXMvZGl2aWRlcic7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUltYWdlRGlyZWN0aXZlLCBUaHlJbWFnZUdyb3VwLCBUaHlJbWFnZVNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2ltYWdlJztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGh5UHJvZ3Jlc3MgfSBmcm9tICduZ3gtdGV0aHlzL3Byb2dyZXNzJztcbmltcG9ydCB7IFRoeVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVGh5VXBsb2FkU3RhdHVzIH0gZnJvbSAnbmd4LXRldGh5cy91cGxvYWQnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkaXRvciwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIEJlZm9yZUNvbnRleHRDaGFuZ2UsIFNsYXRlRWxlbWVudENvbnRleHQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IEFsaWdubWVudCwgRWxlbWVudEtpbmRzLCBMYXlvdXRUeXBlcywgVG9vbGJhckFjdGlvblR5cGVzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEltYWdlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQge1xuICAgIEltYWdlRW50cnksXG4gICAgSW1hZ2VJbmZvLFxuICAgIEltYWdlUGx1Z2luT3B0aW9ucyxcbiAgICBMYXlvdXRPcHRpb24sXG4gICAgUGx1Z2luS2V5cyxcbiAgICBUSEVfSU1BR0VfU0VSVklDRV9UT0tFTixcbiAgICBUaGVCYXNlRWxlbWVudCxcbiAgICBUaGVJbWFnZVNlcnZpY2Vcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNNb2JpbGVNb2RlIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LW1vZGUnO1xuaW1wb3J0IHsgSW1hZ2VFZGl0b3IgfSBmcm9tICcuL2ltYWdlLmVkaXRvcic7XG5pbXBvcnQgeyBpbmplY3RUcmFuc2xhdGlvbnMsIFRoZUkxOG5UcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uL2kxOG4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1pbWFnZSwgW3RoZUltYWdlXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE5nU3R5bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIFRoeUltYWdlRGlyZWN0aXZlLFxuICAgICAgICBUaHlBY3Rpb24sXG4gICAgICAgIFRoeURpdmlkZXIsXG4gICAgICAgIFRoeUFjdGlvbnMsXG4gICAgICAgIFRoeVRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIFRoeVByb2dyZXNzXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtUaHlJbWFnZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUltYWdlXG4gICAgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudDxJbWFnZUVsZW1lbnQsIEVkaXRvcj5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBCZWZvcmVDb250ZXh0Q2hhbmdlPFNsYXRlRWxlbWVudENvbnRleHQ+XG57XG4gICAgbG9jYWxlOiBTaWduYWw8VGhlSTE4blRyYW5zbGF0aW9uPiA9IGluamVjdFRyYW5zbGF0aW9ucygpO1xuXG4gICAgbmF0dXJhbFdpZHRoID0gMDtcblxuICAgIG5hdHVyYWxIZWlnaHQgPSAwO1xuXG4gICAgaW1hZ2VFbnRyeTogSW1hZ2VFbnRyeSA9IHt9O1xuXG4gICAgdXBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwZXJjZW50YWdlID0gMDtcblxuICAgIGZpbGVJdGVtOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIHwgc3RyaW5nIH07XG5cbiAgICBsYXlvdXREZWZhdWx0V2lkdGggPSAzNjg7XG5cbiAgICBkaXNhYmxlUHJldmlldyA9IGZhbHNlO1xuXG4gICAgbG9hZEltYWdlRXJyb3IgPSBmYWxzZTtcblxuICAgIGxheW91dE9wdGlvbnM6IExheW91dE9wdGlvbltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5sZWZ0LFxuICAgICAgICAgICAgaWNvbjogJ2ltYWdlLWxlZnQnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5sb2NhbGUoKS5hbGlnbkxlZnQsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICBpY29uOiAnaW1hZ2UtY2VudGVyJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubG9jYWxlKCkuYWxpZ25DZW50ZXIsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5yaWdodCxcbiAgICAgICAgICAgIGljb246ICdpbWFnZS1yaWdodCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmxvY2FsZSgpLmFsaWduUmlnaHQsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IExheW91dFR5cGVzLndyYXBMZWZ0LFxuICAgICAgICAgICAgaWNvbjogJ3dyYXAtbGVmdCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmxvY2FsZSgpLndyYXBMZWZ0LFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCwga2V5OiBMYXlvdXRUeXBlcykgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBsYXlvdXQ6IGtleSB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IExheW91dFR5cGVzLndyYXBSaWdodCxcbiAgICAgICAgICAgIGljb246ICd3cmFwLXJpZ2h0JyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubG9jYWxlKCkud3JhcFJpZ2h0LFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCwga2V5OiBMYXlvdXRUeXBlcykgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBsYXlvdXQ6IGtleSB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdyZW1vdmUnLFxuICAgICAgICAgICAgaWNvbjogJ3RyYXNoJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubG9jYWxlKCkuZGVsZXRlLFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbkRlbGV0ZShlKVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIHByaXZhdGUgdXBsb2FkaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIG1vdXNlTW92ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBkcmFnYWJsZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsYXlvdXRUb29sYmFyUmVmOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBwcml2YXRlIGltYWdlUGx1Z2luT3B0aW9uczogSW1hZ2VQbHVnaW5PcHRpb25zO1xuXG4gICAgZ2V0IGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0VG9vbGJhclJlZiAmJiB0aGlzLmxheW91dFRvb2xiYXJSZWYuZ2V0T3ZlcmxheVJlZigpICYmIHRoaXMubGF5b3V0VG9vbGJhclJlZi5nZXRPdmVybGF5UmVmKCkuaGFzQXR0YWNoZWQoKTtcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2VCaW5kaW5nV2lkdGgoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IHRoaXMuaW1hZ2VFbnRyeT8ud2lkdGggfHwgdGhpcy5uYXR1cmFsV2lkdGg7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlRW50cnk/LmxheW91dCAmJiBjdXJyZW50V2lkdGggPiB0aGlzLmxheW91dERlZmF1bHRXaWR0aCAmJiAhdGhpcy5pbWFnZUVudHJ5Py5yZVNpemVkXG4gICAgICAgICAgICA/IHRoaXMubGF5b3V0RGVmYXVsdFdpZHRoXG4gICAgICAgICAgICA6IGN1cnJlbnRXaWR0aDtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdpbWFnZUNvbnRlbnQnKVxuICAgIGltYWdlQ29udGVudDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2ltZycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGltZzogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2xheW91dFRvb2xiYXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGxheW91dFRvb2xiYXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFRoeUltYWdlRGlyZWN0aXZlKSBpbWFnZURpcmVjdGl2ZTogVGh5SW1hZ2VEaXJlY3RpdmU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBpbWFnZUdyb3VwOiBUaHlJbWFnZUdyb3VwLFxuICAgICAgICBASW5qZWN0KFRIRV9JTUFHRV9TRVJWSUNFX1RPS0VOKVxuICAgICAgICBwcml2YXRlIGltYWdlU2VydmljZTogVGhlSW1hZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRoZUNvbnRleHRTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGJlZm9yZUNvbnRleHRDaGFuZ2UgPSAodmFsdWU6IFNsYXRlRWxlbWVudENvbnRleHQ8SW1hZ2VFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAodmFsdWUuZWxlbWVudCAhPT0gdGhpcy5lbGVtZW50ICYmIHZhbHVlLmVsZW1lbnQudGh1bWJVcmwpIHtcbiAgICAgICAgICAgIGxldCB0aHVtYlVybCA9IHZhbHVlLmVsZW1lbnQudGh1bWJVcmw7XG4gICAgICAgICAgICBsZXQgb3JpZ2luVXJsID0gdmFsdWUuZWxlbWVudC5vcmlnaW5Vcmw7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmltYWdlU2VydmljZS5nZXRJbWFnZVVybCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLmdldEltYWdlVXJsKHZhbHVlLmVsZW1lbnQpLnN1YnNjcmliZSgoeyB0aHVtYlVybCwgb3JpZ2luVXJsIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZEltYWdlRW50cnkodmFsdWUuZWxlbWVudCwgdGh1bWJVcmwsIG9yaWdpblVybCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSW1hZ2VFbnRyeSh2YWx1ZS5lbGVtZW50LCB0aHVtYlVybCwgb3JpZ2luVXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0QmxvY2tDYXJkTGF5b3V0QXR0cigpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJ1aWxkSW1hZ2VFbnRyeShuZXdFbGVtZW50OiBJbWFnZUVsZW1lbnQsIHRodW1iVXJsOiBzdHJpbmcsIG9yaWdpblVybDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VFbnRyeSA9IHtcbiAgICAgICAgICAgIC4uLm5ld0VsZW1lbnQsXG4gICAgICAgICAgICB0aHVtYlVybCxcbiAgICAgICAgICAgIG9yaWdpblVybCxcbiAgICAgICAgICAgIGFsaWduOiBuZXdFbGVtZW50LmFsaWduIHx8IEFsaWdubWVudC5sZWZ0LFxuICAgICAgICAgICAgcmVTaXplZDogbmV3RWxlbWVudC5yZVNpemVkIHx8IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc2V0SW1hZ2VGaWxlSXRlbSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGVJdGVtPy5maWxlKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEltYWdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRJbWFnZVBsdWdpbk9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlUHJldmlldygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVNb3VzZVVwKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlSW1hZ2VVcGxvYWRpbmdTdGF0ZSgpO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgc3VwZXIub25Db250ZXh0Q2hhbmdlKCk7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkICYmICFpc01vYmlsZU1vZGUodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1Nob3VsZE9wZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkxheW91dFRvb2xiYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvdWxkQ2xvc2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VMYXlvdXRUb29sYmFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50aGVDb250ZXh0U2VydmljZS5yZW1vdmVVcGxvYWRGaWxlKHRoaXMuZmlsZUl0ZW0pO1xuICAgICAgICBpZiAodGhpcy51cGxvYWRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UudXBsb2FkaW5nU3RhdHVzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW1hZ2VQbHVnaW5PcHRpb25zKCkge1xuICAgICAgICB0aGlzLmltYWdlUGx1Z2luT3B0aW9ucyA9IGdldFBsdWdpbk9wdGlvbnM8SW1hZ2VQbHVnaW5PcHRpb25zPih0aGlzLmVkaXRvciwgUGx1Z2luS2V5cy5pbWFnZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREaXNhYmxlUHJldmlldygpIHtcbiAgICAgICAgY29uc3QgeyBkaXNhYmxlUHJldmlldyB9ID0gdGhpcy5pbWFnZVBsdWdpbk9wdGlvbnM7XG4gICAgICAgIGlmIChkaXNhYmxlUHJldmlldyAmJiB0eXBlb2YgZGlzYWJsZVByZXZpZXcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVByZXZpZXcgPSBkaXNhYmxlUHJldmlldyh0aGlzLmVkaXRvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQcmV2aWV3ID0gZGlzYWJsZVByZXZpZXcgYXMgYm9vbGVhbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW1hZ2VGaWxlSXRlbSgpIHtcbiAgICAgICAgdGhpcy5maWxlSXRlbSA9IHRoaXMudGhlQ29udGV4dFNlcnZpY2UudXBsb2FkaW5nRmlsZXMuZmluZChpdGVtID0+IGl0ZW0udXJsID09PSB0aGlzLmVsZW1lbnQudXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZU1vdXNlVXAoKSB7XG4gICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoZSA9PiB0aGlzLmVuZERyYWcoZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlSW1hZ2VVcGxvYWRpbmdTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24gPSB0aGlzLmltYWdlU2VydmljZVxuICAgICAgICAgICAgLmdldFVwbG9hZGluZ0l0ZW1zJCgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgIGZpbGVVcGxvYWRpbmdJdGVtID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJdGVtPy5maWxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlVXBsb2FkaW5nSXRlbS5maW5kKGl0ZW0gPT4gaXRlbS5maWxlID09PSB0aGlzLmZpbGVJdGVtPy5maWxlIHx8IGl0ZW0/LnVybCA9PT0gdGhpcy5maWxlSXRlbT8uZmlsZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHVwbG9hZGluZ0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdXBsb2FkaW5nSXRlbSB8fCAhdXBsb2FkaW5nSXRlbS5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnBlcmNlbnRhZ2UgPSB1cGxvYWRpbmdJdGVtLnJlc3VsdC51cGxvYWRGaWxlLnByb2dyZXNzLnBlcmNlbnRhZ2U7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdGF0dXMgfSA9IHVwbG9hZGluZ0l0ZW0ucmVzdWx0O1xuICAgICAgICAgICAgICAgIC8vIOaIkOWKn+WSjOWksei0pemDveimgeS4iuS8oOe7k+adn1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFRoeVVwbG9hZFN0YXR1cy5kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UucmVtb3ZlVXBsb2FkRmlsZSh0aGlzLmZpbGVJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLnVwbG9hZGluZ1N0YXR1cyQubmV4dChmYWxzZSksIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEltYWdlTm9kZXMoaW1hZ2VJbmZvOiBJbWFnZUVudHJ5KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBkYXRhID0geyB0eXBlOiBFbGVtZW50S2luZHMuaW1hZ2UsIHVybDogbnVsbCwgLi4uaW1hZ2VJbmZvIH07XG4gICAgICAgIEhpc3RvcnlFZGl0b3Iud2l0aG91dFNhdmluZyh0aGlzLmVkaXRvciwgKCkgPT4gVHJhbnNmb3Jtcy5zZXROb2Rlcyh0aGlzLmVkaXRvciwgZGF0YSwgeyBhdDogcGF0aCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgdXBsb2FkSW1hZ2UoKSB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5maWxlSXRlbS5maWxlO1xuICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VFbnRyeSA9IHtcbiAgICAgICAgICAgICAgICBhbGlnbjogdGhpcy5pbWFnZUVudHJ5LmFsaWduIHx8IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICAgICAgdGh1bWJVcmw6IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aGVDb250ZXh0U2VydmljZS51cGxvYWRpbmdTdGF0dXMkLm5leHQodHJ1ZSk7XG5cbiAgICAgICAgY29uc3QgW2ZpbGVFbnRpdHldID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5pbWFnZVNlcnZpY2UudXBsb2FkRmlsZUhhbmRsZShmaWxlKSk7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgc2l6ZSwgdGh1bWJVcmwsIG9yaWdpblVybCB9ID0gZmlsZUVudGl0eTtcbiAgICAgICAgY29uc3QgaW1hZ2VJbmZvOiBJbWFnZUVudHJ5ID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHRodW1iVXJsLFxuICAgICAgICAgICAgb3JpZ2luVXJsLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLmltYWdlRW50cnkuYWxpZ24gfHwgQWxpZ25tZW50LmNlbnRlcixcbiAgICAgICAgICAgIG9yaWdpbldpZHRoOiB0aGlzLm5hdHVyYWxXaWR0aCxcbiAgICAgICAgICAgIG9yaWdpbkhlaWdodDogdGhpcy5uYXR1cmFsSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2V0SW1hZ2VOb2RlcyhpbWFnZUluZm8pO1xuICAgIH1cblxuICAgIHN0YXJ0RHJhZyhldmVudDogTW91c2VFdmVudCwgYXhpczogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRJbWFnZUVycm9yIHx8ICF0aGlzLmltZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmRyYWdhYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaW1nRWxlbWVudCA9IHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGF4aXMsXG4gICAgICAgICAgICBwcmludGVyUG9zaXRpb25YOiBldmVudC5wYWdlWCxcbiAgICAgICAgICAgIHByaW50ZXJQb3NpdGlvblk6IGV2ZW50LnBhZ2VZLFxuICAgICAgICAgICAgaW50ZXJuYWxXaWR0aDogaW1nRWxlbWVudC53aWR0aCB8fCB0aGlzLmltYWdlRW50cnkud2lkdGgsXG4gICAgICAgICAgICBpbnRlcm5hbEhlaWdodDogaW1nRWxlbWVudC5oZWlnaHQgfHwgdGhpcy5pbWFnZUVudHJ5LmhlaWdodCxcbiAgICAgICAgICAgIG1heFdpZHRoOiB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLmdldEZpcnN0RWxlbWVudENoaWxkKCkub2Zmc2V0V2lkdGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLm9uTW91c2VNb3ZlJC5zdWJzY3JpYmUoZSA9PiB0aGlzLm1vdXNlTW92ZUhhbmRsZShlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgbW91c2VNb3ZlSGFuZGxlKFxuICAgICAgICBldmVudDogTW91c2VFdmVudCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgYXhpczogc3RyaW5nO1xuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWDogbnVtYmVyO1xuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWTogbnVtYmVyO1xuICAgICAgICAgICAgaW50ZXJuYWxXaWR0aDogbnVtYmVyO1xuICAgICAgICAgICAgaW50ZXJuYWxIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgICAgIG1heFdpZHRoOiBudW1iZXI7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2FibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgYXhpcywgcHJpbnRlclBvc2l0aW9uWCwgcHJpbnRlclBvc2l0aW9uWSwgaW50ZXJuYWxXaWR0aCwgaW50ZXJuYWxIZWlnaHQsIG1heFdpZHRoIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgaXNSZXZlcnNhbCA9IGF4aXMuaW5jbHVkZXMoJy0nKTtcblxuICAgICAgICAgICAgbGV0IG9mZnNldFggPSBldmVudC5wYWdlWCAtIHByaW50ZXJQb3NpdGlvblg7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0WSA9IGV2ZW50LnBhZ2VZIC0gcHJpbnRlclBvc2l0aW9uWTtcbiAgICAgICAgICAgIGxldCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKGlzUmV2ZXJzYWwpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRYID0gLW9mZnNldFg7XG4gICAgICAgICAgICAgICAgb2Zmc2V0WSA9IC1vZmZzZXRZO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5hbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRYID0gb2Zmc2V0WCAqIDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChheGlzLmluY2x1ZGVzKCd4JykpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG9mZnNldFggKyBpbnRlcm5hbFdpZHRoO1xuICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+PSBtYXhXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG1heFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGBsYXlvdXRgIHdoZW4gdGhlIGltYWdlIGlzIGFkanVzdGVkIHRvIHRoZSBtYXhpbXVtIHZhbHVlIHVuZGVyIHJpY2ggbWVkaWFcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VFbnRyeT8ubGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5zZXRJbWFnZU5vZGUodGhpcy5lZGl0b3IsIHsgbGF5b3V0OiB1bmRlZmluZWQgfSwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gMTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXhpcy5pbmNsdWRlcygnbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gaW50ZXJuYWxXaWR0aCAvIHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSBpbnRlcm5hbEhlaWdodCAvIHJhdGlvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXhpcy5pbmNsdWRlcygneScpKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gb2Zmc2V0WSArIGludGVybmFsSGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmIChoZWlnaHQgPj0gMTAwMCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSAxMDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0IDw9IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSAxMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChheGlzLmluY2x1ZGVzKCdsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSBpbnRlcm5hbEhlaWdodCAvIGhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBpbnRlcm5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaW1hZ2VFbnRyeS5yZVNpemVkICYmIHRoaXMuaW1hZ2VFbnRyeS53aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlRW50cnkucmVTaXplZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmltZy5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICB0aGlzLmltYWdlRW50cnkuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW5kRHJhZyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5kcmFnYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlRW50cnkud2lkdGggPT09IHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLndpZHRoICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LndpZHRoIDw9IHRoaXMubmF0dXJhbFdpZHRoICYmXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LndpZHRoXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlRW50cnkud2lkdGggPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VFbnRyeS5oZWlnaHQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuaW1hZ2VFbnRyeS53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmltYWdlRW50cnkuaGVpZ2h0XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGF0OiB0aGlzLnNlbGVjdGlvbiB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsVXBsb2FkKCkge1xuICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKHRoaXMuZWRpdG9yLCB7IGF0OiB0aGlzLnNlbGVjdGlvbiB9KTtcbiAgICB9XG5cbiAgICBpc1Nob3VsZE9wZW4oKSB7XG4gICAgICAgIGNvbnN0IHsgcmljaE1lZGlhIH0gPSB0aGlzLmVkaXRvcj8ub3B0aW9ucztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzPy5yZWFkb25seSAmJlxuICAgICAgICAgICAgcmljaE1lZGlhICYmXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkgJiZcbiAgICAgICAgICAgIFRoZVF1ZXJpZXMuaXNHbG9iYWxDb2xsYXBzZWQodGhpcy5lZGl0b3IpICYmXG4gICAgICAgICAgICAhdGhpcy51cGxvYWRpbmcgJiZcbiAgICAgICAgICAgICF0aGlzLmlzT3BlblxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzU2hvdWxkQ2xvc2UoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzT3BlbiAmJlxuICAgICAgICAgICAgKHRoaXM/LnJlYWRvbmx5IHx8ICF0aGlzLmlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkgfHwgIVRoZVF1ZXJpZXMuaXNHbG9iYWxDb2xsYXBzZWQodGhpcy5lZGl0b3IpIHx8IHRoaXMudXBsb2FkaW5nKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9wZW5MYXlvdXRUb29sYmFyKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW1nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4odGhpcy5sYXlvdXRUb29sYmFyLCB7XG4gICAgICAgICAgICBvcmlnaW46IHRoaXMuaW1hZ2VDb250ZW50LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ3RoZS1wbHVnaW4tdG9vbGJhci1wb3BvdmVyJyxcbiAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGF5b3V0VG9vbGJhclJlZj8uZ2V0T3ZlcmxheVJlZigpLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5jcmVhdGVQb3NpdGlvblN0cmF0ZWd5KCkpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmPy5nZXRPdmVybGF5UmVmKCkudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfSwgMTUwKTtcbiAgICB9XG5cbiAgICBjbG9zZUxheW91dFRvb2xiYXIoKSB7XG4gICAgICAgIHRoaXMubGF5b3V0VG9vbGJhclJlZj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICBsYXlvdXRBY3RpdmUoa2V5OiBBbGlnbm1lbnQgfCBMYXlvdXRUeXBlcykge1xuICAgICAgICBjb25zdCB7IGxheW91dCwgYWxpZ24gfSA9IHRoaXMuaW1hZ2VFbnRyeTtcbiAgICAgICAgcmV0dXJuIGtleSAmJiAoKGtleSA9PT0gYWxpZ24gJiYgIWxheW91dCkgfHwga2V5ID09PSBsYXlvdXQpO1xuICAgIH1cblxuICAgIHNldEltYWdlTm9kZShlOiBNb3VzZUV2ZW50LCBwcm9wczogUGFydGlhbDxJbWFnZUVsZW1lbnQ+KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgSW1hZ2VFZGl0b3Iuc2V0SW1hZ2VOb2RlKHRoaXMuZWRpdG9yLCBwcm9wcywgdGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBzZXRCbG9ja0NhcmRMYXlvdXRBdHRyKCkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBibG9ja0NhcmQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXQgfSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKGJsb2NrQ2FyZCAmJiBsYXlvdXQpIHtcbiAgICAgICAgICAgICAgICBibG9ja0NhcmQuc2V0QXR0cmlidXRlKCdsYXlvdXQnLCBsYXlvdXQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0NhcmQgJiYgIWxheW91dCkge1xuICAgICAgICAgICAgICAgIGJsb2NrQ2FyZC5yZW1vdmVBdHRyaWJ1dGUoJ2xheW91dCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmPy5nZXRPdmVybGF5UmVmKCkudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgSW1hZ2VFZGl0b3IucmVtb3ZlSW1hZ2UodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpIHtcbiAgICAgICAgY29uc3QgYm90dG9tUG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICBvZmZzZXRZOiA0XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmltYWdlQ29udGVudClcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW2JvdHRvbVBvc2l0aW9uXSk7XG4gICAgfVxuXG4gICAgaW1hZ2VMb2FkZWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGltZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgICAgICB0aGlzLm5hdHVyYWxXaWR0aCA9IGltZy5uYXR1cmFsV2lkdGg7XG4gICAgICAgIHRoaXMubmF0dXJhbEhlaWdodCA9IGltZy5uYXR1cmFsSGVpZ2h0O1xuICAgIH1cblxuICAgIGltYWdlRXJyb3IoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGltZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgICAgICBjb25zdCBlcnJvckltYWdlVXJsID0gdGhpcy5pbWFnZVBsdWdpbk9wdGlvbnM/LmVycm9ySW1hZ2VVcmw7XG4gICAgICAgIGlmICghdGhpcy5sb2FkSW1hZ2VFcnJvciAmJiBlcnJvckltYWdlVXJsKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgZXJyb3JJbWFnZVVybCA9PT0gJ2Z1bmN0aW9uJyA/IGVycm9ySW1hZ2VVcmwodGhpcy5lZGl0b3IpIDogZXJyb3JJbWFnZVVybDtcbiAgICAgICAgICAgIHRoaXMubG9hZEltYWdlRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlUHJldmlldyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmltYWdlQ29udGVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3RoZS1pbWFnZS1lcnJvcicpO1xuICAgICAgICAgICAgaW1nLnNyYyA9IHVybDtcbiAgICAgICAgfVxuICAgICAgICBpbWcub25lcnJvciA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8g57uE5Lu25bqTIGRpYWxvZyDlvLnlh7rml7bvvIzkvJrorrDlvZXlvZPliY3nmoTnhKbngrnjgILpmLvmraIgbW91c2Vkb3duIOm7mOiupOihjOS4uu+8jOS9v+W+l+WbvueJh+WOn+acrOeahCBjbGljayDkuovku7bog73ojrflj5bliLDmraPnoa7nmoTnhKbngrnjgIJcbiAgICBwcmV2ZW50RGVmYXVsdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaW1hZ2VDbGljaygpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlR3JvdXAuaW1hZ2VzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRoaXMuaW1hZ2VEaXJlY3RpdmUpO1xuICAgICAgICBjb25zdCBpbWFnZUdyb3VwID0gdGhpcy5pbWFnZUdyb3VwLmltYWdlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG9yaWdpblVybDogaXRlbS50aHlPcmlnaW5TcmMsXG4gICAgICAgICAgICAgICAgdGh1bWJVcmw6IGl0ZW0udGh5UHJldmlld1NyYyxcbiAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLnRoeUltYWdlTWV0YS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGl0ZW0udGh5SW1hZ2VNZXRhLnNpemVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pIGFzIEltYWdlSW5mb1tdO1xuICAgICAgICBjb25zdCB7IG9yaWdpblVybCwgdGh1bWJVcmwsIG5hbWUsIHNpemUgfSA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VQbHVnaW5PcHRpb25zLnByZXZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQbHVnaW5PcHRpb25zLnByZXZpZXcoe1xuICAgICAgICAgICAgICAgIGVkaXRvcjogdGhpcy5lZGl0b3IsXG4gICAgICAgICAgICAgICAgcHJldmlld0ltYWdlSW5mbzoge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGh1bWJVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpbWFnZUdyb3VwLFxuICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoZS1pbWFnZS1jb250YWluZXJcIiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiIFtzdHlsZS50ZXh0QWxpZ25dPVwiaW1hZ2VFbnRyeS5hbGlnblwiPlxuICA8ZGl2XG4gICAgI2ltYWdlQ29udGVudFxuICAgICpuZ0lmPVwiaW1hZ2VFbnRyeS50aHVtYlVybDsgZWxzZSBpbWFnZUxvYWRpbmdcIlxuICAgIGNsYXNzPVwiaW1hZ2UtY29udGVudFwiXG4gICAgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIlxuICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhc2VsZWN0aW9uXCJcbiAgPlxuICAgIDxpbWdcbiAgICAgICNpbWdcbiAgICAgIHRoeUltYWdlXG4gICAgICBjbGFzcz1cIm1haW4taW1hZ2VcIlxuICAgICAgW2NsYXNzLmltYWdlLWNvbGxhcHNlZF09XCJzZWxlY3Rpb24gJiYgIXVwbG9hZGluZ1wiXG4gICAgICBbbmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IGltYWdlQmluZGluZ1dpZHRoIH1cIlxuICAgICAgW2FsdF09XCJpbWFnZUVudHJ5Lm5hbWVcIlxuICAgICAgW3RoeVNyY109XCJpbWFnZUVudHJ5LnRodW1iVXJsXCJcbiAgICAgIFt0aHlQcmV2aWV3U3JjXT1cImltYWdlRW50cnkudGh1bWJVcmxcIlxuICAgICAgW3RoeU9yaWdpblNyY109XCJpbWFnZUVudHJ5Lm9yaWdpblVybFwiXG4gICAgICBbdGh5RGlzYWJsZVByZXZpZXddPVwiZGlzYWJsZVByZXZpZXdcIlxuICAgICAgW3RoeUltYWdlTWV0YV09XCJ7IG5hbWU6IGltYWdlRW50cnkubmFtZSwgc2l6ZTogaW1hZ2VFbnRyeS5zaXplIH1cIlxuICAgICAgKGxvYWQpPVwiaW1hZ2VMb2FkZWQoJGV2ZW50KVwiXG4gICAgICAobW91c2Vkb3duKT1cInByZXZlbnREZWZhdWx0KCRldmVudClcIlxuICAgICAgKGVycm9yKT1cImltYWdlRXJyb3IoJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiaW1hZ2VDbGljaygkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxkaXYgKm5nSWY9XCJpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5XCIgY2xhc3M9XCJpbWFnZS1wcm9maWxlXCIgW2NsYXNzLm91dGxpbmVdPVwic2VsZWN0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRJbWFnZUVycm9yXCI+XG4gICAgICAgIDxzcGFuIChtb3VzZWRvd24pPVwic3RhcnREcmFnKCRldmVudCwgJy14bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIGxlZnQgdG9wXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQsICd4bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIHJpZ2h0IHRvcFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKG1vdXNlZG93bik9XCJzdGFydERyYWcoJGV2ZW50LCAneGwnKVwiIGNsYXNzPVwiaW1hZ2UtcG9pbnRlciByaWdodCBib3R0b21cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIChtb3VzZWRvd24pPVwic3RhcnREcmFnKCRldmVudCwgJy14bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIGxlZnQgYm90dG9tXCI+PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlVXBsb2FkaW5nXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0lmPVwiIXVwbG9hZGluZ1wiIGNsYXNzPVwibGF5ZXJcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbWFnZUxvYWRpbmc+XG4gIDxkaXYgKm5nSWY9XCIhaW1hZ2VFbnRyeS50aHVtYlVybFwiIGNsYXNzPVwiaW1hZ2UtbG9hZGluZyBjdXJzb3ItcG9pbnRlclwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiaW1hZ2VcIj48L3RoeS1pY29uPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlVXBsb2FkaW5nXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGF5b3V0VG9vbGJhcj5cbiAgPHRoeS1hY3Rpb25zIHRoeVNpemU9XCJ4eHNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxheW91dE9wdGlvbnNcIj5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwiaXRlbS5rZXkgIT09ICdzcGxpdCdcIlxuICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgdGh5QWN0aW9uXG4gICAgICAgIFt0aHlUeXBlXT1cIml0ZW0ua2V5ID09PSAncmVtb3ZlJyA/ICdkYW5nZXInIDogJ3ByaW1hcnknXCJcbiAgICAgICAgW3RoeUFjdGlvbkljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgW3RoeUFjdGlvbkFjdGl2ZV09XCJsYXlvdXRBY3RpdmUoaXRlbS5rZXkpXCJcbiAgICAgICAgW3RoeVRvb2x0aXBdPVwiaXRlbS5uYW1lXCJcbiAgICAgICAgdGh5VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwiaXRlbT8uaGFuZGxlKCRldmVudCwgaXRlbS5rZXkpXCJcbiAgICAgID48L2E+XG4gICAgICA8dGh5LWRpdmlkZXIgKm5nSWY9XCJpdGVtLmtleSA9PT0gJ3NwbGl0J1wiIGNsYXNzPVwibXItMiBtbC0xIGFsaWduLXNlbGYtY2VudGVyXCIgW3RoeVZlcnRpY2FsXT1cInRydWVcIiB0aHlDb2xvcj1cImxpZ2h0XCI+PC90aHktZGl2aWRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90aHktYWN0aW9ucz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW1hZ2VVcGxvYWRpbmc+XG4gIDxkaXYgKm5nSWY9XCJ1cGxvYWRpbmdcIiBjbGFzcz1cInVwbG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRpbmctcGVyY2VudGFnZVwiPlxuICAgICAgPHRoeS1wcm9ncmVzcyB0aHlUeXBlPVwicHJpbWFyeVwiIFt0aHlWYWx1ZV09XCJwZXJjZW50YWdlXCIgdGh5U2l6ZT1cInNtXCI+PC90aHktcHJvZ3Jlc3M+XG4gICAgICA8dGh5LWljb24gKGNsaWNrKT1cImNhbmNlbFVwbG9hZCgkZXZlbnQpXCIgdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCIgdGh5SWNvbkxlZ2dpbmc9XCJ0cnVlXCI+IDwvdGh5LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUdILFNBQVMsRUFHVCxNQUFNLEVBQ04sTUFBTSxFQUtOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBNEMsTUFBTSxlQUFlLENB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QU07MkJBQUMsdUJBQXVCO2lKQWJuQyxZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYztnQkFJekIsR0FBRztzQkFERixTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSW5DLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdkLGNBQWM7c0JBQTNDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRoeUFjdGlvbiwgVGh5QWN0aW9ucyB9IGZyb20gJ25neC10ZXRoeXMvYWN0aW9uJztcbmltcG9ydCB7IFRoeURpdmlkZXIgfSBmcm9tICduZ3gtdGV0aHlzL2RpdmlkZXInO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbWFnZURpcmVjdGl2ZSwgVGh5SW1hZ2VHcm91cCwgVGh5SW1hZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9pbWFnZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeVByb2dyZXNzIH0gZnJvbSAnbmd4LXRldGh5cy9wcm9ncmVzcyc7XG5pbXBvcnQgeyBUaHlUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy90b29sdGlwJztcbmltcG9ydCB7IFRoeVVwbG9hZFN0YXR1cyB9IGZyb20gJ25neC10ZXRoeXMvdXBsb2FkJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBCZWZvcmVDb250ZXh0Q2hhbmdlLCBTbGF0ZUVsZW1lbnRDb250ZXh0IH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIEVsZW1lbnRLaW5kcywgTGF5b3V0VHlwZXMsIFRvb2xiYXJBY3Rpb25UeXBlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBJbWFnZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHtcbiAgICBJbWFnZUVudHJ5LFxuICAgIEltYWdlSW5mbyxcbiAgICBJbWFnZVBsdWdpbk9wdGlvbnMsXG4gICAgTGF5b3V0T3B0aW9uLFxuICAgIFBsdWdpbktleXMsXG4gICAgVEhFX0lNQUdFX1NFUlZJQ0VfVE9LRU4sXG4gICAgVGhlQmFzZUVsZW1lbnQsXG4gICAgVGhlSW1hZ2VTZXJ2aWNlXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGlzTW9iaWxlTW9kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1tb2RlJztcbmltcG9ydCB7IEltYWdlRWRpdG9yIH0gZnJvbSAnLi9pbWFnZS5lZGl0b3InO1xuaW1wb3J0IHsgaW5qZWN0VHJhbnNsYXRpb25zLCBUaGVJMThuU2VydmljZSwgVGhlSTE4blRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWltYWdlLCBbdGhlSW1hZ2VdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdTdHlsZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgVGh5SW1hZ2VEaXJlY3RpdmUsXG4gICAgICAgIFRoeUFjdGlvbixcbiAgICAgICAgVGh5RGl2aWRlcixcbiAgICAgICAgVGh5QWN0aW9ucyxcbiAgICAgICAgVGh5VG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgICAgVGh5UHJvZ3Jlc3NcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1RoeUltYWdlU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgVGhlSW1hZ2VcbiAgICBleHRlbmRzIFRoZUJhc2VFbGVtZW50PEltYWdlRWxlbWVudCwgRWRpdG9yPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEJlZm9yZUNvbnRleHRDaGFuZ2U8U2xhdGVFbGVtZW50Q29udGV4dD5cbntcbiAgICBsb2NhbGU6IFNpZ25hbDxUaGVJMThuVHJhbnNsYXRpb24+ID0gaW5qZWN0VHJhbnNsYXRpb25zKGluamVjdChUaGVJMThuU2VydmljZSkpO1xuXG4gICAgbmF0dXJhbFdpZHRoID0gMDtcblxuICAgIG5hdHVyYWxIZWlnaHQgPSAwO1xuXG4gICAgaW1hZ2VFbnRyeTogSW1hZ2VFbnRyeSA9IHt9O1xuXG4gICAgdXBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwZXJjZW50YWdlID0gMDtcblxuICAgIGZpbGVJdGVtOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIHwgc3RyaW5nIH07XG5cbiAgICBsYXlvdXREZWZhdWx0V2lkdGggPSAzNjg7XG5cbiAgICBkaXNhYmxlUHJldmlldyA9IGZhbHNlO1xuXG4gICAgbG9hZEltYWdlRXJyb3IgPSBmYWxzZTtcblxuICAgIGxheW91dE9wdGlvbnM6IExheW91dE9wdGlvbltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5sZWZ0LFxuICAgICAgICAgICAgaWNvbjogJ2ltYWdlLWxlZnQnLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5sb2NhbGUoKS5hbGlnbkxlZnQsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICBpY29uOiAnaW1hZ2UtY2VudGVyJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubG9jYWxlKCkuYWxpZ25DZW50ZXIsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEFsaWdubWVudC5yaWdodCxcbiAgICAgICAgICAgIGljb246ICdpbWFnZS1yaWdodCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmxvY2FsZSgpLmFsaWduUmlnaHQsXG4gICAgICAgICAgICBoYW5kbGU6IChlOiBNb3VzZUV2ZW50LCBrZXk6IEFsaWdubWVudCkgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBhbGlnbjoga2V5LCBsYXlvdXQ6IHVuZGVmaW5lZCB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IExheW91dFR5cGVzLndyYXBMZWZ0LFxuICAgICAgICAgICAgaWNvbjogJ3dyYXAtbGVmdCcsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmxvY2FsZSgpLndyYXBMZWZ0LFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCwga2V5OiBMYXlvdXRUeXBlcykgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBsYXlvdXQ6IGtleSB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IExheW91dFR5cGVzLndyYXBSaWdodCxcbiAgICAgICAgICAgIGljb246ICd3cmFwLXJpZ2h0JyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubG9jYWxlKCkud3JhcFJpZ2h0LFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCwga2V5OiBMYXlvdXRUeXBlcykgPT4gdGhpcy5zZXRJbWFnZU5vZGUoZSwgeyBsYXlvdXQ6IGtleSB9KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdyZW1vdmUnLFxuICAgICAgICAgICAgaWNvbjogJ3RyYXNoJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubG9jYWxlKCkuZGVsZXRlLFxuICAgICAgICAgICAgaGFuZGxlOiAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbkRlbGV0ZShlKVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIHByaXZhdGUgdXBsb2FkaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIG1vdXNlTW92ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBkcmFnYWJsZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsYXlvdXRUb29sYmFyUmVmOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBwcml2YXRlIGltYWdlUGx1Z2luT3B0aW9uczogSW1hZ2VQbHVnaW5PcHRpb25zO1xuXG4gICAgZ2V0IGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0VG9vbGJhclJlZiAmJiB0aGlzLmxheW91dFRvb2xiYXJSZWYuZ2V0T3ZlcmxheVJlZigpICYmIHRoaXMubGF5b3V0VG9vbGJhclJlZi5nZXRPdmVybGF5UmVmKCkuaGFzQXR0YWNoZWQoKTtcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2VCaW5kaW5nV2lkdGgoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IHRoaXMuaW1hZ2VFbnRyeT8ud2lkdGggfHwgdGhpcy5uYXR1cmFsV2lkdGg7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlRW50cnk/LmxheW91dCAmJiBjdXJyZW50V2lkdGggPiB0aGlzLmxheW91dERlZmF1bHRXaWR0aCAmJiAhdGhpcy5pbWFnZUVudHJ5Py5yZVNpemVkXG4gICAgICAgICAgICA/IHRoaXMubGF5b3V0RGVmYXVsdFdpZHRoXG4gICAgICAgICAgICA6IGN1cnJlbnRXaWR0aDtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdpbWFnZUNvbnRlbnQnKVxuICAgIGltYWdlQ29udGVudDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2ltZycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGltZzogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2xheW91dFRvb2xiYXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGxheW91dFRvb2xiYXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFRoeUltYWdlRGlyZWN0aXZlKSBpbWFnZURpcmVjdGl2ZTogVGh5SW1hZ2VEaXJlY3RpdmU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBpbWFnZUdyb3VwOiBUaHlJbWFnZUdyb3VwLFxuICAgICAgICBASW5qZWN0KFRIRV9JTUFHRV9TRVJWSUNFX1RPS0VOKVxuICAgICAgICBwcml2YXRlIGltYWdlU2VydmljZTogVGhlSW1hZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRoZUNvbnRleHRTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyLFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGJlZm9yZUNvbnRleHRDaGFuZ2UgPSAodmFsdWU6IFNsYXRlRWxlbWVudENvbnRleHQ8SW1hZ2VFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAodmFsdWUuZWxlbWVudCAhPT0gdGhpcy5lbGVtZW50ICYmIHZhbHVlLmVsZW1lbnQudGh1bWJVcmwpIHtcbiAgICAgICAgICAgIGxldCB0aHVtYlVybCA9IHZhbHVlLmVsZW1lbnQudGh1bWJVcmw7XG4gICAgICAgICAgICBsZXQgb3JpZ2luVXJsID0gdmFsdWUuZWxlbWVudC5vcmlnaW5Vcmw7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmltYWdlU2VydmljZS5nZXRJbWFnZVVybCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLmdldEltYWdlVXJsKHZhbHVlLmVsZW1lbnQpLnN1YnNjcmliZSgoeyB0aHVtYlVybCwgb3JpZ2luVXJsIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZEltYWdlRW50cnkodmFsdWUuZWxlbWVudCwgdGh1bWJVcmwsIG9yaWdpblVybCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSW1hZ2VFbnRyeSh2YWx1ZS5lbGVtZW50LCB0aHVtYlVybCwgb3JpZ2luVXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0QmxvY2tDYXJkTGF5b3V0QXR0cigpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJ1aWxkSW1hZ2VFbnRyeShuZXdFbGVtZW50OiBJbWFnZUVsZW1lbnQsIHRodW1iVXJsOiBzdHJpbmcsIG9yaWdpblVybDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VFbnRyeSA9IHtcbiAgICAgICAgICAgIC4uLm5ld0VsZW1lbnQsXG4gICAgICAgICAgICB0aHVtYlVybCxcbiAgICAgICAgICAgIG9yaWdpblVybCxcbiAgICAgICAgICAgIGFsaWduOiBuZXdFbGVtZW50LmFsaWduIHx8IEFsaWdubWVudC5sZWZ0LFxuICAgICAgICAgICAgcmVTaXplZDogbmV3RWxlbWVudC5yZVNpemVkIHx8IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc2V0SW1hZ2VGaWxlSXRlbSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGVJdGVtPy5maWxlKSB7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEltYWdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRJbWFnZVBsdWdpbk9wdGlvbnMoKTtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlUHJldmlldygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVNb3VzZVVwKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlSW1hZ2VVcGxvYWRpbmdTdGF0ZSgpO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgc3VwZXIub25Db250ZXh0Q2hhbmdlKCk7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkICYmICFpc01vYmlsZU1vZGUodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1Nob3VsZE9wZW4oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkxheW91dFRvb2xiYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2hvdWxkQ2xvc2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VMYXlvdXRUb29sYmFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50aGVDb250ZXh0U2VydmljZS5yZW1vdmVVcGxvYWRGaWxlKHRoaXMuZmlsZUl0ZW0pO1xuICAgICAgICBpZiAodGhpcy51cGxvYWRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UudXBsb2FkaW5nU3RhdHVzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW1hZ2VQbHVnaW5PcHRpb25zKCkge1xuICAgICAgICB0aGlzLmltYWdlUGx1Z2luT3B0aW9ucyA9IGdldFBsdWdpbk9wdGlvbnM8SW1hZ2VQbHVnaW5PcHRpb25zPih0aGlzLmVkaXRvciwgUGx1Z2luS2V5cy5pbWFnZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREaXNhYmxlUHJldmlldygpIHtcbiAgICAgICAgY29uc3QgeyBkaXNhYmxlUHJldmlldyB9ID0gdGhpcy5pbWFnZVBsdWdpbk9wdGlvbnM7XG4gICAgICAgIGlmIChkaXNhYmxlUHJldmlldyAmJiB0eXBlb2YgZGlzYWJsZVByZXZpZXcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVByZXZpZXcgPSBkaXNhYmxlUHJldmlldyh0aGlzLmVkaXRvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVQcmV2aWV3ID0gZGlzYWJsZVByZXZpZXcgYXMgYm9vbGVhbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW1hZ2VGaWxlSXRlbSgpIHtcbiAgICAgICAgdGhpcy5maWxlSXRlbSA9IHRoaXMudGhlQ29udGV4dFNlcnZpY2UudXBsb2FkaW5nRmlsZXMuZmluZChpdGVtID0+IGl0ZW0udXJsID09PSB0aGlzLmVsZW1lbnQudXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZU1vdXNlVXAoKSB7XG4gICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoZSA9PiB0aGlzLmVuZERyYWcoZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlSW1hZ2VVcGxvYWRpbmdTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdWJzY3JpcHRpb24gPSB0aGlzLmltYWdlU2VydmljZVxuICAgICAgICAgICAgLmdldFVwbG9hZGluZ0l0ZW1zJCgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgIGZpbGVVcGxvYWRpbmdJdGVtID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVJdGVtPy5maWxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlVXBsb2FkaW5nSXRlbS5maW5kKGl0ZW0gPT4gaXRlbS5maWxlID09PSB0aGlzLmZpbGVJdGVtPy5maWxlIHx8IGl0ZW0/LnVybCA9PT0gdGhpcy5maWxlSXRlbT8uZmlsZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHVwbG9hZGluZ0l0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdXBsb2FkaW5nSXRlbSB8fCAhdXBsb2FkaW5nSXRlbS5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnBlcmNlbnRhZ2UgPSB1cGxvYWRpbmdJdGVtLnJlc3VsdC51cGxvYWRGaWxlLnByb2dyZXNzLnBlcmNlbnRhZ2U7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzdGF0dXMgfSA9IHVwbG9hZGluZ0l0ZW0ucmVzdWx0O1xuICAgICAgICAgICAgICAgIC8vIOaIkOWKn+WSjOWksei0pemDveimgeS4iuS8oOe7k+adn1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFRoeVVwbG9hZFN0YXR1cy5kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UucmVtb3ZlVXBsb2FkRmlsZSh0aGlzLmZpbGVJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLnVwbG9hZGluZ1N0YXR1cyQubmV4dChmYWxzZSksIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEltYWdlTm9kZXMoaW1hZ2VJbmZvOiBJbWFnZUVudHJ5KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBkYXRhID0geyB0eXBlOiBFbGVtZW50S2luZHMuaW1hZ2UsIHVybDogbnVsbCwgLi4uaW1hZ2VJbmZvIH07XG4gICAgICAgIEhpc3RvcnlFZGl0b3Iud2l0aG91dFNhdmluZyh0aGlzLmVkaXRvciwgKCkgPT4gVHJhbnNmb3Jtcy5zZXROb2Rlcyh0aGlzLmVkaXRvciwgZGF0YSwgeyBhdDogcGF0aCB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgdXBsb2FkSW1hZ2UoKSB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5maWxlSXRlbS5maWxlO1xuICAgICAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VFbnRyeSA9IHtcbiAgICAgICAgICAgICAgICBhbGlnbjogdGhpcy5pbWFnZUVudHJ5LmFsaWduIHx8IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICAgICAgdGh1bWJVcmw6IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aGVDb250ZXh0U2VydmljZS51cGxvYWRpbmdTdGF0dXMkLm5leHQodHJ1ZSk7XG5cbiAgICAgICAgY29uc3QgW2ZpbGVFbnRpdHldID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5pbWFnZVNlcnZpY2UudXBsb2FkRmlsZUhhbmRsZShmaWxlKSk7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgc2l6ZSwgdGh1bWJVcmwsIG9yaWdpblVybCB9ID0gZmlsZUVudGl0eTtcbiAgICAgICAgY29uc3QgaW1hZ2VJbmZvOiBJbWFnZUVudHJ5ID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHRodW1iVXJsLFxuICAgICAgICAgICAgb3JpZ2luVXJsLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLmltYWdlRW50cnkuYWxpZ24gfHwgQWxpZ25tZW50LmNlbnRlcixcbiAgICAgICAgICAgIG9yaWdpbldpZHRoOiB0aGlzLm5hdHVyYWxXaWR0aCxcbiAgICAgICAgICAgIG9yaWdpbkhlaWdodDogdGhpcy5uYXR1cmFsSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2V0SW1hZ2VOb2RlcyhpbWFnZUluZm8pO1xuICAgIH1cblxuICAgIHN0YXJ0RHJhZyhldmVudDogTW91c2VFdmVudCwgYXhpczogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRJbWFnZUVycm9yIHx8ICF0aGlzLmltZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmRyYWdhYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaW1nRWxlbWVudCA9IHRoaXMuaW1nLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEltYWdlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGF4aXMsXG4gICAgICAgICAgICBwcmludGVyUG9zaXRpb25YOiBldmVudC5wYWdlWCxcbiAgICAgICAgICAgIHByaW50ZXJQb3NpdGlvblk6IGV2ZW50LnBhZ2VZLFxuICAgICAgICAgICAgaW50ZXJuYWxXaWR0aDogaW1nRWxlbWVudC53aWR0aCB8fCB0aGlzLmltYWdlRW50cnkud2lkdGgsXG4gICAgICAgICAgICBpbnRlcm5hbEhlaWdodDogaW1nRWxlbWVudC5oZWlnaHQgfHwgdGhpcy5pbWFnZUVudHJ5LmhlaWdodCxcbiAgICAgICAgICAgIG1heFdpZHRoOiB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLmdldEZpcnN0RWxlbWVudENoaWxkKCkub2Zmc2V0V2lkdGhcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLm9uTW91c2VNb3ZlJC5zdWJzY3JpYmUoZSA9PiB0aGlzLm1vdXNlTW92ZUhhbmRsZShlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgbW91c2VNb3ZlSGFuZGxlKFxuICAgICAgICBldmVudDogTW91c2VFdmVudCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgYXhpczogc3RyaW5nO1xuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWDogbnVtYmVyO1xuICAgICAgICAgICAgcHJpbnRlclBvc2l0aW9uWTogbnVtYmVyO1xuICAgICAgICAgICAgaW50ZXJuYWxXaWR0aDogbnVtYmVyO1xuICAgICAgICAgICAgaW50ZXJuYWxIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgICAgIG1heFdpZHRoOiBudW1iZXI7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2FibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgYXhpcywgcHJpbnRlclBvc2l0aW9uWCwgcHJpbnRlclBvc2l0aW9uWSwgaW50ZXJuYWxXaWR0aCwgaW50ZXJuYWxIZWlnaHQsIG1heFdpZHRoIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgaXNSZXZlcnNhbCA9IGF4aXMuaW5jbHVkZXMoJy0nKTtcblxuICAgICAgICAgICAgbGV0IG9mZnNldFggPSBldmVudC5wYWdlWCAtIHByaW50ZXJQb3NpdGlvblg7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0WSA9IGV2ZW50LnBhZ2VZIC0gcHJpbnRlclBvc2l0aW9uWTtcbiAgICAgICAgICAgIGxldCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKGlzUmV2ZXJzYWwpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRYID0gLW9mZnNldFg7XG4gICAgICAgICAgICAgICAgb2Zmc2V0WSA9IC1vZmZzZXRZO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5hbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXRYID0gb2Zmc2V0WCAqIDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChheGlzLmluY2x1ZGVzKCd4JykpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG9mZnNldFggKyBpbnRlcm5hbFdpZHRoO1xuICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+PSBtYXhXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG1heFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGBsYXlvdXRgIHdoZW4gdGhlIGltYWdlIGlzIGFkanVzdGVkIHRvIHRoZSBtYXhpbXVtIHZhbHVlIHVuZGVyIHJpY2ggbWVkaWFcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VFbnRyeT8ubGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5zZXRJbWFnZU5vZGUodGhpcy5lZGl0b3IsIHsgbGF5b3V0OiB1bmRlZmluZWQgfSwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAod2lkdGggPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gMTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXhpcy5pbmNsdWRlcygnbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gaW50ZXJuYWxXaWR0aCAvIHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSBpbnRlcm5hbEhlaWdodCAvIHJhdGlvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXhpcy5pbmNsdWRlcygneScpKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gb2Zmc2V0WSArIGludGVybmFsSGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmIChoZWlnaHQgPj0gMTAwMCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSAxMDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGVpZ2h0IDw9IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSAxMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChheGlzLmluY2x1ZGVzKCdsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSBpbnRlcm5hbEhlaWdodCAvIGhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBpbnRlcm5hbFdpZHRoIC8gcmF0aW87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaW1hZ2VFbnRyeS5yZVNpemVkICYmIHRoaXMuaW1hZ2VFbnRyeS53aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlRW50cnkucmVTaXplZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmltZy5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICB0aGlzLmltYWdlRW50cnkuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW5kRHJhZyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5kcmFnYWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5tb3VzZU1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlRW50cnkud2lkdGggPT09IHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLndpZHRoICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUVudHJ5LndpZHRoIDw9IHRoaXMubmF0dXJhbFdpZHRoICYmXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LndpZHRoXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlRW50cnkud2lkdGggPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VFbnRyeS5oZWlnaHQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRvcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5pbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuaW1hZ2VFbnRyeS53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmltYWdlRW50cnkuaGVpZ2h0XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGF0OiB0aGlzLnNlbGVjdGlvbiB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsVXBsb2FkKCkge1xuICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKHRoaXMuZWRpdG9yLCB7IGF0OiB0aGlzLnNlbGVjdGlvbiB9KTtcbiAgICB9XG5cbiAgICBpc1Nob3VsZE9wZW4oKSB7XG4gICAgICAgIGNvbnN0IHsgcmljaE1lZGlhIH0gPSB0aGlzLmVkaXRvcj8ub3B0aW9ucztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzPy5yZWFkb25seSAmJlxuICAgICAgICAgICAgcmljaE1lZGlhICYmXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkgJiZcbiAgICAgICAgICAgIFRoZVF1ZXJpZXMuaXNHbG9iYWxDb2xsYXBzZWQodGhpcy5lZGl0b3IpICYmXG4gICAgICAgICAgICAhdGhpcy51cGxvYWRpbmcgJiZcbiAgICAgICAgICAgICF0aGlzLmlzT3BlblxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzU2hvdWxkQ2xvc2UoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzT3BlbiAmJlxuICAgICAgICAgICAgKHRoaXM/LnJlYWRvbmx5IHx8ICF0aGlzLmlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkgfHwgIVRoZVF1ZXJpZXMuaXNHbG9iYWxDb2xsYXBzZWQodGhpcy5lZGl0b3IpIHx8IHRoaXMudXBsb2FkaW5nKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9wZW5MYXlvdXRUb29sYmFyKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW1nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4odGhpcy5sYXlvdXRUb29sYmFyLCB7XG4gICAgICAgICAgICBvcmlnaW46IHRoaXMuaW1hZ2VDb250ZW50LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ3RoZS1wbHVnaW4tdG9vbGJhci1wb3BvdmVyJyxcbiAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGF5b3V0VG9vbGJhclJlZj8uZ2V0T3ZlcmxheVJlZigpLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5jcmVhdGVQb3NpdGlvblN0cmF0ZWd5KCkpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmPy5nZXRPdmVybGF5UmVmKCkudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfSwgMTUwKTtcbiAgICB9XG5cbiAgICBjbG9zZUxheW91dFRvb2xiYXIoKSB7XG4gICAgICAgIHRoaXMubGF5b3V0VG9vbGJhclJlZj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICBsYXlvdXRBY3RpdmUoa2V5OiBBbGlnbm1lbnQgfCBMYXlvdXRUeXBlcykge1xuICAgICAgICBjb25zdCB7IGxheW91dCwgYWxpZ24gfSA9IHRoaXMuaW1hZ2VFbnRyeTtcbiAgICAgICAgcmV0dXJuIGtleSAmJiAoKGtleSA9PT0gYWxpZ24gJiYgIWxheW91dCkgfHwga2V5ID09PSBsYXlvdXQpO1xuICAgIH1cblxuICAgIHNldEltYWdlTm9kZShlOiBNb3VzZUV2ZW50LCBwcm9wczogUGFydGlhbDxJbWFnZUVsZW1lbnQ+KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgSW1hZ2VFZGl0b3Iuc2V0SW1hZ2VOb2RlKHRoaXMuZWRpdG9yLCBwcm9wcywgdGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBzZXRCbG9ja0NhcmRMYXlvdXRBdHRyKCkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBibG9ja0NhcmQgPSBjdXJyZW50RWxlbWVudC5jbG9zZXN0KCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXQgfSA9IHRoaXMuZWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKGJsb2NrQ2FyZCAmJiBsYXlvdXQpIHtcbiAgICAgICAgICAgICAgICBibG9ja0NhcmQuc2V0QXR0cmlidXRlKCdsYXlvdXQnLCBsYXlvdXQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0NhcmQgJiYgIWxheW91dCkge1xuICAgICAgICAgICAgICAgIGJsb2NrQ2FyZC5yZW1vdmVBdHRyaWJ1dGUoJ2xheW91dCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sYXlvdXRUb29sYmFyUmVmPy5nZXRPdmVybGF5UmVmKCkudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgSW1hZ2VFZGl0b3IucmVtb3ZlSW1hZ2UodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgY3JlYXRlUG9zaXRpb25TdHJhdGVneSgpIHtcbiAgICAgICAgY29uc3QgYm90dG9tUG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICBvZmZzZXRZOiA0XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmltYWdlQ29udGVudClcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW2JvdHRvbVBvc2l0aW9uXSk7XG4gICAgfVxuXG4gICAgaW1hZ2VMb2FkZWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGltZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgICAgICB0aGlzLm5hdHVyYWxXaWR0aCA9IGltZy5uYXR1cmFsV2lkdGg7XG4gICAgICAgIHRoaXMubmF0dXJhbEhlaWdodCA9IGltZy5uYXR1cmFsSGVpZ2h0O1xuICAgIH1cblxuICAgIGltYWdlRXJyb3IoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGltZyA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgICAgICBjb25zdCBlcnJvckltYWdlVXJsID0gdGhpcy5pbWFnZVBsdWdpbk9wdGlvbnM/LmVycm9ySW1hZ2VVcmw7XG4gICAgICAgIGlmICghdGhpcy5sb2FkSW1hZ2VFcnJvciAmJiBlcnJvckltYWdlVXJsKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgZXJyb3JJbWFnZVVybCA9PT0gJ2Z1bmN0aW9uJyA/IGVycm9ySW1hZ2VVcmwodGhpcy5lZGl0b3IpIDogZXJyb3JJbWFnZVVybDtcbiAgICAgICAgICAgIHRoaXMubG9hZEltYWdlRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlUHJldmlldyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmltYWdlQ29udGVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3RoZS1pbWFnZS1lcnJvcicpO1xuICAgICAgICAgICAgaW1nLnNyYyA9IHVybDtcbiAgICAgICAgfVxuICAgICAgICBpbWcub25lcnJvciA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8g57uE5Lu25bqTIGRpYWxvZyDlvLnlh7rml7bvvIzkvJrorrDlvZXlvZPliY3nmoTnhKbngrnjgILpmLvmraIgbW91c2Vkb3duIOm7mOiupOihjOS4uu+8jOS9v+W+l+WbvueJh+WOn+acrOeahCBjbGljayDkuovku7bog73ojrflj5bliLDmraPnoa7nmoTnhKbngrnjgIJcbiAgICBwcmV2ZW50RGVmYXVsdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaW1hZ2VDbGljaygpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlR3JvdXAuaW1hZ2VzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRoaXMuaW1hZ2VEaXJlY3RpdmUpO1xuICAgICAgICBjb25zdCBpbWFnZUdyb3VwID0gdGhpcy5pbWFnZUdyb3VwLmltYWdlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG9yaWdpblVybDogaXRlbS50aHlPcmlnaW5TcmMsXG4gICAgICAgICAgICAgICAgdGh1bWJVcmw6IGl0ZW0udGh5UHJldmlld1NyYyxcbiAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLnRoeUltYWdlTWV0YS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGl0ZW0udGh5SW1hZ2VNZXRhLnNpemVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pIGFzIEltYWdlSW5mb1tdO1xuICAgICAgICBjb25zdCB7IG9yaWdpblVybCwgdGh1bWJVcmwsIG5hbWUsIHNpemUgfSA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VQbHVnaW5PcHRpb25zLnByZXZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQbHVnaW5PcHRpb25zLnByZXZpZXcoe1xuICAgICAgICAgICAgICAgIGVkaXRvcjogdGhpcy5lZGl0b3IsXG4gICAgICAgICAgICAgICAgcHJldmlld0ltYWdlSW5mbzoge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGh1bWJVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBpbWFnZUdyb3VwLFxuICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoZS1pbWFnZS1jb250YWluZXJcIiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiIFtzdHlsZS50ZXh0QWxpZ25dPVwiaW1hZ2VFbnRyeS5hbGlnblwiPlxuICA8ZGl2XG4gICAgI2ltYWdlQ29udGVudFxuICAgICpuZ0lmPVwiaW1hZ2VFbnRyeS50aHVtYlVybDsgZWxzZSBpbWFnZUxvYWRpbmdcIlxuICAgIGNsYXNzPVwiaW1hZ2UtY29udGVudFwiXG4gICAgY29udGVudGVkaXRhYmxlPVwiZmFsc2VcIlxuICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhc2VsZWN0aW9uXCJcbiAgPlxuICAgIDxpbWdcbiAgICAgICNpbWdcbiAgICAgIHRoeUltYWdlXG4gICAgICBjbGFzcz1cIm1haW4taW1hZ2VcIlxuICAgICAgW2NsYXNzLmltYWdlLWNvbGxhcHNlZF09XCJzZWxlY3Rpb24gJiYgIXVwbG9hZGluZ1wiXG4gICAgICBbbmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IGltYWdlQmluZGluZ1dpZHRoIH1cIlxuICAgICAgW2FsdF09XCJpbWFnZUVudHJ5Lm5hbWVcIlxuICAgICAgW3RoeVNyY109XCJpbWFnZUVudHJ5LnRodW1iVXJsXCJcbiAgICAgIFt0aHlQcmV2aWV3U3JjXT1cImltYWdlRW50cnkudGh1bWJVcmxcIlxuICAgICAgW3RoeU9yaWdpblNyY109XCJpbWFnZUVudHJ5Lm9yaWdpblVybFwiXG4gICAgICBbdGh5RGlzYWJsZVByZXZpZXddPVwiZGlzYWJsZVByZXZpZXdcIlxuICAgICAgW3RoeUltYWdlTWV0YV09XCJ7IG5hbWU6IGltYWdlRW50cnkubmFtZSwgc2l6ZTogaW1hZ2VFbnRyeS5zaXplIH1cIlxuICAgICAgKGxvYWQpPVwiaW1hZ2VMb2FkZWQoJGV2ZW50KVwiXG4gICAgICAobW91c2Vkb3duKT1cInByZXZlbnREZWZhdWx0KCRldmVudClcIlxuICAgICAgKGVycm9yKT1cImltYWdlRXJyb3IoJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiaW1hZ2VDbGljaygkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxkaXYgKm5nSWY9XCJpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5XCIgY2xhc3M9XCJpbWFnZS1wcm9maWxlXCIgW2NsYXNzLm91dGxpbmVdPVwic2VsZWN0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRJbWFnZUVycm9yXCI+XG4gICAgICAgIDxzcGFuIChtb3VzZWRvd24pPVwic3RhcnREcmFnKCRldmVudCwgJy14bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIGxlZnQgdG9wXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiAobW91c2Vkb3duKT1cInN0YXJ0RHJhZygkZXZlbnQsICd4bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIHJpZ2h0IHRvcFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKG1vdXNlZG93bik9XCJzdGFydERyYWcoJGV2ZW50LCAneGwnKVwiIGNsYXNzPVwiaW1hZ2UtcG9pbnRlciByaWdodCBib3R0b21cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIChtb3VzZWRvd24pPVwic3RhcnREcmFnKCRldmVudCwgJy14bCcpXCIgY2xhc3M9XCJpbWFnZS1wb2ludGVyIGxlZnQgYm90dG9tXCI+PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlVXBsb2FkaW5nXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0lmPVwiIXVwbG9hZGluZ1wiIGNsYXNzPVwibGF5ZXJcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbWFnZUxvYWRpbmc+XG4gIDxkaXYgKm5nSWY9XCIhaW1hZ2VFbnRyeS50aHVtYlVybFwiIGNsYXNzPVwiaW1hZ2UtbG9hZGluZyBjdXJzb3ItcG9pbnRlclwiIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiaW1hZ2VcIj48L3RoeS1pY29uPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImltYWdlVXBsb2FkaW5nXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGF5b3V0VG9vbGJhcj5cbiAgPHRoeS1hY3Rpb25zIHRoeVNpemU9XCJ4eHNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxheW91dE9wdGlvbnNcIj5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwiaXRlbS5rZXkgIT09ICdzcGxpdCdcIlxuICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgdGh5QWN0aW9uXG4gICAgICAgIFt0aHlUeXBlXT1cIml0ZW0ua2V5ID09PSAncmVtb3ZlJyA/ICdkYW5nZXInIDogJ3ByaW1hcnknXCJcbiAgICAgICAgW3RoeUFjdGlvbkljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgW3RoeUFjdGlvbkFjdGl2ZV09XCJsYXlvdXRBY3RpdmUoaXRlbS5rZXkpXCJcbiAgICAgICAgW3RoeVRvb2x0aXBdPVwiaXRlbS5uYW1lXCJcbiAgICAgICAgdGh5VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwiaXRlbT8uaGFuZGxlKCRldmVudCwgaXRlbS5rZXkpXCJcbiAgICAgID48L2E+XG4gICAgICA8dGh5LWRpdmlkZXIgKm5nSWY9XCJpdGVtLmtleSA9PT0gJ3NwbGl0J1wiIGNsYXNzPVwibXItMiBtbC0xIGFsaWduLXNlbGYtY2VudGVyXCIgW3RoeVZlcnRpY2FsXT1cInRydWVcIiB0aHlDb2xvcj1cImxpZ2h0XCI+PC90aHktZGl2aWRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90aHktYWN0aW9ucz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW1hZ2VVcGxvYWRpbmc+XG4gIDxkaXYgKm5nSWY9XCJ1cGxvYWRpbmdcIiBjbGFzcz1cInVwbG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRpbmctcGVyY2VudGFnZVwiPlxuICAgICAgPHRoeS1wcm9ncmVzcyB0aHlUeXBlPVwicHJpbWFyeVwiIFt0aHlWYWx1ZV09XCJwZXJjZW50YWdlXCIgdGh5U2l6ZT1cInNtXCI+PC90aHktcHJvZ3Jlc3M+XG4gICAgICA8dGh5LWljb24gKGNsaWNrKT1cImNhbmNlbFVwbG9hZCgkZXZlbnQpXCIgdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCIgdGh5SWNvbkxlZ2dpbmc9XCJ0cnVlXCI+IDwvdGh5LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -57,15 +57,14 @@ export const withImage = (editor) => {
57
57
  };
58
58
  return editor;
59
59
  };
60
- export const createImagePlugin = createPluginFactory({
60
+ export const createImagePlugin = (locale) => createPluginFactory({
61
61
  key: PluginKeys.image,
62
62
  withOverrides: withImage,
63
63
  toolbarItems: [
64
64
  {
65
65
  key: ElementKinds.image,
66
66
  icon: 'image',
67
- name: '图片',
68
- translateKey: 'image',
67
+ name: locale().image,
69
68
  execute: editor => ImageEditor.openUpload(editor),
70
69
  active: editor => ImageEditor.isActive(editor)
71
70
  }
@@ -73,14 +72,12 @@ export const createImagePlugin = createPluginFactory({
73
72
  menuItems: [
74
73
  {
75
74
  key: ElementKinds.image,
76
- keywords: 'tp,tupian,image,photo,picture,图片,圖片,изображение,画像,がぞう,bild',
75
+ keywords: `tp,tupian,image,photo,picture,${locale().image}`,
77
76
  execute: editor => ImageEditor.openUpload(editor),
78
77
  active: editor => ImageEditor.isActive(editor),
79
- name: '图片',
80
- translateKey: 'image',
78
+ name: locale().image,
81
79
  menuIcon: PluginMenuIcons.image,
82
- description: '支持 jpg、jpeg 等格式图像',
83
- descriptionTranslateKey: 'imageDesc',
80
+ description: locale().imageDesc,
84
81
  type: ThePluginMenuItemType.group,
85
82
  displayKey: '/tp'
86
83
  }
@@ -89,5 +86,5 @@ export const createImagePlugin = createPluginFactory({
89
86
  allowParentTypes: [ElementKinds.listItem, ElementKinds.tableCell, ElementKinds.blockquote],
90
87
  imageTypes: ['image/png', 'image/jpeg', 'image/gif', 'image/bmp', 'image/svg+xml']
91
88
  }
92
- });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFzQixVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUN4RCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXJGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7UUFDakMsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1FBQ3JELE1BQU0sYUFBYSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkQsSUFBSSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0s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LFlBQVksRUFBRTtRQUNWO1lBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQ3ZCLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixZQUFZLEVBQUUsT0FBTztZQUNyQixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqRCxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUNqRDtLQUNKO0lBQ0QsU0FBUyxFQUFFO1FBQ1A7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLEtBQUs7WUFDdkIsUUFBUSxFQUFFLDZEQUE2RDtZQUN2RSxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqRCxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxJQUFJLEVBQUUsSUFBSTtZQUNWLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFFBQVEsRUFBRSxlQUFlLENBQUMsS0FBSztZQUMvQixXQUFXLEVBQUUsbUJBQW1CO1lBQ2hDLHVCQUF1QixFQUFFLFdBQVc7WUFDcEMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLEtBQUs7WUFDakMsVUFBVSxFQUFFLEtBQUs7U0FDcEI7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDMUYsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQztLQUNyRjtDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIGdldENsaXBib2FyZERhdGEgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQbHVnaW5NZW51SWNvbnMsIFRoZVBsdWdpbk1lbnVJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wbHVnaW4tbWVudSc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5LCBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBJbWFnZVBsdWdpbk9wdGlvbnMsIFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRoZUltYWdlIH0gZnJvbSAnLi9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VFZGl0b3IgfSBmcm9tICcuL2ltYWdlLmVkaXRvcic7XG5cbmV4cG9ydCBjb25zdCB3aXRoSW1hZ2UgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBpbnNlcnRGcmFnbWVudERhdGEsIGlzVm9pZCwgcmVuZGVyRWxlbWVudCwgaXNCbG9ja0NhcmQsIG1vdXNlZG93biB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmlzVm9pZCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZSB8fCBpc1ZvaWQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5pbnNlcnRGcmFnbWVudERhdGEgPSBhc3luYyAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGNsaXBib2FyZERhdGEgPSBhd2FpdCBnZXRDbGlwYm9hcmREYXRhKGRhdGEpO1xuXG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5maWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZUZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlVHlwZXMgPSBnZXRQbHVnaW5PcHRpb25zPEltYWdlUGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmltYWdlKT8uaW1hZ2VUeXBlcztcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBkYXRhLmZpbGVzIGFzIEZpbGVMaXN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGltYWdlVHlwZXMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZUZpbGVzLnB1c2goZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGltYWdlRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgSW1hZ2VFZGl0b3IuaW5zZXJ0SW1hZ2VzKGVkaXRvciwgaW1hZ2VGaWxlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluc2VydEZyYWdtZW50RGF0YShkYXRhKTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLnJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVJbWFnZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLm1vdXNlZG93biA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoaGl0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3RoZS1pbWFnZS1jb250YWluZXInKSkge1xuICAgICAgICAgICAgY29uc3QgaW1hZ2VFbGVtZW50ID0gaGl0RWxlbWVudC5jbG9zZXN0KCd0aGUtaW1hZ2UnKTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrQ2FyZEVudHJ5ID0gQW5ndWxhckVkaXRvci50b1NsYXRlQ2FyZEVudHJ5KGVkaXRvciwgaW1hZ2VFbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChibG9ja0NhcmRFbnRyeSAmJiAoYmxvY2tDYXJkRW50cnlbMF0gYXMgRWxlbWVudCkudHlwZSA9PT0gRWxlbWVudEtpbmRzLmltYWdlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbm5lckltYWdlID0gaGl0RWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudGh5LWltYWdlJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB4LCB3aWR0aCB9ID0gaW5uZXJJbWFnZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZW50ZXJYID0geCArIHdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLm1vdmVCbG9ja0NhcmQoZWRpdG9yLCBibG9ja0NhcmRFbnRyeVswXSwgeyBkaXJlY3Rpb246IGV2ZW50LnggPCBjZW50ZXJYID8gJ2xlZnQnIDogJ3JpZ2h0JyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbW91c2Vkb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmlzQmxvY2tDYXJkID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0Jsb2NrQ2FyZChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbWFnZVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8SW1hZ2VQbHVnaW5PcHRpb25zPih7XG4gICAga2V5OiBQbHVnaW5LZXlzLmltYWdlLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhJbWFnZSxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgICAgICAgICBpY29uOiAnaW1hZ2UnLFxuICAgICAgICAgICAgbmFtZTogJ+WbvueJhycsXG4gICAgICAgICAgICB0cmFuc2xhdGVLZXk6ICdpbWFnZScsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gSW1hZ2VFZGl0b3Iub3BlblVwbG9hZChlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gSW1hZ2VFZGl0b3IuaXNBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBtZW51SXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgICAgICAgICBrZXl3b3JkczogJ3RwLHR1cGlhbixpbWFnZSxwaG90byxwaWN0dXJlLOWbvueJhyzlnJbniYcs0LjQt9C+0LHRgNCw0LbQtdC90LjQtSznlLvlg48s44GM44Ge44GGLGJpbGQnLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEltYWdlRWRpdG9yLm9wZW5VcGxvYWQoZWRpdG9yKSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IEltYWdlRWRpdG9yLmlzQWN0aXZlKGVkaXRvciksXG4gICAgICAgICAgICBuYW1lOiAn5Zu+54mHJyxcbiAgICAgICAgICAgIHRyYW5zbGF0ZUtleTogJ2ltYWdlJyxcbiAgICAgICAgICAgIG1lbnVJY29uOiBQbHVnaW5NZW51SWNvbnMuaW1hZ2UsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ+aUr+aMgSBqcGfjgIFqcGVnIOetieagvOW8j+WbvuWDjycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvblRyYW5zbGF0ZUtleTogJ2ltYWdlRGVzYycsXG4gICAgICAgICAgICB0eXBlOiBUaGVQbHVnaW5NZW51SXRlbVR5cGUuZ3JvdXAsXG4gICAgICAgICAgICBkaXNwbGF5S2V5OiAnL3RwJ1xuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGFsbG93UGFyZW50VHlwZXM6IFtFbGVtZW50S2luZHMubGlzdEl0ZW0sIEVsZW1lbnRLaW5kcy50YWJsZUNlbGwsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlXSxcbiAgICAgICAgaW1hZ2VUeXBlczogWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9naWYnLCAnaW1hZ2UvYm1wJywgJ2ltYWdlL3N2Zyt4bWwnXVxuICAgIH1cbn0pO1xuIl19
89
+ })();
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFzQixVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUN4RCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXJGLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7UUFDakMsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1FBQ3JELE1BQU0sYUFBYSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkQsSUFBSSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0s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IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBnZXRDbGlwYm9hcmREYXRhIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGx1Z2luTWVudUljb25zLCBUaGVQbHVnaW5NZW51SXRlbVR5cGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcGx1Z2luLW1lbnUnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VQbHVnaW5PcHRpb25zLCBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaGVJbWFnZSB9IGZyb20gJy4vaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlRWRpdG9yIH0gZnJvbSAnLi9pbWFnZS5lZGl0b3InO1xuaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVJMThuVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9pMThuJztcblxuZXhwb3J0IGNvbnN0IHdpdGhJbWFnZSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IGluc2VydEZyYWdtZW50RGF0YSwgaXNWb2lkLCByZW5kZXJFbGVtZW50LCBpc0Jsb2NrQ2FyZCwgbW91c2Vkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3IuaXNWb2lkID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmltYWdlIHx8IGlzVm9pZChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmluc2VydEZyYWdtZW50RGF0YSA9IGFzeW5jIChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgY29uc3QgY2xpcGJvYXJkRGF0YSA9IGF3YWl0IGdldENsaXBib2FyZERhdGEoZGF0YSk7XG5cbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGE/LmZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRmlsZXM6IEZpbGVbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3QgaW1hZ2VUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8SW1hZ2VQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW1hZ2UpPy5pbWFnZVR5cGVzO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGRhdGEuZmlsZXMgYXMgRmlsZUxpc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW1hZ2VUeXBlcy5pbmNsdWRlcyhmaWxlLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGltYWdlRmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW1hZ2VGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBJbWFnZUVkaXRvci5pbnNlcnRJbWFnZXMoZWRpdG9yLCBpbWFnZUZpbGVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5zZXJ0RnJhZ21lbnREYXRhKGRhdGEpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZUltYWdlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IubW91c2Vkb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChoaXRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygndGhlLWltYWdlLWNvbnRhaW5lcicpKSB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZUVsZW1lbnQgPSBoaXRFbGVtZW50LmNsb3Nlc3QoJ3RoZS1pbWFnZScpO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkRW50cnkgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVDYXJkRW50cnkoZWRpdG9yLCBpbWFnZUVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGJsb2NrQ2FyZEVudHJ5ICYmIChibG9ja0NhcmRFbnRyeVswXSBhcyBFbGVtZW50KS50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlubmVySW1hZ2UgPSBoaXRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aHktaW1hZ2UnKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHgsIHdpZHRoIH0gPSBpbm5lckltYWdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbnRlclggPSB4ICsgd2lkdGggLyAyO1xuICAgICAgICAgICAgICAgIEFuZ3VsYXJFZGl0b3IubW92ZUJsb2NrQ2FyZChlZGl0b3IsIGJsb2NrQ2FyZEVudHJ5WzBdLCB7IGRpcmVjdGlvbjogZXZlbnQueCA8IGNlbnRlclggPyAnbGVmdCcgOiAncmlnaHQnIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaXNCbG9ja0NhcmQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbWFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQmxvY2tDYXJkKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUltYWdlUGx1Z2luID0gKGxvY2FsZTogU2lnbmFsPFRoZUkxOG5UcmFuc2xhdGlvbj4pID0+XG4gICAgY3JlYXRlUGx1Z2luRmFjdG9yeTxJbWFnZVBsdWdpbk9wdGlvbnM+KHtcbiAgICAgICAga2V5OiBQbHVnaW5LZXlzLmltYWdlLFxuICAgICAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoSW1hZ2UsXG4gICAgICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmltYWdlLFxuICAgICAgICAgICAgICAgIGljb246ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgbmFtZTogbG9jYWxlKCkuaW1hZ2UsXG4gICAgICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEltYWdlRWRpdG9yLm9wZW5VcGxvYWQoZWRpdG9yKSxcbiAgICAgICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBJbWFnZUVkaXRvci5pc0FjdGl2ZShlZGl0b3IpXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIG1lbnVJdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmltYWdlLFxuICAgICAgICAgICAgICAgIGtleXdvcmRzOiBgdHAsdHVwaWFuLGltYWdlLHBob3RvLHBpY3R1cmUsJHtsb2NhbGUoKS5pbWFnZX1gLFxuICAgICAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbWFnZUVkaXRvci5vcGVuVXBsb2FkKGVkaXRvciksXG4gICAgICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gSW1hZ2VFZGl0b3IuaXNBY3RpdmUoZWRpdG9yKSxcbiAgICAgICAgICAgICAgICBuYW1lOiBsb2NhbGUoKS5pbWFnZSxcbiAgICAgICAgICAgICAgICBtZW51SWNvbjogUGx1Z2luTWVudUljb25zLmltYWdlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBsb2NhbGUoKS5pbWFnZURlc2MsXG4gICAgICAgICAgICAgICAgdHlwZTogVGhlUGx1Z2luTWVudUl0ZW1UeXBlLmdyb3VwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlLZXk6ICcvdHAnXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGFsbG93UGFyZW50VHlwZXM6IFtFbGVtZW50S2luZHMubGlzdEl0ZW0sIEVsZW1lbnRLaW5kcy50YWJsZUNlbGwsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlXSxcbiAgICAgICAgICAgIGltYWdlVHlwZXM6IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL2JtcCcsICdpbWFnZS9zdmcreG1sJ11cbiAgICAgICAgfVxuICAgIH0pKCk7XG4iXX0=
@@ -15,7 +15,7 @@ export const withIndent = (editor) => {
15
15
  };
16
16
  return editor;
17
17
  };
18
- export const createIndentPlugin = createPluginFactory({
18
+ export const createIndentPlugin = (locale) => createPluginFactory({
19
19
  key: PluginKeys.indent,
20
20
  withOverrides: withIndent,
21
21
  toolbarItems: [
@@ -30,16 +30,14 @@ export const createIndentPlugin = createPluginFactory({
30
30
  },
31
31
  {
32
32
  key: Indents.indentRight,
33
- name: '增加缩进',
34
- translateKey: 'increaseIndent',
33
+ name: locale().increaseIndent,
35
34
  icon: 'float-left',
36
35
  shortcutKey: 'Tab',
37
36
  execute: editor => IndentEditor.setIndent(editor)
38
37
  },
39
38
  {
40
39
  key: Indents.indentLeft,
41
- name: '减少缩进',
42
- translateKey: 'decreaseIndent',
40
+ name: locale().decreaseIndent,
43
41
  icon: 'float-right',
44
42
  shortcutKey: 'Shift+Tab',
45
43
  execute: editor => IndentEditor.cancelIndent(editor)
@@ -57,5 +55,5 @@ export const createIndentPlugin = createPluginFactory({
57
55
  disableIndentTypes: [ElementKinds.bulletedList, ElementKinds.numberedList, ElementKinds.checkItem],
58
56
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
59
57
  }
60
- });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFRL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ3pELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0IsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUUxRyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RILE1BQU0sVUFBVSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBc0I7SUFDdkUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxNQUFNO0lBQ3RCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLFlBQVksRUFBRTtRQUNWO1lBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxNQUFNO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuRCxJQUFJLEVBQUUsZUFBZSxDQUFDLFFBQVE7WUFDOUIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO1lBQy9CLGVBQWUsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJO1NBQzFCO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDeEIsSUFBSSxFQUFFLE1BQU07WUFDWixZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3BEO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDdkIsSUFBSSxFQUFFLE1BQU07WUFDWixZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLElBQUksRUFBRSxhQUFhO1lBQ25CLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1NBQ3ZEO0tBQ0o7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsRUFBRTtRQUNiLFlBQVksRUFBRTtZQUNWLFlBQVksQ0FBQyxTQUFTO1lBQ3RCLFlBQVksQ0FBQyxZQUFZO1lBQ3pCLFlBQVksQ0FBQyxZQUFZO1lBQ3pCLFlBQVksQ0FBQyxTQUFTO1lBQ3RCLEdBQUcsYUFBYTtTQUNuQjtRQUNELGtCQUFrQixFQUFFLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDbEcsb0JBQW9CLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsc0JBQXNCLENBQUM7S0FDeEU7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBESVNBQkxFRF9PUEVSQVRFX1RZUEVTLCBEcm9wZG93bk1vZGUsIEVsZW1lbnRLaW5kcywgSEVBRElOR19UWVBFUywgSW5kZW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVG9vbGJhckl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBvbktleWRvd25UZXh0SW5kZW50IH0gZnJvbSAnLi9vbi1rZXlkb3duLWluZGVudCc7XG5pbXBvcnQgeyBJbmRlbnRFZGl0b3IgfSBmcm9tICcuL2luZGVudC5lZGl0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGVudFBsdWdpbk9wdGlvbnMge1xuICAgIG1heEluZGVudD86IG51bWJlcjtcbiAgICBhbGxvd2VkVHlwZXM/OiBDdXN0b21FbGVtZW50S2luZHNbXTtcbiAgICBkaXNhYmxlSW5kZW50VHlwZXM/OiBDdXN0b21FbGVtZW50S2luZHNbXTtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhJbmRlbnQgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBvbktleWRvd24gfSA9IGVkaXRvcjtcblxuICAgIGNvbnN0IGFsbG93ZWRUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8SW5kZW50UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmluZGVudCk/LmFsbG93ZWRUeXBlcyA/PyBbXTtcblxuICAgIGVkaXRvci5vbktleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZUluZGVudFR5cGVzID0gZ2V0UGx1Z2luT3B0aW9uczxJbmRlbnRQbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMuaW5kZW50KT8uZGlzYWJsZUluZGVudFR5cGVzID8/IFtdO1xuICAgICAgICBjb25zdCBpc0NvbnRpbnVlID0gIW9uS2V5ZG93blRleHRJbmRlbnQoZWRpdG9yLCBldmVudCwgYWxsb3dlZFR5cGVzLCBkaXNhYmxlSW5kZW50VHlwZXMpO1xuICAgICAgICBpZiAoaXNDb250aW51ZSkge1xuICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZGVudFBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8SW5kZW50UGx1Z2luT3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5pbmRlbnQsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aEluZGVudCxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5kZW50LFxuICAgICAgICAgICAgaW5jbHVkZXM6IFtJbmRlbnRzLmluZGVudFJpZ2h0LCBJbmRlbnRzLmluZGVudExlZnRdLFxuICAgICAgICAgICAgdHlwZTogVG9vbGJhckl0ZW1UeXBlLmRyb3Bkb3duLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgZHJvcGRvd25Nb2RlOiBEcm9wZG93bk1vZGUuaWNvbixcbiAgICAgICAgICAgIGRyb3Bkb3duSXRlbUtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIGRyb3Bkb3duRml4ZWRJY29uOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIG5hbWU6ICflop7liqDnvKnov5snLFxuICAgICAgICAgICAgdHJhbnNsYXRlS2V5OiAnaW5jcmVhc2VJbmRlbnQnLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgc2hvcnRjdXRLZXk6ICdUYWInLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEluZGVudEVkaXRvci5zZXRJbmRlbnQoZWRpdG9yKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEluZGVudHMuaW5kZW50TGVmdCxcbiAgICAgICAgICAgIG5hbWU6ICflh4/lsJHnvKnov5snLFxuICAgICAgICAgICAgdHJhbnNsYXRlS2V5OiAnZGVjcmVhc2VJbmRlbnQnLFxuICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LXJpZ2h0JyxcbiAgICAgICAgICAgIHNob3J0Y3V0S2V5OiAnU2hpZnQrVGFiJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmRlbnRFZGl0b3IuY2FuY2VsSW5kZW50KGVkaXRvcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgb3B0aW9uczoge1xuICAgICAgICBtYXhJbmRlbnQ6IDExLFxuICAgICAgICBhbGxvd2VkVHlwZXM6IFtcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgICAgICAgICBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCxcbiAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsXG4gICAgICAgICAgICAuLi5IRUFESU5HX1RZUEVTXG4gICAgICAgIF0sXG4gICAgICAgIGRpc2FibGVJbmRlbnRUeXBlczogW0VsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsIEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1dLFxuICAgICAgICBkaXNhYmxlZE9wZXJhdGVUeXBlczogW0VsZW1lbnRLaW5kcy5pbWFnZSwgLi4uRElTQUJMRURfT1BFUkFURV9UWVBFU11cbiAgICB9XG59KTtcbiJdfQ==
58
+ })();
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZW50LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2luZGVudC9pbmRlbnQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFVL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQW1CLE1BQVMsRUFBSyxFQUFFO0lBQ3pELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0IsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUUxRyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQXNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RILE1BQU0sVUFBVSxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQWtDLEVBQUUsRUFBRSxDQUNyRSxtQkFBbUIsQ0FBc0I7SUFDckMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxNQUFNO0lBQ3RCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLFlBQVksRUFBRTtRQUNWO1lBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxNQUFNO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuRCxJQUFJLEVBQUUsZUFBZSxDQUFDLFFBQVE7WUFDOUIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJO1lBQy9CLGVBQWUsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJO1NBQzFCO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLGNBQWM7WUFDN0IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDcEQ7UUFDRDtZQUNJLEdBQUcsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUN2QixJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsY0FBYztZQUM3QixJQUFJLEVBQUUsYUFBYTtZQUNuQixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUN2RDtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLEVBQUU7UUFDYixZQUFZLEVBQUU7WUFDVixZQUFZLENBQUMsU0FBUztZQUN0QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsWUFBWTtZQUN6QixZQUFZLENBQUMsU0FBUztZQUN0QixHQUFHLGFBQWE7U0FDbkI7UUFDRCxrQkFBa0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2xHLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBESVNBQkxFRF9PUEVSQVRFX1RZUEVTLCBEcm9wZG93bk1vZGUsIEVsZW1lbnRLaW5kcywgSEVBRElOR19UWVBFUywgSW5kZW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVG9vbGJhckl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBvbktleWRvd25UZXh0SW5kZW50IH0gZnJvbSAnLi9vbi1rZXlkb3duLWluZGVudCc7XG5pbXBvcnQgeyBJbmRlbnRFZGl0b3IgfSBmcm9tICcuL2luZGVudC5lZGl0b3InO1xuaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVJMThuVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBJbmRlbnRQbHVnaW5PcHRpb25zIHtcbiAgICBtYXhJbmRlbnQ/OiBudW1iZXI7XG4gICAgYWxsb3dlZFR5cGVzPzogQ3VzdG9tRWxlbWVudEtpbmRzW107XG4gICAgZGlzYWJsZUluZGVudFR5cGVzPzogQ3VzdG9tRWxlbWVudEtpbmRzW107XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoSW5kZW50ID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgb25LZXlkb3duIH0gPSBlZGl0b3I7XG5cbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBnZXRQbHVnaW5PcHRpb25zPEluZGVudFBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbmRlbnQpPy5hbGxvd2VkVHlwZXMgPz8gW107XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVJbmRlbnRUeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8SW5kZW50UGx1Z2luT3B0aW9ucz4oZWRpdG9yLCBQbHVnaW5LZXlzLmluZGVudCk/LmRpc2FibGVJbmRlbnRUeXBlcyA/PyBbXTtcbiAgICAgICAgY29uc3QgaXNDb250aW51ZSA9ICFvbktleWRvd25UZXh0SW5kZW50KGVkaXRvciwgZXZlbnQsIGFsbG93ZWRUeXBlcywgZGlzYWJsZUluZGVudFR5cGVzKTtcbiAgICAgICAgaWYgKGlzQ29udGludWUpIHtcbiAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbmRlbnRQbHVnaW4gPSAobG9jYWxlOiBTaWduYWw8VGhlSTE4blRyYW5zbGF0aW9uPikgPT5cbiAgICBjcmVhdGVQbHVnaW5GYWN0b3J5PEluZGVudFBsdWdpbk9wdGlvbnM+KHtcbiAgICAgICAga2V5OiBQbHVnaW5LZXlzLmluZGVudCxcbiAgICAgICAgd2l0aE92ZXJyaWRlczogd2l0aEluZGVudCxcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5kZW50LFxuICAgICAgICAgICAgICAgIGluY2x1ZGVzOiBbSW5kZW50cy5pbmRlbnRSaWdodCwgSW5kZW50cy5pbmRlbnRMZWZ0XSxcbiAgICAgICAgICAgICAgICB0eXBlOiBUb29sYmFySXRlbVR5cGUuZHJvcGRvd24sXG4gICAgICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LWxlZnQnLFxuICAgICAgICAgICAgICAgIGRyb3Bkb3duTW9kZTogRHJvcGRvd25Nb2RlLmljb24sXG4gICAgICAgICAgICAgICAgZHJvcGRvd25JdGVtS2V5OiBJbmRlbnRzLmluZGVudFJpZ2h0LFxuICAgICAgICAgICAgICAgIGRyb3Bkb3duRml4ZWRJY29uOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogSW5kZW50cy5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgICAgICBuYW1lOiBsb2NhbGUoKS5pbmNyZWFzZUluZGVudCxcbiAgICAgICAgICAgICAgICBpY29uOiAnZmxvYXQtbGVmdCcsXG4gICAgICAgICAgICAgICAgc2hvcnRjdXRLZXk6ICdUYWInLFxuICAgICAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmRlbnRFZGl0b3Iuc2V0SW5kZW50KGVkaXRvcilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBJbmRlbnRzLmluZGVudExlZnQsXG4gICAgICAgICAgICAgICAgbmFtZTogbG9jYWxlKCkuZGVjcmVhc2VJbmRlbnQsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2Zsb2F0LXJpZ2h0JyxcbiAgICAgICAgICAgICAgICBzaG9ydGN1dEtleTogJ1NoaWZ0K1RhYicsXG4gICAgICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEluZGVudEVkaXRvci5jYW5jZWxJbmRlbnQoZWRpdG9yKVxuICAgICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBtYXhJbmRlbnQ6IDExLFxuICAgICAgICAgICAgYWxsb3dlZFR5cGVzOiBbXG4gICAgICAgICAgICAgICAgRWxlbWVudEtpbmRzLmNoZWNrSXRlbSxcbiAgICAgICAgICAgICAgICBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgICAgIEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsXG4gICAgICAgICAgICAgICAgRWxlbWVudEtpbmRzLnBhcmFncmFwaCxcbiAgICAgICAgICAgICAgICAuLi5IRUFESU5HX1RZUEVTXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZGlzYWJsZUluZGVudFR5cGVzOiBbRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCwgRWxlbWVudEtpbmRzLmNoZWNrSXRlbV0sXG4gICAgICAgICAgICBkaXNhYmxlZE9wZXJhdGVUeXBlczogW0VsZW1lbnRLaW5kcy5pbWFnZSwgLi4uRElTQUJMRURfT1BFUkFURV9UWVBFU11cbiAgICAgICAgfVxuICAgIH0pKCk7XG4iXX0=
@@ -33,41 +33,41 @@ import { createSoftBreakPlugin } from './soft-break/soft-break.plugin';
33
33
  import { createTablePlugin } from './table/table.plugin';
34
34
  import { createTodoItemPlugin } from './todo-item/todo-item.plugin';
35
35
  import { createVerticalAlignPlugin } from './vertical-align/vertical-align.editor';
36
- export const internalPlugins = () => [
36
+ export const internalPlugins = (locale) => [
37
37
  createTheHistoryPlugin(),
38
- createCommonPlugin(),
38
+ createCommonPlugin(locale),
39
39
  createInsertDataByInvalidTypePlugin(),
40
40
  createRemoveEmptyPlugin(),
41
41
  createRemoveVoidPlugin(),
42
42
  createBlockCardPlugin(), // should in the front of list、resettype、todo、deserialize-html
43
43
  createResetTypePlugin(),
44
- createIndentPlugin(), // should in the front of list
45
- createListPlugin(),
46
- createLinkPlugin(),
47
- createTablePlugin(),
48
- createTodoItemPlugin(),
49
- createHrPlugin(),
50
- createAlignPlugin(),
51
- createCodePlugin(),
52
- createHeadingPlugin(),
53
- createVerticalAlignPlugin(),
54
- createMarkPlugin(),
55
- createFontSizePlugin(),
56
- createColorPlugin(),
44
+ createIndentPlugin(locale), // should in the front of list
45
+ createListPlugin(locale),
46
+ createLinkPlugin(locale),
47
+ createTablePlugin(locale),
48
+ createTodoItemPlugin(locale),
49
+ createHrPlugin(locale),
50
+ createAlignPlugin(locale),
51
+ createCodePlugin(locale),
52
+ createHeadingPlugin(locale),
53
+ createVerticalAlignPlugin(locale),
54
+ createMarkPlugin(locale),
55
+ createFontSizePlugin(locale),
56
+ createColorPlugin(locale),
57
57
  createSoftBreakPlugin(),
58
- createBlockquotePlugin(),
58
+ createBlockquotePlugin(locale),
59
59
  createNodeIDPlugin(),
60
60
  createAutoFormatPlugin(),
61
- createPaintFormatPlugin(),
61
+ createPaintFormatPlugin(locale),
62
62
  createTrailingNodePlugin(),
63
63
  createMoveSelectionPlugin(),
64
64
  createInsertParagraphNodesPlugin(),
65
65
  createGetFragmentPlugin(),
66
- createImagePlugin(), // must be before withDeserializeHTML
66
+ createImagePlugin(locale), // must be before withDeserializeHTML
67
67
  createDeserializeHTMLPlugin(),
68
68
  createDeserializeMdPlugin(),
69
69
  createQuickInsertPlugin(), // must be before plugins that include onkeydown events
70
- createInlineCodePlugin(),
70
+ createInlineCodePlugin(locale),
71
71
  createMentionPlugin()
72
72
  ];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbkYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLHNCQUFzQixFQUFFO0lBQ3hCLGtCQUFrQixFQUFFO0lBQ3BCLG1DQUFtQyxFQUFFO0lBQ3JDLHVCQUF1QixFQUFFO0lBQ3pCLHNCQUFzQixFQUFFO0lBQ3hCLHFCQUFxQixFQUFFLEVBQUUsOERBQThEO0lBQ3ZGLHFCQUFxQixFQUFFO0lBQ3ZCLGtCQUFrQixFQUFFLEVBQUUsOEJBQThCO0lBQ3BELGdCQUFnQixFQUFFO0lBQ2xCLGdCQUFnQixFQUFFO0lBQ2xCLGlCQUFpQixFQUFFO0lBQ25CLG9CQUFvQixFQUFFO0lBQ3RCLGNBQWMsRUFBRTtJQUNoQixpQkFBaUIsRUFBRTtJQUNuQixnQkFBZ0IsRUFBRTtJQUNsQixtQkFBbUIsRUFBRTtJQUNyQix5QkFBeUIsRUFBRTtJQUMzQixnQkFBZ0IsRUFBRTtJQUNsQixvQkFBb0IsRUFBRTtJQUN0QixpQkFBaUIsRUFBRTtJQUNuQixxQkFBcUIsRUFBRTtJQUN2QixzQkFBc0IsRUFBRTtJQUN4QixrQkFBa0IsRUFBRTtJQUNwQixzQkFBc0IsRUFBRTtJQUN4Qix1QkFBdUIsRUFBRTtJQUN6Qix3QkFBd0IsRUFBRTtJQUMxQix5QkFBeUIsRUFBRTtJQUMzQixnQ0FBZ0MsRUFBRTtJQUNsQyx1QkFBdUIsRUFBRTtJQUN6QixpQkFBaUIsRUFBRSxFQUFFLHNDQUFzQztJQUMzRCwyQkFBMkIsRUFBRTtJQUM3Qix5QkFBeUIsRUFBRTtJQUMzQix1QkFBdUIsRUFBRSxFQUFFLHVEQUF1RDtJQUNsRixzQkFBc0IsRUFBRTtJQUN4QixtQkFBbUIsRUFBRTtDQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVHlwZXMgZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlQWxpZ25QbHVnaW4gfSBmcm9tICcuL2FsaWduL2FsaWduLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVBdXRvRm9ybWF0UGx1Z2luIH0gZnJvbSAnLi9hdXRvZm9ybWF0L2F1dG9mb3JtYXQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUJsb2NrcXVvdGVQbHVnaW4gfSBmcm9tICcuL2Jsb2NrcXVvdGUvYmxvY2txdW90ZS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlQ29kZVBsdWdpbiB9IGZyb20gJy4vY29kZS9jb2RlLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVDb2xvclBsdWdpbiB9IGZyb20gJy4vY29sb3IvY29sb3IucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUJsb2NrQ2FyZFBsdWdpbiB9IGZyb20gJy4vY29tbW9uL2Jsb2NrLWNhcmQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUNvbW1vblBsdWdpbiB9IGZyb20gJy4vY29tbW9uL2NvbW1vbi5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlR2V0RnJhZ21lbnRQbHVnaW4gfSBmcm9tICcuL2NvbW1vbi9nZXQtZnJhZ21lbnQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVRoZUhpc3RvcnlQbHVnaW4gfSBmcm9tICcuL2NvbW1vbi9oaXN0b3J5LnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVJbnNlcnREYXRhQnlJbnZhbGlkVHlwZVBsdWdpbiB9IGZyb20gJy4vY29tbW9uL2luc2VydC1kYXRhLWJ5LWludmFsaWQtdHlwZSc7XG5pbXBvcnQgeyBjcmVhdGVNb3ZlU2VsZWN0aW9uUGx1Z2luIH0gZnJvbSAnLi9jb21tb24vbW92ZS1zZWxlY3Rpb24ucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVJlbW92ZUVtcHR5UGx1Z2luIH0gZnJvbSAnLi9jb21tb24vcmVtb3ZlLWVtcHR5LnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVSZW1vdmVWb2lkUGx1Z2luIH0gZnJvbSAnLi9jb21tb24vcmVtb3ZlLXZvaWQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVJlc2V0VHlwZVBsdWdpbiB9IGZyb20gJy4vY29tbW9uL3Jlc2V0LXR5cGUucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZURlc2VyaWFsaXplSFRNTFBsdWdpbiB9IGZyb20gJy4vZGVzZXJpYWxpemUvZGVzZXJpYWxpemUtaHRtbC5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlRGVzZXJpYWxpemVNZFBsdWdpbiB9IGZyb20gJy4vZGVzZXJpYWxpemUvZGVzZXJpYWxpemUtbWQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUZvbnRTaXplUGx1Z2luIH0gZnJvbSAnLi9mb250LXNpemUvZm9udC1zaXplLmVkaXRvcic7XG5pbXBvcnQgeyBjcmVhdGVIZWFkaW5nUGx1Z2luIH0gZnJvbSAnLi9oZWFkaW5nL2hlYWRpbmcucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUhyUGx1Z2luIH0gZnJvbSAnLi9oci9oci5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlSW1hZ2VQbHVnaW4gfSBmcm9tICcuL2ltYWdlL2ltYWdlLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVJbmRlbnRQbHVnaW4gfSBmcm9tICcuL2luZGVudC9pbmRlbnQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUlubGluZUNvZGVQbHVnaW4gfSBmcm9tICcuL2lubGluZS1jb2RlL2lubGluZS1jb2RlLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVMaW5rUGx1Z2luIH0gZnJvbSAnLi9saW5rL2xpbmsucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUxpc3RQbHVnaW4gfSBmcm9tICcuL2xpc3QvbGlzdC5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlTWFya1BsdWdpbiB9IGZyb20gJy4vbWFyay9tYXJrLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVNZW50aW9uUGx1Z2luIH0gZnJvbSAnLi9tZW50aW9uL21lbnRpb24ucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZU5vZGVJRFBsdWdpbiB9IGZyb20gJy4vbm9kZS1pZC9ub2RlLWlkLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVJbnNlcnRQYXJhZ3JhcGhOb2Rlc1BsdWdpbiB9IGZyb20gJy4vbm9ybWFsaXplcnMvaW5zZXJ0LXBhcmFncmFwaC1ub2Rlcyc7XG5pbXBvcnQgeyBjcmVhdGVUcmFpbGluZ05vZGVQbHVnaW4gfSBmcm9tICcuL25vcm1hbGl6ZXJzL3RyYWlsaW5nLW5vZGUucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVBhaW50Rm9ybWF0UGx1Z2luIH0gZnJvbSAnLi9wYWludC1mb3JtYXQvcGFpbnQtZm9ybWF0LmVkaXRvcic7XG5pbXBvcnQgeyBjcmVhdGVRdWlja0luc2VydFBsdWdpbiB9IGZyb20gJy4vcXVpY2staW5zZXJ0L3F1aWNrLWluc2VydC5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlU29mdEJyZWFrUGx1Z2luIH0gZnJvbSAnLi9zb2Z0LWJyZWFrL3NvZnQtYnJlYWsucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlUGx1Z2luIH0gZnJvbSAnLi90YWJsZS90YWJsZS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVG9kb0l0ZW1QbHVnaW4gfSBmcm9tICcuL3RvZG8taXRlbS90b2RvLWl0ZW0ucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVZlcnRpY2FsQWxpZ25QbHVnaW4gfSBmcm9tICcuL3ZlcnRpY2FsLWFsaWduL3ZlcnRpY2FsLWFsaWduLmVkaXRvcic7XG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbFBsdWdpbnMgPSAoKSA9PiBbXG4gICAgY3JlYXRlVGhlSGlzdG9yeVBsdWdpbigpLFxuICAgIGNyZWF0ZUNvbW1vblBsdWdpbigpLFxuICAgIGNyZWF0ZUluc2VydERhdGFCeUludmFsaWRUeXBlUGx1Z2luKCksXG4gICAgY3JlYXRlUmVtb3ZlRW1wdHlQbHVnaW4oKSxcbiAgICBjcmVhdGVSZW1vdmVWb2lkUGx1Z2luKCksXG4gICAgY3JlYXRlQmxvY2tDYXJkUGx1Z2luKCksIC8vIHNob3VsZCBpbiB0aGUgZnJvbnQgb2YgbGlzdOOAgXJlc2V0dHlwZeOAgXRvZG/jgIFkZXNlcmlhbGl6ZS1odG1sXG4gICAgY3JlYXRlUmVzZXRUeXBlUGx1Z2luKCksXG4gICAgY3JlYXRlSW5kZW50UGx1Z2luKCksIC8vIHNob3VsZCBpbiB0aGUgZnJvbnQgb2YgbGlzdFxuICAgIGNyZWF0ZUxpc3RQbHVnaW4oKSxcbiAgICBjcmVhdGVMaW5rUGx1Z2luKCksXG4gICAgY3JlYXRlVGFibGVQbHVnaW4oKSxcbiAgICBjcmVhdGVUb2RvSXRlbVBsdWdpbigpLFxuICAgIGNyZWF0ZUhyUGx1Z2luKCksXG4gICAgY3JlYXRlQWxpZ25QbHVnaW4oKSxcbiAgICBjcmVhdGVDb2RlUGx1Z2luKCksXG4gICAgY3JlYXRlSGVhZGluZ1BsdWdpbigpLFxuICAgIGNyZWF0ZVZlcnRpY2FsQWxpZ25QbHVnaW4oKSxcbiAgICBjcmVhdGVNYXJrUGx1Z2luKCksXG4gICAgY3JlYXRlRm9udFNpemVQbHVnaW4oKSxcbiAgICBjcmVhdGVDb2xvclBsdWdpbigpLFxuICAgIGNyZWF0ZVNvZnRCcmVha1BsdWdpbigpLFxuICAgIGNyZWF0ZUJsb2NrcXVvdGVQbHVnaW4oKSxcbiAgICBjcmVhdGVOb2RlSURQbHVnaW4oKSxcbiAgICBjcmVhdGVBdXRvRm9ybWF0UGx1Z2luKCksXG4gICAgY3JlYXRlUGFpbnRGb3JtYXRQbHVnaW4oKSxcbiAgICBjcmVhdGVUcmFpbGluZ05vZGVQbHVnaW4oKSxcbiAgICBjcmVhdGVNb3ZlU2VsZWN0aW9uUGx1Z2luKCksXG4gICAgY3JlYXRlSW5zZXJ0UGFyYWdyYXBoTm9kZXNQbHVnaW4oKSxcbiAgICBjcmVhdGVHZXRGcmFnbWVudFBsdWdpbigpLFxuICAgIGNyZWF0ZUltYWdlUGx1Z2luKCksIC8vICBtdXN0IGJlIGJlZm9yZSB3aXRoRGVzZXJpYWxpemVIVE1MXG4gICAgY3JlYXRlRGVzZXJpYWxpemVIVE1MUGx1Z2luKCksXG4gICAgY3JlYXRlRGVzZXJpYWxpemVNZFBsdWdpbigpLFxuICAgIGNyZWF0ZVF1aWNrSW5zZXJ0UGx1Z2luKCksIC8vIG11c3QgYmUgYmVmb3JlIHBsdWdpbnMgdGhhdCBpbmNsdWRlIG9ua2V5ZG93biBldmVudHNcbiAgICBjcmVhdGVJbmxpbmVDb2RlUGx1Z2luKCksXG4gICAgY3JlYXRlTWVudGlvblBsdWdpbigpXG5dO1xuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHbkYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBa0MsRUFBRSxFQUFFLENBQUM7SUFDbkUsc0JBQXNCLEVBQUU7SUFDeEIsa0JBQWtCLENBQUMsTUFBTSxDQUFDO0lBQzFCLG1DQUFtQyxFQUFFO0lBQ3JDLHVCQUF1QixFQUFFO0lBQ3pCLHNCQUFzQixFQUFFO0lBQ3hCLHFCQUFxQixFQUFFLEVBQUUsOERBQThEO0lBQ3ZGLHFCQUFxQixFQUFFO0lBQ3ZCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFLDhCQUE4QjtJQUMxRCxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDeEIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3hCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztJQUN6QixvQkFBb0IsQ0FBQyxNQUFNLENBQUM7SUFDNUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN0QixpQkFBaUIsQ0FBQyxNQUFNLENBQUM7SUFDekIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3hCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUMzQix5QkFBeUIsQ0FBQyxNQUFNLENBQUM7SUFDakMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3hCLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztJQUM1QixpQkFBaUIsQ0FBQyxNQUFNLENBQUM7SUFDekIscUJBQXFCLEVBQUU7SUFDdkIsc0JBQXNCLENBQUMsTUFBTSxDQUFDO0lBQzlCLGtCQUFrQixFQUFFO0lBQ3BCLHNCQUFzQixFQUFFO0lBQ3hCLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztJQUMvQix3QkFBd0IsRUFBRTtJQUMxQix5QkFBeUIsRUFBRTtJQUMzQixnQ0FBZ0MsRUFBRTtJQUNsQyx1QkFBdUIsRUFBRTtJQUN6QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxzQ0FBc0M7SUFDakUsMkJBQTJCLEVBQUU7SUFDN0IseUJBQXlCLEVBQUU7SUFDM0IsdUJBQXVCLEVBQUUsRUFBRSx1REFBdUQ7SUFDbEYsc0JBQXNCLENBQUMsTUFBTSxDQUFDO0lBQzlCLG1CQUFtQixFQUFFO0NBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFR5cGVzIGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZUFsaWduUGx1Z2luIH0gZnJvbSAnLi9hbGlnbi9hbGlnbi5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlQXV0b0Zvcm1hdFBsdWdpbiB9IGZyb20gJy4vYXV0b2Zvcm1hdC9hdXRvZm9ybWF0LnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVCbG9ja3F1b3RlUGx1Z2luIH0gZnJvbSAnLi9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUNvZGVQbHVnaW4gfSBmcm9tICcuL2NvZGUvY29kZS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlQ29sb3JQbHVnaW4gfSBmcm9tICcuL2NvbG9yL2NvbG9yLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVCbG9ja0NhcmRQbHVnaW4gfSBmcm9tICcuL2NvbW1vbi9ibG9jay1jYXJkLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVDb21tb25QbHVnaW4gfSBmcm9tICcuL2NvbW1vbi9jb21tb24ucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUdldEZyYWdtZW50UGx1Z2luIH0gZnJvbSAnLi9jb21tb24vZ2V0LWZyYWdtZW50LnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVUaGVIaXN0b3J5UGx1Z2luIH0gZnJvbSAnLi9jb21tb24vaGlzdG9yeS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlSW5zZXJ0RGF0YUJ5SW52YWxpZFR5cGVQbHVnaW4gfSBmcm9tICcuL2NvbW1vbi9pbnNlcnQtZGF0YS1ieS1pbnZhbGlkLXR5cGUnO1xuaW1wb3J0IHsgY3JlYXRlTW92ZVNlbGVjdGlvblBsdWdpbiB9IGZyb20gJy4vY29tbW9uL21vdmUtc2VsZWN0aW9uLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVSZW1vdmVFbXB0eVBsdWdpbiB9IGZyb20gJy4vY29tbW9uL3JlbW92ZS1lbXB0eS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlUmVtb3ZlVm9pZFBsdWdpbiB9IGZyb20gJy4vY29tbW9uL3JlbW92ZS12b2lkLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVSZXNldFR5cGVQbHVnaW4gfSBmcm9tICcuL2NvbW1vbi9yZXNldC10eXBlLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVEZXNlcmlhbGl6ZUhUTUxQbHVnaW4gfSBmcm9tICcuL2Rlc2VyaWFsaXplL2Rlc2VyaWFsaXplLWh0bWwucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZURlc2VyaWFsaXplTWRQbHVnaW4gfSBmcm9tICcuL2Rlc2VyaWFsaXplL2Rlc2VyaWFsaXplLW1kLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVGb250U2l6ZVBsdWdpbiB9IGZyb20gJy4vZm9udC1zaXplL2ZvbnQtc2l6ZS5lZGl0b3InO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGluZ1BsdWdpbiB9IGZyb20gJy4vaGVhZGluZy9oZWFkaW5nLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVIclBsdWdpbiB9IGZyb20gJy4vaHIvaHIucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZUltYWdlUGx1Z2luIH0gZnJvbSAnLi9pbWFnZS9pbWFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlSW5kZW50UGx1Z2luIH0gZnJvbSAnLi9pbmRlbnQvaW5kZW50LnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVJbmxpbmVDb2RlUGx1Z2luIH0gZnJvbSAnLi9pbmxpbmUtY29kZS9pbmxpbmUtY29kZS5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlTGlua1BsdWdpbiB9IGZyb20gJy4vbGluay9saW5rLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVMaXN0UGx1Z2luIH0gZnJvbSAnLi9saXN0L2xpc3QucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZU1hcmtQbHVnaW4gfSBmcm9tICcuL21hcmsvbWFyay5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlTWVudGlvblBsdWdpbiB9IGZyb20gJy4vbWVudGlvbi9tZW50aW9uLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVOb2RlSURQbHVnaW4gfSBmcm9tICcuL25vZGUtaWQvbm9kZS1pZC5wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlSW5zZXJ0UGFyYWdyYXBoTm9kZXNQbHVnaW4gfSBmcm9tICcuL25vcm1hbGl6ZXJzL2luc2VydC1wYXJhZ3JhcGgtbm9kZXMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhaWxpbmdOb2RlUGx1Z2luIH0gZnJvbSAnLi9ub3JtYWxpemVycy90cmFpbGluZy1ub2RlLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVQYWludEZvcm1hdFBsdWdpbiB9IGZyb20gJy4vcGFpbnQtZm9ybWF0L3BhaW50LWZvcm1hdC5lZGl0b3InO1xuaW1wb3J0IHsgY3JlYXRlUXVpY2tJbnNlcnRQbHVnaW4gfSBmcm9tICcuL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVNvZnRCcmVha1BsdWdpbiB9IGZyb20gJy4vc29mdC1icmVhay9zb2Z0LWJyZWFrLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVUYWJsZVBsdWdpbiB9IGZyb20gJy4vdGFibGUvdGFibGUucGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVRvZG9JdGVtUGx1Z2luIH0gZnJvbSAnLi90b2RvLWl0ZW0vdG9kby1pdGVtLnBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVWZXJ0aWNhbEFsaWduUGx1Z2luIH0gZnJvbSAnLi92ZXJ0aWNhbC1hbGlnbi92ZXJ0aWNhbC1hbGlnbi5lZGl0b3InO1xuaW1wb3J0IHsgVGhlSTE4blRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vaTE4bic7XG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbFBsdWdpbnMgPSAobG9jYWxlOiBTaWduYWw8VGhlSTE4blRyYW5zbGF0aW9uPikgPT4gW1xuICAgIGNyZWF0ZVRoZUhpc3RvcnlQbHVnaW4oKSxcbiAgICBjcmVhdGVDb21tb25QbHVnaW4obG9jYWxlKSxcbiAgICBjcmVhdGVJbnNlcnREYXRhQnlJbnZhbGlkVHlwZVBsdWdpbigpLFxuICAgIGNyZWF0ZVJlbW92ZUVtcHR5UGx1Z2luKCksXG4gICAgY3JlYXRlUmVtb3ZlVm9pZFBsdWdpbigpLFxuICAgIGNyZWF0ZUJsb2NrQ2FyZFBsdWdpbigpLCAvLyBzaG91bGQgaW4gdGhlIGZyb250IG9mIGxpc3TjgIFyZXNldHR5cGXjgIF0b2Rv44CBZGVzZXJpYWxpemUtaHRtbFxuICAgIGNyZWF0ZVJlc2V0VHlwZVBsdWdpbigpLFxuICAgIGNyZWF0ZUluZGVudFBsdWdpbihsb2NhbGUpLCAvLyBzaG91bGQgaW4gdGhlIGZyb250IG9mIGxpc3RcbiAgICBjcmVhdGVMaXN0UGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlTGlua1BsdWdpbihsb2NhbGUpLFxuICAgIGNyZWF0ZVRhYmxlUGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlVG9kb0l0ZW1QbHVnaW4obG9jYWxlKSxcbiAgICBjcmVhdGVIclBsdWdpbihsb2NhbGUpLFxuICAgIGNyZWF0ZUFsaWduUGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlQ29kZVBsdWdpbihsb2NhbGUpLFxuICAgIGNyZWF0ZUhlYWRpbmdQbHVnaW4obG9jYWxlKSxcbiAgICBjcmVhdGVWZXJ0aWNhbEFsaWduUGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlTWFya1BsdWdpbihsb2NhbGUpLFxuICAgIGNyZWF0ZUZvbnRTaXplUGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlQ29sb3JQbHVnaW4obG9jYWxlKSxcbiAgICBjcmVhdGVTb2Z0QnJlYWtQbHVnaW4oKSxcbiAgICBjcmVhdGVCbG9ja3F1b3RlUGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlTm9kZUlEUGx1Z2luKCksXG4gICAgY3JlYXRlQXV0b0Zvcm1hdFBsdWdpbigpLFxuICAgIGNyZWF0ZVBhaW50Rm9ybWF0UGx1Z2luKGxvY2FsZSksXG4gICAgY3JlYXRlVHJhaWxpbmdOb2RlUGx1Z2luKCksXG4gICAgY3JlYXRlTW92ZVNlbGVjdGlvblBsdWdpbigpLFxuICAgIGNyZWF0ZUluc2VydFBhcmFncmFwaE5vZGVzUGx1Z2luKCksXG4gICAgY3JlYXRlR2V0RnJhZ21lbnRQbHVnaW4oKSxcbiAgICBjcmVhdGVJbWFnZVBsdWdpbihsb2NhbGUpLCAvLyAgbXVzdCBiZSBiZWZvcmUgd2l0aERlc2VyaWFsaXplSFRNTFxuICAgIGNyZWF0ZURlc2VyaWFsaXplSFRNTFBsdWdpbigpLFxuICAgIGNyZWF0ZURlc2VyaWFsaXplTWRQbHVnaW4oKSxcbiAgICBjcmVhdGVRdWlja0luc2VydFBsdWdpbigpLCAvLyBtdXN0IGJlIGJlZm9yZSBwbHVnaW5zIHRoYXQgaW5jbHVkZSBvbmtleWRvd24gZXZlbnRzXG4gICAgY3JlYXRlSW5saW5lQ29kZVBsdWdpbihsb2NhbGUpLFxuICAgIGNyZWF0ZU1lbnRpb25QbHVnaW4oKVxuXTtcbiJdfQ==
@@ -46,15 +46,14 @@ export const withInlineCode = (editor) => {
46
46
  editor = withRemoveEmptyNodes({ type: ElementKinds.inlineCode })(editor);
47
47
  return editor;
48
48
  };
49
- export const createInlineCodePlugin = createPluginFactory({
49
+ export const createInlineCodePlugin = (locale) => createPluginFactory({
50
50
  key: PluginKeys.inlineCode,
51
51
  withOverrides: withInlineCode,
52
52
  toolbarItems: [
53
53
  {
54
54
  key: ElementKinds.inlineCode,
55
55
  icon: 'code',
56
- name: '行内代码',
57
- translateKey: 'inlineCode',
56
+ name: locale().inlineCode,
58
57
  shortcutKey: `${CONTROL_KEY}+E`,
59
58
  execute: editor => InlineCodeEditor.toggleInlineCode(editor),
60
59
  active: editor => InlineCodeEditor.isInlineCodeActive(editor)
@@ -64,5 +63,5 @@ export const createInlineCodePlugin = createPluginFactory({
64
63
  isInline: true,
65
64
  disabledOperateTypes: [ElementKinds.image, ...DISABLED_OPERATE_TYPES]
66
65
  }
67
- });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDN0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXZELE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDN0MsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDbEQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN2QixJQUFJLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RELElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDakMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksZUFBZSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELElBQUksS0FBSyxHQUFHO29CQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO29CQUMvQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07aUJBQzFCLENBQUM7Z0JBQ0YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQzNELEtBQUssR0FBRzt3QkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO3dCQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDaEQsQ0FBQztnQkFDTixDQUFDO2dCQUNELFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUN0QixFQUFFLEVBQUUsS0FBSztpQkFDWixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RSxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxtQkFBbUIsQ0FBQztJQUN0RCxHQUFHLEVBQUUsVUFBVSxDQUFDLFVBQVU7SUFDMUIsYUFBYSxFQUFFLGNBQWM7SUFDN0IsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDNUIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsTUFBTTtZQUNaLFlBQVksRUFBRSxZQUFZO1lBQzFCLFdBQVcsRUFBRSxHQUFHLFdBQVcsSUFBSTtZQUMvQixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDNUQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1NBQ2hFO0tBQ0o7SUFDRCxPQUFPLEVBQUU7UUFDTCxRQUFRLEVBQUUsSUFBSTtRQUNkLG9CQUFvQixFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLHNCQUFzQixDQUFDO0tBQ3hFO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ09OVFJPTF9LRVkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyB3aXRoUmVtb3ZlRW1wdHlOb2RlcyB9IGZyb20gJy4uL25vcm1hbGl6ZXJzL3JlbW92ZS1lbXB0eS1ub2Rlcyc7XG5pbXBvcnQgeyBUaGVJbmxpbmVDb2RlIH0gZnJvbSAnLi9pbmxpbmUtY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVkaXRvciB9IGZyb20gJy4vaW5saW5lLWNvZGUuZWRpdG9yJztcblxuZXhwb3J0IGNvbnN0IHdpdGhJbmxpbmVDb2RlID0gPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgaXNJbmxpbmUsIHJlbmRlckVsZW1lbnQsIGluc2VydFRleHQgfSA9IGVkaXRvcjtcblxuICAgIGVkaXRvci5pc0lubGluZSA9IChlbGVtZW50OiBJbmxpbmVDb2RlRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuaW5saW5lQ29kZSA/IHRydWUgOiBpc0lubGluZShlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLnJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogSW5saW5lQ29kZUVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmlubGluZUNvZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVJbmxpbmVDb2RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0VGV4dCA9IHRleHQgPT4ge1xuICAgICAgICBpZiAodGV4dCAmJiBJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpKSB7XG4gICAgICAgICAgICBsZXQgc2VsZWN0aW9uID0gZWRpdG9yLnNlbGVjdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnROb2RlVGV4dCA9IEVkaXRvci5zdHJpbmcoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgIGluc2VydFRleHQodGV4dCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudE5vZGVUZXh0ID09IFpFUk9fV0lEVEhfQ0hBUikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlubGluZUNvZGVQYXRoID0gRWRpdG9yLnBhdGgoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBsZXQgcmFuZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFuY2hvcjogRWRpdG9yLmJlZm9yZShlZGl0b3IsIHNlbGVjdGlvbi5hbmNob3IpLFxuICAgICAgICAgICAgICAgICAgICBmb2N1czogc2VsZWN0aW9uLmFuY2hvclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciwgaW5saW5lQ29kZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJhbmdlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yOiBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOiBFZGl0b3IuYWZ0ZXIoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgYXQ6IHJhbmdlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnNlcnRUZXh0KHRleHQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGVkaXRvciA9IHdpdGhSZW1vdmVFbXB0eU5vZGVzKHsgdHlwZTogRWxlbWVudEtpbmRzLmlubGluZUNvZGUgfSkoZWRpdG9yKTtcbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUlubGluZUNvZGVQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICBrZXk6IFBsdWdpbktleXMuaW5saW5lQ29kZSxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoSW5saW5lQ29kZSxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICAgICAgICAgIGljb246ICdjb2RlJyxcbiAgICAgICAgICAgIG5hbWU6ICfooYzlhoXku6PnoIEnLFxuICAgICAgICAgICAgdHJhbnNsYXRlS2V5OiAnaW5saW5lQ29kZScsXG4gICAgICAgICAgICBzaG9ydGN1dEtleTogYCR7Q09OVFJPTF9LRVl9K0VgLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IElubGluZUNvZGVFZGl0b3IudG9nZ2xlSW5saW5lQ29kZShlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gSW5saW5lQ29kZUVkaXRvci5pc0lubGluZUNvZGVBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGlzSW5saW5lOiB0cnVlLFxuICAgICAgICBkaXNhYmxlZE9wZXJhdGVUeXBlczogW0VsZW1lbnRLaW5kcy5pbWFnZSwgLi4uRElTQUJMRURfT1BFUkFURV9UWVBFU11cbiAgICB9XG59KTtcbiJdfQ==
66
+ })();
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDN0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXZELE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDN0MsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUEwQixFQUFFLEVBQUU7UUFDbEQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN2QixJQUFJLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RELElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDakMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksZUFBZSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELElBQUksS0FBSyxHQUFHO29CQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO29CQUMvQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07aUJBQzFCLENBQUM7Z0JBQ0YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQzNELEtBQUssR0FBRzt3QkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO3dCQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDaEQsQ0FBQztnQkFDTixDQUFDO2dCQUNELFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUN0QixFQUFFLEVBQUUsS0FBSztpQkFDWixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RSxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQWtDLEVBQUUsRUFBRSxDQUN6RSxtQkFBbUIsQ0FBQztJQUNoQixHQUFHLEVBQUUsVUFBVSxDQUFDLFVBQVU7SUFDMUIsYUFBYSxFQUFFLGNBQWM7SUFDN0IsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDNUIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsVUFBVTtZQUN6QixXQUFXLEVBQUUsR0FBRyxXQUFXLElBQUk7WUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQzVELE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztTQUNoRTtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsUUFBUSxFQUFFLElBQUk7UUFDZCxvQkFBb0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQztLQUN4RTtDQUNKLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRElTQUJMRURfT1BFUkFURV9UWVBFUywgRWxlbWVudEtpbmRzLCBaRVJPX1dJRFRIX0NIQVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ09OVFJPTF9LRVkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyB3aXRoUmVtb3ZlRW1wdHlOb2RlcyB9IGZyb20gJy4uL25vcm1hbGl6ZXJzL3JlbW92ZS1lbXB0eS1ub2Rlcyc7XG5pbXBvcnQgeyBUaGVJbmxpbmVDb2RlIH0gZnJvbSAnLi9pbmxpbmUtY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5saW5lQ29kZUVkaXRvciB9IGZyb20gJy4vaW5saW5lLWNvZGUuZWRpdG9yJztcbmltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlSTE4blRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5cbmV4cG9ydCBjb25zdCB3aXRoSW5saW5lQ29kZSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IGlzSW5saW5lLCByZW5kZXJFbGVtZW50LCBpbnNlcnRUZXh0IH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3IuaXNJbmxpbmUgPSAoZWxlbWVudDogSW5saW5lQ29kZUVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmlubGluZUNvZGUgPyB0cnVlIDogaXNJbmxpbmUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5yZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IElubGluZUNvZGVFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlSW5saW5lQ29kZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmluc2VydFRleHQgPSB0ZXh0ID0+IHtcbiAgICAgICAgaWYgKHRleHQgJiYgSW5saW5lQ29kZUVkaXRvci5pc0lubGluZUNvZGVBY3RpdmUoZWRpdG9yKSkge1xuICAgICAgICAgICAgbGV0IHNlbGVjdGlvbiA9IGVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Tm9kZVRleHQgPSBFZGl0b3Iuc3RyaW5nKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aCk7XG4gICAgICAgICAgICBpbnNlcnRUZXh0KHRleHQpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlVGV4dCA9PSBaRVJPX1dJRFRIX0NIQVIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmxpbmVDb2RlUGF0aCA9IEVkaXRvci5wYXRoKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgbGV0IHJhbmdlID0ge1xuICAgICAgICAgICAgICAgICAgICBhbmNob3I6IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yKSxcbiAgICAgICAgICAgICAgICAgICAgZm9jdXM6IHNlbGVjdGlvbi5hbmNob3JcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChFZGl0b3IuaXNTdGFydChlZGl0b3IsIHNlbGVjdGlvbi5hbmNob3IsIGlubGluZUNvZGVQYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICByYW5nZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvcjogZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1czogRWRpdG9yLmFmdGVyKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbilcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiByYW5nZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5zZXJ0VGV4dCh0ZXh0KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlZGl0b3IgPSB3aXRoUmVtb3ZlRW1wdHlOb2Rlcyh7IHR5cGU6IEVsZW1lbnRLaW5kcy5pbmxpbmVDb2RlIH0pKGVkaXRvcik7XG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbmxpbmVDb2RlUGx1Z2luID0gKGxvY2FsZTogU2lnbmFsPFRoZUkxOG5UcmFuc2xhdGlvbj4pID0+XG4gICAgY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAgICAgIGtleTogUGx1Z2luS2V5cy5pbmxpbmVDb2RlLFxuICAgICAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoSW5saW5lQ29kZSxcbiAgICAgICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICAgICAgICAgICAgICBpY29uOiAnY29kZScsXG4gICAgICAgICAgICAgICAgbmFtZTogbG9jYWxlKCkuaW5saW5lQ29kZSxcbiAgICAgICAgICAgICAgICBzaG9ydGN1dEtleTogYCR7Q09OVFJPTF9LRVl9K0VgLFxuICAgICAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBJbmxpbmVDb2RlRWRpdG9yLnRvZ2dsZUlubGluZUNvZGUoZWRpdG9yKSxcbiAgICAgICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBJbmxpbmVDb2RlRWRpdG9yLmlzSW5saW5lQ29kZUFjdGl2ZShlZGl0b3IpXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGlzSW5saW5lOiB0cnVlLFxuICAgICAgICAgICAgZGlzYWJsZWRPcGVyYXRlVHlwZXM6IFtFbGVtZW50S2luZHMuaW1hZ2UsIC4uLkRJU0FCTEVEX09QRVJBVEVfVFlQRVNdXG4gICAgICAgIH1cbiAgICB9KSgpO1xuIl19