@worktile/theia 3.0.0-next.2 → 3.0.0-next.5

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 (61) hide show
  1. package/bundles/worktile-theia.umd.js +281 -232
  2. package/bundles/worktile-theia.umd.js.map +1 -1
  3. package/core/utils/combine-plugins.d.ts +2 -0
  4. package/core/utils/get-plugin-by-key.d.ts +2 -0
  5. package/core/utils/index.d.ts +5 -2
  6. package/core/utils/merge-deep-plugins.d.ts +2 -0
  7. package/core/utils/merge-options.d.ts +2 -2
  8. package/core/utils/nested-structure-by-key.d.ts +2 -0
  9. package/core/utils/plugins-by-key.d.ts +2 -0
  10. package/esm2015/core/create-plugin.js +2 -4
  11. package/esm2015/core/utils/combine-plugins.js +10 -0
  12. package/esm2015/core/utils/flatten-deep-plugins.js +2 -20
  13. package/esm2015/core/utils/get-plugin-by-key.js +8 -0
  14. package/esm2015/core/utils/get-plugin.js +3 -3
  15. package/esm2015/core/utils/index.js +6 -3
  16. package/esm2015/core/utils/merge-deep-plugins.js +16 -0
  17. package/esm2015/core/utils/merge-options.js +6 -2
  18. package/esm2015/core/utils/nested-structure-by-key.js +11 -0
  19. package/esm2015/core/utils/plugins-by-key.js +10 -0
  20. package/esm2015/core/with-theia.js +9 -22
  21. package/esm2015/editor.component.js +2 -3
  22. package/esm2015/interfaces/editor.js +1 -1
  23. package/esm2015/interfaces/utility/nested-structure-by-key.js +1 -1
  24. package/esm2015/plugins/autoformat/autoformat.plugin.js +11 -11
  25. package/esm2015/plugins/blockquote/blockquote.editor.js +8 -8
  26. package/esm2015/plugins/code/code.editor.js +3 -3
  27. package/esm2015/plugins/hr/hr.editor.js +2 -2
  28. package/esm2015/plugins/list/list.editor.js +1 -2
  29. package/esm2015/plugins/list/list.plugin.js +3 -3
  30. package/esm2015/plugins/quick-insert/quick-insert.plugin.js +4 -4
  31. package/esm2015/plugins/table/table.plugin.js +3 -3
  32. package/esm2015/plugins/table/transforms/insert-table.js +2 -2
  33. package/esm2015/plugins/todo-item/todo-item.component.js +8 -9
  34. package/esm2015/plugins/todo-item/todo-item.plugin.js +3 -2
  35. package/esm2015/queries/get-insert-elements-path.js +73 -0
  36. package/esm2015/queries/index.js +3 -3
  37. package/esm2015/transforms/index.js +3 -4
  38. package/esm2015/transforms/insert-elements.js +34 -0
  39. package/fesm2015/worktile-theia.js +262 -223
  40. package/fesm2015/worktile-theia.js.map +1 -1
  41. package/interfaces/editor.d.ts +1 -7
  42. package/interfaces/utility/nested-structure-by-key.d.ts +1 -1
  43. package/package.json +1 -1
  44. package/plugins/autoformat/autoformat.plugin.d.ts +5 -1
  45. package/plugins/quick-insert/quick-insert.plugin.d.ts +2 -0
  46. package/plugins/todo-item/todo-item.component.d.ts +1 -0
  47. package/plugins/todo-item/todo-item.plugin.d.ts +4 -1
  48. package/queries/get-insert-elements-path.d.ts +4 -0
  49. package/queries/index.d.ts +2 -2
  50. package/transforms/index.d.ts +2 -3
  51. package/transforms/insert-elements.d.ts +2 -0
  52. package/core/utils/get-plugins-by-key.d.ts +0 -2
  53. package/core/utils/override-plugins-by-key.d.ts +0 -5
  54. package/esm2015/core/utils/get-plugins-by-key.js +0 -8
  55. package/esm2015/core/utils/override-plugins-by-key.js +0 -27
  56. package/esm2015/queries/is-types-in-parent.js +0 -16
  57. package/esm2015/transforms/insert-element-next.js +0 -40
  58. package/esm2015/transforms/insert-element.js +0 -2
  59. package/queries/is-types-in-parent.d.ts +0 -2
  60. package/transforms/insert-element-next.d.ts +0 -2
  61. package/transforms/insert-element.d.ts +0 -3
@@ -407,8 +407,8 @@ export const createTablePlugin = createPluginFactory({
407
407
  key: PluginKeys.table,
408
408
  withOverrides: withTable,
409
409
  nestedStructureByKey: {
410
- [ElementKinds.table]: [ElementKinds.tableRow],
411
- [ElementKinds.tableRow]: [ElementKinds.tableCell]
410
+ [ElementKinds.table]: ElementKinds.tableRow,
411
+ [ElementKinds.tableRow]: ElementKinds.tableCell
412
412
  },
413
413
  toolbarItems: [
414
414
  {
@@ -421,4 +421,4 @@ export const createTablePlugin = createPluginFactory({
421
421
  }
422
422
  ]
423
423
  });
424
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdGFibGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFv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Q0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztLQUNwRDtJQUNELFlBQVksRUFBRTtRQUNWO1lBQ0ksR0FBRyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQ3ZCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsSUFBSSxFQUFFLElBQUk7WUFDVixhQUFhLEVBQUUsNEJBQTRCO1lBQzNDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQ2pEO0tBQ0o7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2Zvcm1zLCBQb2ludCwgTm9kZSwgUmFuZ2UsIEVkaXRvciwgTm9kZUVudHJ5LCBFbGVtZW50LCBQYXRoLCBPcGVyYXRpb24gfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBFTEVNRU5UX1RPX0NPTVBPTkVOVCwgaG90a2V5cyB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGFibGVPcHRpb25zIH0gZnJvbSAnLi90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBpc1JhbmdlSW5UYWJsZSwgaXNTZWxlY3Rpb25JblRhYmxlLCBUYWJsZVBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzLCBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IFRhYmxlQ2VsbEVsZW1lbnQsIFRhYmxlRWxlbWVudCwgVGFibGVSb3dFbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUVkaXRvciB9IGZyb20gJy4vdGFibGUuZWRpdG9yJztcbmltcG9ydCB7IGNsZWFyVGFibGVOb2RlIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2NsZWFyLXRhYmxlLW5vZGUnO1xuaW1wb3J0IHsgaXNWaXJ0dWFsS2V5IH0gZnJvbSAnLi91dGlscy9pcy12aXJ0dWFsLWtleSc7XG5pbXBvcnQgeyBpbnNlcnRDb2x1bW5BdFJvdyB9IGZyb20gJy4vdHJhbnNmb3Jtcy9pbnNlcnQtY29sdW1uJztcbmltcG9ydCB7IGNhbGN1bGF0ZUFuY2hvclBvc2l0aW9uSW5DZWxsIH0gZnJvbSAnLi91dGlscy9jYWxjLWFuY2hvci1wb3NpdGlvbic7XG5pbXBvcnQgeyBDTElQQk9BUkRfRk9STUFUX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IGdldE9yaWdpbkNlbGwgfSBmcm9tICcuL3V0aWxzL2NhbGMtc3Bhbic7XG5pbXBvcnQgeyByZXNldFRhYmxlQ2VsbCB9IGZyb20gJy4vdXRpbHMvc3BsaXQtY2VsbCc7XG5pbXBvcnQgeyByZW1vdmVDb2x1bW5zIH0gZnJvbSAnLi91dGlscy9yZW1vdmUtY29sdW1ucyc7XG5pbXBvcnQgeyBhZGRDb2x1bW5zIH0gZnJvbSAnLi91dGlscy9hZGQtY29sdW1ucyc7XG5pbXBvcnQgeyBUaGVUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZC90ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZXh0cmFjdEZyYWdtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnJhZ21lbnQnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZVRhYmxlIH0gZnJvbSAnLi91dGlscy9ub3JtYWxpemUtdGFibGUnO1xuaW1wb3J0IHsgXyB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZGFzaCc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBUaGVUYWJsZVRvb2xiYXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IHdpdGhUYWJsZSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkLFxuICAgICAgICBkZWxldGVGb3J3YXJkLFxuICAgICAgICBvbktleWRvd24sXG4gICAgICAgIHNldEZyYWdtZW50RGF0YSxcbiAgICAgICAgaW5zZXJ0RGF0YSxcbiAgICAgICAgbm9ybWFsaXplTm9kZSxcbiAgICAgICAgaXNCbG9ja0NhcmQsXG4gICAgICAgIHJlbmRlckVsZW1lbnQsXG4gICAgICAgIGRlbGV0ZUN1dERhdGEsXG4gICAgICAgIGlzQ29udGFpbmVyLFxuICAgICAgICBvbkNoYW5nZVxuICAgIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKCFpc1NlbGVjdGlvbkluVGFibGUob3B0cywgZWRpdG9yKSkge1xuICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcblxuICAgICAgICBjb25zdCBbLCBzdGFydEJsb2NrUGF0aF0gPSBFZGl0b3IuYWJvdmU8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICBtYXRjaDogbiA9PiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG4pXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBzdGFydEJsb2NrUGF0aC5sZW5ndGggPD0gc3RhcnRQb3NpdGlvbi5jZWxsRW50cnlbMV0ubGVuZ3RoICsgMSAmJlxuICAgICAgICAgICAgc3RhcnRCbG9ja1BhdGgucG9wKCkgPT09IDAgJiZcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0ID09PSAwICYmXG4gICAgICAgICAgICBUaGVRdWVyaWVzLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBzdGFydEJsb2NrUGF0aCkgJiZcbiAgICAgICAgICAgICFFZGl0b3IuaXNWb2lkKGVkaXRvciwgVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUZvcndhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMoKTtcbiAgICAgICAgY29uc3QgYWZ0ZXJQb2ludCA9IEVkaXRvci5hZnRlcihlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBpZiAoYWZ0ZXJQb2ludCAmJiBpc1JhbmdlSW5UYWJsZShvcHRzLCBlZGl0b3IsIHsgYW5jaG9yOiBhZnRlclBvaW50LCBmb2N1czogYWZ0ZXJQb2ludCB9KSkge1xuICAgICAgICAgICAgY29uc3QgYmVmb3JlUG9zaXRpb24gPSBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgY29uc3QgYWZ0ZXJQb3NpdGlvbiA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgYWZ0ZXJQb2ludC5wYXRoKTtcbiAgICAgICAgICAgIGlmIChiZWZvcmVQb3NpdGlvbi5jZWxsICYmIGJlZm9yZVBvc2l0aW9uLmNlbGwgIT09IGFmdGVyUG9zaXRpb24uY2VsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWxldGVGb3J3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IGlzTW92ZVVwID0gaG90a2V5cy5pc01vdmVVcChldmVudCk7XG4gICAgICAgIGNvbnN0IGlzTW92ZURvd24gPSBob3RrZXlzLmlzTW92ZURvd24oZXZlbnQpO1xuICAgICAgICBjb25zdCBpc01vdmVCYWNrd2FyZCA9IGhvdGtleXMuaXNNb3ZlQmFja3dhcmQoZXZlbnQpO1xuICAgICAgICBjb25zdCBpc01vdmVGb3J3YXJkID0gaG90a2V5cy5pc01vdmVGb3J3YXJkKGV2ZW50KTtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgIXNlbGVjdGlvbi5hbmNob3IgfHwgIXNlbGVjdGlvbi5mb2N1cykge1xuICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydFBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICBjb25zdCBlbmRQb3NpdGlvbiA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgc2VsZWN0aW9uLmZvY3VzLnBhdGgpO1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IFJhbmdlLmlzQ29sbGFwc2VkKHNlbGVjdGlvbik7XG4gICAgICAgIGlmIChzdGFydFBvc2l0aW9uICYmIGVuZFBvc2l0aW9uICYmIGVuZFBvc2l0aW9uLmlzSW5UYWJsZSgpKSB7XG4gICAgICAgICAgICAvLyBmb3Iga2V5Ym9hcmQgdXAgYW5kIGRvd24ga2V5IGluIHRoZSB0YWJsZVxuICAgICAgICAgICAgaWYgKGlzTW92ZVVwIHx8IGlzTW92ZURvd24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUGF0aCA9IGVuZFBvc2l0aW9uLmNlbGxFbnRyeVsxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFBhdGggPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBjZWxsUGF0aCkucGF0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRQYXRoID0gRWRpdG9yLmVuZChlZGl0b3IsIGNlbGxQYXRoKS5wYXRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNGaXJzdExpbmUsIGlzTGFzdExpbmUgfSA9IGNhbGN1bGF0ZUFuY2hvclBvc2l0aW9uSW5DZWxsKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgc3RhcnRQYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIGVuZFBhdGgucG9wKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoKFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpWzFdLnRvU3RyaW5nKCkgIT09IHN0YXJ0UGF0aC50b1N0cmluZygpIHx8ICFpc0ZpcnN0TGluZSkgJiYgaXNNb3ZlVXApIHtcbiAgICAgICAgICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgoVGhlUXVlcmllcy5hbmNob3JCbG9ja0VudHJ5KGVkaXRvcilbMV0udG9TdHJpbmcoKSAhPT0gZW5kUGF0aC50b1N0cmluZygpIHx8ICFpc0xhc3RMaW5lKSAmJiBpc01vdmVEb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGxldCBhdDogUG9pbnQ7XG4gICAgICAgICAgICAgICAgaWYgKGlzTW92ZVVwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFib3ZlUm93ID0gc3RhcnRQb3NpdGlvbi50YWJsZS5jaGlsZHJlbltzdGFydFBvc2l0aW9uLmdldFJvd0luZGV4KCkgLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWJvdmVDZWxsID0gYWJvdmVSb3cgJiYgYWJvdmVSb3cuY2hpbGRyZW5bc3RhcnRQb3NpdGlvbi5nZXRDb2x1bW5JbmRleCgpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFib3ZlQ2VsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFib3ZlQ2VsbC5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5zZWxlY3RPcmlnaW5DZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24udGFibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24uZ2V0Um93SW5kZXgoKSAtIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSBFZGl0b3IuZW5kKGVkaXRvciwgVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgYWJvdmVDZWxsKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c05vZGVFbnRyeSA9IEVkaXRvci5wcmV2aW91cyhlZGl0b3IsIHsgYXQ6IHN0YXJ0UG9zaXRpb24udGFibGVFbnRyeVsxXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIHN0YXJ0UG9zaXRpb24udGFibGVFbnRyeVsxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0b3IubmV4dChlZGl0b3IsIHsgYXQ6IHN0YXJ0UG9zaXRpb24udGFibGVFbnRyeVsxXSB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzTm9kZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSBFZGl0b3IuZW5kKGVkaXRvciwgcHJldmlvdXNOb2RlRW50cnlbMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzTm9kZUVudHJ5ICYmIGJlZm9yZVBvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSBFZGl0b3IuZW5kKGVkaXRvciwgYmVmb3JlUG9pbnQucGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNOb2RlRW50cnkgJiYgIWJlZm9yZVBvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5tb3ZlQmxvY2tDYXJkKGVkaXRvciwgc3RhcnRQb3NpdGlvbi50YWJsZUVudHJ5WzBdLCB7IGRpcmVjdGlvbjogJ2xlZnQnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGF0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYmVsb3dSb3dJbmRleCA9IHN0YXJ0UG9zaXRpb24uZ2V0Um93SW5kZXgoKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFBvc2l0aW9uLmNlbGwucm93c3BhbiA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlbG93Um93SW5kZXggPSBzdGFydFBvc2l0aW9uLmdldFJvd0luZGV4KCkgKyBzdGFydFBvc2l0aW9uLmNlbGwucm93c3BhbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWxvd1JvdyA9IHN0YXJ0UG9zaXRpb24udGFibGUuY2hpbGRyZW5bYmVsb3dSb3dJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlbG93Q2VsbCA9IGJlbG93Um93ICYmIGJlbG93Um93LmNoaWxkcmVuW3N0YXJ0UG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiZWxvd0NlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiZWxvd0NlbGwuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGVFZGl0b3Iuc2VsZWN0T3JpZ2luQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uLnRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uLmdldFJvd0luZGV4KCkgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uLmdldENvbHVtbkluZGV4KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBiZWxvd0NlbGwpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHROb2RlRW50cnkgPSBFZGl0b3IubmV4dChlZGl0b3IsIHsgYXQ6IHN0YXJ0UG9zaXRpb24udGFibGVFbnRyeVsxXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vdmVQYXRoID0gbmV4dE5vZGVFbnRyeSA/IG5leHROb2RlRW50cnlbMV0gOiBFZGl0b3IuYWZ0ZXIoZWRpdG9yLCBzdGFydFBvc2l0aW9uLnRhYmxlRW50cnlbMV0pLnBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdCA9IEVkaXRvci5zdGFydChlZGl0b3IsIG1vdmVQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGF0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNNb3ZlQmFja3dhcmQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVQb2ludCA9IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVQb3NpdGlvbiA9IGJlZm9yZVBvaW50ICYmIFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgYmVmb3JlUG9pbnQucGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGJlZm9yZVBvc2l0aW9uICYmIGJlZm9yZVBvc2l0aW9uLmNlbGwgJiYgYmVmb3JlUG9zaXRpb24uY2VsbC5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXQgPSBFZGl0b3IuZW5kKGVkaXRvciwgVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgYmVmb3JlUG9zaXRpb24uZmluZFByZXZpb3VzKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBhdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNNb3ZlRm9yd2FyZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyUG9pbnQgPSBFZGl0b3IuYWZ0ZXIoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhZnRlclBvc2l0aW9uID0gYWZ0ZXJQb2ludCAmJiBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIGFmdGVyUG9pbnQucGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGFmdGVyUG9zaXRpb24uY2VsbCAmJiBhZnRlclBvc2l0aW9uLmNlbGwuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRDZWxsID0gYWZ0ZXJQb3NpdGlvbi5maW5kTmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dENlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0ID0gRWRpdG9yLnN0YXJ0KGVkaXRvciwgVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgYWZ0ZXJQb3NpdGlvbi5maW5kTmV4dCgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLm1vdmVCbG9ja0NhcmQoZWRpdG9yLCBzdGFydFBvc2l0aW9uLnRhYmxlRW50cnlbMF0sIHsgZGlyZWN0aW9uOiAncmlnaHQnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBQcmV2ZW50IGRlbGV0aW5nIGNlbGxzIGluIHRoZSB0YWJsZVxuICAgICAgICAgICAgaWYgKCFpc0NvbGxhcHNlZCAmJiAhc3RhcnRQb3NpdGlvbi5pc0luVGFibGUoKSAmJiAhaXNWaXJ0dWFsS2V5KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbGV0IHRhYmxlT3V0UGF0aDogUG9pbnQ7XG4gICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFJhbmdlLmlzRm9yd2FyZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZU91dFBhdGggPSBFZGl0b3IuZW5kKGVkaXRvciwgW3NlbGVjdGlvbi5mb2N1cy5wYXRoWzBdIC0gMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUYWJsZU5vZGUob3B0cywgZWRpdG9yLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlT3V0UGF0aCA9IEVkaXRvci5zdGFydChlZGl0b3IsIFtzZWxlY3Rpb24uZm9jdXMucGF0aFswXSArIDFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGFibGVOb2RlKG9wdHMsIGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFibGVPdXRSYW5nZSA9IEVkaXRvci5yYW5nZShlZGl0b3IsIHNlbGVjdGlvbi5hbmNob3IsIHRhYmxlT3V0UGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogdGFibGVPdXRSYW5nZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBuZXcgcmFuZ2VcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmFuZ2UgPSBFZGl0b3IucmFuZ2UoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmZvY3VzLnBhdGguc2xpY2UoMCwgMykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzUmFuZ2UgPSBSYW5nZS5pbnRlcnNlY3Rpb24oZWRpdG9yLnNlbGVjdGlvbiwgY2VsbFJhbmdlKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGZvY3VzUmFuZ2UpO1xuICAgICAgICAgICAgICAgIEVkaXRvci5kZWxldGVGcmFnbWVudChlZGl0b3IpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgfTtcblxuICAgIGVkaXRvci5zZXRGcmFnbWVudERhdGEgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKCFpc1NlbGVjdGlvbkluVGFibGUob3B0cywgZWRpdG9yKSkge1xuICAgICAgICAgICAgc2V0RnJhZ21lbnREYXRhKHVuaXQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGNvbnN0IHRhYmxlUG9zaXRpb24gPSBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIHNlbGVjdGlvbi5hbmNob3IucGF0aCk7XG4gICAgICAgIGNvbnN0IHRhYmxlQ29tcG9uZW50ID0gRUxFTUVOVF9UT19DT01QT05FTlQuZ2V0KHRhYmxlUG9zaXRpb24udGFibGUpIGFzIFRoZVRhYmxlQ29tcG9uZW50O1xuICAgICAgICBjb25zdCBjZWxscyA9IHRhYmxlQ29tcG9uZW50LnRhYmxlU3RvcmUuc2VsZWN0ZWRDZWxscztcbiAgICAgICAgbGV0IHRhYmxlRnJhZ21lbnQgPSBudWxsO1xuICAgICAgICBpZiAodGFibGVDb21wb25lbnQudGFibGVTdG9yZS5zZWxlY3RlZFJvd3NJbmRleC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCByb3dzID0gdGFibGVQb3NpdGlvbi50YWJsZS5jaGlsZHJlbi5zbGljZShcbiAgICAgICAgICAgICAgICB0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLnNlbGVjdGVkUm93c0luZGV4WzBdLFxuICAgICAgICAgICAgICAgIHRhYmxlQ29tcG9uZW50LnRhYmxlU3RvcmUuc2VsZWN0ZWRSb3dzSW5kZXhbdGFibGVDb21wb25lbnQudGFibGVTdG9yZS5zZWxlY3RlZFJvd3NJbmRleC5sZW5ndGggLSAxXSArIDFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0YWJsZUZyYWdtZW50ID0ge1xuICAgICAgICAgICAgICAgIC4uLnRhYmxlUG9zaXRpb24udGFibGUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IHJvd3NcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoY2VsbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdGVtcFJvd3MgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2VsbCBvZiBjZWxscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcm93LCBjb2wgfSA9IGNlbGw7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBhdGggPSBbLi4udGFibGVQb3NpdGlvbi50YWJsZUVudHJ5WzFdLCByb3csIGNvbF07XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbE5vZGUgPSBOb2RlLmdldChlZGl0b3IsIGNlbGxQYXRoKSBhcyBUYWJsZUNlbGxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmICghdGVtcFJvd3Nbcm93XSkge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wUm93c1tyb3ddID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRlbXBSb3dzW3Jvd10ucHVzaChjZWxsTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByb3dzOiBUYWJsZVJvd0VsZW1lbnRbXSA9IE9iamVjdC52YWx1ZXModGVtcFJvd3MpLm1hcCgoaXRlbTogVGFibGVDZWxsRWxlbWVudFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLnRhYmxlUm93LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogaXRlbVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhYmxlRnJhZ21lbnQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLnRhYmxlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiByb3dzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWJsZUZyYWdtZW50KSB7XG4gICAgICAgICAgICB0YWJsZUZyYWdtZW50ID0gbm9ybWFsaXplVGFibGUoXy5jbG9uZURlZXAodGFibGVGcmFnbWVudCkpO1xuICAgICAgICAgICAgY29uc3QgcGxhaW5UZXh0ID0gTm9kZS5zdHJpbmcodGFibGVGcmFnbWVudCk7XG4gICAgICAgICAgICB0YWJsZUZyYWdtZW50ID0gW3RhYmxlRnJhZ21lbnRdO1xuICAgICAgICAgICAgY29uc3Qgc3RyaW5nT2JqID0gSlNPTi5zdHJpbmdpZnkodGFibGVGcmFnbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gd2luZG93LmJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ09iaikpO1xuICAgICAgICAgICAgdW5pdC5zZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWAsIGVuY29kZWQpO1xuICAgICAgICAgICAgdW5pdC5zZXREYXRhKCd0ZXh0L3BsYWluJywgcGxhaW5UZXh0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRGcmFnbWVudERhdGEodW5pdCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5pbnNlcnREYXRhID0gZGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZXh0cmFjdEZyYWdtZW50KGRhdGEpO1xuICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0aW9uSW5UYWJsZShvcHRzLCBlZGl0b3IpICYmXG4gICAgICAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgICAgICAgRWxlbWVudC5pc0VsZW1lbnQoZnJhZ21lbnRbMF0pICYmXG4gICAgICAgICAgICAgICAgZnJhZ21lbnRbMF0udHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJsZVBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsaXBib2FyZFRhYmxlID0gZnJhZ21lbnRbMF0uY2hpbGRyZW4gYXMgTm9kZVtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsaXBib2FyZFJvdyA9IChjbGlwYm9hcmRUYWJsZVswXSBhcyBFbGVtZW50KS5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RSb3dJbmRleCA9IHRhYmxlUG9zaXRpb24uZ2V0Um93SW5kZXgoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RDb2xJbmRleCA9IHRhYmxlUG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Um93SW5kZXggPSBzZWxlY3RSb3dJbmRleCArIGNsaXBib2FyZFRhYmxlLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdENvbEluZGV4ID0gc2VsZWN0Q29sSW5kZXggKyBjbGlwYm9hcmRSb3cubGVuZ3RoIC0gMTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBzZWxlY3RSb3dJbmRleDsgaSA8PSBsYXN0Um93SW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gc2VsZWN0Q29sSW5kZXg7IGogPD0gbGFzdENvbEluZGV4OyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IHRhYmxlUG9zaXRpb24udGFibGUuY2hpbGRyZW5baV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocm93ICYmIHJvdy5jaGlsZHJlbltqXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbkNlbGwgPSBnZXRPcmlnaW5DZWxsKHRhYmxlUG9zaXRpb24udGFibGUsIGksIGopO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5DZWxsICYmIChvcmlnaW5DZWxsLmNvbHNwYW4gfHwgb3JpZ2luQ2VsbC5yb3dzcGFuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgb3JpZ2luQ2VsbCkuc2xpY2UoLTIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNldFRhYmxlQ2VsbChlZGl0b3IsIHRhYmxlUG9zaXRpb24udGFibGUsIG9yaWdpbkNlbGwsIHBhdGhbMF0sIHBhdGhbMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0Q29sSW5kZXggPiB0YWJsZVBvc2l0aW9uLmdldFdpZHRoKCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGRDb2xDb3VudCA9IGxhc3RDb2xJbmRleCAtICh0YWJsZVBvc2l0aW9uLmdldFdpZHRoKCkgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlRWRpdG9yLmluc2VydENvbHVtbihlZGl0b3IsIGFkZENvbENvdW50LCB0YWJsZVBvc2l0aW9uLmdldFdpZHRoKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0Um93SW5kZXggPiB0YWJsZVBvc2l0aW9uLmdldEhlaWdodCgpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRkUm93Q291bnQgPSBsYXN0Um93SW5kZXggLSAodGFibGVQb3NpdGlvbi5nZXRIZWlnaHQoKSAtIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Um93KGVkaXRvciwgYWRkUm93Q291bnQsIHRhYmxlUG9zaXRpb24uZ2V0SGVpZ2h0KCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZFRhYmxlLmZvckVhY2goKHJvdzogVGFibGVFbGVtZW50LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5jaGlsZHJlbi5mb3JFYWNoKChjb2w6IE5vZGUsIGo6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0ID0gWy4uLnRhYmxlUG9zaXRpb24udGFibGVFbnRyeVsxXSwgc2VsZWN0Um93SW5kZXggKyBpLCBzZWxlY3RDb2xJbmRleCArIGpdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yLCB7IGF0IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBjb2wsIHsgYXQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gRWRpdG9yLnN0YXJ0KGVkaXRvciwgWy4uLnRhYmxlUG9zaXRpb24udGFibGVFbnRyeVsxXSwgc2VsZWN0Um93SW5kZXgsIHNlbGVjdENvbEluZGV4XSk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCB0YXJnZXQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgIH07XG5cbiAgICBlZGl0b3Iubm9ybWFsaXplTm9kZSA9IChlbnRyeTogTm9kZUVudHJ5PE5vZGU+KSA9PiB7XG4gICAgICAgIGlmIChFbGVtZW50LmlzRWxlbWVudChlbnRyeVswXSkgJiYgZW50cnlbMF0udHlwZSA9PT0gRWxlbWVudEtpbmRzLnRhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCB0YWJsZSA9IGVudHJ5WzBdIGFzIFRhYmxlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoID0gTWF0aC5tYXgoLi4udGFibGUuY2hpbGRyZW4ubWFwKHJvdyA9PiByb3cuY2hpbGRyZW4ubGVuZ3RoKSk7XG4gICAgICAgICAgICBjb25zdCBpbnZhbGlkUm93cyA9IHRhYmxlLmNoaWxkcmVuLmZpbHRlcihyb3cgPT4gcm93LmNoaWxkcmVuLmxlbmd0aCA8IG1heFdpZHRoKTtcbiAgICAgICAgICAgIGlmIChpbnZhbGlkUm93cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0YWJsZS5jaGlsZHJlbi5tYXAoKHJvdywgcm93SW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5jaGlsZHJlbi5tYXAoKGNlbGwsIGNlbGxJbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsLmhpZGRlbiB8fCBjZWxsLmNvbHNwYW4gfHwgY2VsbC5yb3dzcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGhpZGRlbjogbnVsbCwgY29sc3BhbjogbnVsbCwgcm93c3BhbjogbnVsbCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBhdDogWy4uLmVudHJ5WzFdLCByb3dJbmRleCwgY2VsbEluZGV4XSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkUm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IG1heFdpZHRoIC0gcm93LmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydENvbHVtbkF0Um93KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5IGFzIE5vZGVFbnRyeTxUYWJsZUVsZW1lbnQ+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLmNoaWxkcmVuLmluZGV4T2Yocm93KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cuY2hpbGRyZW4ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YWJsZS5jb2x1bW5zICYmIHRhYmxlLmNvbHVtbnMubGVuZ3RoICE9PSBtYXhXaWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0YWJsZS5jb2x1bW5zLmxlbmd0aCA+IG1heFdpZHRoID8gcmVtb3ZlQ29sdW1ucyh0YWJsZSwgbWF4V2lkdGgpIDogYWRkQ29sdW1ucyh0YWJsZSwgbWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7IGNvbHVtbnMgfSwgeyBhdDogZW50cnlbMV0gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gYWRqdXN0IHNlbGVjdGlvbiB3aGVuIHNlbGVjdGlvbiBpcyBpbiBoaWRkZW4gY2VsbFxuICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQoZW50cnlbMF0pICYmIGVudHJ5WzBdLnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZUNlbGwgJiYgZW50cnlbMF0uaGlkZGVuKSB7XG4gICAgICAgICAgICBpZiAoZWRpdG9yLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSAmJiBQYXRoLmlzQW5jZXN0b3IoZW50cnlbMV0sIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlUG9zaXRpb24gPSBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW4gPSBnZXRPcmlnaW5DZWxsKHRhYmxlUG9zaXRpb24udGFibGUsIHRhYmxlUG9zaXRpb24uZ2V0Um93SW5kZXgoKSwgdGFibGVQb3NpdGlvbi5nZXRDb2x1bW5JbmRleCgpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBvcmlnaW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBFZGl0b3IuZW5kKGVkaXRvciwgcGF0aCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vcm1hbGl6ZU5vZGUoZW50cnkpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaXNCbG9ja0NhcmQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQmxvY2tDYXJkKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZVRhYmxlQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZVJvdykge1xuICAgICAgICAgICAgcmV0dXJuIFRoZVRhYmxlUm93Q29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZUNlbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUZENvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUN1dERhdGEgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgIGlmICghaXNTZWxlY3Rpb25JblRhYmxlKG9wdHMsIGVkaXRvcikpIHtcbiAgICAgICAgICAgIGRlbGV0ZUN1dERhdGEoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICBjb25zdCB0YWJsZUNvbXBvbmVudCA9IEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldChlbGVtZW50LnRhYmxlKSBhcyBUaGVUYWJsZUNvbXBvbmVudDtcbiAgICAgICAgY29uc3QgY2VsbHMgPSB0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLnNlbGVjdGVkQ2VsbHM7XG4gICAgICAgIGlmIChjZWxscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLmlzU2VsZWN0ZWRUYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5yZW1vdmVUYWJsZShlZGl0b3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlQ29tcG9uZW50LnRhYmxlU3RvcmUuY2xlYXJTZWxlY3RlZENlbGxzQ29udGVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0YWJsZUNvbXBvbmVudC50YWJsZVNlcnZpY2UuY2xvc2VUb29sYmFyKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVDdXREYXRhKCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5pc0NvbnRhaW5lciA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZUNlbGwgPyB0cnVlIDogaXNDb250YWluZXIoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UoKTtcbiAgICAgICAgLy8gYWR1anN0IHNlbGVjdGlvbiB3aGVuIHNlbGVjdGlvbiBpcyBpbiBoaWRkZW4gY2VsbFxuICAgICAgICAvLyBqdXN0IGhvb2sgc2V0X3NlbGVjdGlvblxuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0aW9uT3BlcmF0aW9uID0gZWRpdG9yLm9wZXJhdGlvbnMuZXZlcnkob3AgPT4gT3BlcmF0aW9uLmlzU2VsZWN0aW9uT3BlcmF0aW9uKG9wKSk7XG4gICAgICAgIGlmIChpc0NvbGxhcHNlZCAmJiBpc1NlbGVjdGlvbk9wZXJhdGlvbikge1xuICAgICAgICAgICAgY29uc3Qgb3B0cyA9IG5ldyBUYWJsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIGNvbnN0IHRhYmxlUG9zaXRpb24gPSBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgaWYgKHRhYmxlUG9zaXRpb24uaXNJblRhYmxlKCkgJiYgdGFibGVQb3NpdGlvbi5jZWxsLmhpZGRlbikge1xuICAgICAgICAgICAgICAgIFRhYmxlRWRpdG9yLnNlbGVjdE9yaWdpbkNlbGwoXG4gICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgdGFibGVQb3NpdGlvbi50YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgdGFibGVQb3NpdGlvbi5nZXRSb3dJbmRleCgpLFxuICAgICAgICAgICAgICAgICAgICB0YWJsZVBvc2l0aW9uLmdldENvbHVtbkluZGV4KCksXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRhYmxlUGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAga2V5OiBQbHVnaW5LZXlzLnRhYmxlLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhUYWJsZSxcbiAgICBuZXN0ZWRTdHJ1Y3R1cmVCeUtleToge1xuICAgICAgICBbRWxlbWVudEtpbmRzLnRhYmxlXTogW0VsZW1lbnRLaW5kcy50YWJsZVJvd10sXG4gICAgICAgIFtFbGVtZW50S2luZHMudGFibGVSb3ddOiBbRWxlbWVudEtpbmRzLnRhYmxlQ2VsbF1cbiAgICB9LFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy50YWJsZSxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1ib3JkZXItYWxsJyxcbiAgICAgICAgICAgIG5hbWU6ICfooajmoLwnLFxuICAgICAgICAgICAgaWNvbkNvbXBvbmVudDogVGhlVGFibGVUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBUYWJsZUVkaXRvci5pbnNlcnRUYWJsZShlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gVGFibGVFZGl0b3IuaXNBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXVxufSk7XG4iXX0=
424
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdGFibGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFv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WUFBWSxDQUFDLFNBQVM7S0FDbEQ7SUFDRCxZQUFZLEVBQUU7UUFDVjtZQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsS0FBSztZQUN2QixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLElBQUksRUFBRSxJQUFJO1lBQ1YsYUFBYSxFQUFFLDRCQUE0QjtZQUMzQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUNsRCxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUNqRDtLQUNKO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNmb3JtcywgUG9pbnQsIE5vZGUsIFJhbmdlLCBFZGl0b3IsIE5vZGVFbnRyeSwgRWxlbWVudCwgUGF0aCwgT3BlcmF0aW9uIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgRUxFTUVOVF9UT19DT01QT05FTlQsIGhvdGtleXMgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRhYmxlT3B0aW9ucyB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgaXNSYW5nZUluVGFibGUsIGlzU2VsZWN0aW9uSW5UYWJsZSwgVGFibGVQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgeyBUYWJsZUNlbGxFbGVtZW50LCBUYWJsZUVsZW1lbnQsIFRhYmxlUm93RWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBUaGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuL3RhYmxlLmVkaXRvcic7XG5pbXBvcnQgeyBjbGVhclRhYmxlTm9kZSB9IGZyb20gJy4vdHJhbnNmb3Jtcy9jbGVhci10YWJsZS1ub2RlJztcbmltcG9ydCB7IGlzVmlydHVhbEtleSB9IGZyb20gJy4vdXRpbHMvaXMtdmlydHVhbC1rZXknO1xuaW1wb3J0IHsgaW5zZXJ0Q29sdW1uQXRSb3cgfSBmcm9tICcuL3RyYW5zZm9ybXMvaW5zZXJ0LWNvbHVtbic7XG5pbXBvcnQgeyBjYWxjdWxhdGVBbmNob3JQb3NpdGlvbkluQ2VsbCB9IGZyb20gJy4vdXRpbHMvY2FsYy1hbmNob3ItcG9zaXRpb24nO1xuaW1wb3J0IHsgQ0xJUEJPQVJEX0ZPUk1BVF9LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBnZXRPcmlnaW5DZWxsIH0gZnJvbSAnLi91dGlscy9jYWxjLXNwYW4nO1xuaW1wb3J0IHsgcmVzZXRUYWJsZUNlbGwgfSBmcm9tICcuL3V0aWxzL3NwbGl0LWNlbGwnO1xuaW1wb3J0IHsgcmVtb3ZlQ29sdW1ucyB9IGZyb20gJy4vdXRpbHMvcmVtb3ZlLWNvbHVtbnMnO1xuaW1wb3J0IHsgYWRkQ29sdW1ucyB9IGZyb20gJy4vdXRpbHMvYWRkLWNvbHVtbnMnO1xuaW1wb3J0IHsgVGhlVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm93L3Jvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGQvdGQuY29tcG9uZW50JztcbmltcG9ydCB7IGV4dHJhY3RGcmFnbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZyYWdtZW50JztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBub3JtYWxpemVUYWJsZSB9IGZyb20gJy4vdXRpbHMvbm9ybWFsaXplLXRhYmxlJztcbmltcG9ydCB7IF8gfSBmcm9tICcuLi8uLi91dGlscy9sb2Rhc2gnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgVGhlVGFibGVUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoVGFibGUgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBkZWxldGVCYWNrd2FyZCxcbiAgICAgICAgZGVsZXRlRm9yd2FyZCxcbiAgICAgICAgb25LZXlkb3duLFxuICAgICAgICBzZXRGcmFnbWVudERhdGEsXG4gICAgICAgIGluc2VydERhdGEsXG4gICAgICAgIG5vcm1hbGl6ZU5vZGUsXG4gICAgICAgIGlzQmxvY2tDYXJkLFxuICAgICAgICByZW5kZXJFbGVtZW50LFxuICAgICAgICBkZWxldGVDdXREYXRhLFxuICAgICAgICBpc0NvbnRhaW5lcixcbiAgICAgICAgb25DaGFuZ2VcbiAgICB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgIGlmICghaXNTZWxlY3Rpb25JblRhYmxlKG9wdHMsIGVkaXRvcikpIHtcbiAgICAgICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgY29uc3QgWywgc3RhcnRCbG9ja1BhdGhdID0gRWRpdG9yLmFib3ZlPEVsZW1lbnQ+KGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RhcnRCbG9ja1BhdGgubGVuZ3RoIDw9IHN0YXJ0UG9zaXRpb24uY2VsbEVudHJ5WzFdLmxlbmd0aCArIDEgJiZcbiAgICAgICAgICAgIHN0YXJ0QmxvY2tQYXRoLnBvcCgpID09PSAwICYmXG4gICAgICAgICAgICBzZWxlY3Rpb24uYW5jaG9yLm9mZnNldCA9PT0gMCAmJlxuICAgICAgICAgICAgVGhlUXVlcmllcy5pc1N0YXJ0KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciwgc3RhcnRCbG9ja1BhdGgpICYmXG4gICAgICAgICAgICAhRWRpdG9yLmlzVm9pZChlZGl0b3IsIFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2soZWRpdG9yKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5kZWxldGVGb3J3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IGFmdGVyUG9pbnQgPSBFZGl0b3IuYWZ0ZXIoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKGFmdGVyUG9pbnQgJiYgaXNSYW5nZUluVGFibGUob3B0cywgZWRpdG9yLCB7IGFuY2hvcjogYWZ0ZXJQb2ludCwgZm9jdXM6IGFmdGVyUG9pbnQgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IGFmdGVyUG9zaXRpb24gPSBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIGFmdGVyUG9pbnQucGF0aCk7XG4gICAgICAgICAgICBpZiAoYmVmb3JlUG9zaXRpb24uY2VsbCAmJiBiZWZvcmVQb3NpdGlvbi5jZWxsICE9PSBhZnRlclBvc2l0aW9uLmNlbGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlRm9yd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucygpO1xuICAgICAgICBjb25zdCBpc01vdmVVcCA9IGhvdGtleXMuaXNNb3ZlVXAoZXZlbnQpO1xuICAgICAgICBjb25zdCBpc01vdmVEb3duID0gaG90a2V5cy5pc01vdmVEb3duKGV2ZW50KTtcbiAgICAgICAgY29uc3QgaXNNb3ZlQmFja3dhcmQgPSBob3RrZXlzLmlzTW92ZUJhY2t3YXJkKGV2ZW50KTtcbiAgICAgICAgY29uc3QgaXNNb3ZlRm9yd2FyZCA9IGhvdGtleXMuaXNNb3ZlRm9yd2FyZChldmVudCk7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGlmICghc2VsZWN0aW9uIHx8ICFzZWxlY3Rpb24uYW5jaG9yIHx8ICFzZWxlY3Rpb24uZm9jdXMpIHtcbiAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgY29uc3QgZW5kUG9zaXRpb24gPSBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIHNlbGVjdGlvbi5mb2N1cy5wYXRoKTtcbiAgICAgICAgY29uc3QgaXNDb2xsYXBzZWQgPSBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pO1xuICAgICAgICBpZiAoc3RhcnRQb3NpdGlvbiAmJiBlbmRQb3NpdGlvbiAmJiBlbmRQb3NpdGlvbi5pc0luVGFibGUoKSkge1xuICAgICAgICAgICAgLy8gZm9yIGtleWJvYXJkIHVwIGFuZCBkb3duIGtleSBpbiB0aGUgdGFibGVcbiAgICAgICAgICAgIGlmIChpc01vdmVVcCB8fCBpc01vdmVEb3duKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFBhdGggPSBlbmRQb3NpdGlvbi5jZWxsRW50cnlbMV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRQYXRoID0gRWRpdG9yLnN0YXJ0KGVkaXRvciwgY2VsbFBhdGgpLnBhdGg7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kUGF0aCA9IEVkaXRvci5lbmQoZWRpdG9yLCBjZWxsUGF0aCkucGF0aDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzRmlyc3RMaW5lLCBpc0xhc3RMaW5lIH0gPSBjYWxjdWxhdGVBbmNob3JQb3NpdGlvbkluQ2VsbChlZGl0b3IpO1xuICAgICAgICAgICAgICAgIHN0YXJ0UGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICBlbmRQYXRoLnBvcCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKChUaGVRdWVyaWVzLmFuY2hvckJsb2NrRW50cnkoZWRpdG9yKVsxXS50b1N0cmluZygpICE9PSBzdGFydFBhdGgudG9TdHJpbmcoKSB8fCAhaXNGaXJzdExpbmUpICYmIGlzTW92ZVVwKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoKFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpWzFdLnRvU3RyaW5nKCkgIT09IGVuZFBhdGgudG9TdHJpbmcoKSB8fCAhaXNMYXN0TGluZSkgJiYgaXNNb3ZlRG93bikge1xuICAgICAgICAgICAgICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBsZXQgYXQ6IFBvaW50O1xuICAgICAgICAgICAgICAgIGlmIChpc01vdmVVcCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhYm92ZVJvdyA9IHN0YXJ0UG9zaXRpb24udGFibGUuY2hpbGRyZW5bc3RhcnRQb3NpdGlvbi5nZXRSb3dJbmRleCgpIC0gMV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFib3ZlQ2VsbCA9IGFib3ZlUm93ICYmIGFib3ZlUm93LmNoaWxkcmVuW3N0YXJ0UG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChhYm92ZUNlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhYm92ZUNlbGwuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGVFZGl0b3Iuc2VsZWN0T3JpZ2luQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uLnRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uLmdldFJvd0luZGV4KCkgLSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uLmdldENvbHVtbkluZGV4KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ID0gRWRpdG9yLmVuZChlZGl0b3IsIFRoZUVkaXRvci5maW5kUGF0aChlZGl0b3IsIGFib3ZlQ2VsbCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNOb2RlRW50cnkgPSBFZGl0b3IucHJldmlvdXMoZWRpdG9yLCB7IGF0OiBzdGFydFBvc2l0aW9uLnRhYmxlRW50cnlbMV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVQb2ludCA9IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzdGFydFBvc2l0aW9uLnRhYmxlRW50cnlbMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgRWRpdG9yLm5leHQoZWRpdG9yLCB7IGF0OiBzdGFydFBvc2l0aW9uLnRhYmxlRW50cnlbMV0gfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c05vZGVFbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ID0gRWRpdG9yLmVuZChlZGl0b3IsIHByZXZpb3VzTm9kZUVudHJ5WzFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c05vZGVFbnRyeSAmJiBiZWZvcmVQb2ludCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ID0gRWRpdG9yLmVuZChlZGl0b3IsIGJlZm9yZVBvaW50LnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzTm9kZUVudHJ5ICYmICFiZWZvcmVQb2ludCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZ3VsYXJFZGl0b3IubW92ZUJsb2NrQ2FyZChlZGl0b3IsIHN0YXJ0UG9zaXRpb24udGFibGVFbnRyeVswXSwgeyBkaXJlY3Rpb246ICdsZWZ0JyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBhdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJlbG93Um93SW5kZXggPSBzdGFydFBvc2l0aW9uLmdldFJvd0luZGV4KCkgKyAxO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRQb3NpdGlvbi5jZWxsLnJvd3NwYW4gPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWxvd1Jvd0luZGV4ID0gc3RhcnRQb3NpdGlvbi5nZXRSb3dJbmRleCgpICsgc3RhcnRQb3NpdGlvbi5jZWxsLnJvd3NwYW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVsb3dSb3cgPSBzdGFydFBvc2l0aW9uLnRhYmxlLmNoaWxkcmVuW2JlbG93Um93SW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWxvd0NlbGwgPSBiZWxvd1JvdyAmJiBiZWxvd1Jvdy5jaGlsZHJlbltzdGFydFBvc2l0aW9uLmdldENvbHVtbkluZGV4KCldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmVsb3dDZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmVsb3dDZWxsLmhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlRWRpdG9yLnNlbGVjdE9yaWdpbkNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbi50YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbi5nZXRSb3dJbmRleCgpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbi5nZXRDb2x1bW5JbmRleCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0ID0gRWRpdG9yLnN0YXJ0KGVkaXRvciwgVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgYmVsb3dDZWxsKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0Tm9kZUVudHJ5ID0gRWRpdG9yLm5leHQoZWRpdG9yLCB7IGF0OiBzdGFydFBvc2l0aW9uLnRhYmxlRW50cnlbMV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3ZlUGF0aCA9IG5leHROb2RlRW50cnkgPyBuZXh0Tm9kZUVudHJ5WzFdIDogRWRpdG9yLmFmdGVyKGVkaXRvciwgc3RhcnRQb3NpdGlvbi50YWJsZUVudHJ5WzFdKS5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXQgPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBtb3ZlUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBhdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzTW92ZUJhY2t3YXJkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUG9pbnQgPSBFZGl0b3IuYmVmb3JlKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUG9zaXRpb24gPSBiZWZvcmVQb2ludCAmJiBUYWJsZVBvc2l0aW9uLmNyZWF0ZShvcHRzLCBlZGl0b3IsIGJlZm9yZVBvaW50LnBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChiZWZvcmVQb3NpdGlvbiAmJiBiZWZvcmVQb3NpdGlvbi5jZWxsICYmIGJlZm9yZVBvc2l0aW9uLmNlbGwuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0ID0gRWRpdG9yLmVuZChlZGl0b3IsIFRoZUVkaXRvci5maW5kUGF0aChlZGl0b3IsIGJlZm9yZVBvc2l0aW9uLmZpbmRQcmV2aW91cygpKSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgYXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzTW92ZUZvcndhcmQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhZnRlclBvaW50ID0gRWRpdG9yLmFmdGVyKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgY29uc3QgYWZ0ZXJQb3NpdGlvbiA9IGFmdGVyUG9pbnQgJiYgVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBhZnRlclBvaW50LnBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChhZnRlclBvc2l0aW9uLmNlbGwgJiYgYWZ0ZXJQb3NpdGlvbi5jZWxsLmhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0Q2VsbCA9IGFmdGVyUG9zaXRpb24uZmluZE5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRDZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdCA9IEVkaXRvci5zdGFydChlZGl0b3IsIFRoZUVkaXRvci5maW5kUGF0aChlZGl0b3IsIGFmdGVyUG9zaXRpb24uZmluZE5leHQoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBhdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5tb3ZlQmxvY2tDYXJkKGVkaXRvciwgc3RhcnRQb3NpdGlvbi50YWJsZUVudHJ5WzBdLCB7IGRpcmVjdGlvbjogJ3JpZ2h0JyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUHJldmVudCBkZWxldGluZyBjZWxscyBpbiB0aGUgdGFibGVcbiAgICAgICAgICAgIGlmICghaXNDb2xsYXBzZWQgJiYgIXN0YXJ0UG9zaXRpb24uaXNJblRhYmxlKCkgJiYgIWlzVmlydHVhbEtleShldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGxldCB0YWJsZU91dFBhdGg6IFBvaW50O1xuICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChSYW5nZS5pc0ZvcndhcmQoc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVPdXRQYXRoID0gRWRpdG9yLmVuZChlZGl0b3IsIFtzZWxlY3Rpb24uZm9jdXMucGF0aFswXSAtIDFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGFibGVOb2RlKG9wdHMsIGVkaXRvciwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZU91dFBhdGggPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBbc2VsZWN0aW9uLmZvY3VzLnBhdGhbMF0gKyAxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRhYmxlTm9kZShvcHRzLCBlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlT3V0UmFuZ2UgPSBFZGl0b3IucmFuZ2UoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCB0YWJsZU91dFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQ6IHRhYmxlT3V0UmFuZ2UgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gbmV3IHJhbmdlXG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFJhbmdlID0gRWRpdG9yLnJhbmdlKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbi5mb2N1cy5wYXRoLnNsaWNlKDAsIDMpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb2N1c1JhbmdlID0gUmFuZ2UuaW50ZXJzZWN0aW9uKGVkaXRvci5zZWxlY3Rpb24sIGNlbGxSYW5nZSk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBmb2N1c1JhbmdlKTtcbiAgICAgICAgICAgICAgICBFZGl0b3IuZGVsZXRlRnJhZ21lbnQoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG5cbiAgICBlZGl0b3Iuc2V0RnJhZ21lbnREYXRhID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgIGlmICghaXNTZWxlY3Rpb25JblRhYmxlKG9wdHMsIGVkaXRvcikpIHtcbiAgICAgICAgICAgIHNldEZyYWdtZW50RGF0YSh1bml0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBjb25zdCB0YWJsZVBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICBjb25zdCB0YWJsZUNvbXBvbmVudCA9IEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldCh0YWJsZVBvc2l0aW9uLnRhYmxlKSBhcyBUaGVUYWJsZUNvbXBvbmVudDtcbiAgICAgICAgY29uc3QgY2VsbHMgPSB0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLnNlbGVjdGVkQ2VsbHM7XG4gICAgICAgIGxldCB0YWJsZUZyYWdtZW50ID0gbnVsbDtcbiAgICAgICAgaWYgKHRhYmxlQ29tcG9uZW50LnRhYmxlU3RvcmUuc2VsZWN0ZWRSb3dzSW5kZXgubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgcm93cyA9IHRhYmxlUG9zaXRpb24udGFibGUuY2hpbGRyZW4uc2xpY2UoXG4gICAgICAgICAgICAgICAgdGFibGVDb21wb25lbnQudGFibGVTdG9yZS5zZWxlY3RlZFJvd3NJbmRleFswXSxcbiAgICAgICAgICAgICAgICB0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLnNlbGVjdGVkUm93c0luZGV4W3RhYmxlQ29tcG9uZW50LnRhYmxlU3RvcmUuc2VsZWN0ZWRSb3dzSW5kZXgubGVuZ3RoIC0gMV0gKyAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGFibGVGcmFnbWVudCA9IHtcbiAgICAgICAgICAgICAgICAuLi50YWJsZVBvc2l0aW9uLnRhYmxlLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiByb3dzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGNlbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBSb3dzID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNlbGwgb2YgY2VsbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJvdywgY29sIH0gPSBjZWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQYXRoID0gWy4uLnRhYmxlUG9zaXRpb24udGFibGVFbnRyeVsxXSwgcm93LCBjb2xdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxOb2RlID0gTm9kZS5nZXQoZWRpdG9yLCBjZWxsUGF0aCkgYXMgVGFibGVDZWxsRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoIXRlbXBSb3dzW3Jvd10pIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcFJvd3Nbcm93XSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0ZW1wUm93c1tyb3ddLnB1c2goY2VsbE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgcm93czogVGFibGVSb3dFbGVtZW50W10gPSBPYmplY3QudmFsdWVzKHRlbXBSb3dzKS5tYXAoKGl0ZW06IFRhYmxlQ2VsbEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy50YWJsZVJvdyxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGl0ZW1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJsZUZyYWdtZW50ID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy50YWJsZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogcm93c1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFibGVGcmFnbWVudCkge1xuICAgICAgICAgICAgdGFibGVGcmFnbWVudCA9IG5vcm1hbGl6ZVRhYmxlKF8uY2xvbmVEZWVwKHRhYmxlRnJhZ21lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHBsYWluVGV4dCA9IE5vZGUuc3RyaW5nKHRhYmxlRnJhZ21lbnQpO1xuICAgICAgICAgICAgdGFibGVGcmFnbWVudCA9IFt0YWJsZUZyYWdtZW50XTtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZ09iaiA9IEpTT04uc3RyaW5naWZ5KHRhYmxlRnJhZ21lbnQpO1xuICAgICAgICAgICAgY29uc3QgZW5jb2RlZCA9IHdpbmRvdy5idG9hKGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdPYmopKTtcbiAgICAgICAgICAgIHVuaXQuc2V0RGF0YShgYXBwbGljYXRpb24vJHtDTElQQk9BUkRfRk9STUFUX0tFWX1gLCBlbmNvZGVkKTtcbiAgICAgICAgICAgIHVuaXQuc2V0RGF0YSgndGV4dC9wbGFpbicsIHBsYWluVGV4dCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0RnJhZ21lbnREYXRhKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IGRhdGEgPT4ge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGV4dHJhY3RGcmFnbWVudChkYXRhKTtcbiAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucygpO1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGlvbkluVGFibGUob3B0cywgZWRpdG9yKSAmJlxuICAgICAgICAgICAgICAgIGZyYWdtZW50Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIEVsZW1lbnQuaXNFbGVtZW50KGZyYWdtZW50WzBdKSAmJlxuICAgICAgICAgICAgICAgIGZyYWdtZW50WzBdLnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVQb3NpdGlvbiA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlwYm9hcmRUYWJsZSA9IGZyYWdtZW50WzBdLmNoaWxkcmVuIGFzIE5vZGVbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlwYm9hcmRSb3cgPSAoY2xpcGJvYXJkVGFibGVbMF0gYXMgRWxlbWVudCkuY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0Um93SW5kZXggPSB0YWJsZVBvc2l0aW9uLmdldFJvd0luZGV4KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0Q29sSW5kZXggPSB0YWJsZVBvc2l0aW9uLmdldENvbHVtbkluZGV4KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFJvd0luZGV4ID0gc2VsZWN0Um93SW5kZXggKyBjbGlwYm9hcmRUYWJsZS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDb2xJbmRleCA9IHNlbGVjdENvbEluZGV4ICsgY2xpcGJvYXJkUm93Lmxlbmd0aCAtIDE7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gc2VsZWN0Um93SW5kZXg7IGkgPD0gbGFzdFJvd0luZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IHNlbGVjdENvbEluZGV4OyBqIDw9IGxhc3RDb2xJbmRleDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3cgPSB0YWJsZVBvc2l0aW9uLnRhYmxlLmNoaWxkcmVuW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdyAmJiByb3cuY2hpbGRyZW5bal0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5DZWxsID0gZ2V0T3JpZ2luQ2VsbCh0YWJsZVBvc2l0aW9uLnRhYmxlLCBpLCBqKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luQ2VsbCAmJiAob3JpZ2luQ2VsbC5jb2xzcGFuIHx8IG9yaWdpbkNlbGwucm93c3BhbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFRoZUVkaXRvci5maW5kUGF0aChlZGl0b3IsIG9yaWdpbkNlbGwpLnNsaWNlKC0yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRUYWJsZUNlbGwoZWRpdG9yLCB0YWJsZVBvc2l0aW9uLnRhYmxlLCBvcmlnaW5DZWxsLCBwYXRoWzBdLCBwYXRoWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdENvbEluZGV4ID4gdGFibGVQb3NpdGlvbi5nZXRXaWR0aCgpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRkQ29sQ291bnQgPSBsYXN0Q29sSW5kZXggLSAodGFibGVQb3NpdGlvbi5nZXRXaWR0aCgpIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRDb2x1bW4oZWRpdG9yLCBhZGRDb2xDb3VudCwgdGFibGVQb3NpdGlvbi5nZXRXaWR0aCgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFJvd0luZGV4ID4gdGFibGVQb3NpdGlvbi5nZXRIZWlnaHQoKSAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkZFJvd0NvdW50ID0gbGFzdFJvd0luZGV4IC0gKHRhYmxlUG9zaXRpb24uZ2V0SGVpZ2h0KCkgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlRWRpdG9yLmluc2VydFJvdyhlZGl0b3IsIGFkZFJvd0NvdW50LCB0YWJsZVBvc2l0aW9uLmdldEhlaWdodCgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmRUYWJsZS5mb3JFYWNoKChyb3c6IFRhYmxlRWxlbWVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3cuY2hpbGRyZW4uZm9yRWFjaCgoY29sOiBOb2RlLCBqOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdCA9IFsuLi50YWJsZVBvc2l0aW9uLnRhYmxlRW50cnlbMV0sIHNlbGVjdFJvd0luZGV4ICsgaSwgc2VsZWN0Q29sSW5kZXggKyBqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKGVkaXRvciwgeyBhdCB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgY29sLCB7IGF0IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IEVkaXRvci5zdGFydChlZGl0b3IsIFsuLi50YWJsZVBvc2l0aW9uLnRhYmxlRW50cnlbMV0sIHNlbGVjdFJvd0luZGV4LCBzZWxlY3RDb2xJbmRleF0pO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RGF0YShkYXRhKTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSAoZW50cnk6IE5vZGVFbnRyeTxOb2RlPikgPT4ge1xuICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQoZW50cnlbMF0pICYmIGVudHJ5WzBdLnR5cGUgPT09IEVsZW1lbnRLaW5kcy50YWJsZSkge1xuICAgICAgICAgICAgY29uc3QgdGFibGUgPSBlbnRyeVswXSBhcyBUYWJsZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBtYXhXaWR0aCA9IE1hdGgubWF4KC4uLnRhYmxlLmNoaWxkcmVuLm1hcChyb3cgPT4gcm93LmNoaWxkcmVuLmxlbmd0aCkpO1xuICAgICAgICAgICAgY29uc3QgaW52YWxpZFJvd3MgPSB0YWJsZS5jaGlsZHJlbi5maWx0ZXIocm93ID0+IHJvdy5jaGlsZHJlbi5sZW5ndGggPCBtYXhXaWR0aCk7XG4gICAgICAgICAgICBpZiAoaW52YWxpZFJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFibGUuY2hpbGRyZW4ubWFwKChyb3csIHJvd0luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3cuY2hpbGRyZW4ubWFwKChjZWxsLCBjZWxsSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbC5oaWRkZW4gfHwgY2VsbC5jb2xzcGFuIHx8IGNlbGwucm93c3Bhbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBoaWRkZW46IG51bGwsIGNvbHNwYW46IG51bGwsIHJvd3NwYW46IG51bGwgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgYXQ6IFsuLi5lbnRyeVsxXSwgcm93SW5kZXgsIGNlbGxJbmRleF0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZFJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSBtYXhXaWR0aCAtIHJvdy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRDb2x1bW5BdFJvdyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSBhcyBOb2RlRW50cnk8VGFibGVFbGVtZW50PixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5jaGlsZHJlbi5pbmRleE9mKHJvdyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LmNoaWxkcmVuLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFibGUuY29sdW1ucyAmJiB0YWJsZS5jb2x1bW5zLmxlbmd0aCAhPT0gbWF4V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gdGFibGUuY29sdW1ucy5sZW5ndGggPiBtYXhXaWR0aCA/IHJlbW92ZUNvbHVtbnModGFibGUsIG1heFdpZHRoKSA6IGFkZENvbHVtbnModGFibGUsIG1heFdpZHRoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyBjb2x1bW5zIH0sIHsgYXQ6IGVudHJ5WzFdIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGFkanVzdCBzZWxlY3Rpb24gd2hlbiBzZWxlY3Rpb24gaXMgaW4gaGlkZGVuIGNlbGxcbiAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGVudHJ5WzBdKSAmJiBlbnRyeVswXS50eXBlID09PSBFbGVtZW50S2luZHMudGFibGVDZWxsICYmIGVudHJ5WzBdLmhpZGRlbikge1xuICAgICAgICAgICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbikgJiYgUGF0aC5pc0FuY2VzdG9yKGVudHJ5WzFdLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKSkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWJsZVBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gZ2V0T3JpZ2luQ2VsbCh0YWJsZVBvc2l0aW9uLnRhYmxlLCB0YWJsZVBvc2l0aW9uLmdldFJvd0luZGV4KCksIHRhYmxlUG9zaXRpb24uZ2V0Q29sdW1uSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgb3JpZ2luKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgRWRpdG9yLmVuZChlZGl0b3IsIHBhdGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBub3JtYWxpemVOb2RlKGVudHJ5KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmlzQmxvY2tDYXJkID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMudGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0Jsb2NrQ2FyZChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLnJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMudGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUYWJsZUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMudGFibGVSb3cpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUYWJsZVJvd0NvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMudGFibGVDZWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlVGRDb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlckVsZW1lbnQoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5kZWxldGVDdXREYXRhID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRzID0gbmV3IFRhYmxlT3B0aW9ucygpO1xuICAgICAgICBpZiAoIWlzU2VsZWN0aW9uSW5UYWJsZShvcHRzLCBlZGl0b3IpKSB7XG4gICAgICAgICAgICBkZWxldGVDdXREYXRhKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IFRhYmxlUG9zaXRpb24uY3JlYXRlKG9wdHMsIGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgY29uc3QgdGFibGVDb21wb25lbnQgPSBFTEVNRU5UX1RPX0NPTVBPTkVOVC5nZXQoZWxlbWVudC50YWJsZSkgYXMgVGhlVGFibGVDb21wb25lbnQ7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gdGFibGVDb21wb25lbnQudGFibGVTdG9yZS5zZWxlY3RlZENlbGxzO1xuICAgICAgICBpZiAoY2VsbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGFibGVDb21wb25lbnQudGFibGVTdG9yZS5pc1NlbGVjdGVkVGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgVGFibGVFZGl0b3IucmVtb3ZlVGFibGUoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0YWJsZUNvbXBvbmVudC50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxsc0NvbnRlbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGFibGVDb21wb25lbnQudGFibGVTZXJ2aWNlLmNsb3NlVG9vbGJhcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlQ3V0RGF0YSgpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaXNDb250YWluZXIgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMudGFibGVDZWxsID8gdHJ1ZSA6IGlzQ29udGFpbmVyKGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3Iub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIG9uQ2hhbmdlKCk7XG4gICAgICAgIC8vIGFkdWpzdCBzZWxlY3Rpb24gd2hlbiBzZWxlY3Rpb24gaXMgaW4gaGlkZGVuIGNlbGxcbiAgICAgICAgLy8ganVzdCBob29rIHNldF9zZWxlY3Rpb25cbiAgICAgICAgY29uc3QgaXNDb2xsYXBzZWQgPSBlZGl0b3Iuc2VsZWN0aW9uICYmIFJhbmdlLmlzQ29sbGFwc2VkKGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBpc1NlbGVjdGlvbk9wZXJhdGlvbiA9IGVkaXRvci5vcGVyYXRpb25zLmV2ZXJ5KG9wID0+IE9wZXJhdGlvbi5pc1NlbGVjdGlvbk9wZXJhdGlvbihvcCkpO1xuICAgICAgICBpZiAoaXNDb2xsYXBzZWQgJiYgaXNTZWxlY3Rpb25PcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdHMgPSBuZXcgVGFibGVPcHRpb25zKCk7XG4gICAgICAgICAgICBjb25zdCB0YWJsZVBvc2l0aW9uID0gVGFibGVQb3NpdGlvbi5jcmVhdGUob3B0cywgZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgIGlmICh0YWJsZVBvc2l0aW9uLmlzSW5UYWJsZSgpICYmIHRhYmxlUG9zaXRpb24uY2VsbC5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5zZWxlY3RPcmlnaW5DZWxsKFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlUG9zaXRpb24udGFibGUsXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlUG9zaXRpb24uZ2V0Um93SW5kZXgoKSxcbiAgICAgICAgICAgICAgICAgICAgdGFibGVQb3NpdGlvbi5nZXRDb2x1bW5JbmRleCgpLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUYWJsZVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy50YWJsZSxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoVGFibGUsXG4gICAgbmVzdGVkU3RydWN0dXJlQnlLZXk6IHtcbiAgICAgICAgW0VsZW1lbnRLaW5kcy50YWJsZV06IEVsZW1lbnRLaW5kcy50YWJsZVJvdyxcbiAgICAgICAgW0VsZW1lbnRLaW5kcy50YWJsZVJvd106IEVsZW1lbnRLaW5kcy50YWJsZUNlbGxcbiAgICB9LFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy50YWJsZSxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1ib3JkZXItYWxsJyxcbiAgICAgICAgICAgIG5hbWU6ICfooajmoLwnLFxuICAgICAgICAgICAgaWNvbkNvbXBvbmVudDogVGhlVGFibGVUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBUYWJsZUVkaXRvci5pbnNlcnRUYWJsZShlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gVGFibGVFZGl0b3IuaXNBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXVxufSk7XG4iXX0=
@@ -10,6 +10,6 @@ export function insertTable(opts, editor, rows = 3, columns = 3, getCellContent)
10
10
  }
11
11
  // Create the table node
12
12
  const table = createTable(opts, columns, rows, getCellContent);
13
- TheTransforms.insertElement(editor, table);
13
+ TheTransforms.insertElements(editor, table);
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdHJhbnNmb3Jtcy9pbnNlcnQtdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEtBQUssYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDdkIsSUFBa0IsRUFDbEIsTUFBYyxFQUNkLE9BQWUsQ0FBQyxFQUNoQixVQUFrQixDQUFDLEVBQ25CLGNBQXdEO0lBRXhELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDN0IsSUFBSSxDQUFDLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE1BQU0sQ0FBQSxFQUFFO1FBQ3BCLE9BQU87S0FDVjtJQUNELHdCQUF3QjtJQUN4QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0QsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRhYmxlT3B0aW9ucyB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi8uLi90cmFuc2Zvcm1zJztcblxuLyoqXG4gKiBJbnNlcnQgYSBuZXcgdGFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFRhYmxlKFxuICAgIG9wdHM6IFRhYmxlT3B0aW9ucyxcbiAgICBlZGl0b3I6IEVkaXRvcixcbiAgICByb3dzOiBudW1iZXIgPSAzLFxuICAgIGNvbHVtbnM6IG51bWJlciA9IDMsXG4gICAgZ2V0Q2VsbENvbnRlbnQ/OiAoY29sdW1uOiBudW1iZXIsIHJvdzogbnVtYmVyKSA9PiBOb2RlW11cbikge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgaWYgKCFzZWxlY3Rpb24/LmFuY2hvcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENyZWF0ZSB0aGUgdGFibGUgbm9kZVxuICAgIGNvbnN0IHRhYmxlID0gY3JlYXRlVGFibGUob3B0cywgY29sdW1ucywgcm93cywgZ2V0Q2VsbENvbnRlbnQpO1xuICAgIFRoZVRyYW5zZm9ybXMuaW5zZXJ0RWxlbWVudChlZGl0b3IsIHRhYmxlKTtcbn1cbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvdGFibGUvdHJhbnNmb3Jtcy9pbnNlcnQtdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEtBQUssYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDdkIsSUFBa0IsRUFDbEIsTUFBYyxFQUNkLE9BQWUsQ0FBQyxFQUNoQixVQUFrQixDQUFDLEVBQ25CLGNBQXdEO0lBRXhELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDN0IsSUFBSSxDQUFDLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE1BQU0sQ0FBQSxFQUFFO1FBQ3BCLE9BQU87S0FDVjtJQUNELHdCQUF3QjtJQUN4QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0QsYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRhYmxlT3B0aW9ucyB9IGZyb20gJy4uL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGNyZWF0ZVRhYmxlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi8uLi90cmFuc2Zvcm1zJztcblxuLyoqXG4gKiBJbnNlcnQgYSBuZXcgdGFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFRhYmxlKFxuICAgIG9wdHM6IFRhYmxlT3B0aW9ucyxcbiAgICBlZGl0b3I6IEVkaXRvcixcbiAgICByb3dzOiBudW1iZXIgPSAzLFxuICAgIGNvbHVtbnM6IG51bWJlciA9IDMsXG4gICAgZ2V0Q2VsbENvbnRlbnQ/OiAoY29sdW1uOiBudW1iZXIsIHJvdzogbnVtYmVyKSA9PiBOb2RlW11cbikge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgaWYgKCFzZWxlY3Rpb24/LmFuY2hvcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENyZWF0ZSB0aGUgdGFibGUgbm9kZVxuICAgIGNvbnN0IHRhYmxlID0gY3JlYXRlVGFibGUob3B0cywgY29sdW1ucywgcm93cywgZ2V0Q2VsbENvbnRlbnQpO1xuICAgIFRoZVRyYW5zZm9ybXMuaW5zZXJ0RWxlbWVudHMoZWRpdG9yLCB0YWJsZSk7XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component, HostBinding } from '@angular/core';
2
2
  import * as TheTransforms from '../../transforms';
3
- import { TheBaseElementComponent } from '../../interfaces';
4
- import { ElementKinds } from '../../constants/node-types';
3
+ import { PluginKeys, TheBaseElementComponent } from '../../interfaces';
4
+ import { getPluginOptions } from '../../core/utils/get-plugin-options';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../services/context.service";
7
7
  import * as i2 from "slate-angular";
@@ -18,18 +18,17 @@ export class TheTodoItemComponent extends TheBaseElementComponent {
18
18
  var _a;
19
19
  return (_a = this.element) === null || _a === void 0 ? void 0 : _a.indent;
20
20
  }
21
+ get editableWithReadonly() {
22
+ var _a;
23
+ return (_a = getPluginOptions(this.editor, PluginKeys.checkItem)) === null || _a === void 0 ? void 0 : _a.editableWithReadonly;
24
+ }
21
25
  ngOnInit() {
22
26
  super.ngOnInit();
23
27
  }
24
28
  onCheck(checked) {
25
- const options = this.ctxService.getTheOptions();
26
- const noBindReadonly = options.noBindReadonlyPlugins && options.noBindReadonlyPlugins.includes(ElementKinds.checkItem);
27
- if (!noBindReadonly && this.readonly) {
29
+ if (this.readonly && !this.editableWithReadonly) {
28
30
  return false;
29
31
  }
30
- else {
31
- TheTransforms.setNode(this.editor, { checked }, this.element);
32
- }
33
32
  TheTransforms.setNode(this.editor, { checked }, this.element);
34
33
  }
35
34
  }
@@ -58,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
58
57
  type: HostBinding,
59
58
  args: ['attr.the-level']
60
59
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kby1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQVcxRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQWdEO0lBV3RGLFlBQW1CLFVBQXNCLEVBQVMsR0FBc0IsRUFBVSxVQUE2QjtRQUMzRyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRFIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFSL0csNkNBQTZDO1FBQ0gsbUJBQWMsR0FBRyxJQUFJLENBQUM7SUFTaEUsQ0FBQztJQVBELElBQ0ksS0FBSzs7UUFDTCxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFNRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNoRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMscUJBQXFCLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkgsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDSCxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakU7UUFDRCxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7a0hBNUJRLG9CQUFvQjtzR0FBcEIsb0JBQW9CLDZMQVBuQjs7Ozs7S0FLVDs0RkFFUSxvQkFBb0I7a0JBVGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7OztLQUtUO2lCQUNKO2lLQUs2QyxjQUFjO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFHcEMsS0FBSztzQkFEUixXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBUaGVCYXNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9kb0l0ZW1FbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbdGhlVG9kb0l0ZW1dJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8c3BhbiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiIGNsYXNzPVwidG9kby1pdGVtLXN0YXR1c1wiPlxuICAgICAgICAgICAgPGlucHV0ICNjaGVja2JveCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJlbGVtZW50LmNoZWNrZWRcIiAoY2xpY2spPVwib25DaGVjayhjaGVja2JveC5jaGVja2VkKVwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+PHNsYXRlLWNoaWxkcmVuIFtjaGlsZHJlbl09XCJjaGlsZHJlblwiIFtjb250ZXh0XT1cImNoaWxkcmVuQ29udGV4dFwiIFt2aWV3Q29udGV4dF09XCJ2aWV3Q29udGV4dFwiPjwvc2xhdGUtY2hpbGRyZW4+PC9zcGFuPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgVGhlVG9kb0l0ZW1Db21wb25lbnQgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudENvbXBvbmVudDxUb2RvSXRlbUVsZW1lbnQsIEVkaXRvcj4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgICAvLyDnsbvlkI0gdGhlLXRlbXAtKjog5Li05pe26Kej5Yaz5Zug5Y+XcG9ydGFs5b2x5ZON5qC35byP6Zeu6aKY77yM5ZCO5pyf5pS55ZuedGhlLVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGhlLXRlbXAtY2hlY2staXRlbScpIGNoZWNrSXRlbUNsYXNzID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci50aGUtbGV2ZWwnKVxuICAgIGdldCBsZXZlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudD8uaW5kZW50O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBjdHhTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZSkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIG9uQ2hlY2soY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jdHhTZXJ2aWNlLmdldFRoZU9wdGlvbnMoKTtcbiAgICAgICAgY29uc3Qgbm9CaW5kUmVhZG9ubHkgPSBvcHRpb25zLm5vQmluZFJlYWRvbmx5UGx1Z2lucyAmJiBvcHRpb25zLm5vQmluZFJlYWRvbmx5UGx1Z2lucy5pbmNsdWRlcyhFbGVtZW50S2luZHMuY2hlY2tJdGVtKTtcbiAgICAgICAgaWYgKCFub0JpbmRSZWFkb25seSAmJiB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnNldE5vZGUodGhpcy5lZGl0b3IsIHsgY2hlY2tlZCB9LCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0Tm9kZSh0aGlzLmVkaXRvciwgeyBjaGVja2VkIH0sIHRoaXMuZWxlbWVudCk7XG4gICAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kby1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQVl2RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQWdEO0lBZXRGLFlBQW1CLFVBQXNCLEVBQVMsR0FBc0IsRUFBVSxVQUE2QjtRQUMzRyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRFIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFaL0csNkNBQTZDO1FBQ0gsbUJBQWMsR0FBRyxJQUFJLENBQUM7SUFhaEUsQ0FBQztJQVhELElBQ0ksS0FBSzs7UUFDTCxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLG9CQUFvQjs7UUFDcEIsT0FBTyxNQUFBLGdCQUFnQixDQUF3QixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsMENBQUUsb0JBQW9CLENBQUM7SUFDNUcsQ0FBQztJQU1ELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFnQjtRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0MsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7a0hBNUJRLG9CQUFvQjtzR0FBcEIsb0JBQW9CLDZMQVBuQjs7Ozs7S0FLVDs0RkFFUSxvQkFBb0I7a0JBVGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7OztLQUtUO2lCQUNKO2lLQUs2QyxjQUFjO3NCQUF2RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFHcEMsS0FBSztzQkFEUixXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzLCBUaGVCYXNlRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9kb0l0ZW1FbGVtZW50IH0gZnJvbSAnLi4vLi4vY3VzdG9tLXR5cGVzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2dldC1wbHVnaW4tb3B0aW9ucyc7XG5pbXBvcnQgeyBUb2RvSXRlbVBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3RvZG8taXRlbS5wbHVnaW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt0aGVUb2RvSXRlbV0nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCIgY2xhc3M9XCJ0b2RvLWl0ZW0tc3RhdHVzXCI+XG4gICAgICAgICAgICA8aW5wdXQgI2NoZWNrYm94IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImVsZW1lbnQuY2hlY2tlZFwiIChjbGljayk9XCJvbkNoZWNrKGNoZWNrYm94LmNoZWNrZWQpXCIgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj48c2xhdGUtY2hpbGRyZW4gW2NoaWxkcmVuXT1cImNoaWxkcmVuXCIgW2NvbnRleHRdPVwiY2hpbGRyZW5Db250ZXh0XCIgW3ZpZXdDb250ZXh0XT1cInZpZXdDb250ZXh0XCI+PC9zbGF0ZS1jaGlsZHJlbj48L3NwYW4+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBUaGVUb2RvSXRlbUNvbXBvbmVudCBleHRlbmRzIFRoZUJhc2VFbGVtZW50Q29tcG9uZW50PFRvZG9JdGVtRWxlbWVudCwgRWRpdG9yPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY2hlY2tlZDogYm9vbGVhbjtcblxuICAgIC8vIOexu+WQjSB0aGUtdGVtcC0qOiDkuLTml7bop6PlhrPlm6Dlj5dwb3J0YWzlvbHlk43moLflvI/pl67popjvvIzlkI7mnJ/mlLnlm550aGUtXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aGUtdGVtcC1jaGVjay1pdGVtJykgY2hlY2tJdGVtQ2xhc3MgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRoZS1sZXZlbCcpXG4gICAgZ2V0IGxldmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Py5pbmRlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGVkaXRhYmxlV2l0aFJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gZ2V0UGx1Z2luT3B0aW9uczxUb2RvSXRlbVBsdWdpbk9wdGlvbnM+KHRoaXMuZWRpdG9yLCBQbHVnaW5LZXlzLmNoZWNrSXRlbSk/LmVkaXRhYmxlV2l0aFJlYWRvbmx5O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBjdHhTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZSkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIG9uQ2hlY2soY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSAmJiAhdGhpcy5lZGl0YWJsZVdpdGhSZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0Tm9kZSh0aGlzLmVkaXRvciwgeyBjaGVja2VkIH0sIHRoaXMuZWxlbWVudCk7XG4gICAgfVxufVxuIl19
@@ -72,7 +72,8 @@ export const createTodoItemPlugin = createPluginFactory({
72
72
  }
73
73
  ],
74
74
  options: {
75
- allowParentTypes: [ElementKinds.tableCell, ElementKinds.blockquote]
75
+ allowParentTypes: [ElementKinds.tableCell, ElementKinds.blockquote],
76
+ editableWithReadonly: false
76
77
  }
77
78
  });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kby1pdGVtLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0ucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQWMsTUFBTSxPQUFPLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUMzRCxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFOUQsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDdEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUU3QixJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDakMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTO2FB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QixhQUFhLEVBQUUsWUFBWTtJQUMzQixZQUFZLEVBQUU7UUFDVjtZQUNJLEdBQUcsRUFBRSxZQUFZLENBQUMsU0FBUztZQUMzQixJQUFJLEVBQUUsWUFBWTtZQUNsQixJQUFJLEVBQUUsTUFBTTtZQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3hELE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQ3BEO0tBQ0o7SUFDRCxPQUFPLEVBQUU7UUFDTCxnQkFBZ0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQztLQUN0RTtDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIFJhbmdlLCBFZGl0b3IsIEVsZW1lbnQsIERlc2NlbmRhbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlVG9kb0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RvZG8taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9kb0l0ZW1FZGl0b3IgfSBmcm9tICcuL3RvZG8taXRlbS5lZGl0b3InO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGNvbnN0IHdpdGhUb2RvSXRlbSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IGluc2VydEJyZWFrLCBkZWxldGVCYWNrd2FyZCwgcmVuZGVyRWxlbWVudCB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmluc2VydEJyZWFrID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuXG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgY29uc3QgW21hdGNoXSA9IEVkaXRvci5ub2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBwYXRoXSA9IG1hdGNoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrICYmIEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciwgcGF0aCkgJiYgRWRpdG9yLmlzRW1wdHkoZWRpdG9yLCBibG9jaykpIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMuZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgUGFydGlhbDxEZXNjZW5kYW50PixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRCcmVhaygpO1xuXG4gICAgICAgIGNvbnN0IGFuY2hvckJsb2NrID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuICAgICAgICBpZiAoYW5jaG9yQmxvY2sgJiYgYW5jaG9yQmxvY2sudHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbSkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgY2hlY2tlZDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbWF0Y2g7XG5cbiAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBwYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyB0eXBlOiBFbGVtZW50S2luZHMuZGVmYXVsdCwgY2hlY2tlZDogdW5kZWZpbmVkIH0gYXMgUGFydGlhbDxEZXNjZW5kYW50Piwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuY2hlY2tJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUb2RvSXRlbUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb2RvSXRlbVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy5jaGVja0l0ZW0sXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aFRvZG9JdGVtLFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0sXG4gICAgICAgICAgICBpY29uOiAnbGlzdC1jaGVjaycsXG4gICAgICAgICAgICBuYW1lOiAn5b6F5Yqe5LqL6aG5JyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBUb2RvSXRlbUVkaXRvci5pbnNlcnRUb2RvSXRlbShlZGl0b3IpLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gVG9kb0l0ZW1FZGl0b3IuaXNBY3RpdmUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGFsbG93UGFyZW50VHlwZXM6IFtFbGVtZW50S2luZHMudGFibGVDZWxsLCBFbGVtZW50S2luZHMuYmxvY2txdW90ZV1cbiAgICB9XG59KTtcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9kby1pdGVtLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3RvZG8taXRlbS90b2RvLWl0ZW0ucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQWMsTUFBTSxPQUFPLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBTTVDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUMzRCxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFOUQsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDdEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUU3QixJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDakMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTO2FB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ekIsYUFBYSxFQUFFLFlBQVk7SUFDM0IsWUFBWSxFQUFFO1FBQ1Y7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLFNBQVM7WUFDM0IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztZQUN4RCxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUNwRDtLQUNKO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDbkUsb0JBQW9CLEVBQUUsS0FBSztLQUM5QjtDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIFJhbmdlLCBFZGl0b3IsIEVsZW1lbnQsIERlc2NlbmRhbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlVG9kb0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RvZG8taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9kb0l0ZW1FZGl0b3IgfSBmcm9tICcuL3RvZG8taXRlbS5lZGl0b3InO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUb2RvSXRlbVBsdWdpbk9wdGlvbnMge1xuICAgIGVkaXRhYmxlV2l0aFJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhUb2RvSXRlbSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IGluc2VydEJyZWFrLCBkZWxldGVCYWNrd2FyZCwgcmVuZGVyRWxlbWVudCB9ID0gZWRpdG9yO1xuXG4gICAgZWRpdG9yLmluc2VydEJyZWFrID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuXG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgY29uc3QgW21hdGNoXSA9IEVkaXRvci5ub2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBwYXRoXSA9IG1hdGNoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJsb2NrICYmIEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvciwgcGF0aCkgJiYgRWRpdG9yLmlzRW1wdHkoZWRpdG9yLCBibG9jaykpIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMuZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgUGFydGlhbDxEZXNjZW5kYW50PixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRCcmVhaygpO1xuXG4gICAgICAgIGNvbnN0IGFuY2hvckJsb2NrID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuICAgICAgICBpZiAoYW5jaG9yQmxvY2sgJiYgYW5jaG9yQmxvY2sudHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbSkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgY2hlY2tlZDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmNoZWNrSXRlbVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbWF0Y2g7XG5cbiAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yLCBwYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgeyB0eXBlOiBFbGVtZW50S2luZHMuZGVmYXVsdCwgY2hlY2tlZDogdW5kZWZpbmVkIH0gYXMgUGFydGlhbDxEZXNjZW5kYW50Piwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuY2hlY2tJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5jaGVja0l0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVUb2RvSXRlbUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb2RvSXRlbVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8VG9kb0l0ZW1QbHVnaW5PcHRpb25zPih7XG4gICAga2V5OiBQbHVnaW5LZXlzLmNoZWNrSXRlbSxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoVG9kb0l0ZW0sXG4gICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmNoZWNrSXRlbSxcbiAgICAgICAgICAgIGljb246ICdsaXN0LWNoZWNrJyxcbiAgICAgICAgICAgIG5hbWU6ICflvoXlip7kuovpobknLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IFRvZG9JdGVtRWRpdG9yLmluc2VydFRvZG9JdGVtKGVkaXRvciksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBUb2RvSXRlbUVkaXRvci5pc0FjdGl2ZShlZGl0b3IpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgYWxsb3dQYXJlbnRUeXBlczogW0VsZW1lbnRLaW5kcy50YWJsZUNlbGwsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlXSxcbiAgICAgICAgZWRpdGFibGVXaXRoUmVhZG9ubHk6IGZhbHNlXG4gICAgfVxufSk7XG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { Editor, Path } from 'slate';
2
+ import { getBlockAbove } from './get-block-above';
3
+ import * as _lodash from 'lodash';
4
+ import { anchorBlockEntry } from './anchor-block-entry';
5
+ export const getInsertElementsPath = (editor, allowParentTypes) => {
6
+ const [, anchorPath] = getBlockAbove(editor);
7
+ if (!anchorPath)
8
+ return false;
9
+ let parentEntry = Editor.above(editor, { match: n => Editor.isBlock(editor, n) && allowParentTypes.includes(n.type) });
10
+ if (!parentEntry)
11
+ return false;
12
+ const [, anchorBlockPath] = anchorBlockEntry(editor);
13
+ let currentNodePath = anchorBlockPath.slice(0, parentEntry[1].length + 1);
14
+ let illegalParentEntry = null;
15
+ // 循环获取最外层的不可插入节点
16
+ while (true) {
17
+ const _illegalParentEntry = parentEntry &&
18
+ Editor.above(editor, {
19
+ mode: 'lowest',
20
+ at: parentEntry[1],
21
+ match: (n) => n.type && !allowParentTypes.includes(n.type)
22
+ });
23
+ if (_illegalParentEntry) {
24
+ const childType = editor.nestedStructureByKey[_illegalParentEntry[0].type];
25
+ if (!childType) {
26
+ illegalParentEntry = _illegalParentEntry;
27
+ }
28
+ if (allowParentTypes.includes(childType)) {
29
+ const rootKey = findNestedStructureRootType(editor, _illegalParentEntry[0].type, '');
30
+ parentEntry =
31
+ parentEntry &&
32
+ Editor.above(editor, {
33
+ mode: 'lowest',
34
+ at: parentEntry[1],
35
+ match: (n) => n.type && n.type === rootKey
36
+ });
37
+ }
38
+ else {
39
+ parentEntry = _illegalParentEntry;
40
+ }
41
+ }
42
+ else {
43
+ break;
44
+ }
45
+ }
46
+ // 获取不可插入节点的根层节点
47
+ if (illegalParentEntry) {
48
+ const rootKey = findNestedStructureRootType(editor, illegalParentEntry[0].type, '');
49
+ if (rootKey && illegalParentEntry[0].type !== rootKey) {
50
+ illegalParentEntry = Editor.above(editor, {
51
+ mode: 'lowest',
52
+ at: parentEntry[1],
53
+ match: (n) => n.type && n.type === rootKey
54
+ });
55
+ }
56
+ currentNodePath = illegalParentEntry && illegalParentEntry[1];
57
+ }
58
+ return currentNodePath && Path.next(currentNodePath);
59
+ };
60
+ // 获取具有嵌套关系的根类型
61
+ export const findNestedStructureRootType = (editor, type, rootKey) => {
62
+ let parentKey = _lodash.findKey(editor.nestedStructureByKey, value => {
63
+ return value === type;
64
+ });
65
+ if (parentKey) {
66
+ rootKey = parentKey;
67
+ return findNestedStructureRootType(editor, parentKey, rootKey);
68
+ }
69
+ else {
70
+ return rootKey || type;
71
+ }
72
+ };
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWluc2VydC1lbGVtZW50cy1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3F1ZXJpZXMvZ2V0LWluc2VydC1lbGVtZW50cy1wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQVcsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQWlCLEVBQUUsZ0JBQTBCLEVBQUUsRUFBRTtJQUNuRixNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLFVBQVU7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM5QixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBRSxDQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hJLElBQUksQ0FBQyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFL0IsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsSUFBSSxlQUFlLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJ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T0FBTyxJQUFJLElBQUksQ0FBQztLQUMxQjtBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWRpdG9yJztcbmltcG9ydCB7IGdldEJsb2NrQWJvdmUgfSBmcm9tICcuL2dldC1ibG9jay1hYm92ZSc7XG5pbXBvcnQgKiBhcyBfbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBhbmNob3JCbG9ja0VudHJ5IH0gZnJvbSAnLi9hbmNob3ItYmxvY2stZW50cnknO1xuXG5leHBvcnQgY29uc3QgZ2V0SW5zZXJ0RWxlbWVudHNQYXRoID0gKGVkaXRvcjogVGhlRWRpdG9yLCBhbGxvd1BhcmVudFR5cGVzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IFssIGFuY2hvclBhdGhdID0gZ2V0QmxvY2tBYm92ZShlZGl0b3IpO1xuICAgIGlmICghYW5jaG9yUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBwYXJlbnRFbnRyeSA9IEVkaXRvci5hYm92ZShlZGl0b3IsIHsgbWF0Y2g6IG4gPT4gRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKSAmJiBhbGxvd1BhcmVudFR5cGVzLmluY2x1ZGVzKChuIGFzIGFueSkudHlwZSkgfSk7XG4gICAgaWYgKCFwYXJlbnRFbnRyeSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgWywgYW5jaG9yQmxvY2tQYXRoXSA9IGFuY2hvckJsb2NrRW50cnkoZWRpdG9yKTtcbiAgICBsZXQgY3VycmVudE5vZGVQYXRoID0gYW5jaG9yQmxvY2tQYXRoLnNsaWNlKDAsIHBhcmVudEVudHJ5WzFdLmxlbmd0aCArIDEpO1xuICAgIGxldCBpbGxlZ2FsUGFyZW50RW50cnkgPSBudWxsO1xuICAgIC8vIOW+queOr+iOt+WPluacgOWkluWxgueahOS4jeWPr+aPkuWFpeiKgueCuVxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGNvbnN0IF9pbGxlZ2FsUGFyZW50RW50cnkgPVxuICAgICAgICAgICAgcGFyZW50RW50cnkgJiZcbiAgICAgICAgICAgIEVkaXRvci5hYm92ZShlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBtb2RlOiAnbG93ZXN0JyxcbiAgICAgICAgICAgICAgICBhdDogcGFyZW50RW50cnlbMV0sXG4gICAgICAgICAgICAgICAgbWF0Y2g6IChuOiBFbGVtZW50KSA9PiBuLnR5cGUgJiYgIWFsbG93UGFyZW50VHlwZXMuaW5jbHVkZXMobi50eXBlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChfaWxsZWdhbFBhcmVudEVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFR5cGUgPSBlZGl0b3IubmVzdGVkU3RydWN0dXJlQnlLZXlbX2lsbGVnYWxQYXJlbnRFbnRyeVswXS50eXBlXTtcbiAgICAgICAgICAgIGlmICghY2hpbGRUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWxsZWdhbFBhcmVudEVudHJ5ID0gX2lsbGVnYWxQYXJlbnRFbnRyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhbGxvd1BhcmVudFR5cGVzLmluY2x1ZGVzKGNoaWxkVHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb290S2V5ID0gZmluZE5lc3RlZFN0cnVjdHVyZVJvb3RUeXBlKGVkaXRvciwgX2lsbGVnYWxQYXJlbnRFbnRyeVswXS50eXBlLCAnJyk7XG4gICAgICAgICAgICAgICAgcGFyZW50RW50cnkgPVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRFbnRyeSAmJlxuICAgICAgICAgICAgICAgICAgICBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAnbG93ZXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0OiBwYXJlbnRFbnRyeVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiAobjogRWxlbWVudCkgPT4gbi50eXBlICYmIG4udHlwZSA9PT0gcm9vdEtleVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50RW50cnkgPSBfaWxsZWdhbFBhcmVudEVudHJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDojrflj5bkuI3lj6/mj5LlhaXoioLngrnnmoTmoLnlsYLoioLngrlcbiAgICBpZiAoaWxsZWdhbFBhcmVudEVudHJ5KSB7XG4gICAgICAgIGNvbnN0IHJvb3RLZXkgPSBmaW5kTmVzdGVkU3RydWN0dXJlUm9vdFR5cGUoZWRpdG9yLCBpbGxlZ2FsUGFyZW50RW50cnlbMF0udHlwZSwgJycpO1xuICAgICAgICBpZiAocm9vdEtleSAmJiBpbGxlZ2FsUGFyZW50RW50cnlbMF0udHlwZSAhPT0gcm9vdEtleSkge1xuICAgICAgICAgICAgaWxsZWdhbFBhcmVudEVudHJ5ID0gRWRpdG9yLmFib3ZlKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1vZGU6ICdsb3dlc3QnLFxuICAgICAgICAgICAgICAgIGF0OiBwYXJlbnRFbnRyeVsxXSxcbiAgICAgICAgICAgICAgICBtYXRjaDogKG46IEVsZW1lbnQpID0+IG4udHlwZSAmJiBuLnR5cGUgPT09IHJvb3RLZXlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnROb2RlUGF0aCA9IGlsbGVnYWxQYXJlbnRFbnRyeSAmJiBpbGxlZ2FsUGFyZW50RW50cnlbMV07XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50Tm9kZVBhdGggJiYgUGF0aC5uZXh0KGN1cnJlbnROb2RlUGF0aCk7XG59O1xuXG4vLyDojrflj5blhbfmnInltYzlpZflhbPns7vnmoTmoLnnsbvlnotcbmV4cG9ydCBjb25zdCBmaW5kTmVzdGVkU3RydWN0dXJlUm9vdFR5cGUgPSAoZWRpdG9yOiBUaGVFZGl0b3IsIHR5cGU6IHN0cmluZywgcm9vdEtleTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBsZXQgcGFyZW50S2V5ID0gX2xvZGFzaC5maW5kS2V5KGVkaXRvci5uZXN0ZWRTdHJ1Y3R1cmVCeUtleSwgdmFsdWUgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHR5cGU7XG4gICAgfSk7XG4gICAgaWYgKHBhcmVudEtleSkge1xuICAgICAgICByb290S2V5ID0gcGFyZW50S2V5O1xuICAgICAgICByZXR1cm4gZmluZE5lc3RlZFN0cnVjdHVyZVJvb3RUeXBlKGVkaXRvciwgcGFyZW50S2V5LCByb290S2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcm9vdEtleSB8fCB0eXBlO1xuICAgIH1cbn07XG4iXX0=
@@ -50,7 +50,7 @@ import { getSelectionMarks } from './get-selection-marks';
50
50
  import { isContainer } from './is-container-type';
51
51
  import { getContainerBlocks } from './get-container-blocks';
52
52
  import { getDirectlyParent } from './get-directly-parent';
53
- import { isTypesInParent } from './is-types-in-parent';
53
+ import { getInsertElementsPath } from './get-insert-elements-path';
54
54
  import { isContainNestedType } from './is-contain-nested-type';
55
- export { getLastNode, getAnchorBlockEntry, getAboveByType, getNodes, getNodesByType, getBlockAbove, getPreviousPath, getNode, getParent, getLastChild, getLastChildPath, getNextSiblingNodes, getAbove, getPointBefore, getSelectionNodesByType, getText, getPointFromLocation, getRangeFromBlockStart, getRangeBefore, getBlockCardCenterCursor, getBlockCardAbove, getPlainText, getSelectionMarks, getContainerBlocks, getDirectlyParent, isAncestor, isCollapsed, isEmptyParagraph, isParagraph, isBlockActive, isIncludeTypes, isAncestorEmpty, isBlockAboveEmpty, isNodeTypeIn, isFirstChild, isPointAtRoot, isRangeAtRoot, isBlockTextEmptyAfterSelection, isStart, isRangeAcrossBlocks, isDescendant, isNodeType, isAcrossBlocks, isBlockCardCursor, isEmptyParagraphByPath, isContainer, isTypesInParent, isContainNestedType, anchorBlock, anchorBlockEntry, anchorInlineEntry, findPath, findNode, findDescendant, someNode };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENB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LHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFlBQVksRUFDWixhQUFhLEVBQ2IsYUFBYSxFQUNiLDhCQUE4QixFQUM5QixPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixVQUFVLEVBQ1YsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFFBQVEsRUFDUixjQUFjLEVBQ2QsUUFBUSxFQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMYXN0Tm9kZSB9IGZyb20gJy4vZ2V0LWxhc3Qtbm9kZSc7XG5pbXBvcnQgeyBpc0FuY2VzdG9yIH0gZnJvbSAnLi9pcy1hbmNlc3Rvcic7XG5pbXBvcnQgeyBpc0NvbGxhcHNlZCB9IGZyb20gJy4vaXMtY29sbGFwc2VkJztcbmltcG9ydCB7IGdldEFuY2hvckJsb2NrRW50cnkgfSBmcm9tICcuL2dldC1hbmNob3ItYmxvY2stZW50cnknO1xuaW1wb3J0IHsgaXNFbXB0eVBhcmFncmFwaCB9IGZyb20gJy4vaXMtZW1wdHktcGFyYWdyYXBoJztcbmltcG9ydCB7IGlzUGFyYWdyYXBoIH0gZnJvbSAnLi9pcy1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgaXNCbG9ja0FjdGl2ZSB9IGZyb20gJy4vaXMtYmxvY2stYWN0aXZlJztcbmltcG9ydCB7IGlzSW5jbHVkZVR5cGVzIH0gZnJvbSAnLi9pcy1pbmNsdWRlLXR5cGVzJztcbmltcG9ydCB7IGdldEFib3ZlQnlUeXBlIH0gZnJvbSAnLi9nZXQtYWJvdmUtYnktdHlwZSc7XG5pbXBvcnQgeyBhbmNob3JCbG9ja0VudHJ5IH0gZnJvbSAnLi9hbmNob3ItYmxvY2stZW50cnknO1xuaW1wb3J0IHsgZ2V0Tm9kZXNCeVR5cGUgfSBmcm9tICcuL2dldC1ub2Rlcy1ieS10eXBlJztcbmltcG9ydCB7IGdldE5vZGVzIH0gZnJvbSAnLi9nZXQtbm9kZXMnO1xuaW1wb3J0IHsgYW5jaG9yQmxvY2sgfSBmcm9tICcuL2FuY2hvci1ibG9jayc7XG5pbXBvcnQgeyBnZXRCbG9ja0Fib3ZlIH0gZnJvbSAnLi9nZXQtYmxvY2stYWJvdmUnO1xuaW1wb3J0IHsgaXNBbmNlc3RvckVtcHR5IH0gZnJvbSAnLi9pcy1hbmNlc3Rvci1lbXB0eSc7XG5pbXBvcnQgeyBpc0Jsb2NrQWJvdmVFbXB0eSB9IGZyb20gJy4vaXMtYmxvY2stYWJvdmUtZW1wdHknO1xuaW1wb3J0IHsgaXNOb2RlVHlwZUluIH0gZnJvbSAnLi9pcy1ub2RlLXR5cGUtaW4nO1xuaW1wb3J0IHsgaXNGaXJzdENoaWxkIH0gZnJvbSAnLi9pcy1maXJzdC1jaGlsZCc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1BhdGggfSBmcm9tICcuL2dldC1wcmV2aW91cy1wYXRoJztcbmltcG9ydCB7IGdldE5vZGUgfSBmcm9tICcuL2dldC1ub2RlJztcbmltcG9ydCB7IGdldFBhcmVudCB9IGZyb20gJy4vZ2V0LXBhcmVudCc7XG5pbXBvcnQgeyBmaW5kUGF0aCB9IGZyb20gJy4vZmluZC1wYXRoJztcbmltcG9ydCB7IGZpbmROb2RlIH0gZnJvbSAnLi9maW5kLW5vZGUnO1xuaW1wb3J0IHsgZmluZERlc2NlbmRhbnQgfSBmcm9tICcuL2ZpbmQtZGVzY2VuZGFudCc7XG5pbXBvcnQgeyBnZXRMYXN0Q2hpbGRQYXRoLCBnZXRMYXN0Q2hpbGQgfSBmcm9tICcuL2dldC1sYXN0LWNoaWxkLXBhdGgnO1xuaW1wb3J0IHsgaXNQb2ludEF0Um9vdCB9IGZyb20gJy4vaXMtcG9pbnQtYXQtcm9vdCc7XG5pbXBvcnQgeyBpc1JhbmdlQXRSb290IH0gZnJvbSAnLi9pcy1yYW5nZS1hdC1yb290JztcbmltcG9ydCB7IGdldE5leHRTaWJsaW5nTm9kZXMgfSBmcm9tICcuL2dldC1uZXh0LXNpYmxpbmctbm9kZXMnO1xuaW1wb3J0IHsgaXNCbG9ja1RleHRFbXB0eUFmdGVyU2VsZWN0aW9uIH0gZnJvbSAnLi9pcy1ibG9jay10ZXh0LWVtcHR5LWFmdGVyLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBnZXRBYm92ZSB9IGZyb20gJy4vZ2V0LWFib3ZlJztcbmltcG9ydCB7IGlzU3RhcnQgfSBmcm9tICcuL2lzLXN0YXJ0JztcbmltcG9ydCB7IGlzUmFuZ2VBY3Jvc3NCbG9ja3MgfSBmcm9tICcuL2lzLXJhbmdlLWFjcm9zcy1ibG9ja3MnO1xuaW1wb3J0IHsgc29tZU5vZGUgfSBmcm9tICcuL3NvbWUtbm9kZSc7XG5pbXBvcnQgeyBpc0Rlc2NlbmRhbnQgfSBmcm9tICcuL2lzLWRlc2NlbmRhbnQnO1xuaW1wb3J0IHsgaXNOb2RlVHlwZSB9IGZyb20gJy4vaXMtbm9kZS10eXBlJztcbmltcG9ydCB7IGFuY2hvcklubGluZUVudHJ5IH0gZnJvbSAnLi9hbmNob3ItaW5saW5lLWVudHJ5JztcbmltcG9ydCB7IGdldFBvaW50QmVmb3JlIH0gZnJvbSAnLi9nZXQtcG9pbnQtYmVmb3JlJztcbmltcG9ydCB7IGdldFNlbGVjdGlvbk5vZGVzQnlUeXBlIH0gZnJvbSAnLi9nZXQtc2VsZWN0aW9uLW5vZGVzLWJ5LXR5cGUnO1xuaW1wb3J0IHsgaXNBY3Jvc3NCbG9ja3MgfSBmcm9tICcuL2lzLWFjcm9zcy1ibG9ja3MnO1xuaW1wb3J0IHsgZ2V0VGV4dCB9IGZyb20gJy4vZ2V0LXRleHQnO1xuaW1wb3J0IHsgZ2V0UG9pbnRGcm9tTG9jYXRpb24gfSBmcm9tICcuL2dldC1wb2ludC1mcm9tLWxvY2F0aW9uJztcbmltcG9ydCB7IGdldFJhbmdlRnJvbUJsb2NrU3RhcnQgfSBmcm9tICcuL2dldC1yYW5nLWZyb20tYmxvY2stc3RhcnQnO1xuaW1wb3J0IHsgZ2V0UmFuZ2VCZWZvcmUgfSBmcm9tICcuL2dldC1yYW5nZS1iZWZvcmUnO1xuaW1wb3J0IHsgaXNCbG9ja0NhcmRDdXJzb3IgfSBmcm9tICcuL2lzLWJsb2NrLWNhcmQtY3Vyc29yJztcbmltcG9ydCB7IGdldEJsb2NrQ2FyZENlbnRlckN1cnNvciB9IGZyb20gJy4vZ2V0LWJsb2NrLWNhcmQtY3Vyc29yJztcbmltcG9ydCB7IGdldEJsb2NrQ2FyZEFib3ZlIH0gZnJvbSAnLi9nZXQtYmxvY2stY2FyZC1hYm92ZSc7XG5pbXBvcnQgeyBnZXRQbGFpblRleHQgfSBmcm9tICcuL2dldC1wbGFpbi10ZXh0JztcbmltcG9ydCB7IGlzRW1wdHlQYXJhZ3JhcGhCeVBhdGggfSBmcm9tICcuL2lzLWVtcHR5LXBhcmFncmFwaC1ieS1wYXRoJztcbmltcG9ydCB7IGdldFNlbGVjdGlvbk1hcmtzIH0gZnJvbSAnLi9nZXQtc2VsZWN0aW9uLW1hcmtzJztcbmltcG9ydCB7IGlzQ29udGFpbmVyIH0gZnJvbSAnLi9pcy1jb250YWluZXItdHlwZSc7XG5pbXBvcnQgeyBnZXRDb250YWluZXJCbG9ja3MgfSBmcm9tICcuL2dldC1jb250YWluZXItYmxvY2tzJztcbmltcG9ydCB7IGdldERpcmVjdGx5UGFyZW50IH0gZnJvbSAnLi9nZXQtZGlyZWN0bHktcGFyZW50JztcbmltcG9ydCB7IGlzVHlwZXNJblBhcmVudCB9IGZyb20gJy4vaXMtdHlwZXMtaW4tcGFyZW50JztcbmltcG9ydCB7IGlzQ29udGFpbk5lc3RlZFR5cGUgfSBmcm9tICcuL2lzLWNvbnRhaW4tbmVzdGVkLXR5cGUnO1xuXG5leHBvcnQge1xuICAgIGdldExhc3ROb2RlLFxuICAgIGdldEFuY2hvckJsb2NrRW50cnksXG4gICAgZ2V0QWJvdmVCeVR5cGUsXG4gICAgZ2V0Tm9kZXMsXG4gICAgZ2V0Tm9kZXNCeVR5cGUsXG4gICAgZ2V0QmxvY2tBYm92ZSxcbiAgICBnZXRQcmV2aW91c1BhdGgsXG4gICAgZ2V0Tm9kZSxcbiAgICBnZXRQYXJlbnQsXG4gICAgZ2V0TGFzdENoaWxkLFxuICAgIGdldExhc3RDaGlsZFBhdGgsXG4gICAgZ2V0TmV4dFNpYmxpbmdOb2RlcyxcbiAgICBnZXRBYm92ZSxcbiAgICBnZXRQb2ludEJlZm9yZSxcbiAgICBnZXRTZWxlY3Rpb25Ob2Rlc0J5VHlwZSxcbiAgICBnZXRUZXh0LFxuICAgIGdldFBvaW50RnJvbUxvY2F0aW9uLFxuICAgIGdldFJhbmdlRnJvbUJsb2NrU3RhcnQsXG4gICAgZ2V0UmFuZ2VCZWZvcmUsXG4gICAgZ2V0QmxvY2tDYXJkQ2VudGVyQ3Vyc29yLFxuICAgIGdldEJsb2NrQ2FyZEFib3ZlLFxuICAgIGdldFBsYWluVGV4dCxcbiAgICBnZXRTZWxlY3Rpb25NYXJrcyxcbiAgICBnZXRDb250YWluZXJCbG9ja3MsXG4gICAgZ2V0RGlyZWN0bHlQYXJlbnQsXG4gICAgaXNBbmNlc3RvcixcbiAgICBpc0NvbGxhcHNlZCxcbiAgICBpc0VtcHR5UGFyYWdyYXBoLFxuICAgIGlzUGFyYWdyYXBoLFxuICAgIGlzQmxvY2tBY3RpdmUsXG4gICAgaXNJbmNsdWRlVHlwZXMsXG4gICAgaXNBbmNlc3RvckVtcHR5LFxuICAgIGlzQmxvY2tBYm92ZUVtcHR5LFxuICAgIGlzTm9kZVR5cGVJbixcbiAgICBpc0ZpcnN0Q2hpbGQsXG4gICAgaXNQb2ludEF0Um9vdCxcbiAgICBpc1JhbmdlQXRSb290LFxuICAgIGlzQmxvY2tUZXh0RW1wdHlBZnRlclNlbGVjdGlvbixcbiAgICBpc1N0YXJ0LFxuICAgIGlzUmFuZ2VBY3Jvc3NCbG9ja3MsXG4gICAgaXNEZXNjZW5kYW50LFxuICAgIGlzTm9kZVR5cGUsXG4gICAgaXNBY3Jvc3NCbG9ja3MsXG4gICAgaXNCbG9ja0NhcmRDdXJzb3IsXG4gICAgaXNFbXB0eVBhcmFncmFwaEJ5UGF0aCxcbiAgICBpc0NvbnRhaW5lcixcbiAgICBpc1R5cGVzSW5QYXJlbnQsXG4gICAgaXNDb250YWluTmVzdGVkVHlwZSxcbiAgICBhbmNob3JCbG9jayxcbiAgICBhbmNob3JCbG9ja0VudHJ5LFxuICAgIGFuY2hvcklubGluZUVudHJ5LFxuICAgIGZpbmRQYXRoLFxuICAgIGZpbmROb2RlLFxuICAgIGZpbmREZXNjZW5kYW50LFxuICAgIHNvbWVOb2RlXG59O1xuIl19
55
+ export { getLastNode, getAnchorBlockEntry, getAboveByType, getNodes, getNodesByType, getBlockAbove, getPreviousPath, getNode, getParent, getLastChild, getLastChildPath, getNextSiblingNodes, getAbove, getPointBefore, getSelectionNodesByType, getText, getPointFromLocation, getRangeFromBlockStart, getRangeBefore, getBlockCardCenterCursor, getBlockCardAbove, getPlainText, getSelectionMarks, getContainerBlocks, getDirectlyParent, isAncestor, isCollapsed, isEmptyParagraph, isParagraph, isBlockActive, isIncludeTypes, isAncestorEmpty, isBlockAboveEmpty, isNodeTypeIn, isFirstChild, isPointAtRoot, isRangeAtRoot, isBlockTextEmptyAfterSelection, isStart, isRangeAcrossBlocks, isDescendant, isNodeType, isAcrossBlocks, isBlockCardCursor, isEmptyParagraphByPath, isContainer, getInsertElementsPath, isContainNestedType, anchorBlock, anchorBlockEntry, anchorInlineEntry, findPath, findNode, findDescendant, someNode };
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcXVlcmllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENB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Q2Qsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEVBQ2QsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osWUFBWSxFQUNaLGFBQWEsRUFDYixhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLFVBQVUsRUFDVixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExhc3ROb2RlIH0gZnJvbSAnLi9nZXQtbGFzdC1ub2RlJztcbmltcG9ydCB7IGlzQW5jZXN0b3IgfSBmcm9tICcuL2lzLWFuY2VzdG9yJztcbmltcG9ydCB7IGlzQ29sbGFwc2VkIH0gZnJvbSAnLi9pcy1jb2xsYXBzZWQnO1xuaW1wb3J0IHsgZ2V0QW5jaG9yQmxvY2tFbnRyeSB9IGZyb20gJy4vZ2V0LWFuY2hvci1ibG9jay1lbnRyeSc7XG5pbXBvcnQgeyBpc0VtcHR5UGFyYWdyYXBoIH0gZnJvbSAnLi9pcy1lbXB0eS1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgaXNQYXJhZ3JhcGggfSBmcm9tICcuL2lzLXBhcmFncmFwaCc7XG5pbXBvcnQgeyBpc0Jsb2NrQWN0aXZlIH0gZnJvbSAnLi9pcy1ibG9jay1hY3RpdmUnO1xuaW1wb3J0IHsgaXNJbmNsdWRlVHlwZXMgfSBmcm9tICcuL2lzLWluY2x1ZGUtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0QWJvdmVCeVR5cGUgfSBmcm9tICcuL2dldC1hYm92ZS1ieS10eXBlJztcbmltcG9ydCB7IGFuY2hvckJsb2NrRW50cnkgfSBmcm9tICcuL2FuY2hvci1ibG9jay1lbnRyeSc7XG5pbXBvcnQgeyBnZXROb2Rlc0J5VHlwZSB9IGZyb20gJy4vZ2V0LW5vZGVzLWJ5LXR5cGUnO1xuaW1wb3J0IHsgZ2V0Tm9kZXMgfSBmcm9tICcuL2dldC1ub2Rlcyc7XG5pbXBvcnQgeyBhbmNob3JCbG9jayB9IGZyb20gJy4vYW5jaG9yLWJsb2NrJztcbmltcG9ydCB7IGdldEJsb2NrQWJvdmUgfSBmcm9tICcuL2dldC1ibG9jay1hYm92ZSc7XG5pbXBvcnQgeyBpc0FuY2VzdG9yRW1wdHkgfSBmcm9tICcuL2lzLWFuY2VzdG9yLWVtcHR5JztcbmltcG9ydCB7IGlzQmxvY2tBYm92ZUVtcHR5IH0gZnJvbSAnLi9pcy1ibG9jay1hYm92ZS1lbXB0eSc7XG5pbXBvcnQgeyBpc05vZGVUeXBlSW4gfSBmcm9tICcuL2lzLW5vZGUtdHlwZS1pbic7XG5pbXBvcnQgeyBpc0ZpcnN0Q2hpbGQgfSBmcm9tICcuL2lzLWZpcnN0LWNoaWxkJztcbmltcG9ydCB7IGdldFByZXZpb3VzUGF0aCB9IGZyb20gJy4vZ2V0LXByZXZpb3VzLXBhdGgnO1xuaW1wb3J0IHsgZ2V0Tm9kZSB9IGZyb20gJy4vZ2V0LW5vZGUnO1xuaW1wb3J0IHsgZ2V0UGFyZW50IH0gZnJvbSAnLi9nZXQtcGFyZW50JztcbmltcG9ydCB7IGZpbmRQYXRoIH0gZnJvbSAnLi9maW5kLXBhdGgnO1xuaW1wb3J0IHsgZmluZE5vZGUgfSBmcm9tICcuL2ZpbmQtbm9kZSc7XG5pbXBvcnQgeyBmaW5kRGVzY2VuZGFudCB9IGZyb20gJy4vZmluZC1kZXNjZW5kYW50JztcbmltcG9ydCB7IGdldExhc3RDaGlsZFBhdGgsIGdldExhc3RDaGlsZCB9IGZyb20gJy4vZ2V0LWxhc3QtY2hpbGQtcGF0aCc7XG5pbXBvcnQgeyBpc1BvaW50QXRSb290IH0gZnJvbSAnLi9pcy1wb2ludC1hdC1yb290JztcbmltcG9ydCB7IGlzUmFuZ2VBdFJvb3QgfSBmcm9tICcuL2lzLXJhbmdlLWF0LXJvb3QnO1xuaW1wb3J0IHsgZ2V0TmV4dFNpYmxpbmdOb2RlcyB9IGZyb20gJy4vZ2V0LW5leHQtc2libGluZy1ub2Rlcyc7XG5pbXBvcnQgeyBpc0Jsb2NrVGV4dEVtcHR5QWZ0ZXJTZWxlY3Rpb24gfSBmcm9tICcuL2lzLWJsb2NrLXRleHQtZW1wdHktYWZ0ZXItc2VsZWN0aW9uJztcbmltcG9ydCB7IGdldEFib3ZlIH0gZnJvbSAnLi9nZXQtYWJvdmUnO1xuaW1wb3J0IHsgaXNTdGFydCB9IGZyb20gJy4vaXMtc3RhcnQnO1xuaW1wb3J0IHsgaXNSYW5nZUFjcm9zc0Jsb2NrcyB9IGZyb20gJy4vaXMtcmFuZ2UtYWNyb3NzLWJsb2Nrcyc7XG5pbXBvcnQgeyBzb21lTm9kZSB9IGZyb20gJy4vc29tZS1ub2RlJztcbmltcG9ydCB7IGlzRGVzY2VuZGFudCB9IGZyb20gJy4vaXMtZGVzY2VuZGFudCc7XG5pbXBvcnQgeyBpc05vZGVUeXBlIH0gZnJvbSAnLi9pcy1ub2RlLXR5cGUnO1xuaW1wb3J0IHsgYW5jaG9ySW5saW5lRW50cnkgfSBmcm9tICcuL2FuY2hvci1pbmxpbmUtZW50cnknO1xuaW1wb3J0IHsgZ2V0UG9pbnRCZWZvcmUgfSBmcm9tICcuL2dldC1wb2ludC1iZWZvcmUnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0aW9uTm9kZXNCeVR5cGUgfSBmcm9tICcuL2dldC1zZWxlY3Rpb24tbm9kZXMtYnktdHlwZSc7XG5pbXBvcnQgeyBpc0Fjcm9zc0Jsb2NrcyB9IGZyb20gJy4vaXMtYWNyb3NzLWJsb2Nrcyc7XG5pbXBvcnQgeyBnZXRUZXh0IH0gZnJvbSAnLi9nZXQtdGV4dCc7XG5pbXBvcnQgeyBnZXRQb2ludEZyb21Mb2NhdGlvbiB9IGZyb20gJy4vZ2V0LXBvaW50LWZyb20tbG9jYXRpb24nO1xuaW1wb3J0IHsgZ2V0UmFuZ2VGcm9tQmxvY2tTdGFydCB9IGZyb20gJy4vZ2V0LXJhbmctZnJvbS1ibG9jay1zdGFydCc7XG5pbXBvcnQgeyBnZXRSYW5nZUJlZm9yZSB9IGZyb20gJy4vZ2V0LXJhbmdlLWJlZm9yZSc7XG5pbXBvcnQgeyBpc0Jsb2NrQ2FyZEN1cnNvciB9IGZyb20gJy4vaXMtYmxvY2stY2FyZC1jdXJzb3InO1xuaW1wb3J0IHsgZ2V0QmxvY2tDYXJkQ2VudGVyQ3Vyc29yIH0gZnJvbSAnLi9nZXQtYmxvY2stY2FyZC1jdXJzb3InO1xuaW1wb3J0IHsgZ2V0QmxvY2tDYXJkQWJvdmUgfSBmcm9tICcuL2dldC1ibG9jay1jYXJkLWFib3ZlJztcbmltcG9ydCB7IGdldFBsYWluVGV4dCB9IGZyb20gJy4vZ2V0LXBsYWluLXRleHQnO1xuaW1wb3J0IHsgaXNFbXB0eVBhcmFncmFwaEJ5UGF0aCB9IGZyb20gJy4vaXMtZW1wdHktcGFyYWdyYXBoLWJ5LXBhdGgnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0aW9uTWFya3MgfSBmcm9tICcuL2dldC1zZWxlY3Rpb24tbWFya3MnO1xuaW1wb3J0IHsgaXNDb250YWluZXIgfSBmcm9tICcuL2lzLWNvbnRhaW5lci10eXBlJztcbmltcG9ydCB7IGdldENvbnRhaW5lckJsb2NrcyB9IGZyb20gJy4vZ2V0LWNvbnRhaW5lci1ibG9ja3MnO1xuaW1wb3J0IHsgZ2V0RGlyZWN0bHlQYXJlbnQgfSBmcm9tICcuL2dldC1kaXJlY3RseS1wYXJlbnQnO1xuaW1wb3J0IHsgZ2V0SW5zZXJ0RWxlbWVudHNQYXRoIH0gZnJvbSAnLi9nZXQtaW5zZXJ0LWVsZW1lbnRzLXBhdGgnO1xuaW1wb3J0IHsgaXNDb250YWluTmVzdGVkVHlwZSB9IGZyb20gJy4vaXMtY29udGFpbi1uZXN0ZWQtdHlwZSc7XG5cbmV4cG9ydCB7XG4gICAgZ2V0TGFzdE5vZGUsXG4gICAgZ2V0QW5jaG9yQmxvY2tFbnRyeSxcbiAgICBnZXRBYm92ZUJ5VHlwZSxcbiAgICBnZXROb2RlcyxcbiAgICBnZXROb2Rlc0J5VHlwZSxcbiAgICBnZXRCbG9ja0Fib3ZlLFxuICAgIGdldFByZXZpb3VzUGF0aCxcbiAgICBnZXROb2RlLFxuICAgIGdldFBhcmVudCxcbiAgICBnZXRMYXN0Q2hpbGQsXG4gICAgZ2V0TGFzdENoaWxkUGF0aCxcbiAgICBnZXROZXh0U2libGluZ05vZGVzLFxuICAgIGdldEFib3ZlLFxuICAgIGdldFBvaW50QmVmb3JlLFxuICAgIGdldFNlbGVjdGlvbk5vZGVzQnlUeXBlLFxuICAgIGdldFRleHQsXG4gICAgZ2V0UG9pbnRGcm9tTG9jYXRpb24sXG4gICAgZ2V0UmFuZ2VGcm9tQmxvY2tTdGFydCxcbiAgICBnZXRSYW5nZUJlZm9yZSxcbiAgICBnZXRCbG9ja0NhcmRDZW50ZXJDdXJzb3IsXG4gICAgZ2V0QmxvY2tDYXJkQWJvdmUsXG4gICAgZ2V0UGxhaW5UZXh0LFxuICAgIGdldFNlbGVjdGlvbk1hcmtzLFxuICAgIGdldENvbnRhaW5lckJsb2NrcyxcbiAgICBnZXREaXJlY3RseVBhcmVudCxcbiAgICBpc0FuY2VzdG9yLFxuICAgIGlzQ29sbGFwc2VkLFxuICAgIGlzRW1wdHlQYXJhZ3JhcGgsXG4gICAgaXNQYXJhZ3JhcGgsXG4gICAgaXNCbG9ja0FjdGl2ZSxcbiAgICBpc0luY2x1ZGVUeXBlcyxcbiAgICBpc0FuY2VzdG9yRW1wdHksXG4gICAgaXNCbG9ja0Fib3ZlRW1wdHksXG4gICAgaXNOb2RlVHlwZUluLFxuICAgIGlzRmlyc3RDaGlsZCxcbiAgICBpc1BvaW50QXRSb290LFxuICAgIGlzUmFuZ2VBdFJvb3QsXG4gICAgaXNCbG9ja1RleHRFbXB0eUFmdGVyU2VsZWN0aW9uLFxuICAgIGlzU3RhcnQsXG4gICAgaXNSYW5nZUFjcm9zc0Jsb2NrcyxcbiAgICBpc0Rlc2NlbmRhbnQsXG4gICAgaXNOb2RlVHlwZSxcbiAgICBpc0Fjcm9zc0Jsb2NrcyxcbiAgICBpc0Jsb2NrQ2FyZEN1cnNvcixcbiAgICBpc0VtcHR5UGFyYWdyYXBoQnlQYXRoLFxuICAgIGlzQ29udGFpbmVyLFxuICAgIGdldEluc2VydEVsZW1lbnRzUGF0aCxcbiAgICBpc0NvbnRhaW5OZXN0ZWRUeXBlLFxuICAgIGFuY2hvckJsb2NrLFxuICAgIGFuY2hvckJsb2NrRW50cnksXG4gICAgYW5jaG9ySW5saW5lRW50cnksXG4gICAgZmluZFBhdGgsXG4gICAgZmluZE5vZGUsXG4gICAgZmluZERlc2NlbmRhbnQsXG4gICAgc29tZU5vZGVcbn07XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { setMarks } from './set-marks';
2
2
  import { clearMarks } from './clear-marks';
3
- import { insertElement } from './insert-element';
4
- import { insertElementNext } from './insert-element-next';
3
+ import { insertElements } from './insert-elements';
5
4
  import { setNode } from './set-node';
6
5
  import { unwrapNodesByType } from './unwrap-nodes-by-type';
7
6
  import { onKeyDownResetBlockType } from './on-keydown-reset-block-type';
@@ -16,5 +15,5 @@ import { setEndSelection } from './set-end-selection';
16
15
  import { closeConversionHint } from './close-conversion-hint';
17
16
  import { handleContinualDeleteBackward } from './handle-continual-delete-backward';
18
17
  import { handleContinualInsertBreak } from './handle-continual-insert-break';
19
- export { setMarks, clearMarks, insertElement, insertElementNext, insertParagraph, setNode, unwrapNodesByType, onKeyDownResetBlockType, moveChildren, applyDeepToNodes, mergeDeepToNodes, unWrap, splitNode, deleteElement, setEndSelection, closeConversionHint, handleContinualDeleteBackward, handleContinualInsertBreak };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdHJhbnNmb3Jtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFVBQVUsRUFDVixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldE1hcmtzIH0gZnJvbSAnLi9zZXQtbWFya3MnO1xuaW1wb3J0IHsgY2xlYXJNYXJrcyB9IGZyb20gJy4vY2xlYXItbWFya3MnO1xuaW1wb3J0IHsgaW5zZXJ0RWxlbWVudCB9IGZyb20gJy4vaW5zZXJ0LWVsZW1lbnQnO1xuaW1wb3J0IHsgaW5zZXJ0RWxlbWVudE5leHQgfSBmcm9tICcuL2luc2VydC1lbGVtZW50LW5leHQnO1xuaW1wb3J0IHsgc2V0Tm9kZSB9IGZyb20gJy4vc2V0LW5vZGUnO1xuaW1wb3J0IHsgdW53cmFwTm9kZXNCeVR5cGUgfSBmcm9tICcuL3Vud3JhcC1ub2Rlcy1ieS10eXBlJztcbmltcG9ydCB7IG9uS2V5RG93blJlc2V0QmxvY2tUeXBlIH0gZnJvbSAnLi9vbi1rZXlkb3duLXJlc2V0LWJsb2NrLXR5cGUnO1xuaW1wb3J0IHsgbW92ZUNoaWxkcmVuIH0gZnJvbSAnLi9tb3ZlLWNoaWxkcmVuJztcbmltcG9ydCB7IGluc2VydFBhcmFncmFwaCB9IGZyb20gJy4vaW5zZXJ0LXBhcmFncmFwaCc7XG5pbXBvcnQgeyBhcHBseURlZXBUb05vZGVzIH0gZnJvbSAnLi9hcHBseS1kZWVwLXRvLW5vZGVzJztcbmltcG9ydCB7IG1lcmdlRGVlcFRvTm9kZXMgfSBmcm9tICcuL21lcmdlLWRlZXAtdG8tbm9kZXMnO1xuaW1wb3J0IHsgdW5XcmFwIH0gZnJvbSAnLi91bi13cmFwJztcbmltcG9ydCB7IHNwbGl0Tm9kZSB9IGZyb20gJy4vc3BsaXQtbm9kZSc7XG5pbXBvcnQgeyBkZWxldGVFbGVtZW50IH0gZnJvbSAnLi9kZWxldGUtZWxlbWVudCc7XG5pbXBvcnQgeyBzZXRFbmRTZWxlY3Rpb24gfSBmcm9tICcuL3NldC1lbmQtc2VsZWN0aW9uJztcbmltcG9ydCB7IGNsb3NlQ29udmVyc2lvbkhpbnQgfSBmcm9tICcuL2Nsb3NlLWNvbnZlcnNpb24taGludCc7XG5pbXBvcnQgeyBoYW5kbGVDb250aW51YWxEZWxldGVCYWNrd2FyZCB9IGZyb20gJy4vaGFuZGxlLWNvbnRpbnVhbC1kZWxldGUtYmFja3dhcmQnO1xuaW1wb3J0IHsgaGFuZGxlQ29udGludWFsSW5zZXJ0QnJlYWsgfSBmcm9tICcuL2hhbmRsZS1jb250aW51YWwtaW5zZXJ0LWJyZWFrJztcblxuZXhwb3J0IHtcbiAgICBzZXRNYXJrcyxcbiAgICBjbGVhck1hcmtzLFxuICAgIGluc2VydEVsZW1lbnQsXG4gICAgaW5zZXJ0RWxlbWVudE5leHQsXG4gICAgaW5zZXJ0UGFyYWdyYXBoLFxuICAgIHNldE5vZGUsXG4gICAgdW53cmFwTm9kZXNCeVR5cGUsXG4gICAgb25LZXlEb3duUmVzZXRCbG9ja1R5cGUsXG4gICAgbW92ZUNoaWxkcmVuLFxuICAgIGFwcGx5RGVlcFRvTm9kZXMsXG4gICAgbWVyZ2VEZWVwVG9Ob2RlcyxcbiAgICB1bldyYXAsXG4gICAgc3BsaXROb2RlLFxuICAgIGRlbGV0ZUVsZW1lbnQsXG4gICAgc2V0RW5kU2VsZWN0aW9uLFxuICAgIGNsb3NlQ29udmVyc2lvbkhpbnQsXG4gICAgaGFuZGxlQ29udGludWFsRGVsZXRlQmFja3dhcmQsXG4gICAgaGFuZGxlQ29udGludWFsSW5zZXJ0QnJlYWtcbn07XG4iXX0=
18
+ export { setMarks, clearMarks, insertElements, insertParagraph, setNode, unwrapNodesByType, onKeyDownResetBlockType, moveChildren, applyDeepToNodes, mergeDeepToNodes, unWrap, splitNode, deleteElement, setEndSelection, closeConversionHint, handleContinualDeleteBackward, handleContinualInsertBreak };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdHJhbnNmb3Jtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQ0gsUUFBUSxFQUNSLFVBQVUsRUFDVixjQUFjLEVBQ2QsZUFBZSxFQUNmLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixTQUFTLEVBQ1QsYUFBYSxFQUNiLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0TWFya3MgfSBmcm9tICcuL3NldC1tYXJrcyc7XG5pbXBvcnQgeyBjbGVhck1hcmtzIH0gZnJvbSAnLi9jbGVhci1tYXJrcyc7XG5pbXBvcnQgeyBpbnNlcnRFbGVtZW50cyB9IGZyb20gJy4vaW5zZXJ0LWVsZW1lbnRzJztcbmltcG9ydCB7IHNldE5vZGUgfSBmcm9tICcuL3NldC1ub2RlJztcbmltcG9ydCB7IHVud3JhcE5vZGVzQnlUeXBlIH0gZnJvbSAnLi91bndyYXAtbm9kZXMtYnktdHlwZSc7XG5pbXBvcnQgeyBvbktleURvd25SZXNldEJsb2NrVHlwZSB9IGZyb20gJy4vb24ta2V5ZG93bi1yZXNldC1ibG9jay10eXBlJztcbmltcG9ydCB7IG1vdmVDaGlsZHJlbiB9IGZyb20gJy4vbW92ZS1jaGlsZHJlbic7XG5pbXBvcnQgeyBpbnNlcnRQYXJhZ3JhcGggfSBmcm9tICcuL2luc2VydC1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgYXBwbHlEZWVwVG9Ob2RlcyB9IGZyb20gJy4vYXBwbHktZGVlcC10by1ub2Rlcyc7XG5pbXBvcnQgeyBtZXJnZURlZXBUb05vZGVzIH0gZnJvbSAnLi9tZXJnZS1kZWVwLXRvLW5vZGVzJztcbmltcG9ydCB7IHVuV3JhcCB9IGZyb20gJy4vdW4td3JhcCc7XG5pbXBvcnQgeyBzcGxpdE5vZGUgfSBmcm9tICcuL3NwbGl0LW5vZGUnO1xuaW1wb3J0IHsgZGVsZXRlRWxlbWVudCB9IGZyb20gJy4vZGVsZXRlLWVsZW1lbnQnO1xuaW1wb3J0IHsgc2V0RW5kU2VsZWN0aW9uIH0gZnJvbSAnLi9zZXQtZW5kLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBjbG9zZUNvbnZlcnNpb25IaW50IH0gZnJvbSAnLi9jbG9zZS1jb252ZXJzaW9uLWhpbnQnO1xuaW1wb3J0IHsgaGFuZGxlQ29udGludWFsRGVsZXRlQmFja3dhcmQgfSBmcm9tICcuL2hhbmRsZS1jb250aW51YWwtZGVsZXRlLWJhY2t3YXJkJztcbmltcG9ydCB7IGhhbmRsZUNvbnRpbnVhbEluc2VydEJyZWFrIH0gZnJvbSAnLi9oYW5kbGUtY29udGludWFsLWluc2VydC1icmVhayc7XG5cbmV4cG9ydCB7XG4gICAgc2V0TWFya3MsXG4gICAgY2xlYXJNYXJrcyxcbiAgICBpbnNlcnRFbGVtZW50cyxcbiAgICBpbnNlcnRQYXJhZ3JhcGgsXG4gICAgc2V0Tm9kZSxcbiAgICB1bndyYXBOb2Rlc0J5VHlwZSxcbiAgICBvbktleURvd25SZXNldEJsb2NrVHlwZSxcbiAgICBtb3ZlQ2hpbGRyZW4sXG4gICAgYXBwbHlEZWVwVG9Ob2RlcyxcbiAgICBtZXJnZURlZXBUb05vZGVzLFxuICAgIHVuV3JhcCxcbiAgICBzcGxpdE5vZGUsXG4gICAgZGVsZXRlRWxlbWVudCxcbiAgICBzZXRFbmRTZWxlY3Rpb24sXG4gICAgY2xvc2VDb252ZXJzaW9uSGludCxcbiAgICBoYW5kbGVDb250aW51YWxEZWxldGVCYWNrd2FyZCxcbiAgICBoYW5kbGVDb250aW51YWxJbnNlcnRCcmVha1xufTtcbiJdfQ==