@acorex/components 21.0.1-next.6 → 21.0.1-next.7

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 (221) hide show
  1. package/accordion/index.d.ts +0 -1
  2. package/button-group/index.d.ts +6 -4
  3. package/chips/index.d.ts +3 -8
  4. package/collapse/index.d.ts +4 -6
  5. package/data-table/index.d.ts +4 -253
  6. package/dialog/index.d.ts +1 -1
  7. package/fesm2022/acorex-components-accordion.mjs +8 -13
  8. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  9. package/fesm2022/acorex-components-action-sheet.mjs +2 -2
  10. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  11. package/fesm2022/acorex-components-alert.mjs +6 -6
  12. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  13. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  14. package/fesm2022/acorex-components-audio-wave.mjs +5 -4
  15. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  16. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/acorex-components-avatar.mjs +3 -3
  18. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  19. package/fesm2022/acorex-components-badge.mjs +3 -3
  20. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  21. package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
  22. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  23. package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
  24. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  25. package/fesm2022/acorex-components-button-group.mjs +15 -11
  26. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  27. package/fesm2022/acorex-components-button.mjs +5 -5
  28. package/fesm2022/acorex-components-button.mjs.map +1 -1
  29. package/fesm2022/acorex-components-calendar.mjs +4 -4
  30. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-check-box.mjs +3 -3
  32. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-chips.mjs +6 -8
  34. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  35. package/fesm2022/acorex-components-circular-progress.mjs +6 -4
  36. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  37. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  38. package/fesm2022/acorex-components-collapse.mjs +13 -10
  39. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  40. package/fesm2022/acorex-components-color-box.mjs +2 -2
  41. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  42. package/fesm2022/acorex-components-color-palette.mjs +2 -2
  43. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  44. package/fesm2022/acorex-components-command.mjs +2 -2
  45. package/fesm2022/acorex-components-command.mjs.map +1 -1
  46. package/fesm2022/acorex-components-comment.mjs +8 -8
  47. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  48. package/fesm2022/acorex-components-conversation.mjs +2 -2
  49. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  50. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  51. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  52. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  53. package/fesm2022/acorex-components-data-pager.mjs +2 -2
  54. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  55. package/fesm2022/acorex-components-data-table.mjs +16 -452
  56. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  57. package/fesm2022/acorex-components-datetime-box.mjs +2 -2
  58. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  59. package/fesm2022/acorex-components-datetime-input.mjs +2 -2
  60. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  61. package/fesm2022/acorex-components-datetime-picker.mjs +2 -2
  62. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  63. package/fesm2022/acorex-components-decorators.mjs +20 -13
  64. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  65. package/fesm2022/acorex-components-dialog.mjs +5 -4
  66. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  67. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
  68. package/fesm2022/acorex-components-drawer.mjs +6 -7
  69. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  70. package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
  71. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  72. package/fesm2022/acorex-components-dropdown.mjs +5 -3
  73. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  74. package/fesm2022/acorex-components-editor.mjs +4 -4
  75. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  76. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  77. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  78. package/fesm2022/acorex-components-form.mjs +17 -9
  79. package/fesm2022/acorex-components-form.mjs.map +1 -1
  80. package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -3
  81. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  82. package/fesm2022/acorex-components-image-editor.mjs +18 -18
  83. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  84. package/fesm2022/acorex-components-image.mjs +2 -2
  85. package/fesm2022/acorex-components-image.mjs.map +1 -1
  86. package/fesm2022/acorex-components-json-viewer.mjs +2 -2
  87. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  88. package/fesm2022/acorex-components-kanban.mjs +6 -4
  89. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  90. package/fesm2022/acorex-components-kbd.mjs +25 -7
  91. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  92. package/fesm2022/acorex-components-label.mjs +2 -2
  93. package/fesm2022/acorex-components-label.mjs.map +1 -1
  94. package/fesm2022/acorex-components-list.mjs +2 -2
  95. package/fesm2022/acorex-components-list.mjs.map +1 -1
  96. package/fesm2022/acorex-components-loading-dialog.mjs +3 -3
  97. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  98. package/fesm2022/acorex-components-loading.mjs +8 -8
  99. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  100. package/fesm2022/acorex-components-map.mjs +2 -2
  101. package/fesm2022/acorex-components-map.mjs.map +1 -1
  102. package/fesm2022/acorex-components-media-viewer.mjs +10 -10
  103. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  104. package/fesm2022/acorex-components-menu.mjs +5 -5
  105. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  106. package/fesm2022/{acorex-components-modal-acorex-components-modal-CXXcFToK.mjs → acorex-components-modal-acorex-components-modal-BnUdtPke.mjs} +4 -4
  107. package/fesm2022/acorex-components-modal-acorex-components-modal-BnUdtPke.mjs.map +1 -0
  108. package/fesm2022/{acorex-components-modal-modal-content.component-B4rhHeEz.mjs → acorex-components-modal-modal-content.component-Cgq-wx_m.mjs} +7 -5
  109. package/fesm2022/acorex-components-modal-modal-content.component-Cgq-wx_m.mjs.map +1 -0
  110. package/fesm2022/acorex-components-modal.mjs +1 -1
  111. package/fesm2022/acorex-components-navbar.mjs +3 -3
  112. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  113. package/fesm2022/acorex-components-notification.mjs +7 -14
  114. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  115. package/fesm2022/acorex-components-number-box-legacy.mjs +2 -2
  116. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
  117. package/fesm2022/acorex-components-number-box.mjs +2 -2
  118. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  119. package/fesm2022/acorex-components-otp.mjs +2 -2
  120. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  121. package/fesm2022/acorex-components-page.mjs.map +1 -1
  122. package/fesm2022/acorex-components-paint.mjs +14 -19
  123. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  124. package/fesm2022/acorex-components-password-box.mjs +4 -4
  125. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  126. package/fesm2022/acorex-components-pdf-reader.mjs +2 -2
  127. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  128. package/fesm2022/acorex-components-phone-box.mjs +22 -27
  129. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  130. package/fesm2022/acorex-components-picker.mjs +6 -6
  131. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  132. package/fesm2022/acorex-components-popover.mjs +4 -4
  133. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  134. package/fesm2022/acorex-components-popup.mjs +3 -3
  135. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  136. package/fesm2022/acorex-components-progress-bar.mjs +5 -3
  137. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  138. package/fesm2022/acorex-components-qrcode.mjs +2 -2
  139. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  140. package/fesm2022/acorex-components-query-builder.mjs +2 -2
  141. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  142. package/fesm2022/acorex-components-radio.mjs +2 -2
  143. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  144. package/fesm2022/acorex-components-rail-navigation.mjs +27 -25
  145. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  146. package/fesm2022/acorex-components-range-slider.mjs +3 -3
  147. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  148. package/fesm2022/acorex-components-rate-picker.mjs +14 -29
  149. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  150. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  151. package/fesm2022/acorex-components-result.mjs +2 -2
  152. package/fesm2022/acorex-components-result.mjs.map +1 -1
  153. package/fesm2022/acorex-components-routing-progress.mjs +2 -2
  154. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  155. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  156. package/fesm2022/acorex-components-scheduler-picker.mjs +2 -2
  157. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  158. package/fesm2022/acorex-components-scheduler.mjs +18 -18
  159. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  160. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  161. package/fesm2022/acorex-components-search-box.mjs +9 -3
  162. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  163. package/fesm2022/acorex-components-select-box.mjs +4 -2
  164. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  165. package/fesm2022/acorex-components-selection-list-2.mjs +4 -4
  166. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  167. package/fesm2022/acorex-components-selection-list.mjs +2 -2
  168. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  169. package/fesm2022/acorex-components-side-menu.mjs +63 -14
  170. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  171. package/fesm2022/acorex-components-skeleton.mjs +2 -2
  172. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  173. package/fesm2022/acorex-components-slider.mjs +5 -5
  174. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  175. package/fesm2022/acorex-components-sliding-item.mjs +2 -2
  176. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  177. package/fesm2022/acorex-components-step-wizard.mjs +2 -2
  178. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  179. package/fesm2022/acorex-components-switch.mjs +4 -4
  180. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  181. package/fesm2022/acorex-components-tabs.mjs +2 -2
  182. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  183. package/fesm2022/acorex-components-tag-box.mjs +2 -2
  184. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  185. package/fesm2022/acorex-components-tag.mjs +3 -3
  186. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  187. package/fesm2022/acorex-components-text-area.mjs +2 -2
  188. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  189. package/fesm2022/acorex-components-text-box.mjs +2 -2
  190. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  191. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  192. package/fesm2022/acorex-components-time-line.mjs +4 -4
  193. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  194. package/fesm2022/acorex-components-toast.mjs +4 -4
  195. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  196. package/fesm2022/acorex-components-toolbar.mjs +2 -2
  197. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  198. package/fesm2022/acorex-components-tooltip.mjs +9 -10
  199. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  200. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
  201. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  202. package/fesm2022/acorex-components-uploader.mjs +6 -6
  203. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  204. package/fesm2022/acorex-components-video-player.mjs +2 -2
  205. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  206. package/fesm2022/acorex-components-wysiwyg.mjs +12 -12
  207. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  208. package/fesm2022/acorex-components.mjs.map +1 -1
  209. package/grid-layout-builder/index.d.ts +1 -2
  210. package/kbd/index.d.ts +13 -7
  211. package/loading/index.d.ts +1 -1
  212. package/notification/index.d.ts +0 -2
  213. package/package.json +7 -7
  214. package/paint/index.d.ts +1 -6
  215. package/phone-box/index.d.ts +1 -6
  216. package/rate-picker/index.d.ts +5 -15
  217. package/side-menu/index.d.ts +9 -2
  218. package/slider/index.d.ts +2 -2
  219. package/tooltip/index.d.ts +0 -1
  220. package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +0 -1
  221. package/fesm2022/acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-code-editor.mjs","sources":["../tmp-esm2022/code-editor/lib/plugins/default/formatters/prettier.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/css.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/html.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/javascript.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/json.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/markdown.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/sass.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/sql.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/typescript.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/xml.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/themes/github-dark.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/themes/github-light.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/themes/light.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/themes/one-dark.plugin.js","../tmp-esm2022/code-editor/lib/plugins/default/config.js","../tmp-esm2022/code-editor/lib/plugins/tokens.js","../tmp-esm2022/code-editor/lib/plugins/registry.service.js","../tmp-esm2022/code-editor/lib/code-editor.component.js","../tmp-esm2022/code-editor/lib/code-editor.module.js","../tmp-esm2022/code-editor/lib/plugins/default/languages/index.js","../tmp-esm2022/code-editor/lib/plugins/default/index.js","../tmp-esm2022/code-editor/index.js","../tmp-esm2022/code-editor/acorex-components-code-editor.js"],"sourcesContent":["export class PrettierFormatterPlugin {\n constructor() {\n this.id = 'prettier';\n this.name = 'Prettier';\n this.version = '1.0.0';\n this.languages = ['javascript', 'js', 'typescript', 'ts', 'json', 'html', 'css', 'markdown'];\n }\n async format(text, language) {\n try {\n const prettier = await import('prettier/standalone');\n let parser = null;\n const plugins = [];\n switch (language) {\n case 'javascript':\n case 'js': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'babel';\n break;\n }\n case 'typescript':\n case 'ts': {\n const [typescript, estree] = await Promise.all([\n import('prettier/plugins/typescript'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(typescript, estree);\n parser = 'typescript';\n break;\n }\n case 'json': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'json';\n break;\n }\n case 'html': {\n const html = await import('prettier/plugins/html');\n plugins.push(html);\n parser = 'html';\n break;\n }\n case 'css': {\n const postcss = await import('prettier/plugins/postcss');\n plugins.push(postcss);\n parser = 'css';\n break;\n }\n case 'markdown': {\n const markdown = await import('prettier/plugins/markdown');\n plugins.push(markdown);\n parser = 'markdown';\n break;\n }\n default:\n return null;\n }\n if (!parser)\n return null;\n const formatted = await prettier.format(text, {\n parser,\n plugins,\n });\n return formatted;\n }\n catch {\n return null;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvZGVmYXVsdC9mb3JtYXR0ZXJzL3ByZXR0aWVyLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBQ1csT0FBRSxHQUFHLFVBQVUsQ0FBQztRQUNoQixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsY0FBUyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0lBc0U1RyxDQUFDO0lBcEVDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQ3pDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDckQsSUFBSSxNQUFNLEdBQWtCLElBQUksQ0FBQztZQUNqQyxNQUFNLE9BQU8sR0FBVSxFQUFFLENBQUM7WUFFMUIsUUFBUSxRQUFRLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxZQUFZLENBQUM7Z0JBQ2xCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQzt3QkFDeEMsTUFBTSxDQUFDLHdCQUF3QixDQUFDO3dCQUNoQyxNQUFNLENBQUMseUJBQXlCLENBQUM7cUJBQ2xDLENBQUMsQ0FBQztvQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDNUIsTUFBTSxHQUFHLE9BQU8sQ0FBQztvQkFDakIsTUFBTTtnQkFDUixDQUFDO2dCQUNELEtBQUssWUFBWSxDQUFDO2dCQUNsQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ1YsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7d0JBQzdDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQzt3QkFDckMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO3FCQUNsQyxDQUFDLENBQUM7b0JBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2pDLE1BQU0sR0FBRyxZQUFZLENBQUM7b0JBQ3RCLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1osTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7d0JBQ3hDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQzt3QkFDaEMsTUFBTSxDQUFDLHlCQUF5QixDQUFDO3FCQUNsQyxDQUFDLENBQUM7b0JBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzVCLE1BQU0sR0FBRyxNQUFNLENBQUM7b0JBQ2hCLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1osTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDbkQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbkIsTUFBTSxHQUFHLE1BQU0sQ0FBQztvQkFDaEIsTUFBTTtnQkFDUixDQUFDO2dCQUNELEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDWCxNQUFNLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO29CQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0QixNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNmLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRCxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7b0JBQzNELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sR0FBRyxVQUFVLENBQUM7b0JBQ3BCLE1BQU07Z0JBQ1IsQ0FBQztnQkFDRDtvQkFDRSxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDNUMsTUFBTTtnQkFDTixPQUFPO2FBQ0QsQ0FBQyxDQUFDO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29kZUVkaXRvckZvcm1hdHRlclBsdWdpbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFByZXR0aWVyRm9ybWF0dGVyUGx1Z2luIGltcGxlbWVudHMgQVhDb2RlRWRpdG9yRm9ybWF0dGVyUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAncHJldHRpZXInO1xuICByZWFkb25seSBuYW1lID0gJ1ByZXR0aWVyJztcbiAgcmVhZG9ubHkgdmVyc2lvbiA9ICcxLjAuMCc7XG4gIHJlYWRvbmx5IGxhbmd1YWdlcyA9IFsnamF2YXNjcmlwdCcsICdqcycsICd0eXBlc2NyaXB0JywgJ3RzJywgJ2pzb24nLCAnaHRtbCcsICdjc3MnLCAnbWFya2Rvd24nXSBhcyBjb25zdDtcblxuICBhc3luYyBmb3JtYXQodGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZXR0aWVyID0gYXdhaXQgaW1wb3J0KCdwcmV0dGllci9zdGFuZGFsb25lJyk7XG4gICAgICBsZXQgcGFyc2VyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgIGNvbnN0IHBsdWdpbnM6IGFueVtdID0gW107XG5cbiAgICAgIHN3aXRjaCAobGFuZ3VhZ2UpIHtcbiAgICAgICAgY2FzZSAnamF2YXNjcmlwdCc6XG4gICAgICAgIGNhc2UgJ2pzJzoge1xuICAgICAgICAgIGNvbnN0IFtiYWJlbCwgZXN0cmVlXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIGltcG9ydCgncHJldHRpZXIvcGx1Z2lucy9iYWJlbCcpLFxuICAgICAgICAgICAgaW1wb3J0KCdwcmV0dGllci9wbHVnaW5zL2VzdHJlZScpLFxuICAgICAgICAgIF0pO1xuICAgICAgICAgIHBsdWdpbnMucHVzaChiYWJlbCwgZXN0cmVlKTtcbiAgICAgICAgICBwYXJzZXIgPSAnYmFiZWwnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3R5cGVzY3JpcHQnOlxuICAgICAgICBjYXNlICd0cyc6IHtcbiAgICAgICAgICBjb25zdCBbdHlwZXNjcmlwdCwgZXN0cmVlXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIGltcG9ydCgncHJldHRpZXIvcGx1Z2lucy90eXBlc2NyaXB0JyksXG4gICAgICAgICAgICBpbXBvcnQoJ3ByZXR0aWVyL3BsdWdpbnMvZXN0cmVlJyksXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgcGx1Z2lucy5wdXNoKHR5cGVzY3JpcHQsIGVzdHJlZSk7XG4gICAgICAgICAgcGFyc2VyID0gJ3R5cGVzY3JpcHQnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2pzb24nOiB7XG4gICAgICAgICAgY29uc3QgW2JhYmVsLCBlc3RyZWVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgaW1wb3J0KCdwcmV0dGllci9wbHVnaW5zL2JhYmVsJyksXG4gICAgICAgICAgICBpbXBvcnQoJ3ByZXR0aWVyL3BsdWdpbnMvZXN0cmVlJyksXG4gICAgICAgICAgXSk7XG4gICAgICAgICAgcGx1Z2lucy5wdXNoKGJhYmVsLCBlc3RyZWUpO1xuICAgICAgICAgIHBhcnNlciA9ICdqc29uJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdodG1sJzoge1xuICAgICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCBpbXBvcnQoJ3ByZXR0aWVyL3BsdWdpbnMvaHRtbCcpO1xuICAgICAgICAgIHBsdWdpbnMucHVzaChodG1sKTtcbiAgICAgICAgICBwYXJzZXIgPSAnaHRtbCc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnY3NzJzoge1xuICAgICAgICAgIGNvbnN0IHBvc3Rjc3MgPSBhd2FpdCBpbXBvcnQoJ3ByZXR0aWVyL3BsdWdpbnMvcG9zdGNzcycpO1xuICAgICAgICAgIHBsdWdpbnMucHVzaChwb3N0Y3NzKTtcbiAgICAgICAgICBwYXJzZXIgPSAnY3NzJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdtYXJrZG93bic6IHtcbiAgICAgICAgICBjb25zdCBtYXJrZG93biA9IGF3YWl0IGltcG9ydCgncHJldHRpZXIvcGx1Z2lucy9tYXJrZG93bicpO1xuICAgICAgICAgIHBsdWdpbnMucHVzaChtYXJrZG93bik7XG4gICAgICAgICAgcGFyc2VyID0gJ21hcmtkb3duJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXBhcnNlcikgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhd2FpdCBwcmV0dGllci5mb3JtYXQodGV4dCwge1xuICAgICAgICBwYXJzZXIsXG4gICAgICAgIHBsdWdpbnMsXG4gICAgICB9IGFzIGFueSk7XG4gICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=","export class CSSLanguagePlugin {\n constructor() {\n this.id = 'css';\n this.name = 'CSS';\n this.version = '1.0.0';\n this.languages = ['css'];\n }\n async getExtension() {\n const { css } = await import('@codemirror/lang-css');\n return css();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9wbHVnaW5zL2RlZmF1bHQvbGFuZ3VhZ2VzL2Nzcy5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNXLE9BQUUsR0FBRyxLQUFLLENBQUM7UUFDWCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxLQUFLLENBQVUsQ0FBQztJQU14QyxDQUFDO0lBSkMsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBDU1NMYW5ndWFnZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAnY3NzJztcbiAgcmVhZG9ubHkgbmFtZSA9ICdDU1MnO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWydjc3MnXSBhcyBjb25zdDtcblxuICBhc3luYyBnZXRFeHRlbnNpb24oKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCB7IGNzcyB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLWNzcycpO1xuICAgIHJldHVybiBjc3MoKTtcbiAgfVxufVxuIl19","export class HTMLLanguagePlugin {\n constructor() {\n this.id = 'html';\n this.name = 'HTML';\n this.version = '1.0.0';\n this.languages = ['html'];\n }\n async getExtension() {\n const { html } = await import('@codemirror/lang-html');\n return html();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcy9odG1sLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ1csT0FBRSxHQUFHLE1BQU0sQ0FBQztRQUNaLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxDQUFDLE1BQU0sQ0FBVSxDQUFDO0lBTXpDLENBQUM7SUFKQyxLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBIVE1MTGFuZ3VhZ2VQbHVnaW4gaW1wbGVtZW50cyBBWENvZGVFZGl0b3JMYW5ndWFnZVBsdWdpbiB7XG4gIHJlYWRvbmx5IGlkID0gJ2h0bWwnO1xuICByZWFkb25seSBuYW1lID0gJ0hUTUwnO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWydodG1sJ10gYXMgY29uc3Q7XG5cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uKCk6IFByb21pc2U8RXh0ZW5zaW9uPiB7XG4gICAgY29uc3QgeyBodG1sIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctaHRtbCcpO1xuICAgIHJldHVybiBodG1sKCk7XG4gIH1cbn1cbiJdfQ==","export class JavaScriptLanguagePlugin {\n constructor() {\n this.id = 'javascript';\n this.name = 'JavaScript';\n this.version = '1.0.0';\n this.languages = ['javascript', 'js'];\n }\n async getExtension() {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcy9qYXZhc2NyaXB0LnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ1csT0FBRSxHQUFHLFlBQVksQ0FBQztRQUNsQixTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsY0FBUyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBVSxDQUFDO0lBTXJELENBQUM7SUFKQyxLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNuRSxPQUFPLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBKYXZhU2NyaXB0TGFuZ3VhZ2VQbHVnaW4gaW1wbGVtZW50cyBBWENvZGVFZGl0b3JMYW5ndWFnZVBsdWdpbiB7XG4gIHJlYWRvbmx5IGlkID0gJ2phdmFzY3JpcHQnO1xuICByZWFkb25seSBuYW1lID0gJ0phdmFTY3JpcHQnO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWydqYXZhc2NyaXB0JywgJ2pzJ10gYXMgY29uc3Q7XG5cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uKCk6IFByb21pc2U8RXh0ZW5zaW9uPiB7XG4gICAgY29uc3QgeyBqYXZhc2NyaXB0IH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCcpO1xuICAgIHJldHVybiBqYXZhc2NyaXB0KCk7XG4gIH1cbn1cbiJdfQ==","export class JSONLanguagePlugin {\n constructor() {\n this.id = 'json';\n this.name = 'JSON';\n this.version = '1.0.0';\n this.languages = ['json'];\n }\n async getExtension() {\n const { json } = await import('@codemirror/lang-json');\n return json();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcy9qc29uLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ1csT0FBRSxHQUFHLE1BQU0sQ0FBQztRQUNaLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxDQUFDLE1BQU0sQ0FBVSxDQUFDO0lBTXpDLENBQUM7SUFKQyxLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBKU09OTGFuZ3VhZ2VQbHVnaW4gaW1wbGVtZW50cyBBWENvZGVFZGl0b3JMYW5ndWFnZVBsdWdpbiB7XG4gIHJlYWRvbmx5IGlkID0gJ2pzb24nO1xuICByZWFkb25seSBuYW1lID0gJ0pTT04nO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWydqc29uJ10gYXMgY29uc3Q7XG5cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uKCk6IFByb21pc2U8RXh0ZW5zaW9uPiB7XG4gICAgY29uc3QgeyBqc29uIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctanNvbicpO1xuICAgIHJldHVybiBqc29uKCk7XG4gIH1cbn1cbiJdfQ==","export class MarkdownLanguagePlugin {\n constructor() {\n this.id = 'markdown';\n this.name = 'Markdown';\n this.version = '1.0.0';\n this.languages = ['markdown'];\n }\n async getExtension() {\n const { markdown } = await import('@codemirror/lang-markdown');\n return markdown();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvZGVmYXVsdC9sYW5ndWFnZXMvbWFya2Rvd24ucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxzQkFBc0I7SUFBbkM7UUFDVyxPQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ2hCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxVQUFVLENBQVUsQ0FBQztJQU03QyxDQUFDO0lBSkMsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0QsT0FBTyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV4dGVuc2lvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB7IEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgTWFya2Rvd25MYW5ndWFnZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAnbWFya2Rvd24nO1xuICByZWFkb25seSBuYW1lID0gJ01hcmtkb3duJztcbiAgcmVhZG9ubHkgdmVyc2lvbiA9ICcxLjAuMCc7XG4gIHJlYWRvbmx5IGxhbmd1YWdlcyA9IFsnbWFya2Rvd24nXSBhcyBjb25zdDtcblxuICBhc3luYyBnZXRFeHRlbnNpb24oKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCB7IG1hcmtkb3duIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctbWFya2Rvd24nKTtcbiAgICByZXR1cm4gbWFya2Rvd24oKTtcbiAgfVxufVxuIl19","export class SassLanguagePlugin {\n constructor() {\n this.id = 'sass';\n this.name = 'Sass/SCSS';\n this.version = '1.0.0';\n this.languages = ['sass', 'scss'];\n }\n async getExtension() {\n const { sass } = await import('@codemirror/lang-sass');\n return sass();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Fzcy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcy9zYXNzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ1csT0FBRSxHQUFHLE1BQU0sQ0FBQztRQUNaLFNBQUksR0FBRyxXQUFXLENBQUM7UUFDbkIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFVLENBQUM7SUFNakQsQ0FBQztJQUpDLEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHRlbnNpb24gfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBBWENvZGVFZGl0b3JMYW5ndWFnZVBsdWdpbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFNhc3NMYW5ndWFnZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAnc2Fzcyc7XG4gIHJlYWRvbmx5IG5hbWUgPSAnU2Fzcy9TQ1NTJztcbiAgcmVhZG9ubHkgdmVyc2lvbiA9ICcxLjAuMCc7XG4gIHJlYWRvbmx5IGxhbmd1YWdlcyA9IFsnc2FzcycsICdzY3NzJ10gYXMgY29uc3Q7XG5cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uKCk6IFByb21pc2U8RXh0ZW5zaW9uPiB7XG4gICAgY29uc3QgeyBzYXNzIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctc2FzcycpO1xuICAgIHJldHVybiBzYXNzKCk7XG4gIH1cbn1cbiJdfQ==","export class SQLLanguagePlugin {\n constructor() {\n this.id = 'sql';\n this.name = 'SQL';\n this.version = '1.0.0';\n this.languages = ['sql'];\n }\n async getExtension() {\n const { sql } = await import('@codemirror/lang-sql');\n return sql();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9wbHVnaW5zL2RlZmF1bHQvbGFuZ3VhZ2VzL3NxbC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNXLE9BQUUsR0FBRyxLQUFLLENBQUM7UUFDWCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxLQUFLLENBQVUsQ0FBQztJQU14QyxDQUFDO0lBSkMsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBTUUxMYW5ndWFnZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAnc3FsJztcbiAgcmVhZG9ubHkgbmFtZSA9ICdTUUwnO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWydzcWwnXSBhcyBjb25zdDtcblxuICBhc3luYyBnZXRFeHRlbnNpb24oKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCB7IHNxbCB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLXNxbCcpO1xuICAgIHJldHVybiBzcWwoKTtcbiAgfVxufVxuIl19","export class TypeScriptLanguagePlugin {\n constructor() {\n this.id = 'typescript';\n this.name = 'TypeScript';\n this.version = '1.0.0';\n this.languages = ['typescript', 'ts'];\n }\n async getExtension() {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript({ typescript: true });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcy90eXBlc2NyaXB0LnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ1csT0FBRSxHQUFHLFlBQVksQ0FBQztRQUNsQixTQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3BCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsY0FBUyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBVSxDQUFDO0lBTXJELENBQUM7SUFKQyxLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNuRSxPQUFPLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0TGFuZ3VhZ2VQbHVnaW4gaW1wbGVtZW50cyBBWENvZGVFZGl0b3JMYW5ndWFnZVBsdWdpbiB7XG4gIHJlYWRvbmx5IGlkID0gJ3R5cGVzY3JpcHQnO1xuICByZWFkb25seSBuYW1lID0gJ1R5cGVTY3JpcHQnO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWyd0eXBlc2NyaXB0JywgJ3RzJ10gYXMgY29uc3Q7XG5cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uKCk6IFByb21pc2U8RXh0ZW5zaW9uPiB7XG4gICAgY29uc3QgeyBqYXZhc2NyaXB0IH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCcpO1xuICAgIHJldHVybiBqYXZhc2NyaXB0KHsgdHlwZXNjcmlwdDogdHJ1ZSB9KTtcbiAgfVxufVxuIl19","export class XMLLanguagePlugin {\n constructor() {\n this.id = 'xml';\n this.name = 'XML';\n this.version = '1.0.0';\n this.languages = ['xml'];\n }\n async getExtension() {\n const { xml } = await import('@codemirror/lang-xml');\n return xml();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9wbHVnaW5zL2RlZmF1bHQvbGFuZ3VhZ2VzL3htbC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNXLE9BQUUsR0FBRyxLQUFLLENBQUM7UUFDWCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxLQUFLLENBQVUsQ0FBQztJQU14QyxDQUFDO0lBSkMsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBYTUxMYW5ndWFnZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAneG1sJztcbiAgcmVhZG9ubHkgbmFtZSA9ICdYTUwnO1xuICByZWFkb25seSB2ZXJzaW9uID0gJzEuMC4wJztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2VzID0gWyd4bWwnXSBhcyBjb25zdDtcblxuICBhc3luYyBnZXRFeHRlbnNpb24oKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCB7IHhtbCB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLXhtbCcpO1xuICAgIHJldHVybiB4bWwoKTtcbiAgfVxufVxuIl19","export class GitHubDarkThemePlugin {\n constructor() {\n this.id = 'github-dark';\n this.name = 'GitHub Dark';\n this.version = '1.0.0';\n this.dark = true;\n }\n async getExtension() {\n const [{ githubDark }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubDark,\n EditorView.theme({\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n }, { dark: true }),\n ];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWRhcmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvZGVmYXVsdC90aGVtZXMvZ2l0aHViLWRhcmsucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDVyxPQUFFLEdBQUcsYUFBYSxDQUFDO1FBQ25CLFNBQUksR0FBRyxhQUFhLENBQUM7UUFDckIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixTQUFJLEdBQUcsSUFBSSxDQUFDO0lBa0J2QixDQUFDO0lBaEJDLEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDekQsTUFBTSxDQUFDLDhCQUE4QixDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztTQUMzQixDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wsVUFBVTtZQUNWLFVBQVUsQ0FBQyxLQUFLLENBQ2Q7WUFDRSxzREFBc0Q7WUFDdEQsZ0VBQWdFO2FBQ2pFLEVBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2Y7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHRlbnNpb24gfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEdpdEh1YkRhcmtUaGVtZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvclRoZW1lUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAnZ2l0aHViLWRhcmsnO1xuICByZWFkb25seSBuYW1lID0gJ0dpdEh1YiBEYXJrJztcbiAgcmVhZG9ubHkgdmVyc2lvbiA9ICcxLjAuMCc7XG4gIHJlYWRvbmx5IGRhcmsgPSB0cnVlO1xuXG4gIGFzeW5jIGdldEV4dGVuc2lvbigpOiBQcm9taXNlPEV4dGVuc2lvbj4ge1xuICAgIGNvbnN0IFt7IGdpdGh1YkRhcmsgfSwgeyBFZGl0b3JWaWV3IH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgaW1wb3J0KCdAdWl3L2NvZGVtaXJyb3ItdGhlbWUtZ2l0aHViJyksXG4gICAgICBpbXBvcnQoJ0Bjb2RlbWlycm9yL3ZpZXcnKSxcbiAgICBdKTtcbiAgICByZXR1cm4gW1xuICAgICAgZ2l0aHViRGFyayxcbiAgICAgIEVkaXRvclZpZXcudGhlbWUoXG4gICAgICAgIHtcbiAgICAgICAgICAvLyAnJic6IHsgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcgfSxcbiAgICAgICAgICAvLyAnLmNtLWd1dHRlcnMnOiB7IGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50ICFpbXBvcnRhbnQnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgZGFyazogdHJ1ZSB9LFxuICAgICAgKSxcbiAgICBdO1xuICB9XG59XG4iXX0=","export class GitHubLightThemePlugin {\n constructor() {\n this.id = 'github-light';\n this.name = 'GitHub Light';\n this.version = '1.0.0';\n this.dark = false;\n }\n async getExtension() {\n const [{ githubLight }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubLight,\n EditorView.theme({\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n }, { dark: false }),\n ];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWxpZ2h0LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9wbHVnaW5zL2RlZmF1bHQvdGhlbWVzL2dpdGh1Yi1saWdodC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHNCQUFzQjtJQUFuQztRQUNXLE9BQUUsR0FBRyxjQUFjLENBQUM7UUFDcEIsU0FBSSxHQUFHLGNBQWMsQ0FBQztRQUN0QixZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLFNBQUksR0FBRyxLQUFLLENBQUM7SUFrQnhCLENBQUM7SUFoQkMsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUMxRCxNQUFNLENBQUMsOEJBQThCLENBQUM7WUFDdEMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzNCLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxXQUFXO1lBQ1gsVUFBVSxDQUFDLEtBQUssQ0FDZDtZQUNFLHNEQUFzRDtZQUN0RCxnRUFBZ0U7YUFDakUsRUFDRCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FDaEI7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHRlbnNpb24gfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEdpdEh1YkxpZ2h0VGhlbWVQbHVnaW4gaW1wbGVtZW50cyBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbiB7XG4gIHJlYWRvbmx5IGlkID0gJ2dpdGh1Yi1saWdodCc7XG4gIHJlYWRvbmx5IG5hbWUgPSAnR2l0SHViIExpZ2h0JztcbiAgcmVhZG9ubHkgdmVyc2lvbiA9ICcxLjAuMCc7XG4gIHJlYWRvbmx5IGRhcmsgPSBmYWxzZTtcblxuICBhc3luYyBnZXRFeHRlbnNpb24oKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCBbeyBnaXRodWJMaWdodCB9LCB7IEVkaXRvclZpZXcgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBpbXBvcnQoJ0B1aXcvY29kZW1pcnJvci10aGVtZS1naXRodWInKSxcbiAgICAgIGltcG9ydCgnQGNvZGVtaXJyb3IvdmlldycpLFxuICAgIF0pO1xuICAgIHJldHVybiBbXG4gICAgICBnaXRodWJMaWdodCxcbiAgICAgIEVkaXRvclZpZXcudGhlbWUoXG4gICAgICAgIHtcbiAgICAgICAgICAvLyAnJic6IHsgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcgfSxcbiAgICAgICAgICAvLyAnLmNtLWd1dHRlcnMnOiB7IGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50ICFpbXBvcnRhbnQnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgZGFyazogZmFsc2UgfSxcbiAgICAgICksXG4gICAgXTtcbiAgfVxufVxuIl19","export class LightThemePlugin {\n constructor() {\n this.id = 'light';\n this.name = 'Light';\n this.version = '1.0.0';\n this.dark = false;\n }\n async getExtension() {\n const { EditorView } = await import('@codemirror/view');\n return EditorView.theme({\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n }, { dark: false });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvZGVmYXVsdC90aGVtZXMvbGlnaHQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFDVyxPQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ2IsU0FBSSxHQUFHLE9BQU8sQ0FBQztRQUNmLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsU0FBSSxHQUFHLEtBQUssQ0FBQztJQVl4QixDQUFDO0lBVkMsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUNyQjtZQUNFLHNEQUFzRDtZQUN0RCxhQUFhLEVBQUUsRUFBRTtTQUNsQixFQUNELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUNoQixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHRlbnNpb24gfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIExpZ2h0VGhlbWVQbHVnaW4gaW1wbGVtZW50cyBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbiB7XG4gIHJlYWRvbmx5IGlkID0gJ2xpZ2h0JztcbiAgcmVhZG9ubHkgbmFtZSA9ICdMaWdodCc7XG4gIHJlYWRvbmx5IHZlcnNpb24gPSAnMS4wLjAnO1xuICByZWFkb25seSBkYXJrID0gZmFsc2U7XG5cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uKCk6IFByb21pc2U8RXh0ZW5zaW9uPiB7XG4gICAgY29uc3QgeyBFZGl0b3JWaWV3IH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL3ZpZXcnKTtcbiAgICByZXR1cm4gRWRpdG9yVmlldy50aGVtZShcbiAgICAgIHtcbiAgICAgICAgLy8gJyYnOiB7IGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50ICFpbXBvcnRhbnQnIH0sXG4gICAgICAgICcuY20tZ3V0dGVycyc6IHt9LFxuICAgICAgfSxcbiAgICAgIHsgZGFyazogZmFsc2UgfSxcbiAgICApO1xuICB9XG59XG4iXX0=","export class OneDarkThemePlugin {\n constructor() {\n this.id = 'one-dark';\n this.name = 'One Dark';\n this.version = '1.0.0';\n this.dark = true;\n }\n async getExtension() {\n const { EditorView } = await import('@codemirror/view');\n try {\n const { oneDark } = await import('@codemirror/theme-one-dark');\n return [\n oneDark,\n EditorView.theme({\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n }, { dark: true }),\n ];\n }\n catch {\n return EditorView.theme({\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n }, { dark: true });\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWRhcmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvZGVmYXVsdC90aGVtZXMvb25lLWRhcmsucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDVyxPQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ2hCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFDbEIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixTQUFJLEdBQUcsSUFBSSxDQUFDO0lBMEJ2QixDQUFDO0lBeEJDLEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQy9ELE9BQU87Z0JBQ0wsT0FBTztnQkFDUCxVQUFVLENBQUMsS0FBSyxDQUNkO29CQUNFLHNEQUFzRDtvQkFDdEQsYUFBYSxFQUFFLEVBQUU7aUJBQ2xCLEVBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2Y7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FDckI7Z0JBQ0Usc0RBQXNEO2dCQUN0RCxhQUFhLEVBQUUsRUFBRTthQUNsQixFQUNELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUNmLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHRlbnNpb24gfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIE9uZURhcmtUaGVtZVBsdWdpbiBpbXBsZW1lbnRzIEFYQ29kZUVkaXRvclRoZW1lUGx1Z2luIHtcbiAgcmVhZG9ubHkgaWQgPSAnb25lLWRhcmsnO1xuICByZWFkb25seSBuYW1lID0gJ09uZSBEYXJrJztcbiAgcmVhZG9ubHkgdmVyc2lvbiA9ICcxLjAuMCc7XG4gIHJlYWRvbmx5IGRhcmsgPSB0cnVlO1xuXG4gIGFzeW5jIGdldEV4dGVuc2lvbigpOiBQcm9taXNlPEV4dGVuc2lvbj4ge1xuICAgIGNvbnN0IHsgRWRpdG9yVmlldyB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci92aWV3Jyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgb25lRGFyayB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci90aGVtZS1vbmUtZGFyaycpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgb25lRGFyayxcbiAgICAgICAgRWRpdG9yVmlldy50aGVtZShcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyAnJic6IHsgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcgfSxcbiAgICAgICAgICAgICcuY20tZ3V0dGVycyc6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBkYXJrOiB0cnVlIH0sXG4gICAgICAgICksXG4gICAgICBdO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIEVkaXRvclZpZXcudGhlbWUoXG4gICAgICAgIHtcbiAgICAgICAgICAvLyAnJic6IHsgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcgfSxcbiAgICAgICAgICAnLmNtLWd1dHRlcnMnOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBkYXJrOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19","import { PrettierFormatterPlugin } from './formatters/prettier.plugin';\nimport { CSSLanguagePlugin } from './languages/css.plugin';\nimport { HTMLLanguagePlugin } from './languages/html.plugin';\nimport { JavaScriptLanguagePlugin } from './languages/javascript.plugin';\nimport { JSONLanguagePlugin } from './languages/json.plugin';\nimport { MarkdownLanguagePlugin } from './languages/markdown.plugin';\nimport { SassLanguagePlugin } from './languages/sass.plugin';\nimport { SQLLanguagePlugin } from './languages/sql.plugin';\nimport { TypeScriptLanguagePlugin } from './languages/typescript.plugin';\nimport { XMLLanguagePlugin } from './languages/xml.plugin';\nimport { GitHubDarkThemePlugin } from './themes/github-dark.plugin';\nimport { GitHubLightThemePlugin } from './themes/github-light.plugin';\nimport { LightThemePlugin } from './themes/light.plugin';\nimport { OneDarkThemePlugin } from './themes/one-dark.plugin';\n/**\n * Default plugin configuration with all built-in plugins\n */\nexport function provideDefaultCodeEditorPlugins() {\n return {\n languages: [\n new JavaScriptLanguagePlugin(),\n new TypeScriptLanguagePlugin(),\n new JSONLanguagePlugin(),\n new HTMLLanguagePlugin(),\n new CSSLanguagePlugin(),\n new SassLanguagePlugin(),\n new SQLLanguagePlugin(),\n new XMLLanguagePlugin(),\n new MarkdownLanguagePlugin(),\n ],\n themes: [\n new OneDarkThemePlugin(),\n new LightThemePlugin(),\n new GitHubLightThemePlugin(),\n new GitHubDarkThemePlugin(),\n ],\n formatters: [new PrettierFormatterPlugin()],\n extensions: [],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvZGVmYXVsdC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsK0JBQStCO0lBQzdDLE9BQU87UUFDTCxTQUFTLEVBQUU7WUFDVCxJQUFJLHdCQUF3QixFQUFFO1lBQzlCLElBQUksd0JBQXdCLEVBQUU7WUFDOUIsSUFBSSxrQkFBa0IsRUFBRTtZQUN4QixJQUFJLGtCQUFrQixFQUFFO1lBQ3hCLElBQUksaUJBQWlCLEVBQUU7WUFDdkIsSUFBSSxrQkFBa0IsRUFBRTtZQUN4QixJQUFJLGlCQUFpQixFQUFFO1lBQ3ZCLElBQUksaUJBQWlCLEVBQUU7WUFDdkIsSUFBSSxzQkFBc0IsRUFBRTtTQUM3QjtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksa0JBQWtCLEVBQUU7WUFDeEIsSUFBSSxnQkFBZ0IsRUFBRTtZQUN0QixJQUFJLHNCQUFzQixFQUFFO1lBQzVCLElBQUkscUJBQXFCLEVBQUU7U0FDNUI7UUFDRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDM0MsVUFBVSxFQUFFLEVBQUU7S0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29kZUVkaXRvclBsdWdpbkNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFByZXR0aWVyRm9ybWF0dGVyUGx1Z2luIH0gZnJvbSAnLi9mb3JtYXR0ZXJzL3ByZXR0aWVyLnBsdWdpbic7XG5pbXBvcnQgeyBDU1NMYW5ndWFnZVBsdWdpbiB9IGZyb20gJy4vbGFuZ3VhZ2VzL2Nzcy5wbHVnaW4nO1xuaW1wb3J0IHsgSFRNTExhbmd1YWdlUGx1Z2luIH0gZnJvbSAnLi9sYW5ndWFnZXMvaHRtbC5wbHVnaW4nO1xuaW1wb3J0IHsgSmF2YVNjcmlwdExhbmd1YWdlUGx1Z2luIH0gZnJvbSAnLi9sYW5ndWFnZXMvamF2YXNjcmlwdC5wbHVnaW4nO1xuaW1wb3J0IHsgSlNPTkxhbmd1YWdlUGx1Z2luIH0gZnJvbSAnLi9sYW5ndWFnZXMvanNvbi5wbHVnaW4nO1xuaW1wb3J0IHsgTWFya2Rvd25MYW5ndWFnZVBsdWdpbiB9IGZyb20gJy4vbGFuZ3VhZ2VzL21hcmtkb3duLnBsdWdpbic7XG5pbXBvcnQgeyBTYXNzTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuL2xhbmd1YWdlcy9zYXNzLnBsdWdpbic7XG5pbXBvcnQgeyBTUUxMYW5ndWFnZVBsdWdpbiB9IGZyb20gJy4vbGFuZ3VhZ2VzL3NxbC5wbHVnaW4nO1xuaW1wb3J0IHsgVHlwZVNjcmlwdExhbmd1YWdlUGx1Z2luIH0gZnJvbSAnLi9sYW5ndWFnZXMvdHlwZXNjcmlwdC5wbHVnaW4nO1xuaW1wb3J0IHsgWE1MTGFuZ3VhZ2VQbHVnaW4gfSBmcm9tICcuL2xhbmd1YWdlcy94bWwucGx1Z2luJztcbmltcG9ydCB7IEdpdEh1YkRhcmtUaGVtZVBsdWdpbiB9IGZyb20gJy4vdGhlbWVzL2dpdGh1Yi1kYXJrLnBsdWdpbic7XG5pbXBvcnQgeyBHaXRIdWJMaWdodFRoZW1lUGx1Z2luIH0gZnJvbSAnLi90aGVtZXMvZ2l0aHViLWxpZ2h0LnBsdWdpbic7XG5pbXBvcnQgeyBMaWdodFRoZW1lUGx1Z2luIH0gZnJvbSAnLi90aGVtZXMvbGlnaHQucGx1Z2luJztcbmltcG9ydCB7IE9uZURhcmtUaGVtZVBsdWdpbiB9IGZyb20gJy4vdGhlbWVzL29uZS1kYXJrLnBsdWdpbic7XG5cbi8qKlxuICogRGVmYXVsdCBwbHVnaW4gY29uZmlndXJhdGlvbiB3aXRoIGFsbCBidWlsdC1pbiBwbHVnaW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGVmYXVsdENvZGVFZGl0b3JQbHVnaW5zKCk6IEFYQ29kZUVkaXRvclBsdWdpbkNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgbGFuZ3VhZ2VzOiBbXG4gICAgICBuZXcgSmF2YVNjcmlwdExhbmd1YWdlUGx1Z2luKCksXG4gICAgICBuZXcgVHlwZVNjcmlwdExhbmd1YWdlUGx1Z2luKCksXG4gICAgICBuZXcgSlNPTkxhbmd1YWdlUGx1Z2luKCksXG4gICAgICBuZXcgSFRNTExhbmd1YWdlUGx1Z2luKCksXG4gICAgICBuZXcgQ1NTTGFuZ3VhZ2VQbHVnaW4oKSxcbiAgICAgIG5ldyBTYXNzTGFuZ3VhZ2VQbHVnaW4oKSxcbiAgICAgIG5ldyBTUUxMYW5ndWFnZVBsdWdpbigpLFxuICAgICAgbmV3IFhNTExhbmd1YWdlUGx1Z2luKCksXG4gICAgICBuZXcgTWFya2Rvd25MYW5ndWFnZVBsdWdpbigpLFxuICAgIF0sXG4gICAgdGhlbWVzOiBbXG4gICAgICBuZXcgT25lRGFya1RoZW1lUGx1Z2luKCksXG4gICAgICBuZXcgTGlnaHRUaGVtZVBsdWdpbigpLFxuICAgICAgbmV3IEdpdEh1YkxpZ2h0VGhlbWVQbHVnaW4oKSxcbiAgICAgIG5ldyBHaXRIdWJEYXJrVGhlbWVQbHVnaW4oKSxcbiAgICBdLFxuICAgIGZvcm1hdHRlcnM6IFtuZXcgUHJldHRpZXJGb3JtYXR0ZXJQbHVnaW4oKV0sXG4gICAgZXh0ZW5zaW9uczogW10sXG4gIH07XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nimport { provideDefaultCodeEditorPlugins } from './default/config';\n/**\n * Injection token for providing code editor plugin configuration\n */\nexport const AX_CODE_EDITOR_PLUGIN_CONFIG = new InjectionToken('AX_CODE_EDITOR_PLUGIN_CONFIG', {\n providedIn: 'root',\n factory: () => provideDefaultCodeEditorPlugins(),\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL3BsdWdpbnMvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsOEJBQThCLEVBQzlCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLCtCQUErQixFQUFFO0NBQ2pELENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdENvZGVFZGl0b3JQbHVnaW5zIH0gZnJvbSAnLi9kZWZhdWx0L2NvbmZpZyc7XG5pbXBvcnQgeyBBWENvZGVFZGl0b3JQbHVnaW5Db25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIHByb3ZpZGluZyBjb2RlIGVkaXRvciBwbHVnaW4gY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgY29uc3QgQVhfQ09ERV9FRElUT1JfUExVR0lOX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWENvZGVFZGl0b3JQbHVnaW5Db25maWc+KFxuICAnQVhfQ09ERV9FRElUT1JfUExVR0lOX0NPTkZJRycsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gcHJvdmlkZURlZmF1bHRDb2RlRWRpdG9yUGx1Z2lucygpLFxuICB9LFxuKTtcbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AX_CODE_EDITOR_PLUGIN_CONFIG } from './tokens';\nimport * as i0 from \"@angular/core\";\n/**\n * Registry service for managing code editor plugins\n */\nexport class AXCodeEditorPluginRegistry {\n constructor() {\n this.config = inject(AX_CODE_EDITOR_PLUGIN_CONFIG, { optional: true });\n this.languagePlugins = new Map();\n this.themePlugins = new Map();\n this.formatterPlugins = new Map();\n this.extensionPlugins = new Map();\n this.initializePlugins();\n }\n initializePlugins() {\n if (!this.config)\n return;\n // Register language plugins\n this.config.languages?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n });\n // Register theme plugins\n this.config.themes?.forEach((plugin) => {\n this.themePlugins.set(plugin.id, plugin);\n });\n // Register formatter plugins\n this.config.formatters?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n });\n // Register extension plugins\n this.config.extensions?.forEach((plugin) => {\n this.extensionPlugins.set(plugin.id, plugin);\n });\n }\n /**\n * Get language extension for the specified language\n */\n async getLanguageExtension(language) {\n const plugin = this.languagePlugins.get(language);\n if (!plugin) {\n console.warn(`No language plugin found for: ${language}`);\n return [];\n }\n return plugin.getExtension();\n }\n /**\n * Get theme extension by theme ID\n */\n async getThemeExtension(themeId) {\n const plugin = this.themePlugins.get(themeId);\n if (!plugin) {\n console.warn(`No theme plugin found for: ${themeId}`);\n return [];\n }\n return plugin.getExtension();\n }\n /**\n * Format text using the appropriate formatter for the language\n */\n async format(text, language) {\n const plugin = this.formatterPlugins.get(language);\n if (!plugin) {\n return null;\n }\n return plugin.format(text, language);\n }\n /**\n * Get all registered extension plugins\n */\n async getExtensionPlugins() {\n const extensions = await Promise.all(Array.from(this.extensionPlugins.values()).map((plugin) => plugin.getExtension()));\n return extensions;\n }\n /**\n * Check if a language is supported\n */\n hasLanguage(language) {\n return this.languagePlugins.has(language);\n }\n /**\n * Check if a theme is available\n */\n hasTheme(themeId) {\n return this.themePlugins.has(themeId);\n }\n /**\n * Check if a formatter is available for a language\n */\n hasFormatter(language) {\n return this.formatterPlugins.has(language);\n }\n /**\n * Get all available language identifiers\n */\n getAvailableLanguages() {\n return Array.from(this.languagePlugins.keys());\n }\n /**\n * Get all available theme identifiers\n */\n getAvailableThemes() {\n return Array.from(this.themePlugins.keys());\n }\n /**\n * Register a language plugin at runtime\n */\n registerLanguagePlugin(plugin) {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n }\n /**\n * Register a theme plugin at runtime\n */\n registerThemePlugin(plugin) {\n this.themePlugins.set(plugin.id, plugin);\n }\n /**\n * Register a formatter plugin at runtime\n */\n registerFormatterPlugin(plugin) {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n }\n /**\n * Register an extension plugin at runtime\n */\n registerExtensionPlugin(plugin) {\n this.extensionPlugins.set(plugin.id, plugin);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorPluginRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorPluginRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorPluginRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9wbHVnaW5zL3JlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUV4RDs7R0FFRztBQUVILE1BQU0sT0FBTywwQkFBMEI7SUFRckM7UUFQUSxXQUFNLEdBQW9DLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRW5HLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUM7UUFDaEUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztRQUNsRSxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztRQUd4RSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFekIsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElB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Qy9DLENBQUM7K0dBdEpVLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRGIsTUFBTTs7NEZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHtcbiAgQVhDb2RlRWRpdG9yRXh0ZW5zaW9uUGx1Z2luLFxuICBBWENvZGVFZGl0b3JGb3JtYXR0ZXJQbHVnaW4sXG4gIEFYQ29kZUVkaXRvckxhbmd1YWdlUGx1Z2luLFxuICBBWENvZGVFZGl0b3JQbHVnaW5Db25maWcsXG4gIEFYQ29kZUVkaXRvclRoZW1lUGx1Z2luLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFYX0NPREVfRURJVE9SX1BMVUdJTl9DT05GSUcgfSBmcm9tICcuL3Rva2Vucyc7XG5cbi8qKlxuICogUmVnaXN0cnkgc2VydmljZSBmb3IgbWFuYWdpbmcgY29kZSBlZGl0b3IgcGx1Z2luc1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ29kZUVkaXRvclBsdWdpblJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBjb25maWc6IEFYQ29kZUVkaXRvclBsdWdpbkNvbmZpZyB8IG51bGwgPSBpbmplY3QoQVhfQ09ERV9FRElUT1JfUExVR0lOX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIGxhbmd1YWdlUGx1Z2lucyA9IG5ldyBNYXA8c3RyaW5nLCBBWENvZGVFZGl0b3JMYW5ndWFnZVBsdWdpbj4oKTtcbiAgcHJpdmF0ZSB0aGVtZVBsdWdpbnMgPSBuZXcgTWFwPHN0cmluZywgQVhDb2RlRWRpdG9yVGhlbWVQbHVnaW4+KCk7XG4gIHByaXZhdGUgZm9ybWF0dGVyUGx1Z2lucyA9IG5ldyBNYXA8c3RyaW5nLCBBWENvZGVFZGl0b3JGb3JtYXR0ZXJQbHVnaW4+KCk7XG4gIHByaXZhdGUgZXh0ZW5zaW9uUGx1Z2lucyA9IG5ldyBNYXA8c3RyaW5nLCBBWENvZGVFZGl0b3JFeHRlbnNpb25QbHVnaW4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplUGx1Z2lucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplUGx1Z2lucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnKSByZXR1cm47XG5cbiAgICAvLyBSZWdpc3RlciBsYW5ndWFnZSBwbHVnaW5zXG4gICAgdGhpcy5jb25maWcubGFuZ3VhZ2VzPy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgIHBsdWdpbi5sYW5ndWFnZXMuZm9yRWFjaCgobGFuZykgPT4ge1xuICAgICAgICB0aGlzLmxhbmd1YWdlUGx1Z2lucy5zZXQobGFuZywgcGx1Z2luKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gUmVnaXN0ZXIgdGhlbWUgcGx1Z2luc1xuICAgIHRoaXMuY29uZmlnLnRoZW1lcz8uZm9yRWFjaCgocGx1Z2luKSA9PiB7XG4gICAgICB0aGlzLnRoZW1lUGx1Z2lucy5zZXQocGx1Z2luLmlkLCBwbHVnaW4pO1xuICAgIH0pO1xuXG4gICAgLy8gUmVnaXN0ZXIgZm9ybWF0dGVyIHBsdWdpbnNcbiAgICB0aGlzLmNvbmZpZy5mb3JtYXR0ZXJzPy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgIHBsdWdpbi5sYW5ndWFnZXMuZm9yRWFjaCgobGFuZykgPT4ge1xuICAgICAgICB0aGlzLmZvcm1hdHRlclBsdWdpbnMuc2V0KGxhbmcsIHBsdWdpbik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIFJlZ2lzdGVyIGV4dGVuc2lvbiBwbHVnaW5zXG4gICAgdGhpcy5jb25maWcuZXh0ZW5zaW9ucz8uZm9yRWFjaCgocGx1Z2luKSA9PiB7XG4gICAgICB0aGlzLmV4dGVuc2lvblBsdWdpbnMuc2V0KHBsdWdpbi5pZCwgcGx1Z2luKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGFuZ3VhZ2UgZXh0ZW5zaW9uIGZvciB0aGUgc3BlY2lmaWVkIGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBnZXRMYW5ndWFnZUV4dGVuc2lvbihsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCBwbHVnaW4gPSB0aGlzLmxhbmd1YWdlUGx1Z2lucy5nZXQobGFuZ3VhZ2UpO1xuICAgIGlmICghcGx1Z2luKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE5vIGxhbmd1YWdlIHBsdWdpbiBmb3VuZCBmb3I6ICR7bGFuZ3VhZ2V9YCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBwbHVnaW4uZ2V0RXh0ZW5zaW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZW1lIGV4dGVuc2lvbiBieSB0aGVtZSBJRFxuICAgKi9cbiAgYXN5bmMgZ2V0VGhlbWVFeHRlbnNpb24odGhlbWVJZDogc3RyaW5nKTogUHJvbWlzZTxFeHRlbnNpb24+IHtcbiAgICBjb25zdCBwbHVnaW4gPSB0aGlzLnRoZW1lUGx1Z2lucy5nZXQodGhlbWVJZCk7XG4gICAgaWYgKCFwbHVnaW4pIHtcbiAgICAgIGNvbnNvbGUud2FybihgTm8gdGhlbWUgcGx1Z2luIGZvdW5kIGZvcjogJHt0aGVtZUlkfWApO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gcGx1Z2luLmdldEV4dGVuc2lvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0ZXh0IHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBmb3JtYXR0ZXIgZm9yIHRoZSBsYW5ndWFnZVxuICAgKi9cbiAgYXN5bmMgZm9ybWF0KHRleHQ6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMuZm9ybWF0dGVyUGx1Z2lucy5nZXQobGFuZ3VhZ2UpO1xuICAgIGlmICghcGx1Z2luKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHBsdWdpbi5mb3JtYXQodGV4dCwgbGFuZ3VhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgcmVnaXN0ZXJlZCBleHRlbnNpb24gcGx1Z2luc1xuICAgKi9cbiAgYXN5bmMgZ2V0RXh0ZW5zaW9uUGx1Z2lucygpOiBQcm9taXNlPEV4dGVuc2lvbltdPiB7XG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLmV4dGVuc2lvblBsdWdpbnMudmFsdWVzKCkpLm1hcCgocGx1Z2luKSA9PiBwbHVnaW4uZ2V0RXh0ZW5zaW9uKCkpLFxuICAgICk7XG4gICAgcmV0dXJuIGV4dGVuc2lvbnM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBsYW5ndWFnZSBpcyBzdXBwb3J0ZWRcbiAgICovXG4gIGhhc0xhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVBsdWdpbnMuaGFzKGxhbmd1YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRoZW1lIGlzIGF2YWlsYWJsZVxuICAgKi9cbiAgaGFzVGhlbWUodGhlbWVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWVQbHVnaW5zLmhhcyh0aGVtZUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGZvcm1hdHRlciBpcyBhdmFpbGFibGUgZm9yIGEgbGFuZ3VhZ2VcbiAgICovXG4gIGhhc0Zvcm1hdHRlcihsYW5ndWFnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyUGx1Z2lucy5oYXMobGFuZ3VhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGlkZW50aWZpZXJzXG4gICAqL1xuICBnZXRBdmFpbGFibGVMYW5ndWFnZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMubGFuZ3VhZ2VQbHVnaW5zLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBhdmFpbGFibGUgdGhlbWUgaWRlbnRpZmllcnNcbiAgICovXG4gIGdldEF2YWlsYWJsZVRoZW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy50aGVtZVBsdWdpbnMua2V5cygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGxhbmd1YWdlIHBsdWdpbiBhdCBydW50aW1lXG4gICAqL1xuICByZWdpc3Rlckxhbmd1YWdlUGx1Z2luKHBsdWdpbjogQVhDb2RlRWRpdG9yTGFuZ3VhZ2VQbHVnaW4pOiB2b2lkIHtcbiAgICBwbHVnaW4ubGFuZ3VhZ2VzLmZvckVhY2goKGxhbmcpID0+IHtcbiAgICAgIHRoaXMubGFuZ3VhZ2VQbHVnaW5zLnNldChsYW5nLCBwbHVnaW4pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgdGhlbWUgcGx1Z2luIGF0IHJ1bnRpbWVcbiAgICovXG4gIHJlZ2lzdGVyVGhlbWVQbHVnaW4ocGx1Z2luOiBBWENvZGVFZGl0b3JUaGVtZVBsdWdpbik6IHZvaWQge1xuICAgIHRoaXMudGhlbWVQbHVnaW5zLnNldChwbHVnaW4uaWQsIHBsdWdpbik7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBmb3JtYXR0ZXIgcGx1Z2luIGF0IHJ1bnRpbWVcbiAgICovXG4gIHJlZ2lzdGVyRm9ybWF0dGVyUGx1Z2luKHBsdWdpbjogQVhDb2RlRWRpdG9yRm9ybWF0dGVyUGx1Z2luKTogdm9pZCB7XG4gICAgcGx1Z2luLmxhbmd1YWdlcy5mb3JFYWNoKChsYW5nKSA9PiB7XG4gICAgICB0aGlzLmZvcm1hdHRlclBsdWdpbnMuc2V0KGxhbmcsIHBsdWdpbik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gZXh0ZW5zaW9uIHBsdWdpbiBhdCBydW50aW1lXG4gICAqL1xuICByZWdpc3RlckV4dGVuc2lvblBsdWdpbihwbHVnaW46IEFYQ29kZUVkaXRvckV4dGVuc2lvblBsdWdpbik6IHZvaWQge1xuICAgIHRoaXMuZXh0ZW5zaW9uUGx1Z2lucy5zZXQocGx1Z2luLmlkLCBwbHVnaW4pO1xuICB9XG59XG4iXX0=","import { AXComponent, AXValuableComponent, MXValueComponent } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Component, DestroyRef, PLATFORM_ID, afterNextRender, computed, effect, forwardRef, inject, input, output, signal, viewChild, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXCodeEditorPluginRegistry } from './plugins/registry.service';\nimport * as i0 from \"@angular/core\";\nexport class AXCodeEditorComponent extends MXValueComponent {\n /** Computed minimum height based on minRow (excluding gutter/line numbers). */\n getMinHeight() {\n const rows = this.minRow();\n if (!rows || rows <= 0)\n return null;\n // CodeMirror default line height is typically 1.5em, but we use rem for consistency\n // This calculates height without accounting for gutter since gutter is separate\n return `calc(${rows} * 1.5rem)`;\n }\n constructor() {\n super();\n // Inputs (signals)\n // value = input<string>('');\n /** Active language identifier from default plugins. Default: 'javascript'. */\n this.language = input('javascript', ...(ngDevMode ? [{ debugName: \"language\" }] : []));\n /** When true, the editor becomes readonly (non-editable). */\n this.editorReadonly = input(false, ...(ngDevMode ? [{ debugName: \"editorReadonly\", alias: 'readonly' }] : [{ alias: 'readonly' }]));\n /** Placeholder text shown when the document is empty. */\n this.placeholder = input('', ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n /** Toggle rendering of line numbers in the gutter. */\n this.lineNumbers = input(true, ...(ngDevMode ? [{ debugName: \"lineNumbers\" }] : []));\n /** Soft-wrap long lines when true. */\n this.lineWrapping = input(false, ...(ngDevMode ? [{ debugName: \"lineWrapping\" }] : []));\n /** Tab size (spaces per indent level). */\n this.tabSize = input(2, ...(ngDevMode ? [{ debugName: \"tabSize\" }] : []));\n /** When true, the Tab key indents instead of moving focus. */\n this.indentWithTab = input(true, ...(ngDevMode ? [{ debugName: \"indentWithTab\" }] : []));\n /** Theme identifier. If null, uses platform theme mode (dark/light). */\n this.theme = input(null, ...(ngDevMode ? [{ debugName: \"theme\" }] : []));\n /** Additional CodeMirror extensions to apply. Reconfigures at runtime. */\n this.extensions = input([], ...(ngDevMode ? [{ debugName: \"extensions\" }] : []));\n /** ARIA label for accessibility. */\n this.ariaLabel = input(null, ...(ngDevMode ? [{ debugName: \"ariaLabel\" }] : []));\n /** Focus the editor after first render. */\n this.focusOnReady = input(false, ...(ngDevMode ? [{ debugName: \"focusOnReady\" }] : []));\n /** If true, format the document via Prettier before emitting save. */\n this.formatOnSave = input(false, ...(ngDevMode ? [{ debugName: \"formatOnSave\" }] : []));\n /** Minimum number of rows (lines) to display. Controls the minimum height of the editor. */\n this.minRow = input(null, ...(ngDevMode ? [{ debugName: \"minRow\" }] : []));\n /**\n * Custom autocompletion options: either a static array of Completion items\n * or a CodeMirror CompletionSource function.\n */\n this.customCompletions = input(null, ...(ngDevMode ? [{ debugName: \"customCompletions\" }] : []));\n // Outputs (signals)\n // valueChange = output<string>();\n /** Emits when the editor is fully initialized and ready. */\n this.ready = output();\n /** Emits when the user triggers save (Ctrl/Cmd+S). Payload is the current text. */\n this.save = output();\n // View container\n this.host = viewChild('host', ...(ngDevMode ? [{ debugName: \"host\" }] : []));\n // Runtime state\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.platformService = inject(AXPlatform);\n this.pluginRegistry = inject(AXCodeEditorPluginRegistry);\n this.editorViewSig = signal(null, ...(ngDevMode ? [{ debugName: \"editorViewSig\" }] : []));\n // Compartments to reconfigure editor without recreating it\n this.languageCompartment = null;\n this.readonlyCompartment = null;\n this.themeCompartment = null;\n this.placeholderCompartment = null;\n this.wrappingCompartment = null;\n this.keymapExtrasCompartment = null;\n this.tabSizeCompartment = null;\n this.lineNumbersCompartment = null;\n // Cached CodeMirror modules after initialization\n this.cm = { view: null, state: null, language: null, autocomplete: null, commands: null, search: null, lint: null };\n this.isBrowser = computed(() => isPlatformBrowser(this.platformId), ...(ngDevMode ? [{ debugName: \"isBrowser\" }] : []));\n afterNextRender(() => {\n if (!this.isBrowser())\n return;\n this.initializeEditor();\n });\n // Keep model in sync when external value changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view)\n return;\n const newDoc = this.value ?? '';\n const current = view.state.doc.toString();\n if (newDoc !== current) {\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: newDoc },\n });\n }\n });\n // React to dynamic configuration changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.languageCompartment)\n return;\n const lang = this.language();\n this.pluginRegistry.getLanguageExtension(lang).then((ext) => {\n if (!view || !this.languageCompartment)\n return;\n view.dispatch({ effects: this.languageCompartment.reconfigure(ext) });\n });\n });\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.readonlyCompartment)\n return;\n const editable = !this.editorReadonly();\n import('@codemirror/view').then(({ EditorView }) => {\n if (!view || !this.readonlyCompartment)\n return;\n view.dispatch({ effects: this.readonlyCompartment.reconfigure(EditorView.editable.of(editable)) });\n });\n });\n effect(() => {\n const view = this.editorViewSig();\n // Establish reactive dependency on theme and platform theme\n const customTheme = this.theme();\n const platformTheme = this.platformService.themeMode();\n if (!view || !this.themeCompartment)\n return;\n this.resolveThemeExtension(customTheme, platformTheme).then((themeExt) => {\n if (!view || !this.themeCompartment)\n return;\n view.dispatch({ effects: this.themeCompartment.reconfigure(themeExt) });\n });\n });\n effect(() => {\n this.placeholder();\n const view = this.editorViewSig();\n if (!view || !this.placeholderCompartment)\n return;\n import('@codemirror/view').then(({ placeholder }) => {\n if (!view || !this.placeholderCompartment)\n return;\n view.dispatch({ effects: this.placeholderCompartment.reconfigure(placeholder(this.placeholder() ?? '')) });\n });\n });\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.wrappingCompartment)\n return;\n const EditorView = this.cm.view?.EditorView;\n if (!EditorView)\n return;\n const nextExt = this.lineWrapping() ? EditorView.lineWrapping : [];\n this.reconfigure(this.wrappingCompartment, nextExt);\n });\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.tabSizeCompartment)\n return;\n const EditorState = this.cm.state?.EditorState;\n if (!EditorState)\n return;\n this.reconfigure(this.tabSizeCompartment, EditorState.tabSize.of(this.tabSize() ?? 2));\n });\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.keymapExtrasCompartment)\n return;\n const keymap = this.cm.view?.keymap;\n const commands = this.cm.commands;\n if (!keymap || !commands)\n return;\n this.reconfigure(this.keymapExtrasCompartment, keymap.of(this.indentWithTab() ? [commands.indentWithTab] : []));\n });\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.lineNumbersCompartment)\n return;\n const lineNumbers = this.cm.view?.lineNumbers;\n if (!lineNumbers)\n return;\n this.reconfigure(this.lineNumbersCompartment, this.lineNumbers() ? lineNumbers() : []);\n });\n }\n async initializeEditor() {\n const hostEl = this.host()?.nativeElement;\n if (!hostEl)\n return;\n await this.loadCodeMirrorModules();\n this.createCompartments();\n const keymaps = this.buildKeymaps();\n const viewMod = this.cm.view;\n const stateMod = this.cm.state;\n const languageMod = this.cm.language;\n const autoMod = this.cm.autocomplete;\n const commandsMod = this.cm.commands;\n const searchMod = this.cm.search;\n const lintMod = this.cm.lint;\n if (!viewMod || !stateMod || !languageMod || !autoMod || !commandsMod || !searchMod || !lintMod)\n return;\n const languageExt = await this.pluginRegistry.getLanguageExtension(this.language());\n const themeExt = await this.resolveThemeExtension(this.theme(), this.platformService.themeMode());\n const placeholderExt = viewMod.placeholder(this.placeholder() ?? '');\n const editableExt = viewMod.EditorView.editable.of(!this.editorReadonly());\n const wrappingExt = this.lineWrapping() ? viewMod.EditorView.lineWrapping : [];\n const tabSizeExt = stateMod.EditorState.tabSize.of(this.tabSize() ?? 2);\n const lineNumbersExt = this.lineNumbers() ? viewMod.lineNumbers() : [];\n const autoCompleteExt = autoMod.autocompletion({\n override: this.buildCustomCompletionSources(),\n });\n const baseExtensions = [\n this.lineNumbersCompartment.of(lineNumbersExt),\n viewMod.highlightActiveLine(),\n viewMod.highlightActiveLineGutter(),\n viewMod.drawSelection(),\n viewMod.dropCursor(),\n viewMod.rectangularSelection(),\n viewMod.crosshairCursor(),\n viewMod.highlightSpecialChars(),\n languageMod.syntaxHighlighting(languageMod.defaultHighlightStyle, { fallback: true }),\n languageMod.bracketMatching(),\n languageMod.foldGutter(),\n commandsMod.history(),\n searchMod.highlightSelectionMatches(),\n viewMod.keymap.of(keymaps),\n autoCompleteExt,\n this.languageCompartment.of(languageExt),\n this.readonlyCompartment.of(editableExt),\n this.themeCompartment.of(themeExt),\n this.placeholderCompartment.of(placeholderExt),\n this.wrappingCompartment.of(wrappingExt),\n this.tabSizeCompartment.of(tabSizeExt),\n this.keymapExtrasCompartment.of(viewMod.keymap.of(this.indentWithTab() ? [commandsMod.indentWithTab] : [])),\n ...this.extensions(),\n ];\n const updateListener = viewMod.EditorView.updateListener.of((vu) => {\n if (vu.docChanged) {\n const text = vu.state.doc.toString();\n // this.writeValue(text);\n this.value = text;\n }\n });\n const state = stateMod.EditorState.create({\n doc: this.value ?? '',\n extensions: [...baseExtensions, updateListener],\n });\n const view = new viewMod.EditorView({ state, parent: hostEl });\n // Update listener for external changes (selection, viewport, etc.) if needed later\n view.dispatch({ effects: [] });\n this.editorViewSig.set(view);\n this.destroyRef.onDestroy(() => {\n view.destroy();\n this.editorViewSig.set(null);\n });\n if (this.focusOnReady()) {\n view.focus();\n }\n this.ready.emit();\n }\n reconfigure(comp, ext) {\n const view = this.editorViewSig();\n if (!view || !comp)\n return;\n view.dispatch({ effects: comp.reconfigure(ext) });\n }\n /**\n * Handles Ctrl/Cmd+S on the host. If formatOnSave is enabled, attempts\n * to format the document first, then emits the saved text.\n */\n async onSaveShortcut(event) {\n event.preventDefault();\n const view = this.editorViewSig();\n const current = view?.state.doc.toString() ?? this.value ?? '';\n const payload = current;\n if (this.formatOnSave()) {\n await this.format(true);\n }\n this.save.emit(payload);\n }\n async loadCodeMirrorModules() {\n const [viewMod, stateMod, langMod, autoMod, cmdMod, searchMod, lintMod] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/state'),\n import('@codemirror/language'),\n import('@codemirror/autocomplete'),\n import('@codemirror/commands'),\n import('@codemirror/search'),\n import('@codemirror/lint'),\n ]);\n this.cm.view = viewMod;\n this.cm.state = stateMod;\n this.cm.language = langMod;\n this.cm.autocomplete = autoMod;\n this.cm.commands = cmdMod;\n this.cm.search = searchMod;\n this.cm.lint = lintMod;\n }\n createCompartments() {\n const stateMod = this.cm.state;\n if (!stateMod)\n return;\n this.languageCompartment = new stateMod.Compartment();\n this.readonlyCompartment = new stateMod.Compartment();\n this.themeCompartment = new stateMod.Compartment();\n this.placeholderCompartment = new stateMod.Compartment();\n this.wrappingCompartment = new stateMod.Compartment();\n this.tabSizeCompartment = new stateMod.Compartment();\n this.keymapExtrasCompartment = new stateMod.Compartment();\n this.lineNumbersCompartment = new stateMod.Compartment();\n }\n buildKeymaps() {\n const cmdMod = this.cm.commands;\n const searchMod = this.cm.search;\n const autoMod = this.cm.autocomplete;\n const lintMod = this.cm.lint;\n if (!cmdMod || !searchMod || !autoMod || !lintMod)\n return [];\n return [\n ...cmdMod.defaultKeymap,\n ...cmdMod.historyKeymap,\n ...searchMod.searchKeymap,\n ...autoMod.completionKeymap,\n ...lintMod.lintKeymap,\n ];\n }\n async resolveThemeExtension(customTheme, platformTheme) {\n // If custom theme is specified, use it\n if (customTheme) {\n return this.pluginRegistry.getThemeExtension(customTheme);\n }\n // Otherwise, use platform theme (handle 'system' by defaulting to 'github-light')\n const themeId = platformTheme === 'dark' ? 'github-dark' : 'github-light';\n return this.pluginRegistry.getThemeExtension(themeId);\n }\n buildCustomCompletionSources() {\n const provided = this.customCompletions();\n if (!provided)\n return undefined;\n if (typeof provided === 'function') {\n return [provided];\n }\n // Treat array as a static completion list\n const staticSource = (context) => {\n const from = context.pos;\n return { from, options: provided };\n };\n return [staticSource];\n }\n // Public API\n /** Programmatically focus the editor. */\n focus() {\n const view = this.editorViewSig();\n if (view)\n view.focus();\n }\n /** Select all text in the current document. */\n selectAll() {\n const view = this.editorViewSig();\n if (!view)\n return;\n const length = view.state.doc.length;\n view.dispatch({ selection: { anchor: 0, head: length } });\n }\n // Formats the current document using the registered formatter plugin (if available for the active language).\n // Returns the formatted text or null if unchanged/unsupported.\n async format(affect = true) {\n const view = this.editorViewSig();\n if (!view)\n return null;\n const source = view.state.doc.toString();\n if (!source)\n return null;\n const formatted = await this.pluginRegistry.format(source, this.language());\n if (!formatted || formatted === source)\n return null;\n if (affect) {\n view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: formatted } });\n }\n return formatted;\n }\n /** Returns the total number of characters in the current document. */\n getTotalCharacters() {\n const view = this.editorViewSig();\n if (view)\n return view.state.doc.length ?? 0;\n const text = this.value ?? '';\n return text.length;\n }\n /** Returns the total number of lines in the current document. */\n getTotalLines() {\n const view = this.editorViewSig();\n if (view) {\n const doc = view.state.doc;\n return typeof doc?.lines === 'number' ? doc.lines : doc.toString().split(/\\r?\\n/).length;\n }\n const text = this.value ?? '';\n return text ? text.split(/\\r?\\n/).length : 1;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.15\", type: AXCodeEditorComponent, isStandalone: true, selector: \"ax-code-editor\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, language: { classPropertyName: \"language\", publicName: \"language\", isSignal: true, isRequired: false, transformFunction: null }, editorReadonly: { classPropertyName: \"editorReadonly\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: true, isRequired: false, transformFunction: null }, lineNumbers: { classPropertyName: \"lineNumbers\", publicName: \"lineNumbers\", isSignal: true, isRequired: false, transformFunction: null }, lineWrapping: { classPropertyName: \"lineWrapping\", publicName: \"lineWrapping\", isSignal: true, isRequired: false, transformFunction: null }, tabSize: { classPropertyName: \"tabSize\", publicName: \"tabSize\", isSignal: true, isRequired: false, transformFunction: null }, indentWithTab: { classPropertyName: \"indentWithTab\", publicName: \"indentWithTab\", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: \"theme\", publicName: \"theme\", isSignal: true, isRequired: false, transformFunction: null }, extensions: { classPropertyName: \"extensions\", publicName: \"extensions\", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: \"ariaLabel\", publicName: \"ariaLabel\", isSignal: true, isRequired: false, transformFunction: null }, focusOnReady: { classPropertyName: \"focusOnReady\", publicName: \"focusOnReady\", isSignal: true, isRequired: false, transformFunction: null }, formatOnSave: { classPropertyName: \"formatOnSave\", publicName: \"formatOnSave\", isSignal: true, isRequired: false, transformFunction: null }, minRow: { classPropertyName: \"minRow\", publicName: \"minRow\", isSignal: true, isRequired: false, transformFunction: null }, customCompletions: { classPropertyName: \"customCompletions\", publicName: \"customCompletions\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\", valueChange: \"valueChange\", stateChange: \"stateChange\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", ready: \"ready\", save: \"save\" }, host: { listeners: { \"keydown.control.s\": \"onSaveShortcut($event)\" }, classAttribute: \"ax-code-editor block\" }, providers: [\n { provide: AXValuableComponent, useExisting: AXCodeEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCodeEditorComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCodeEditorComponent },\n ], viewQueries: [{ propertyName: \"host\", first: true, predicate: [\"host\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-editor-container\" [style.min-height]=\"getMinHeight()\">\n <div class=\"ax-code-editor-container\">\n <div\n #host\n class=\"cm-editor\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-readonly]=\"editorReadonly() ? 'true' : 'false'\"\n [attr.data-placeholder]=\"placeholder() ?? null\"\n ></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n `, isInline: true, styles: [\":host{display:block;width:100%;height:100%}:host.ax-disable{opacity:.5;cursor:not-allowed}:host>.ax-editor-container{height:100%;width:100%;align-items:start;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0;--ax-comp-editor-border-width: 1px}:host .ax-code-editor-container{display:flex;flex-direction:column;height:100%;width:100%}:host .cm-editor{width:100%;max-width:100%;overflow:auto}:host .cm-editor.cm-focused{outline:none}:host .ax-error-message{padding-inline:.5rem}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-code-editor', host: {\n '(keydown.control.s)': 'onSaveShortcut($event)',\n class: 'ax-code-editor block',\n }, inputs: ['disabled', 'value', 'state', 'name', 'id'], outputs: ['onValueChanged', 'valueChange', 'stateChange', 'readonlyChange', 'disabledChange'], providers: [\n { provide: AXValuableComponent, useExisting: AXCodeEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCodeEditorComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCodeEditorComponent },\n ], template: `\n <div class=\"ax-editor-container\" [style.min-height]=\"getMinHeight()\">\n <div class=\"ax-code-editor-container\">\n <div\n #host\n class=\"cm-editor\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-readonly]=\"editorReadonly() ? 'true' : 'false'\"\n [attr.data-placeholder]=\"placeholder() ?? null\"\n ></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n `, styles: [\":host{display:block;width:100%;height:100%}:host.ax-disable{opacity:.5;cursor:not-allowed}:host>.ax-editor-container{height:100%;width:100%;align-items:start;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0;--ax-comp-editor-border-width: 1px}:host .ax-code-editor-container{display:flex;flex-direction:column;height:100%;width:100%}:host .cm-editor{width:100%;max-width:100%;overflow:auto}:host .cm-editor.cm-focused{outline:none}:host .ax-error-message{padding-inline:.5rem}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { language: [{ type: i0.Input, args: [{ isSignal: true, alias: \"language\", required: false }] }], editorReadonly: [{ type: i0.Input, args: [{ isSignal: true, alias: \"readonly\", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: \"placeholder\", required: false }] }], lineNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: \"lineNumbers\", required: false }] }], lineWrapping: [{ type: i0.Input, args: [{ isSignal: true, alias: \"lineWrapping\", required: false }] }], tabSize: [{ type: i0.Input, args: [{ isSignal: true, alias: \"tabSize\", required: false }] }], indentWithTab: [{ type: i0.Input, args: [{ isSignal: true, alias: \"indentWithTab\", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: \"theme\", required: false }] }], extensions: [{ type: i0.Input, args: [{ isSignal: true, alias: \"extensions\", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: \"ariaLabel\", required: false }] }], focusOnReady: [{ type: i0.Input, args: [{ isSignal: true, alias: \"focusOnReady\", required: false }] }], formatOnSave: [{ type: i0.Input, args: [{ isSignal: true, alias: \"formatOnSave\", required: false }] }], minRow: [{ type: i0.Input, args: [{ isSignal: true, alias: \"minRow\", required: false }] }], customCompletions: [{ type: i0.Input, args: [{ isSignal: true, alias: \"customCompletions\", required: false }] }], ready: [{ type: i0.Output, args: [\"ready\"] }], save: [{ type: i0.Output, args: [\"save\"] }], host: [{ type: i0.ViewChild, args: ['host', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvZGUtZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFdBQVcsRUFDWCxlQUFlLEVBQ2YsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFtR3hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQkFBd0I7SUE2RWpFLCtFQUErRTtJQUMvRSxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNwQyxvRkFBb0Y7UUFDcEYsZ0ZBQWdGO1FBQ2hGLE9BQU8sUUFBUSxJQUFJLFlBQVksQ0FBQztJQUNsQyxDQUFDO0lBRUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXRGVixtQkFBbUI7UUFDbkIsNkJBQTZCO1FBQzdCLDhFQUE4RTtRQUM5RSxhQUFRLEdBQUcsS0FBSyxD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QUFFLHNCQUFzQjtxQkFDOUIsVUFDTyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FDM0MsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLGFBNkNsRjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHVCQUF1QixFQUFFO3dCQUNwRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzs0QkFDcEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsdUJBQXVCLEVBQUU7cUJBQzdELFlBQ1M7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7d2pEQThDNEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBBWFZhbHVhYmxlQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBQTEFURk9STV9JRCxcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhDb2RlRWRpdG9yRGVmYXVsdExhbmd1YWdlIH0gZnJvbSAnLi9wbHVnaW5zJztcbmltcG9ydCB7IEFYQ29kZUVkaXRvclBsdWdpblJlZ2lzdHJ5IH0gZnJvbSAnLi9wbHVnaW5zL3JlZ2lzdHJ5LnNlcnZpY2UnO1xuXG4vLyBSZS1leHBvcnQgbGFuZ3VhZ2UgdHlwZSBmb3IgZXh0ZXJuYWwgdXNlXG5leHBvcnQgdHlwZSB7IEFYQ29kZUVkaXRvckRlZmF1bHRMYW5ndWFnZSB9IGZyb20gJy4vcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcyc7XG5cbi8vIFR5cGUtb25seSBhbGlhc2VzIGZvciBDb2RlTWlycm9yIHR5cGVzICh0cmVlLXNoYWtlIGZyaWVuZGx5KVxudHlwZSBBWENvZGVFZGl0b3JFZGl0b3JWaWV3TGlrZSA9IGltcG9ydCgnQGNvZGVtaXJyb3IvdmlldycpLkVkaXRvclZpZXc7XG50eXBlIEFYQ29kZUVkaXRvcktleUJpbmRpbmdMaWtlID0gaW1wb3J0KCdAY29kZW1pcnJvci92aWV3JykuS2V5QmluZGluZztcbmV4cG9ydCB0eXBlIEFYQ29kZUVkaXRvckV4dGVuc2lvbkxpa2UgPSBpbXBvcnQoJ0Bjb2RlbWlycm9yL3N0YXRlJykuRXh0ZW5zaW9uO1xudHlwZSBBWENvZGVFZGl0b3JDb21wYXJ0bWVudExpa2UgPSBpbXBvcnQoJ0Bjb2RlbWlycm9yL3N0YXRlJykuQ29tcGFydG1lbnQ7XG5leHBvcnQgdHlwZSBBWENvZGVFZGl0b3JDb21wbGV0aW9uTGlrZSA9IGltcG9ydCgnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJykuQ29tcGxldGlvbjtcbmV4cG9ydCB0eXBlIEFYQ29kZUVkaXRvckNvbXBsZXRpb25Tb3VyY2VMaWtlID0gaW1wb3J0KCdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnKS5Db21wbGV0aW9uU291cmNlO1xudHlwZSBBWENvZGVFZGl0b3JDb21wbGV0aW9uQ29udGV4dExpa2UgPSBpbXBvcnQoJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZScpLkNvbXBsZXRpb25Db250ZXh0O1xuXG50eXBlIEFYQ29kZUVkaXRvclZpZXdNb2R1bGUgPSB0eXBlb2YgaW1wb3J0KCdAY29kZW1pcnJvci92aWV3Jyk7XG50eXBlIEFYQ29kZUVkaXRvclN0YXRlTW9kdWxlID0gdHlwZW9mIGltcG9ydCgnQGNvZGVtaXJyb3Ivc3RhdGUnKTtcbnR5cGUgQVhDb2RlRWRpdG9yTGFuZ3VhZ2VNb2R1bGUgPSB0eXBlb2YgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5ndWFnZScpO1xudHlwZSBBWENvZGVFZGl0b3JBdXRvY29tcGxldGVNb2R1bGUgPSB0eXBlb2YgaW1wb3J0KCdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnKTtcbnR5cGUgQVhDb2RlRWRpdG9yQ29tbWFuZHNNb2R1bGUgPSB0eXBlb2YgaW1wb3J0KCdAY29kZW1pcnJvci9jb21tYW5kcycpO1xudHlwZSBBWENvZGVFZGl0b3JTZWFyY2hNb2R1bGUgPSB0eXBlb2YgaW1wb3J0KCdAY29kZW1pcnJvci9zZWFyY2gnKTtcbnR5cGUgQVhDb2RlRWRpdG9yTGludE1vZHVsZSA9IHR5cGVvZiBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xpbnQnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29kZS1lZGl0b3InLFxuICBob3N0OiB7XG4gICAgJyhrZXlkb3duLmNvbnRyb2wucyknOiAnb25TYXZlU2hvcnRjdXQoJGV2ZW50KScsXG4gICAgY2xhc3M6ICdheC1jb2RlLWVkaXRvciBibG9jaycsXG4gIH0sXG4gIGlucHV0czogWydkaXNhYmxlZCcsICd2YWx1ZScsICdzdGF0ZScsICduYW1lJywgJ2lkJ10sXG4gIG91dHB1dHM6IFsnb25WYWx1ZUNoYW5nZWQnLCAndmFsdWVDaGFuZ2UnLCAnc3RhdGVDaGFuZ2UnLCAncmVhZG9ubHlDaGFuZ2UnLCAnZGlzYWJsZWRDaGFuZ2UnXSxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAmLmF4LWRpc2FibGUge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAuYXgtZWRpdG9yLWNvbnRhaW5lciB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgICAtLWF4LWNvbXAtZWRpdG9yLXNwYWNlLXN0YXJ0LXNpemU6IDA7XG4gICAgICAgICAgLS1heC1jb21wLWVkaXRvci1zcGFjZS1lbmQtc2l6ZTogMDtcbiAgICAgICAgICAtLWF4LWNvbXAtZWRpdG9yLWJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmF4LWNvZGUtZWRpdG9yLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbS1lZGl0b3Ige1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbS1lZGl0b3IuY20tZm9jdXNlZCB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5heC1lcnJvci1tZXNzYWdlIHtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC41cmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb2RlRWRpdG9yQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWENvZGVFZGl0b3JDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb2RlRWRpdG9yQ29tcG9uZW50IH0sXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWVkaXRvci1jb250YWluZXJcIiBbc3R5bGUubWluLWhlaWdodF09XCJnZXRNaW5IZWlnaHQoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWNvZGUtZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgI2hvc3RcbiAgICAgICAgICBjbGFzcz1cImNtLWVkaXRvclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSA/PyBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cImVkaXRvclJlYWRvbmx5KCkgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKCkgPz8gbnVsbFwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZXJyb3ItY29udGFpbmVyXCI+PC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29kZUVkaXRvckNvbXBvbmVudCBleHRlbmRzIE1YVmFsdWVDb21wb25lbnQ8c3RyaW5nPiB7XG4gIC8vIElucHV0cyAoc2lnbmFscylcbiAgLy8gdmFsdWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgLyoqIEFjdGl2ZSBsYW5ndWFnZSBpZGVudGlmaWVyIGZyb20gZGVmYXVsdCBwbHVnaW5zLiBEZWZhdWx0OiAnamF2YXNjcmlwdCcuICovXG4gIGxhbmd1YWdlID0gaW5wdXQ8QVhDb2RlRWRpdG9yRGVmYXVsdExhbmd1YWdlPignamF2YXNjcmlwdCcpO1xuICAvKiogV2hlbiB0cnVlLCB0aGUgZWRpdG9yIGJlY29tZXMgcmVhZG9ubHkgKG5vbi1lZGl0YWJsZSkuICovXG4gIGVkaXRvclJlYWRvbmx5ID0gaW5wdXQoZmFsc2UsIHsgYWxpYXM6ICdyZWFkb25seScgfSk7XG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0IHNob3duIHdoZW4gdGhlIGRvY3VtZW50IGlzIGVtcHR5LiAqL1xuICBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xuICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiBsaW5lIG51bWJlcnMgaW4gdGhlIGd1dHRlci4gKi9cbiAgbGluZU51bWJlcnMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIFNvZnQtd3JhcCBsb25nIGxpbmVzIHdoZW4gdHJ1ZS4gKi9cbiAgbGluZVdyYXBwaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogVGFiIHNpemUgKHNwYWNlcyBwZXIgaW5kZW50IGxldmVsKS4gKi9cbiAgdGFiU2l6ZSA9IGlucHV0PG51bWJlcj4oMik7XG4gIC8qKiBXaGVuIHRydWUsIHRoZSBUYWIga2V5IGluZGVudHMgaW5zdGVhZCBvZiBtb3ZpbmcgZm9jdXMuICovXG4gIGluZGVudFdpdGhUYWIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIFRoZW1lIGlkZW50aWZpZXIuIElmIG51bGwsIHVzZXMgcGxhdGZvcm0gdGhlbWUgbW9kZSAoZGFyay9saWdodCkuICovXG4gIHRoZW1lID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIC8qKiBBZGRpdGlvbmFsIENvZGVNaXJyb3IgZXh0ZW5zaW9ucyB0byBhcHBseS4gUmVjb25maWd1cmVzIGF0IHJ1bnRpbWUuICovXG4gIGV4dGVuc2lvbnMgPSBpbnB1dDxSZWFkb25seUFycmF5PEFYQ29kZUVkaXRvckV4dGVuc2lvbkxpa2U+PihbXSk7XG4gIC8qKiBBUklBIGxhYmVsIGZvciBhY2Nlc3NpYmlsaXR5LiAqL1xuICBhcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgLyoqIEZvY3VzIHRoZSBlZGl0b3IgYWZ0ZXIgZmlyc3QgcmVuZGVyLiAqL1xuICBmb2N1c09uUmVhZHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIC8qKiBJZiB0cnVlLCBmb3JtYXQgdGhlIGRvY3VtZW50IHZpYSBQcmV0dGllciBiZWZvcmUgZW1pdHRpbmcgc2F2ZS4gKi9cbiAgZm9ybWF0T25TYXZlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogTWluaW11bSBudW1iZXIgb2Ygcm93cyAobGluZXMpIHRvIGRpc3BsYXkuIENvbnRyb2xzIHRoZSBtaW5pbXVtIGhlaWdodCBvZiB0aGUgZWRpdG9yLiAqL1xuICBtaW5Sb3cgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogQ3VzdG9tIGF1dG9jb21wbGV0aW9uIG9wdGlvbnM6IGVpdGhlciBhIHN0YXRpYyBhcnJheSBvZiBDb21wbGV0aW9uIGl0ZW1zXG4gICAqIG9yIGEgQ29kZU1pcnJvciBDb21wbGV0aW9uU291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgY3VzdG9tQ29tcGxldGlvbnMgPSBpbnB1dDxSZWFkb25seUFycmF5PEFYQ29kZUVkaXRvckNvbXBsZXRpb25MaWtlPiB8IEFYQ29kZUVkaXRvckNvbXBsZXRpb25Tb3VyY2VMaWtlIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gT3V0cHV0cyAoc2lnbmFscylcbiAgLy8gdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICAvKiogRW1pdHMgd2hlbiB0aGUgZWRpdG9yIGlzIGZ1bGx5IGluaXRpYWxpemVkIGFuZCByZWFkeS4gKi9cbiAgcmVhZHkgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHVzZXIgdHJpZ2dlcnMgc2F2ZSAoQ3RybC9DbWQrUykuIFBheWxvYWQgaXMgdGhlIGN1cnJlbnQgdGV4dC4gKi9cbiAgc2F2ZSA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgLy8gVmlldyBjb250YWluZXJcbiAgaG9zdCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ2hvc3QnKTtcblxuICAvLyBSdW50aW1lIHN0YXRlXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2UgPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgcGx1Z2luUmVnaXN0cnkgPSBpbmplY3QoQVhDb2RlRWRpdG9yUGx1Z2luUmVnaXN0cnkpO1xuXG4gIHByaXZhdGUgZWRpdG9yVmlld1NpZyA9IHNpZ25hbDxBWENvZGVFZGl0b3JFZGl0b3JWaWV3TGlrZSB8IG51bGw+KG51bGwpO1xuXG4gIC8vIENvbXBhcnRtZW50cyB0byByZWNvbmZpZ3VyZSBlZGl0b3Igd2l0aG91dCByZWNyZWF0aW5nIGl0XG4gIHByaXZhdGUgbGFuZ3VhZ2VDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHlDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgdGhlbWVDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcGxhY2Vob2xkZXJDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgd3JhcHBpbmdDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUga2V5bWFwRXh0cmFzQ29tcGFydG1lbnQ6IEFYQ29kZUVkaXRvckNvbXBhcnRtZW50TGlrZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRhYlNpemVDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGluZU51bWJlcnNDb21wYXJ0bWVudDogQVhDb2RlRWRpdG9yQ29tcGFydG1lbnRMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gQ2FjaGVkIENvZGVNaXJyb3IgbW9kdWxlcyBhZnRlciBpbml0aWFsaXphdGlvblxuICBwcml2YXRlIGNtOiB7XG4gICAgdmlldzogQVhDb2RlRWRpdG9yVmlld01vZHVsZSB8IG51bGw7XG4gICAgc3RhdGU6IEFYQ29kZUVkaXRvclN0YXRlTW9kdWxlIHwgbnVsbDtcbiAgICBsYW5ndWFnZTogQVhDb2RlRWRpdG9yTGFuZ3VhZ2VNb2R1bGUgfCBudWxsO1xuICAgIGF1dG9jb21wbGV0ZTogQVhDb2RlRWRpdG9yQXV0b2NvbXBsZXRlTW9kdWxlIHwgbnVsbDtcbiAgICBjb21tYW5kczogQVhDb2RlRWRpdG9yQ29tbWFuZHNNb2R1bGUgfCBudWxsO1xuICAgIHNlYXJjaDogQVhDb2RlRWRpdG9yU2VhcmNoTW9kdWxlIHwgbnVsbDtcbiAgICBsaW50OiBBWENvZGVFZGl0b3JMaW50TW9kdWxlIHwgbnVsbDtcbiAgfSA9IHsgdmlldzogbnVsbCwgc3RhdGU6IG51bGwsIGxhbmd1YWdlOiBudWxsLCBhdXRvY29tcGxldGU6IG51bGwsIGNvbW1hbmRzOiBudWxsLCBzZWFyY2g6IG51bGwsIGxpbnQ6IG51bGwgfTtcblxuICBwcml2YXRlIGlzQnJvd3NlciA9IGNvbXB1dGVkKCgpID0+IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpO1xuXG4gIC8qKiBDb21wdXRlZCBtaW5pbXVtIGhlaWdodCBiYXNlZCBvbiBtaW5Sb3cgKGV4Y2x1ZGluZyBndXR0ZXIvbGluZSBudW1iZXJzKS4gKi9cbiAgZ2V0TWluSGVpZ2h0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHJvd3MgPSB0aGlzLm1pblJvdygpO1xuICAgIGlmICghcm93cyB8fCByb3dzIDw9IDApIHJldHVybiBudWxsO1xuICAgIC8vIENvZGVNaXJyb3IgZGVmYXVsdCBsaW5lIGhlaWdodCBpcyB0eXBpY2FsbHkgMS41ZW0sIGJ1dCB3ZSB1c2UgcmVtIGZvciBjb25zaXN0ZW5jeVxuICAgIC8vIFRoaXMgY2FsY3VsYXRlcyBoZWlnaHQgd2l0aG91dCBhY2NvdW50aW5nIGZvciBndXR0ZXIgc2luY2UgZ3V0dGVyIGlzIHNlcGFyYXRlXG4gICAgcmV0dXJuIGBjYWxjKCR7cm93c30gKiAxLjVyZW0pYDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIoKSkgcmV0dXJuO1xuICAgICAgdGhpcy5pbml0aWFsaXplRWRpdG9yKCk7XG4gICAgfSk7XG5cbiAgICAvLyBLZWVwIG1vZGVsIGluIHN5bmMgd2hlbiBleHRlcm5hbCB2YWx1ZSBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLmVkaXRvclZpZXdTaWcoKTtcbiAgICAgIGlmICghdmlldykgcmV0dXJuO1xuICAgICAgY29uc3QgbmV3RG9jID0gdGhpcy52YWx1ZSA/PyAnJztcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpO1xuICAgICAgaWYgKG5ld0RvYyAhPT0gY3VycmVudCkge1xuICAgICAgICB2aWV3LmRpc3BhdGNoKHtcbiAgICAgICAgICBjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB2aWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogbmV3RG9jIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVhY3QgdG8gZHluYW1pYyBjb25maWd1cmF0aW9uIGNoYW5nZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdmlldyA9IHRoaXMuZWRpdG9yVmlld1NpZygpO1xuICAgICAgaWYgKCF2aWV3IHx8ICF0aGlzLmxhbmd1YWdlQ29tcGFydG1lbnQpIHJldHVybjtcbiAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmd1YWdlKCk7XG4gICAgICB0aGlzLnBsdWdpblJlZ2lzdHJ5LmdldExhbmd1YWdlRXh0ZW5zaW9uKGxhbmcpLnRoZW4oKGV4dCkgPT4ge1xuICAgICAgICBpZiAoIXZpZXcgfHwgIXRoaXMubGFuZ3VhZ2VDb21wYXJ0bWVudCkgcmV0dXJuO1xuICAgICAgICB2aWV3LmRpc3BhdGNoKHsgZWZmZWN0czogdGhpcy5sYW5ndWFnZUNvbXBhcnRtZW50LnJlY29uZmlndXJlKGV4dCkgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gdGhpcy5lZGl0b3JWaWV3U2lnKCk7XG4gICAgICBpZiAoIXZpZXcgfHwgIXRoaXMucmVhZG9ubHlDb21wYXJ0bWVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgZWRpdGFibGUgPSAhdGhpcy5lZGl0b3JSZWFkb25seSgpO1xuICAgICAgaW1wb3J0KCdAY29kZW1pcnJvci92aWV3JykudGhlbigoeyBFZGl0b3JWaWV3IH0pID0+IHtcbiAgICAgICAgaWYgKCF2aWV3IHx8ICF0aGlzLnJlYWRvbmx5Q29tcGFydG1lbnQpIHJldHVybjtcbiAgICAgICAgdmlldy5kaXNwYXRjaCh7IGVmZmVjdHM6IHRoaXMucmVhZG9ubHlDb21wYXJ0bWVudC5yZWNvbmZpZ3VyZShFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGVkaXRhYmxlKSkgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gdGhpcy5lZGl0b3JWaWV3U2lnKCk7XG4gICAgICAvLyBFc3RhYmxpc2ggcmVhY3RpdmUgZGVwZW5kZW5jeSBvbiB0aGVtZSBhbmQgcGxhdGZvcm0gdGhlbWVcbiAgICAgIGNvbnN0IGN1c3RvbVRoZW1lID0gdGhpcy50aGVtZSgpO1xuICAgICAgY29uc3QgcGxhdGZvcm1UaGVtZSA9IHRoaXMucGxhdGZvcm1TZXJ2aWNlLnRoZW1lTW9kZSgpO1xuICAgICAgaWYgKCF2aWV3IHx8ICF0aGlzLnRoZW1lQ29tcGFydG1lbnQpIHJldHVybjtcbiAgICAgIHRoaXMucmVzb2x2ZVRoZW1lRXh0ZW5zaW9uKGN1c3RvbVRoZW1lLCBwbGF0Zm9ybVRoZW1lKS50aGVuKCh0aGVtZUV4dCkgPT4ge1xuICAgICAgICBpZiAoIXZpZXcgfHwgIXRoaXMudGhlbWVDb21wYXJ0bWVudCkgcmV0dXJuO1xuICAgICAgICB2aWV3LmRpc3BhdGNoKHsgZWZmZWN0czogdGhpcy50aGVtZUNvbXBhcnRtZW50LnJlY29uZmlndXJlKHRoZW1lRXh0KSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIoKTtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLmVkaXRvclZpZXdTaWcoKTtcbiAgICAgIGlmICghdmlldyB8fCAhdGhpcy5wbGFjZWhvbGRlckNvbXBhcnRtZW50KSByZXR1cm47XG4gICAgICBpbXBvcnQoJ0Bjb2RlbWlycm9yL3ZpZXcnKS50aGVuKCh7IHBsYWNlaG9sZGVyIH0pID0+IHtcbiAgICAgICAgaWYgKCF2aWV3IHx8ICF0aGlzLnBsYWNlaG9sZGVyQ29tcGFydG1lbnQpIHJldHVybjtcbiAgICAgICAgdmlldy5kaXNwYXRjaCh7IGVmZmVjdHM6IHRoaXMucGxhY2Vob2xkZXJDb21wYXJ0bWVudC5yZWNvbmZpZ3VyZShwbGFjZWhvbGRlcih0aGlzLnBsYWNlaG9sZGVyKCkgPz8gJycpKSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLmVkaXRvclZpZXdTaWcoKTtcbiAgICAgIGlmICghdmlldyB8fCAhdGhpcy53cmFwcGluZ0NvbXBhcnRtZW50KSByZXR1cm47XG4gICAgICBjb25zdCBFZGl0b3JWaWV3ID0gdGhpcy5jbS52aWV3Py5FZGl0b3JWaWV3O1xuICAgICAgaWYgKCFFZGl0b3JWaWV3KSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0RXh0ID0gdGhpcy5saW5lV3JhcHBpbmcoKSA/IEVkaXRvclZpZXcubGluZVdyYXBwaW5nIDogW107XG4gICAgICB0aGlzLnJlY29uZmlndXJlKHRoaXMud3JhcHBpbmdDb21wYXJ0bWVudCwgbmV4dEV4dCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdmlldyA9IHRoaXMuZWRpdG9yVmlld1NpZygpO1xuICAgICAgaWYgKCF2aWV3IHx8ICF0aGlzLnRhYlNpemVDb21wYXJ0bWVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgRWRpdG9yU3RhdGUgPSB0aGlzLmNtLnN0YXRlPy5FZGl0b3JTdGF0ZTtcbiAgICAgIGlmICghRWRpdG9yU3RhdGUpIHJldHVybjtcbiAgICAgIHRoaXMucmVjb25maWd1cmUodGhpcy50YWJTaXplQ29tcGFydG1lbnQsIEVkaXRvclN0YXRlLnRhYlNpemUub2YodGhpcy50YWJTaXplKCkgPz8gMikpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLmVkaXRvclZpZXdTaWcoKTtcbiAgICAgIGlmICghdmlldyB8fCAhdGhpcy5rZXltYXBFeHRyYXNDb21wYXJ0bWVudCkgcmV0dXJuO1xuICAgICAgY29uc3Qga2V5bWFwID0gdGhpcy5jbS52aWV3Py5rZXltYXA7XG4gICAgICBjb25zdCBjb21tYW5kcyA9IHRoaXMuY20uY29tbWFuZHM7XG4gICAgICBpZiAoIWtleW1hcCB8fCAhY29tbWFuZHMpIHJldHVybjtcbiAgICAgIHRoaXMucmVjb25maWd1cmUodGhpcy5rZXltYXBFeHRyYXNDb21wYXJ0bWVudCwga2V5bWFwLm9mKHRoaXMuaW5kZW50V2l0aFRhYigpID8gW2NvbW1hbmRzLmluZGVudFdpdGhUYWJdIDogW10pKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gdGhpcy5lZGl0b3JWaWV3U2lnKCk7XG4gICAgICBpZiAoIXZpZXcgfHwgIXRoaXMubGluZU51bWJlcnNDb21wYXJ0bWVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgbGluZU51bWJlcnMgPSB0aGlzLmNtLnZpZXc/LmxpbmVOdW1iZXJzO1xuICAgICAgaWYgKCFsaW5lTnVtYmVycykgcmV0dXJuO1xuICAgICAgdGhpcy5yZWNvbmZpZ3VyZSh0aGlzLmxpbmVOdW1iZXJzQ29tcGFydG1lbnQsIHRoaXMubGluZU51bWJlcnMoKSA/IGxpbmVOdW1iZXJzKCkgOiBbXSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVFZGl0b3IoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaG9zdEVsID0gdGhpcy5ob3N0KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFob3N0RWwpIHJldHVybjtcblxuICAgIGF3YWl0IHRoaXMubG9hZENvZGVNaXJyb3JNb2R1bGVzKCk7XG5cbiAgICB0aGlzLmNyZWF0ZUNvbXBhcnRtZW50cygpO1xuXG4gICAgY29uc3Qga2V5bWFwcyA9IHRoaXMuYnVpbGRLZXltYXBzKCk7XG5cbiAgICBjb25zdCB2aWV3TW9kID0gdGhpcy5jbS52aWV3O1xuICAgIGNvbnN0IHN0YXRlTW9kID0gdGhpcy5jbS5zdGF0ZTtcbiAgICBjb25zdCBsYW5ndWFnZU1vZCA9IHRoaXMuY20ubGFuZ3VhZ2U7XG4gICAgY29uc3QgYXV0b01vZCA9IHRoaXMuY20uYXV0b2NvbXBsZXRlO1xuICAgIGNvbnN0IGNvbW1hbmRzTW9kID0gdGhpcy5jbS5jb21tYW5kcztcbiAgICBjb25zdCBzZWFyY2hNb2QgPSB0aGlzLmNtLnNlYXJjaDtcbiAgICBjb25zdCBsaW50TW9kID0gdGhpcy5jbS5saW50O1xuICAgIGlmICghdmlld01vZCB8fCAhc3RhdGVNb2QgfHwgIWxhbmd1YWdlTW9kIHx8ICFhdXRvTW9kIHx8ICFjb21tYW5kc01vZCB8fCAhc2VhcmNoTW9kIHx8ICFsaW50TW9kKSByZXR1cm47XG4gICAgY29uc3QgbGFuZ3VhZ2VFeHQgPSBhd2FpdCB0aGlzLnBsdWdpblJlZ2lzdHJ5LmdldExhbmd1YWdlRXh0ZW5zaW9uKHRoaXMubGFuZ3VhZ2UoKSk7XG4gICAgY29uc3QgdGhlbWVFeHQgPSBhd2FpdCB0aGlzLnJlc29sdmVUaGVtZUV4dGVuc2lvbih0aGlzLnRoZW1lKCksIHRoaXMucGxhdGZvcm1TZXJ2aWNlLnRoZW1lTW9kZSgpKTtcbiAgICBjb25zdCBwbGFjZWhvbGRlckV4dCA9IHZpZXdNb2QucGxhY2Vob2xkZXIodGhpcy5wbGFjZWhvbGRlcigpID8/ICcnKTtcbiAgICBjb25zdCBlZGl0YWJsZUV4dCA9IHZpZXdNb2QuRWRpdG9yVmlldy5lZGl0YWJsZS5vZighdGhpcy5lZGl0b3JSZWFkb25seSgpKTtcbiAgICBjb25zdCB3cmFwcGluZ0V4dCA9IHRoaXMubGluZVdyYXBwaW5nKCkgPyB2aWV3TW9kLkVkaXRvclZpZXcubGluZVdyYXBwaW5nIDogW107XG4gICAgY29uc3QgdGFiU2l6ZUV4dCA9IHN0YXRlTW9kLkVkaXRvclN0YXRlLnRhYlNpemUub2YodGhpcy50YWJTaXplKCkgPz8gMik7XG4gICAgY29uc3QgbGluZU51bWJlcnNFeHQgPSB0aGlzLmxpbmVOdW1iZXJzKCkgPyB2aWV3TW9kLmxpbmVOdW1iZXJzKCkgOiBbXTtcblxuICAgIGNvbnN0IGF1dG9Db21wbGV0ZUV4dCA9IGF1dG9Nb2QuYXV0b2NvbXBsZXRpb24oe1xuICAgICAgb3ZlcnJpZGU6IHRoaXMuYnVpbGRDdXN0b21Db21wbGV0aW9uU291cmNlcygpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYmFzZUV4dGVuc2lvbnM6IFJlYWRvbmx5QXJyYXk8QVhDb2RlRWRpdG9yRXh0ZW5zaW9uTGlrZT4gPSBbXG4gICAgICB0aGlzLmxpbmVOdW1iZXJzQ29tcGFydG1lbnQub2YobGluZU51bWJlcnNFeHQpLFxuICAgICAgdmlld01vZC5oaWdobGlnaHRBY3RpdmVMaW5lKCksXG4gICAgICB2aWV3TW9kLmhpZ2hsaWdodEFjdGl2ZUxpbmVHdXR0ZXIoKSxcbiAgICAgIHZpZXdNb2QuZHJhd1NlbGVjdGlvbigpLFxuICAgICAgdmlld01vZC5kcm9wQ3Vyc29yKCksXG4gICAgICB2aWV3TW9kLnJlY3Rhbmd1bGFyU2VsZWN0aW9uKCksXG4gICAgICB2aWV3TW9kLmNyb3NzaGFpckN1cnNvcigpLFxuICAgICAgdmlld01vZC5oaWdobGlnaHRTcGVjaWFsQ2hhcnMoKSxcbiAgICAgIGxhbmd1YWdlTW9kLnN5bnRheEhpZ2hsaWdodGluZyhsYW5ndWFnZU1vZC5kZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHsgZmFsbGJhY2s6IHRydWUgfSksXG4gICAgICBsYW5ndWFnZU1vZC5icmFja2V0TWF0Y2hpbmcoKSxcbiAgICAgIGxhbmd1YWdlTW9kLmZvbGRHdXR0ZXIoKSxcbiAgICAgIGNvbW1hbmRzTW9kLmhpc3RvcnkoKSxcbiAgICAgIHNlYXJjaE1vZC5oaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXG4gICAgICB2aWV3TW9kLmtleW1hcC5vZihrZXltYXBzKSxcbiAgICAgIGF1dG9Db21wbGV0ZUV4dCxcbiAgICAgIHRoaXMubGFuZ3VhZ2VDb21wYXJ0bWVudC5vZihsYW5ndWFnZUV4dCksXG4gICAgICB0aGlzLnJlYWRvbmx5Q29tcGFydG1lbnQub2YoZWRpdGFibGVFeHQpLFxuICAgICAgdGhpcy50aGVtZUNvbXBhcnRtZW50Lm9mKHRoZW1lRXh0KSxcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJDb21wYXJ0bWVudC5vZihwbGFjZWhvbGRlckV4dCksXG4gICAgICB0aGlzLndyYXBwaW5nQ29tcGFydG1lbnQub2Yod3JhcHBpbmdFeHQpLFxuICAgICAgdGhpcy50YWJTaXplQ29tcGFydG1lbnQub2YodGFiU2l6ZUV4dCksXG4gICAgICB0aGlzLmtleW1hcEV4dHJhc0NvbXBhcnRtZW50Lm9mKHZpZXdNb2Qua2V5bWFwLm9mKHRoaXMuaW5kZW50V2l0aFRhYigpID8gW2NvbW1hbmRzTW9kLmluZGVudFdpdGhUYWJdIDogW10pKSxcbiAgICAgIC4uLnRoaXMuZXh0ZW5zaW9ucygpLFxuICAgIF07XG5cbiAgICBjb25zdCB1cGRhdGVMaXN0ZW5lciA9IHZpZXdNb2QuRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodnUpID0+IHtcbiAgICAgIGlmICh2dS5kb2NDaGFuZ2VkKSB7XG4gICAgICAgIGNvbnN0IHRleHQgPSB2dS5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcbiAgICAgICAgLy8gdGhpcy53cml0ZVZhbHVlKHRleHQpO1xuICAgICAgICB0aGlzLnZhbHVlID0gdGV4dDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlID0gc3RhdGVNb2QuRWRpdG9yU3RhdGUuY3JlYXRlKHtcbiAgICAgIGRvYzogdGhpcy52YWx1ZSA/PyAnJyxcbiAgICAgIGV4dGVuc2lvbnM6IFsuLi5iYXNlRXh0ZW5zaW9ucywgdXBkYXRlTGlzdGVuZXJdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdmlldyA9IG5ldyB2aWV3TW9kLkVkaXRvclZpZXcoeyBzdGF0ZSwgcGFyZW50OiBob3N0RWwgfSk7XG5cbiAgICAvLyBVcGRhdGUgbGlzdGVuZXIgZm9yIGV4dGVybmFsIGNoYW5nZXMgKHNlbGVjdGlvbiwgdmlld3BvcnQsIGV0Yy4pIGlmIG5lZWRlZCBsYXRlclxuICAgIHZpZXcuZGlzcGF0Y2goeyBlZmZlY3RzOiBbXSB9KTtcblxuICAgIHRoaXMuZWRpdG9yVmlld1NpZy5zZXQodmlldyk7XG5cbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHZpZXcuZGVzdHJveSgpO1xuICAgICAgdGhpcy5lZGl0b3JWaWV3U2lnLnNldChudWxsKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZvY3VzT25SZWFkeSgpKSB7XG4gICAgICB2aWV3LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZWFkeS5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHJlY29uZmlndXJlKGNvbXA6IEFYQ29kZUVkaXRvckNvbXBhcnRtZW50TGlrZSB8IG51bGwsIGV4dDogQVhDb2RlRWRpdG9yRXh0ZW5zaW9uTGlrZSk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLmVkaXRvclZpZXdTaWcoKTtcbiAgICBpZiAoIXZpZXcgfHwgIWNvbXApIHJldHVybjtcbiAgICB2aWV3LmRpc3BhdGNoKHsgZWZmZWN0czogY29tcC5yZWNvbmZpZ3VyZShleHQpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgQ3RybC9DbWQrUyBvbiB0aGUgaG9zdC4gSWYgZm9ybWF0T25TYXZlIGlzIGVuYWJsZWQsIGF0dGVtcHRzXG4gICAqIHRvIGZvcm1hdCB0aGUgZG9jdW1lbnQgZmlyc3QsIHRoZW4gZW1pdHMgdGhlIHNhdmVkIHRleHQuXG4gICAqL1xuICBhc3luYyBvblNhdmVTaG9ydGN1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuZWRpdG9yVmlld1NpZygpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSB2aWV3Py5zdGF0ZS5kb2MudG9TdHJpbmcoKSA/PyB0aGlzLnZhbHVlID8/ICcnO1xuICAgIGNvbnN0IHBheWxvYWQgPSBjdXJyZW50O1xuICAgIGlmICh0aGlzLmZvcm1hdE9uU2F2ZSgpKSB7XG4gICAgICBhd2FpdCB0aGlzLmZvcm1hdCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5zYXZlLmVtaXQocGF5bG9hZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDb2RlTWlycm9yTW9kdWxlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbdmlld01vZCwgc3RhdGVNb2QsIGxhbmdNb2QsIGF1dG9Nb2QsIGNtZE1vZCwgc2VhcmNoTW9kLCBsaW50TW9kXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGltcG9ydCgnQGNvZGVtaXJyb3IvdmlldycpLFxuICAgICAgaW1wb3J0KCdAY29kZW1pcnJvci9zdGF0ZScpLFxuICAgICAgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5ndWFnZScpLFxuICAgICAgaW1wb3J0KCdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnKSxcbiAgICAgIGltcG9ydCgnQGNvZGVtaXJyb3IvY29tbWFuZHMnKSxcbiAgICAgIGltcG9ydCgnQGNvZGVtaXJyb3Ivc2VhcmNoJyksXG4gICAgICBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xpbnQnKSxcbiAgICBdKTtcbiAgICB0aGlzLmNtLnZpZXcgPSB2aWV3TW9kO1xuICAgIHRoaXMuY20uc3RhdGUgPSBzdGF0ZU1vZDtcbiAgICB0aGlzLmNtLmxhbmd1YWdlID0gbGFuZ01vZDtcbiAgICB0aGlzLmNtLmF1dG9jb21wbGV0ZSA9IGF1dG9Nb2Q7XG4gICAgdGhpcy5jbS5jb21tYW5kcyA9IGNtZE1vZDtcbiAgICB0aGlzLmNtLnNlYXJjaCA9IHNlYXJjaE1vZDtcbiAgICB0aGlzLmNtLmxpbnQgPSBsaW50TW9kO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wYXJ0bWVudHMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVNb2QgPSB0aGlzLmNtLnN0YXRlO1xuICAgIGlmICghc3RhdGVNb2QpIHJldHVybjtcbiAgICB0aGlzLmxhbmd1YWdlQ29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgICB0aGlzLnJlYWRvbmx5Q29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgICB0aGlzLnRoZW1lQ29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgICB0aGlzLnBsYWNlaG9sZGVyQ29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgICB0aGlzLndyYXBwaW5nQ29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgICB0aGlzLnRhYlNpemVDb21wYXJ0bWVudCA9IG5ldyBzdGF0ZU1vZC5Db21wYXJ0bWVudCgpO1xuICAgIHRoaXMua2V5bWFwRXh0cmFzQ29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgICB0aGlzLmxpbmVOdW1iZXJzQ29tcGFydG1lbnQgPSBuZXcgc3RhdGVNb2QuQ29tcGFydG1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRLZXltYXBzKCk6IFJlYWRvbmx5QXJyYXk8QVhDb2RlRWRpdG9yS2V5QmluZGluZ0xpa2U+IHtcbiAgICBjb25zdCBjbWRNb2QgPSB0aGlzLmNtLmNvbW1hbmRzO1xuICAgIGNvbnN0IHNlYXJjaE1vZCA9IHRoaXMuY20uc2VhcmNoO1xuICAgIGNvbnN0IGF1dG9Nb2QgPSB0aGlzLmNtLmF1dG9jb21wbGV0ZTtcbiAgICBjb25zdCBsaW50TW9kID0gdGhpcy5jbS5saW50O1xuICAgIGlmICghY21kTW9kIHx8ICFzZWFyY2hNb2QgfHwgIWF1dG9Nb2QgfHwgIWxpbnRNb2QpIHJldHVybiBbXTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uY21kTW9kLmRlZmF1bHRLZXltYXAsXG4gICAgICAuLi5jbWRNb2QuaGlzdG9yeUtleW1hcCxcbiAgICAgIC4uLnNlYXJjaE1vZC5zZWFyY2hLZXltYXAsXG4gICAgICAuLi5hdXRvTW9kLmNvbXBsZXRpb25LZXltYXAsXG4gICAgICAuLi5saW50TW9kLmxpbnRLZXltYXAsXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzb2x2ZVRoZW1lRXh0ZW5zaW9uKFxuICAgIGN1c3RvbVRoZW1lOiBzdHJpbmcgfCBudWxsLFxuICAgIHBsYXRmb3JtVGhlbWU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxBWENvZGVFZGl0b3JFeHRlbnNpb25MaWtlPiB7XG4gICAgLy8gSWYgY3VzdG9tIHRoZW1lIGlzIHNwZWNpZmllZCwgdXNlIGl0XG4gICAgaWYgKGN1c3RvbVRoZW1lKSB7XG4gICAgICByZXR1cm4gdGhpcy5wbHVnaW5SZWdpc3RyeS5nZXRUaGVtZUV4dGVuc2lvbihjdXN0b21UaGVtZSk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB1c2UgcGxhdGZvcm0gdGhlbWUgKGhhbmRsZSAnc3lzdGVtJyBieSBkZWZhdWx0aW5nIHRvICdnaXRodWItbGlnaHQnKVxuICAgIGNvbnN0IHRoZW1lSWQgPSBwbGF0Zm9ybVRoZW1lID09PSAnZGFyaycgPyAnZ2l0aHViLWRhcmsnIDogJ2dpdGh1Yi1saWdodCc7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2luUmVnaXN0cnkuZ2V0VGhlbWVFeHRlbnNpb24odGhlbWVJZCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ3VzdG9tQ29tcGxldGlvblNvdXJjZXMoKTogUmVhZG9ubHlBcnJheTxBWENvZGVFZGl0b3JDb21wbGV0aW9uU291cmNlTGlrZT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHByb3ZpZGVkID0gdGhpcy5jdXN0b21Db21wbGV0aW9ucygpO1xuICAgIGlmICghcHJvdmlkZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiBwcm92aWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIFtwcm92aWRlZCBhcyBBWENvZGVFZGl0b3JDb21wbGV0aW9uU291cmNlTGlrZV07XG4gICAgfVxuICAgIC8vIFRyZWF0IGFycmF5IGFzIGEgc3RhdGljIGNvbXBsZXRpb24gbGlzdFxuICAgIGNvbnN0IHN0YXRpY1NvdXJjZTogQVhDb2RlRWRpdG9yQ29tcGxldGlvblNvdXJjZUxpa2UgPSAoY29udGV4dDogQVhDb2RlRWRpdG9yQ29tcGxldGlvbkNvbnRleHRMaWtlKSA9PiB7XG4gICAgICBjb25zdCBmcm9tID0gY29udGV4dC5wb3M7XG4gICAgICByZXR1cm4geyBmcm9tLCBvcHRpb25zOiBwcm92aWRlZCBhcyBSZWFkb25seUFycmF5PEFYQ29kZUVkaXRvckNvbXBsZXRpb25MaWtlPiB9O1xuICAgIH07XG4gICAgcmV0dXJuIFtzdGF0aWNTb3VyY2VdO1xuICB9XG5cbiAgLy8gUHVibGljIEFQSVxuICAvKiogUHJvZ3JhbW1hdGljYWxseSBmb2N1cyB0aGUgZWRpdG9yLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuZWRpdG9yVmlld1NpZygpO1xuICAgIGlmICh2aWV3KSB2aWV3LmZvY3VzKCk7XG4gIH1cblxuICAvKiogU2VsZWN0IGFsbCB0ZXh0IGluIHRoZSBjdXJyZW50IGRvY3VtZW50LiAqL1xuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLmVkaXRvclZpZXdTaWcoKTtcbiAgICBpZiAoIXZpZXcpIHJldHVybjtcbiAgICBjb25zdCBsZW5ndGggPSB2aWV3LnN0YXRlLmRvYy5sZW5ndGg7XG4gICAgdmlldy5kaXNwYXRjaCh7IHNlbGVjdGlvbjogeyBhbmNob3I6IDAsIGhlYWQ6IGxlbmd0aCB9IH0pO1xuICB9XG5cbiAgLy8gRm9ybWF0cyB0aGUgY3VycmVudCBkb2N1bWVudCB1c2luZyB0aGUgcmVnaXN0ZXJlZCBmb3JtYXR0ZXIgcGx1Z2luIChpZiBhdmFpbGFibGUgZm9yIHRoZSBhY3RpdmUgbGFuZ3VhZ2UpLlxuICAvLyBSZXR1cm5zIHRoZSBmb3JtYXR0ZWQgdGV4dCBvciBudWxsIGlmIHVuY2hhbmdlZC91bnN1cHBvcnRlZC5cbiAgcHVibGljIGFzeW5jIGZvcm1hdChhZmZlY3QgPSB0cnVlKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuZWRpdG9yVmlld1NpZygpO1xuICAgIGlmICghdmlldykgcmV0dXJuIG51bGw7XG4gICAgY29uc3Qgc291cmNlID0gdmlldy5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgZm9ybWF0dGVkID0gYXdhaXQgdGhpcy5wbHVnaW5SZWdpc3RyeS5mb3JtYXQoc291cmNlLCB0aGlzLmxhbmd1YWdlKCkpO1xuICAgIGlmICghZm9ybWF0dGVkIHx8IGZvcm1hdHRlZCA9PT0gc291cmNlKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoYWZmZWN0KSB7XG4gICAgICB2aWV3LmRpc3BhdGNoKHsgY2hhbmdlczogeyBmcm9tOiAwLCB0bzogdmlldy5zdGF0ZS5kb2MubGVuZ3RoLCBpbnNlcnQ6IGZvcm1hdHRlZCB9IH0pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVkO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIHRvdGFsIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSBjdXJyZW50IGRvY3VtZW50LiAqL1xuICBwdWJsaWMgZ2V0VG90YWxDaGFyYWN0ZXJzKCk6IG51bWJlciB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuZWRpdG9yVmlld1NpZygpO1xuICAgIGlmICh2aWV3KSByZXR1cm4gdmlldy5zdGF0ZS5kb2MubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudmFsdWUgPz8gJyc7XG4gICAgcmV0dXJuIHRleHQubGVuZ3RoO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIHRvdGFsIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgY3VycmVudCBkb2N1bWVudC4gKi9cbiAgcHVibGljIGdldFRvdGFsTGluZXMoKTogbnVtYmVyIHtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy5lZGl0b3JWaWV3U2lnKCk7XG4gICAgaWYgKHZpZXcpIHtcbiAgICAgIGNvbnN0IGRvYzogYW55ID0gdmlldy5zdGF0ZS5kb2M7XG4gICAgICByZXR1cm4gdHlwZW9mIGRvYz8ubGluZXMgPT09ICdudW1iZXInID8gZG9jLmxpbmVzIDogZG9jLnRvU3RyaW5nKCkuc3BsaXQoL1xccj9cXG4vKS5sZW5ndGg7XG4gICAgfVxuICAgIGNvbnN0IHRleHQgPSB0aGlzLnZhbHVlID8/ICcnO1xuICAgIHJldHVybiB0ZXh0ID8gdGV4dC5zcGxpdCgvXFxyP1xcbi8pLmxlbmd0aCA6IDE7XG4gIH1cbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCodeEditorComponent } from './code-editor.component';\nimport * as i0 from \"@angular/core\";\nexport class AXCodeEditorModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorModule, imports: [CommonModule, AXCodeEditorComponent], exports: [AXCodeEditorComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXCodeEditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, AXCodeEditorComponent],\n exports: [AXCodeEditorComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvZGUtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNaEUsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsWUFIbkIsWUFBWSxFQUFFLHFCQUFxQixhQUNuQyxxQkFBcUI7Z0hBRXBCLGtCQUFrQixZQUhuQixZQUFZOzs0RkFHWCxrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDO29CQUM5QyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29kZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29kZS1lZGl0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhDb2RlRWRpdG9yQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FYQ29kZUVkaXRvckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29kZUVkaXRvck1vZHVsZSB7fVxuIl19","// Language plugins\nexport * from './javascript.plugin';\nexport * from './typescript.plugin';\nexport * from './json.plugin';\nexport * from './html.plugin';\nexport * from './css.plugin';\nexport * from './sass.plugin';\nexport * from './sql.plugin';\nexport * from './xml.plugin';\nexport * from './markdown.plugin';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2xhbmd1YWdlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMYW5ndWFnZSBwbHVnaW5zXG5leHBvcnQgKiBmcm9tICcuL2phdmFzY3JpcHQucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXNjcmlwdC5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2h0bWwucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vY3NzLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL3Nhc3MucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vc3FsLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL3htbC5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9tYXJrZG93bi5wbHVnaW4nO1xuXG4vLyBUeXBlIHVuaW9uIG9mIGFsbCBzdXBwb3J0ZWQgbGFuZ3VhZ2VzIGZyb20gZGVmYXVsdCBwbHVnaW5zXG5leHBvcnQgdHlwZSBBWENvZGVFZGl0b3JEZWZhdWx0TGFuZ3VhZ2UgPVxuICB8ICdqYXZhc2NyaXB0J1xuICB8ICdqcydcbiAgfCAndHlwZXNjcmlwdCdcbiAgfCAndHMnXG4gIHwgJ2pzb24nXG4gIHwgJ2h0bWwnXG4gIHwgJ2NzcydcbiAgfCAnc2NzcydcbiAgfCAnc2FzcydcbiAgfCAnc3FsJ1xuICB8ICd4bWwnXG4gIHwgJ21hcmtkb3duJztcbiJdfQ==","// Language plugins\nexport * from './languages';\n// Theme plugins\nexport * from './themes/one-dark.plugin';\nexport * from './themes/light.plugin';\nexport * from './themes/github-light.plugin';\nexport * from './themes/github-dark.plugin';\n// Formatter plugins\nexport * from './formatters/prettier.plugin';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9saWIvcGx1Z2lucy9kZWZhdWx0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQjtBQUNuQixjQUFjLGFBQWEsQ0FBQztBQUU1QixnQkFBZ0I7QUFDaEIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxvQkFBb0I7QUFDcEIsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExhbmd1YWdlIHBsdWdpbnNcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2VzJztcblxuLy8gVGhlbWUgcGx1Z2luc1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZXMvb25lLWRhcmsucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWVzL2xpZ2h0LnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL3RoZW1lcy9naXRodWItbGlnaHQucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWVzL2dpdGh1Yi1kYXJrLnBsdWdpbic7XG5cbi8vIEZvcm1hdHRlciBwbHVnaW5zXG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdHRlcnMvcHJldHRpZXIucGx1Z2luJztcbiJdfQ==","// Component & Module\nexport * from './lib/code-editor.component';\nexport * from './lib/code-editor.module';\n// Plugins\nexport * from './lib/plugins';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUI7QUFDckIsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudCAmIE1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29kZS1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZGUtZWRpdG9yLm1vZHVsZSc7XG5cbi8vIFBsdWdpbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsdWdpbnMnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtY29kZS1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3NyYy9hY29yZXgtY29tcG9uZW50cy1jb2RlLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;AAAO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,UAAU;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;AACpG,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAChE,YAAY,IAAI,MAAM,GAAG,IAAI;AAC7B,YAAY,MAAM,OAAO,GAAG,EAAE;AAC9B,YAAY,QAAQ,QAAQ;AAC5B,gBAAgB,KAAK,YAAY;AACjC,gBAAgB,KAAK,IAAI,EAAE;AAC3B,oBAAoB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC9D,wBAAwB,OAAO,wBAAwB,CAAC;AACxD,wBAAwB,OAAO,yBAAyB,CAAC;AACzD,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/C,oBAAoB,MAAM,GAAG,OAAO;AACpC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,YAAY;AACjC,gBAAgB,KAAK,IAAI,EAAE;AAC3B,oBAAoB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACnE,wBAAwB,OAAO,6BAA6B,CAAC;AAC7D,wBAAwB,OAAO,yBAAyB,CAAC;AACzD,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;AACpD,oBAAoB,MAAM,GAAG,YAAY;AACzC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,MAAM,EAAE;AAC7B,oBAAoB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AAC9D,wBAAwB,OAAO,wBAAwB,CAAC;AACxD,wBAAwB,OAAO,yBAAyB,CAAC;AACzD,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/C,oBAAoB,MAAM,GAAG,MAAM;AACnC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,GAAG,MAAM,OAAO,uBAAuB,CAAC;AACtE,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,oBAAoB,MAAM,GAAG,MAAM;AACnC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,KAAK,EAAE;AAC5B,oBAAoB,MAAM,OAAO,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAC5E,oBAAoB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,oBAAoB,MAAM,GAAG,KAAK;AAClC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,UAAU,EAAE;AACjC,oBAAoB,MAAM,QAAQ,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAC9E,oBAAoB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,oBAAoB,MAAM,GAAG,UAAU;AACvC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB;AAChB,oBAAoB,OAAO,IAAI;AAC/B;AACA,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1D,gBAAgB,MAAM;AACtB,gBAAgB,OAAO;AACvB,aAAa,CAAC;AACd,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,MAAM;AACd,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ;;AC3EO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAC5D,QAAQ,OAAO,GAAG,EAAE;AACpB,IAAI;AACJ;;ACXO,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM;AAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAC9D,QAAQ,OAAO,IAAI,EAAE;AACrB,IAAI;AACJ;;ACXO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,YAAY;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,YAAY;AAChC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;AAC1E,QAAQ,OAAO,UAAU,EAAE;AAC3B,IAAI;AACJ;;ACXO,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM;AAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAC9D,QAAQ,OAAO,IAAI,EAAE;AACrB,IAAI;AACJ;;ACXO,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,UAAU;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,UAAU,CAAC;AACrC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,2BAA2B,CAAC;AACtE,QAAQ,OAAO,QAAQ,EAAE;AACzB,IAAI;AACJ;;ACXO,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,WAAW;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AACzC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAC9D,QAAQ,OAAO,IAAI,EAAE;AACrB,IAAI;AACJ;;ACXO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAC5D,QAAQ,OAAO,GAAG,EAAE;AACpB,IAAI;AACJ;;ACXO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,YAAY;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,YAAY;AAChC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;AAC1E,QAAQ,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC/C,IAAI;AACJ;;ACXO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAC5D,QAAQ,OAAO,GAAG,EAAE;AACpB,IAAI;AACJ;;ACXO,MAAM,qBAAqB,CAAC;AACnC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,aAAa;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,aAAa;AACjC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACnE,YAAY,OAAO,8BAA8B,CAAC;AAClD,YAAY,OAAO,kBAAkB,CAAC;AACtC,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,UAAU;AACtB,YAAY,UAAU,CAAC,KAAK,CAAC;AAC7B;AACA;AACA,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,SAAS;AACT,IAAI;AACJ;;ACpBO,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,cAAc;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc;AAClC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACpE,YAAY,OAAO,8BAA8B,CAAC;AAClD,YAAY,OAAO,kBAAkB,CAAC;AACtC,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,WAAW;AACvB,YAAY,UAAU,CAAC,KAAK,CAAC;AAC7B;AACA;AACA,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/B,SAAS;AACT,IAAI;AACJ;;ACpBO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,OAAO;AACzB,QAAQ,IAAI,CAAC,IAAI,GAAG,OAAO;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAC/D,QAAQ,OAAO,UAAU,CAAC,KAAK,CAAC;AAChC;AACA,YAAY,aAAa,EAAE,EAAE;AAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3B,IAAI;AACJ;;ACdO,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,UAAU;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAC/D,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,4BAA4B,CAAC;AAC1E,YAAY,OAAO;AACnB,gBAAgB,OAAO;AACvB,gBAAgB,UAAU,CAAC,KAAK,CAAC;AACjC;AACA,oBAAoB,aAAa,EAAE,EAAE;AACrC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,aAAa;AACb,QAAQ;AACR,QAAQ,MAAM;AACd,YAAY,OAAO,UAAU,CAAC,KAAK,CAAC;AACpC;AACA,gBAAgB,aAAa,EAAE,EAAE;AACjC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,QAAQ;AACR,IAAI;AACJ;;ACZA;AACA;AACA;AACO,SAAS,+BAA+B,GAAG;AAClD,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE;AACnB,YAAY,IAAI,wBAAwB,EAAE;AAC1C,YAAY,IAAI,wBAAwB,EAAE;AAC1C,YAAY,IAAI,kBAAkB,EAAE;AACpC,YAAY,IAAI,kBAAkB,EAAE;AACpC,YAAY,IAAI,iBAAiB,EAAE;AACnC,YAAY,IAAI,kBAAkB,EAAE;AACpC,YAAY,IAAI,iBAAiB,EAAE;AACnC,YAAY,IAAI,iBAAiB,EAAE;AACnC,YAAY,IAAI,sBAAsB,EAAE;AACxC,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,IAAI,kBAAkB,EAAE;AACpC,YAAY,IAAI,gBAAgB,EAAE;AAClC,YAAY,IAAI,sBAAsB,EAAE;AACxC,YAAY,IAAI,qBAAqB,EAAE;AACvC,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;AACnD,QAAQ,UAAU,EAAE,EAAE;AACtB,KAAK;AACL;;ACrCA;AACA;AACA;AACY,MAAC,4BAA4B,GAAG,IAAI,cAAc,CAAC,8BAA8B,EAAE;AAC/F,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE,MAAM,+BAA+B,EAAE;AACpD,CAAC;;ACLD;AACA;AACA;AACO,MAAM,0BAA0B,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9E,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE;AACxC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACzC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACzC,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;AACxB,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK;AACnD,YAAY,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC/C,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACtD,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK;AAChD,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AACpD,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK;AACpD,YAAY,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC/C,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK;AACpD,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AACxD,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,oBAAoB,CAAC,QAAQ,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,OAAO,MAAM,CAAC,YAAY,EAAE;AACpC,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,iBAAiB,CAAC,OAAO,EAAE;AACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACrD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC,CAAC;AACjE,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,OAAO,MAAM,CAAC,YAAY,EAAE;AACpC,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;AACjC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1D,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC5C,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;AAC/H,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjD,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7C,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAClD,IAAI;AACJ;AACA;AACA;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AACtD,IAAI;AACJ;AACA;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACnD,IAAI;AACJ;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,MAAM,EAAE;AACnC,QAAQ,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC3C,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAClD,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAChD,IAAI;AACJ;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;AACpC,QAAQ,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC3C,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;AACpC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AACpD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACrK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACvIhC,MAAM,qBAAqB,SAAS,gBAAgB,CAAC;AAC5D;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAClC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC;AAC9B,YAAY,OAAO,IAAI;AACvB;AACA;AACA,QAAQ,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9F;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC3I;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5F;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxG;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE;AAC7B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE;AAC5B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;AACjD,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAChE,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACpC,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAC1C,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI;AAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI;AACtC,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAC1C;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3H,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/H,QAAQ,eAAe,CAAC,MAAM;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjC,gBAAgB;AAChB,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI;AACrB,gBAAgB;AAChB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC3C,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AACrD,YAAY,IAAI,MAAM,KAAK,OAAO,EAAE;AACpC,gBAAgB,IAAI,CAAC,QAAQ,CAAC;AAC9B,oBAAoB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACnF,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;AAClD,gBAAgB;AAChB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,YAAY,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AACzE,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;AACtD,oBAAoB;AACpB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACrF,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;AAClD,gBAAgB;AAChB,YAAY,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;AACnD,YAAY,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK;AAChE,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;AACtD,oBAAoB;AACpB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AAClH,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C;AACA,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE;AAC5C,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;AAClE,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;AAC/C,gBAAgB;AAChB,YAAY,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;AACtF,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;AACnD,oBAAoB;AACpB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACvF,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;AACrD,gBAAgB;AAChB,YAAY,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK;AACjE,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;AACzD,oBAAoB;AACpB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1H,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;AAClD,gBAAgB;AAChB,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU;AACvD,YAAY,IAAI,CAAC,UAAU;AAC3B,gBAAgB;AAChB,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,GAAG,EAAE;AAC9E,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAC/D,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB;AACjD,gBAAgB;AAChB,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW;AAC1D,YAAY,IAAI,CAAC,WAAW;AAC5B,gBAAgB;AAChB,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAClG,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB;AACtD,gBAAgB;AAChB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM;AAC/C,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC7C,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;AACpC,gBAAgB;AAChB,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3H,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;AACrD,gBAAgB;AAChB,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW;AACzD,YAAY,IAAI,CAAC,WAAW;AAC5B,gBAAgB;AAChB,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,CAAC;AAClG,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa;AACjD,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,MAAM,IAAI,CAAC,qBAAqB,EAAE;AAC1C,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AAC3C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AACpC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;AACtC,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC5C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY;AAC5C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC5C,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AACxC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AACpC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;AACvG,YAAY;AACZ,QAAQ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3F,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACzG,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAC5E,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AAClF,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE;AACtF,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/E,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE;AAC9E,QAAQ,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;AACvD,YAAY,QAAQ,EAAE,IAAI,CAAC,4BAA4B,EAAE;AACzD,SAAS,CAAC;AACV,QAAQ,MAAM,cAAc,GAAG;AAC/B,YAAY,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,cAAc,CAAC;AAC1D,YAAY,OAAO,CAAC,mBAAmB,EAAE;AACzC,YAAY,OAAO,CAAC,yBAAyB,EAAE;AAC/C,YAAY,OAAO,CAAC,aAAa,EAAE;AACnC,YAAY,OAAO,CAAC,UAAU,EAAE;AAChC,YAAY,OAAO,CAAC,oBAAoB,EAAE;AAC1C,YAAY,OAAO,CAAC,eAAe,EAAE;AACrC,YAAY,OAAO,CAAC,qBAAqB,EAAE;AAC3C,YAAY,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjG,YAAY,WAAW,CAAC,eAAe,EAAE;AACzC,YAAY,WAAW,CAAC,UAAU,EAAE;AACpC,YAAY,WAAW,CAAC,OAAO,EAAE;AACjC,YAAY,SAAS,CAAC,yBAAyB,EAAE;AACjD,YAAY,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,YAAY,eAAe;AAC3B,YAAY,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACpD,YAAY,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACpD,YAAY,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC9C,YAAY,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,cAAc,CAAC;AAC1D,YAAY,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACpD,YAAY,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC;AAClD,YAAY,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;AACvH,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE;AAChC,SAAS;AACT,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK;AAC5E,YAAY,IAAI,EAAE,CAAC,UAAU,EAAE;AAC/B,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AACpD;AACA,gBAAgB,IAAI,CAAC,KAAK,GAAG,IAAI;AACjC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AAClD,YAAY,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AACjC,YAAY,UAAU,EAAE,CAAC,GAAG,cAAc,EAAE,cAAc,CAAC;AAC3D,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACtE;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACtC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM;AACxC,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACzB,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;AAC3B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;AAC1B,YAAY;AACZ,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,KAAK,EAAE;AAChC,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;AACtE,QAAQ,MAAM,OAAO,GAAG,OAAO;AAC/B,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACjC,YAAY,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACnC,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,IAAI;AACJ,IAAI,MAAM,qBAAqB,GAAG;AAClC,QAAQ,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACpG,YAAY,OAAO,kBAAkB,CAAC;AACtC,YAAY,OAAO,mBAAmB,CAAC;AACvC,YAAY,OAAO,sBAAsB,CAAC;AAC1C,YAAY,OAAO,0BAA0B,CAAC;AAC9C,YAAY,OAAO,sBAAsB,CAAC;AAC1C,YAAY,OAAO,oBAAoB,CAAC;AACxC,YAAY,OAAO,kBAAkB,CAAC;AACtC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO;AAClC,QAAQ,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,OAAO;AACtC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM;AACjC,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO;AAC9B,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;AACtC,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY;AACZ,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC7D,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC7D,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC1D,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAChE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC7D,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC5D,QAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AACjE,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;AAChE,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACvC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AACxC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY;AAC5C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AACpC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;AACzD,YAAY,OAAO,EAAE;AACrB,QAAQ,OAAO;AACf,YAAY,GAAG,MAAM,CAAC,aAAa;AACnC,YAAY,GAAG,MAAM,CAAC,aAAa;AACnC,YAAY,GAAG,SAAS,CAAC,YAAY;AACrC,YAAY,GAAG,OAAO,CAAC,gBAAgB;AACvC,YAAY,GAAG,OAAO,CAAC,UAAU;AACjC,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,WAAW,EAAE,aAAa,EAAE;AAC5D;AACA,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC;AACrE,QAAQ;AACR;AACA,QAAQ,MAAM,OAAO,GAAG,aAAa,KAAK,MAAM,GAAG,aAAa,GAAG,cAAc;AACjF,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC7D,IAAI;AACJ,IAAI,4BAA4B,GAAG;AACnC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACjD,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,OAAO,SAAS;AAC5B,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAC5C,YAAY,OAAO,CAAC,QAAQ,CAAC;AAC7B,QAAQ;AACR;AACA,QAAQ,MAAM,YAAY,GAAG,CAAC,OAAO,KAAK;AAC1C,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;AACpC,YAAY,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC9C,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,YAAY,CAAC;AAC7B,IAAI;AACJ;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,IAAI;AAChB,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,IAAI;AACJ;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AAC5C,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;AACjE,IAAI;AACJ;AACA;AACA,IAAI,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE;AAChC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AAChD,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnF,QAAQ,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM;AAC9C,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;AACjG,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,IAAI;AAChB,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC;AAC7C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;AACtC,YAAY,OAAO,OAAO,GAAG,EAAE,KAAK,KAAK,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM;AACpG,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AACrC,QAAQ,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;AACpD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACxL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE;AACr8F,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE;AAChF,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE;AACxE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACxK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,sfAAsf,CAAC,EAAE,CAAC,CAAC;AACzhB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE;AACvD,wBAAwB,qBAAqB,EAAE,wBAAwB;AACvE,wBAAwB,KAAK,EAAE,sBAAsB;AACrD,qBAAqB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,SAAS,EAAE;AACvL,wBAAwB,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE;AAC5F,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AAChF,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE;AACpF,qBAAqB,EAAE,QAAQ,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,sfAAsf,CAAC,EAAE;AACvgB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;AC7bplD,MAAM,kBAAkB,CAAC;AAChC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACxN,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAC/J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;AAClE,oBAAoB,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACpD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACfb;;ACAA;;ACAA;;ACAA;AACA;AACA;;;;"}
1
+ {"version":3,"file":"acorex-components-code-editor.mjs","sources":["../../../../packages/components/code-editor/src/lib/plugins/default/formatters/prettier.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/css.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/html.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/javascript.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/json.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/markdown.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/sass.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/sql.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/typescript.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/xml.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/github-dark.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/github-light.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/light.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/one-dark.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/config.ts","../../../../packages/components/code-editor/src/lib/plugins/tokens.ts","../../../../packages/components/code-editor/src/lib/plugins/registry.service.ts","../../../../packages/components/code-editor/src/lib/code-editor.component.ts","../../../../packages/components/code-editor/src/lib/code-editor.module.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/index.ts","../../../../packages/components/code-editor/src/lib/plugins/default/index.ts","../../../../packages/components/code-editor/src/index.ts","../../../../packages/components/code-editor/src/acorex-components-code-editor.ts"],"sourcesContent":["import { AXCodeEditorFormatterPlugin } from '../../types';\n\nexport class PrettierFormatterPlugin implements AXCodeEditorFormatterPlugin {\n readonly id = 'prettier';\n readonly name = 'Prettier';\n readonly version = '1.0.0';\n readonly languages = ['javascript', 'js', 'typescript', 'ts', 'json', 'html', 'css', 'markdown'] as const;\n\n async format(text: string, language: string): Promise<string | null> {\n try {\n const prettier = await import('prettier/standalone');\n let parser: string | null = null;\n const plugins: any[] = [];\n\n switch (language) {\n case 'javascript':\n case 'js': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'babel';\n break;\n }\n case 'typescript':\n case 'ts': {\n const [typescript, estree] = await Promise.all([\n import('prettier/plugins/typescript'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(typescript, estree);\n parser = 'typescript';\n break;\n }\n case 'json': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'json';\n break;\n }\n case 'html': {\n const html = await import('prettier/plugins/html');\n plugins.push(html);\n parser = 'html';\n break;\n }\n case 'css': {\n const postcss = await import('prettier/plugins/postcss');\n plugins.push(postcss);\n parser = 'css';\n break;\n }\n case 'markdown': {\n const markdown = await import('prettier/plugins/markdown');\n plugins.push(markdown);\n parser = 'markdown';\n break;\n }\n default:\n return null;\n }\n\n if (!parser) return null;\n const formatted = await prettier.format(text, {\n parser,\n plugins,\n } as any);\n return formatted;\n } catch {\n return null;\n }\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class CSSLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'css';\n readonly name = 'CSS';\n readonly version = '1.0.0';\n readonly languages = ['css'] as const;\n\n async getExtension(): Promise<Extension> {\n const { css } = await import('@codemirror/lang-css');\n return css();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class HTMLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'html';\n readonly name = 'HTML';\n readonly version = '1.0.0';\n readonly languages = ['html'] as const;\n\n async getExtension(): Promise<Extension> {\n const { html } = await import('@codemirror/lang-html');\n return html();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class JavaScriptLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'javascript';\n readonly name = 'JavaScript';\n readonly version = '1.0.0';\n readonly languages = ['javascript', 'js'] as const;\n\n async getExtension(): Promise<Extension> {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class JSONLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'json';\n readonly name = 'JSON';\n readonly version = '1.0.0';\n readonly languages = ['json'] as const;\n\n async getExtension(): Promise<Extension> {\n const { json } = await import('@codemirror/lang-json');\n return json();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class MarkdownLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'markdown';\n readonly name = 'Markdown';\n readonly version = '1.0.0';\n readonly languages = ['markdown'] as const;\n\n async getExtension(): Promise<Extension> {\n const { markdown } = await import('@codemirror/lang-markdown');\n return markdown();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class SassLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'sass';\n readonly name = 'Sass/SCSS';\n readonly version = '1.0.0';\n readonly languages = ['sass', 'scss'] as const;\n\n async getExtension(): Promise<Extension> {\n const { sass } = await import('@codemirror/lang-sass');\n return sass();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class SQLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'sql';\n readonly name = 'SQL';\n readonly version = '1.0.0';\n readonly languages = ['sql'] as const;\n\n async getExtension(): Promise<Extension> {\n const { sql } = await import('@codemirror/lang-sql');\n return sql();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class TypeScriptLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'typescript';\n readonly name = 'TypeScript';\n readonly version = '1.0.0';\n readonly languages = ['typescript', 'ts'] as const;\n\n async getExtension(): Promise<Extension> {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript({ typescript: true });\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class XMLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'xml';\n readonly name = 'XML';\n readonly version = '1.0.0';\n readonly languages = ['xml'] as const;\n\n async getExtension(): Promise<Extension> {\n const { xml } = await import('@codemirror/lang-xml');\n return xml();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class GitHubDarkThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'github-dark';\n readonly name = 'GitHub Dark';\n readonly version = '1.0.0';\n readonly dark = true;\n\n async getExtension(): Promise<Extension> {\n const [{ githubDark }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubDark,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n },\n { dark: true },\n ),\n ];\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class GitHubLightThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'github-light';\n readonly name = 'GitHub Light';\n readonly version = '1.0.0';\n readonly dark = false;\n\n async getExtension(): Promise<Extension> {\n const [{ githubLight }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubLight,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n },\n { dark: false },\n ),\n ];\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class LightThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'light';\n readonly name = 'Light';\n readonly version = '1.0.0';\n readonly dark = false;\n\n async getExtension(): Promise<Extension> {\n const { EditorView } = await import('@codemirror/view');\n return EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: false },\n );\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class OneDarkThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'one-dark';\n readonly name = 'One Dark';\n readonly version = '1.0.0';\n readonly dark = true;\n\n async getExtension(): Promise<Extension> {\n const { EditorView } = await import('@codemirror/view');\n try {\n const { oneDark } = await import('@codemirror/theme-one-dark');\n return [\n oneDark,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: true },\n ),\n ];\n } catch {\n return EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: true },\n );\n }\n }\n}\n","import { AXCodeEditorPluginConfig } from '../types';\nimport { PrettierFormatterPlugin } from './formatters/prettier.plugin';\nimport { CSSLanguagePlugin } from './languages/css.plugin';\nimport { HTMLLanguagePlugin } from './languages/html.plugin';\nimport { JavaScriptLanguagePlugin } from './languages/javascript.plugin';\nimport { JSONLanguagePlugin } from './languages/json.plugin';\nimport { MarkdownLanguagePlugin } from './languages/markdown.plugin';\nimport { SassLanguagePlugin } from './languages/sass.plugin';\nimport { SQLLanguagePlugin } from './languages/sql.plugin';\nimport { TypeScriptLanguagePlugin } from './languages/typescript.plugin';\nimport { XMLLanguagePlugin } from './languages/xml.plugin';\nimport { GitHubDarkThemePlugin } from './themes/github-dark.plugin';\nimport { GitHubLightThemePlugin } from './themes/github-light.plugin';\nimport { LightThemePlugin } from './themes/light.plugin';\nimport { OneDarkThemePlugin } from './themes/one-dark.plugin';\n\n/**\n * Default plugin configuration with all built-in plugins\n */\nexport function provideDefaultCodeEditorPlugins(): AXCodeEditorPluginConfig {\n return {\n languages: [\n new JavaScriptLanguagePlugin(),\n new TypeScriptLanguagePlugin(),\n new JSONLanguagePlugin(),\n new HTMLLanguagePlugin(),\n new CSSLanguagePlugin(),\n new SassLanguagePlugin(),\n new SQLLanguagePlugin(),\n new XMLLanguagePlugin(),\n new MarkdownLanguagePlugin(),\n ],\n themes: [\n new OneDarkThemePlugin(),\n new LightThemePlugin(),\n new GitHubLightThemePlugin(),\n new GitHubDarkThemePlugin(),\n ],\n formatters: [new PrettierFormatterPlugin()],\n extensions: [],\n };\n}\n","import { InjectionToken } from '@angular/core';\nimport { provideDefaultCodeEditorPlugins } from './default/config';\nimport { AXCodeEditorPluginConfig } from './types';\n\n/**\n * Injection token for providing code editor plugin configuration\n */\nexport const AX_CODE_EDITOR_PLUGIN_CONFIG = new InjectionToken<AXCodeEditorPluginConfig>(\n 'AX_CODE_EDITOR_PLUGIN_CONFIG',\n {\n providedIn: 'root',\n factory: () => provideDefaultCodeEditorPlugins(),\n },\n);\n","import { Injectable, inject } from '@angular/core';\nimport type { Extension } from '@codemirror/state';\nimport {\n AXCodeEditorExtensionPlugin,\n AXCodeEditorFormatterPlugin,\n AXCodeEditorLanguagePlugin,\n AXCodeEditorPluginConfig,\n AXCodeEditorThemePlugin,\n} from './types';\nimport { AX_CODE_EDITOR_PLUGIN_CONFIG } from './tokens';\n\n/**\n * Registry service for managing code editor plugins\n */\n@Injectable({ providedIn: 'root' })\nexport class AXCodeEditorPluginRegistry {\n private config: AXCodeEditorPluginConfig | null = inject(AX_CODE_EDITOR_PLUGIN_CONFIG, { optional: true });\n\n private languagePlugins = new Map<string, AXCodeEditorLanguagePlugin>();\n private themePlugins = new Map<string, AXCodeEditorThemePlugin>();\n private formatterPlugins = new Map<string, AXCodeEditorFormatterPlugin>();\n private extensionPlugins = new Map<string, AXCodeEditorExtensionPlugin>();\n\n constructor() {\n this.initializePlugins();\n }\n\n private initializePlugins(): void {\n if (!this.config) return;\n\n // Register language plugins\n this.config.languages?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n });\n\n // Register theme plugins\n this.config.themes?.forEach((plugin) => {\n this.themePlugins.set(plugin.id, plugin);\n });\n\n // Register formatter plugins\n this.config.formatters?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n });\n\n // Register extension plugins\n this.config.extensions?.forEach((plugin) => {\n this.extensionPlugins.set(plugin.id, plugin);\n });\n }\n\n /**\n * Get language extension for the specified language\n */\n async getLanguageExtension(language: string): Promise<Extension> {\n const plugin = this.languagePlugins.get(language);\n if (!plugin) {\n console.warn(`No language plugin found for: ${language}`);\n return [];\n }\n return plugin.getExtension();\n }\n\n /**\n * Get theme extension by theme ID\n */\n async getThemeExtension(themeId: string): Promise<Extension> {\n const plugin = this.themePlugins.get(themeId);\n if (!plugin) {\n console.warn(`No theme plugin found for: ${themeId}`);\n return [];\n }\n return plugin.getExtension();\n }\n\n /**\n * Format text using the appropriate formatter for the language\n */\n async format(text: string, language: string): Promise<string | null> {\n const plugin = this.formatterPlugins.get(language);\n if (!plugin) {\n return null;\n }\n return plugin.format(text, language);\n }\n\n /**\n * Get all registered extension plugins\n */\n async getExtensionPlugins(): Promise<Extension[]> {\n const extensions = await Promise.all(\n Array.from(this.extensionPlugins.values()).map((plugin) => plugin.getExtension()),\n );\n return extensions;\n }\n\n /**\n * Check if a language is supported\n */\n hasLanguage(language: string): boolean {\n return this.languagePlugins.has(language);\n }\n\n /**\n * Check if a theme is available\n */\n hasTheme(themeId: string): boolean {\n return this.themePlugins.has(themeId);\n }\n\n /**\n * Check if a formatter is available for a language\n */\n hasFormatter(language: string): boolean {\n return this.formatterPlugins.has(language);\n }\n\n /**\n * Get all available language identifiers\n */\n getAvailableLanguages(): string[] {\n return Array.from(this.languagePlugins.keys());\n }\n\n /**\n * Get all available theme identifiers\n */\n getAvailableThemes(): string[] {\n return Array.from(this.themePlugins.keys());\n }\n\n /**\n * Register a language plugin at runtime\n */\n registerLanguagePlugin(plugin: AXCodeEditorLanguagePlugin): void {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n }\n\n /**\n * Register a theme plugin at runtime\n */\n registerThemePlugin(plugin: AXCodeEditorThemePlugin): void {\n this.themePlugins.set(plugin.id, plugin);\n }\n\n /**\n * Register a formatter plugin at runtime\n */\n registerFormatterPlugin(plugin: AXCodeEditorFormatterPlugin): void {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n }\n\n /**\n * Register an extension plugin at runtime\n */\n registerExtensionPlugin(plugin: AXCodeEditorExtensionPlugin): void {\n this.extensionPlugins.set(plugin.id, plugin);\n }\n}\n","import { AXComponent, AXValuableComponent, MXValueComponent } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n PLATFORM_ID,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXCodeEditorDefaultLanguage } from './plugins';\nimport { AXCodeEditorPluginRegistry } from './plugins/registry.service';\n\n// Re-export language type for external use\nexport type { AXCodeEditorDefaultLanguage } from './plugins/default/languages';\n\n// Type-only aliases for CodeMirror types (tree-shake friendly)\ntype AXCodeEditorEditorViewLike = import('@codemirror/view').EditorView;\ntype AXCodeEditorKeyBindingLike = import('@codemirror/view').KeyBinding;\nexport type AXCodeEditorExtensionLike = import('@codemirror/state').Extension;\ntype AXCodeEditorCompartmentLike = import('@codemirror/state').Compartment;\nexport type AXCodeEditorCompletionLike = import('@codemirror/autocomplete').Completion;\nexport type AXCodeEditorCompletionSourceLike = import('@codemirror/autocomplete').CompletionSource;\ntype AXCodeEditorCompletionContextLike = import('@codemirror/autocomplete').CompletionContext;\n\ntype AXCodeEditorViewModule = typeof import('@codemirror/view');\ntype AXCodeEditorStateModule = typeof import('@codemirror/state');\ntype AXCodeEditorLanguageModule = typeof import('@codemirror/language');\ntype AXCodeEditorAutocompleteModule = typeof import('@codemirror/autocomplete');\ntype AXCodeEditorCommandsModule = typeof import('@codemirror/commands');\ntype AXCodeEditorSearchModule = typeof import('@codemirror/search');\ntype AXCodeEditorLintModule = typeof import('@codemirror/lint');\n\n@Component({\n selector: 'ax-code-editor',\n host: {\n '(keydown.control.s)': 'onSaveShortcut($event)',\n class: 'ax-code-editor block',\n },\n inputs: ['disabled', 'value', 'state', 'name', 'id'],\n outputs: ['onValueChanged', 'valueChange', 'stateChange', 'readonlyChange', 'disabledChange'],\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n\n &.ax-disable {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n > .ax-editor-container {\n height: 100%;\n width: 100%;\n align-items: start;\n --ax-comp-editor-space-start-size: 0;\n --ax-comp-editor-space-end-size: 0;\n --ax-comp-editor-border-width: 1px;\n }\n\n .ax-code-editor-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .cm-editor {\n width: 100%;\n max-width: 100%;\n overflow: auto;\n }\n\n .cm-editor.cm-focused {\n outline: none;\n }\n\n .ax-error-message {\n padding-inline: 0.5rem;\n }\n }\n `,\n ],\n providers: [\n { provide: AXValuableComponent, useExisting: AXCodeEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCodeEditorComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCodeEditorComponent },\n ],\n template: `\n <div class=\"ax-editor-container\" [style.min-height]=\"getMinHeight()\">\n <div class=\"ax-code-editor-container\">\n <div\n #host\n class=\"cm-editor\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-readonly]=\"editorReadonly() ? 'true' : 'false'\"\n [attr.data-placeholder]=\"placeholder() ?? null\"\n ></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n `,\n})\nexport class AXCodeEditorComponent extends MXValueComponent<string> {\n // Inputs (signals)\n // value = input<string>('');\n /** Active language identifier from default plugins. Default: 'javascript'. */\n language = input<AXCodeEditorDefaultLanguage>('javascript');\n /** When true, the editor becomes readonly (non-editable). */\n editorReadonly = input(false, { alias: 'readonly' });\n /** Placeholder text shown when the document is empty. */\n placeholder = input<string>('');\n /** Toggle rendering of line numbers in the gutter. */\n lineNumbers = input<boolean>(true);\n /** Soft-wrap long lines when true. */\n lineWrapping = input<boolean>(false);\n /** Tab size (spaces per indent level). */\n tabSize = input<number>(2);\n /** When true, the Tab key indents instead of moving focus. */\n indentWithTab = input<boolean>(true);\n /** Theme identifier. If null, uses platform theme mode (dark/light). */\n theme = input<string | null>(null);\n /** Additional CodeMirror extensions to apply. Reconfigures at runtime. */\n extensions = input<ReadonlyArray<AXCodeEditorExtensionLike>>([]);\n /** ARIA label for accessibility. */\n ariaLabel = input<string | null>(null);\n /** Focus the editor after first render. */\n focusOnReady = input<boolean>(false);\n /** If true, format the document via Prettier before emitting save. */\n formatOnSave = input<boolean>(false);\n /** Minimum number of rows (lines) to display. Controls the minimum height of the editor. */\n minRow = input<number | null>(null);\n\n /**\n * Custom autocompletion options: either a static array of Completion items\n * or a CodeMirror CompletionSource function.\n */\n customCompletions = input<ReadonlyArray<AXCodeEditorCompletionLike> | AXCodeEditorCompletionSourceLike | null>(null);\n\n // Outputs (signals)\n // valueChange = output<string>();\n /** Emits when the editor is fully initialized and ready. */\n ready = output<void>();\n /** Emits when the user triggers save (Ctrl/Cmd+S). Payload is the current text. */\n save = output<string>();\n\n // View container\n host = viewChild<ElementRef<HTMLDivElement>>('host');\n\n // Runtime state\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n private platformService = inject(AXPlatform);\n private pluginRegistry = inject(AXCodeEditorPluginRegistry);\n\n private editorViewSig = signal<AXCodeEditorEditorViewLike | null>(null);\n\n // Compartments to reconfigure editor without recreating it\n private languageCompartment: AXCodeEditorCompartmentLike | null = null;\n private readonlyCompartment: AXCodeEditorCompartmentLike | null = null;\n private themeCompartment: AXCodeEditorCompartmentLike | null = null;\n private placeholderCompartment: AXCodeEditorCompartmentLike | null = null;\n private wrappingCompartment: AXCodeEditorCompartmentLike | null = null;\n private keymapExtrasCompartment: AXCodeEditorCompartmentLike | null = null;\n private tabSizeCompartment: AXCodeEditorCompartmentLike | null = null;\n private lineNumbersCompartment: AXCodeEditorCompartmentLike | null = null;\n\n // Cached CodeMirror modules after initialization\n private cm: {\n view: AXCodeEditorViewModule | null;\n state: AXCodeEditorStateModule | null;\n language: AXCodeEditorLanguageModule | null;\n autocomplete: AXCodeEditorAutocompleteModule | null;\n commands: AXCodeEditorCommandsModule | null;\n search: AXCodeEditorSearchModule | null;\n lint: AXCodeEditorLintModule | null;\n } = { view: null, state: null, language: null, autocomplete: null, commands: null, search: null, lint: null };\n\n private isBrowser = computed(() => isPlatformBrowser(this.platformId));\n\n /** Computed minimum height based on minRow (excluding gutter/line numbers). */\n getMinHeight(): string | null {\n const rows = this.minRow();\n if (!rows || rows <= 0) return null;\n // CodeMirror default line height is typically 1.5em, but we use rem for consistency\n // This calculates height without accounting for gutter since gutter is separate\n return `calc(${rows} * 1.5rem)`;\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n if (!this.isBrowser()) return;\n this.initializeEditor();\n });\n\n // Keep model in sync when external value changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view) return;\n const newDoc = this.value ?? '';\n const current = view.state.doc.toString();\n if (newDoc !== current) {\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: newDoc },\n });\n }\n });\n\n // React to dynamic configuration changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.languageCompartment) return;\n const lang = this.language();\n this.pluginRegistry.getLanguageExtension(lang).then((ext) => {\n if (!view || !this.languageCompartment) return;\n view.dispatch({ effects: this.languageCompartment.reconfigure(ext) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.readonlyCompartment) return;\n const editable = !this.editorReadonly();\n import('@codemirror/view').then(({ EditorView }) => {\n if (!view || !this.readonlyCompartment) return;\n view.dispatch({ effects: this.readonlyCompartment.reconfigure(EditorView.editable.of(editable)) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n // Establish reactive dependency on theme and platform theme\n const customTheme = this.theme();\n const platformTheme = this.platformService.themeMode();\n if (!view || !this.themeCompartment) return;\n this.resolveThemeExtension(customTheme, platformTheme).then((themeExt) => {\n if (!view || !this.themeCompartment) return;\n view.dispatch({ effects: this.themeCompartment.reconfigure(themeExt) });\n });\n });\n\n effect(() => {\n this.placeholder();\n const view = this.editorViewSig();\n if (!view || !this.placeholderCompartment) return;\n import('@codemirror/view').then(({ placeholder }) => {\n if (!view || !this.placeholderCompartment) return;\n view.dispatch({ effects: this.placeholderCompartment.reconfigure(placeholder(this.placeholder() ?? '')) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.wrappingCompartment) return;\n const EditorView = this.cm.view?.EditorView;\n if (!EditorView) return;\n const nextExt = this.lineWrapping() ? EditorView.lineWrapping : [];\n this.reconfigure(this.wrappingCompartment, nextExt);\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.tabSizeCompartment) return;\n const EditorState = this.cm.state?.EditorState;\n if (!EditorState) return;\n this.reconfigure(this.tabSizeCompartment, EditorState.tabSize.of(this.tabSize() ?? 2));\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.keymapExtrasCompartment) return;\n const keymap = this.cm.view?.keymap;\n const commands = this.cm.commands;\n if (!keymap || !commands) return;\n this.reconfigure(this.keymapExtrasCompartment, keymap.of(this.indentWithTab() ? [commands.indentWithTab] : []));\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.lineNumbersCompartment) return;\n const lineNumbers = this.cm.view?.lineNumbers;\n if (!lineNumbers) return;\n this.reconfigure(this.lineNumbersCompartment, this.lineNumbers() ? lineNumbers() : []);\n });\n }\n\n private async initializeEditor(): Promise<void> {\n const hostEl = this.host()?.nativeElement;\n if (!hostEl) return;\n\n await this.loadCodeMirrorModules();\n\n this.createCompartments();\n\n const keymaps = this.buildKeymaps();\n\n const viewMod = this.cm.view;\n const stateMod = this.cm.state;\n const languageMod = this.cm.language;\n const autoMod = this.cm.autocomplete;\n const commandsMod = this.cm.commands;\n const searchMod = this.cm.search;\n const lintMod = this.cm.lint;\n if (!viewMod || !stateMod || !languageMod || !autoMod || !commandsMod || !searchMod || !lintMod) return;\n const languageExt = await this.pluginRegistry.getLanguageExtension(this.language());\n const themeExt = await this.resolveThemeExtension(this.theme(), this.platformService.themeMode());\n const placeholderExt = viewMod.placeholder(this.placeholder() ?? '');\n const editableExt = viewMod.EditorView.editable.of(!this.editorReadonly());\n const wrappingExt = this.lineWrapping() ? viewMod.EditorView.lineWrapping : [];\n const tabSizeExt = stateMod.EditorState.tabSize.of(this.tabSize() ?? 2);\n const lineNumbersExt = this.lineNumbers() ? viewMod.lineNumbers() : [];\n\n const autoCompleteExt = autoMod.autocompletion({\n override: this.buildCustomCompletionSources(),\n });\n\n const baseExtensions: ReadonlyArray<AXCodeEditorExtensionLike> = [\n this.lineNumbersCompartment.of(lineNumbersExt),\n viewMod.highlightActiveLine(),\n viewMod.highlightActiveLineGutter(),\n viewMod.drawSelection(),\n viewMod.dropCursor(),\n viewMod.rectangularSelection(),\n viewMod.crosshairCursor(),\n viewMod.highlightSpecialChars(),\n languageMod.syntaxHighlighting(languageMod.defaultHighlightStyle, { fallback: true }),\n languageMod.bracketMatching(),\n languageMod.foldGutter(),\n commandsMod.history(),\n searchMod.highlightSelectionMatches(),\n viewMod.keymap.of(keymaps),\n autoCompleteExt,\n this.languageCompartment.of(languageExt),\n this.readonlyCompartment.of(editableExt),\n this.themeCompartment.of(themeExt),\n this.placeholderCompartment.of(placeholderExt),\n this.wrappingCompartment.of(wrappingExt),\n this.tabSizeCompartment.of(tabSizeExt),\n this.keymapExtrasCompartment.of(viewMod.keymap.of(this.indentWithTab() ? [commandsMod.indentWithTab] : [])),\n ...this.extensions(),\n ];\n\n const updateListener = viewMod.EditorView.updateListener.of((vu) => {\n if (vu.docChanged) {\n const text = vu.state.doc.toString();\n // this.writeValue(text);\n this.value = text;\n }\n });\n\n const state = stateMod.EditorState.create({\n doc: this.value ?? '',\n extensions: [...baseExtensions, updateListener],\n });\n\n const view = new viewMod.EditorView({ state, parent: hostEl });\n\n // Update listener for external changes (selection, viewport, etc.) if needed later\n view.dispatch({ effects: [] });\n\n this.editorViewSig.set(view);\n\n this.destroyRef.onDestroy(() => {\n view.destroy();\n this.editorViewSig.set(null);\n });\n\n if (this.focusOnReady()) {\n view.focus();\n }\n\n this.ready.emit();\n }\n\n private reconfigure(comp: AXCodeEditorCompartmentLike | null, ext: AXCodeEditorExtensionLike): void {\n const view = this.editorViewSig();\n if (!view || !comp) return;\n view.dispatch({ effects: comp.reconfigure(ext) });\n }\n\n /**\n * Handles Ctrl/Cmd+S on the host. If formatOnSave is enabled, attempts\n * to format the document first, then emits the saved text.\n */\n async onSaveShortcut(event: KeyboardEvent): Promise<void> {\n event.preventDefault();\n const view = this.editorViewSig();\n const current = view?.state.doc.toString() ?? this.value ?? '';\n const payload = current;\n if (this.formatOnSave()) {\n await this.format(true);\n }\n this.save.emit(payload);\n }\n\n private async loadCodeMirrorModules(): Promise<void> {\n const [viewMod, stateMod, langMod, autoMod, cmdMod, searchMod, lintMod] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/state'),\n import('@codemirror/language'),\n import('@codemirror/autocomplete'),\n import('@codemirror/commands'),\n import('@codemirror/search'),\n import('@codemirror/lint'),\n ]);\n this.cm.view = viewMod;\n this.cm.state = stateMod;\n this.cm.language = langMod;\n this.cm.autocomplete = autoMod;\n this.cm.commands = cmdMod;\n this.cm.search = searchMod;\n this.cm.lint = lintMod;\n }\n\n private createCompartments(): void {\n const stateMod = this.cm.state;\n if (!stateMod) return;\n this.languageCompartment = new stateMod.Compartment();\n this.readonlyCompartment = new stateMod.Compartment();\n this.themeCompartment = new stateMod.Compartment();\n this.placeholderCompartment = new stateMod.Compartment();\n this.wrappingCompartment = new stateMod.Compartment();\n this.tabSizeCompartment = new stateMod.Compartment();\n this.keymapExtrasCompartment = new stateMod.Compartment();\n this.lineNumbersCompartment = new stateMod.Compartment();\n }\n\n private buildKeymaps(): ReadonlyArray<AXCodeEditorKeyBindingLike> {\n const cmdMod = this.cm.commands;\n const searchMod = this.cm.search;\n const autoMod = this.cm.autocomplete;\n const lintMod = this.cm.lint;\n if (!cmdMod || !searchMod || !autoMod || !lintMod) return [];\n return [\n ...cmdMod.defaultKeymap,\n ...cmdMod.historyKeymap,\n ...searchMod.searchKeymap,\n ...autoMod.completionKeymap,\n ...lintMod.lintKeymap,\n ];\n }\n\n private async resolveThemeExtension(\n customTheme: string | null,\n platformTheme: string,\n ): Promise<AXCodeEditorExtensionLike> {\n // If custom theme is specified, use it\n if (customTheme) {\n return this.pluginRegistry.getThemeExtension(customTheme);\n }\n\n // Otherwise, use platform theme (handle 'system' by defaulting to 'github-light')\n const themeId = platformTheme === 'dark' ? 'github-dark' : 'github-light';\n return this.pluginRegistry.getThemeExtension(themeId);\n }\n\n private buildCustomCompletionSources(): ReadonlyArray<AXCodeEditorCompletionSourceLike> | undefined {\n const provided = this.customCompletions();\n if (!provided) return undefined;\n if (typeof provided === 'function') {\n return [provided as AXCodeEditorCompletionSourceLike];\n }\n // Treat array as a static completion list\n const staticSource: AXCodeEditorCompletionSourceLike = (context: AXCodeEditorCompletionContextLike) => {\n const from = context.pos;\n return { from, options: provided as ReadonlyArray<AXCodeEditorCompletionLike> };\n };\n return [staticSource];\n }\n\n // Public API\n /** Programmatically focus the editor. */\n public override focus(): void {\n const view = this.editorViewSig();\n if (view) view.focus();\n }\n\n /** Select all text in the current document. */\n public selectAll(): void {\n const view = this.editorViewSig();\n if (!view) return;\n const length = view.state.doc.length;\n view.dispatch({ selection: { anchor: 0, head: length } });\n }\n\n // Formats the current document using the registered formatter plugin (if available for the active language).\n // Returns the formatted text or null if unchanged/unsupported.\n public async format(affect = true): Promise<string | null> {\n const view = this.editorViewSig();\n if (!view) return null;\n const source = view.state.doc.toString();\n if (!source) return null;\n const formatted = await this.pluginRegistry.format(source, this.language());\n if (!formatted || formatted === source) return null;\n if (affect) {\n view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: formatted } });\n }\n return formatted;\n }\n\n /** Returns the total number of characters in the current document. */\n public getTotalCharacters(): number {\n const view = this.editorViewSig();\n if (view) return view.state.doc.length ?? 0;\n const text = this.value ?? '';\n return text.length;\n }\n\n /** Returns the total number of lines in the current document. */\n public getTotalLines(): number {\n const view = this.editorViewSig();\n if (view) {\n const doc: any = view.state.doc;\n return typeof doc?.lines === 'number' ? doc.lines : doc.toString().split(/\\r?\\n/).length;\n }\n const text = this.value ?? '';\n return text ? text.split(/\\r?\\n/).length : 1;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCodeEditorComponent } from './code-editor.component';\n\n@NgModule({\n imports: [CommonModule, AXCodeEditorComponent],\n exports: [AXCodeEditorComponent],\n})\nexport class AXCodeEditorModule {}\n","// Language plugins\nexport * from './javascript.plugin';\nexport * from './typescript.plugin';\nexport * from './json.plugin';\nexport * from './html.plugin';\nexport * from './css.plugin';\nexport * from './sass.plugin';\nexport * from './sql.plugin';\nexport * from './xml.plugin';\nexport * from './markdown.plugin';\n\n// Type union of all supported languages from default plugins\nexport type AXCodeEditorDefaultLanguage =\n | 'javascript'\n | 'js'\n | 'typescript'\n | 'ts'\n | 'json'\n | 'html'\n | 'css'\n | 'scss'\n | 'sass'\n | 'sql'\n | 'xml'\n | 'markdown';\n","// Language plugins\nexport * from './languages';\n\n// Theme plugins\nexport * from './themes/one-dark.plugin';\nexport * from './themes/light.plugin';\nexport * from './themes/github-light.plugin';\nexport * from './themes/github-dark.plugin';\n\n// Formatter plugins\nexport * from './formatters/prettier.plugin';\n","// Component & Module\nexport * from './lib/code-editor.component';\nexport * from './lib/code-editor.module';\n\n// Plugins\nexport * from './lib/plugins';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAEa,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,UAAU;QACf,IAAA,CAAA,IAAI,GAAG,UAAU;QACjB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAU;IAsE3G;AApEE,IAAA,MAAM,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAA;AACzC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,qBAAqB,CAAC;YACpD,IAAI,MAAM,GAAkB,IAAI;YAChC,MAAM,OAAO,GAAU,EAAE;YAEzB,QAAQ,QAAQ;AACd,gBAAA,KAAK,YAAY;gBACjB,KAAK,IAAI,EAAE;oBACT,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACxC,OAAO,wBAAwB,CAAC;wBAChC,OAAO,yBAAyB,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC3B,MAAM,GAAG,OAAO;oBAChB;gBACF;AACA,gBAAA,KAAK,YAAY;gBACjB,KAAK,IAAI,EAAE;oBACT,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC7C,OAAO,6BAA6B,CAAC;wBACrC,OAAO,yBAAyB,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;oBAChC,MAAM,GAAG,YAAY;oBACrB;gBACF;gBACA,KAAK,MAAM,EAAE;oBACX,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACxC,OAAO,wBAAwB,CAAC;wBAChC,OAAO,yBAAyB,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC3B,MAAM,GAAG,MAAM;oBACf;gBACF;gBACA,KAAK,MAAM,EAAE;AACX,oBAAA,MAAM,IAAI,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAClD,oBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClB,MAAM,GAAG,MAAM;oBACf;gBACF;gBACA,KAAK,KAAK,EAAE;AACV,oBAAA,MAAM,OAAO,GAAG,MAAM,OAAO,0BAA0B,CAAC;AACxD,oBAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrB,MAAM,GAAG,KAAK;oBACd;gBACF;gBACA,KAAK,UAAU,EAAE;AACf,oBAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAC1D,oBAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,MAAM,GAAG,UAAU;oBACnB;gBACF;AACA,gBAAA;AACE,oBAAA,OAAO,IAAI;;AAGf,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI;YACxB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC5C,MAAM;gBACN,OAAO;AACD,aAAA,CAAC;AACT,YAAA,OAAO,SAAS;QAClB;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;AACD;;MCzEY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,KAAK;QACV,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAK,CAAU;IAMvC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QACpD,OAAO,GAAG,EAAE;IACd;AACD;;MCVY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,MAAM;QACX,IAAA,CAAA,IAAI,GAAG,MAAM;QACb,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAM,CAAU;IAMxC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;QACtD,OAAO,IAAI,EAAE;IACf;AACD;;MCVY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,YAAY;QACjB,IAAA,CAAA,IAAI,GAAG,YAAY;QACnB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,CAAU;IAMpD;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;QAClE,OAAO,UAAU,EAAE;IACrB;AACD;;MCVY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,MAAM;QACX,IAAA,CAAA,IAAI,GAAG,MAAM;QACb,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAM,CAAU;IAMxC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;QACtD,OAAO,IAAI,EAAE;IACf;AACD;;MCVY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,UAAU;QACf,IAAA,CAAA,IAAI,GAAG,UAAU;QACjB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,UAAU,CAAU;IAM5C;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,2BAA2B,CAAC;QAC9D,OAAO,QAAQ,EAAE;IACnB;AACD;;MCVY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,MAAM;QACX,IAAA,CAAA,IAAI,GAAG,WAAW;QAClB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU;IAMhD;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;QACtD,OAAO,IAAI,EAAE;IACf;AACD;;MCVY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,KAAK;QACV,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAK,CAAU;IAMvC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QACpD,OAAO,GAAG,EAAE;IACd;AACD;;MCVY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,YAAY;QACjB,IAAA,CAAA,IAAI,GAAG,YAAY;QACnB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,CAAU;IAMpD;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;QAClE,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACzC;AACD;;MCVY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,KAAK;QACV,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAK,CAAU;IAMvC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QACpD,OAAO,GAAG,EAAE;IACd;AACD;;MCVY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,aAAa;QAClB,IAAA,CAAA,IAAI,GAAG,aAAa;QACpB,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,IAAI;IAkBtB;AAhBE,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzD,OAAO,8BAA8B,CAAC;YACtC,OAAO,kBAAkB,CAAC;AAC3B,SAAA,CAAC;QACF,OAAO;YACL,UAAU;YACV,UAAU,CAAC,KAAK,CACd;;;AAGC,aAAA,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf;SACF;IACH;AACD;;MCtBY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,cAAc;QACnB,IAAA,CAAA,IAAI,GAAG,cAAc;QACrB,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,KAAK;IAkBvB;AAhBE,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,OAAO,8BAA8B,CAAC;YACtC,OAAO,kBAAkB,CAAC;AAC3B,SAAA,CAAC;QACF,OAAO;YACL,WAAW;YACX,UAAU,CAAC,KAAK,CACd;;;AAGC,aAAA,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB;SACF;IACH;AACD;;MCtBY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,OAAO;QACZ,IAAA,CAAA,IAAI,GAAG,OAAO;QACd,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,KAAK;IAYvB;AAVE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;QACvD,OAAO,UAAU,CAAC,KAAK,CACrB;;AAEE,YAAA,aAAa,EAAE,EAAE;AAClB,SAAA,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB;IACH;AACD;;MChBY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,UAAU;QACf,IAAA,CAAA,IAAI,GAAG,UAAU;QACjB,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,IAAI;IA0BtB;AAxBE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;AACvD,QAAA,IAAI;YACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,4BAA4B,CAAC;YAC9D,OAAO;gBACL,OAAO;gBACP,UAAU,CAAC,KAAK,CACd;;AAEE,oBAAA,aAAa,EAAE,EAAE;AAClB,iBAAA,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf;aACF;QACH;AAAE,QAAA,MAAM;YACN,OAAO,UAAU,CAAC,KAAK,CACrB;;AAEE,gBAAA,aAAa,EAAE,EAAE;AAClB,aAAA,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf;QACH;IACF;AACD;;ACjBD;;AAEG;SACa,+BAA+B,GAAA;IAC7C,OAAO;AACL,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,wBAAwB,EAAE;AAC9B,YAAA,IAAI,wBAAwB,EAAE;AAC9B,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,iBAAiB,EAAE;AACvB,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,iBAAiB,EAAE;AACvB,YAAA,IAAI,iBAAiB,EAAE;AACvB,YAAA,IAAI,sBAAsB,EAAE;AAC7B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,gBAAgB,EAAE;AACtB,YAAA,IAAI,sBAAsB,EAAE;AAC5B,YAAA,IAAI,qBAAqB,EAAE;AAC5B,SAAA;AACD,QAAA,UAAU,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;AAC3C,QAAA,UAAU,EAAE,EAAE;KACf;AACH;;ACrCA;;AAEG;MACU,4BAA4B,GAAG,IAAI,cAAc,CAC5D,8BAA8B,EAC9B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,+BAA+B,EAAE;AACjD,CAAA;;ACDH;;AAEG;MAEU,0BAA0B,CAAA;AAQrC,IAAA,WAAA,GAAA;QAPQ,IAAA,CAAA,MAAM,GAAoC,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAElG,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,GAAG,EAAsC;AAC/D,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAmC;AACzD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAuC;AACjE,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAuC;QAGvE,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;;QAGlB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACxC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAC1C,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAC9C,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,MAAM,oBAAoB,CAAC,QAAgB,EAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,IAAI,CAAC,iCAAiC,QAAQ,CAAA,CAAE,CAAC;AACzD,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,MAAM,CAAC,YAAY,EAAE;IAC9B;AAEA;;AAEG;IACH,MAAM,iBAAiB,CAAC,OAAe,EAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAA,CAAE,CAAC;AACrD,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,MAAM,CAAC,YAAY,EAAE;IAC9B;AAEA;;AAEG;AACH,IAAA,MAAM,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,IAAI;QACb;QACA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtC;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,CAClF;AACD,QAAA,OAAO,UAAU;IACnB;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC3C;AAEA;;AAEG;AACH,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;IACvC;AAEA;;AAEG;AACH,IAAA,YAAY,CAAC,QAAgB,EAAA;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5C;AAEA;;AAEG;IACH,qBAAqB,GAAA;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAChD;AAEA;;AAEG;IACH,kBAAkB,GAAA;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7C;AAEA;;AAEG;AACH,IAAA,sBAAsB,CAAC,MAAkC,EAAA;QACvD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,mBAAmB,CAAC,MAA+B,EAAA;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IAC1C;AAEA;;AAEG;AACH,IAAA,uBAAuB,CAAC,MAAmC,EAAA;QACzD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,uBAAuB,CAAC,MAAmC,EAAA;QACzD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IAC9C;+GAtJW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;4FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACyG5B,MAAO,qBAAsB,SAAQ,gBAAwB,CAAA;;IA8EjE,YAAY,GAAA;AACV,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;;;QAGnC,OAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,UAAA,CAAY;IACjC;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;;;AAnFT,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA8B,YAAY,oDAAC;;AAE3D,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,KAAK,kDAAI,KAAK,EAAE,UAAU,EAAA,CAAA,GAAA,CAAnB,EAAE,KAAK,EAAE,UAAU,EAAE,GAAC;;AAEpD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;;AAE/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;;AAElC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAEpC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,CAAC,mDAAC;;AAE1B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,IAAI,yDAAC;;AAEpC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,iDAAC;;AAElC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAA2C,EAAE,sDAAC;;AAEhE,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;;AAEtC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAEpC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAEpC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,kDAAC;AAEnC;;;AAGG;AACH,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAsF,IAAI,6DAAC;;;;QAKpH,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;;QAEtB,IAAA,CAAA,IAAI,GAAG,MAAM,EAAU;;AAGvB,QAAA,IAAA,CAAA,IAAI,GAAG,SAAS,CAA6B,MAAM,gDAAC;;AAG5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAEnD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAoC,IAAI,yDAAC;;QAG/D,IAAA,CAAA,mBAAmB,GAAuC,IAAI;QAC9D,IAAA,CAAA,mBAAmB,GAAuC,IAAI;QAC9D,IAAA,CAAA,gBAAgB,GAAuC,IAAI;QAC3D,IAAA,CAAA,sBAAsB,GAAuC,IAAI;QACjE,IAAA,CAAA,mBAAmB,GAAuC,IAAI;QAC9D,IAAA,CAAA,uBAAuB,GAAuC,IAAI;QAClE,IAAA,CAAA,kBAAkB,GAAuC,IAAI;QAC7D,IAAA,CAAA,sBAAsB,GAAuC,IAAI;;AAGjE,QAAA,IAAA,CAAA,EAAE,GAQN,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAErG,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,qDAAC;QAapE,eAAe,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE;AACzB,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI;gBAAE;AACX,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AACzC,YAAA,IAAI,MAAM,KAAK,OAAO,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC;AACZ,oBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAChE,iBAAA,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE;AACxC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AAC1D,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBAAE;AACxC,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACvE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE;AACxC,YAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YACvC,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;AACjD,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBAAE;gBACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AACpG,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;;AAEjC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;AACtD,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE;AACrC,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AACvE,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAAE;AACrC,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE;YAC3C,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,KAAI;AAClD,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;oBAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5G,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU;AAC3C,YAAA,IAAI,CAAC,UAAU;gBAAE;AACjB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,GAAG,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC;AACrD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB;gBAAE;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW;AAC9C,YAAA,IAAI,CAAC,WAAW;gBAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACxF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB;gBAAE;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM;AACnC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACjC,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;gBAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;AACjH,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW;AAC7C,YAAA,IAAI,CAAC,WAAW;gBAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,CAAC;AACxF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,MAAM,gBAAgB,GAAA;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa;AACzC,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE;QAElC,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AAEnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;AAC9B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY;AACpC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACpC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AAC5B,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE;AACjG,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnF,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjG,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AACpE,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1E,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE;AAC9E,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvE,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE;AAEtE,QAAA,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;AAC7C,YAAA,QAAQ,EAAE,IAAI,CAAC,4BAA4B,EAAE;AAC9C,SAAA,CAAC;AAEF,QAAA,MAAM,cAAc,GAA6C;AAC/D,YAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,cAAc,CAAC;YAC9C,OAAO,CAAC,mBAAmB,EAAE;YAC7B,OAAO,CAAC,yBAAyB,EAAE;YACnC,OAAO,CAAC,aAAa,EAAE;YACvB,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,oBAAoB,EAAE;YAC9B,OAAO,CAAC,eAAe,EAAE;YACzB,OAAO,CAAC,qBAAqB,EAAE;AAC/B,YAAA,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACrF,WAAW,CAAC,eAAe,EAAE;YAC7B,WAAW,CAAC,UAAU,EAAE;YACxB,WAAW,CAAC,OAAO,EAAE;YACrB,SAAS,CAAC,yBAAyB,EAAE;AACrC,YAAA,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;YAC1B,eAAe;AACf,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACxC,YAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC;AAClC,YAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,cAAc,CAAC;AAC9C,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC;AACtC,YAAA,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3G,GAAG,IAAI,CAAC,UAAU,EAAE;SACrB;AAED,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,KAAI;AACjE,YAAA,IAAI,EAAE,CAAC,UAAU,EAAE;gBACjB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;;AAEpC,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACnB;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AACxC,YAAA,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AACrB,YAAA,UAAU,EAAE,CAAC,GAAG,cAAc,EAAE,cAAc,CAAC;AAChD,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;QAG9D,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAE9B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAE5B,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;YAC7B,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,KAAK,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IAEQ,WAAW,CAAC,IAAwC,EAAE,GAA8B,EAAA;AAC1F,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD;AAEA;;;AAGG;IACH,MAAM,cAAc,CAAC,KAAoB,EAAA;QACvC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9D,MAAM,OAAO,GAAG,OAAO;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACzB;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACzB;AAEQ,IAAA,MAAM,qBAAqB,GAAA;QACjC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1F,OAAO,kBAAkB,CAAC;YAC1B,OAAO,mBAAmB,CAAC;YAC3B,OAAO,sBAAsB,CAAC;YAC9B,OAAO,0BAA0B,CAAC;YAClC,OAAO,sBAAsB,CAAC;YAC9B,OAAO,oBAAoB,CAAC;YAC5B,OAAO,kBAAkB,CAAC;AAC3B,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,OAAO;AAC9B,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM;AACzB,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO;IACxB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;AAC9B,QAAA,IAAI,CAAC,QAAQ;YAAE;QACf,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QAClD,IAAI,CAAC,sBAAsB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACpD,IAAI,CAAC,uBAAuB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACzD,IAAI,CAAC,sBAAsB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;IAC1D;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC/B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,EAAE;QAC5D,OAAO;YACL,GAAG,MAAM,CAAC,aAAa;YACvB,GAAG,MAAM,CAAC,aAAa;YACvB,GAAG,SAAS,CAAC,YAAY;YACzB,GAAG,OAAO,CAAC,gBAAgB;YAC3B,GAAG,OAAO,CAAC,UAAU;SACtB;IACH;AAEQ,IAAA,MAAM,qBAAqB,CACjC,WAA0B,EAC1B,aAAqB,EAAA;;QAGrB,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC;QAC3D;;AAGA,QAAA,MAAM,OAAO,GAAG,aAAa,KAAK,MAAM,GAAG,aAAa,GAAG,cAAc;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACvD;IAEQ,4BAA4B,GAAA;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACzC,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,SAAS;AAC/B,QAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,CAAC,QAA4C,CAAC;QACvD;;AAEA,QAAA,MAAM,YAAY,GAAqC,CAAC,OAA0C,KAAI;AACpG,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;AACxB,YAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAqD,EAAE;AACjF,QAAA,CAAC;QACD,OAAO,CAAC,YAAY,CAAC;IACvB;;;IAIgB,KAAK,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,EAAE;IACxB;;IAGO,SAAS,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI;YAAE;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IAC3D;;;AAIO,IAAA,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,EAAA;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AACxC,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AACxB,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI;QACnD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QACvF;AACA,QAAA,OAAO,SAAS;IAClB;;IAGO,kBAAkB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,IAAI,CAAC,MAAM;IACpB;;IAGO,aAAa,GAAA;AAClB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;QACjC,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,GAAQ,IAAI,CAAC,KAAK,CAAC,GAAG;YAC/B,OAAO,OAAO,GAAG,EAAE,KAAK,KAAK,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM;QAC1F;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC7B,QAAA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;IAC9C;+GA/ZW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAzBrB;AACT,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE;AACpE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE;SAC7D,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA7EjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,IAAA,EACpB;AACJ,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,wBAAA,KAAK,EAAE,sBAAsB;qBAC9B,EAAA,MAAA,EACO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAC3C,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAA,SAAA,EA6ClF;AACT,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,uBAAuB,EAAE;AACpE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,uBAAuB,EAAE;qBAC7D,EAAA,QAAA,EACS;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA;wjDA8C4C,MAAM,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MC3JxC,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,OAAA,EAAA,CAHnB,YAAY,EAAE,qBAAqB,aACnC,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;oBAC9C,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;ACPD;;ACAA;;ACAA;;ACAA;;AAEG;;;;"}